diff --git a/.coffeelint.json b/.coffeelint.json new file mode 100644 index 000000000..9b00e8a75 --- /dev/null +++ b/.coffeelint.json @@ -0,0 +1,41 @@ +{ + "arrow_spacing": { + "level": "error" + }, + "braces_spacing": { + "level": "error", + "spaces": 1 + }, + "colon_assignment_spacing": { + "level": "error", + "spacing": { + "left": 0, + "right": 1 + } + }, + "eol_last": { + "level": "error" + }, + "indentation": { + "value": 2 + }, + "line_endings": { + "level": "error" + }, + "max_line_length": { + "value": 100, + "level": "error", + "limitComments": true + }, + "no_trailing_whitespace": { + "level": "error", + "allowed_in_comments": false, + "allowed_in_empty_lines": false + }, + "space_operators": { + "level": "error" + }, + "spacing_after_comma": { + "level": "error" + } +} diff --git a/.hound.yml b/.hound.yml index 26cdad927..b311fe432 100644 --- a/.hound.yml +++ b/.hound.yml @@ -1,4 +1,6 @@ rubocop: config_file: .rubocop_basic.yml scss: - config_file: .scss-lint.yml \ No newline at end of file + config_file: .scss-lint.yml +coffeescript: + config_file: .coffeelint.json diff --git a/app/assets/javascripts/banners.js.coffee b/app/assets/javascripts/banners.js.coffee index d38587083..792732787 100644 --- a/app/assets/javascripts/banners.js.coffee +++ b/app/assets/javascripts/banners.js.coffee @@ -8,12 +8,12 @@ App.Banners = .addClass(style, true) update_background_color: (selector, text_selector, background_color) -> - $(selector).css('background-color', background_color); - $(text_selector).val(background_color); + $(selector).css('background-color', background_color) + $(text_selector).val(background_color) update_font_color: (selector, text_selector, font_color) -> - $(selector).css('color', font_color); - $(text_selector).val(font_color); + $(selector).css('color', font_color) + $(text_selector).val(font_color) initialize: -> $('[data-js-banner-title]').on @@ -26,18 +26,18 @@ App.Banners = $("#banner_background_color_picker").on change: -> - App.Banners.update_background_color("#js-banner-background", "#banner_background_color", $(this).val()); + App.Banners.update_background_color("#js-banner-background", "#banner_background_color", $(this).val()) $("#banner_background_color").on change: -> - App.Banners.update_background_color("#js-banner-background", "#banner_background_color_picker", $(this).val()); + App.Banners.update_background_color("#js-banner-background", "#banner_background_color_picker", $(this).val()) $("#banner_font_color_picker").on change: -> - App.Banners.update_font_color("#js-banner-title", "#banner_font_color", $(this).val()); - App.Banners.update_font_color("#js-banner-description", "#banner_font_color", $(this).val()); + App.Banners.update_font_color("#js-banner-title", "#banner_font_color", $(this).val()) + App.Banners.update_font_color("#js-banner-description", "#banner_font_color", $(this).val()) $("#banner_font_color").on change: -> - App.Banners.update_font_color("#js-banner-title", "#banner_font_color_picker", $(this).val()); - App.Banners.update_font_color("#js-banner-description", "#banner_font_color_picker", $(this).val()); + App.Banners.update_font_color("#js-banner-title", "#banner_font_color_picker", $(this).val()) + App.Banners.update_font_color("#js-banner-description", "#banner_font_color_picker", $(this).val()) diff --git a/app/assets/javascripts/check_all_none.js.coffee b/app/assets/javascripts/check_all_none.js.coffee index f49801a73..ffc34ec7f 100644 --- a/app/assets/javascripts/check_all_none.js.coffee +++ b/app/assets/javascripts/check_all_none.js.coffee @@ -8,6 +8,3 @@ App.CheckAllNone = $('[data-check-none]').on 'click', -> target_name = $(this).data('check-none') $("[name='" + target_name + "']").prop('checked', false) - - - diff --git a/app/assets/javascripts/checkbox_toggle.js.coffee b/app/assets/javascripts/checkbox_toggle.js.coffee index 096ce7e25..5d61b5a5f 100644 --- a/app/assets/javascripts/checkbox_toggle.js.coffee +++ b/app/assets/javascripts/checkbox_toggle.js.coffee @@ -8,5 +8,3 @@ App.CheckboxToggle = $target.show() else $target.hide() - - diff --git a/app/assets/javascripts/globalize.js.coffee b/app/assets/javascripts/globalize.js.coffee index d0869cc8e..5dc30432f 100644 --- a/app/assets/javascripts/globalize.js.coffee +++ b/app/assets/javascripts/globalize.js.coffee @@ -6,7 +6,7 @@ App.Globalize = if $(this).data("locale") == locale $(this).show() App.Globalize.highlight_locale($(this)) - $(".js-globalize-locale option:selected").removeAttr("selected"); + $(".js-globalize-locale option:selected").removeAttr("selected") return display_translations: (locale) -> @@ -19,14 +19,14 @@ App.Globalize = $('#js_delete_' + locale).show() highlight_locale: (element) -> - $('.js-globalize-locale-link').removeClass('is-active'); - element.addClass('is-active'); + $('.js-globalize-locale-link').removeClass('is-active') + element.addClass('is-active') remove_language: (locale) -> $(".js-globalize-attribute[data-locale=" + locale + "]").each -> $(this).val('').hide() if CKEDITOR.instances[$(this).attr('id')] - CKEDITOR.instances[$(this).attr('id')].setData('') + CKEDITOR.instances[$(this).attr('id')].setData('') $(".js-globalize-locale-link[data-locale=" + locale + "]").hide() next = $(".js-globalize-locale-link:visible").first() App.Globalize.highlight_locale(next) diff --git a/app/assets/javascripts/investment_report_alert.js.coffee b/app/assets/javascripts/investment_report_alert.js.coffee index 98b239a55..c535f4c09 100644 --- a/app/assets/javascripts/investment_report_alert.js.coffee +++ b/app/assets/javascripts/investment_report_alert.js.coffee @@ -2,6 +2,6 @@ App.InvestmentReportAlert = initialize: -> $('#js-investment-report-alert').on 'click', -> if this.checked && $('#budget_investment_feasibility_unfeasible').is(':checked') - confirm(this.dataset.alert + "\n" + this.dataset.notFeasibleAlert); + confirm(this.dataset.alert + "\n" + this.dataset.notFeasibleAlert) else if this.checked - confirm(this.dataset.alert); + confirm(this.dataset.alert) diff --git a/app/assets/javascripts/legislation_annotatable.js.coffee b/app/assets/javascripts/legislation_annotatable.js.coffee index 141bcb858..34385bc1e 100644 --- a/app/assets/javascripts/legislation_annotatable.js.coffee +++ b/app/assets/javascripts/legislation_annotatable.js.coffee @@ -38,7 +38,7 @@ App.LegislationAnnotatable = renderAnnotationComments: (event) -> if event.offset - $("#comments-box").css({top: event.offset - $('.calc-comments').offset().top}) + $("#comments-box").css({ top: event.offset - $('.calc-comments').offset().top }) if App.LegislationAnnotatable.isMobile() return @@ -105,7 +105,7 @@ App.LegislationAnnotatable = dataType: 'script').done (-> $('#new_legislation_annotation #legislation_annotation_quote').val(@annotation.quote) $('#new_legislation_annotation #legislation_annotation_ranges').val(JSON.stringify(@annotation.ranges)) - $('#comments-box').css({top: position.top - $('.calc-comments').offset().top}) + $('#comments-box').css({ top: position.top - $('.calc-comments').offset().top }) unless $('[data-legislation-open-phase]').data('legislation-open-phase') == false App.LegislationAnnotatable.highlight('#7fff9a') @@ -143,7 +143,7 @@ App.LegislationAnnotatable = el.addClass('current-annotation') $('#comments-box').html('') App.LegislationAllegations.show_comments() - $('html,body').animate({scrollTop: el.offset().top}) + $('html,body').animate({ scrollTop: el.offset().top }) $.event.trigger type: "renderLegislationAnnotation" annotation_id: ann_id diff --git a/app/assets/javascripts/location_changer.js.coffee b/app/assets/javascripts/location_changer.js.coffee index 54693633d..d4ac098a1 100644 --- a/app/assets/javascripts/location_changer.js.coffee +++ b/app/assets/javascripts/location_changer.js.coffee @@ -3,6 +3,3 @@ App.LocationChanger = initialize: -> $('.js-location-changer').on 'change', -> window.location.assign($(this).val()) - - - diff --git a/app/assets/javascripts/map.js.coffee b/app/assets/javascripts/map.js.coffee index 562b035e0..1eabfa132 100644 --- a/app/assets/javascripts/map.js.coffee +++ b/app/assets/javascripts/map.js.coffee @@ -8,8 +8,8 @@ App.Map = App.Map.initializeMap map $('.js-toggle-map').on - click: -> - App.Map.toggleMap() + click: -> + App.Map.toggleMap() initializeMap: (element) -> App.Map.cleanInvestmentCoordinates(element) @@ -27,12 +27,13 @@ App.Map = removeMarkerSelector = $(element).data('marker-remove-selector') addMarkerInvestments = $(element).data('marker-investments-coordinates') editable = $(element).data('marker-editable') - marker = null; + marker = null markerIcon = L.divIcon( - className: 'map-marker' - iconSize: [30, 30] - iconAnchor: [15, 40] - html: '
') + className: 'map-marker' + iconSize: [30, 30] + iconAnchor: [15, 40] + html: '
' + ) createMarker = (latitude, longitude) -> markerLatLng = new (L.LatLng)(latitude, longitude) @@ -46,7 +47,7 @@ App.Map = e.preventDefault() if marker map.removeLayer(marker) - marker = null; + marker = null clearFormfields() return @@ -105,8 +106,8 @@ App.Map = marker.on 'click', openMarkerPopup toggleMap: -> - $('.map').toggle() - $('.js-location-map-remove-marker').toggle() + $('.map').toggle() + $('.js-location-map-remove-marker').toggle() cleanInvestmentCoordinates: (element) -> markers = $(element).attr('data-marker-investments-coordinates') diff --git a/app/assets/javascripts/polls.js.coffee b/app/assets/javascripts/polls.js.coffee index ac2c759ba..6f3a61859 100644 --- a/app/assets/javascripts/polls.js.coffee +++ b/app/assets/javascripts/polls.js.coffee @@ -4,7 +4,7 @@ App.Polls = rand = '' for n in [0..5] rand = Math.random().toString(36).substr(2) # remove `0.` - token = token + rand; + token = token + rand token = token.substring(0, 64) return token @@ -23,7 +23,7 @@ App.Polls = click: => token_message = $(".js-token-message") if !token_message.is(':visible') - token_message.html(token_message.html() + "
" + @token + ""); + token_message.html(token_message.html() + "
" + @token + "") token_message.show() false @@ -32,13 +32,12 @@ App.Polls = answer = $(element).closest('div.answer') if $(answer).hasClass('medium-6') - $(answer).removeClass("medium-6"); - $(answer).addClass("answer-divider"); + $(answer).removeClass("medium-6") + $(answer).addClass("answer-divider") unless $(answer).hasClass('first') - $(answer).insertBefore($(answer).prev('div.answer')); + $(answer).insertBefore($(answer).prev('div.answer')) else - $(answer).addClass("medium-6"); - $(answer).removeClass("answer-divider"); + $(answer).addClass("medium-6") + $(answer).removeClass("answer-divider") unless $(answer).hasClass('first') - $(answer).insertAfter($(answer).next('div.answer')); - + $(answer).insertAfter($(answer).next('div.answer')) diff --git a/app/assets/javascripts/polls_admin.js.coffee b/app/assets/javascripts/polls_admin.js.coffee index ef1dd44f1..9793c6aff 100644 --- a/app/assets/javascripts/polls_admin.js.coffee +++ b/app/assets/javascripts/polls_admin.js.coffee @@ -5,8 +5,8 @@ App.PollsAdmin = change: -> switch ($(this).val()) when 'vote_collection' - $("select[class='js-shift-vote-collection-dates']").show(); - $("select[class='js-shift-recount-scrutiny-dates']").hide(); + $("select[class='js-shift-vote-collection-dates']").show() + $("select[class='js-shift-recount-scrutiny-dates']").hide() when 'recount_scrutiny' - $("select[class='js-shift-recount-scrutiny-dates']").show(); - $("select[class='js-shift-vote-collection-dates']").hide(); + $("select[class='js-shift-recount-scrutiny-dates']").show() + $("select[class='js-shift-vote-collection-dates']").hide() diff --git a/app/assets/javascripts/prevent_double_submission.js.coffee b/app/assets/javascripts/prevent_double_submission.js.coffee index 5f080ddfe..ea2888075 100644 --- a/app/assets/javascripts/prevent_double_submission.js.coffee +++ b/app/assets/javascripts/prevent_double_submission.js.coffee @@ -22,15 +22,15 @@ App.PreventDoubleSubmission = initialize: -> $('form').on('submit', (event) -> - unless event.target.id == "new_officing_voter" || + unless event.target.id == "new_officing_voter" || event.target.id == "admin_download_emails" buttons = $(this).find(':button, :submit') App.PreventDoubleSubmission.disable_buttons(buttons) ).on('ajax:success', (event) -> - unless event.target.id == "new_officing_voter" || + unless event.target.id == "new_officing_voter" || event.target.id == "admin_download_emails" - + buttons = $(this).find(':button, :submit') App.PreventDoubleSubmission.reset_buttons(buttons) ) diff --git a/app/assets/javascripts/send_admin_notification_alert.js.coffee b/app/assets/javascripts/send_admin_notification_alert.js.coffee index 8c1c928e5..d21e218d3 100644 --- a/app/assets/javascripts/send_admin_notification_alert.js.coffee +++ b/app/assets/javascripts/send_admin_notification_alert.js.coffee @@ -1,4 +1,4 @@ App.SendAdminNotificationAlert = initialize: -> $('#js-send-admin_notification-alert').on 'click', -> - confirm(this.dataset.alert); + confirm(this.dataset.alert) diff --git a/app/assets/javascripts/send_newsletter_alert.js.coffee b/app/assets/javascripts/send_newsletter_alert.js.coffee index 3b06a30ff..e543140f1 100644 --- a/app/assets/javascripts/send_newsletter_alert.js.coffee +++ b/app/assets/javascripts/send_newsletter_alert.js.coffee @@ -1,4 +1,4 @@ App.SendNewsletterAlert = initialize: -> $('#js-send-newsletter-alert').on 'click', -> - confirm(this.dataset.alert); + confirm(this.dataset.alert) diff --git a/app/assets/javascripts/social_share.js.coffee b/app/assets/javascripts/social_share.js.coffee index 823488fe8..820383e43 100644 --- a/app/assets/javascripts/social_share.js.coffee +++ b/app/assets/javascripts/social_share.js.coffee @@ -4,4 +4,4 @@ App.SocialShare = $(".social-share-button a").each -> element = $(this) site = element.data('site') - element.append("#{site}") \ No newline at end of file + element.append("#{site}") diff --git a/app/assets/javascripts/sortable.js.coffee b/app/assets/javascripts/sortable.js.coffee index 1af543f6a..e280801c2 100644 --- a/app/assets/javascripts/sortable.js.coffee +++ b/app/assets/javascripts/sortable.js.coffee @@ -2,8 +2,8 @@ App.Sortable = initialize: -> $(".sortable").sortable update: (event, ui) -> - new_order = $(this).sortable('toArray', {attribute: 'data-answer-id'}); + new_order = $(this).sortable('toArray', { attribute: 'data-answer-id' }) $.ajax url: $('.sortable').data('js-url'), - data: {ordered_list: new_order}, + data: { ordered_list: new_order }, type: 'POST' diff --git a/app/assets/javascripts/stats.js.coffee b/app/assets/javascripts/stats.js.coffee index 7fcdfb00a..5bfa0a525 100644 --- a/app/assets/javascripts/stats.js.coffee +++ b/app/assets/javascripts/stats.js.coffee @@ -3,7 +3,7 @@ buildGraph = (el) -> url = $(el).data 'graph' - conf = bindto: el, data: {x: 'x', url: url, mimeType: 'json'}, axis: { x: {type: 'timeseries',tick: { format: '%Y-%m-%d' } }} + conf = bindto: el, data: { x: 'x', url: url, mimeType: 'json' }, axis: { x: { type: 'timeseries', tick: { format: '%Y-%m-%d' } } } graph = c3.generate conf App.Stats = diff --git a/app/assets/javascripts/suggest.js.coffee b/app/assets/javascripts/suggest.js.coffee index de42fd998..3fbfa8a73 100644 --- a/app/assets/javascripts/suggest.js.coffee +++ b/app/assets/javascripts/suggest.js.coffee @@ -9,7 +9,7 @@ App.Suggest = callback = -> $.ajax url: $this.data('js-url') - data: {search: $this.val()}, + data: { search: $this.val() }, type: 'GET', dataType: 'html' success: (stHtml) -> diff --git a/app/assets/javascripts/table_sortable.js.coffee b/app/assets/javascripts/table_sortable.js.coffee index 331f794a4..b3840a982 100644 --- a/app/assets/javascripts/table_sortable.js.coffee +++ b/app/assets/javascripts/table_sortable.js.coffee @@ -20,4 +20,3 @@ App.TableSortable = table.append rows[i] i++ return - \ No newline at end of file diff --git a/app/assets/javascripts/tag_autocomplete.js.coffee b/app/assets/javascripts/tag_autocomplete.js.coffee index be27cd81c..283573d6b 100644 --- a/app/assets/javascripts/tag_autocomplete.js.coffee +++ b/app/assets/javascripts/tag_autocomplete.js.coffee @@ -11,24 +11,24 @@ App.TagAutocomplete = source: (request, response) -> $.ajax url: $('.tag-autocomplete').data('js-url'), - data: {search: App.TagAutocomplete.extractLast( request.term )}, + data: { search: App.TagAutocomplete.extractLast( request.term ) }, type: 'GET', dataType: 'json' success: ( data ) -> - response( data ); + response( data ) minLength: 0, search: -> - App.TagAutocomplete.extractLast( this.value ); + App.TagAutocomplete.extractLast( this.value ) focus: -> - return false; + return false select: ( event, ui ) -> ( - terms = App.TagAutocomplete.split( this.value ); - terms.pop(); - terms.push( ui.item.value ); - terms.push( "" ); - this.value = terms.join( ", " ); - return false;); + terms = App.TagAutocomplete.split( this.value ) + terms.pop() + terms.push( ui.item.value ) + terms.push( "" ) + this.value = terms.join( ", " ) + return false;) initialize: -> - App.TagAutocomplete.init_autocomplete(); \ No newline at end of file + App.TagAutocomplete.init_autocomplete() diff --git a/app/assets/javascripts/tree_navigator.js.coffee b/app/assets/javascripts/tree_navigator.js.coffee index 385d1bbbd..406b156f6 100644 --- a/app/assets/javascripts/tree_navigator.js.coffee +++ b/app/assets/javascripts/tree_navigator.js.coffee @@ -34,4 +34,3 @@ App.TreeNavigator = link.parents('ul').each -> $(this).show() $(this).siblings('span').removeClass('closed').addClass('open') - diff --git a/app/assets/javascripts/valuation_budget_investment_form.js.coffee b/app/assets/javascripts/valuation_budget_investment_form.js.coffee index d79ff600e..a76a43b9e 100644 --- a/app/assets/javascripts/valuation_budget_investment_form.js.coffee +++ b/app/assets/javascripts/valuation_budget_investment_form.js.coffee @@ -29,4 +29,4 @@ App.ValuationBudgetInvestmentForm = initialize: -> App.ValuationBudgetInvestmentForm.showFeasibilityFields() App.ValuationBudgetInvestmentForm.showFeasibilityFieldsOnChange() - false \ No newline at end of file + false diff --git a/app/assets/javascripts/valuation_spending_proposal_form.js.coffee b/app/assets/javascripts/valuation_spending_proposal_form.js.coffee index fa0bc2106..47f7e0563 100644 --- a/app/assets/javascripts/valuation_spending_proposal_form.js.coffee +++ b/app/assets/javascripts/valuation_spending_proposal_form.js.coffee @@ -29,4 +29,4 @@ App.ValuationSpendingProposalForm = initialize: -> App.ValuationSpendingProposalForm.showFeasibilityFields() App.ValuationSpendingProposalForm.showFeasibilityFieldsOnChange() - false \ No newline at end of file + false diff --git a/coffeelint.json b/coffeelint.json deleted file mode 100644 index c69c63f10..000000000 --- a/coffeelint.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "coffeescript_error": { - "level": "error" - }, - "arrow_spacing": { - "name": "arrow_spacing", - "level": "warn" - }, - "no_tabs": { - "name": "no_tabs", - "level": "error" - }, - "no_trailing_whitespace": { - "name": "no_trailing_whitespace", - "level": "warn", - "allowed_in_comments": false, - "allowed_in_empty_lines": true - }, - "max_line_length": { - "name": "max_line_length", - "value": 140, - "level": "warn", - "limitComments": true - }, - "line_endings": { - "name": "line_endings", - "level": "ignore", - "value": "unix" - }, - "no_trailing_semicolons": { - "name": "no_trailing_semicolons", - "level": "error" - }, - "indentation": { - "name": "indentation", - "value": 2, - "level": "error" - }, - "camel_case_classes": { - "name": "camel_case_classes", - "level": "error" - }, - "colon_assignment_spacing": { - "name": "colon_assignment_spacing", - "level": "warn", - "spacing": { - "left": 0, - "right": 1 - } - }, - "no_implicit_braces": { - "name": "no_implicit_braces", - "level": "ignore", - "strict": true - }, - "no_plusplus": { - "name": "no_plusplus", - "level": "ignore" - }, - "no_throwing_strings": { - "name": "no_throwing_strings", - "level": "error" - }, - "no_backticks": { - "name": "no_backticks", - "level": "error" - }, - "no_implicit_parens": { - "name": "no_implicit_parens", - "level": "ignore" - }, - "no_empty_param_list": { - "name": "no_empty_param_list", - "level": "warn" - }, - "no_stand_alone_at": { - "name": "no_stand_alone_at", - "level": "ignore" - }, - "space_operators": { - "name": "space_operators", - "level": "warn" - }, - "duplicate_key": { - "name": "duplicate_key", - "level": "error" - }, - "empty_constructor_needs_parens": { - "name": "empty_constructor_needs_parens", - "level": "ignore" - }, - "cyclomatic_complexity": { - "name": "cyclomatic_complexity", - "value": 10, - "level": "ignore" - }, - "newlines_after_classes": { - "name": "newlines_after_classes", - "value": 3, - "level": "ignore" - }, - "no_unnecessary_fat_arrows": { - "name": "no_unnecessary_fat_arrows", - "level": "warn" - }, - "missing_fat_arrows": { - "name": "missing_fat_arrows", - "level": "ignore" - }, - "non_empty_constructor_needs_parens": { - "name": "non_empty_constructor_needs_parens", - "level": "ignore" - } -}