From d93a029ce526f009f5add001754ae0f93a1bc11d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Wed, 3 Jul 2019 00:11:16 +0200 Subject: [PATCH 01/12] Convert CofeeScript to JavaScript Compiled using `coffee -c` with CoffeeScript 1.12.6. --- .coffeelint.json | 41 --- .hound.yml | 2 - Gemfile | 1 - Gemfile.lock | 1 - app/assets/javascripts/advanced_search.js | 49 ++++ .../javascripts/advanced_search.js.coffee | 41 --- app/assets/javascripts/allow_participation.js | 19 ++ .../javascripts/allow_participation.js.coffee | 13 - app/assets/javascripts/answers.js | 32 +++ app/assets/javascripts/answers.js.coffee | 22 -- app/assets/javascripts/app.js | 6 + app/assets/javascripts/app.js.coffee | 3 - app/assets/javascripts/application.js | 2 +- app/assets/javascripts/banners.js | 30 +++ app/assets/javascripts/banners.js.coffee | 20 -- .../javascripts/budget_edit_associations.js | 43 ++++ .../budget_edit_associations.js.coffee | 26 -- app/assets/javascripts/check_all_none.js | 19 ++ .../javascripts/check_all_none.js.coffee | 12 - app/assets/javascripts/checkbox_toggle.js | 18 ++ .../javascripts/checkbox_toggle.js.coffee | 11 - app/assets/javascripts/columns_selector.js | 89 +++++++ .../javascripts/columns_selector.js.coffee | 78 ------ app/assets/javascripts/comments.js | 74 ++++++ app/assets/javascripts/comments.js.coffee | 58 ----- app/assets/javascripts/cookies.js | 34 +++ app/assets/javascripts/cookies.js.coffee | 25 -- app/assets/javascripts/documentable.js | 171 +++++++++++++ app/assets/javascripts/documentable.js.coffee | 156 ------------ app/assets/javascripts/embed_video.js | 14 ++ app/assets/javascripts/embed_video.js.coffee | 8 - app/assets/javascripts/fixed_bar.js | 25 ++ app/assets/javascripts/fixed_bar.js.coffee | 15 -- app/assets/javascripts/flaggable.js | 10 + app/assets/javascripts/flaggable.js.coffee | 6 - app/assets/javascripts/followable.js | 15 ++ app/assets/javascripts/followable.js.coffee | 10 - app/assets/javascripts/forms.js | 69 +++++ app/assets/javascripts/forms.js.coffee | 60 ----- app/assets/javascripts/foundation_extras.js | 31 +++ .../javascripts/foundation_extras.js.coffee | 23 -- app/assets/javascripts/gettext.js | 41 +++ app/assets/javascripts/gettext.js.coffee | 30 --- app/assets/javascripts/globalize.js | 119 +++++++++ app/assets/javascripts/globalize.js.coffee | 101 -------- app/assets/javascripts/ie_alert.js | 20 ++ app/assets/javascripts/ie_alert.js.coffee | 11 - app/assets/javascripts/imageable.js | 176 +++++++++++++ app/assets/javascripts/imageable.js.coffee | 162 ------------ .../javascripts/investment_report_alert.js | 16 ++ .../investment_report_alert.js.coffee | 9 - app/assets/javascripts/legislation.js | 21 ++ app/assets/javascripts/legislation.js.coffee | 14 -- app/assets/javascripts/legislation_admin.js | 27 ++ .../javascripts/legislation_admin.js.coffee | 18 -- .../javascripts/legislation_allegations.js | 38 +++ .../legislation_allegations.js.coffee | 27 -- .../javascripts/legislation_annotatable.js | 235 ++++++++++++++++++ .../legislation_annotatable.js.coffee | 205 --------------- app/assets/javascripts/location_changer.js | 12 + .../javascripts/location_changer.js.coffee | 7 - app/assets/javascripts/managers.js | 34 +++ app/assets/javascripts/managers.js.coffee | 25 -- app/assets/javascripts/map.js | 133 ++++++++++ app/assets/javascripts/map.js.coffee | 120 --------- app/assets/javascripts/markdown_editor.js | 53 ++++ .../javascripts/markdown_editor.js.coffee | 47 ---- app/assets/javascripts/modal_download.js | 16 ++ .../javascripts/modal_download.js.coffee | 11 - .../moderator_budget_investments.js | 14 ++ .../moderator_budget_investments.js.coffee | 10 - app/assets/javascripts/moderator_comment.js | 13 + .../javascripts/moderator_comment.js.coffee | 9 - app/assets/javascripts/moderator_debates.js | 14 ++ .../javascripts/moderator_debates.js.coffee | 10 - .../moderator_proposal_notifications.js | 13 + ...moderator_proposal_notifications.js.coffee | 9 - app/assets/javascripts/moderator_proposals.js | 14 ++ .../javascripts/moderator_proposals.js.coffee | 10 - app/assets/javascripts/polls.js | 47 ++++ app/assets/javascripts/polls.js.coffee | 32 --- app/assets/javascripts/polls_admin.js | 22 ++ app/assets/javascripts/polls_admin.js.coffee | 15 -- .../javascripts/prevent_double_submission.js | 50 ++++ .../prevent_double_submission.js.coffee | 38 --- app/assets/javascripts/questions.js | 15 ++ app/assets/javascripts/questions.js.coffee | 10 - app/assets/javascripts/registration_form.js | 34 +++ .../javascripts/registration_form.js.coffee | 24 -- .../send_admin_notification_alert.js | 12 + .../send_admin_notification_alert.js.coffee | 6 - .../javascripts/send_newsletter_alert.js | 12 + .../send_newsletter_alert.js.coffee | 6 - app/assets/javascripts/settings.js | 19 ++ app/assets/javascripts/settings.js.coffee | 12 - app/assets/javascripts/social_share.js | 12 + app/assets/javascripts/social_share.js.coffee | 7 - app/assets/javascripts/sortable.js | 39 +++ app/assets/javascripts/sortable.js.coffee | 19 -- app/assets/javascripts/stats.js | 38 +++ app/assets/javascripts/stats.js.coffee | 13 - app/assets/javascripts/suggest.js | 38 +++ app/assets/javascripts/suggest.js.coffee | 31 --- app/assets/javascripts/table_sortable.js | 35 +++ .../javascripts/table_sortable.js.coffee | 24 -- app/assets/javascripts/tag_autocomplete.js | 49 ++++ .../javascripts/tag_autocomplete.js.coffee | 36 --- app/assets/javascripts/tags.js | 27 ++ app/assets/javascripts/tags.js.coffee | 21 -- app/assets/javascripts/tree_navigator.js | 44 ++++ .../javascripts/tree_navigator.js.coffee | 33 --- app/assets/javascripts/users.js | 10 + app/assets/javascripts/users.js.coffee | 6 - .../valuation_budget_investment_form.js | 38 +++ ...valuation_budget_investment_form.js.coffee | 33 --- app/assets/javascripts/votations.js | 70 ++++++ app/assets/javascripts/votations.js.coffee | 44 ---- app/assets/javascripts/votes.js | 25 ++ app/assets/javascripts/votes.js.coffee | 19 -- app/assets/javascripts/watch_form_changes.js | 34 +++ .../javascripts/watch_form_changes.js.coffee | 27 -- 121 files changed, 2428 insertions(+), 1924 deletions(-) delete mode 100644 .coffeelint.json create mode 100644 app/assets/javascripts/advanced_search.js delete mode 100644 app/assets/javascripts/advanced_search.js.coffee create mode 100644 app/assets/javascripts/allow_participation.js delete mode 100644 app/assets/javascripts/allow_participation.js.coffee create mode 100644 app/assets/javascripts/answers.js delete mode 100644 app/assets/javascripts/answers.js.coffee create mode 100644 app/assets/javascripts/app.js delete mode 100644 app/assets/javascripts/app.js.coffee create mode 100644 app/assets/javascripts/banners.js delete mode 100644 app/assets/javascripts/banners.js.coffee create mode 100644 app/assets/javascripts/budget_edit_associations.js delete mode 100644 app/assets/javascripts/budget_edit_associations.js.coffee create mode 100644 app/assets/javascripts/check_all_none.js delete mode 100644 app/assets/javascripts/check_all_none.js.coffee create mode 100644 app/assets/javascripts/checkbox_toggle.js delete mode 100644 app/assets/javascripts/checkbox_toggle.js.coffee create mode 100644 app/assets/javascripts/columns_selector.js delete mode 100644 app/assets/javascripts/columns_selector.js.coffee create mode 100644 app/assets/javascripts/comments.js delete mode 100644 app/assets/javascripts/comments.js.coffee create mode 100644 app/assets/javascripts/cookies.js delete mode 100644 app/assets/javascripts/cookies.js.coffee create mode 100644 app/assets/javascripts/documentable.js delete mode 100644 app/assets/javascripts/documentable.js.coffee create mode 100644 app/assets/javascripts/embed_video.js delete mode 100644 app/assets/javascripts/embed_video.js.coffee create mode 100644 app/assets/javascripts/fixed_bar.js delete mode 100644 app/assets/javascripts/fixed_bar.js.coffee create mode 100644 app/assets/javascripts/flaggable.js delete mode 100644 app/assets/javascripts/flaggable.js.coffee create mode 100644 app/assets/javascripts/followable.js delete mode 100644 app/assets/javascripts/followable.js.coffee create mode 100644 app/assets/javascripts/forms.js delete mode 100644 app/assets/javascripts/forms.js.coffee create mode 100644 app/assets/javascripts/foundation_extras.js delete mode 100644 app/assets/javascripts/foundation_extras.js.coffee create mode 100644 app/assets/javascripts/gettext.js delete mode 100644 app/assets/javascripts/gettext.js.coffee create mode 100644 app/assets/javascripts/globalize.js delete mode 100644 app/assets/javascripts/globalize.js.coffee create mode 100644 app/assets/javascripts/ie_alert.js delete mode 100644 app/assets/javascripts/ie_alert.js.coffee create mode 100644 app/assets/javascripts/imageable.js delete mode 100644 app/assets/javascripts/imageable.js.coffee create mode 100644 app/assets/javascripts/investment_report_alert.js delete mode 100644 app/assets/javascripts/investment_report_alert.js.coffee create mode 100644 app/assets/javascripts/legislation.js delete mode 100644 app/assets/javascripts/legislation.js.coffee create mode 100644 app/assets/javascripts/legislation_admin.js delete mode 100644 app/assets/javascripts/legislation_admin.js.coffee create mode 100644 app/assets/javascripts/legislation_allegations.js delete mode 100644 app/assets/javascripts/legislation_allegations.js.coffee create mode 100644 app/assets/javascripts/legislation_annotatable.js delete mode 100644 app/assets/javascripts/legislation_annotatable.js.coffee create mode 100644 app/assets/javascripts/location_changer.js delete mode 100644 app/assets/javascripts/location_changer.js.coffee create mode 100644 app/assets/javascripts/managers.js delete mode 100644 app/assets/javascripts/managers.js.coffee create mode 100644 app/assets/javascripts/map.js delete mode 100644 app/assets/javascripts/map.js.coffee create mode 100644 app/assets/javascripts/markdown_editor.js delete mode 100644 app/assets/javascripts/markdown_editor.js.coffee create mode 100644 app/assets/javascripts/modal_download.js delete mode 100644 app/assets/javascripts/modal_download.js.coffee create mode 100644 app/assets/javascripts/moderator_budget_investments.js delete mode 100644 app/assets/javascripts/moderator_budget_investments.js.coffee create mode 100644 app/assets/javascripts/moderator_comment.js delete mode 100644 app/assets/javascripts/moderator_comment.js.coffee create mode 100644 app/assets/javascripts/moderator_debates.js delete mode 100644 app/assets/javascripts/moderator_debates.js.coffee create mode 100644 app/assets/javascripts/moderator_proposal_notifications.js delete mode 100644 app/assets/javascripts/moderator_proposal_notifications.js.coffee create mode 100644 app/assets/javascripts/moderator_proposals.js delete mode 100644 app/assets/javascripts/moderator_proposals.js.coffee create mode 100644 app/assets/javascripts/polls.js delete mode 100644 app/assets/javascripts/polls.js.coffee create mode 100644 app/assets/javascripts/polls_admin.js delete mode 100644 app/assets/javascripts/polls_admin.js.coffee create mode 100644 app/assets/javascripts/prevent_double_submission.js delete mode 100644 app/assets/javascripts/prevent_double_submission.js.coffee create mode 100644 app/assets/javascripts/questions.js delete mode 100644 app/assets/javascripts/questions.js.coffee create mode 100644 app/assets/javascripts/registration_form.js delete mode 100644 app/assets/javascripts/registration_form.js.coffee create mode 100644 app/assets/javascripts/send_admin_notification_alert.js delete mode 100644 app/assets/javascripts/send_admin_notification_alert.js.coffee create mode 100644 app/assets/javascripts/send_newsletter_alert.js delete mode 100644 app/assets/javascripts/send_newsletter_alert.js.coffee create mode 100644 app/assets/javascripts/settings.js delete mode 100644 app/assets/javascripts/settings.js.coffee create mode 100644 app/assets/javascripts/social_share.js delete mode 100644 app/assets/javascripts/social_share.js.coffee create mode 100644 app/assets/javascripts/sortable.js delete mode 100644 app/assets/javascripts/sortable.js.coffee create mode 100644 app/assets/javascripts/stats.js delete mode 100644 app/assets/javascripts/stats.js.coffee create mode 100644 app/assets/javascripts/suggest.js delete mode 100644 app/assets/javascripts/suggest.js.coffee create mode 100644 app/assets/javascripts/table_sortable.js delete mode 100644 app/assets/javascripts/table_sortable.js.coffee create mode 100644 app/assets/javascripts/tag_autocomplete.js delete mode 100644 app/assets/javascripts/tag_autocomplete.js.coffee create mode 100644 app/assets/javascripts/tags.js delete mode 100644 app/assets/javascripts/tags.js.coffee create mode 100644 app/assets/javascripts/tree_navigator.js delete mode 100644 app/assets/javascripts/tree_navigator.js.coffee create mode 100644 app/assets/javascripts/users.js delete mode 100644 app/assets/javascripts/users.js.coffee create mode 100644 app/assets/javascripts/valuation_budget_investment_form.js delete mode 100644 app/assets/javascripts/valuation_budget_investment_form.js.coffee create mode 100644 app/assets/javascripts/votations.js delete mode 100644 app/assets/javascripts/votations.js.coffee create mode 100644 app/assets/javascripts/votes.js delete mode 100644 app/assets/javascripts/votes.js.coffee create mode 100644 app/assets/javascripts/watch_form_changes.js delete mode 100644 app/assets/javascripts/watch_form_changes.js.coffee diff --git a/.coffeelint.json b/.coffeelint.json deleted file mode 100644 index 9b00e8a75..000000000 --- a/.coffeelint.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "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 4e54eebfc..b69ca98d4 100644 --- a/.hound.yml +++ b/.hound.yml @@ -2,8 +2,6 @@ rubocop: config_file: .rubocop_basic.yml scss: config_file: .scss-lint.yml -coffeescript: - config_file: .coffeelint.json erblint: enabled: true config_file: .erb-lint.yml diff --git a/Gemfile b/Gemfile index 81a57dd66..29e2d2d54 100644 --- a/Gemfile +++ b/Gemfile @@ -13,7 +13,6 @@ gem "browser", "~> 2.5.3" gem "cancancan", "~> 2.3.0" gem "ckeditor", "~> 4.2.3" gem "cocoon", "~> 1.2.9" -gem "coffee-rails", "~> 4.2.2" gem "daemons", "~> 1.2.4" gem "dalli", "~> 2.7.6" gem "delayed_job_active_record", "~> 4.1.3" diff --git a/Gemfile.lock b/Gemfile.lock index a93c7fd64..eb3684ed1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -594,7 +594,6 @@ DEPENDENCIES capybara-webmock (~> 0.5.3) ckeditor (~> 4.2.3) cocoon (~> 1.2.9) - coffee-rails (~> 4.2.2) coveralls (~> 0.8.22) daemons (~> 1.2.4) dalli (~> 2.7.6) diff --git a/app/assets/javascripts/advanced_search.js b/app/assets/javascripts/advanced_search.js new file mode 100644 index 000000000..7c4aa1836 --- /dev/null +++ b/app/assets/javascripts/advanced_search.js @@ -0,0 +1,49 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.AdvancedSearch = { + advanced_search_terms: function() { + return $("#js-advanced-search").data("advanced-search-terms"); + }, + toggle_form: function(event) { + event.preventDefault(); + return $("#js-advanced-search").slideToggle(); + }, + toggle_date_options: function() { + if ($("#js-advanced-search-date-min").val() === "custom") { + $("#js-custom-date").show(); + return $(".js-calendar").datepicker("option", "disabled", false); + } else { + $("#js-custom-date").hide(); + return $(".js-calendar").datepicker("option", "disabled", true); + } + }, + init_calendar: function() { + var locale; + locale = $("#js-locale").data("current-locale"); + $(".js-calendar").datepicker({ + maxDate: "+0d" + }); + $(".js-calendar-full").datepicker(); + return $.datepicker.setDefaults($.datepicker.regional[locale]); + }, + initialize: function() { + App.AdvancedSearch.init_calendar(); + if (App.AdvancedSearch.advanced_search_terms()) { + $("#js-advanced-search").show(); + App.AdvancedSearch.toggle_date_options(); + } + $("#js-advanced-search-title").on({ + click: function(event) { + return App.AdvancedSearch.toggle_form(event); + } + }); + return $("#js-advanced-search-date-min").on({ + change: function() { + return App.AdvancedSearch.toggle_date_options(); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/advanced_search.js.coffee b/app/assets/javascripts/advanced_search.js.coffee deleted file mode 100644 index 77f9183b5..000000000 --- a/app/assets/javascripts/advanced_search.js.coffee +++ /dev/null @@ -1,41 +0,0 @@ -"use strict" - -App.AdvancedSearch = - - advanced_search_terms: -> - $("#js-advanced-search").data("advanced-search-terms") - - toggle_form: (event) -> - event.preventDefault() - $("#js-advanced-search").slideToggle() - - toggle_date_options: -> - if $("#js-advanced-search-date-min").val() == "custom" - $("#js-custom-date").show() - $( ".js-calendar" ).datepicker( "option", "disabled", false ) - else - $("#js-custom-date").hide() - $( ".js-calendar" ).datepicker( "option", "disabled", true ) - - init_calendar: -> - locale = $("#js-locale").data("current-locale") - - $(".js-calendar").datepicker - maxDate: "+0d" - $(".js-calendar-full").datepicker() - $.datepicker.setDefaults($.datepicker.regional[locale]) - - initialize: -> - App.AdvancedSearch.init_calendar() - - if App.AdvancedSearch.advanced_search_terms() - $("#js-advanced-search").show() - App.AdvancedSearch.toggle_date_options() - - $("#js-advanced-search-title").on - click: (event) -> - App.AdvancedSearch.toggle_form(event) - - $("#js-advanced-search-date-min").on - change: -> - App.AdvancedSearch.toggle_date_options() diff --git a/app/assets/javascripts/allow_participation.js b/app/assets/javascripts/allow_participation.js new file mode 100644 index 000000000..8c30d400e --- /dev/null +++ b/app/assets/javascripts/allow_participation.js @@ -0,0 +1,19 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.AllowParticipation = { + initialize: function() { + return $(document).on({ + "mouseenter focus": function() { + $(this).find(".js-participation-not-allowed").show(); + return $(this).find(".js-participation-allowed").hide(); + }, + mouseleave: function() { + $(this).find(".js-participation-not-allowed").hide(); + return $(this).find(".js-participation-allowed").show(); + } + }, ".js-participation"); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/allow_participation.js.coffee b/app/assets/javascripts/allow_participation.js.coffee deleted file mode 100644 index 3438e46c4..000000000 --- a/app/assets/javascripts/allow_participation.js.coffee +++ /dev/null @@ -1,13 +0,0 @@ -"use strict" - -App.AllowParticipation = - - initialize: -> - $(document).on { - "mouseenter focus": -> - $(this).find(".js-participation-not-allowed").show() - $(this).find(".js-participation-allowed").hide() - mouseleave: -> - $(this).find(".js-participation-not-allowed").hide() - $(this).find(".js-participation-allowed").show() - }, ".js-participation" diff --git a/app/assets/javascripts/answers.js b/app/assets/javascripts/answers.js new file mode 100644 index 000000000..4433eb1f7 --- /dev/null +++ b/app/assets/javascripts/answers.js @@ -0,0 +1,32 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Answers = { + initializeAnswers: function(answers) { + return $(answers).on("cocoon:after-insert", function(e, new_answer) { + var given_order; + given_order = App.Answers.maxGivenOrder(answers) + 1; + return $(new_answer).find("[name$='[given_order]']").val(given_order); + }); + }, + maxGivenOrder: function(answers) { + var max_order; + max_order = 0; + $(answers).find("[name$='[given_order]']").each(function(index, answer) { + var value; + value = parseFloat($(answer).val()); + return max_order = value > max_order ? value : max_order; + }); + return max_order; + }, + nestedAnswers: function() { + return $(".js-answers").each(function(index, answers) { + return App.Answers.initializeAnswers(answers); + }); + }, + initialize: function() { + return App.Answers.nestedAnswers(); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/answers.js.coffee b/app/assets/javascripts/answers.js.coffee deleted file mode 100644 index 3a2fb10b1..000000000 --- a/app/assets/javascripts/answers.js.coffee +++ /dev/null @@ -1,22 +0,0 @@ -"use strict" - -App.Answers = - - initializeAnswers: (answers) -> - $(answers).on "cocoon:after-insert", (e, new_answer) -> - given_order = App.Answers.maxGivenOrder(answers) + 1 - $(new_answer).find("[name$='[given_order]']").val(given_order) - - maxGivenOrder: (answers) -> - max_order = 0 - $(answers).find("[name$='[given_order]']").each (index, answer) -> - value = parseFloat($(answer).val()) - max_order = if value > max_order then value else max_order - return max_order - - nestedAnswers: -> - $(".js-answers").each (index, answers) -> - App.Answers.initializeAnswers(answers) - - initialize: -> - App.Answers.nestedAnswers() diff --git a/app/assets/javascripts/app.js b/app/assets/javascripts/app.js new file mode 100644 index 000000000..d4a4cee34 --- /dev/null +++ b/app/assets/javascripts/app.js @@ -0,0 +1,6 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + window.App = {}; + +}).call(this); diff --git a/app/assets/javascripts/app.js.coffee b/app/assets/javascripts/app.js.coffee deleted file mode 100644 index b0ea6be5e..000000000 --- a/app/assets/javascripts/app.js.coffee +++ /dev/null @@ -1,3 +0,0 @@ -"use strict" - -window.App = {} diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 8381fd0fc..5aa8e8f50 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -84,7 +84,7 @@ //= require settings //= require cookies //= require columns_selector -//= require budget_edit_associations.js.coffee +//= require budget_edit_associations //= require votations var initialize_modules = function() { diff --git a/app/assets/javascripts/banners.js b/app/assets/javascripts/banners.js new file mode 100644 index 000000000..8982c7905 --- /dev/null +++ b/app/assets/javascripts/banners.js @@ -0,0 +1,30 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Banners = { + initialize: function() { + $("[data-js-banner-title]").on({ + change: function() { + return $("#js-banner-title").html($(this).val()); + } + }); + $("[data-js-banner-description]").on({ + change: function() { + return $("#js-banner-description").html($(this).val()); + } + }); + $("[name='banner[background_color]']").on({ + change: function() { + return $("#js-banner-background").css("background-color", $(this).val()); + } + }); + return $("[name='banner[font_color]']").on({ + change: function() { + $("#js-banner-title").css("color", $(this).val()); + return $("#js-banner-description").css("color", $(this).val()); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/banners.js.coffee b/app/assets/javascripts/banners.js.coffee deleted file mode 100644 index 8a1710b5e..000000000 --- a/app/assets/javascripts/banners.js.coffee +++ /dev/null @@ -1,20 +0,0 @@ -"use strict" - -App.Banners = - initialize: -> - $("[data-js-banner-title]").on - change: -> - $("#js-banner-title").html($(this).val()) - - $("[data-js-banner-description]").on - change: -> - $("#js-banner-description").html($(this).val()) - - $("[name='banner[background_color]']").on - change: -> - $("#js-banner-background").css("background-color", $(this).val()) - - $("[name='banner[font_color]']").on - change: -> - $("#js-banner-title").css("color", $(this).val()) - $("#js-banner-description").css("color", $(this).val()) diff --git a/app/assets/javascripts/budget_edit_associations.js b/app/assets/javascripts/budget_edit_associations.js new file mode 100644 index 000000000..b7ad31e98 --- /dev/null +++ b/app/assets/javascripts/budget_edit_associations.js @@ -0,0 +1,43 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.BudgetEditAssociations = { + set_text: function(response) { + $(".js-budget-show-administrators-list").text(response["administrators"]); + $(".js-budget-show-valuators-list").text(response["valuators"]); + return $(".js-budget-show-trackers-list").text(response["trackers"]); + }, + initialize: function() { + $(".js-budget-list-checkbox-user").on({ + click: function() { + var admin_count, budget, params, tracker_count, url, valuator_count; + admin_count = $(".js-budget-list-checkbox-administrators:checkbox:checked").length; + valuator_count = $(".js-budget-list-checkbox-valuators:checkbox:checked").length; + tracker_count = $(".js-budget-list-checkbox-trackers:checkbox:checked").length; + budget = $(".js-budget-id").attr("id"); + url = "/admin/budgets/" + budget + "/assigned_users_translation.json"; + params = { + administrators: admin_count, + valuators: valuator_count, + trackers: tracker_count + }; + return $.get(url, params, function(response) { + return App.BudgetEditAssociations.set_text(response, "json"); + }); + } + }); + return $(".js-budget-show-users-list").on({ + click: function() { + var div_id; + div_id = $(this).data().toggle; + return $(".js-budget-users-list").each(function() { + if (this.id !== div_id && !$(this).hasClass("is-hidden")) { + return $(this).addClass("is-hidden"); + } + }); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/budget_edit_associations.js.coffee b/app/assets/javascripts/budget_edit_associations.js.coffee deleted file mode 100644 index 5daa48441..000000000 --- a/app/assets/javascripts/budget_edit_associations.js.coffee +++ /dev/null @@ -1,26 +0,0 @@ -"use strict" - -App.BudgetEditAssociations = - - set_text: (response)-> - $(".js-budget-show-administrators-list").text(response["administrators"]) - $(".js-budget-show-valuators-list").text(response["valuators"]) - $(".js-budget-show-trackers-list").text(response["trackers"]) - - initialize: -> - $(".js-budget-list-checkbox-user").on - click: -> - admin_count = $(".js-budget-list-checkbox-administrators:checkbox:checked").length - valuator_count = $(".js-budget-list-checkbox-valuators:checkbox:checked").length - tracker_count = $(".js-budget-list-checkbox-trackers:checkbox:checked").length - budget = $(".js-budget-id").attr("id") - url = "/admin/budgets/" + budget + "/assigned_users_translation.json" - params = {administrators: admin_count, valuators: valuator_count, trackers: tracker_count} - $.get(url, params, (response) -> App.BudgetEditAssociations.set_text response, "json") - - $(".js-budget-show-users-list").on - click: -> - div_id = $(this).data().toggle - $(".js-budget-users-list").each -> - if this.id != div_id && !$(this).hasClass("is-hidden") - $(this).addClass("is-hidden") diff --git a/app/assets/javascripts/check_all_none.js b/app/assets/javascripts/check_all_none.js new file mode 100644 index 000000000..450eee1d6 --- /dev/null +++ b/app/assets/javascripts/check_all_none.js @@ -0,0 +1,19 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.CheckAllNone = { + initialize: function() { + $("[data-check-all]").on("click", function() { + var target_name; + target_name = $(this).data("check-all"); + return $("[name='" + target_name + "']").prop("checked", true); + }); + return $("[data-check-none]").on("click", function() { + var target_name; + target_name = $(this).data("check-none"); + return $("[name='" + target_name + "']").prop("checked", false); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/check_all_none.js.coffee b/app/assets/javascripts/check_all_none.js.coffee deleted file mode 100644 index 45df897ea..000000000 --- a/app/assets/javascripts/check_all_none.js.coffee +++ /dev/null @@ -1,12 +0,0 @@ -"use strict" - -App.CheckAllNone = - - initialize: -> - $("[data-check-all]").on "click", -> - target_name = $(this).data("check-all") - $("[name='#{target_name}']").prop("checked", true) - - $("[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 b/app/assets/javascripts/checkbox_toggle.js new file mode 100644 index 000000000..30b077b90 --- /dev/null +++ b/app/assets/javascripts/checkbox_toggle.js @@ -0,0 +1,18 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.CheckboxToggle = { + initialize: function() { + return $("[data-checkbox-toggle]").on("change", function() { + var $target; + $target = $($(this).data("checkbox-toggle")); + if ($(this).is(":checked")) { + return $target.show(); + } else { + return $target.hide(); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/checkbox_toggle.js.coffee b/app/assets/javascripts/checkbox_toggle.js.coffee deleted file mode 100644 index 0121b0b3a..000000000 --- a/app/assets/javascripts/checkbox_toggle.js.coffee +++ /dev/null @@ -1,11 +0,0 @@ -"use strict" - -App.CheckboxToggle = - - initialize: -> - $("[data-checkbox-toggle]").on "change", -> - $target = $($(this).data("checkbox-toggle")) - if $(this).is(":checked") - $target.show() - else - $target.hide() diff --git a/app/assets/javascripts/columns_selector.js b/app/assets/javascripts/columns_selector.js new file mode 100644 index 000000000..a3c9e06ce --- /dev/null +++ b/app/assets/javascripts/columns_selector.js @@ -0,0 +1,89 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.ColumnsSelector = { + initColums: function() { + var c_value, columns; + App.ColumnsSelector.hideAll(); + c_value = App.ColumnsSelector.currentValue(); + if (c_value.length === 0) { + c_value = $("#js-columns-selector").data("default"); + App.Cookies.saveCookie($("#js-columns-selector").data("cookie"), c_value, 30); + } + columns = c_value.split(","); + return columns.forEach(function(column) { + $("[data-field=" + column + "]").removeClass("hidden"); + return $("#column_selector_" + column).prop("checked", true); + }); + }, + initChecks: function() { + return $(".column-selecteable th[data-field]").each(function() { + var field, input, item, label, text; + field = $(this).data("field"); + text = $(this).text().trim(); + item = $("#column_selector_item_template").clone(); + item.prop("id", "column_selector_item_" + field); + input = item.find("input"); + input.prop("name", "column-selector[" + field + "]"); + input.prop("id", "column_selector_" + field); + input.data("column", field); + label = item.find("label"); + label.prop("for", "column_selector_" + field); + label.text(text); + item.removeClass("hidden"); + return $("#js-columns-selector-wrapper").append(item); + }); + }, + toggleOptions: function(event) { + event.preventDefault(); + $("#js-columns-selector").toggleClass("hollow"); + return $("#js-columns-selector-wrapper").toggleClass("hidden"); + }, + hideAll: function() { + $("[data-field]").addClass("hidden"); + return $(".column-selector-item input").prop("checked", false); + }, + toggleColumn: function(event) { + return App.ColumnsSelector.displayColumn($(event.target).data("column")); + }, + displayColumn: function(column) { + var value; + if ($("#column_selector_" + column).prop("checked")) { + $("[data-field=" + column + "]").removeClass("hidden"); + } else { + $("[data-field=" + column + "]").addClass("hidden"); + } + value = App.ColumnsSelector.updateItem(column); + return App.Cookies.saveCookie($("#js-columns-selector").data("cookie"), value, 30); + }, + updateItem: function(value) { + var index, values; + values = App.ColumnsSelector.currentValue().split(","); + index = values.indexOf(value); + if (index >= 0) { + values.splice(index, 1); + } else { + values.push(value); + } + return values.join(","); + }, + currentValue: function() { + return App.Cookies.getCookie($("#js-columns-selector").data("cookie")); + }, + initialize: function() { + App.ColumnsSelector.initChecks(); + App.ColumnsSelector.initColums(); + $("#js-columns-selector").on({ + click: function(event) { + return App.ColumnsSelector.toggleOptions(event); + } + }); + return $(".column-selector-item input").on({ + click: function(event) { + return App.ColumnsSelector.toggleColumn(event); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/columns_selector.js.coffee b/app/assets/javascripts/columns_selector.js.coffee deleted file mode 100644 index 312f2e129..000000000 --- a/app/assets/javascripts/columns_selector.js.coffee +++ /dev/null @@ -1,78 +0,0 @@ -"use strict" - -App.ColumnsSelector = - - initColums: () -> - App.ColumnsSelector.hideAll() - c_value = App.ColumnsSelector.currentValue() - - if c_value.length == 0 - c_value = $("#js-columns-selector").data("default") - App.Cookies.saveCookie($("#js-columns-selector").data("cookie"), c_value, 30) - columns = c_value.split(",") - - columns.forEach (column) -> - $("[data-field=" + column + "]").removeClass("hidden") - $("#column_selector_" + column).prop("checked", true) - - initChecks: () -> - $(".column-selecteable th[data-field]").each -> - field = $(this).data("field") - text = $(this).text().trim() - item = $("#column_selector_item_template").clone() - item.prop("id", "column_selector_item_" + field) - input = item.find("input") - input.prop("name", "column-selector[" + field + "]") - input.prop("id", "column_selector_" + field) - input.data("column", field) - label = item.find("label") - label.prop("for", "column_selector_" + field) - label.text(text) - item.removeClass("hidden") - $("#js-columns-selector-wrapper").append(item) - - toggleOptions: (event) -> - event.preventDefault() - $("#js-columns-selector").toggleClass("hollow") - $("#js-columns-selector-wrapper").toggleClass("hidden") - - hideAll: () -> - $("[data-field]").addClass("hidden") - $(".column-selector-item input").prop("checked", false) - - toggleColumn: (event) -> - App.ColumnsSelector.displayColumn($(event.target).data("column")) - - displayColumn: (column) -> - if $("#column_selector_" + column).prop("checked") - $("[data-field=" + column + "]").removeClass("hidden") - else - $("[data-field=" + column + "]").addClass("hidden") - - value = App.ColumnsSelector.updateItem(column) - App.Cookies.saveCookie($("#js-columns-selector").data("cookie"), value, 30) - - updateItem: (value) -> - values = App.ColumnsSelector.currentValue().split(",") - index = values.indexOf(value) - if index >= 0 - values.splice index, 1 - else - values.push value - - values.join "," - - currentValue: () -> - App.Cookies.getCookie($("#js-columns-selector").data("cookie")) - - initialize: -> - App.ColumnsSelector.initChecks() - App.ColumnsSelector.initColums() - - $("#js-columns-selector").on - click: (event) -> - App.ColumnsSelector.toggleOptions(event) - - $(".column-selector-item input").on - click: (event) -> - App.ColumnsSelector.toggleColumn(event) diff --git a/app/assets/javascripts/comments.js b/app/assets/javascripts/comments.js new file mode 100644 index 000000000..613b41761 --- /dev/null +++ b/app/assets/javascripts/comments.js @@ -0,0 +1,74 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Comments = { + add_comment: function(parent_id, response_html) { + $(response_html).insertAfter($("#js-comment-form-" + parent_id)); + return this.update_comments_count(); + }, + add_reply: function(parent_id, response_html) { + if ($("#" + parent_id + " .comment-children").length === 0) { + $("#" + parent_id).append("
  • "); + } + $("#" + parent_id + " .comment-children:first").prepend($(response_html)); + return this.update_comments_count(); + }, + update_comments_count: function() { + return $(".js-comments-count").each(function() { + var new_val; + new_val = $(this).text().trim().replace(/\d+/, function(match) { + return parseInt(match, 10) + 1; + }); + return $(this).text(new_val); + }); + }, + display_error: function(field_with_errors, error_html) { + return $(error_html).insertAfter($("" + field_with_errors)); + }, + reset_and_hide_form: function(id) { + var form_container, input; + form_container = $("#js-comment-form-" + id); + input = form_container.find("form textarea"); + input.val(""); + return form_container.hide(); + }, + reset_form: function(id) { + var input; + input = $("#js-comment-form-" + id + " form textarea"); + return input.val(""); + }, + toggle_form: function(id) { + return $("#js-comment-form-" + id).toggle(); + }, + toggle_arrow: function(id) { + var arrow; + arrow = "span#" + id + "_arrow"; + if ($(arrow).hasClass("icon-arrow-right")) { + return $(arrow).removeClass("icon-arrow-right").addClass("icon-arrow-down"); + } else { + return $(arrow).removeClass("icon-arrow-down").addClass("icon-arrow-right"); + } + }, + initialize: function() { + $("body .js-add-comment-link").each(function() { + if ($(this).data("initialized") !== "yes") { + return $(this).on("click", function() { + App.Comments.toggle_form($(this).data().id); + return false; + }).data("initialized", "yes"); + } + }); + return $("body .js-toggle-children").each(function() { + return $(this).on("click", function() { + var children_container_id; + children_container_id = ($(this).data().id) + "_children"; + $("#" + children_container_id).toggle("slow"); + App.Comments.toggle_arrow(children_container_id); + $(this).children(".js-child-toggle").toggle(); + return false; + }); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/comments.js.coffee b/app/assets/javascripts/comments.js.coffee deleted file mode 100644 index cbd84f8c2..000000000 --- a/app/assets/javascripts/comments.js.coffee +++ /dev/null @@ -1,58 +0,0 @@ -"use strict" - -App.Comments = - - add_comment: (parent_id, response_html) -> - $(response_html).insertAfter($("#js-comment-form-#{parent_id}")) - this.update_comments_count() - - add_reply: (parent_id, response_html) -> - if $("##{parent_id} .comment-children").length == 0 - $("##{parent_id}").append("
  • ") - $("##{parent_id} .comment-children:first").prepend($(response_html)) - this.update_comments_count() - - update_comments_count: -> - $(".js-comments-count").each -> - new_val = $(this).text().trim().replace /\d+/, (match) -> parseInt(match, 10) + 1 - $(this).text(new_val) - - display_error: (field_with_errors, error_html) -> - $(error_html).insertAfter($("#{field_with_errors}")) - - reset_and_hide_form: (id) -> - form_container = $("#js-comment-form-#{id}") - input = form_container.find("form textarea") - input.val("") - form_container.hide() - - reset_form: (id) -> - input = $("#js-comment-form-#{id} form textarea") - input.val("") - - toggle_form: (id) -> - $("#js-comment-form-#{id}").toggle() - - toggle_arrow: (id) -> - arrow = "span##{id}_arrow" - if $(arrow).hasClass("icon-arrow-right") - $(arrow).removeClass("icon-arrow-right").addClass("icon-arrow-down") - else - $(arrow).removeClass("icon-arrow-down").addClass("icon-arrow-right") - - initialize: -> - $("body .js-add-comment-link").each -> - unless $(this).data("initialized") is "yes" - $(this).on("click", -> - App.Comments.toggle_form($(this).data().id) - false - ).data "initialized", "yes" - - $("body .js-toggle-children").each -> - $(this).on("click", -> - children_container_id = "#{$(this).data().id}_children" - $("##{children_container_id}").toggle("slow") - App.Comments.toggle_arrow(children_container_id) - $(this).children(".js-child-toggle").toggle() - false - ) diff --git a/app/assets/javascripts/cookies.js b/app/assets/javascripts/cookies.js new file mode 100644 index 000000000..4505ec4ff --- /dev/null +++ b/app/assets/javascripts/cookies.js @@ -0,0 +1,34 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Cookies = { + saveCookie: function(name, value, days) { + var date, expires; + expires = void 0; + if (days) { + date = new Date; + date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000); + expires = "; expires=" + date.toGMTString(); + } else { + expires = ""; + } + document.cookie = name + "=" + value + expires + "; path=/"; + }, + getCookie: function(name) { + var c_end, c_start; + if (document.cookie.length > 0) { + c_start = document.cookie.indexOf(name + "="); + if (c_start !== -1) { + c_start = c_start + name.length + 1; + c_end = document.cookie.indexOf(";", c_start); + if (c_end === -1) { + c_end = document.cookie.length; + } + return unescape(document.cookie.substring(c_start, c_end)); + } + } + return ""; + } + }; + +}).call(this); diff --git a/app/assets/javascripts/cookies.js.coffee b/app/assets/javascripts/cookies.js.coffee deleted file mode 100644 index aa5a875f6..000000000 --- a/app/assets/javascripts/cookies.js.coffee +++ /dev/null @@ -1,25 +0,0 @@ -"use strict" - -App.Cookies = - - saveCookie: (name, value, days) -> - expires = undefined - if days - date = new Date - date.setTime date.getTime() + days * 24 * 60 * 60 * 1000 - expires = "; expires=" + date.toGMTString() - else - expires = "" - document.cookie = name + "=" + value + expires + "; path=/" - return - - getCookie: (name) -> - if document.cookie.length > 0 - c_start = document.cookie.indexOf(name + "=") - if c_start != -1 - c_start = c_start + name.length + 1 - c_end = document.cookie.indexOf(";", c_start) - if c_end == -1 - c_end = document.cookie.length - return unescape(document.cookie.substring(c_start, c_end)) - "" diff --git a/app/assets/javascripts/documentable.js b/app/assets/javascripts/documentable.js new file mode 100644 index 000000000..ccddf3401 --- /dev/null +++ b/app/assets/javascripts/documentable.js @@ -0,0 +1,171 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Documentable = { + initialize: function() { + $(".js-document-attachment").each(function() { + return App.Documentable.initializeDirectUploadInput(this); + }); + $("#nested-documents").on("cocoon:after-remove", function() { + return App.Documentable.unlockUploads(); + }); + return $("#nested-documents").on("cocoon:after-insert", function(e, nested_document) { + var input; + input = $(nested_document).find(".js-document-attachment"); + input["lockUpload"] = $(nested_document).closest("#nested-documents").find(".document:visible").length >= $("#nested-documents").data("max-documents-allowed"); + App.Documentable.initializeDirectUploadInput(input); + if (input["lockUpload"]) { + return App.Documentable.lockUploads(); + } + }); + }, + initializeDirectUploadInput: function(input) { + var inputData; + inputData = this.buildData([], input); + this.initializeRemoveCachedDocumentLink(input, inputData); + return $(input).fileupload({ + paramName: "attachment", + formData: null, + add: function(e, data) { + var upload_data; + upload_data = App.Documentable.buildData(data, e.target); + App.Documentable.clearProgressBar(upload_data); + App.Documentable.setProgressBar(upload_data, "uploading"); + return upload_data.submit(); + }, + change: function(e, data) { + return data.files.forEach(function(file) { + return App.Documentable.setFilename(inputData, file.name); + }); + }, + fail: function(e, data) { + $(data.cachedAttachmentField).val(""); + App.Documentable.clearFilename(data); + App.Documentable.setProgressBar(data, "errors"); + App.Documentable.clearInputErrors(data); + App.Documentable.setInputErrors(data); + $(data.destroyAttachmentLinkContainer).find("a.delete:not(.remove-nested)").remove(); + $(data.addAttachmentLabel).addClass("error"); + return $(data.addAttachmentLabel).show(); + }, + done: function(e, data) { + var destroyAttachmentLink; + $(data.cachedAttachmentField).val(data.result.cached_attachment); + App.Documentable.setTitleFromFile(data, data.result.filename); + App.Documentable.setProgressBar(data, "complete"); + App.Documentable.setFilename(data, data.result.filename); + App.Documentable.clearInputErrors(data); + $(data.addAttachmentLabel).hide(); + $(data.wrapper).find(".attachment-actions").removeClass("small-12").addClass("small-6 float-right"); + $(data.wrapper).find(".attachment-actions .action-remove").removeClass("small-3").addClass("small-12"); + destroyAttachmentLink = $(data.result.destroy_link); + $(data.destroyAttachmentLinkContainer).html(destroyAttachmentLink); + $(destroyAttachmentLink).on("click", function(e) { + e.preventDefault(); + e.stopPropagation(); + return App.Documentable.doDeleteCachedAttachmentRequest(this.href, data); + }); + if (input["lockUpload"]) { + return App.Documentable.showNotice(); + } + }, + progress: function(e, data) { + var progress; + progress = parseInt(data.loaded / data.total * 100, 10); + $(data.progressBar).find(".loading-bar").css("width", progress + "%"); + } + }); + }, + buildData: function(data, input) { + var wrapper; + wrapper = $(input).closest(".direct-upload"); + data.input = input; + data.wrapper = wrapper; + data.progressBar = $(wrapper).find(".progress-bar-placeholder"); + data.errorContainer = $(wrapper).find(".attachment-errors"); + data.fileNameContainer = $(wrapper).find("p.file-name"); + data.destroyAttachmentLinkContainer = $(wrapper).find(".action-remove"); + data.addAttachmentLabel = $(wrapper).find(".action-add label"); + data.cachedAttachmentField = $(wrapper).find("input[name$='[cached_attachment]']"); + data.titleField = $(wrapper).find("input[name$='[title]']"); + $(wrapper).find(".progress-bar-placeholder").css("display", "block"); + return data; + }, + clearFilename: function(data) { + $(data.fileNameContainer).text(""); + return $(data.fileNameContainer).hide(); + }, + clearInputErrors: function(data) { + return $(data.errorContainer).find("small.error").remove(); + }, + clearProgressBar: function(data) { + return $(data.progressBar).find(".loading-bar").removeClass("complete errors uploading").css("width", "0px"); + }, + setFilename: function(data, file_name) { + $(data.fileNameContainer).text(file_name); + return $(data.fileNameContainer).show(); + }, + setProgressBar: function(data, klass) { + return $(data.progressBar).find(".loading-bar").addClass(klass); + }, + setTitleFromFile: function(data, title) { + if ($(data.titleField).val() === "") { + return $(data.titleField).val(title); + } + }, + setInputErrors: function(data) { + var errors; + errors = "" + data.jqXHR.responseJSON.errors + ""; + return $(data.errorContainer).append(errors); + }, + lockUploads: function() { + return $("#new_document_link").addClass("hide"); + }, + unlockUploads: function() { + $("#max-documents-notice").addClass("hide"); + return $("#new_document_link").removeClass("hide"); + }, + showNotice: function() { + return $("#max-documents-notice").removeClass("hide"); + }, + doDeleteCachedAttachmentRequest: function(url, data) { + return $.ajax({ + type: "POST", + url: url, + dataType: "json", + data: { + "_method": "delete" + }, + complete: function() { + $(data.cachedAttachmentField).val(""); + $(data.addAttachmentLabel).show(); + App.Documentable.clearFilename(data); + App.Documentable.clearInputErrors(data); + App.Documentable.clearProgressBar(data); + App.Documentable.unlockUploads(); + $(data.wrapper).find(".attachment-actions").addClass("small-12").removeClass("small-6 float-right"); + $(data.wrapper).find(".attachment-actions .action-remove").addClass("small-3").removeClass("small-12"); + if ($(data.input).data("nested-document") === true) { + return $(data.wrapper).remove(); + } else { + return $(data.wrapper).find("a.remove-cached-attachment").remove(); + } + } + }); + }, + initializeRemoveCachedDocumentLink: function(input, data) { + var remove_document_link, wrapper; + wrapper = $(input).closest(".direct-upload"); + remove_document_link = $(wrapper).find("a.remove-cached-attachment"); + return $(remove_document_link).on("click", function(e) { + e.preventDefault(); + e.stopPropagation(); + return App.Documentable.doDeleteCachedAttachmentRequest(this.href, data); + }); + }, + removeDocument: function(id) { + return $("#" + id).remove(); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/documentable.js.coffee b/app/assets/javascripts/documentable.js.coffee deleted file mode 100644 index 9287304c2..000000000 --- a/app/assets/javascripts/documentable.js.coffee +++ /dev/null @@ -1,156 +0,0 @@ -"use strict" - -App.Documentable = - - initialize: -> - $(".js-document-attachment").each -> - App.Documentable.initializeDirectUploadInput(this) - - $("#nested-documents").on "cocoon:after-remove", -> - App.Documentable.unlockUploads() - - $("#nested-documents").on "cocoon:after-insert", (e, nested_document) -> - input = $(nested_document).find(".js-document-attachment") - input["lockUpload"] = $(nested_document).closest("#nested-documents").find(".document:visible").length >= $("#nested-documents").data("max-documents-allowed") - App.Documentable.initializeDirectUploadInput(input) - App.Documentable.lockUploads() if input["lockUpload"] - - initializeDirectUploadInput: (input) -> - - inputData = this.buildData([], input) - - this.initializeRemoveCachedDocumentLink(input, inputData) - - $(input).fileupload - - paramName: "attachment" - - formData: null - - add: (e, data) -> - upload_data = App.Documentable.buildData(data, e.target) - App.Documentable.clearProgressBar(upload_data) - App.Documentable.setProgressBar(upload_data, "uploading") - upload_data.submit() - - change: (e, data) -> - data.files.forEach (file) -> - App.Documentable.setFilename(inputData, file.name) - - fail: (e, data) -> - $(data.cachedAttachmentField).val("") - App.Documentable.clearFilename(data) - App.Documentable.setProgressBar(data, "errors") - App.Documentable.clearInputErrors(data) - App.Documentable.setInputErrors(data) - $(data.destroyAttachmentLinkContainer).find("a.delete:not(.remove-nested)").remove() - $(data.addAttachmentLabel).addClass("error") - $(data.addAttachmentLabel).show() - - done: (e, data) -> - $(data.cachedAttachmentField).val(data.result.cached_attachment) - App.Documentable.setTitleFromFile(data, data.result.filename) - App.Documentable.setProgressBar(data, "complete") - App.Documentable.setFilename(data, data.result.filename) - App.Documentable.clearInputErrors(data) - $(data.addAttachmentLabel).hide() - $(data.wrapper).find(".attachment-actions").removeClass("small-12").addClass("small-6 float-right") - $(data.wrapper).find(".attachment-actions .action-remove").removeClass("small-3").addClass("small-12") - - destroyAttachmentLink = $(data.result.destroy_link) - $(data.destroyAttachmentLinkContainer).html(destroyAttachmentLink) - $(destroyAttachmentLink).on "click", (e) -> - e.preventDefault() - e.stopPropagation() - App.Documentable.doDeleteCachedAttachmentRequest(this.href, data) - - App.Documentable.showNotice() if input["lockUpload"] - - - progress: (e, data) -> - progress = parseInt(data.loaded / data.total * 100, 10) - $(data.progressBar).find(".loading-bar").css "width", "#{progress}%" - return - - buildData: (data, input) -> - wrapper = $(input).closest(".direct-upload") - data.input = input - data.wrapper = wrapper - data.progressBar = $(wrapper).find(".progress-bar-placeholder") - data.errorContainer = $(wrapper).find(".attachment-errors") - data.fileNameContainer = $(wrapper).find("p.file-name") - data.destroyAttachmentLinkContainer = $(wrapper).find(".action-remove") - data.addAttachmentLabel = $(wrapper).find(".action-add label") - data.cachedAttachmentField = $(wrapper).find("input[name$='[cached_attachment]']") - data.titleField = $(wrapper).find("input[name$='[title]']") - $(wrapper).find(".progress-bar-placeholder").css("display", "block") - return data - - clearFilename: (data) -> - $(data.fileNameContainer).text("") - $(data.fileNameContainer).hide() - - clearInputErrors: (data) -> - $(data.errorContainer).find("small.error").remove() - - clearProgressBar: (data) -> - $(data.progressBar).find(".loading-bar").removeClass("complete errors uploading").css("width", "0px") - - setFilename: (data, file_name) -> - $(data.fileNameContainer).text(file_name) - $(data.fileNameContainer).show() - - setProgressBar: (data, klass) -> - $(data.progressBar).find(".loading-bar").addClass(klass) - - setTitleFromFile: (data, title) -> - if $(data.titleField).val() == "" - $(data.titleField).val(title) - - setInputErrors: (data) -> - errors = "#{data.jqXHR.responseJSON.errors}" - $(data.errorContainer).append(errors) - - lockUploads: -> - $("#new_document_link").addClass("hide") - - unlockUploads: -> - $("#max-documents-notice").addClass("hide") - $("#new_document_link").removeClass("hide") - - showNotice: -> - $("#max-documents-notice").removeClass("hide") - - doDeleteCachedAttachmentRequest: (url, data) -> - $.ajax - type: "POST" - url: url - dataType: "json" - data: { "_method": "delete" } - complete: -> - $(data.cachedAttachmentField).val("") - $(data.addAttachmentLabel).show() - - App.Documentable.clearFilename(data) - App.Documentable.clearInputErrors(data) - App.Documentable.clearProgressBar(data) - - App.Documentable.unlockUploads() - $(data.wrapper).find(".attachment-actions").addClass("small-12").removeClass("small-6 float-right") - $(data.wrapper).find(".attachment-actions .action-remove").addClass("small-3").removeClass("small-12") - - if $(data.input).data("nested-document") == true - $(data.wrapper).remove() - else - $(data.wrapper).find("a.remove-cached-attachment").remove() - - initializeRemoveCachedDocumentLink: (input, data) -> - wrapper = $(input).closest(".direct-upload") - remove_document_link = $(wrapper).find("a.remove-cached-attachment") - $(remove_document_link).on "click", (e) -> - e.preventDefault() - e.stopPropagation() - App.Documentable.doDeleteCachedAttachmentRequest(this.href, data) - - removeDocument: (id) -> - $("##{id}").remove() diff --git a/app/assets/javascripts/embed_video.js b/app/assets/javascripts/embed_video.js new file mode 100644 index 000000000..5d2bd46f2 --- /dev/null +++ b/app/assets/javascripts/embed_video.js @@ -0,0 +1,14 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.EmbedVideo = { + initialize: function() { + return $("#js-embedded-video").each(function() { + var code; + code = $(this).data("video-code"); + return $("#js-embedded-video").html(code); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/embed_video.js.coffee b/app/assets/javascripts/embed_video.js.coffee deleted file mode 100644 index 163f831c7..000000000 --- a/app/assets/javascripts/embed_video.js.coffee +++ /dev/null @@ -1,8 +0,0 @@ -"use strict" - -App.EmbedVideo = - - initialize: -> - $("#js-embedded-video").each -> - code = $(this).data("video-code") - $("#js-embedded-video").html(code) diff --git a/app/assets/javascripts/fixed_bar.js b/app/assets/javascripts/fixed_bar.js new file mode 100644 index 000000000..054e354f9 --- /dev/null +++ b/app/assets/javascripts/fixed_bar.js @@ -0,0 +1,25 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.FixedBar = { + initialize: function() { + return $("[data-fixed-bar]").each(function() { + var $this, fixedBarTopPosition; + $this = $(this); + fixedBarTopPosition = $this.offset().top; + return $(window).on("scroll", function() { + if ($(window).scrollTop() > fixedBarTopPosition) { + $this.addClass("is-fixed"); + return $("#check-ballot").css({ + "display": "inline-block" + }); + } else { + $this.removeClass("is-fixed"); + return $("#check-ballot").hide(); + } + }); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/fixed_bar.js.coffee b/app/assets/javascripts/fixed_bar.js.coffee deleted file mode 100644 index 59b3255f0..000000000 --- a/app/assets/javascripts/fixed_bar.js.coffee +++ /dev/null @@ -1,15 +0,0 @@ -"use strict" - -App.FixedBar = - initialize: -> - $("[data-fixed-bar]").each -> - $this = $(this) - fixedBarTopPosition = $this.offset().top - - $(window).on "scroll", -> - if $(window).scrollTop() > fixedBarTopPosition - $this.addClass("is-fixed") - $("#check-ballot").css({ "display": "inline-block" }) - else - $this.removeClass("is-fixed") - $("#check-ballot").hide() diff --git a/app/assets/javascripts/flaggable.js b/app/assets/javascripts/flaggable.js new file mode 100644 index 000000000..28541aee7 --- /dev/null +++ b/app/assets/javascripts/flaggable.js @@ -0,0 +1,10 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Flaggable = { + update: function(resource_id, button) { + return $("#" + resource_id + " .js-flag-actions").html(button).foundation(); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/flaggable.js.coffee b/app/assets/javascripts/flaggable.js.coffee deleted file mode 100644 index fe5709ddd..000000000 --- a/app/assets/javascripts/flaggable.js.coffee +++ /dev/null @@ -1,6 +0,0 @@ -"use strict" - -App.Flaggable = - - update: (resource_id, button) -> - $("##{resource_id} .js-flag-actions").html(button).foundation() diff --git a/app/assets/javascripts/followable.js b/app/assets/javascripts/followable.js new file mode 100644 index 000000000..369082ee5 --- /dev/null +++ b/app/assets/javascripts/followable.js @@ -0,0 +1,15 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Followable = { + update: function(followable_id, button, notice) { + $("#" + followable_id + " .js-follow").html(button); + if ($("[data-alert]").length > 0) { + return $("[data-alert]").replaceWith(notice); + } else { + return $("body").append(notice); + } + } + }; + +}).call(this); diff --git a/app/assets/javascripts/followable.js.coffee b/app/assets/javascripts/followable.js.coffee deleted file mode 100644 index 4f1d339d5..000000000 --- a/app/assets/javascripts/followable.js.coffee +++ /dev/null @@ -1,10 +0,0 @@ -"use strict" - -App.Followable = - - update: (followable_id, button, notice) -> - $("##{followable_id} .js-follow").html(button) - if ($("[data-alert]").length > 0) - $("[data-alert]").replaceWith(notice) - else - $("body").append(notice) diff --git a/app/assets/javascripts/forms.js b/app/assets/javascripts/forms.js new file mode 100644 index 000000000..57f17f7e5 --- /dev/null +++ b/app/assets/javascripts/forms.js @@ -0,0 +1,69 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Forms = { + disableEnter: function() { + return $("form.js-enter-disabled").on("keyup keypress", function(event) { + if (event.which === 13) { + return event.preventDefault(); + } + }); + }, + submitOnChange: function() { + return $(".js-submit-on-change").unbind("change").on("change", function() { + $(this).closest("form").submit(); + return false; + }); + }, + toggleLink: function() { + return $(".js-toggle-link").unbind("click").on("click", function() { + var toggle_txt; + $($(this).data("toggle-selector")).toggle("down"); + if ($(this).data("toggle-text") !== void 0) { + toggle_txt = $(this).text(); + $(this).text($(this).data("toggle-text")); + $(this).data("toggle-text", toggle_txt); + } + return false; + }); + }, + synchronizeInputs: function() { + var banners, inputs, processes, progress_bar; + progress_bar = "[name='progress_bar[percentage]']"; + processes = "[name='legislation_process[background_color]'], [name='legislation_process[font_color]']"; + banners = "[name='banner[background_color]'], [name='banner[font_color]']"; + inputs = $(progress_bar + ", " + processes + ", " + banners); + inputs.on({ + input: function() { + return $("[name='" + this.name + "']").val($(this).val()); + } + }); + return inputs.trigger("input"); + }, + hideOrShowFieldsAfterSelection: function() { + $("[name='progress_bar[kind]']").on({ + change: function() { + var locale, title_field; + locale = App.Globalize.selected_language(); + title_field = $(".translatable-fields[data-locale=" + locale + "]"); + if (this.value === "primary") { + title_field.hide(); + return $(".globalize-languages").hide(); + } else { + title_field.show(); + return $(".globalize-languages").show(); + } + } + }); + return $("[name='progress_bar[kind]']").change(); + }, + initialize: function() { + App.Forms.disableEnter(); + App.Forms.submitOnChange(); + App.Forms.toggleLink(); + App.Forms.synchronizeInputs(); + return App.Forms.hideOrShowFieldsAfterSelection(); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/forms.js.coffee b/app/assets/javascripts/forms.js.coffee deleted file mode 100644 index e81ec0668..000000000 --- a/app/assets/javascripts/forms.js.coffee +++ /dev/null @@ -1,60 +0,0 @@ -"use strict" - -App.Forms = - - disableEnter: -> - $("form.js-enter-disabled").on("keyup keypress", (event) -> - if event.which == 13 - event.preventDefault() - ) - - submitOnChange: -> - $(".js-submit-on-change").unbind("change").on("change", -> - $(this).closest("form").submit() - false - ) - - toggleLink: -> - $(".js-toggle-link").unbind("click").on("click", -> - $($(this).data("toggle-selector")).toggle("down") - if $(this).data("toggle-text") isnt undefined - toggle_txt = $(this).text() - $(this).text( $(this).data("toggle-text") ) - $(this).data("toggle-text", toggle_txt) - - false - ) - - synchronizeInputs: -> - progress_bar = "[name='progress_bar[percentage]']" - processes = "[name='legislation_process[background_color]'], [name='legislation_process[font_color]']" - banners = "[name='banner[background_color]'], [name='banner[font_color]']" - - inputs = $("#{progress_bar}, #{processes}, #{banners}") - inputs.on - input: -> - $("[name='#{this.name}']").val($(this).val()) - - inputs.trigger("input") - - hideOrShowFieldsAfterSelection: -> - $("[name='progress_bar[kind]']").on - change: -> - locale = App.Globalize.selected_language() - title_field = $(".translatable-fields[data-locale=#{locale}]") - - if this.value == "primary" - title_field.hide() - $(".globalize-languages").hide() - else - title_field.show() - $(".globalize-languages").show() - - $("[name='progress_bar[kind]']").change() - - initialize: -> - App.Forms.disableEnter() - App.Forms.submitOnChange() - App.Forms.toggleLink() - App.Forms.synchronizeInputs() - App.Forms.hideOrShowFieldsAfterSelection() diff --git a/app/assets/javascripts/foundation_extras.js b/app/assets/javascripts/foundation_extras.js new file mode 100644 index 000000000..7527d434b --- /dev/null +++ b/app/assets/javascripts/foundation_extras.js @@ -0,0 +1,31 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.FoundationExtras = { + clearSticky: function() { + if ($("[data-sticky]").length) { + return $("[data-sticky]").foundation("destroy"); + } + }, + mobile_ui_init: function() { + return $(window).trigger("load.zf.sticky"); + }, + desktop_ui_init: function() { + return $(window).trigger("init.zf.sticky"); + }, + initialize: function() { + $(document).foundation(); + $(window).trigger("resize"); + $(document).on("page:before-unload", this.clearSticky); + window.addEventListener("popstate", this.clearSticky, false); + return $(function() { + if ($(window).width() < 620) { + return App.FoundationExtras.mobile_ui_init(); + } else { + return App.FoundationExtras.desktop_ui_init(); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/foundation_extras.js.coffee b/app/assets/javascripts/foundation_extras.js.coffee deleted file mode 100644 index e2c949daa..000000000 --- a/app/assets/javascripts/foundation_extras.js.coffee +++ /dev/null @@ -1,23 +0,0 @@ -"use strict" - -App.FoundationExtras = - clearSticky: -> - $("[data-sticky]").foundation("destroy") if $("[data-sticky]").length - - mobile_ui_init: -> - $(window).trigger "load.zf.sticky" - - desktop_ui_init: -> - $(window).trigger "init.zf.sticky" - - initialize: -> - $(document).foundation() - $(window).trigger "resize" - $(document).on("page:before-unload", this.clearSticky) - window.addEventListener("popstate", this.clearSticky, false) - - $ -> - if $(window).width() < 620 - App.FoundationExtras.mobile_ui_init() - else - App.FoundationExtras.desktop_ui_init() diff --git a/app/assets/javascripts/gettext.js b/app/assets/javascripts/gettext.js new file mode 100644 index 000000000..49da4318d --- /dev/null +++ b/app/assets/javascripts/gettext.js @@ -0,0 +1,41 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + var i18n; + + i18n = { + es: { + "Comments": "Comentarios", + "No comment": "Sin comentarios", + "Cancel": "Cancelar", + "Save": "Guardar", + "Edit": "Editar", + "Delete": "Borrar", + "Unregistered": "

    Necesitas iniciar sesión o registrarte para continuar.

    " + }, + en: { + "Comments": "Coments", + "No comment": "No comment", + "Cancel": "Cancel", + "Save": "Save", + "Edit": "Edit", + "Delete": "Delete", + "Unregistered": "You need to sign in or sign up to continue." + } + }; + + window.Gettext = function() { + return { + gettext: function(key) { + var locale, locale_id; + locale_id = $("html").attr("lang"); + locale = i18n[locale_id]; + if (locale && locale[key]) { + return locale[key]; + } + return key; + } + }; + }; + +}).call(this); diff --git a/app/assets/javascripts/gettext.js.coffee b/app/assets/javascripts/gettext.js.coffee deleted file mode 100644 index 2d954e56d..000000000 --- a/app/assets/javascripts/gettext.js.coffee +++ /dev/null @@ -1,30 +0,0 @@ -"use strict" - -i18n = { - es: { - "Comments": "Comentarios", - "No comment": "Sin comentarios", - "Cancel": "Cancelar", - "Save": "Guardar", - "Edit": "Editar", - "Delete": "Borrar", - "Unregistered": "

    Necesitas iniciar sesión o registrarte para continuar.

    " - }, - en: { - "Comments": "Coments", - "No comment": "No comment", - "Cancel": "Cancel", - "Save": "Save", - "Edit": "Edit", - "Delete": "Delete", - "Unregistered": "You need to sign in or sign up to continue." - } -} - -window.Gettext = -> - gettext: (key) -> - locale_id = $("html").attr("lang") - locale = i18n[locale_id] - if locale && locale[key] - return locale[key] - key diff --git a/app/assets/javascripts/globalize.js b/app/assets/javascripts/globalize.js new file mode 100644 index 000000000..149ca7e44 --- /dev/null +++ b/app/assets/javascripts/globalize.js @@ -0,0 +1,119 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Globalize = { + selected_language: function() { + return $("#select_language").val(); + }, + display_locale: function(locale) { + App.Globalize.enable_locale(locale); + App.Globalize.add_language(locale); + return $(".js-add-language option:selected").removeAttr("selected"); + }, + display_translations: function(locale) { + $(".js-select-language option[value=" + locale + "]").prop("selected", true); + return $(".js-globalize-attribute").each(function() { + if ($(this).data("locale") === locale) { + $(this).show(); + } else { + $(this).hide(); + } + $(".js-delete-language").hide(); + return $(".js-delete-" + locale).show(); + }); + }, + add_language: function(locale) { + var language_option, option; + language_option = $(".js-add-language [value=" + locale + "]"); + if ($(".js-select-language option[value=" + locale + "]").length === 0) { + option = new Option(language_option.text(), language_option.val()); + $(".js-select-language").append(option); + } + return $(".js-select-language option[value=" + locale + "]").prop("selected", true); + }, + remove_language: function(locale) { + var next; + $(".js-globalize-attribute[data-locale=" + locale + "]").each(function() { + $(this).val("").hide(); + return App.Globalize.resetEditor(this); + }); + $(".js-select-language option[value=" + locale + "]").remove(); + next = $(".js-select-language option:not([value=''])").first(); + App.Globalize.display_translations(next.val()); + App.Globalize.disable_locale(locale); + App.Globalize.update_description(); + if ($(".js-select-language option").length === 1) { + return $(".js-select-language option").prop("selected", true); + } + }, + resetEditor: function(element) { + if (CKEDITOR.instances[$(element).attr("id")]) { + return CKEDITOR.instances[$(element).attr("id")].setData(""); + } + }, + enable_locale: function(locale) { + App.Globalize.destroy_locale_field(locale).val(false); + return App.Globalize.site_customization_enable_locale_field(locale).val(1); + }, + disable_locale: function(locale) { + App.Globalize.destroy_locale_field(locale).val(true); + return App.Globalize.site_customization_enable_locale_field(locale).val(0); + }, + enabled_locales: function() { + return $.map($(".js-select-language:first option:not([value=''])"), function(element) { + return $(element).val(); + }); + }, + destroy_locale_field: function(locale) { + return $("input[id$=_destroy][data-locale=" + locale + "]"); + }, + site_customization_enable_locale_field: function(locale) { + return $("#enabled_translations_" + locale); + }, + refresh_visible_translations: function() { + var locale; + locale = $(".js-select-language").val(); + return App.Globalize.display_translations(locale); + }, + update_description: function() { + var count, description; + count = App.Globalize.enabled_locales().length; + description = App.Globalize.language_description(count); + $(".js-languages-description").html(description); + return $(".js-languages-count").text(count); + }, + language_description: function(count) { + switch (count) { + case 0: + return $(".globalize-languages").data("zero-languages-description"); + case 1: + return $(".globalize-languages").data("one-languages-description"); + default: + return $(".globalize-languages").data("other-languages-description"); + } + }, + initialize: function() { + $(".js-add-language").on("change", function() { + var locale; + locale = $(this).val(); + App.Globalize.display_translations(locale); + App.Globalize.display_locale(locale); + return App.Globalize.update_description(); + }); + $(".js-select-language").on("change", function() { + return App.Globalize.display_translations($(this).val()); + }); + $(".js-delete-language").on("click", function(e) { + e.preventDefault(); + App.Globalize.remove_language($(this).data("locale")); + return $(this).hide(); + }); + return $(".js-add-fields-container").on("cocoon:after-insert", function() { + return App.Globalize.enabled_locales().forEach(function(locale) { + return App.Globalize.enable_locale(locale); + }); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/globalize.js.coffee b/app/assets/javascripts/globalize.js.coffee deleted file mode 100644 index 46976864f..000000000 --- a/app/assets/javascripts/globalize.js.coffee +++ /dev/null @@ -1,101 +0,0 @@ -"use strict" - -App.Globalize = - - selected_language: -> - $("#select_language").val() - - display_locale: (locale) -> - App.Globalize.enable_locale(locale) - App.Globalize.add_language(locale) - $(".js-add-language option:selected").removeAttr("selected") - - display_translations: (locale) -> - $(".js-select-language option[value=#{locale}]").prop("selected", true) - $(".js-globalize-attribute").each -> - if $(this).data("locale") == locale - $(this).show() - else - $(this).hide() - $(".js-delete-language").hide() - $(".js-delete-" + locale).show() - - add_language: (locale) -> - language_option = $(".js-add-language [value=#{locale}]") - if $(".js-select-language option[value=#{locale}]").length == 0 - option = new Option(language_option.text(), language_option.val()) - $(".js-select-language").append(option) - $(".js-select-language option[value=#{locale}]").prop("selected", true) - - remove_language: (locale) -> - $(".js-globalize-attribute[data-locale=#{locale}]").each -> - $(this).val("").hide() - App.Globalize.resetEditor(this) - - $(".js-select-language option[value=#{locale}]").remove() - next = $(".js-select-language option:not([value=''])").first() - App.Globalize.display_translations(next.val()) - App.Globalize.disable_locale(locale) - App.Globalize.update_description() - - if $(".js-select-language option").length == 1 - $(".js-select-language option").prop("selected", true) - - resetEditor: (element) -> - if CKEDITOR.instances[$(element).attr("id")] - CKEDITOR.instances[$(element).attr("id")].setData("") - - enable_locale: (locale) -> - App.Globalize.destroy_locale_field(locale).val(false) - App.Globalize.site_customization_enable_locale_field(locale).val(1) - - disable_locale: (locale) -> - App.Globalize.destroy_locale_field(locale).val(true) - App.Globalize.site_customization_enable_locale_field(locale).val(0) - - enabled_locales: -> - $.map( - $(".js-select-language:first option:not([value=''])"), - (element) -> $(element).val() - ) - - destroy_locale_field: (locale) -> - $("input[id$=_destroy][data-locale=#{locale}]") - - site_customization_enable_locale_field: (locale) -> - $("#enabled_translations_#{locale}") - - refresh_visible_translations: -> - locale = $(".js-select-language").val() - App.Globalize.display_translations(locale) - - update_description: -> - count = App.Globalize.enabled_locales().length - description = App.Globalize.language_description(count) - $(".js-languages-description").html(description) - $(".js-languages-count").text(count) - - language_description: (count) -> - switch count - when 0 then $(".globalize-languages").data("zero-languages-description") - when 1 then $(".globalize-languages").data("one-languages-description") - else $(".globalize-languages").data("other-languages-description") - - initialize: -> - $(".js-add-language").on "change", -> - locale = $(this).val() - App.Globalize.display_translations(locale) - App.Globalize.display_locale(locale) - App.Globalize.update_description() - - $(".js-select-language").on "change", -> - App.Globalize.display_translations($(this).val()) - - $(".js-delete-language").on "click", (e) -> - e.preventDefault() - App.Globalize.remove_language($(this).data("locale")) - $(this).hide() - - $(".js-add-fields-container").on "cocoon:after-insert", -> - App.Globalize.enabled_locales().forEach (locale) -> - App.Globalize.enable_locale(locale) diff --git a/app/assets/javascripts/ie_alert.js b/app/assets/javascripts/ie_alert.js new file mode 100644 index 000000000..b587bfcdc --- /dev/null +++ b/app/assets/javascripts/ie_alert.js @@ -0,0 +1,20 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.IeAlert = { + set_cookie_and_hide: function(event) { + event.preventDefault(); + $.cookie("ie_alert_closed", "true", { + path: "/", + expires: 365 + }); + return $(".ie-callout").remove(); + }, + initialize: function() { + return $(".ie-callout-close-js").on("click", function(event) { + return App.IeAlert.set_cookie_and_hide(event); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/ie_alert.js.coffee b/app/assets/javascripts/ie_alert.js.coffee deleted file mode 100644 index 75338974b..000000000 --- a/app/assets/javascripts/ie_alert.js.coffee +++ /dev/null @@ -1,11 +0,0 @@ -"use strict" - -App.IeAlert = - set_cookie_and_hide: (event) -> - event.preventDefault() - $.cookie("ie_alert_closed", "true", { path: "/", expires: 365 }) - $(".ie-callout").remove() - - initialize: -> - $(".ie-callout-close-js").on "click", (event) -> - App.IeAlert.set_cookie_and_hide(event) diff --git a/app/assets/javascripts/imageable.js b/app/assets/javascripts/imageable.js new file mode 100644 index 000000000..3de4e5e19 --- /dev/null +++ b/app/assets/javascripts/imageable.js @@ -0,0 +1,176 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Imageable = { + initialize: function() { + $(".js-image-attachment").each(function() { + return App.Imageable.initializeDirectUploadInput(this); + }); + $("#nested-image").on("cocoon:after-remove", function() { + return $("#new_image_link").removeClass("hide"); + }); + $("#nested-image").on("cocoon:before-insert", function() { + return $(".js-image-attachment").closest(".image").remove(); + }); + return $("#nested-image").on("cocoon:after-insert", function(e, nested_image) { + var input; + $("#new_image_link").addClass("hide"); + input = $(nested_image).find(".js-image-attachment"); + return App.Imageable.initializeDirectUploadInput(input); + }); + }, + initializeDirectUploadInput: function(input) { + var inputData; + inputData = this.buildData([], input); + this.initializeRemoveCachedImageLink(input, inputData); + return $(input).fileupload({ + paramName: "attachment", + formData: null, + add: function(e, data) { + var upload_data; + upload_data = App.Imageable.buildData(data, e.target); + App.Imageable.clearProgressBar(upload_data); + App.Imageable.setProgressBar(upload_data, "uploading"); + return upload_data.submit(); + }, + change: function(e, data) { + return data.files.forEach(function(file) { + return App.Imageable.setFilename(inputData, file.name); + }); + }, + fail: function(e, data) { + $(data.cachedAttachmentField).val(""); + App.Imageable.clearFilename(data); + App.Imageable.setProgressBar(data, "errors"); + App.Imageable.clearInputErrors(data); + App.Imageable.setInputErrors(data); + App.Imageable.clearPreview(data); + $(data.destroyAttachmentLinkContainer).find("a.delete:not(.remove-nested)").remove(); + $(data.addAttachmentLabel).addClass("error"); + return $(data.addAttachmentLabel).show(); + }, + done: function(e, data) { + var destroyAttachmentLink; + $(data.cachedAttachmentField).val(data.result.cached_attachment); + App.Imageable.setTitleFromFile(data, data.result.filename); + App.Imageable.setProgressBar(data, "complete"); + App.Imageable.setFilename(data, data.result.filename); + App.Imageable.clearInputErrors(data); + $(data.addAttachmentLabel).hide(); + $(data.wrapper).find(".attachment-actions").removeClass("small-12").addClass("small-6 float-right"); + $(data.wrapper).find(".attachment-actions .action-remove").removeClass("small-3").addClass("small-12"); + App.Imageable.setPreview(data); + destroyAttachmentLink = $(data.result.destroy_link); + $(data.destroyAttachmentLinkContainer).html(destroyAttachmentLink); + return $(destroyAttachmentLink).on("click", function(e) { + e.preventDefault(); + e.stopPropagation(); + return App.Imageable.doDeleteCachedAttachmentRequest(this.href, data); + }); + }, + progress: function(e, data) { + var progress; + progress = parseInt(data.loaded / data.total * 100, 10); + $(data.progressBar).find(".loading-bar").css("width", progress + "%"); + } + }); + }, + buildData: function(data, input) { + var wrapper; + wrapper = $(input).closest(".direct-upload"); + data.input = input; + data.wrapper = wrapper; + data.progressBar = $(wrapper).find(".progress-bar-placeholder"); + data.preview = $(wrapper).find(".image-preview"); + data.errorContainer = $(wrapper).find(".attachment-errors"); + data.fileNameContainer = $(wrapper).find("p.file-name"); + data.destroyAttachmentLinkContainer = $(wrapper).find(".action-remove"); + data.addAttachmentLabel = $(wrapper).find(".action-add label"); + data.cachedAttachmentField = $(wrapper).find("input[name$='[cached_attachment]']"); + data.titleField = $(wrapper).find("input[name$='[title]']"); + $(wrapper).find(".progress-bar-placeholder").css("display", "block"); + return data; + }, + clearFilename: function(data) { + $(data.fileNameContainer).text(""); + return $(data.fileNameContainer).hide(); + }, + clearInputErrors: function(data) { + return $(data.errorContainer).find("small.error").remove(); + }, + clearProgressBar: function(data) { + return $(data.progressBar).find(".loading-bar").removeClass("complete errors uploading").css("width", "0px"); + }, + clearPreview: function(data) { + return $(data.wrapper).find(".image-preview").remove(); + }, + setFilename: function(data, file_name) { + $(data.fileNameContainer).text(file_name); + return $(data.fileNameContainer).show(); + }, + setProgressBar: function(data, klass) { + return $(data.progressBar).find(".loading-bar").addClass(klass); + }, + setTitleFromFile: function(data, title) { + if ($(data.titleField).val() === "") { + return $(data.titleField).val(title); + } + }, + setInputErrors: function(data) { + var errors; + errors = "" + data.jqXHR.responseJSON.errors + ""; + return $(data.errorContainer).append(errors); + }, + setPreview: function(data) { + var image_preview; + image_preview = "
    "; + if ($(data.preview).length > 0) { + return $(data.preview).replaceWith(image_preview); + } else { + $(image_preview).insertBefore($(data.wrapper).find(".attachment-actions")); + return data.preview = $(data.wrapper).find(".image-preview"); + } + }, + doDeleteCachedAttachmentRequest: function(url, data) { + return $.ajax({ + type: "POST", + url: url, + dataType: "json", + data: { + "_method": "delete" + }, + complete: function() { + $(data.cachedAttachmentField).val(""); + $(data.addAttachmentLabel).show(); + App.Imageable.clearFilename(data); + App.Imageable.clearInputErrors(data); + App.Imageable.clearProgressBar(data); + App.Imageable.clearPreview(data); + $("#new_image_link").removeClass("hide"); + $(data.wrapper).find(".attachment-actions").addClass("small-12").removeClass("small-6 float-right"); + $(data.wrapper).find(".attachment-actions .action-remove").addClass("small-3").removeClass("small-12"); + if ($(data.input).data("nested-image") === true) { + return $(data.wrapper).remove(); + } else { + return $(data.wrapper).find("a.remove-cached-attachment").remove(); + } + } + }); + }, + initializeRemoveCachedImageLink: function(input, data) { + var remove_image_link, wrapper; + wrapper = $(input).closest(".direct-upload"); + remove_image_link = $(wrapper).find("a.remove-cached-attachment"); + return $(remove_image_link).on("click", function(e) { + e.preventDefault(); + e.stopPropagation(); + return App.Imageable.doDeleteCachedAttachmentRequest(this.href, data); + }); + }, + removeImage: function(id) { + $("#" + id).remove(); + return $("#new_image_link").removeClass("hide"); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/imageable.js.coffee b/app/assets/javascripts/imageable.js.coffee deleted file mode 100644 index 656514484..000000000 --- a/app/assets/javascripts/imageable.js.coffee +++ /dev/null @@ -1,162 +0,0 @@ -"use strict" - -App.Imageable = - - initialize: -> - $(".js-image-attachment").each -> - App.Imageable.initializeDirectUploadInput(this) - - $("#nested-image").on "cocoon:after-remove", -> - $("#new_image_link").removeClass("hide") - - $("#nested-image").on "cocoon:before-insert", -> - $(".js-image-attachment").closest(".image").remove() - - $("#nested-image").on "cocoon:after-insert", (e, nested_image) -> - $("#new_image_link").addClass("hide") - input = $(nested_image).find(".js-image-attachment") - App.Imageable.initializeDirectUploadInput(input) - - initializeDirectUploadInput: (input) -> - - inputData = this.buildData([], input) - - this.initializeRemoveCachedImageLink(input, inputData) - - $(input).fileupload - - paramName: "attachment" - - formData: null - - add: (e, data) -> - upload_data = App.Imageable.buildData(data, e.target) - App.Imageable.clearProgressBar(upload_data) - App.Imageable.setProgressBar(upload_data, "uploading") - upload_data.submit() - - change: (e, data) -> - data.files.forEach (file) -> - App.Imageable.setFilename(inputData, file.name) - - fail: (e, data) -> - $(data.cachedAttachmentField).val("") - App.Imageable.clearFilename(data) - App.Imageable.setProgressBar(data, "errors") - App.Imageable.clearInputErrors(data) - App.Imageable.setInputErrors(data) - App.Imageable.clearPreview(data) - $(data.destroyAttachmentLinkContainer).find("a.delete:not(.remove-nested)").remove() - $(data.addAttachmentLabel).addClass("error") - $(data.addAttachmentLabel).show() - - done: (e, data) -> - $(data.cachedAttachmentField).val(data.result.cached_attachment) - App.Imageable.setTitleFromFile(data, data.result.filename) - App.Imageable.setProgressBar(data, "complete") - App.Imageable.setFilename(data, data.result.filename) - App.Imageable.clearInputErrors(data) - $(data.addAttachmentLabel).hide() - $(data.wrapper).find(".attachment-actions").removeClass("small-12").addClass("small-6 float-right") - $(data.wrapper).find(".attachment-actions .action-remove").removeClass("small-3").addClass("small-12") - App.Imageable.setPreview(data) - - destroyAttachmentLink = $(data.result.destroy_link) - $(data.destroyAttachmentLinkContainer).html(destroyAttachmentLink) - $(destroyAttachmentLink).on "click", (e) -> - e.preventDefault() - e.stopPropagation() - App.Imageable.doDeleteCachedAttachmentRequest(this.href, data) - - progress: (e, data) -> - progress = parseInt(data.loaded / data.total * 100, 10) - $(data.progressBar).find(".loading-bar").css "width", "#{progress}%" - return - - buildData: (data, input) -> - wrapper = $(input).closest(".direct-upload") - data.input = input - data.wrapper = wrapper - data.progressBar = $(wrapper).find(".progress-bar-placeholder") - data.preview = $(wrapper).find(".image-preview") - data.errorContainer = $(wrapper).find(".attachment-errors") - data.fileNameContainer = $(wrapper).find("p.file-name") - data.destroyAttachmentLinkContainer = $(wrapper).find(".action-remove") - data.addAttachmentLabel = $(wrapper).find(".action-add label") - data.cachedAttachmentField = $(wrapper).find("input[name$='[cached_attachment]']") - data.titleField = $(wrapper).find("input[name$='[title]']") - $(wrapper).find(".progress-bar-placeholder").css("display", "block") - return data - - clearFilename: (data) -> - $(data.fileNameContainer).text("") - $(data.fileNameContainer).hide() - - clearInputErrors: (data) -> - $(data.errorContainer).find("small.error").remove() - - clearProgressBar: (data) -> - $(data.progressBar).find(".loading-bar").removeClass("complete errors uploading").css("width", "0px") - - clearPreview: (data) -> - $(data.wrapper).find(".image-preview").remove() - - setFilename: (data, file_name) -> - $(data.fileNameContainer).text(file_name) - $(data.fileNameContainer).show() - - setProgressBar: (data, klass) -> - $(data.progressBar).find(".loading-bar").addClass(klass) - - setTitleFromFile: (data, title) -> - if $(data.titleField).val() == "" - $(data.titleField).val(title) - - setInputErrors: (data) -> - errors = "#{data.jqXHR.responseJSON.errors}" - $(data.errorContainer).append(errors) - - setPreview: (data) -> - image_preview = "
    " - if $(data.preview).length > 0 - $(data.preview).replaceWith(image_preview) - else - $(image_preview).insertBefore($(data.wrapper).find(".attachment-actions")) - data.preview = $(data.wrapper).find(".image-preview") - - doDeleteCachedAttachmentRequest: (url, data) -> - $.ajax - type: "POST" - url: url - dataType: "json" - data: { "_method": "delete" } - complete: -> - $(data.cachedAttachmentField).val("") - $(data.addAttachmentLabel).show() - - App.Imageable.clearFilename(data) - App.Imageable.clearInputErrors(data) - App.Imageable.clearProgressBar(data) - App.Imageable.clearPreview(data) - - $("#new_image_link").removeClass("hide") - - $(data.wrapper).find(".attachment-actions").addClass("small-12").removeClass("small-6 float-right") - $(data.wrapper).find(".attachment-actions .action-remove").addClass("small-3").removeClass("small-12") - - if $(data.input).data("nested-image") == true - $(data.wrapper).remove() - else - $(data.wrapper).find("a.remove-cached-attachment").remove() - - initializeRemoveCachedImageLink: (input, data) -> - wrapper = $(input).closest(".direct-upload") - remove_image_link = $(wrapper).find("a.remove-cached-attachment") - $(remove_image_link).on "click", (e) -> - e.preventDefault() - e.stopPropagation() - App.Imageable.doDeleteCachedAttachmentRequest(this.href, data) - - removeImage: (id) -> - $("##{id}").remove() - $("#new_image_link").removeClass("hide") diff --git a/app/assets/javascripts/investment_report_alert.js b/app/assets/javascripts/investment_report_alert.js new file mode 100644 index 000000000..21272a631 --- /dev/null +++ b/app/assets/javascripts/investment_report_alert.js @@ -0,0 +1,16 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.InvestmentReportAlert = { + initialize: function() { + return $("#js-investment-report-alert").on("click", function() { + if (this.checked && $("#budget_investment_feasibility_unfeasible").is(":checked")) { + return confirm(this.dataset.alert + "\n" + this.dataset.notFeasibleAlert); + } else if (this.checked) { + return confirm(this.dataset.alert); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/investment_report_alert.js.coffee b/app/assets/javascripts/investment_report_alert.js.coffee deleted file mode 100644 index d968deb55..000000000 --- a/app/assets/javascripts/investment_report_alert.js.coffee +++ /dev/null @@ -1,9 +0,0 @@ -"use strict" - -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}") - else if this.checked - confirm(this.dataset.alert) diff --git a/app/assets/javascripts/legislation.js b/app/assets/javascripts/legislation.js new file mode 100644 index 000000000..cb1f5d316 --- /dev/null +++ b/app/assets/javascripts/legislation.js @@ -0,0 +1,21 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Legislation = { + initialize: function() { + $("form#new_legislation_answer input.button").hide(); + $("form#new_legislation_answer input[type=radio]").on({ + click: function() { + return $("form#new_legislation_answer").submit(); + } + }); + $("form#draft_version_go_to_version input.button").hide(); + return $("form#draft_version_go_to_version select").on({ + change: function() { + return $("form#draft_version_go_to_version").submit(); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/legislation.js.coffee b/app/assets/javascripts/legislation.js.coffee deleted file mode 100644 index d2c710c80..000000000 --- a/app/assets/javascripts/legislation.js.coffee +++ /dev/null @@ -1,14 +0,0 @@ -"use strict" - -App.Legislation = - - initialize: -> - $("form#new_legislation_answer input.button").hide() - $("form#new_legislation_answer input[type=radio]").on - click: -> - $("form#new_legislation_answer").submit() - - $("form#draft_version_go_to_version input.button").hide() - $("form#draft_version_go_to_version select").on - change: -> - $("form#draft_version_go_to_version").submit() diff --git a/app/assets/javascripts/legislation_admin.js b/app/assets/javascripts/legislation_admin.js new file mode 100644 index 000000000..607e534d1 --- /dev/null +++ b/app/assets/javascripts/legislation_admin.js @@ -0,0 +1,27 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.LegislationAdmin = { + initialize: function() { + $("input[type='checkbox'][data-disable-date]").on({ + change: function() { + var checkbox, date_selector, parent; + checkbox = $(this); + parent = $(this).parents(".row:eq(0)"); + date_selector = $(this).data("disable-date"); + return parent.find("input[type='text'][id^='" + date_selector + "']").each(function() { + if (checkbox.is(":checked")) { + return $(this).removeAttr("disabled"); + } else { + return $(this).val(""); + } + }); + } + }); + return $("#nested_question_options").on("cocoon:after-insert", function() { + return App.Globalize.refresh_visible_translations(); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/legislation_admin.js.coffee b/app/assets/javascripts/legislation_admin.js.coffee deleted file mode 100644 index 847c39663..000000000 --- a/app/assets/javascripts/legislation_admin.js.coffee +++ /dev/null @@ -1,18 +0,0 @@ -"use strict" - -App.LegislationAdmin = - - initialize: -> - $("input[type='checkbox'][data-disable-date]").on - change: -> - checkbox = $(this) - parent = $(this).parents(".row:eq(0)") - date_selector = $(this).data("disable-date") - parent.find("input[type='text'][id^='#{date_selector}']").each -> - if checkbox.is(":checked") - $(this).removeAttr("disabled") - else - $(this).val("") - - $("#nested_question_options").on "cocoon:after-insert", -> - App.Globalize.refresh_visible_translations() diff --git a/app/assets/javascripts/legislation_allegations.js b/app/assets/javascripts/legislation_allegations.js new file mode 100644 index 000000000..718f38ba2 --- /dev/null +++ b/app/assets/javascripts/legislation_allegations.js @@ -0,0 +1,38 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.LegislationAllegations = { + toggle_comments: function() { + if (!App.LegislationAnnotatable.isMobile()) { + $(".draft-allegation").toggleClass("comments-on"); + return $("#comments-box").html("").hide(); + } + }, + show_comments: function() { + if (!App.LegislationAnnotatable.isMobile()) { + return $(".draft-allegation").addClass("comments-on"); + } + }, + initialize: function() { + $(".js-toggle-allegations .draft-panel").on({ + click: function(e) { + e.preventDefault(); + e.stopPropagation(); + if (!App.LegislationAnnotatable.isMobile()) { + return App.LegislationAllegations.toggle_comments(); + } + } + }); + return $(".js-toggle-allegations").on({ + click: function() { + if (!App.LegislationAnnotatable.isMobile()) { + if ($(this).find(".draft-panel .panel-title:visible").length === 0) { + return App.LegislationAllegations.toggle_comments(); + } + } + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/legislation_allegations.js.coffee b/app/assets/javascripts/legislation_allegations.js.coffee deleted file mode 100644 index 4823d1e58..000000000 --- a/app/assets/javascripts/legislation_allegations.js.coffee +++ /dev/null @@ -1,27 +0,0 @@ -"use strict" - -App.LegislationAllegations = - - toggle_comments: -> - if !App.LegislationAnnotatable.isMobile() - $(".draft-allegation").toggleClass("comments-on") - $("#comments-box").html("").hide() - - show_comments: -> - if !App.LegislationAnnotatable.isMobile() - $(".draft-allegation").addClass("comments-on") - - initialize: -> - $(".js-toggle-allegations .draft-panel").on - click: (e) -> - e.preventDefault() - e.stopPropagation() - if !App.LegislationAnnotatable.isMobile() - App.LegislationAllegations.toggle_comments() - - $(".js-toggle-allegations").on - click: -> - # Toggle comments when the section title is visible - if !App.LegislationAnnotatable.isMobile() - if $(this).find(".draft-panel .panel-title:visible").length == 0 - App.LegislationAllegations.toggle_comments() diff --git a/app/assets/javascripts/legislation_annotatable.js b/app/assets/javascripts/legislation_annotatable.js new file mode 100644 index 000000000..91adb7cf9 --- /dev/null +++ b/app/assets/javascripts/legislation_annotatable.js @@ -0,0 +1,235 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.LegislationAnnotatable = { + makeEditableAndHighlight: function(colour) { + var range, sel; + sel = window.getSelection(); + if (sel.rangeCount && sel.getRangeAt) { + range = sel.getRangeAt(0); + } + document.designMode = "on"; + if (range) { + sel.removeAllRanges(); + sel.addRange(range); + } + if (!document.execCommand("HiliteColor", false, colour)) { + document.execCommand("BackColor", false, colour); + } + document.designMode = "off"; + }, + highlight: function(colour) { + try { + if (!document.execCommand("BackColor", false, colour)) { + App.LegislationAnnotatable.makeEditableAndHighlight(colour); + } + } catch (error) { + App.LegislationAnnotatable.makeEditableAndHighlight(colour); + } + }, + remove_highlight: function() { + $("[data-legislation-draft-version-id] span[style]").replaceWith(function() { + return $(this).contents(); + }); + }, + renderAnnotationComments: function(event) { + if (event.offset) { + $("#comments-box").css({ + top: event.offset - $(".calc-comments").offset().top + }); + } + if (App.LegislationAnnotatable.isMobile()) { + return; + } + return $.ajax({ + method: "GET", + url: event.annotation_url + "/annotations/" + event.annotation_id + "/comments", + dataType: "script" + }); + }, + onClick: function(event) { + var annotation_id, annotation_url, parents, parents_ids, target; + event.preventDefault(); + event.stopPropagation(); + if (App.LegislationAnnotatable.isMobile()) { + annotation_url = $(event.target).closest(".legislation-annotatable").data("legislation-annotatable-base-url"); + window.location.href = annotation_url + "/annotations/" + ($(this).data("annotation-id")); + return; + } + $("[data-annotation-id]").removeClass("current-annotation"); + target = $(this); + parents = target.parents(".annotator-hl"); + parents_ids = parents.map(function(_, elem) { + return $(elem).data("annotation-id"); + }); + annotation_id = target.data("annotation-id"); + $("[data-annotation-id='" + annotation_id + "']").addClass("current-annotation"); + $("#comments-box").html(""); + App.LegislationAllegations.show_comments(); + $("#comments-box").show(); + $.event.trigger({ + type: "renderLegislationAnnotation", + annotation_id: target.data("annotation-id"), + annotation_url: target.closest(".legislation-annotatable").data("legislation-annotatable-base-url"), + offset: target.offset()["top"] + }); + return parents_ids.each(function(i, pid) { + return $.event.trigger({ + type: "renderLegislationAnnotation", + annotation_id: pid, + annotation_url: target.closest(".legislation-annotatable").data("legislation-annotatable-base-url") + }); + }); + }, + isMobile: function() { + return window.innerWidth <= 652; + }, + viewerExtension: function(viewer) { + return viewer._onHighlightMouseover = function() {}; + }, + customShow: function(position) { + var annotation_url; + $(this.element).html(""); + // Clean comments section and open it + $("#comments-box").html(""); + App.LegislationAllegations.show_comments(); + $("#comments-box").show(); + annotation_url = $("[data-legislation-annotatable-base-url]").data("legislation-annotatable-base-url"); + return $.ajax({ + method: "GET", + url: annotation_url + "/annotations/new", + dataType: "script" + }).done((function() { + $("#new_legislation_annotation #legislation_annotation_quote").val(this.annotation.quote); + $("#new_legislation_annotation #legislation_annotation_ranges").val(JSON.stringify(this.annotation.ranges)); + $("#comments-box").css({ + top: position.top - $(".calc-comments").offset().top + }); + if ($("[data-legislation-open-phase]").data("legislation-open-phase") !== false) { + App.LegislationAnnotatable.highlight("#7fff9a"); + $("#comments-box textarea").focus(); + $("#new_legislation_annotation").on("ajax:complete", function(e, data) { + App.LegislationAnnotatable.app.destroy(); + if (data.status === 200) { + App.LegislationAnnotatable.remove_highlight(); + $("#comments-box").html("").hide(); + $.ajax({ + method: "GET", + url: annotation_url + "/annotations/" + data.responseJSON.id + "/comments", + dataType: "script" + }); + } else { + $(e.target).find("label").addClass("error"); + $("" + data.responseJSON[0] + "").insertAfter($(e.target).find("textarea")); + } + return true; + }); + } + }).bind(this)); + }, + editorExtension: function(editor) { + return editor.show = App.LegislationAnnotatable.customShow; + }, + scrollToAnchor: function() { + return { + annotationsLoaded: function() { + var anchor, ann_id, checkExist; + anchor = $(location).attr("hash"); + if (anchor && anchor.startsWith("#annotation")) { + ann_id = anchor.split("-").slice(-1); + return checkExist = setInterval((function() { + var el; + if ($("span[data-annotation-id='" + ann_id + "']").length) { + el = $("span[data-annotation-id='" + ann_id + "']"); + el.addClass("current-annotation"); + $("#comments-box").html(""); + App.LegislationAllegations.show_comments(); + $("html,body").animate({ + scrollTop: el.offset().top + }); + $.event.trigger({ + type: "renderLegislationAnnotation", + annotation_id: ann_id, + annotation_url: el.closest(".legislation-annotatable").data("legislation-annotatable-base-url"), + offset: el.offset()["top"] + }); + clearInterval(checkExist); + } + }), 100); + } + } + }; + }, + propotionalWeight: function(v, max) { + return Math.floor(v * 5 / (max + 1)) + 1; + }, + addWeightClasses: function() { + return { + annotationsLoaded: function(annotations) { + var checkExist, last_annotation, max_weight, weights; + if (annotations.length === 0) { + return; + } + weights = annotations.map(function(ann) { + return ann.weight; + }); + max_weight = Math.max.apply(null, weights); + last_annotation = annotations[annotations.length - 1]; + return checkExist = setInterval((function() { + if ($("span[data-annotation-id='" + last_annotation.id + "']").length) { + annotations.forEach(function(annotation) { + var ann_weight, el; + ann_weight = App.LegislationAnnotatable.propotionalWeight(annotation.weight, max_weight); + el = $("span[data-annotation-id='" + annotation.id + "']"); + return el.addClass("weight-" + ann_weight); + }); + clearInterval(checkExist); + } + }), 100); + } + }; + }, + initialize: function() { + var current_user_id; + $(document).off("renderLegislationAnnotation").on("renderLegislationAnnotation", App.LegislationAnnotatable.renderAnnotationComments); + $(document).off("click", "[data-annotation-id]").on("click", "[data-annotation-id]", App.LegislationAnnotatable.onClick); + $(document).off("click", "[data-cancel-annotation]").on("click", "[data-cancel-annotation]", function(e) { + e.preventDefault(); + $("#comments-box").html(""); + $("#comments-box").hide(); + App.LegislationAnnotatable.remove_highlight(); + }); + current_user_id = $("html").data("current-user-id"); + return $(".legislation-annotatable").each(function() { + var ann_id, base_url; + ann_id = $(this).data("legislation-draft-version-id"); + base_url = $(this).data("legislation-annotatable-base-url"); + App.LegislationAnnotatable.app = new annotator.App().include(function() { + return { + beforeAnnotationCreated: function(ann) { + ann["legislation_draft_version_id"] = ann_id; + ann.permissions = ann.permissions || {}; + return ann.permissions.admin = []; + } + }; + }).include(annotator.ui.main, { + element: this, + viewerExtensions: [App.LegislationAnnotatable.viewerExtension], + editorExtensions: [App.LegislationAnnotatable.editorExtension] + }).include(App.LegislationAnnotatable.scrollToAnchor).include(App.LegislationAnnotatable.addWeightClasses).include(annotator.storage.http, { + prefix: base_url, + urls: { + search: "/annotations/search" + } + }); + return App.LegislationAnnotatable.app.start().then(function() { + App.LegislationAnnotatable.app.ident.identity = current_user_id; + return App.LegislationAnnotatable.app.annotations.load({ + legislation_draft_version_id: ann_id + }); + }); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/legislation_annotatable.js.coffee b/app/assets/javascripts/legislation_annotatable.js.coffee deleted file mode 100644 index fc985e749..000000000 --- a/app/assets/javascripts/legislation_annotatable.js.coffee +++ /dev/null @@ -1,205 +0,0 @@ -"use strict" - -App.LegislationAnnotatable = - - makeEditableAndHighlight: (colour) -> - sel = window.getSelection() - if sel.rangeCount and sel.getRangeAt - range = sel.getRangeAt(0) - document.designMode = "on" - if range - sel.removeAllRanges() - sel.addRange range - # Use HiliteColor since some browsers apply BackColor to the whole block - if !document.execCommand("HiliteColor", false, colour) - document.execCommand "BackColor", false, colour - document.designMode = "off" - return - - highlight: (colour) -> - try - if !document.execCommand("BackColor", false, colour) - App.LegislationAnnotatable.makeEditableAndHighlight colour - catch - App.LegislationAnnotatable.makeEditableAndHighlight colour - - return - - remove_highlight: -> - $("[data-legislation-draft-version-id] span[style]").replaceWith(-> - return $(this).contents() - ) - return - - renderAnnotationComments: (event) -> - if event.offset - $("#comments-box").css({ top: event.offset - $(".calc-comments").offset().top }) - - if App.LegislationAnnotatable.isMobile() - return - - $.ajax - method: "GET" - url: "#{event.annotation_url}/annotations/#{event.annotation_id}/comments" - dataType: "script" - - onClick: (event) -> - event.preventDefault() - event.stopPropagation() - - if App.LegislationAnnotatable.isMobile() - annotation_url = $(event.target).closest(".legislation-annotatable").data("legislation-annotatable-base-url") - window.location.href = "#{annotation_url}/annotations/#{$(this).data("annotation-id")}" - return - - $("[data-annotation-id]").removeClass("current-annotation") - - target = $(this) - - parents = target.parents(".annotator-hl") - parents_ids = parents.map (_, elem) -> - $(elem).data("annotation-id") - - annotation_id = target.data("annotation-id") - $("[data-annotation-id='#{annotation_id}']").addClass("current-annotation") - - $("#comments-box").html("") - App.LegislationAllegations.show_comments() - $("#comments-box").show() - - $.event.trigger - type: "renderLegislationAnnotation" - annotation_id: target.data("annotation-id") - annotation_url: target.closest(".legislation-annotatable").data("legislation-annotatable-base-url") - offset: target.offset()["top"] - - parents_ids.each (i, pid) -> - $.event.trigger - type: "renderLegislationAnnotation" - annotation_id: pid - annotation_url: target.closest(".legislation-annotatable").data("legislation-annotatable-base-url") - - isMobile: -> - return window.innerWidth <= 652 - - viewerExtension: (viewer) -> - viewer._onHighlightMouseover = -> - return - - customShow: (position) -> - $(this.element).html "" - # Clean comments section and open it - $("#comments-box").html "" - App.LegislationAllegations.show_comments() - $("#comments-box").show() - - annotation_url = $("[data-legislation-annotatable-base-url]").data("legislation-annotatable-base-url") - $.ajax( - method: "GET" - url: "#{annotation_url}/annotations/new" - dataType: "script").done (-> - $("#new_legislation_annotation #legislation_annotation_quote").val(this.annotation.quote) - $("#new_legislation_annotation #legislation_annotation_ranges").val(JSON.stringify(this.annotation.ranges)) - $("#comments-box").css({ top: position.top - $(".calc-comments").offset().top }) - - unless $("[data-legislation-open-phase]").data("legislation-open-phase") == false - App.LegislationAnnotatable.highlight("#7fff9a") - $("#comments-box textarea").focus() - - $("#new_legislation_annotation").on("ajax:complete", (e, data) -> - App.LegislationAnnotatable.app.destroy() - if data.status == 200 - App.LegislationAnnotatable.remove_highlight() - $("#comments-box").html("").hide() - $.ajax - method: "GET" - url: "#{annotation_url}/annotations/#{data.responseJSON.id}/comments" - dataType: "script" - else - $(e.target).find("label").addClass("error") - $("#{data.responseJSON[0]}").insertAfter($(e.target).find("textarea")) - return true - ) - return - ).bind(this) - - editorExtension: (editor) -> - editor.show = App.LegislationAnnotatable.customShow - - scrollToAnchor: -> - annotationsLoaded: -> - anchor = $(location).attr("hash") - if anchor && anchor.startsWith("#annotation") - ann_id = anchor.split("-")[-1..] - - checkExist = setInterval((-> - if $("span[data-annotation-id='#{ann_id}']").length - el = $("span[data-annotation-id='#{ann_id}']") - el.addClass("current-annotation") - $("#comments-box").html("") - App.LegislationAllegations.show_comments() - $("html,body").animate({ scrollTop: el.offset().top }) - $.event.trigger - type: "renderLegislationAnnotation" - annotation_id: ann_id - annotation_url: el.closest(".legislation-annotatable").data("legislation-annotatable-base-url") - offset: el.offset()["top"] - clearInterval checkExist - return - ), 100) - - propotionalWeight: (v, max) -> - Math.floor(v * 5 / (max + 1)) + 1 - - addWeightClasses: -> - annotationsLoaded: (annotations) -> - return if annotations.length == 0 - weights = annotations.map (ann) -> ann.weight - max_weight = Math.max.apply(null, weights) - last_annotation = annotations[annotations.length - 1] - - checkExist = setInterval((-> - if $("span[data-annotation-id='#{last_annotation.id}']").length - annotations.forEach (annotation) -> - ann_weight = App.LegislationAnnotatable.propotionalWeight(annotation.weight, max_weight) - el = $("span[data-annotation-id='#{annotation.id}']") - el.addClass("weight-#{ann_weight}") - clearInterval checkExist - return - ), 100) - - initialize: -> - $(document).off("renderLegislationAnnotation").on("renderLegislationAnnotation", App.LegislationAnnotatable.renderAnnotationComments) - $(document).off("click", "[data-annotation-id]").on("click", "[data-annotation-id]", App.LegislationAnnotatable.onClick) - $(document).off("click", "[data-cancel-annotation]").on("click", "[data-cancel-annotation]", (e) -> - e.preventDefault() - $("#comments-box").html("") - $("#comments-box").hide() - App.LegislationAnnotatable.remove_highlight() - return - ) - - current_user_id = $("html").data("current-user-id") - - $(".legislation-annotatable").each -> - ann_id = $(this).data("legislation-draft-version-id") - base_url = $(this).data("legislation-annotatable-base-url") - - App.LegislationAnnotatable.app = new annotator.App() - .include -> - beforeAnnotationCreated: (ann) -> - ann["legislation_draft_version_id"] = ann_id - ann.permissions = ann.permissions || {} - ann.permissions.admin = [] - .include(annotator.ui.main, { - element: this, - viewerExtensions: [App.LegislationAnnotatable.viewerExtension], - editorExtensions: [App.LegislationAnnotatable.editorExtension] - }) - .include(App.LegislationAnnotatable.scrollToAnchor) - .include(App.LegislationAnnotatable.addWeightClasses) - .include(annotator.storage.http, { prefix: base_url, urls: { search: "/annotations/search" } }) - - App.LegislationAnnotatable.app.start().then -> - App.LegislationAnnotatable.app.ident.identity = current_user_id - App.LegislationAnnotatable.app.annotations.load(legislation_draft_version_id: ann_id) diff --git a/app/assets/javascripts/location_changer.js b/app/assets/javascripts/location_changer.js new file mode 100644 index 000000000..1d612457e --- /dev/null +++ b/app/assets/javascripts/location_changer.js @@ -0,0 +1,12 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.LocationChanger = { + initialize: function() { + return $(".js-location-changer").on("change", function() { + return window.location.assign($(this).val()); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/location_changer.js.coffee b/app/assets/javascripts/location_changer.js.coffee deleted file mode 100644 index 409e5a3c0..000000000 --- a/app/assets/javascripts/location_changer.js.coffee +++ /dev/null @@ -1,7 +0,0 @@ -"use strict" - -App.LocationChanger = - - initialize: -> - $(".js-location-changer").on "change", -> - window.location.assign($(this).val()) diff --git a/app/assets/javascripts/managers.js b/app/assets/javascripts/managers.js new file mode 100644 index 000000000..428445e37 --- /dev/null +++ b/app/assets/javascripts/managers.js @@ -0,0 +1,34 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Managers = { + generatePassword: function() { + var chars, possible_chars; + possible_chars = "aAbcdeEfghiJkmnpqrstuUvwxyz23456789"; + chars = Array.apply(null, { + length: 12 + }).map(function() { + var i; + i = Math.floor(Math.random() * possible_chars.length); + return possible_chars.charAt(i); + }); + return chars.join(""); + }, + togglePassword: function(type) { + return $("#user_password").prop("type", type); + }, + initialize: function() { + $(".generate-random-value").on("click", function() { + return $("#user_password").val(App.Managers.generatePassword()); + }); + return $(".show-password").on("click", function() { + if ($("#user_password").is("input[type='password']")) { + return App.Managers.togglePassword("text"); + } else { + return App.Managers.togglePassword("password"); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/managers.js.coffee b/app/assets/javascripts/managers.js.coffee deleted file mode 100644 index 3ec7683c1..000000000 --- a/app/assets/javascripts/managers.js.coffee +++ /dev/null @@ -1,25 +0,0 @@ -"use strict" - -App.Managers = - - generatePassword: -> - possible_chars = "aAbcdeEfghiJkmnpqrstuUvwxyz23456789" - - chars = Array.apply(null, length: 12).map -> - i = Math.floor(Math.random() * possible_chars.length) - possible_chars.charAt(i) - - chars.join("") - - togglePassword: (type) -> - $("#user_password").prop "type", type - - initialize: -> - $(".generate-random-value").on "click", -> - $("#user_password").val(App.Managers.generatePassword()) - - $(".show-password").on "click", -> - if $("#user_password").is("input[type='password']") - App.Managers.togglePassword("text") - else - App.Managers.togglePassword("password") diff --git a/app/assets/javascripts/map.js b/app/assets/javascripts/map.js new file mode 100644 index 000000000..b7d087602 --- /dev/null +++ b/app/assets/javascripts/map.js @@ -0,0 +1,133 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Map = { + initialize: function() { + $("*[data-map]").each(function() { + return App.Map.initializeMap(this); + }); + return $(".js-toggle-map").on({ + click: function() { + return App.Map.toggleMap(); + } + }); + }, + initializeMap: function(element) { + var addMarkerInvestments, clearFormfields, createMarker, editable, getPopupContent, latitudeInputSelector, longitudeInputSelector, map, mapAttribution, mapCenterLatLng, mapCenterLatitude, mapCenterLongitude, mapTilesProvider, marker, markerIcon, markerLatitude, markerLongitude, moveOrPlaceMarker, openMarkerPopup, removeMarker, removeMarkerSelector, updateFormfields, zoom, zoomInputSelector; + App.Map.cleanInvestmentCoordinates(element); + mapCenterLatitude = $(element).data("map-center-latitude"); + mapCenterLongitude = $(element).data("map-center-longitude"); + markerLatitude = $(element).data("marker-latitude"); + markerLongitude = $(element).data("marker-longitude"); + zoom = $(element).data("map-zoom"); + mapTilesProvider = $(element).data("map-tiles-provider"); + mapAttribution = $(element).data("map-tiles-provider-attribution"); + latitudeInputSelector = $(element).data("latitude-input-selector"); + longitudeInputSelector = $(element).data("longitude-input-selector"); + zoomInputSelector = $(element).data("zoom-input-selector"); + removeMarkerSelector = $(element).data("marker-remove-selector"); + addMarkerInvestments = $(element).data("marker-investments-coordinates"); + editable = $(element).data("marker-editable"); + marker = null; + markerIcon = L.divIcon({ + className: "map-marker", + iconSize: [30, 30], + iconAnchor: [15, 40], + html: '
    ' + }); + createMarker = function(latitude, longitude) { + var markerLatLng; + markerLatLng = new L.LatLng(latitude, longitude); + marker = L.marker(markerLatLng, { + icon: markerIcon, + draggable: editable + }); + if (editable) { + marker.on("dragend", updateFormfields); + } + marker.addTo(map); + return marker; + }; + removeMarker = function(e) { + e.preventDefault(); + if (marker) { + map.removeLayer(marker); + marker = null; + } + clearFormfields(); + }; + moveOrPlaceMarker = function(e) { + if (marker) { + marker.setLatLng(e.latlng); + } else { + marker = createMarker(e.latlng.lat, e.latlng.lng); + } + updateFormfields(); + }; + updateFormfields = function() { + $(latitudeInputSelector).val(marker.getLatLng().lat); + $(longitudeInputSelector).val(marker.getLatLng().lng); + $(zoomInputSelector).val(map.getZoom()); + }; + clearFormfields = function() { + $(latitudeInputSelector).val(""); + $(longitudeInputSelector).val(""); + $(zoomInputSelector).val(""); + }; + openMarkerPopup = function(e) { + marker = e.target; + return $.ajax("/investments/" + marker.options["id"] + "/json_data", { + type: "GET", + dataType: "json", + success: function(data) { + return e.target.bindPopup(getPopupContent(data)).openPopup(); + } + }); + }; + getPopupContent = function(data) { + return "" + data["investment_title"] + ""; + }; + mapCenterLatLng = new L.LatLng(mapCenterLatitude, mapCenterLongitude); + map = L.map(element.id).setView(mapCenterLatLng, zoom); + L.tileLayer(mapTilesProvider, { + attribution: mapAttribution + }).addTo(map); + if (markerLatitude && markerLongitude && !addMarkerInvestments) { + marker = createMarker(markerLatitude, markerLongitude); + } + if (editable) { + $(removeMarkerSelector).on("click", removeMarker); + map.on("zoomend", updateFormfields); + map.on("click", moveOrPlaceMarker); + } + if (addMarkerInvestments) { + return addMarkerInvestments.forEach(function(coordinates) { + if (App.Map.validCoordinates(coordinates)) { + marker = createMarker(coordinates.lat, coordinates.long); + marker.options["id"] = coordinates.investment_id; + return marker.on("click", openMarkerPopup); + } + }); + } + }, + toggleMap: function() { + $(".map").toggle(); + return $(".js-location-map-remove-marker").toggle(); + }, + cleanInvestmentCoordinates: function(element) { + var clean_markers, markers; + markers = $(element).attr("data-marker-investments-coordinates"); + if (markers != null) { + clean_markers = markers.replace(/-?(\*+)/g, null); + return $(element).attr("data-marker-investments-coordinates", clean_markers); + } + }, + validCoordinates: function(coordinates) { + return App.Map.isNumeric(coordinates.lat) && App.Map.isNumeric(coordinates.long); + }, + isNumeric: function(n) { + return !isNaN(parseFloat(n)) && isFinite(n); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/map.js.coffee b/app/assets/javascripts/map.js.coffee deleted file mode 100644 index 25ef1dbbf..000000000 --- a/app/assets/javascripts/map.js.coffee +++ /dev/null @@ -1,120 +0,0 @@ -"use strict" - -App.Map = - - initialize: -> - $("*[data-map]").each -> - App.Map.initializeMap(this) - - $(".js-toggle-map").on - click: -> - App.Map.toggleMap() - - initializeMap: (element) -> - App.Map.cleanInvestmentCoordinates(element) - - mapCenterLatitude = $(element).data("map-center-latitude") - mapCenterLongitude = $(element).data("map-center-longitude") - markerLatitude = $(element).data("marker-latitude") - markerLongitude = $(element).data("marker-longitude") - zoom = $(element).data("map-zoom") - mapTilesProvider = $(element).data("map-tiles-provider") - mapAttribution = $(element).data("map-tiles-provider-attribution") - latitudeInputSelector = $(element).data("latitude-input-selector") - longitudeInputSelector = $(element).data("longitude-input-selector") - zoomInputSelector = $(element).data("zoom-input-selector") - removeMarkerSelector = $(element).data("marker-remove-selector") - addMarkerInvestments = $(element).data("marker-investments-coordinates") - editable = $(element).data("marker-editable") - marker = null - markerIcon = L.divIcon( - className: "map-marker" - iconSize: [30, 30] - iconAnchor: [15, 40] - html: '
    ' - ) - - createMarker = (latitude, longitude) -> - markerLatLng = new (L.LatLng)(latitude, longitude) - marker = L.marker(markerLatLng, { icon: markerIcon, draggable: editable }) - if editable - marker.on "dragend", updateFormfields - marker.addTo(map) - return marker - - removeMarker = (e) -> - e.preventDefault() - if marker - map.removeLayer(marker) - marker = null - clearFormfields() - return - - moveOrPlaceMarker = (e) -> - if marker - marker.setLatLng(e.latlng) - else - marker = createMarker(e.latlng.lat, e.latlng.lng) - - updateFormfields() - return - - updateFormfields = -> - $(latitudeInputSelector).val marker.getLatLng().lat - $(longitudeInputSelector).val marker.getLatLng().lng - $(zoomInputSelector).val map.getZoom() - return - - clearFormfields = -> - $(latitudeInputSelector).val "" - $(longitudeInputSelector).val "" - $(zoomInputSelector).val "" - return - - openMarkerPopup = (e) -> - marker = e.target - - $.ajax "/investments/#{marker.options["id"]}/json_data", - type: "GET" - dataType: "json" - success: (data) -> - e.target.bindPopup(getPopupContent(data)).openPopup() - - getPopupContent = (data) -> - "#{data["investment_title"]}" - - mapCenterLatLng = new (L.LatLng)(mapCenterLatitude, mapCenterLongitude) - map = L.map(element.id).setView(mapCenterLatLng, zoom) - L.tileLayer(mapTilesProvider, attribution: mapAttribution).addTo map - - if markerLatitude && markerLongitude && !addMarkerInvestments - marker = createMarker(markerLatitude, markerLongitude) - - if editable - $(removeMarkerSelector).on "click", removeMarker - map.on "zoomend", updateFormfields - map.on "click", moveOrPlaceMarker - - if addMarkerInvestments - addMarkerInvestments.forEach (coordinates) -> - if App.Map.validCoordinates(coordinates) - marker = createMarker(coordinates.lat, coordinates.long) - marker.options["id"] = coordinates.investment_id - - marker.on "click", openMarkerPopup - - toggleMap: -> - $(".map").toggle() - $(".js-location-map-remove-marker").toggle() - - cleanInvestmentCoordinates: (element) -> - markers = $(element).attr("data-marker-investments-coordinates") - if markers? - clean_markers = markers.replace(/-?(\*+)/g, null) - $(element).attr("data-marker-investments-coordinates", clean_markers) - - validCoordinates: (coordinates) -> - App.Map.isNumeric(coordinates.lat) && App.Map.isNumeric(coordinates.long) - - isNumeric: (n) -> - !isNaN(parseFloat(n)) && isFinite(n) diff --git a/app/assets/javascripts/markdown_editor.js b/app/assets/javascripts/markdown_editor.js new file mode 100644 index 000000000..34c624753 --- /dev/null +++ b/app/assets/javascripts/markdown_editor.js @@ -0,0 +1,53 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.MarkdownEditor = { + refresh_preview: function(element, md) { + var result, textarea_content; + textarea_content = App.MarkdownEditor.find_textarea(element).val(); + result = md.render(textarea_content); + return element.find(".markdown-preview").html(result); + }, + // Multi-locale (translatable) form fields work by hiding inputs of locales + // which are not "active". + find_textarea: function(editor) { + return editor.find("textarea"); + }, + initialize: function() { + return $(".markdown-editor").each(function() { + var editor, md; + md = window.markdownit({ + html: true, + breaks: true, + typographer: true + }); + editor = $(this); + editor.on("input", function() { + App.MarkdownEditor.refresh_preview($(this), md); + $(".legislation-draft-versions-edit .warning").show(); + }); + editor.find("textarea").on("scroll", function() { + return editor.find(".markdown-preview").scrollTop($(this).scrollTop()); + }); + return editor.find(".fullscreen-toggle").on("click", function() { + var span; + editor.toggleClass("fullscreen"); + $(".fullscreen-container").toggleClass("medium-8", "medium-12"); + span = $(this).find("span"); + if (span.html() === span.data("open-text")) { + span.html(span.data("closed-text")); + } else { + span.html(span.data("open-text")); + } + if (editor.hasClass("fullscreen")) { + App.MarkdownEditor.find_textarea(editor).height($(window).height() - 100); + return App.MarkdownEditor.refresh_preview(editor, md); + } else { + return App.MarkdownEditor.find_textarea(editor).height("10em"); + } + }); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/markdown_editor.js.coffee b/app/assets/javascripts/markdown_editor.js.coffee deleted file mode 100644 index eb10c3108..000000000 --- a/app/assets/javascripts/markdown_editor.js.coffee +++ /dev/null @@ -1,47 +0,0 @@ -"use strict" - -App.MarkdownEditor = - - refresh_preview: (element, md) -> - textarea_content = App.MarkdownEditor.find_textarea(element).val() - result = md.render(textarea_content) - element.find(".markdown-preview").html(result) - - # Multi-locale (translatable) form fields work by hiding inputs of locales - # which are not "active". - find_textarea: (editor) -> - editor.find("textarea") - - initialize: -> - $(".markdown-editor").each -> - md = window.markdownit({ - html: true, - breaks: true, - typographer: true, - }) - - editor = $(this) - - editor.on "input", -> - App.MarkdownEditor.refresh_preview($(this), md) - $(".legislation-draft-versions-edit .warning").show() - return - - editor.find("textarea").on "scroll", -> - editor.find(".markdown-preview").scrollTop($(this).scrollTop()) - - editor.find(".fullscreen-toggle").on "click", -> - editor.toggleClass("fullscreen") - $(".fullscreen-container").toggleClass("medium-8", "medium-12") - span = $(this).find("span") - - if(span.html() == span.data("open-text")) - span.html(span.data("closed-text")) - else - span.html(span.data("open-text")) - - if editor.hasClass("fullscreen") - App.MarkdownEditor.find_textarea(editor).height($(window).height() - 100) - App.MarkdownEditor.refresh_preview(editor, md) - else - App.MarkdownEditor.find_textarea(editor).height("10em") diff --git a/app/assets/javascripts/modal_download.js b/app/assets/javascripts/modal_download.js new file mode 100644 index 000000000..192d60d62 --- /dev/null +++ b/app/assets/javascripts/modal_download.js @@ -0,0 +1,16 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.ModalDownload = { + enableButton: function() { + $("#js-download-modal-submit").attr("disabled", false); + return $("#js-download-modal-submit").removeClass("disabled"); + }, + initialize: function() { + return $("#js-download-modal-submit").on("click", function() { + return setTimeout(App.ModalDownload.enableButton, 2000); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/modal_download.js.coffee b/app/assets/javascripts/modal_download.js.coffee deleted file mode 100644 index a1e36010a..000000000 --- a/app/assets/javascripts/modal_download.js.coffee +++ /dev/null @@ -1,11 +0,0 @@ -"use strict" - -App.ModalDownload = - - enableButton: -> - $("#js-download-modal-submit").attr("disabled", false) - $("#js-download-modal-submit").removeClass("disabled") - - initialize: -> - $("#js-download-modal-submit").on "click", -> - setTimeout(App.ModalDownload.enableButton, 2000) diff --git a/app/assets/javascripts/moderator_budget_investments.js b/app/assets/javascripts/moderator_budget_investments.js new file mode 100644 index 000000000..42bcc29a1 --- /dev/null +++ b/app/assets/javascripts/moderator_budget_investments.js @@ -0,0 +1,14 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.ModeratorBudgetInvestments = { + add_class_faded: function(id) { + $("#" + id).addClass("faded"); + return $("#comments").addClass("faded"); + }, + hide_moderator_actions: function(id) { + return $("#" + id + " .js-moderator-investment-actions:first").hide(); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/moderator_budget_investments.js.coffee b/app/assets/javascripts/moderator_budget_investments.js.coffee deleted file mode 100644 index 4bcb49ad1..000000000 --- a/app/assets/javascripts/moderator_budget_investments.js.coffee +++ /dev/null @@ -1,10 +0,0 @@ -"use strict" - -App.ModeratorBudgetInvestments = - - add_class_faded: (id) -> - $("##{id}").addClass("faded") - $("#comments").addClass("faded") - - hide_moderator_actions: (id) -> - $("##{id} .js-moderator-investment-actions:first").hide() diff --git a/app/assets/javascripts/moderator_comment.js b/app/assets/javascripts/moderator_comment.js new file mode 100644 index 000000000..5c6c6a462 --- /dev/null +++ b/app/assets/javascripts/moderator_comment.js @@ -0,0 +1,13 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.ModeratorComments = { + add_class_faded: function(id) { + return $("#" + id + " .comment-body:first").addClass("faded"); + }, + hide_moderator_actions: function(id) { + return $("#" + id + " .js-moderator-comment-actions").hide(); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/moderator_comment.js.coffee b/app/assets/javascripts/moderator_comment.js.coffee deleted file mode 100644 index 0e866d762..000000000 --- a/app/assets/javascripts/moderator_comment.js.coffee +++ /dev/null @@ -1,9 +0,0 @@ -"use strict" - -App.ModeratorComments = - - add_class_faded: (id) -> - $("##{id} .comment-body:first").addClass("faded") - - hide_moderator_actions: (id) -> - $("##{id} .js-moderator-comment-actions").hide() diff --git a/app/assets/javascripts/moderator_debates.js b/app/assets/javascripts/moderator_debates.js new file mode 100644 index 000000000..94aa9d8cd --- /dev/null +++ b/app/assets/javascripts/moderator_debates.js @@ -0,0 +1,14 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.ModeratorDebates = { + add_class_faded: function(id) { + $("#" + id).addClass("faded"); + return $("#comments").addClass("faded"); + }, + hide_moderator_actions: function(id) { + return $("#" + id + " .js-moderator-debate-actions:first").hide(); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/moderator_debates.js.coffee b/app/assets/javascripts/moderator_debates.js.coffee deleted file mode 100644 index 39bd7df10..000000000 --- a/app/assets/javascripts/moderator_debates.js.coffee +++ /dev/null @@ -1,10 +0,0 @@ -"use strict" - -App.ModeratorDebates = - - add_class_faded: (id) -> - $("##{id}").addClass("faded") - $("#comments").addClass("faded") - - hide_moderator_actions: (id) -> - $("##{id} .js-moderator-debate-actions:first").hide() diff --git a/app/assets/javascripts/moderator_proposal_notifications.js b/app/assets/javascripts/moderator_proposal_notifications.js new file mode 100644 index 000000000..a56224d5d --- /dev/null +++ b/app/assets/javascripts/moderator_proposal_notifications.js @@ -0,0 +1,13 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.ModeratorProposalNotifications = { + add_class_faded: function(id) { + return $("#" + id).addClass("faded"); + }, + hide_moderator_actions: function(id) { + return $("#" + id + " .js-moderator-proposal-notifications-actions:first").hide(); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/moderator_proposal_notifications.js.coffee b/app/assets/javascripts/moderator_proposal_notifications.js.coffee deleted file mode 100644 index 12c9040d1..000000000 --- a/app/assets/javascripts/moderator_proposal_notifications.js.coffee +++ /dev/null @@ -1,9 +0,0 @@ -"use strict" - -App.ModeratorProposalNotifications = - - add_class_faded: (id) -> - $("##{id}").addClass("faded") - - hide_moderator_actions: (id) -> - $("##{id} .js-moderator-proposal-notifications-actions:first").hide() diff --git a/app/assets/javascripts/moderator_proposals.js b/app/assets/javascripts/moderator_proposals.js new file mode 100644 index 000000000..e27404315 --- /dev/null +++ b/app/assets/javascripts/moderator_proposals.js @@ -0,0 +1,14 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.ModeratorProposals = { + add_class_faded: function(id) { + $("#" + id).addClass("faded"); + return $("#comments").addClass("faded"); + }, + hide_moderator_actions: function(id) { + return $("#" + id + " .js-moderator-proposals-actions:first").hide(); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/moderator_proposals.js.coffee b/app/assets/javascripts/moderator_proposals.js.coffee deleted file mode 100644 index 2920ab58f..000000000 --- a/app/assets/javascripts/moderator_proposals.js.coffee +++ /dev/null @@ -1,10 +0,0 @@ -"use strict" - -App.ModeratorProposals = - - add_class_faded: (id) -> - $("##{id}").addClass("faded") - $("#comments").addClass("faded") - - hide_moderator_actions: (id) -> - $("##{id} .js-moderator-proposals-actions:first").hide() diff --git a/app/assets/javascripts/polls.js b/app/assets/javascripts/polls.js new file mode 100644 index 000000000..b0f9bf035 --- /dev/null +++ b/app/assets/javascripts/polls.js @@ -0,0 +1,47 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Polls = { + generateToken: function() { + var strings; + strings = Array.apply(null, { + length: 6 + }).map(function() { + return Math.random().toString(36).substr(2); // remove `0.` + }); + return strings.join("").substring(0, 64); + }, + replaceToken: function(token) { + return $(".js-question-answer").each(function() { + var token_param; + token_param = this.search.slice(-6); + if (token_param === "token=") { + return this.href = this.href + token; + } + }); + }, + initialize: function() { + var token; + token = App.Polls.generateToken(); + App.Polls.replaceToken(token); + return $(".zoom-link").on("click", function(event) { + var answer; + answer = $(event.target).closest("div.answer"); + if ($(answer).hasClass("medium-6")) { + $(answer).removeClass("medium-6"); + $(answer).addClass("answer-divider"); + if (!$(answer).hasClass("first")) { + return $(answer).insertBefore($(answer).prev("div.answer")); + } + } else { + $(answer).addClass("medium-6"); + $(answer).removeClass("answer-divider"); + if (!$(answer).hasClass("first")) { + return $(answer).insertAfter($(answer).next("div.answer")); + } + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/polls.js.coffee b/app/assets/javascripts/polls.js.coffee deleted file mode 100644 index db6c0619c..000000000 --- a/app/assets/javascripts/polls.js.coffee +++ /dev/null @@ -1,32 +0,0 @@ -"use strict" - -App.Polls = - generateToken: -> - strings = Array.apply(null, length: 6).map -> - Math.random().toString(36).substr(2) # remove `0.` - - strings.join("").substring(0, 64) - - replaceToken: (token) -> - $(".js-question-answer").each -> - token_param = this.search.slice(-6) - if token_param == "token=" - this.href = this.href + token - - initialize: -> - token = App.Polls.generateToken() - App.Polls.replaceToken(token) - - $(".zoom-link").on "click", (event) -> - answer = $(event.target).closest("div.answer") - - if $(answer).hasClass("medium-6") - $(answer).removeClass("medium-6") - $(answer).addClass("answer-divider") - unless $(answer).hasClass("first") - $(answer).insertBefore($(answer).prev("div.answer")) - else - $(answer).addClass("medium-6") - $(answer).removeClass("answer-divider") - unless $(answer).hasClass("first") - $(answer).insertAfter($(answer).next("div.answer")) diff --git a/app/assets/javascripts/polls_admin.js b/app/assets/javascripts/polls_admin.js new file mode 100644 index 000000000..c0f4b6f50 --- /dev/null +++ b/app/assets/javascripts/polls_admin.js @@ -0,0 +1,22 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.PollsAdmin = { + initialize: function() { + return $("select[class='js-poll-shifts']").on({ + change: function() { + switch ($(this).val()) { + case "vote_collection": + $("select[class='js-shift-vote-collection-dates']").show(); + $("select[class='js-shift-recount-scrutiny-dates']").hide(); + break; + case "recount_scrutiny": + $("select[class='js-shift-recount-scrutiny-dates']").show(); + return $("select[class='js-shift-vote-collection-dates']").hide(); + } + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/polls_admin.js.coffee b/app/assets/javascripts/polls_admin.js.coffee deleted file mode 100644 index fb5e954d4..000000000 --- a/app/assets/javascripts/polls_admin.js.coffee +++ /dev/null @@ -1,15 +0,0 @@ -"use strict" - -App.PollsAdmin = - - initialize: -> - $("select[class='js-poll-shifts']").on - change: -> - switch ($(this).val()) - when "vote_collection" - $("select[class='js-shift-vote-collection-dates']").show() - $("select[class='js-shift-recount-scrutiny-dates']").hide() - break - when "recount_scrutiny" - $("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 b/app/assets/javascripts/prevent_double_submission.js new file mode 100644 index 000000000..4b68120f9 --- /dev/null +++ b/app/assets/javascripts/prevent_double_submission.js @@ -0,0 +1,50 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.PreventDoubleSubmission = { + disable_buttons: function(buttons) { + return setTimeout(function() { + return buttons.each(function() { + var button, loading, ref; + button = $(this); + if (!button.hasClass("disabled")) { + loading = (ref = button.data("loading")) != null ? ref : "..."; + button.addClass("disabled").attr("disabled", "disabled"); + button.data("text", button.val()); + return button.val(loading); + } + }); + }, 1); + }, + reset_buttons: function(buttons) { + return buttons.each(function() { + var button, button_text; + button = $(this); + if (button.hasClass("disabled")) { + button_text = button.data("text"); + button.removeClass("disabled").attr("disabled", null); + if (button_text) { + button.val(button_text); + return button.data("text", null); + } + } + }); + }, + initialize: function() { + return $("form").on("submit", function(event) { + var buttons; + if (!(event.target.id === "new_officing_voter" || event.target.id === "admin_download_emails")) { + buttons = $(this).find(":button, :submit"); + return App.PreventDoubleSubmission.disable_buttons(buttons); + } + }).on("ajax:success", function(event) { + var buttons; + if (!(event.target.id === "new_officing_voter" || event.target.id === "admin_download_emails")) { + buttons = $(this).find(":button, :submit"); + return App.PreventDoubleSubmission.reset_buttons(buttons); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/prevent_double_submission.js.coffee b/app/assets/javascripts/prevent_double_submission.js.coffee deleted file mode 100644 index acfaa1068..000000000 --- a/app/assets/javascripts/prevent_double_submission.js.coffee +++ /dev/null @@ -1,38 +0,0 @@ -"use strict" - -App.PreventDoubleSubmission = - disable_buttons: (buttons) -> - setTimeout -> - buttons.each -> - button = $(this) - unless button.hasClass("disabled") - loading = button.data("loading") ? "..." - button.addClass("disabled").attr("disabled", "disabled") - button.data("text", button.val()) - button.val(loading) - , 1 - - reset_buttons: (buttons) -> - buttons.each -> - button = $(this) - if button.hasClass("disabled") - button_text = button.data("text") - button.removeClass("disabled").attr("disabled", null) - if button_text - button.val(button_text) - button.data("text", null) - - initialize: -> - $("form").on("submit", (event) -> - 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" || - event.target.id == "admin_download_emails" - - buttons = $(this).find(":button, :submit") - App.PreventDoubleSubmission.reset_buttons(buttons) - ) diff --git a/app/assets/javascripts/questions.js b/app/assets/javascripts/questions.js new file mode 100644 index 000000000..15dc648bb --- /dev/null +++ b/app/assets/javascripts/questions.js @@ -0,0 +1,15 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Questions = { + nestedQuestions: function() { + return $(".js-questions").on("cocoon:after-insert", function(e, new_question) { + return App.Answers.initializeAnswers($(new_question).find(".js-answers")); + }); + }, + initialize: function() { + return App.Questions.nestedQuestions(); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/questions.js.coffee b/app/assets/javascripts/questions.js.coffee deleted file mode 100644 index cf396bffc..000000000 --- a/app/assets/javascripts/questions.js.coffee +++ /dev/null @@ -1,10 +0,0 @@ -"use strict" - -App.Questions = - - nestedQuestions: -> - $(".js-questions").on "cocoon:after-insert", (e, new_question) -> - App.Answers.initializeAnswers($(new_question).find(".js-answers")) - - initialize: -> - App.Questions.nestedQuestions() diff --git a/app/assets/javascripts/registration_form.js b/app/assets/javascripts/registration_form.js new file mode 100644 index 000000000..43f93948b --- /dev/null +++ b/app/assets/javascripts/registration_form.js @@ -0,0 +1,34 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.RegistrationForm = { + initialize: function() { + var clearUsernameMessage, showUsernameMessage, usernameInput, validateUsername; + usernameInput = $("form#new_user[action=\"/users\"] input#user_username"); + clearUsernameMessage = function() { + return $("small").remove(); + }; + showUsernameMessage = function(response) { + var klass; + klass = response.available ? "no-error" : "error"; + return usernameInput.after($("" + response.message + "")); + }; + validateUsername = function(username) { + var request; + request = $.get("/user/registrations/check_username?username=" + username); + return request.done(function(response) { + return showUsernameMessage(response); + }); + }; + return usernameInput.on("focusout", function() { + var username; + clearUsernameMessage(); + username = usernameInput.val(); + if (username !== "") { + return validateUsername(username); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/registration_form.js.coffee b/app/assets/javascripts/registration_form.js.coffee deleted file mode 100644 index dec7c4e1f..000000000 --- a/app/assets/javascripts/registration_form.js.coffee +++ /dev/null @@ -1,24 +0,0 @@ -"use strict" - -App.RegistrationForm = - - initialize: -> - usernameInput = $("form#new_user[action=\"/users\"] input#user_username") - - clearUsernameMessage = -> - $("small").remove() - - showUsernameMessage = (response) -> - klass = if response.available then "no-error" else "error" - usernameInput.after $("#{response.message}") - - validateUsername = (username) -> - request = $.get "/user/registrations/check_username?username=#{username}" - request.done (response) -> - showUsernameMessage(response) - - - usernameInput.on "focusout", -> - clearUsernameMessage() - username = usernameInput.val() - validateUsername(username) if username != "" diff --git a/app/assets/javascripts/send_admin_notification_alert.js b/app/assets/javascripts/send_admin_notification_alert.js new file mode 100644 index 000000000..4b7666908 --- /dev/null +++ b/app/assets/javascripts/send_admin_notification_alert.js @@ -0,0 +1,12 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.SendAdminNotificationAlert = { + initialize: function() { + return $("#js-send-admin_notification-alert").on("click", function() { + return confirm(this.dataset.alert); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/send_admin_notification_alert.js.coffee b/app/assets/javascripts/send_admin_notification_alert.js.coffee deleted file mode 100644 index 5bb03f7e7..000000000 --- a/app/assets/javascripts/send_admin_notification_alert.js.coffee +++ /dev/null @@ -1,6 +0,0 @@ -"use strict" - -App.SendAdminNotificationAlert = - initialize: -> - $("#js-send-admin_notification-alert").on "click", -> - confirm(this.dataset.alert) diff --git a/app/assets/javascripts/send_newsletter_alert.js b/app/assets/javascripts/send_newsletter_alert.js new file mode 100644 index 000000000..5dc2169c6 --- /dev/null +++ b/app/assets/javascripts/send_newsletter_alert.js @@ -0,0 +1,12 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.SendNewsletterAlert = { + initialize: function() { + return $("#js-send-newsletter-alert").on("click", function() { + return confirm(this.dataset.alert); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/send_newsletter_alert.js.coffee b/app/assets/javascripts/send_newsletter_alert.js.coffee deleted file mode 100644 index 834d90778..000000000 --- a/app/assets/javascripts/send_newsletter_alert.js.coffee +++ /dev/null @@ -1,6 +0,0 @@ -"use strict" - -App.SendNewsletterAlert = - initialize: -> - $("#js-send-newsletter-alert").on "click", -> - confirm(this.dataset.alert) diff --git a/app/assets/javascripts/settings.js b/app/assets/javascripts/settings.js new file mode 100644 index 000000000..0cb7c598d --- /dev/null +++ b/app/assets/javascripts/settings.js @@ -0,0 +1,19 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Settings = { + initialize: function() { + return $("#settings-tabs").on("change.zf.tabs", function() { + var map_container; + if ($("#tab-map-configuration:visible").length) { + map_container = L.DomUtil.get("admin-map"); + if (map_container !== null) { + map_container._leaflet_id = null; + } + return App.Map.initialize(); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/settings.js.coffee b/app/assets/javascripts/settings.js.coffee deleted file mode 100644 index cb3313d44..000000000 --- a/app/assets/javascripts/settings.js.coffee +++ /dev/null @@ -1,12 +0,0 @@ -"use strict" - -App.Settings = - - initialize: -> - - $("#settings-tabs").on "change.zf.tabs", -> - if $("#tab-map-configuration:visible").length - map_container = L.DomUtil.get "admin-map" - unless map_container is null - map_container._leaflet_id = null - App.Map.initialize() diff --git a/app/assets/javascripts/social_share.js b/app/assets/javascripts/social_share.js new file mode 100644 index 000000000..b58cda286 --- /dev/null +++ b/app/assets/javascripts/social_share.js @@ -0,0 +1,12 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.SocialShare = { + initialize: function() { + return $(".social-share-button a").each(function() { + return $(this).append("" + ($(this).data("site")) + ""); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/social_share.js.coffee b/app/assets/javascripts/social_share.js.coffee deleted file mode 100644 index 4a89dfbe4..000000000 --- a/app/assets/javascripts/social_share.js.coffee +++ /dev/null @@ -1,7 +0,0 @@ -"use strict" - -App.SocialShare = - - initialize: -> - $(".social-share-button a").each -> - $(this).append("#{$(this).data("site")}") diff --git a/app/assets/javascripts/sortable.js b/app/assets/javascripts/sortable.js new file mode 100644 index 000000000..c8ef2b814 --- /dev/null +++ b/app/assets/javascripts/sortable.js @@ -0,0 +1,39 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Sortable = { + initialize: function() { + $(".sortable").sortable({ + update: function() { + var new_order; + new_order = $(this).sortable("toArray", { + attribute: "data-answer-id" + }); + return $.ajax({ + url: $(".sortable").data("js-url"), + data: { + ordered_list: new_order + }, + type: "POST" + }); + } + }); + return $(".sortable-priotirized-votation").sortable({ + update: function() { + var new_order; + new_order = $(this).sortable("toArray", { + attribute: "data-answer-id" + }); + return $.ajax({ + url: $(this).data("js-url"), + data: { + ordered_list: new_order + }, + type: "POST" + }); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/sortable.js.coffee b/app/assets/javascripts/sortable.js.coffee deleted file mode 100644 index 09d3050f4..000000000 --- a/app/assets/javascripts/sortable.js.coffee +++ /dev/null @@ -1,19 +0,0 @@ -"use strict" - -App.Sortable = - initialize: -> - $(".sortable").sortable - update: -> - new_order = $(this).sortable("toArray", { attribute: "data-answer-id" }) - $.ajax - url: $(".sortable").data("js-url"), - data: { ordered_list: new_order }, - type: "POST" - - $(".sortable-priotirized-votation").sortable - update: -> - new_order = $(this).sortable("toArray", { attribute: "data-answer-id" }) - $.ajax - url: $(this).data("js-url"), - data: { ordered_list: new_order }, - type: "POST" diff --git a/app/assets/javascripts/stats.js b/app/assets/javascripts/stats.js new file mode 100644 index 000000000..cb4eb8a48 --- /dev/null +++ b/app/assets/javascripts/stats.js @@ -0,0 +1,38 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + // Helper for generate C3.js graphs + //---------------------------------------------------------------------- + var buildGraph; + + buildGraph = function(el) { + var conf, url; + url = $(el).data("graph"); + conf = { + bindto: el, + data: { + x: "x", + url: url, + mimeType: "json" + }, + axis: { + x: { + type: "timeseries", + tick: { + format: "%Y-%m-%d" + } + } + } + }; + return c3.generate(conf); + }; + + App.Stats = { + initialize: function() { + return $("[data-graph]").each(function() { + return buildGraph(this); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/stats.js.coffee b/app/assets/javascripts/stats.js.coffee deleted file mode 100644 index 0cb687230..000000000 --- a/app/assets/javascripts/stats.js.coffee +++ /dev/null @@ -1,13 +0,0 @@ -"use strict" - -# Helper for generate C3.js graphs -#---------------------------------------------------------------------- - -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" } } } - c3.generate conf - -App.Stats = - initialize: -> - $("[data-graph]").each -> buildGraph(this) diff --git a/app/assets/javascripts/suggest.js b/app/assets/javascripts/suggest.js new file mode 100644 index 000000000..b7aecce78 --- /dev/null +++ b/app/assets/javascripts/suggest.js @@ -0,0 +1,38 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Suggest = { + initialize: function() { + return $("[data-js-suggest-result]").each(function() { + var $this, callback, timer; + $this = $(this); + callback = function() { + return $.ajax({ + url: $this.data("js-url"), + data: { + search: $this.val() + }, + type: "GET", + dataType: "html", + success: function(stHtml) { + var js_suggest_selector, locale; + js_suggest_selector = $this.data("js-suggest"); + if (js_suggest_selector.startsWith(".")) { + locale = $this.closest(".translatable-fields").data("locale"); + js_suggest_selector += "[data-locale=" + locale + "]"; + } + return $(js_suggest_selector).html(stHtml); + } + }); + }; + timer = null; + $this.on("keyup", function() { + window.clearTimeout(timer); + return timer = window.setTimeout(callback, 1000); + }); + return $this.on("change", callback); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/suggest.js.coffee b/app/assets/javascripts/suggest.js.coffee deleted file mode 100644 index 24159e36a..000000000 --- a/app/assets/javascripts/suggest.js.coffee +++ /dev/null @@ -1,31 +0,0 @@ -"use strict" - -App.Suggest = - - initialize: -> - - $("[data-js-suggest-result]").each -> - - $this = $(this) - - callback = -> - $.ajax - url: $this.data("js-url") - data: - search: $this.val() - type: "GET" - dataType: "html" - success: (stHtml) -> - js_suggest_selector = $this.data("js-suggest") - if js_suggest_selector.startsWith(".") - locale = $this.closest(".translatable-fields").data("locale") - js_suggest_selector += "[data-locale=#{locale}]" - $(js_suggest_selector).html(stHtml) - - timer = null - - $this.on "keyup", -> - window.clearTimeout(timer) - timer = window.setTimeout(callback, 1000) - - $this.on "change", callback diff --git a/app/assets/javascripts/table_sortable.js b/app/assets/javascripts/table_sortable.js new file mode 100644 index 000000000..28164bbb8 --- /dev/null +++ b/app/assets/javascripts/table_sortable.js @@ -0,0 +1,35 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.TableSortable = { + getCellValue: function(row, index) { + return $(row).children("td").eq(index).text(); + }, + comparer: function(index) { + return function(a, b) { + var valA, valB; + valA = App.TableSortable.getCellValue(a, index); + valB = App.TableSortable.getCellValue(b, index); + if ($.isNumeric(valA) && $.isNumeric(valB)) { + return valA - valB; + } else { + return valA.localeCompare(valB); + } + }; + }, + initialize: function() { + return $("table.sortable th").click(function() { + var rows, table; + table = $(this).parents("table").eq(0); + rows = table.find("tbody tr").toArray().sort(App.TableSortable.comparer($(this).index())); + this.asc = !this.asc; + if (this.asc) { + table.append(rows); + } else { + table.append(rows.reverse()); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/table_sortable.js.coffee b/app/assets/javascripts/table_sortable.js.coffee deleted file mode 100644 index 784147327..000000000 --- a/app/assets/javascripts/table_sortable.js.coffee +++ /dev/null @@ -1,24 +0,0 @@ -"use strict" - -App.TableSortable = - getCellValue: (row, index) -> - $(row).children("td").eq(index).text() - - comparer: (index) -> - (a, b) -> - valA = App.TableSortable.getCellValue(a, index) - valB = App.TableSortable.getCellValue(b, index) - return if $.isNumeric(valA) and $.isNumeric(valB) then valA - valB else valA.localeCompare(valB) - - initialize: -> - $("table.sortable th").click -> - table = $(this).parents("table").eq(0) - rows = table.find("tbody tr").toArray().sort(App.TableSortable.comparer($(this).index())) - this.asc = !this.asc - - if this.asc - table.append rows - else - table.append rows.reverse() - - return diff --git a/app/assets/javascripts/tag_autocomplete.js b/app/assets/javascripts/tag_autocomplete.js new file mode 100644 index 000000000..c9fc55d57 --- /dev/null +++ b/app/assets/javascripts/tag_autocomplete.js @@ -0,0 +1,49 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.TagAutocomplete = { + split: function(val) { + return val.split(/,\s*/); + }, + extractLast: function(term) { + return App.TagAutocomplete.split(term).pop(); + }, + init_autocomplete: function() { + return $(".tag-autocomplete").autocomplete({ + source: function(request, response) { + return $.ajax({ + url: $(".tag-autocomplete").data("js-url"), + data: { + search: App.TagAutocomplete.extractLast(request.term) + }, + type: "GET", + dataType: "json", + success: function(data) { + return response(data); + } + }); + }, + minLength: 0, + search: function() { + return App.TagAutocomplete.extractLast(this.value); + }, + focus: function() { + return false; + }, + select: function(event, ui) { + var terms; + terms = App.TagAutocomplete.split(this.value); + terms.pop(); + terms.push(ui.item.value); + terms.push(""); + this.value = terms.join(", "); + return false; + } + }); + }, + initialize: function() { + return App.TagAutocomplete.init_autocomplete(); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/tag_autocomplete.js.coffee b/app/assets/javascripts/tag_autocomplete.js.coffee deleted file mode 100644 index f1230e058..000000000 --- a/app/assets/javascripts/tag_autocomplete.js.coffee +++ /dev/null @@ -1,36 +0,0 @@ -"use strict" - -App.TagAutocomplete = - - split: ( val ) -> - return (val.split( /,\s*/ )) - - extractLast: ( term ) -> - return (App.TagAutocomplete.split( term ).pop()) - - init_autocomplete: -> - $(".tag-autocomplete").autocomplete - source: (request, response) -> - $.ajax - url: $(".tag-autocomplete").data("js-url"), - data: { search: App.TagAutocomplete.extractLast( request.term ) }, - type: "GET", - dataType: "json" - success: ( data ) -> - response( data ) - - minLength: 0, - search: -> - App.TagAutocomplete.extractLast( this.value ) - focus: -> - 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;) - - initialize: -> - App.TagAutocomplete.init_autocomplete() diff --git a/app/assets/javascripts/tags.js b/app/assets/javascripts/tags.js new file mode 100644 index 000000000..dcb6b0290 --- /dev/null +++ b/app/assets/javascripts/tags.js @@ -0,0 +1,27 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Tags = { + initialize: function() { + var $tag_input; + $tag_input = $("input.js-tag-list"); + return $("body .js-add-tag-link").each(function() { + if ($(this).data("initialized") !== "yes") { + return $(this).on("click", function() { + var current_tags, name; + name = "\"" + ($(this).text()) + "\""; + current_tags = $tag_input.val().split(",").filter(Boolean); + if (current_tags.indexOf(name) >= 0) { + current_tags.splice(current_tags.indexOf(name), 1); + } else { + current_tags.push(name); + } + $tag_input.val(current_tags.join(",")); + return false; + }).data("initialized", "yes"); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/tags.js.coffee b/app/assets/javascripts/tags.js.coffee deleted file mode 100644 index f29b384a7..000000000 --- a/app/assets/javascripts/tags.js.coffee +++ /dev/null @@ -1,21 +0,0 @@ -"use strict" - -App.Tags = - - initialize: -> - $tag_input = $("input.js-tag-list") - - $("body .js-add-tag-link").each -> - unless $(this).data("initialized") is "yes" - $(this).on("click", -> - name = "\"#{$(this).text()}\"" - current_tags = $tag_input.val().split(",").filter(Boolean) - - if current_tags.indexOf(name) >= 0 - current_tags.splice(current_tags.indexOf(name), 1) - else - current_tags.push name - - $tag_input.val(current_tags.join(",")) - false - ).data "initialized", "yes" diff --git a/app/assets/javascripts/tree_navigator.js b/app/assets/javascripts/tree_navigator.js new file mode 100644 index 000000000..039e953ce --- /dev/null +++ b/app/assets/javascripts/tree_navigator.js @@ -0,0 +1,44 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.TreeNavigator = { + setNodes: function(nodes) { + return nodes.children("ul").each(function() { + var link; + link = $(this).prev("a"); + $('').insertBefore(link); + return App.TreeNavigator.setNodes($(this).children()); + }); + }, + initialize: function() { + var anchor, elem, ul; + elem = $("[data-tree-navigator]"); + if (elem.length === 0) { + return; + } + ul = elem.find("ul:eq(0)"); + if (ul.length && ul.children().length) { + App.TreeNavigator.setNodes(ul.children()); + } + $("[data-tree-navigator] span").on({ + click: function() { + if ($(this).hasClass("open")) { + $(this).removeClass("open").addClass("closed"); + return $(this).siblings("ul").hide(); + } else if ($(this).hasClass("closed")) { + $(this).removeClass("closed").addClass("open"); + return $(this).siblings("ul").show(); + } + } + }); + anchor = $(location).attr("hash"); + if (anchor) { + return elem.find("a[href='" + anchor + "']").parents("ul").each(function() { + $(this).show(); + return $(this).siblings("span").removeClass("closed").addClass("open"); + }); + } + } + }; + +}).call(this); diff --git a/app/assets/javascripts/tree_navigator.js.coffee b/app/assets/javascripts/tree_navigator.js.coffee deleted file mode 100644 index 066967e0c..000000000 --- a/app/assets/javascripts/tree_navigator.js.coffee +++ /dev/null @@ -1,33 +0,0 @@ -"use strict" - -App.TreeNavigator = - setNodes: (nodes) -> - nodes.children("ul").each -> - link = $(this).prev("a") - $('').insertBefore(link) - App.TreeNavigator.setNodes($(this).children()) - - initialize: -> - elem = $("[data-tree-navigator]") - if(elem.length == 0) - return - - ul = elem.find("ul:eq(0)") - if(ul.length && ul.children().length) - App.TreeNavigator.setNodes(ul.children()) - - $("[data-tree-navigator] span").on - click: -> - if($(this).hasClass("open")) - $(this).removeClass("open").addClass("closed") - $(this).siblings("ul").hide() - else if($(this).hasClass("closed")) - $(this).removeClass("closed").addClass("open") - $(this).siblings("ul").show() - - anchor = $(location).attr("hash") - - if anchor - elem.find("a[href='#{anchor}']").parents("ul").each -> - $(this).show() - $(this).siblings("span").removeClass("closed").addClass("open") diff --git a/app/assets/javascripts/users.js b/app/assets/javascripts/users.js new file mode 100644 index 000000000..de08113a0 --- /dev/null +++ b/app/assets/javascripts/users.js @@ -0,0 +1,10 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Users = { + initialize: function() { + return $(".initialjs-avatar").initial(); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/users.js.coffee b/app/assets/javascripts/users.js.coffee deleted file mode 100644 index b5da545fa..000000000 --- a/app/assets/javascripts/users.js.coffee +++ /dev/null @@ -1,6 +0,0 @@ -"use strict" - -App.Users = - - initialize: -> - $(".initialjs-avatar").initial() diff --git a/app/assets/javascripts/valuation_budget_investment_form.js b/app/assets/javascripts/valuation_budget_investment_form.js new file mode 100644 index 000000000..5309b4a03 --- /dev/null +++ b/app/assets/javascripts/valuation_budget_investment_form.js @@ -0,0 +1,38 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.ValuationBudgetInvestmentForm = { + showFeasibleFields: function() { + $("#valuation_budget_investment_edit_form #unfeasible_fields").hide("down"); + return $("#valuation_budget_investment_edit_form #feasible_fields").show(); + }, + showNotFeasibleFields: function() { + $("#valuation_budget_investment_edit_form #feasible_fields").hide("down"); + return $("#valuation_budget_investment_edit_form #unfeasible_fields").show(); + }, + showAllFields: function() { + $("#valuation_budget_investment_edit_form #feasible_fields").show("down"); + return $("#valuation_budget_investment_edit_form #unfeasible_fields").show("down"); + }, + showFeasibilityFields: function() { + var feasibility; + feasibility = $("#valuation_budget_investment_edit_form input[type=radio][name='budget_investment[feasibility]']:checked").val(); + if (feasibility === "feasible") { + return App.ValuationBudgetInvestmentForm.showFeasibleFields(); + } else if (feasibility === "unfeasible") { + return App.ValuationBudgetInvestmentForm.showNotFeasibleFields(); + } + }, + showFeasibilityFieldsOnChange: function() { + return $("#valuation_budget_investment_edit_form input[type=radio][name='budget_investment[feasibility]']").change(function() { + App.ValuationBudgetInvestmentForm.showAllFields(); + return App.ValuationBudgetInvestmentForm.showFeasibilityFields(); + }); + }, + initialize: function() { + App.ValuationBudgetInvestmentForm.showFeasibilityFields(); + return App.ValuationBudgetInvestmentForm.showFeasibilityFieldsOnChange(); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/valuation_budget_investment_form.js.coffee b/app/assets/javascripts/valuation_budget_investment_form.js.coffee deleted file mode 100644 index 6aec6be07..000000000 --- a/app/assets/javascripts/valuation_budget_investment_form.js.coffee +++ /dev/null @@ -1,33 +0,0 @@ -"use strict" - -App.ValuationBudgetInvestmentForm = - - showFeasibleFields: -> - $("#valuation_budget_investment_edit_form #unfeasible_fields").hide("down") - $("#valuation_budget_investment_edit_form #feasible_fields").show() - - showNotFeasibleFields: -> - $("#valuation_budget_investment_edit_form #feasible_fields").hide("down") - $("#valuation_budget_investment_edit_form #unfeasible_fields").show() - - showAllFields: -> - $("#valuation_budget_investment_edit_form #feasible_fields").show("down") - $("#valuation_budget_investment_edit_form #unfeasible_fields").show("down") - - showFeasibilityFields: -> - feasibility = $("#valuation_budget_investment_edit_form input[type=radio][name='budget_investment[feasibility]']:checked").val() - if feasibility == "feasible" - App.ValuationBudgetInvestmentForm.showFeasibleFields() - else if feasibility == "unfeasible" - App.ValuationBudgetInvestmentForm.showNotFeasibleFields() - - - showFeasibilityFieldsOnChange: -> - $("#valuation_budget_investment_edit_form input[type=radio][name='budget_investment[feasibility]']").change -> - App.ValuationBudgetInvestmentForm.showAllFields() - App.ValuationBudgetInvestmentForm.showFeasibilityFields() - - - initialize: -> - App.ValuationBudgetInvestmentForm.showFeasibilityFields() - App.ValuationBudgetInvestmentForm.showFeasibilityFieldsOnChange() diff --git a/app/assets/javascripts/votations.js b/app/assets/javascripts/votations.js new file mode 100644 index 000000000..4d76d5e0a --- /dev/null +++ b/app/assets/javascripts/votations.js @@ -0,0 +1,70 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Votations = { + checkMaxVotes: function() { + if ($("#votation_type_enum_type").val() === "0") { + $(".js-max_votes").hide(); + return $("#max_votes").attr({ + disabled: true + }); + } else { + $(".js-max_votes").show(); + return $("#max_votes").attr({ + disabled: false + }); + } + }, + checkPrioritization: function() { + if ($("#votation_type_enum_type").val() === "2") { + $(".js-prioritization_type").show(); + return $("#prioritization_type").attr({ + disabled: false + }); + } else { + $(".js-prioritization_type").hide(); + return $("#prioritization_type").attr({ + disabled: true + }); + } + }, + checkMaxGroups: function() { + if ($("#votation_type_enum_type").val() === "7" || $("#votation_type_enum_type").val() === "8") { + $(".js-max_group_votes").show(); + return $("#max_groups_answers").attr({ + disabled: false + }); + } else { + $(".js-max_group_votes").hide(); + return $("#max_groups_answers").attr({ + disabled: true + }); + } + }, + setTraduction: function(response) { + return $(".js-description_text").text(response["traduction"]); + }, + updateChecks: function() { + App.Votations.checkMaxVotes(); + App.Votations.checkPrioritization(); + return App.Votations.checkMaxGroups(); + }, + initialize: function() { + App.Votations.updateChecks(); + return $("#votation_type_enum_type").on({ + change: function() { + var params, url; + App.Votations.updateChecks(); + url = "/admin/get_options_traductions.json"; + params = { + enum_type: $("#votation_type_enum_type").val() + }; + return $.get(url, params, function(response) { + return App.Votations.setTraduction(response, "json"); + }); + } + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/votations.js.coffee b/app/assets/javascripts/votations.js.coffee deleted file mode 100644 index 2ce9333d0..000000000 --- a/app/assets/javascripts/votations.js.coffee +++ /dev/null @@ -1,44 +0,0 @@ -"use strict" - -App.Votations = - - checkMaxVotes: -> - if $("#votation_type_enum_type").val() == "0" - $(".js-max_votes").hide() - $("#max_votes").attr(disabled: true) - else - $(".js-max_votes").show() - $("#max_votes").attr(disabled: false) - - checkPrioritization: -> - if $("#votation_type_enum_type").val() == "2" - $(".js-prioritization_type").show() - $("#prioritization_type").attr(disabled: false) - else - $(".js-prioritization_type").hide() - $("#prioritization_type").attr(disabled: true) - - checkMaxGroups: -> - if $("#votation_type_enum_type").val() == "7" || $("#votation_type_enum_type").val() == "8" - $(".js-max_group_votes").show() - $("#max_groups_answers").attr(disabled: false) - else - $(".js-max_group_votes").hide() - $("#max_groups_answers").attr(disabled: true) - - setTraduction: (response) -> - $(".js-description_text").text(response["traduction"]) - - updateChecks: () -> - App.Votations.checkMaxVotes() - App.Votations.checkPrioritization() - App.Votations.checkMaxGroups() - - initialize: -> - App.Votations.updateChecks() - $("#votation_type_enum_type").on - change: -> - App.Votations.updateChecks() - url = "/admin/get_options_traductions.json" - params = { enum_type: $("#votation_type_enum_type").val() } - $.get(url, params, (response) -> App.Votations.setTraduction response, "json") diff --git a/app/assets/javascripts/votes.js b/app/assets/javascripts/votes.js new file mode 100644 index 000000000..c0ef413d7 --- /dev/null +++ b/app/assets/javascripts/votes.js @@ -0,0 +1,25 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.Votes = { + hoverize: function(votes) { + return $(document).on({ + "mouseenter focus": function() { + $("div.participation-not-allowed", this).show(); + return $("div.participation-allowed", this).hide(); + }, + mouseleave: function() { + $("div.participation-not-allowed", this).hide(); + return $("div.participation-allowed", this).show(); + } + }, votes); + }, + initialize: function() { + App.Votes.hoverize("div.votes"); + App.Votes.hoverize("div.supports"); + App.Votes.hoverize("div.debate-questions"); + return App.Votes.hoverize("div.comment-footer"); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/votes.js.coffee b/app/assets/javascripts/votes.js.coffee deleted file mode 100644 index ec57df968..000000000 --- a/app/assets/javascripts/votes.js.coffee +++ /dev/null @@ -1,19 +0,0 @@ -"use strict" - -App.Votes = - - hoverize: (votes) -> - $(document).on { - "mouseenter focus": -> - $("div.participation-not-allowed", this).show() - $("div.participation-allowed", this).hide() - mouseleave: -> - $("div.participation-not-allowed", this).hide() - $("div.participation-allowed", this).show() - }, votes - - initialize: -> - App.Votes.hoverize "div.votes" - App.Votes.hoverize "div.supports" - App.Votes.hoverize "div.debate-questions" - App.Votes.hoverize "div.comment-footer" diff --git a/app/assets/javascripts/watch_form_changes.js b/app/assets/javascripts/watch_form_changes.js new file mode 100644 index 000000000..4de97b409 --- /dev/null +++ b/app/assets/javascripts/watch_form_changes.js @@ -0,0 +1,34 @@ +// Generated by CoffeeScript 1.12.6 +(function() { + "use strict"; + App.WatchFormChanges = { + forms: function() { + return $("form[data-watch-changes]"); + }, + msg: function() { + return $("[data-watch-form-message]").data("watch-form-message"); + }, + hasChanged: function() { + return App.WatchFormChanges.forms().is(function() { + return $(this).serialize() !== $(this).data("watchChanges"); + }); + }, + checkChanges: function() { + if (App.WatchFormChanges.hasChanged()) { + return confirm(App.WatchFormChanges.msg()); + } else { + return true; + } + }, + initialize: function() { + if (App.WatchFormChanges.forms().length === 0 || App.WatchFormChanges.msg() === void 0) { + return; + } + $(document).off("page:before-change").on("page:before-change", App.WatchFormChanges.checkChanges); + return App.WatchFormChanges.forms().each(function() { + return $(this).data("watchChanges", $(this).serialize()); + }); + } + }; + +}).call(this); diff --git a/app/assets/javascripts/watch_form_changes.js.coffee b/app/assets/javascripts/watch_form_changes.js.coffee deleted file mode 100644 index 2f3e70eba..000000000 --- a/app/assets/javascripts/watch_form_changes.js.coffee +++ /dev/null @@ -1,27 +0,0 @@ -"use strict" - -App.WatchFormChanges = - forms: -> - return $("form[data-watch-changes]") - - msg: -> - return $("[data-watch-form-message]").data("watch-form-message") - - hasChanged: -> - App.WatchFormChanges.forms().is -> - $(this).serialize() != $(this).data("watchChanges") - - checkChanges: -> - if App.WatchFormChanges.hasChanged() - confirm(App.WatchFormChanges.msg()) - else - true - - initialize: -> - if App.WatchFormChanges.forms().length == 0 || App.WatchFormChanges.msg() == undefined - return - - $(document).off("page:before-change").on("page:before-change", App.WatchFormChanges.checkChanges) - - App.WatchFormChanges.forms().each -> - $(this).data("watchChanges", $(this).serialize()) From ec5af1f1bc380a5e58683de29406b35dcda56186 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Tue, 2 Jul 2019 03:09:38 +0200 Subject: [PATCH 02/12] Remove unnecessary `return` statements These statements were automatically added by CoffeeScript. I'm only removing the obvious cases; there might be more cases where the `return` statement isn't necessary. --- app/assets/javascripts/advanced_search.js | 15 +++-- app/assets/javascripts/allow_participation.js | 7 +-- app/assets/javascripts/answers.js | 13 ++--- app/assets/javascripts/banners.js | 11 ++-- .../javascripts/budget_edit_associations.js | 13 ++--- app/assets/javascripts/check_all_none.js | 7 +-- app/assets/javascripts/checkbox_toggle.js | 8 +-- app/assets/javascripts/columns_selector.js | 23 ++++---- app/assets/javascripts/comments.js | 27 +++++---- app/assets/javascripts/documentable.js | 55 +++++++++--------- app/assets/javascripts/embed_video.js | 5 +- app/assets/javascripts/fixed_bar.js | 11 ++-- app/assets/javascripts/flaggable.js | 3 +- app/assets/javascripts/followable.js | 5 +- app/assets/javascripts/forms.js | 21 ++++--- app/assets/javascripts/foundation_extras.js | 13 ++--- app/assets/javascripts/globalize.js | 35 ++++++------ app/assets/javascripts/ie_alert.js | 7 +-- app/assets/javascripts/imageable.js | 57 +++++++++---------- .../javascripts/investment_report_alert.js | 3 +- app/assets/javascripts/legislation.js | 7 +-- app/assets/javascripts/legislation_admin.js | 11 ++-- .../javascripts/legislation_allegations.js | 11 ++-- .../javascripts/legislation_annotatable.js | 20 +++---- app/assets/javascripts/location_changer.js | 5 +- app/assets/javascripts/managers.js | 11 ++-- app/assets/javascripts/map.js | 19 +++---- app/assets/javascripts/markdown_editor.js | 13 ++--- app/assets/javascripts/modal_download.js | 7 +-- .../moderator_budget_investments.js | 5 +- app/assets/javascripts/moderator_comment.js | 5 +- app/assets/javascripts/moderator_debates.js | 5 +- .../moderator_proposal_notifications.js | 5 +- app/assets/javascripts/moderator_proposals.js | 5 +- app/assets/javascripts/polls.js | 12 ++-- app/assets/javascripts/polls_admin.js | 5 +- .../javascripts/prevent_double_submission.js | 17 +++--- app/assets/javascripts/questions.js | 7 +-- app/assets/javascripts/registration_form.js | 13 ++--- .../send_admin_notification_alert.js | 3 +- .../javascripts/send_newsletter_alert.js | 3 +- app/assets/javascripts/settings.js | 5 +- app/assets/javascripts/social_share.js | 5 +- app/assets/javascripts/sortable.js | 7 +-- app/assets/javascripts/stats.js | 7 +-- app/assets/javascripts/suggest.js | 12 ++-- app/assets/javascripts/table_sortable.js | 3 +- app/assets/javascripts/tag_autocomplete.js | 7 +-- app/assets/javascripts/tags.js | 5 +- app/assets/javascripts/tree_navigator.js | 13 ++--- app/assets/javascripts/users.js | 3 +- .../valuation_budget_investment_form.js | 17 +++--- app/assets/javascripts/votations.js | 35 ++++-------- app/assets/javascripts/votes.js | 9 ++- app/assets/javascripts/watch_form_changes.js | 5 +- 55 files changed, 297 insertions(+), 364 deletions(-) diff --git a/app/assets/javascripts/advanced_search.js b/app/assets/javascripts/advanced_search.js index 7c4aa1836..c804ab53a 100644 --- a/app/assets/javascripts/advanced_search.js +++ b/app/assets/javascripts/advanced_search.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.AdvancedSearch = { @@ -7,15 +6,15 @@ }, toggle_form: function(event) { event.preventDefault(); - return $("#js-advanced-search").slideToggle(); + $("#js-advanced-search").slideToggle(); }, toggle_date_options: function() { if ($("#js-advanced-search-date-min").val() === "custom") { $("#js-custom-date").show(); - return $(".js-calendar").datepicker("option", "disabled", false); + $(".js-calendar").datepicker("option", "disabled", false); } else { $("#js-custom-date").hide(); - return $(".js-calendar").datepicker("option", "disabled", true); + $(".js-calendar").datepicker("option", "disabled", true); } }, init_calendar: function() { @@ -25,7 +24,7 @@ maxDate: "+0d" }); $(".js-calendar-full").datepicker(); - return $.datepicker.setDefaults($.datepicker.regional[locale]); + $.datepicker.setDefaults($.datepicker.regional[locale]); }, initialize: function() { App.AdvancedSearch.init_calendar(); @@ -35,12 +34,12 @@ } $("#js-advanced-search-title").on({ click: function(event) { - return App.AdvancedSearch.toggle_form(event); + App.AdvancedSearch.toggle_form(event); } }); - return $("#js-advanced-search-date-min").on({ + $("#js-advanced-search-date-min").on({ change: function() { - return App.AdvancedSearch.toggle_date_options(); + App.AdvancedSearch.toggle_date_options(); } }); } diff --git a/app/assets/javascripts/allow_participation.js b/app/assets/javascripts/allow_participation.js index 8c30d400e..aeca79b2c 100644 --- a/app/assets/javascripts/allow_participation.js +++ b/app/assets/javascripts/allow_participation.js @@ -1,16 +1,15 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.AllowParticipation = { initialize: function() { - return $(document).on({ + $(document).on({ "mouseenter focus": function() { $(this).find(".js-participation-not-allowed").show(); - return $(this).find(".js-participation-allowed").hide(); + $(this).find(".js-participation-allowed").hide(); }, mouseleave: function() { $(this).find(".js-participation-not-allowed").hide(); - return $(this).find(".js-participation-allowed").show(); + $(this).find(".js-participation-allowed").show(); } }, ".js-participation"); } diff --git a/app/assets/javascripts/answers.js b/app/assets/javascripts/answers.js index 4433eb1f7..23e4089ba 100644 --- a/app/assets/javascripts/answers.js +++ b/app/assets/javascripts/answers.js @@ -1,12 +1,11 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Answers = { initializeAnswers: function(answers) { - return $(answers).on("cocoon:after-insert", function(e, new_answer) { + $(answers).on("cocoon:after-insert", function(e, new_answer) { var given_order; given_order = App.Answers.maxGivenOrder(answers) + 1; - return $(new_answer).find("[name$='[given_order]']").val(given_order); + $(new_answer).find("[name$='[given_order]']").val(given_order); }); }, maxGivenOrder: function(answers) { @@ -15,17 +14,17 @@ $(answers).find("[name$='[given_order]']").each(function(index, answer) { var value; value = parseFloat($(answer).val()); - return max_order = value > max_order ? value : max_order; + max_order = value > max_order ? value : max_order; }); return max_order; }, nestedAnswers: function() { - return $(".js-answers").each(function(index, answers) { - return App.Answers.initializeAnswers(answers); + $(".js-answers").each(function(index, answers) { + App.Answers.initializeAnswers(answers); }); }, initialize: function() { - return App.Answers.nestedAnswers(); + App.Answers.nestedAnswers(); } }; diff --git a/app/assets/javascripts/banners.js b/app/assets/javascripts/banners.js index 8982c7905..9362da237 100644 --- a/app/assets/javascripts/banners.js +++ b/app/assets/javascripts/banners.js @@ -1,27 +1,26 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Banners = { initialize: function() { $("[data-js-banner-title]").on({ change: function() { - return $("#js-banner-title").html($(this).val()); + $("#js-banner-title").html($(this).val()); } }); $("[data-js-banner-description]").on({ change: function() { - return $("#js-banner-description").html($(this).val()); + $("#js-banner-description").html($(this).val()); } }); $("[name='banner[background_color]']").on({ change: function() { - return $("#js-banner-background").css("background-color", $(this).val()); + $("#js-banner-background").css("background-color", $(this).val()); } }); - return $("[name='banner[font_color]']").on({ + $("[name='banner[font_color]']").on({ change: function() { $("#js-banner-title").css("color", $(this).val()); - return $("#js-banner-description").css("color", $(this).val()); + $("#js-banner-description").css("color", $(this).val()); } }); } diff --git a/app/assets/javascripts/budget_edit_associations.js b/app/assets/javascripts/budget_edit_associations.js index b7ad31e98..ec4d74a19 100644 --- a/app/assets/javascripts/budget_edit_associations.js +++ b/app/assets/javascripts/budget_edit_associations.js @@ -1,11 +1,10 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.BudgetEditAssociations = { set_text: function(response) { $(".js-budget-show-administrators-list").text(response["administrators"]); $(".js-budget-show-valuators-list").text(response["valuators"]); - return $(".js-budget-show-trackers-list").text(response["trackers"]); + $(".js-budget-show-trackers-list").text(response["trackers"]); }, initialize: function() { $(".js-budget-list-checkbox-user").on({ @@ -21,18 +20,18 @@ valuators: valuator_count, trackers: tracker_count }; - return $.get(url, params, function(response) { - return App.BudgetEditAssociations.set_text(response, "json"); + $.get(url, params, function(response) { + App.BudgetEditAssociations.set_text(response, "json"); }); } }); - return $(".js-budget-show-users-list").on({ + $(".js-budget-show-users-list").on({ click: function() { var div_id; div_id = $(this).data().toggle; - return $(".js-budget-users-list").each(function() { + $(".js-budget-users-list").each(function() { if (this.id !== div_id && !$(this).hasClass("is-hidden")) { - return $(this).addClass("is-hidden"); + $(this).addClass("is-hidden"); } }); } diff --git a/app/assets/javascripts/check_all_none.js b/app/assets/javascripts/check_all_none.js index 450eee1d6..966f5fe77 100644 --- a/app/assets/javascripts/check_all_none.js +++ b/app/assets/javascripts/check_all_none.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.CheckAllNone = { @@ -6,12 +5,12 @@ $("[data-check-all]").on("click", function() { var target_name; target_name = $(this).data("check-all"); - return $("[name='" + target_name + "']").prop("checked", true); + $("[name='" + target_name + "']").prop("checked", true); }); - return $("[data-check-none]").on("click", function() { + $("[data-check-none]").on("click", function() { var target_name; target_name = $(this).data("check-none"); - return $("[name='" + target_name + "']").prop("checked", false); + $("[name='" + target_name + "']").prop("checked", false); }); } }; diff --git a/app/assets/javascripts/checkbox_toggle.js b/app/assets/javascripts/checkbox_toggle.js index 30b077b90..c2a116b62 100644 --- a/app/assets/javascripts/checkbox_toggle.js +++ b/app/assets/javascripts/checkbox_toggle.js @@ -1,15 +1,15 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.CheckboxToggle = { initialize: function() { - return $("[data-checkbox-toggle]").on("change", function() { + $("[data-checkbox-toggle]").on("change", function() { var $target; $target = $($(this).data("checkbox-toggle")); + if ($(this).is(":checked")) { - return $target.show(); + $target.show(); } else { - return $target.hide(); + $target.hide(); } }); } diff --git a/app/assets/javascripts/columns_selector.js b/app/assets/javascripts/columns_selector.js index a3c9e06ce..2beaf0928 100644 --- a/app/assets/javascripts/columns_selector.js +++ b/app/assets/javascripts/columns_selector.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.ColumnsSelector = { @@ -11,13 +10,13 @@ App.Cookies.saveCookie($("#js-columns-selector").data("cookie"), c_value, 30); } columns = c_value.split(","); - return columns.forEach(function(column) { + columns.forEach(function(column) { $("[data-field=" + column + "]").removeClass("hidden"); - return $("#column_selector_" + column).prop("checked", true); + $("#column_selector_" + column).prop("checked", true); }); }, initChecks: function() { - return $(".column-selecteable th[data-field]").each(function() { + $(".column-selecteable th[data-field]").each(function() { var field, input, item, label, text; field = $(this).data("field"); text = $(this).text().trim(); @@ -31,20 +30,20 @@ label.prop("for", "column_selector_" + field); label.text(text); item.removeClass("hidden"); - return $("#js-columns-selector-wrapper").append(item); + $("#js-columns-selector-wrapper").append(item); }); }, toggleOptions: function(event) { event.preventDefault(); $("#js-columns-selector").toggleClass("hollow"); - return $("#js-columns-selector-wrapper").toggleClass("hidden"); + $("#js-columns-selector-wrapper").toggleClass("hidden"); }, hideAll: function() { $("[data-field]").addClass("hidden"); - return $(".column-selector-item input").prop("checked", false); + $(".column-selector-item input").prop("checked", false); }, toggleColumn: function(event) { - return App.ColumnsSelector.displayColumn($(event.target).data("column")); + App.ColumnsSelector.displayColumn($(event.target).data("column")); }, displayColumn: function(column) { var value; @@ -54,7 +53,7 @@ $("[data-field=" + column + "]").addClass("hidden"); } value = App.ColumnsSelector.updateItem(column); - return App.Cookies.saveCookie($("#js-columns-selector").data("cookie"), value, 30); + App.Cookies.saveCookie($("#js-columns-selector").data("cookie"), value, 30); }, updateItem: function(value) { var index, values; @@ -75,12 +74,12 @@ App.ColumnsSelector.initColums(); $("#js-columns-selector").on({ click: function(event) { - return App.ColumnsSelector.toggleOptions(event); + App.ColumnsSelector.toggleOptions(event); } }); - return $(".column-selector-item input").on({ + $(".column-selector-item input").on({ click: function(event) { - return App.ColumnsSelector.toggleColumn(event); + App.ColumnsSelector.toggleColumn(event); } }); } diff --git a/app/assets/javascripts/comments.js b/app/assets/javascripts/comments.js index 613b41761..e9e9db49d 100644 --- a/app/assets/javascripts/comments.js +++ b/app/assets/javascripts/comments.js @@ -1,65 +1,64 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Comments = { add_comment: function(parent_id, response_html) { $(response_html).insertAfter($("#js-comment-form-" + parent_id)); - return this.update_comments_count(); + this.update_comments_count(); }, add_reply: function(parent_id, response_html) { if ($("#" + parent_id + " .comment-children").length === 0) { $("#" + parent_id).append("
    • "); } $("#" + parent_id + " .comment-children:first").prepend($(response_html)); - return this.update_comments_count(); + this.update_comments_count(); }, update_comments_count: function() { - return $(".js-comments-count").each(function() { + $(".js-comments-count").each(function() { var new_val; new_val = $(this).text().trim().replace(/\d+/, function(match) { return parseInt(match, 10) + 1; }); - return $(this).text(new_val); + $(this).text(new_val); }); }, display_error: function(field_with_errors, error_html) { - return $(error_html).insertAfter($("" + field_with_errors)); + $(error_html).insertAfter($("" + field_with_errors)); }, reset_and_hide_form: function(id) { var form_container, input; form_container = $("#js-comment-form-" + id); input = form_container.find("form textarea"); input.val(""); - return form_container.hide(); + form_container.hide(); }, reset_form: function(id) { var input; input = $("#js-comment-form-" + id + " form textarea"); - return input.val(""); + input.val(""); }, toggle_form: function(id) { - return $("#js-comment-form-" + id).toggle(); + $("#js-comment-form-" + id).toggle(); }, toggle_arrow: function(id) { var arrow; arrow = "span#" + id + "_arrow"; if ($(arrow).hasClass("icon-arrow-right")) { - return $(arrow).removeClass("icon-arrow-right").addClass("icon-arrow-down"); + $(arrow).removeClass("icon-arrow-right").addClass("icon-arrow-down"); } else { - return $(arrow).removeClass("icon-arrow-down").addClass("icon-arrow-right"); + $(arrow).removeClass("icon-arrow-down").addClass("icon-arrow-right"); } }, initialize: function() { $("body .js-add-comment-link").each(function() { if ($(this).data("initialized") !== "yes") { - return $(this).on("click", function() { + $(this).on("click", function() { App.Comments.toggle_form($(this).data().id); return false; }).data("initialized", "yes"); } }); - return $("body .js-toggle-children").each(function() { - return $(this).on("click", function() { + $("body .js-toggle-children").each(function() { + $(this).on("click", function() { var children_container_id; children_container_id = ($(this).data().id) + "_children"; $("#" + children_container_id).toggle("slow"); diff --git a/app/assets/javascripts/documentable.js b/app/assets/javascripts/documentable.js index ccddf3401..dd1e3efaa 100644 --- a/app/assets/javascripts/documentable.js +++ b/app/assets/javascripts/documentable.js @@ -1,21 +1,20 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Documentable = { initialize: function() { $(".js-document-attachment").each(function() { - return App.Documentable.initializeDirectUploadInput(this); + App.Documentable.initializeDirectUploadInput(this); }); $("#nested-documents").on("cocoon:after-remove", function() { - return App.Documentable.unlockUploads(); + App.Documentable.unlockUploads(); }); - return $("#nested-documents").on("cocoon:after-insert", function(e, nested_document) { + $("#nested-documents").on("cocoon:after-insert", function(e, nested_document) { var input; input = $(nested_document).find(".js-document-attachment"); input["lockUpload"] = $(nested_document).closest("#nested-documents").find(".document:visible").length >= $("#nested-documents").data("max-documents-allowed"); App.Documentable.initializeDirectUploadInput(input); if (input["lockUpload"]) { - return App.Documentable.lockUploads(); + App.Documentable.lockUploads(); } }); }, @@ -23,7 +22,7 @@ var inputData; inputData = this.buildData([], input); this.initializeRemoveCachedDocumentLink(input, inputData); - return $(input).fileupload({ + $(input).fileupload({ paramName: "attachment", formData: null, add: function(e, data) { @@ -31,11 +30,11 @@ upload_data = App.Documentable.buildData(data, e.target); App.Documentable.clearProgressBar(upload_data); App.Documentable.setProgressBar(upload_data, "uploading"); - return upload_data.submit(); + upload_data.submit(); }, change: function(e, data) { - return data.files.forEach(function(file) { - return App.Documentable.setFilename(inputData, file.name); + data.files.forEach(function(file) { + App.Documentable.setFilename(inputData, file.name); }); }, fail: function(e, data) { @@ -46,7 +45,7 @@ App.Documentable.setInputErrors(data); $(data.destroyAttachmentLinkContainer).find("a.delete:not(.remove-nested)").remove(); $(data.addAttachmentLabel).addClass("error"); - return $(data.addAttachmentLabel).show(); + $(data.addAttachmentLabel).show(); }, done: function(e, data) { var destroyAttachmentLink; @@ -63,10 +62,10 @@ $(destroyAttachmentLink).on("click", function(e) { e.preventDefault(); e.stopPropagation(); - return App.Documentable.doDeleteCachedAttachmentRequest(this.href, data); + App.Documentable.doDeleteCachedAttachmentRequest(this.href, data); }); if (input["lockUpload"]) { - return App.Documentable.showNotice(); + App.Documentable.showNotice(); } }, progress: function(e, data) { @@ -93,43 +92,43 @@ }, clearFilename: function(data) { $(data.fileNameContainer).text(""); - return $(data.fileNameContainer).hide(); + $(data.fileNameContainer).hide(); }, clearInputErrors: function(data) { - return $(data.errorContainer).find("small.error").remove(); + $(data.errorContainer).find("small.error").remove(); }, clearProgressBar: function(data) { - return $(data.progressBar).find(".loading-bar").removeClass("complete errors uploading").css("width", "0px"); + $(data.progressBar).find(".loading-bar").removeClass("complete errors uploading").css("width", "0px"); }, setFilename: function(data, file_name) { $(data.fileNameContainer).text(file_name); - return $(data.fileNameContainer).show(); + $(data.fileNameContainer).show(); }, setProgressBar: function(data, klass) { - return $(data.progressBar).find(".loading-bar").addClass(klass); + $(data.progressBar).find(".loading-bar").addClass(klass); }, setTitleFromFile: function(data, title) { if ($(data.titleField).val() === "") { - return $(data.titleField).val(title); + $(data.titleField).val(title); } }, setInputErrors: function(data) { var errors; errors = "" + data.jqXHR.responseJSON.errors + ""; - return $(data.errorContainer).append(errors); + $(data.errorContainer).append(errors); }, lockUploads: function() { - return $("#new_document_link").addClass("hide"); + $("#new_document_link").addClass("hide"); }, unlockUploads: function() { $("#max-documents-notice").addClass("hide"); - return $("#new_document_link").removeClass("hide"); + $("#new_document_link").removeClass("hide"); }, showNotice: function() { - return $("#max-documents-notice").removeClass("hide"); + $("#max-documents-notice").removeClass("hide"); }, doDeleteCachedAttachmentRequest: function(url, data) { - return $.ajax({ + $.ajax({ type: "POST", url: url, dataType: "json", @@ -146,9 +145,9 @@ $(data.wrapper).find(".attachment-actions").addClass("small-12").removeClass("small-6 float-right"); $(data.wrapper).find(".attachment-actions .action-remove").addClass("small-3").removeClass("small-12"); if ($(data.input).data("nested-document") === true) { - return $(data.wrapper).remove(); + $(data.wrapper).remove(); } else { - return $(data.wrapper).find("a.remove-cached-attachment").remove(); + $(data.wrapper).find("a.remove-cached-attachment").remove(); } } }); @@ -157,14 +156,14 @@ var remove_document_link, wrapper; wrapper = $(input).closest(".direct-upload"); remove_document_link = $(wrapper).find("a.remove-cached-attachment"); - return $(remove_document_link).on("click", function(e) { + $(remove_document_link).on("click", function(e) { e.preventDefault(); e.stopPropagation(); - return App.Documentable.doDeleteCachedAttachmentRequest(this.href, data); + App.Documentable.doDeleteCachedAttachmentRequest(this.href, data); }); }, removeDocument: function(id) { - return $("#" + id).remove(); + $("#" + id).remove(); } }; diff --git a/app/assets/javascripts/embed_video.js b/app/assets/javascripts/embed_video.js index 5d2bd46f2..e88029f58 100644 --- a/app/assets/javascripts/embed_video.js +++ b/app/assets/javascripts/embed_video.js @@ -1,12 +1,11 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.EmbedVideo = { initialize: function() { - return $("#js-embedded-video").each(function() { + $("#js-embedded-video").each(function() { var code; code = $(this).data("video-code"); - return $("#js-embedded-video").html(code); + $("#js-embedded-video").html(code); }); } }; diff --git a/app/assets/javascripts/fixed_bar.js b/app/assets/javascripts/fixed_bar.js index 054e354f9..ce721be20 100644 --- a/app/assets/javascripts/fixed_bar.js +++ b/app/assets/javascripts/fixed_bar.js @@ -1,21 +1,18 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.FixedBar = { initialize: function() { - return $("[data-fixed-bar]").each(function() { + $("[data-fixed-bar]").each(function() { var $this, fixedBarTopPosition; $this = $(this); fixedBarTopPosition = $this.offset().top; - return $(window).on("scroll", function() { + $(window).on("scroll", function() { if ($(window).scrollTop() > fixedBarTopPosition) { $this.addClass("is-fixed"); - return $("#check-ballot").css({ - "display": "inline-block" - }); + $("#check-ballot").css({ "display": "inline-block" }); } else { $this.removeClass("is-fixed"); - return $("#check-ballot").hide(); + $("#check-ballot").hide(); } }); }); diff --git a/app/assets/javascripts/flaggable.js b/app/assets/javascripts/flaggable.js index 28541aee7..d14a99129 100644 --- a/app/assets/javascripts/flaggable.js +++ b/app/assets/javascripts/flaggable.js @@ -1,9 +1,8 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Flaggable = { update: function(resource_id, button) { - return $("#" + resource_id + " .js-flag-actions").html(button).foundation(); + $("#" + resource_id + " .js-flag-actions").html(button).foundation(); } }; diff --git a/app/assets/javascripts/followable.js b/app/assets/javascripts/followable.js index 369082ee5..5ce1898e5 100644 --- a/app/assets/javascripts/followable.js +++ b/app/assets/javascripts/followable.js @@ -1,13 +1,12 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Followable = { update: function(followable_id, button, notice) { $("#" + followable_id + " .js-follow").html(button); if ($("[data-alert]").length > 0) { - return $("[data-alert]").replaceWith(notice); + $("[data-alert]").replaceWith(notice); } else { - return $("body").append(notice); + $("body").append(notice); } } }; diff --git a/app/assets/javascripts/forms.js b/app/assets/javascripts/forms.js index 57f17f7e5..a9ef8a4ea 100644 --- a/app/assets/javascripts/forms.js +++ b/app/assets/javascripts/forms.js @@ -1,22 +1,21 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Forms = { disableEnter: function() { - return $("form.js-enter-disabled").on("keyup keypress", function(event) { + $("form.js-enter-disabled").on("keyup keypress", function(event) { if (event.which === 13) { - return event.preventDefault(); + event.preventDefault(); } }); }, submitOnChange: function() { - return $(".js-submit-on-change").unbind("change").on("change", function() { + $(".js-submit-on-change").unbind("change").on("change", function() { $(this).closest("form").submit(); return false; }); }, toggleLink: function() { - return $(".js-toggle-link").unbind("click").on("click", function() { + $(".js-toggle-link").unbind("click").on("click", function() { var toggle_txt; $($(this).data("toggle-selector")).toggle("down"); if ($(this).data("toggle-text") !== void 0) { @@ -35,10 +34,10 @@ inputs = $(progress_bar + ", " + processes + ", " + banners); inputs.on({ input: function() { - return $("[name='" + this.name + "']").val($(this).val()); + $("[name='" + this.name + "']").val($(this).val()); } }); - return inputs.trigger("input"); + inputs.trigger("input"); }, hideOrShowFieldsAfterSelection: function() { $("[name='progress_bar[kind]']").on({ @@ -48,21 +47,21 @@ title_field = $(".translatable-fields[data-locale=" + locale + "]"); if (this.value === "primary") { title_field.hide(); - return $(".globalize-languages").hide(); + $(".globalize-languages").hide(); } else { title_field.show(); - return $(".globalize-languages").show(); + $(".globalize-languages").show(); } } }); - return $("[name='progress_bar[kind]']").change(); + $("[name='progress_bar[kind]']").change(); }, initialize: function() { App.Forms.disableEnter(); App.Forms.submitOnChange(); App.Forms.toggleLink(); App.Forms.synchronizeInputs(); - return App.Forms.hideOrShowFieldsAfterSelection(); + App.Forms.hideOrShowFieldsAfterSelection(); } }; diff --git a/app/assets/javascripts/foundation_extras.js b/app/assets/javascripts/foundation_extras.js index 7527d434b..691a1a3ce 100644 --- a/app/assets/javascripts/foundation_extras.js +++ b/app/assets/javascripts/foundation_extras.js @@ -1,28 +1,27 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.FoundationExtras = { clearSticky: function() { if ($("[data-sticky]").length) { - return $("[data-sticky]").foundation("destroy"); + $("[data-sticky]").foundation("destroy"); } }, mobile_ui_init: function() { - return $(window).trigger("load.zf.sticky"); + $(window).trigger("load.zf.sticky"); }, desktop_ui_init: function() { - return $(window).trigger("init.zf.sticky"); + $(window).trigger("init.zf.sticky"); }, initialize: function() { $(document).foundation(); $(window).trigger("resize"); $(document).on("page:before-unload", this.clearSticky); window.addEventListener("popstate", this.clearSticky, false); - return $(function() { + $(function() { if ($(window).width() < 620) { - return App.FoundationExtras.mobile_ui_init(); + App.FoundationExtras.mobile_ui_init(); } else { - return App.FoundationExtras.desktop_ui_init(); + App.FoundationExtras.desktop_ui_init(); } }); } diff --git a/app/assets/javascripts/globalize.js b/app/assets/javascripts/globalize.js index 149ca7e44..3206854bb 100644 --- a/app/assets/javascripts/globalize.js +++ b/app/assets/javascripts/globalize.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Globalize = { @@ -8,18 +7,18 @@ display_locale: function(locale) { App.Globalize.enable_locale(locale); App.Globalize.add_language(locale); - return $(".js-add-language option:selected").removeAttr("selected"); + $(".js-add-language option:selected").removeAttr("selected"); }, display_translations: function(locale) { $(".js-select-language option[value=" + locale + "]").prop("selected", true); - return $(".js-globalize-attribute").each(function() { + $(".js-globalize-attribute").each(function() { if ($(this).data("locale") === locale) { $(this).show(); } else { $(this).hide(); } $(".js-delete-language").hide(); - return $(".js-delete-" + locale).show(); + $(".js-delete-" + locale).show(); }); }, add_language: function(locale) { @@ -29,13 +28,13 @@ option = new Option(language_option.text(), language_option.val()); $(".js-select-language").append(option); } - return $(".js-select-language option[value=" + locale + "]").prop("selected", true); + $(".js-select-language option[value=" + locale + "]").prop("selected", true); }, remove_language: function(locale) { var next; $(".js-globalize-attribute[data-locale=" + locale + "]").each(function() { $(this).val("").hide(); - return App.Globalize.resetEditor(this); + App.Globalize.resetEditor(this); }); $(".js-select-language option[value=" + locale + "]").remove(); next = $(".js-select-language option:not([value=''])").first(); @@ -43,21 +42,21 @@ App.Globalize.disable_locale(locale); App.Globalize.update_description(); if ($(".js-select-language option").length === 1) { - return $(".js-select-language option").prop("selected", true); + $(".js-select-language option").prop("selected", true); } }, resetEditor: function(element) { if (CKEDITOR.instances[$(element).attr("id")]) { - return CKEDITOR.instances[$(element).attr("id")].setData(""); + CKEDITOR.instances[$(element).attr("id")].setData(""); } }, enable_locale: function(locale) { App.Globalize.destroy_locale_field(locale).val(false); - return App.Globalize.site_customization_enable_locale_field(locale).val(1); + App.Globalize.site_customization_enable_locale_field(locale).val(1); }, disable_locale: function(locale) { App.Globalize.destroy_locale_field(locale).val(true); - return App.Globalize.site_customization_enable_locale_field(locale).val(0); + App.Globalize.site_customization_enable_locale_field(locale).val(0); }, enabled_locales: function() { return $.map($(".js-select-language:first option:not([value=''])"), function(element) { @@ -73,14 +72,14 @@ refresh_visible_translations: function() { var locale; locale = $(".js-select-language").val(); - return App.Globalize.display_translations(locale); + App.Globalize.display_translations(locale); }, update_description: function() { var count, description; count = App.Globalize.enabled_locales().length; description = App.Globalize.language_description(count); $(".js-languages-description").html(description); - return $(".js-languages-count").text(count); + $(".js-languages-count").text(count); }, language_description: function(count) { switch (count) { @@ -98,19 +97,19 @@ locale = $(this).val(); App.Globalize.display_translations(locale); App.Globalize.display_locale(locale); - return App.Globalize.update_description(); + App.Globalize.update_description(); }); $(".js-select-language").on("change", function() { - return App.Globalize.display_translations($(this).val()); + App.Globalize.display_translations($(this).val()); }); $(".js-delete-language").on("click", function(e) { e.preventDefault(); App.Globalize.remove_language($(this).data("locale")); - return $(this).hide(); + $(this).hide(); }); - return $(".js-add-fields-container").on("cocoon:after-insert", function() { - return App.Globalize.enabled_locales().forEach(function(locale) { - return App.Globalize.enable_locale(locale); + $(".js-add-fields-container").on("cocoon:after-insert", function() { + App.Globalize.enabled_locales().forEach(function(locale) { + App.Globalize.enable_locale(locale); }); }); } diff --git a/app/assets/javascripts/ie_alert.js b/app/assets/javascripts/ie_alert.js index b587bfcdc..f62071fec 100644 --- a/app/assets/javascripts/ie_alert.js +++ b/app/assets/javascripts/ie_alert.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.IeAlert = { @@ -8,11 +7,11 @@ path: "/", expires: 365 }); - return $(".ie-callout").remove(); + $(".ie-callout").remove(); }, initialize: function() { - return $(".ie-callout-close-js").on("click", function(event) { - return App.IeAlert.set_cookie_and_hide(event); + $(".ie-callout-close-js").on("click", function(event) { + App.IeAlert.set_cookie_and_hide(event); }); } }; diff --git a/app/assets/javascripts/imageable.js b/app/assets/javascripts/imageable.js index 3de4e5e19..1e54f5d25 100644 --- a/app/assets/javascripts/imageable.js +++ b/app/assets/javascripts/imageable.js @@ -1,29 +1,28 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Imageable = { initialize: function() { $(".js-image-attachment").each(function() { - return App.Imageable.initializeDirectUploadInput(this); + App.Imageable.initializeDirectUploadInput(this); }); $("#nested-image").on("cocoon:after-remove", function() { - return $("#new_image_link").removeClass("hide"); + $("#new_image_link").removeClass("hide"); }); $("#nested-image").on("cocoon:before-insert", function() { - return $(".js-image-attachment").closest(".image").remove(); + $(".js-image-attachment").closest(".image").remove(); }); - return $("#nested-image").on("cocoon:after-insert", function(e, nested_image) { + $("#nested-image").on("cocoon:after-insert", function(e, nested_image) { var input; $("#new_image_link").addClass("hide"); input = $(nested_image).find(".js-image-attachment"); - return App.Imageable.initializeDirectUploadInput(input); + App.Imageable.initializeDirectUploadInput(input); }); }, initializeDirectUploadInput: function(input) { var inputData; inputData = this.buildData([], input); this.initializeRemoveCachedImageLink(input, inputData); - return $(input).fileupload({ + $(input).fileupload({ paramName: "attachment", formData: null, add: function(e, data) { @@ -31,11 +30,11 @@ upload_data = App.Imageable.buildData(data, e.target); App.Imageable.clearProgressBar(upload_data); App.Imageable.setProgressBar(upload_data, "uploading"); - return upload_data.submit(); + upload_data.submit(); }, change: function(e, data) { - return data.files.forEach(function(file) { - return App.Imageable.setFilename(inputData, file.name); + data.files.forEach(function(file) { + App.Imageable.setFilename(inputData, file.name); }); }, fail: function(e, data) { @@ -47,7 +46,7 @@ App.Imageable.clearPreview(data); $(data.destroyAttachmentLinkContainer).find("a.delete:not(.remove-nested)").remove(); $(data.addAttachmentLabel).addClass("error"); - return $(data.addAttachmentLabel).show(); + $(data.addAttachmentLabel).show(); }, done: function(e, data) { var destroyAttachmentLink; @@ -62,10 +61,10 @@ App.Imageable.setPreview(data); destroyAttachmentLink = $(data.result.destroy_link); $(data.destroyAttachmentLinkContainer).html(destroyAttachmentLink); - return $(destroyAttachmentLink).on("click", function(e) { + $(destroyAttachmentLink).on("click", function(e) { e.preventDefault(); e.stopPropagation(); - return App.Imageable.doDeleteCachedAttachmentRequest(this.href, data); + App.Imageable.doDeleteCachedAttachmentRequest(this.href, data); }); }, progress: function(e, data) { @@ -93,46 +92,46 @@ }, clearFilename: function(data) { $(data.fileNameContainer).text(""); - return $(data.fileNameContainer).hide(); + $(data.fileNameContainer).hide(); }, clearInputErrors: function(data) { - return $(data.errorContainer).find("small.error").remove(); + $(data.errorContainer).find("small.error").remove(); }, clearProgressBar: function(data) { - return $(data.progressBar).find(".loading-bar").removeClass("complete errors uploading").css("width", "0px"); + $(data.progressBar).find(".loading-bar").removeClass("complete errors uploading").css("width", "0px"); }, clearPreview: function(data) { - return $(data.wrapper).find(".image-preview").remove(); + $(data.wrapper).find(".image-preview").remove(); }, setFilename: function(data, file_name) { $(data.fileNameContainer).text(file_name); - return $(data.fileNameContainer).show(); + $(data.fileNameContainer).show(); }, setProgressBar: function(data, klass) { - return $(data.progressBar).find(".loading-bar").addClass(klass); + $(data.progressBar).find(".loading-bar").addClass(klass); }, setTitleFromFile: function(data, title) { if ($(data.titleField).val() === "") { - return $(data.titleField).val(title); + $(data.titleField).val(title); } }, setInputErrors: function(data) { var errors; errors = "" + data.jqXHR.responseJSON.errors + ""; - return $(data.errorContainer).append(errors); + $(data.errorContainer).append(errors); }, setPreview: function(data) { var image_preview; image_preview = "
      "; if ($(data.preview).length > 0) { - return $(data.preview).replaceWith(image_preview); + $(data.preview).replaceWith(image_preview); } else { $(image_preview).insertBefore($(data.wrapper).find(".attachment-actions")); - return data.preview = $(data.wrapper).find(".image-preview"); + data.preview = $(data.wrapper).find(".image-preview"); } }, doDeleteCachedAttachmentRequest: function(url, data) { - return $.ajax({ + $.ajax({ type: "POST", url: url, dataType: "json", @@ -150,9 +149,9 @@ $(data.wrapper).find(".attachment-actions").addClass("small-12").removeClass("small-6 float-right"); $(data.wrapper).find(".attachment-actions .action-remove").addClass("small-3").removeClass("small-12"); if ($(data.input).data("nested-image") === true) { - return $(data.wrapper).remove(); + $(data.wrapper).remove(); } else { - return $(data.wrapper).find("a.remove-cached-attachment").remove(); + $(data.wrapper).find("a.remove-cached-attachment").remove(); } } }); @@ -161,15 +160,15 @@ var remove_image_link, wrapper; wrapper = $(input).closest(".direct-upload"); remove_image_link = $(wrapper).find("a.remove-cached-attachment"); - return $(remove_image_link).on("click", function(e) { + $(remove_image_link).on("click", function(e) { e.preventDefault(); e.stopPropagation(); - return App.Imageable.doDeleteCachedAttachmentRequest(this.href, data); + App.Imageable.doDeleteCachedAttachmentRequest(this.href, data); }); }, removeImage: function(id) { $("#" + id).remove(); - return $("#new_image_link").removeClass("hide"); + $("#new_image_link").removeClass("hide"); } }; diff --git a/app/assets/javascripts/investment_report_alert.js b/app/assets/javascripts/investment_report_alert.js index 21272a631..12bb9a0c0 100644 --- a/app/assets/javascripts/investment_report_alert.js +++ b/app/assets/javascripts/investment_report_alert.js @@ -1,9 +1,8 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.InvestmentReportAlert = { initialize: function() { - return $("#js-investment-report-alert").on("click", function() { + $("#js-investment-report-alert").on("click", function() { if (this.checked && $("#budget_investment_feasibility_unfeasible").is(":checked")) { return confirm(this.dataset.alert + "\n" + this.dataset.notFeasibleAlert); } else if (this.checked) { diff --git a/app/assets/javascripts/legislation.js b/app/assets/javascripts/legislation.js index cb1f5d316..f8dc9fc01 100644 --- a/app/assets/javascripts/legislation.js +++ b/app/assets/javascripts/legislation.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Legislation = { @@ -6,13 +5,13 @@ $("form#new_legislation_answer input.button").hide(); $("form#new_legislation_answer input[type=radio]").on({ click: function() { - return $("form#new_legislation_answer").submit(); + $("form#new_legislation_answer").submit(); } }); $("form#draft_version_go_to_version input.button").hide(); - return $("form#draft_version_go_to_version select").on({ + $("form#draft_version_go_to_version select").on({ change: function() { - return $("form#draft_version_go_to_version").submit(); + $("form#draft_version_go_to_version").submit(); } }); } diff --git a/app/assets/javascripts/legislation_admin.js b/app/assets/javascripts/legislation_admin.js index 607e534d1..019703396 100644 --- a/app/assets/javascripts/legislation_admin.js +++ b/app/assets/javascripts/legislation_admin.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.LegislationAdmin = { @@ -9,17 +8,17 @@ checkbox = $(this); parent = $(this).parents(".row:eq(0)"); date_selector = $(this).data("disable-date"); - return parent.find("input[type='text'][id^='" + date_selector + "']").each(function() { + parent.find("input[type='text'][id^='" + date_selector + "']").each(function() { if (checkbox.is(":checked")) { - return $(this).removeAttr("disabled"); + $(this).removeAttr("disabled"); } else { - return $(this).val(""); + $(this).val(""); } }); } }); - return $("#nested_question_options").on("cocoon:after-insert", function() { - return App.Globalize.refresh_visible_translations(); + $("#nested_question_options").on("cocoon:after-insert", function() { + App.Globalize.refresh_visible_translations(); }); } }; diff --git a/app/assets/javascripts/legislation_allegations.js b/app/assets/javascripts/legislation_allegations.js index 718f38ba2..b76b30da1 100644 --- a/app/assets/javascripts/legislation_allegations.js +++ b/app/assets/javascripts/legislation_allegations.js @@ -1,16 +1,15 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.LegislationAllegations = { toggle_comments: function() { if (!App.LegislationAnnotatable.isMobile()) { $(".draft-allegation").toggleClass("comments-on"); - return $("#comments-box").html("").hide(); + $("#comments-box").html("").hide(); } }, show_comments: function() { if (!App.LegislationAnnotatable.isMobile()) { - return $(".draft-allegation").addClass("comments-on"); + $(".draft-allegation").addClass("comments-on"); } }, initialize: function() { @@ -19,15 +18,15 @@ e.preventDefault(); e.stopPropagation(); if (!App.LegislationAnnotatable.isMobile()) { - return App.LegislationAllegations.toggle_comments(); + App.LegislationAllegations.toggle_comments(); } } }); - return $(".js-toggle-allegations").on({ + $(".js-toggle-allegations").on({ click: function() { if (!App.LegislationAnnotatable.isMobile()) { if ($(this).find(".draft-panel .panel-title:visible").length === 0) { - return App.LegislationAllegations.toggle_comments(); + App.LegislationAllegations.toggle_comments(); } } } diff --git a/app/assets/javascripts/legislation_annotatable.js b/app/assets/javascripts/legislation_annotatable.js index 91adb7cf9..52bcb7ce9 100644 --- a/app/assets/javascripts/legislation_annotatable.js +++ b/app/assets/javascripts/legislation_annotatable.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.LegislationAnnotatable = { @@ -41,7 +40,7 @@ if (App.LegislationAnnotatable.isMobile()) { return; } - return $.ajax({ + $.ajax({ method: "GET", url: event.annotation_url + "/annotations/" + event.annotation_id + "/comments", dataType: "script" @@ -73,8 +72,8 @@ annotation_url: target.closest(".legislation-annotatable").data("legislation-annotatable-base-url"), offset: target.offset()["top"] }); - return parents_ids.each(function(i, pid) { - return $.event.trigger({ + parents_ids.each(function(i, pid) { + $.event.trigger({ type: "renderLegislationAnnotation", annotation_id: pid, annotation_url: target.closest(".legislation-annotatable").data("legislation-annotatable-base-url") @@ -95,7 +94,7 @@ App.LegislationAllegations.show_comments(); $("#comments-box").show(); annotation_url = $("[data-legislation-annotatable-base-url]").data("legislation-annotatable-base-url"); - return $.ajax({ + $.ajax({ method: "GET", url: annotation_url + "/annotations/new", dataType: "script" @@ -122,7 +121,6 @@ $(e.target).find("label").addClass("error"); $("" + data.responseJSON[0] + "").insertAfter($(e.target).find("textarea")); } - return true; }); } }).bind(this)); @@ -181,7 +179,7 @@ var ann_weight, el; ann_weight = App.LegislationAnnotatable.propotionalWeight(annotation.weight, max_weight); el = $("span[data-annotation-id='" + annotation.id + "']"); - return el.addClass("weight-" + ann_weight); + el.addClass("weight-" + ann_weight); }); clearInterval(checkExist); } @@ -200,7 +198,7 @@ App.LegislationAnnotatable.remove_highlight(); }); current_user_id = $("html").data("current-user-id"); - return $(".legislation-annotatable").each(function() { + $(".legislation-annotatable").each(function() { var ann_id, base_url; ann_id = $(this).data("legislation-draft-version-id"); base_url = $(this).data("legislation-annotatable-base-url"); @@ -209,7 +207,7 @@ beforeAnnotationCreated: function(ann) { ann["legislation_draft_version_id"] = ann_id; ann.permissions = ann.permissions || {}; - return ann.permissions.admin = []; + ann.permissions.admin = []; } }; }).include(annotator.ui.main, { @@ -222,9 +220,9 @@ search: "/annotations/search" } }); - return App.LegislationAnnotatable.app.start().then(function() { + App.LegislationAnnotatable.app.start().then(function() { App.LegislationAnnotatable.app.ident.identity = current_user_id; - return App.LegislationAnnotatable.app.annotations.load({ + App.LegislationAnnotatable.app.annotations.load({ legislation_draft_version_id: ann_id }); }); diff --git a/app/assets/javascripts/location_changer.js b/app/assets/javascripts/location_changer.js index 1d612457e..824052b9f 100644 --- a/app/assets/javascripts/location_changer.js +++ b/app/assets/javascripts/location_changer.js @@ -1,10 +1,9 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.LocationChanger = { initialize: function() { - return $(".js-location-changer").on("change", function() { - return window.location.assign($(this).val()); + $(".js-location-changer").on("change", function() { + window.location.assign($(this).val()); }); } }; diff --git a/app/assets/javascripts/managers.js b/app/assets/javascripts/managers.js index 428445e37..d9622f7b1 100644 --- a/app/assets/javascripts/managers.js +++ b/app/assets/javascripts/managers.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Managers = { @@ -15,17 +14,17 @@ return chars.join(""); }, togglePassword: function(type) { - return $("#user_password").prop("type", type); + $("#user_password").prop("type", type); }, initialize: function() { $(".generate-random-value").on("click", function() { - return $("#user_password").val(App.Managers.generatePassword()); + $("#user_password").val(App.Managers.generatePassword()); }); - return $(".show-password").on("click", function() { + $(".show-password").on("click", function() { if ($("#user_password").is("input[type='password']")) { - return App.Managers.togglePassword("text"); + App.Managers.togglePassword("text"); } else { - return App.Managers.togglePassword("password"); + App.Managers.togglePassword("password"); } }); } diff --git a/app/assets/javascripts/map.js b/app/assets/javascripts/map.js index b7d087602..41f103815 100644 --- a/app/assets/javascripts/map.js +++ b/app/assets/javascripts/map.js @@ -1,14 +1,13 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Map = { initialize: function() { $("*[data-map]").each(function() { - return App.Map.initializeMap(this); + App.Map.initializeMap(this); }); - return $(".js-toggle-map").on({ + $(".js-toggle-map").on({ click: function() { - return App.Map.toggleMap(); + App.Map.toggleMap(); } }); }, @@ -76,11 +75,11 @@ }; openMarkerPopup = function(e) { marker = e.target; - return $.ajax("/investments/" + marker.options["id"] + "/json_data", { + $.ajax("/investments/" + marker.options["id"] + "/json_data", { type: "GET", dataType: "json", success: function(data) { - return e.target.bindPopup(getPopupContent(data)).openPopup(); + e.target.bindPopup(getPopupContent(data)).openPopup(); } }); }; @@ -101,25 +100,25 @@ map.on("click", moveOrPlaceMarker); } if (addMarkerInvestments) { - return addMarkerInvestments.forEach(function(coordinates) { + addMarkerInvestments.forEach(function(coordinates) { if (App.Map.validCoordinates(coordinates)) { marker = createMarker(coordinates.lat, coordinates.long); marker.options["id"] = coordinates.investment_id; - return marker.on("click", openMarkerPopup); + marker.on("click", openMarkerPopup); } }); } }, toggleMap: function() { $(".map").toggle(); - return $(".js-location-map-remove-marker").toggle(); + $(".js-location-map-remove-marker").toggle(); }, cleanInvestmentCoordinates: function(element) { var clean_markers, markers; markers = $(element).attr("data-marker-investments-coordinates"); if (markers != null) { clean_markers = markers.replace(/-?(\*+)/g, null); - return $(element).attr("data-marker-investments-coordinates", clean_markers); + $(element).attr("data-marker-investments-coordinates", clean_markers); } }, validCoordinates: function(coordinates) { diff --git a/app/assets/javascripts/markdown_editor.js b/app/assets/javascripts/markdown_editor.js index 34c624753..7bdd7b37c 100644 --- a/app/assets/javascripts/markdown_editor.js +++ b/app/assets/javascripts/markdown_editor.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.MarkdownEditor = { @@ -6,7 +5,7 @@ var result, textarea_content; textarea_content = App.MarkdownEditor.find_textarea(element).val(); result = md.render(textarea_content); - return element.find(".markdown-preview").html(result); + element.find(".markdown-preview").html(result); }, // Multi-locale (translatable) form fields work by hiding inputs of locales // which are not "active". @@ -14,7 +13,7 @@ return editor.find("textarea"); }, initialize: function() { - return $(".markdown-editor").each(function() { + $(".markdown-editor").each(function() { var editor, md; md = window.markdownit({ html: true, @@ -27,9 +26,9 @@ $(".legislation-draft-versions-edit .warning").show(); }); editor.find("textarea").on("scroll", function() { - return editor.find(".markdown-preview").scrollTop($(this).scrollTop()); + editor.find(".markdown-preview").scrollTop($(this).scrollTop()); }); - return editor.find(".fullscreen-toggle").on("click", function() { + editor.find(".fullscreen-toggle").on("click", function() { var span; editor.toggleClass("fullscreen"); $(".fullscreen-container").toggleClass("medium-8", "medium-12"); @@ -41,9 +40,9 @@ } if (editor.hasClass("fullscreen")) { App.MarkdownEditor.find_textarea(editor).height($(window).height() - 100); - return App.MarkdownEditor.refresh_preview(editor, md); + App.MarkdownEditor.refresh_preview(editor, md); } else { - return App.MarkdownEditor.find_textarea(editor).height("10em"); + App.MarkdownEditor.find_textarea(editor).height("10em"); } }); }); diff --git a/app/assets/javascripts/modal_download.js b/app/assets/javascripts/modal_download.js index 192d60d62..9aec87b59 100644 --- a/app/assets/javascripts/modal_download.js +++ b/app/assets/javascripts/modal_download.js @@ -1,14 +1,13 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.ModalDownload = { enableButton: function() { $("#js-download-modal-submit").attr("disabled", false); - return $("#js-download-modal-submit").removeClass("disabled"); + $("#js-download-modal-submit").removeClass("disabled"); }, initialize: function() { - return $("#js-download-modal-submit").on("click", function() { - return setTimeout(App.ModalDownload.enableButton, 2000); + $("#js-download-modal-submit").on("click", function() { + setTimeout(App.ModalDownload.enableButton, 2000); }); } }; diff --git a/app/assets/javascripts/moderator_budget_investments.js b/app/assets/javascripts/moderator_budget_investments.js index 42bcc29a1..52ed20e5e 100644 --- a/app/assets/javascripts/moderator_budget_investments.js +++ b/app/assets/javascripts/moderator_budget_investments.js @@ -1,13 +1,12 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.ModeratorBudgetInvestments = { add_class_faded: function(id) { $("#" + id).addClass("faded"); - return $("#comments").addClass("faded"); + $("#comments").addClass("faded"); }, hide_moderator_actions: function(id) { - return $("#" + id + " .js-moderator-investment-actions:first").hide(); + $("#" + id + " .js-moderator-investment-actions:first").hide(); } }; diff --git a/app/assets/javascripts/moderator_comment.js b/app/assets/javascripts/moderator_comment.js index 5c6c6a462..17915fc67 100644 --- a/app/assets/javascripts/moderator_comment.js +++ b/app/assets/javascripts/moderator_comment.js @@ -1,12 +1,11 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.ModeratorComments = { add_class_faded: function(id) { - return $("#" + id + " .comment-body:first").addClass("faded"); + $("#" + id + " .comment-body:first").addClass("faded"); }, hide_moderator_actions: function(id) { - return $("#" + id + " .js-moderator-comment-actions").hide(); + $("#" + id + " .js-moderator-comment-actions").hide(); } }; diff --git a/app/assets/javascripts/moderator_debates.js b/app/assets/javascripts/moderator_debates.js index 94aa9d8cd..0beb124b4 100644 --- a/app/assets/javascripts/moderator_debates.js +++ b/app/assets/javascripts/moderator_debates.js @@ -1,13 +1,12 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.ModeratorDebates = { add_class_faded: function(id) { $("#" + id).addClass("faded"); - return $("#comments").addClass("faded"); + $("#comments").addClass("faded"); }, hide_moderator_actions: function(id) { - return $("#" + id + " .js-moderator-debate-actions:first").hide(); + $("#" + id + " .js-moderator-debate-actions:first").hide(); } }; diff --git a/app/assets/javascripts/moderator_proposal_notifications.js b/app/assets/javascripts/moderator_proposal_notifications.js index a56224d5d..3a22027b7 100644 --- a/app/assets/javascripts/moderator_proposal_notifications.js +++ b/app/assets/javascripts/moderator_proposal_notifications.js @@ -1,12 +1,11 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.ModeratorProposalNotifications = { add_class_faded: function(id) { - return $("#" + id).addClass("faded"); + $("#" + id).addClass("faded"); }, hide_moderator_actions: function(id) { - return $("#" + id + " .js-moderator-proposal-notifications-actions:first").hide(); + $("#" + id + " .js-moderator-proposal-notifications-actions:first").hide(); } }; diff --git a/app/assets/javascripts/moderator_proposals.js b/app/assets/javascripts/moderator_proposals.js index e27404315..adca84209 100644 --- a/app/assets/javascripts/moderator_proposals.js +++ b/app/assets/javascripts/moderator_proposals.js @@ -1,13 +1,12 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.ModeratorProposals = { add_class_faded: function(id) { $("#" + id).addClass("faded"); - return $("#comments").addClass("faded"); + $("#comments").addClass("faded"); }, hide_moderator_actions: function(id) { - return $("#" + id + " .js-moderator-proposals-actions:first").hide(); + $("#" + id + " .js-moderator-proposals-actions:first").hide(); } }; diff --git a/app/assets/javascripts/polls.js b/app/assets/javascripts/polls.js index b0f9bf035..b77e6543c 100644 --- a/app/assets/javascripts/polls.js +++ b/app/assets/javascripts/polls.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Polls = { @@ -12,11 +11,11 @@ return strings.join("").substring(0, 64); }, replaceToken: function(token) { - return $(".js-question-answer").each(function() { + $(".js-question-answer").each(function() { var token_param; token_param = this.search.slice(-6); if (token_param === "token=") { - return this.href = this.href + token; + this.href = this.href + token; } }); }, @@ -24,20 +23,21 @@ var token; token = App.Polls.generateToken(); App.Polls.replaceToken(token); - return $(".zoom-link").on("click", function(event) { + $(".zoom-link").on("click", function(event) { var answer; answer = $(event.target).closest("div.answer"); + if ($(answer).hasClass("medium-6")) { $(answer).removeClass("medium-6"); $(answer).addClass("answer-divider"); if (!$(answer).hasClass("first")) { - return $(answer).insertBefore($(answer).prev("div.answer")); + $(answer).insertBefore($(answer).prev("div.answer")); } } else { $(answer).addClass("medium-6"); $(answer).removeClass("answer-divider"); if (!$(answer).hasClass("first")) { - return $(answer).insertAfter($(answer).next("div.answer")); + $(answer).insertAfter($(answer).next("div.answer")); } } }); diff --git a/app/assets/javascripts/polls_admin.js b/app/assets/javascripts/polls_admin.js index c0f4b6f50..a92b403f6 100644 --- a/app/assets/javascripts/polls_admin.js +++ b/app/assets/javascripts/polls_admin.js @@ -1,9 +1,8 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.PollsAdmin = { initialize: function() { - return $("select[class='js-poll-shifts']").on({ + $("select[class='js-poll-shifts']").on({ change: function() { switch ($(this).val()) { case "vote_collection": @@ -12,7 +11,7 @@ break; case "recount_scrutiny": $("select[class='js-shift-recount-scrutiny-dates']").show(); - return $("select[class='js-shift-vote-collection-dates']").hide(); + $("select[class='js-shift-vote-collection-dates']").hide(); } } }); diff --git a/app/assets/javascripts/prevent_double_submission.js b/app/assets/javascripts/prevent_double_submission.js index 4b68120f9..cec1234ce 100644 --- a/app/assets/javascripts/prevent_double_submission.js +++ b/app/assets/javascripts/prevent_double_submission.js @@ -1,23 +1,22 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.PreventDoubleSubmission = { disable_buttons: function(buttons) { - return setTimeout(function() { - return buttons.each(function() { + setTimeout(function() { + buttons.each(function() { var button, loading, ref; button = $(this); if (!button.hasClass("disabled")) { loading = (ref = button.data("loading")) != null ? ref : "..."; button.addClass("disabled").attr("disabled", "disabled"); button.data("text", button.val()); - return button.val(loading); + button.val(loading); } }); }, 1); }, reset_buttons: function(buttons) { - return buttons.each(function() { + buttons.each(function() { var button, button_text; button = $(this); if (button.hasClass("disabled")) { @@ -25,23 +24,23 @@ button.removeClass("disabled").attr("disabled", null); if (button_text) { button.val(button_text); - return button.data("text", null); + button.data("text", null); } } }); }, initialize: function() { - return $("form").on("submit", function(event) { + $("form").on("submit", function(event) { var buttons; if (!(event.target.id === "new_officing_voter" || event.target.id === "admin_download_emails")) { buttons = $(this).find(":button, :submit"); - return App.PreventDoubleSubmission.disable_buttons(buttons); + App.PreventDoubleSubmission.disable_buttons(buttons); } }).on("ajax:success", function(event) { var buttons; if (!(event.target.id === "new_officing_voter" || event.target.id === "admin_download_emails")) { buttons = $(this).find(":button, :submit"); - return App.PreventDoubleSubmission.reset_buttons(buttons); + App.PreventDoubleSubmission.reset_buttons(buttons); } }); } diff --git a/app/assets/javascripts/questions.js b/app/assets/javascripts/questions.js index 15dc648bb..c0103a978 100644 --- a/app/assets/javascripts/questions.js +++ b/app/assets/javascripts/questions.js @@ -1,14 +1,13 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Questions = { nestedQuestions: function() { - return $(".js-questions").on("cocoon:after-insert", function(e, new_question) { - return App.Answers.initializeAnswers($(new_question).find(".js-answers")); + $(".js-questions").on("cocoon:after-insert", function(e, new_question) { + App.Answers.initializeAnswers($(new_question).find(".js-answers")); }); }, initialize: function() { - return App.Questions.nestedQuestions(); + App.Questions.nestedQuestions(); } }; diff --git a/app/assets/javascripts/registration_form.js b/app/assets/javascripts/registration_form.js index 43f93948b..d5ca165e5 100644 --- a/app/assets/javascripts/registration_form.js +++ b/app/assets/javascripts/registration_form.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.RegistrationForm = { @@ -6,26 +5,26 @@ var clearUsernameMessage, showUsernameMessage, usernameInput, validateUsername; usernameInput = $("form#new_user[action=\"/users\"] input#user_username"); clearUsernameMessage = function() { - return $("small").remove(); + $("small").remove(); }; showUsernameMessage = function(response) { var klass; klass = response.available ? "no-error" : "error"; - return usernameInput.after($("" + response.message + "")); + usernameInput.after($("" + response.message + "")); }; validateUsername = function(username) { var request; request = $.get("/user/registrations/check_username?username=" + username); - return request.done(function(response) { - return showUsernameMessage(response); + request.done(function(response) { + showUsernameMessage(response); }); }; - return usernameInput.on("focusout", function() { + usernameInput.on("focusout", function() { var username; clearUsernameMessage(); username = usernameInput.val(); if (username !== "") { - return validateUsername(username); + validateUsername(username); } }); } diff --git a/app/assets/javascripts/send_admin_notification_alert.js b/app/assets/javascripts/send_admin_notification_alert.js index 4b7666908..2c9742b76 100644 --- a/app/assets/javascripts/send_admin_notification_alert.js +++ b/app/assets/javascripts/send_admin_notification_alert.js @@ -1,9 +1,8 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.SendAdminNotificationAlert = { initialize: function() { - return $("#js-send-admin_notification-alert").on("click", function() { + $("#js-send-admin_notification-alert").on("click", function() { return confirm(this.dataset.alert); }); } diff --git a/app/assets/javascripts/send_newsletter_alert.js b/app/assets/javascripts/send_newsletter_alert.js index 5dc2169c6..92b84a1d4 100644 --- a/app/assets/javascripts/send_newsletter_alert.js +++ b/app/assets/javascripts/send_newsletter_alert.js @@ -1,9 +1,8 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.SendNewsletterAlert = { initialize: function() { - return $("#js-send-newsletter-alert").on("click", function() { + $("#js-send-newsletter-alert").on("click", function() { return confirm(this.dataset.alert); }); } diff --git a/app/assets/javascripts/settings.js b/app/assets/javascripts/settings.js index 0cb7c598d..0467e49c7 100644 --- a/app/assets/javascripts/settings.js +++ b/app/assets/javascripts/settings.js @@ -1,16 +1,15 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Settings = { initialize: function() { - return $("#settings-tabs").on("change.zf.tabs", function() { + $("#settings-tabs").on("change.zf.tabs", function() { var map_container; if ($("#tab-map-configuration:visible").length) { map_container = L.DomUtil.get("admin-map"); if (map_container !== null) { map_container._leaflet_id = null; } - return App.Map.initialize(); + App.Map.initialize(); } }); } diff --git a/app/assets/javascripts/social_share.js b/app/assets/javascripts/social_share.js index b58cda286..973ac4322 100644 --- a/app/assets/javascripts/social_share.js +++ b/app/assets/javascripts/social_share.js @@ -1,10 +1,9 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.SocialShare = { initialize: function() { - return $(".social-share-button a").each(function() { - return $(this).append("" + ($(this).data("site")) + ""); + $(".social-share-button a").each(function() { + $(this).append("" + ($(this).data("site")) + ""); }); } }; diff --git a/app/assets/javascripts/sortable.js b/app/assets/javascripts/sortable.js index c8ef2b814..a36587622 100644 --- a/app/assets/javascripts/sortable.js +++ b/app/assets/javascripts/sortable.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Sortable = { @@ -9,7 +8,7 @@ new_order = $(this).sortable("toArray", { attribute: "data-answer-id" }); - return $.ajax({ + $.ajax({ url: $(".sortable").data("js-url"), data: { ordered_list: new_order @@ -18,13 +17,13 @@ }); } }); - return $(".sortable-priotirized-votation").sortable({ + $(".sortable-priotirized-votation").sortable({ update: function() { var new_order; new_order = $(this).sortable("toArray", { attribute: "data-answer-id" }); - return $.ajax({ + $.ajax({ url: $(this).data("js-url"), data: { ordered_list: new_order diff --git a/app/assets/javascripts/stats.js b/app/assets/javascripts/stats.js index cb4eb8a48..79cd71fe0 100644 --- a/app/assets/javascripts/stats.js +++ b/app/assets/javascripts/stats.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; // Helper for generate C3.js graphs @@ -24,13 +23,13 @@ } } }; - return c3.generate(conf); + c3.generate(conf); }; App.Stats = { initialize: function() { - return $("[data-graph]").each(function() { - return buildGraph(this); + $("[data-graph]").each(function() { + buildGraph(this); }); } }; diff --git a/app/assets/javascripts/suggest.js b/app/assets/javascripts/suggest.js index b7aecce78..6aa99c1ac 100644 --- a/app/assets/javascripts/suggest.js +++ b/app/assets/javascripts/suggest.js @@ -1,13 +1,12 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Suggest = { initialize: function() { - return $("[data-js-suggest-result]").each(function() { + $("[data-js-suggest-result]").each(function() { var $this, callback, timer; $this = $(this); callback = function() { - return $.ajax({ + $.ajax({ url: $this.data("js-url"), data: { search: $this.val() @@ -17,20 +16,21 @@ success: function(stHtml) { var js_suggest_selector, locale; js_suggest_selector = $this.data("js-suggest"); + if (js_suggest_selector.startsWith(".")) { locale = $this.closest(".translatable-fields").data("locale"); js_suggest_selector += "[data-locale=" + locale + "]"; } - return $(js_suggest_selector).html(stHtml); + $(js_suggest_selector).html(stHtml); } }); }; timer = null; $this.on("keyup", function() { window.clearTimeout(timer); - return timer = window.setTimeout(callback, 1000); + timer = window.setTimeout(callback, 1000); }); - return $this.on("change", callback); + $this.on("change", callback); }); } }; diff --git a/app/assets/javascripts/table_sortable.js b/app/assets/javascripts/table_sortable.js index 28164bbb8..80cc1f722 100644 --- a/app/assets/javascripts/table_sortable.js +++ b/app/assets/javascripts/table_sortable.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.TableSortable = { @@ -18,7 +17,7 @@ }; }, initialize: function() { - return $("table.sortable th").click(function() { + $("table.sortable th").click(function() { var rows, table; table = $(this).parents("table").eq(0); rows = table.find("tbody tr").toArray().sort(App.TableSortable.comparer($(this).index())); diff --git a/app/assets/javascripts/tag_autocomplete.js b/app/assets/javascripts/tag_autocomplete.js index c9fc55d57..7cf48fff8 100644 --- a/app/assets/javascripts/tag_autocomplete.js +++ b/app/assets/javascripts/tag_autocomplete.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.TagAutocomplete = { @@ -9,9 +8,9 @@ return App.TagAutocomplete.split(term).pop(); }, init_autocomplete: function() { - return $(".tag-autocomplete").autocomplete({ + $(".tag-autocomplete").autocomplete({ source: function(request, response) { - return $.ajax({ + $.ajax({ url: $(".tag-autocomplete").data("js-url"), data: { search: App.TagAutocomplete.extractLast(request.term) @@ -42,7 +41,7 @@ }); }, initialize: function() { - return App.TagAutocomplete.init_autocomplete(); + App.TagAutocomplete.init_autocomplete(); } }; diff --git a/app/assets/javascripts/tags.js b/app/assets/javascripts/tags.js index dcb6b0290..c3ddcb66e 100644 --- a/app/assets/javascripts/tags.js +++ b/app/assets/javascripts/tags.js @@ -1,13 +1,12 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Tags = { initialize: function() { var $tag_input; $tag_input = $("input.js-tag-list"); - return $("body .js-add-tag-link").each(function() { + $("body .js-add-tag-link").each(function() { if ($(this).data("initialized") !== "yes") { - return $(this).on("click", function() { + $(this).on("click", function() { var current_tags, name; name = "\"" + ($(this).text()) + "\""; current_tags = $tag_input.val().split(",").filter(Boolean); diff --git a/app/assets/javascripts/tree_navigator.js b/app/assets/javascripts/tree_navigator.js index 039e953ce..fc3eaae36 100644 --- a/app/assets/javascripts/tree_navigator.js +++ b/app/assets/javascripts/tree_navigator.js @@ -1,13 +1,12 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.TreeNavigator = { setNodes: function(nodes) { - return nodes.children("ul").each(function() { + nodes.children("ul").each(function() { var link; link = $(this).prev("a"); $('').insertBefore(link); - return App.TreeNavigator.setNodes($(this).children()); + App.TreeNavigator.setNodes($(this).children()); }); }, initialize: function() { @@ -24,18 +23,18 @@ click: function() { if ($(this).hasClass("open")) { $(this).removeClass("open").addClass("closed"); - return $(this).siblings("ul").hide(); + $(this).siblings("ul").hide(); } else if ($(this).hasClass("closed")) { $(this).removeClass("closed").addClass("open"); - return $(this).siblings("ul").show(); + $(this).siblings("ul").show(); } } }); anchor = $(location).attr("hash"); if (anchor) { - return elem.find("a[href='" + anchor + "']").parents("ul").each(function() { + elem.find("a[href='" + anchor + "']").parents("ul").each(function() { $(this).show(); - return $(this).siblings("span").removeClass("closed").addClass("open"); + $(this).siblings("span").removeClass("closed").addClass("open"); }); } } diff --git a/app/assets/javascripts/users.js b/app/assets/javascripts/users.js index de08113a0..c4d74df26 100644 --- a/app/assets/javascripts/users.js +++ b/app/assets/javascripts/users.js @@ -1,9 +1,8 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Users = { initialize: function() { - return $(".initialjs-avatar").initial(); + $(".initialjs-avatar").initial(); } }; diff --git a/app/assets/javascripts/valuation_budget_investment_form.js b/app/assets/javascripts/valuation_budget_investment_form.js index 5309b4a03..138b11171 100644 --- a/app/assets/javascripts/valuation_budget_investment_form.js +++ b/app/assets/javascripts/valuation_budget_investment_form.js @@ -1,37 +1,36 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.ValuationBudgetInvestmentForm = { showFeasibleFields: function() { $("#valuation_budget_investment_edit_form #unfeasible_fields").hide("down"); - return $("#valuation_budget_investment_edit_form #feasible_fields").show(); + $("#valuation_budget_investment_edit_form #feasible_fields").show(); }, showNotFeasibleFields: function() { $("#valuation_budget_investment_edit_form #feasible_fields").hide("down"); - return $("#valuation_budget_investment_edit_form #unfeasible_fields").show(); + $("#valuation_budget_investment_edit_form #unfeasible_fields").show(); }, showAllFields: function() { $("#valuation_budget_investment_edit_form #feasible_fields").show("down"); - return $("#valuation_budget_investment_edit_form #unfeasible_fields").show("down"); + $("#valuation_budget_investment_edit_form #unfeasible_fields").show("down"); }, showFeasibilityFields: function() { var feasibility; feasibility = $("#valuation_budget_investment_edit_form input[type=radio][name='budget_investment[feasibility]']:checked").val(); if (feasibility === "feasible") { - return App.ValuationBudgetInvestmentForm.showFeasibleFields(); + App.ValuationBudgetInvestmentForm.showFeasibleFields(); } else if (feasibility === "unfeasible") { - return App.ValuationBudgetInvestmentForm.showNotFeasibleFields(); + App.ValuationBudgetInvestmentForm.showNotFeasibleFields(); } }, showFeasibilityFieldsOnChange: function() { - return $("#valuation_budget_investment_edit_form input[type=radio][name='budget_investment[feasibility]']").change(function() { + $("#valuation_budget_investment_edit_form input[type=radio][name='budget_investment[feasibility]']").change(function() { App.ValuationBudgetInvestmentForm.showAllFields(); - return App.ValuationBudgetInvestmentForm.showFeasibilityFields(); + App.ValuationBudgetInvestmentForm.showFeasibilityFields(); }); }, initialize: function() { App.ValuationBudgetInvestmentForm.showFeasibilityFields(); - return App.ValuationBudgetInvestmentForm.showFeasibilityFieldsOnChange(); + App.ValuationBudgetInvestmentForm.showFeasibilityFieldsOnChange(); } }; diff --git a/app/assets/javascripts/votations.js b/app/assets/javascripts/votations.js index 4d76d5e0a..990edd256 100644 --- a/app/assets/javascripts/votations.js +++ b/app/assets/javascripts/votations.js @@ -1,57 +1,44 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Votations = { checkMaxVotes: function() { if ($("#votation_type_enum_type").val() === "0") { $(".js-max_votes").hide(); - return $("#max_votes").attr({ - disabled: true - }); + $("#max_votes").attr({ disabled: true }); } else { $(".js-max_votes").show(); - return $("#max_votes").attr({ - disabled: false - }); + $("#max_votes").attr({ disabled: false }); } }, checkPrioritization: function() { if ($("#votation_type_enum_type").val() === "2") { $(".js-prioritization_type").show(); - return $("#prioritization_type").attr({ - disabled: false - }); + $("#prioritization_type").attr({ disabled: false }); } else { $(".js-prioritization_type").hide(); - return $("#prioritization_type").attr({ - disabled: true - }); + $("#prioritization_type").attr({ disabled: true }); } }, checkMaxGroups: function() { if ($("#votation_type_enum_type").val() === "7" || $("#votation_type_enum_type").val() === "8") { $(".js-max_group_votes").show(); - return $("#max_groups_answers").attr({ - disabled: false - }); + $("#max_groups_answers").attr({ disabled: false }); } else { $(".js-max_group_votes").hide(); - return $("#max_groups_answers").attr({ - disabled: true - }); + $("#max_groups_answers").attr({ disabled: true }); } }, setTraduction: function(response) { - return $(".js-description_text").text(response["traduction"]); + $(".js-description_text").text(response["traduction"]); }, updateChecks: function() { App.Votations.checkMaxVotes(); App.Votations.checkPrioritization(); - return App.Votations.checkMaxGroups(); + App.Votations.checkMaxGroups(); }, initialize: function() { App.Votations.updateChecks(); - return $("#votation_type_enum_type").on({ + $("#votation_type_enum_type").on({ change: function() { var params, url; App.Votations.updateChecks(); @@ -59,8 +46,8 @@ params = { enum_type: $("#votation_type_enum_type").val() }; - return $.get(url, params, function(response) { - return App.Votations.setTraduction(response, "json"); + $.get(url, params, function(response) { + App.Votations.setTraduction(response, "json"); }); } }); diff --git a/app/assets/javascripts/votes.js b/app/assets/javascripts/votes.js index c0ef413d7..d7c1210d9 100644 --- a/app/assets/javascripts/votes.js +++ b/app/assets/javascripts/votes.js @@ -1,16 +1,15 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Votes = { hoverize: function(votes) { - return $(document).on({ + $(document).on({ "mouseenter focus": function() { $("div.participation-not-allowed", this).show(); - return $("div.participation-allowed", this).hide(); + $("div.participation-allowed", this).hide(); }, mouseleave: function() { $("div.participation-not-allowed", this).hide(); - return $("div.participation-allowed", this).show(); + $("div.participation-allowed", this).show(); } }, votes); }, @@ -18,7 +17,7 @@ App.Votes.hoverize("div.votes"); App.Votes.hoverize("div.supports"); App.Votes.hoverize("div.debate-questions"); - return App.Votes.hoverize("div.comment-footer"); + App.Votes.hoverize("div.comment-footer"); } }; diff --git a/app/assets/javascripts/watch_form_changes.js b/app/assets/javascripts/watch_form_changes.js index 4de97b409..a89602968 100644 --- a/app/assets/javascripts/watch_form_changes.js +++ b/app/assets/javascripts/watch_form_changes.js @@ -1,4 +1,3 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.WatchFormChanges = { @@ -25,8 +24,8 @@ return; } $(document).off("page:before-change").on("page:before-change", App.WatchFormChanges.checkChanges); - return App.WatchFormChanges.forms().each(function() { - return $(this).data("watchChanges", $(this).serialize()); + App.WatchFormChanges.forms().each(function() { + $(this).data("watchChanges", $(this).serialize()); }); } }; From 5211f478427deebc28b9173962940641db35f2b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Tue, 2 Jul 2019 16:42:28 +0200 Subject: [PATCH 03/12] Add and apply ESLint spacing rules For now we're only adding rules related to spacing and double quotes, following the same rules we use in Ruby, which are the same rules CoffeeScript followed when compiling these files. We're also using the recommended ESLint rules, which will warn us about many JavaScript common pitfalls, the `strict` rule which enforces using strict mode, and the `no-console` rule, which will prevent us from shipping code meant for debugging. Although it's arguably more common to use the JSON format to define these rules, I've chosen YAML because it's the format we use in all our linters. --- .eslintrc.yml | 67 +++++++++++++++++++ .hound.yml | 3 + app/assets/javascripts/advanced_search.js | 1 - app/assets/javascripts/allow_participation.js | 1 - app/assets/javascripts/answers.js | 1 - app/assets/javascripts/app.js | 1 - app/assets/javascripts/application.js | 11 +-- app/assets/javascripts/banners.js | 1 - .../javascripts/budget_edit_associations.js | 1 - app/assets/javascripts/check_all_none.js | 1 - app/assets/javascripts/checkbox_toggle.js | 1 - app/assets/javascripts/columns_selector.js | 1 - app/assets/javascripts/comments.js | 1 - app/assets/javascripts/cookies.js | 1 - app/assets/javascripts/custom.js | 2 +- app/assets/javascripts/dashboard_graphs.js | 54 +++++++-------- app/assets/javascripts/documentable.js | 1 - app/assets/javascripts/embed_video.js | 1 - app/assets/javascripts/fixed_bar.js | 1 - app/assets/javascripts/flaggable.js | 1 - app/assets/javascripts/followable.js | 1 - app/assets/javascripts/forms.js | 1 - app/assets/javascripts/foundation_extras.js | 1 - app/assets/javascripts/gettext.js | 1 - app/assets/javascripts/globalize.js | 13 ++-- app/assets/javascripts/ie_alert.js | 1 - app/assets/javascripts/imageable.js | 1 - .../javascripts/investment_report_alert.js | 1 - app/assets/javascripts/legislation.js | 1 - app/assets/javascripts/legislation_admin.js | 1 - .../javascripts/legislation_allegations.js | 1 - .../javascripts/legislation_annotatable.js | 1 - app/assets/javascripts/location_changer.js | 1 - app/assets/javascripts/managers.js | 1 - app/assets/javascripts/map.js | 1 - app/assets/javascripts/markdown_editor.js | 1 - app/assets/javascripts/modal_download.js | 1 - .../moderator_budget_investments.js | 1 - app/assets/javascripts/moderator_comment.js | 1 - app/assets/javascripts/moderator_debates.js | 1 - .../moderator_proposal_notifications.js | 1 - app/assets/javascripts/moderator_proposals.js | 1 - app/assets/javascripts/polls.js | 1 - app/assets/javascripts/polls_admin.js | 15 ++--- .../javascripts/prevent_double_submission.js | 1 - app/assets/javascripts/questions.js | 1 - app/assets/javascripts/registration_form.js | 1 - .../send_admin_notification_alert.js | 1 - .../javascripts/send_newsletter_alert.js | 1 - app/assets/javascripts/settings.js | 1 - app/assets/javascripts/social_share.js | 1 - app/assets/javascripts/sortable.js | 1 - app/assets/javascripts/stat_graphs.js | 2 +- app/assets/javascripts/stats.js | 1 - app/assets/javascripts/suggest.js | 1 - app/assets/javascripts/table_sortable.js | 1 - app/assets/javascripts/tag_autocomplete.js | 1 - app/assets/javascripts/tags.js | 1 - app/assets/javascripts/tree_navigator.js | 1 - app/assets/javascripts/users.js | 1 - .../valuation_budget_investment_form.js | 1 - app/assets/javascripts/votations.js | 1 - app/assets/javascripts/votes.js | 1 - app/assets/javascripts/watch_form_changes.js | 1 - 64 files changed, 119 insertions(+), 104 deletions(-) create mode 100644 .eslintrc.yml diff --git a/.eslintrc.yml b/.eslintrc.yml new file mode 100644 index 000000000..5eea83873 --- /dev/null +++ b/.eslintrc.yml @@ -0,0 +1,67 @@ +env: + browser: true + es6: false +extends: "eslint:recommended" +globals: + $: readonly + App: readonly + annotator: readonly + c3: readonly + CKEDITOR: readonly + L: readonly + Turbolinks: readonly +parserOptions: + ecmaVersion: 5 +rules: + array-bracket-spacing: error + block-spacing: error + brace-style: error + comma-spacing: error + computed-property-spacing: error + curly: error + eol-last: error + func-call-spacing: error + indent: + - error + - 2 + key-spacing: error + keyword-spacing: error + linebreak-style: error + lines-between-class-members: error + no-console: error + no-multi-spaces: error + no-multiple-empty-lines: + - error + - max: 1 + no-spaced-func: error + no-tabs: error + no-trailing-spaces: error + no-whitespace-before-property: error + object-curly-spacing: + - error + - always + - objectsInObjects: false + padded-blocks: + - error + - never + quotes: + - error + - double + - avoidEscape: true + semi-spacing: error + space-before-blocks: error + space-before-function-paren: + - error + - never + space-in-parens: error + space-infix-ops: error + space-unary-ops: error + spaced-comment: + - error + - always + - markers: + - "=" + exceptions: + - "-" + strict: error + switch-colon-spacing: error diff --git a/.hound.yml b/.hound.yml index b69ca98d4..4010fa02a 100644 --- a/.hound.yml +++ b/.hound.yml @@ -5,3 +5,6 @@ scss: erblint: enabled: true config_file: .erb-lint.yml +eslint: + enabled: true + config_file: .eslintrc.yml diff --git a/app/assets/javascripts/advanced_search.js b/app/assets/javascripts/advanced_search.js index c804ab53a..c913e86d8 100644 --- a/app/assets/javascripts/advanced_search.js +++ b/app/assets/javascripts/advanced_search.js @@ -44,5 +44,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/allow_participation.js b/app/assets/javascripts/allow_participation.js index aeca79b2c..0b18fb78c 100644 --- a/app/assets/javascripts/allow_participation.js +++ b/app/assets/javascripts/allow_participation.js @@ -14,5 +14,4 @@ }, ".js-participation"); } }; - }).call(this); diff --git a/app/assets/javascripts/answers.js b/app/assets/javascripts/answers.js index 23e4089ba..74cb29305 100644 --- a/app/assets/javascripts/answers.js +++ b/app/assets/javascripts/answers.js @@ -27,5 +27,4 @@ App.Answers.nestedAnswers(); } }; - }).call(this); diff --git a/app/assets/javascripts/app.js b/app/assets/javascripts/app.js index d4a4cee34..90074f1c7 100644 --- a/app/assets/javascripts/app.js +++ b/app/assets/javascripts/app.js @@ -2,5 +2,4 @@ (function() { "use strict"; window.App = {}; - }).call(this); diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 5aa8e8f50..1fbde90cb 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -116,8 +116,9 @@ var initialize_modules = function() { App.LegislationAdmin.initialize(); App.LegislationAllegations.initialize(); App.Legislation.initialize(); - if ( $(".legislation-annotatable").length ) + if ($(".legislation-annotatable").length) { App.LegislationAnnotatable.initialize(); + } App.WatchFormChanges.initialize(); App.TreeNavigator.initialize(); App.Documentable.initialize(); @@ -135,14 +136,16 @@ var initialize_modules = function() { App.SendAdminNotificationAlert.initialize(); App.ModalDownload.initialize(); App.Settings.initialize(); - if ( $("#js-columns-selector").length ) + if ($("#js-columns-selector").length) { App.ColumnsSelector.initialize(); + } App.BudgetEditAssociations.initialize(); - if ( $("#votation_type_enum_type").length ) + if ($("#votation_type_enum_type").length) { App.Votations.initialize(); + } }; -$(function(){ +$(function() { "use strict"; Turbolinks.enableProgressBar(); diff --git a/app/assets/javascripts/banners.js b/app/assets/javascripts/banners.js index 9362da237..d69066c92 100644 --- a/app/assets/javascripts/banners.js +++ b/app/assets/javascripts/banners.js @@ -25,5 +25,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/budget_edit_associations.js b/app/assets/javascripts/budget_edit_associations.js index ec4d74a19..83ff6c48a 100644 --- a/app/assets/javascripts/budget_edit_associations.js +++ b/app/assets/javascripts/budget_edit_associations.js @@ -38,5 +38,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/check_all_none.js b/app/assets/javascripts/check_all_none.js index 966f5fe77..8684a7cf7 100644 --- a/app/assets/javascripts/check_all_none.js +++ b/app/assets/javascripts/check_all_none.js @@ -14,5 +14,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/checkbox_toggle.js b/app/assets/javascripts/checkbox_toggle.js index c2a116b62..c17469a1e 100644 --- a/app/assets/javascripts/checkbox_toggle.js +++ b/app/assets/javascripts/checkbox_toggle.js @@ -14,5 +14,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/columns_selector.js b/app/assets/javascripts/columns_selector.js index 2beaf0928..b4d95334f 100644 --- a/app/assets/javascripts/columns_selector.js +++ b/app/assets/javascripts/columns_selector.js @@ -84,5 +84,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/comments.js b/app/assets/javascripts/comments.js index e9e9db49d..c3c2be8ae 100644 --- a/app/assets/javascripts/comments.js +++ b/app/assets/javascripts/comments.js @@ -69,5 +69,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/cookies.js b/app/assets/javascripts/cookies.js index 4505ec4ff..1f1af9b60 100644 --- a/app/assets/javascripts/cookies.js +++ b/app/assets/javascripts/cookies.js @@ -30,5 +30,4 @@ return ""; } }; - }).call(this); diff --git a/app/assets/javascripts/custom.js b/app/assets/javascripts/custom.js index 6c880b3a9..065440922 100644 --- a/app/assets/javascripts/custom.js +++ b/app/assets/javascripts/custom.js @@ -1,5 +1,5 @@ // Overrides and adds customized javascripts in this file -// Read more on documentation: +// Read more on documentation: // * English: https://github.com/consul/consul/blob/master/CUSTOMIZE_EN.md#javascript // * Spanish: https://github.com/consul/consul/blob/master/CUSTOMIZE_ES.md#javascript // diff --git a/app/assets/javascripts/dashboard_graphs.js b/app/assets/javascripts/dashboard_graphs.js index 261bc5293..3171e4815 100644 --- a/app/assets/javascripts/dashboard_graphs.js +++ b/app/assets/javascripts/dashboard_graphs.js @@ -4,7 +4,7 @@ // TODO: This module is complex enough to require its own tests. Rewrite it using Ecma6 class syntax and // write tests for this feature after consul has been migrated to Rails 5.1 -(function(){ +(function() { "use strict"; var ProposalGraph = function(url) { @@ -33,7 +33,7 @@ .done(this.draw.bind(this)); }; - ProposalGraph.prototype.refreshGoals = function () { + ProposalGraph.prototype.refreshGoals = function() { return $.ajax({ url: this.resourcesUrl, cache: false, @@ -52,11 +52,11 @@ }); }; - ProposalGraph.prototype.refreshData = function () { + ProposalGraph.prototype.refreshData = function() { return $.ajax({ url: this.url, cache: false, - success: function (data) { + success: function(data) { this.parseData(data); }.bind(this), data: { @@ -68,8 +68,8 @@ ProposalGraph.prototype.parseData = function(data) { var key; - this.xColumnValues = [ ]; - this.progressColumnValues = [ this.progressLabel ]; + this.xColumnValues = []; + this.progressColumnValues = [this.progressLabel]; for (key in data) { if (Object.prototype.hasOwnProperty.call(data, key)) { @@ -87,7 +87,7 @@ return $.ajax({ url: this.successfulProposalDataUrl, cache: false, - success: function (data) { + success: function(data) { this.parseSuccessfulProposalData(data); }.bind(this), data: { @@ -99,7 +99,7 @@ ProposalGraph.prototype.parseSuccessfulProposalData = function(data) { var key; - this.successfulColumnValues = [ this.successLabel ]; + this.successfulColumnValues = [this.successLabel]; for (key in data) { if (Object.prototype.hasOwnProperty.call(data, key)) { @@ -113,7 +113,7 @@ return $.ajax({ url: this.proposalAchievementsUrl, cache: false, - success: function (data) { + success: function(data) { this.parseAchievements(data); }.bind(this), data: { @@ -138,7 +138,7 @@ } }; - ProposalGraph.prototype.addXColumnValue = function (value) { + ProposalGraph.prototype.addXColumnValue = function(value) { if (this.xColumnValues.indexOf(value) === -1) { this.xColumnValues.push(value); } @@ -146,7 +146,7 @@ ProposalGraph.prototype.draw = function() { var colors = {}, - maximumValue = this.maximumValue === 0 ? this.proposalSuccess : Math.round(this.maximumValue * 1.10); + maximumValue = this.maximumValue === 0 ? this.proposalSuccess : Math.round(this.maximumValue * 1.10); this.formatXColumnValues(); @@ -163,14 +163,14 @@ this.successfulColumnValues ], colors: colors, - color: function (color, d) { + color: function(color, d) { var achievement; if (d.id === this.successfulColumnValues[0] || !Object.prototype.hasOwnProperty.call(d, "x")) { return color; } - achievement = this.achievements.find(function (element) { + achievement = this.achievements.find(function(element) { return element.value === this.xColumnValues[d.index + 1]; }.bind(this)); @@ -211,8 +211,8 @@ }, tooltip: { format: { - title: function (d) { - var achievement = this.achievements.find(function (element) { + title: function(d) { + var achievement = this.achievements.find(function(element) { return element.value === this.xColumnValues[d + 1]; }.bind(this)); @@ -227,11 +227,11 @@ }); }; - ProposalGraph.prototype.tickYValues = function () { + ProposalGraph.prototype.tickYValues = function() { var i, - tick = [0], - maximumValue = this.maximumValue === 0 ? this.proposalSuccess : Math.round(this.maximumValue * 1.10), - step = maximumValue <= 10 ? 1 : Math.round(maximumValue / 10); + tick = [0], + maximumValue = this.maximumValue === 0 ? this.proposalSuccess : Math.round(this.maximumValue * 1.10), + step = maximumValue <= 10 ? 1 : Math.round(maximumValue / 10); for (i = step; i < maximumValue; i += step) { tick.push(i); @@ -242,16 +242,16 @@ return tick; }; - ProposalGraph.prototype.tickXValues = function () { + ProposalGraph.prototype.tickXValues = function() { var i, - l, - tick = [], - step = this.xColumnValues.length < 13 ? 1 : Math.round((this.xColumnValues.length - 1) / 12); + l, + tick = [], + step = this.xColumnValues.length < 13 ? 1 : Math.round((this.xColumnValues.length - 1) / 12); if (this.xColumnValues.length > 1) { tick.push(0); - for(i = step, l = this.xColumnValues.length - 1; i < l; i += step) { + for (i = step, l = this.xColumnValues.length - 1; i < l; i += step) { tick.push(i); } } @@ -259,7 +259,7 @@ return tick; }; - ProposalGraph.prototype.formatXColumnValues = function () { + ProposalGraph.prototype.formatXColumnValues = function() { var i, l; this.xColumnValues = this.xColumnValues.sort(); @@ -286,8 +286,8 @@ return this.groupBy === undefined || this.groupBy === "" || this.groupBy === null; }; - $(document).ready(function () { - $("[data-proposal-graph-url]").each(function () { + $(document).ready(function() { + $("[data-proposal-graph-url]").each(function() { var graph = new ProposalGraph($(this).data("proposal-graph-url")); graph.successfulProposalDataUrl = $(this).data("successful-proposal-graph-url"); graph.proposalAchievementsUrl = $(this).data("proposal-achievements-url"); diff --git a/app/assets/javascripts/documentable.js b/app/assets/javascripts/documentable.js index dd1e3efaa..7c53d2fa6 100644 --- a/app/assets/javascripts/documentable.js +++ b/app/assets/javascripts/documentable.js @@ -166,5 +166,4 @@ $("#" + id).remove(); } }; - }).call(this); diff --git a/app/assets/javascripts/embed_video.js b/app/assets/javascripts/embed_video.js index e88029f58..beed5a8c7 100644 --- a/app/assets/javascripts/embed_video.js +++ b/app/assets/javascripts/embed_video.js @@ -9,5 +9,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/fixed_bar.js b/app/assets/javascripts/fixed_bar.js index ce721be20..f8e48f7ec 100644 --- a/app/assets/javascripts/fixed_bar.js +++ b/app/assets/javascripts/fixed_bar.js @@ -18,5 +18,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/flaggable.js b/app/assets/javascripts/flaggable.js index d14a99129..0b2661e05 100644 --- a/app/assets/javascripts/flaggable.js +++ b/app/assets/javascripts/flaggable.js @@ -5,5 +5,4 @@ $("#" + resource_id + " .js-flag-actions").html(button).foundation(); } }; - }).call(this); diff --git a/app/assets/javascripts/followable.js b/app/assets/javascripts/followable.js index 5ce1898e5..81775de58 100644 --- a/app/assets/javascripts/followable.js +++ b/app/assets/javascripts/followable.js @@ -10,5 +10,4 @@ } } }; - }).call(this); diff --git a/app/assets/javascripts/forms.js b/app/assets/javascripts/forms.js index a9ef8a4ea..9c526aae4 100644 --- a/app/assets/javascripts/forms.js +++ b/app/assets/javascripts/forms.js @@ -64,5 +64,4 @@ App.Forms.hideOrShowFieldsAfterSelection(); } }; - }).call(this); diff --git a/app/assets/javascripts/foundation_extras.js b/app/assets/javascripts/foundation_extras.js index 691a1a3ce..c6e344684 100644 --- a/app/assets/javascripts/foundation_extras.js +++ b/app/assets/javascripts/foundation_extras.js @@ -26,5 +26,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/gettext.js b/app/assets/javascripts/gettext.js index 49da4318d..7404109ee 100644 --- a/app/assets/javascripts/gettext.js +++ b/app/assets/javascripts/gettext.js @@ -37,5 +37,4 @@ } }; }; - }).call(this); diff --git a/app/assets/javascripts/globalize.js b/app/assets/javascripts/globalize.js index 3206854bb..a7757f520 100644 --- a/app/assets/javascripts/globalize.js +++ b/app/assets/javascripts/globalize.js @@ -83,12 +83,12 @@ }, language_description: function(count) { switch (count) { - case 0: - return $(".globalize-languages").data("zero-languages-description"); - case 1: - return $(".globalize-languages").data("one-languages-description"); - default: - return $(".globalize-languages").data("other-languages-description"); + case 0: + return $(".globalize-languages").data("zero-languages-description"); + case 1: + return $(".globalize-languages").data("one-languages-description"); + default: + return $(".globalize-languages").data("other-languages-description"); } }, initialize: function() { @@ -114,5 +114,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/ie_alert.js b/app/assets/javascripts/ie_alert.js index f62071fec..7f447d8c9 100644 --- a/app/assets/javascripts/ie_alert.js +++ b/app/assets/javascripts/ie_alert.js @@ -15,5 +15,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/imageable.js b/app/assets/javascripts/imageable.js index 1e54f5d25..72258a3c7 100644 --- a/app/assets/javascripts/imageable.js +++ b/app/assets/javascripts/imageable.js @@ -171,5 +171,4 @@ $("#new_image_link").removeClass("hide"); } }; - }).call(this); diff --git a/app/assets/javascripts/investment_report_alert.js b/app/assets/javascripts/investment_report_alert.js index 12bb9a0c0..4128183ed 100644 --- a/app/assets/javascripts/investment_report_alert.js +++ b/app/assets/javascripts/investment_report_alert.js @@ -11,5 +11,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/legislation.js b/app/assets/javascripts/legislation.js index f8dc9fc01..39d5eebf9 100644 --- a/app/assets/javascripts/legislation.js +++ b/app/assets/javascripts/legislation.js @@ -16,5 +16,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/legislation_admin.js b/app/assets/javascripts/legislation_admin.js index 019703396..c4692014f 100644 --- a/app/assets/javascripts/legislation_admin.js +++ b/app/assets/javascripts/legislation_admin.js @@ -22,5 +22,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/legislation_allegations.js b/app/assets/javascripts/legislation_allegations.js index b76b30da1..f5970b8e5 100644 --- a/app/assets/javascripts/legislation_allegations.js +++ b/app/assets/javascripts/legislation_allegations.js @@ -33,5 +33,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/legislation_annotatable.js b/app/assets/javascripts/legislation_annotatable.js index 52bcb7ce9..50d46ecd8 100644 --- a/app/assets/javascripts/legislation_annotatable.js +++ b/app/assets/javascripts/legislation_annotatable.js @@ -229,5 +229,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/location_changer.js b/app/assets/javascripts/location_changer.js index 824052b9f..e84298f03 100644 --- a/app/assets/javascripts/location_changer.js +++ b/app/assets/javascripts/location_changer.js @@ -7,5 +7,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/managers.js b/app/assets/javascripts/managers.js index d9622f7b1..4a87fa7e4 100644 --- a/app/assets/javascripts/managers.js +++ b/app/assets/javascripts/managers.js @@ -29,5 +29,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/map.js b/app/assets/javascripts/map.js index 41f103815..84d90093e 100644 --- a/app/assets/javascripts/map.js +++ b/app/assets/javascripts/map.js @@ -128,5 +128,4 @@ return !isNaN(parseFloat(n)) && isFinite(n); } }; - }).call(this); diff --git a/app/assets/javascripts/markdown_editor.js b/app/assets/javascripts/markdown_editor.js index 7bdd7b37c..c0a587e31 100644 --- a/app/assets/javascripts/markdown_editor.js +++ b/app/assets/javascripts/markdown_editor.js @@ -48,5 +48,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/modal_download.js b/app/assets/javascripts/modal_download.js index 9aec87b59..debd3672a 100644 --- a/app/assets/javascripts/modal_download.js +++ b/app/assets/javascripts/modal_download.js @@ -11,5 +11,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/moderator_budget_investments.js b/app/assets/javascripts/moderator_budget_investments.js index 52ed20e5e..035f13ecc 100644 --- a/app/assets/javascripts/moderator_budget_investments.js +++ b/app/assets/javascripts/moderator_budget_investments.js @@ -9,5 +9,4 @@ $("#" + id + " .js-moderator-investment-actions:first").hide(); } }; - }).call(this); diff --git a/app/assets/javascripts/moderator_comment.js b/app/assets/javascripts/moderator_comment.js index 17915fc67..1e8c9bd59 100644 --- a/app/assets/javascripts/moderator_comment.js +++ b/app/assets/javascripts/moderator_comment.js @@ -8,5 +8,4 @@ $("#" + id + " .js-moderator-comment-actions").hide(); } }; - }).call(this); diff --git a/app/assets/javascripts/moderator_debates.js b/app/assets/javascripts/moderator_debates.js index 0beb124b4..9d13f87a5 100644 --- a/app/assets/javascripts/moderator_debates.js +++ b/app/assets/javascripts/moderator_debates.js @@ -9,5 +9,4 @@ $("#" + id + " .js-moderator-debate-actions:first").hide(); } }; - }).call(this); diff --git a/app/assets/javascripts/moderator_proposal_notifications.js b/app/assets/javascripts/moderator_proposal_notifications.js index 3a22027b7..eb7bdefef 100644 --- a/app/assets/javascripts/moderator_proposal_notifications.js +++ b/app/assets/javascripts/moderator_proposal_notifications.js @@ -8,5 +8,4 @@ $("#" + id + " .js-moderator-proposal-notifications-actions:first").hide(); } }; - }).call(this); diff --git a/app/assets/javascripts/moderator_proposals.js b/app/assets/javascripts/moderator_proposals.js index adca84209..93fb100dd 100644 --- a/app/assets/javascripts/moderator_proposals.js +++ b/app/assets/javascripts/moderator_proposals.js @@ -9,5 +9,4 @@ $("#" + id + " .js-moderator-proposals-actions:first").hide(); } }; - }).call(this); diff --git a/app/assets/javascripts/polls.js b/app/assets/javascripts/polls.js index b77e6543c..6a9f50079 100644 --- a/app/assets/javascripts/polls.js +++ b/app/assets/javascripts/polls.js @@ -43,5 +43,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/polls_admin.js b/app/assets/javascripts/polls_admin.js index a92b403f6..87e55756b 100644 --- a/app/assets/javascripts/polls_admin.js +++ b/app/assets/javascripts/polls_admin.js @@ -5,17 +5,16 @@ $("select[class='js-poll-shifts']").on({ change: function() { switch ($(this).val()) { - case "vote_collection": - $("select[class='js-shift-vote-collection-dates']").show(); - $("select[class='js-shift-recount-scrutiny-dates']").hide(); - break; - case "recount_scrutiny": - $("select[class='js-shift-recount-scrutiny-dates']").show(); - $("select[class='js-shift-vote-collection-dates']").hide(); + case "vote_collection": + $("select[class='js-shift-vote-collection-dates']").show(); + $("select[class='js-shift-recount-scrutiny-dates']").hide(); + break; + case "recount_scrutiny": + $("select[class='js-shift-recount-scrutiny-dates']").show(); + $("select[class='js-shift-vote-collection-dates']").hide(); } } }); } }; - }).call(this); diff --git a/app/assets/javascripts/prevent_double_submission.js b/app/assets/javascripts/prevent_double_submission.js index cec1234ce..40b454d46 100644 --- a/app/assets/javascripts/prevent_double_submission.js +++ b/app/assets/javascripts/prevent_double_submission.js @@ -45,5 +45,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/questions.js b/app/assets/javascripts/questions.js index c0103a978..5ce74d1fd 100644 --- a/app/assets/javascripts/questions.js +++ b/app/assets/javascripts/questions.js @@ -10,5 +10,4 @@ App.Questions.nestedQuestions(); } }; - }).call(this); diff --git a/app/assets/javascripts/registration_form.js b/app/assets/javascripts/registration_form.js index d5ca165e5..ecb827926 100644 --- a/app/assets/javascripts/registration_form.js +++ b/app/assets/javascripts/registration_form.js @@ -29,5 +29,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/send_admin_notification_alert.js b/app/assets/javascripts/send_admin_notification_alert.js index 2c9742b76..6dc7b36f2 100644 --- a/app/assets/javascripts/send_admin_notification_alert.js +++ b/app/assets/javascripts/send_admin_notification_alert.js @@ -7,5 +7,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/send_newsletter_alert.js b/app/assets/javascripts/send_newsletter_alert.js index 92b84a1d4..fa5a605af 100644 --- a/app/assets/javascripts/send_newsletter_alert.js +++ b/app/assets/javascripts/send_newsletter_alert.js @@ -7,5 +7,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/settings.js b/app/assets/javascripts/settings.js index 0467e49c7..cea8fcda7 100644 --- a/app/assets/javascripts/settings.js +++ b/app/assets/javascripts/settings.js @@ -14,5 +14,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/social_share.js b/app/assets/javascripts/social_share.js index 973ac4322..34ae229ac 100644 --- a/app/assets/javascripts/social_share.js +++ b/app/assets/javascripts/social_share.js @@ -7,5 +7,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/sortable.js b/app/assets/javascripts/sortable.js index a36587622..587ef598a 100644 --- a/app/assets/javascripts/sortable.js +++ b/app/assets/javascripts/sortable.js @@ -34,5 +34,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/stat_graphs.js b/app/assets/javascripts/stat_graphs.js index 479e20287..d3aa121fa 100644 --- a/app/assets/javascripts/stat_graphs.js +++ b/app/assets/javascripts/stat_graphs.js @@ -9,7 +9,7 @@ var initialize_stats_modules = function() { App.Stats.initialize(); }; -$(function(){ +$(function() { "use strict"; $(document).ready(initialize_stats_modules); diff --git a/app/assets/javascripts/stats.js b/app/assets/javascripts/stats.js index 79cd71fe0..fe7e46d8b 100644 --- a/app/assets/javascripts/stats.js +++ b/app/assets/javascripts/stats.js @@ -33,5 +33,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/suggest.js b/app/assets/javascripts/suggest.js index 6aa99c1ac..1a3ce24b5 100644 --- a/app/assets/javascripts/suggest.js +++ b/app/assets/javascripts/suggest.js @@ -34,5 +34,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/table_sortable.js b/app/assets/javascripts/table_sortable.js index 80cc1f722..7b4ebad8b 100644 --- a/app/assets/javascripts/table_sortable.js +++ b/app/assets/javascripts/table_sortable.js @@ -30,5 +30,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/tag_autocomplete.js b/app/assets/javascripts/tag_autocomplete.js index 7cf48fff8..675e4f5c9 100644 --- a/app/assets/javascripts/tag_autocomplete.js +++ b/app/assets/javascripts/tag_autocomplete.js @@ -44,5 +44,4 @@ App.TagAutocomplete.init_autocomplete(); } }; - }).call(this); diff --git a/app/assets/javascripts/tags.js b/app/assets/javascripts/tags.js index c3ddcb66e..312ec892e 100644 --- a/app/assets/javascripts/tags.js +++ b/app/assets/javascripts/tags.js @@ -22,5 +22,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/tree_navigator.js b/app/assets/javascripts/tree_navigator.js index fc3eaae36..de382d1a7 100644 --- a/app/assets/javascripts/tree_navigator.js +++ b/app/assets/javascripts/tree_navigator.js @@ -39,5 +39,4 @@ } } }; - }).call(this); diff --git a/app/assets/javascripts/users.js b/app/assets/javascripts/users.js index c4d74df26..8f8f8ccfa 100644 --- a/app/assets/javascripts/users.js +++ b/app/assets/javascripts/users.js @@ -5,5 +5,4 @@ $(".initialjs-avatar").initial(); } }; - }).call(this); diff --git a/app/assets/javascripts/valuation_budget_investment_form.js b/app/assets/javascripts/valuation_budget_investment_form.js index 138b11171..3f8e72d84 100644 --- a/app/assets/javascripts/valuation_budget_investment_form.js +++ b/app/assets/javascripts/valuation_budget_investment_form.js @@ -33,5 +33,4 @@ App.ValuationBudgetInvestmentForm.showFeasibilityFieldsOnChange(); } }; - }).call(this); diff --git a/app/assets/javascripts/votations.js b/app/assets/javascripts/votations.js index 990edd256..c409b58c3 100644 --- a/app/assets/javascripts/votations.js +++ b/app/assets/javascripts/votations.js @@ -53,5 +53,4 @@ }); } }; - }).call(this); diff --git a/app/assets/javascripts/votes.js b/app/assets/javascripts/votes.js index d7c1210d9..2e8583156 100644 --- a/app/assets/javascripts/votes.js +++ b/app/assets/javascripts/votes.js @@ -20,5 +20,4 @@ App.Votes.hoverize("div.comment-footer"); } }; - }).call(this); diff --git a/app/assets/javascripts/watch_form_changes.js b/app/assets/javascripts/watch_form_changes.js index a89602968..cbf9ec798 100644 --- a/app/assets/javascripts/watch_form_changes.js +++ b/app/assets/javascripts/watch_form_changes.js @@ -29,5 +29,4 @@ }); } }; - }).call(this); From 86c9f53c2d058a0806b83fb9beaf984a845b9f74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Wed, 3 Jul 2019 01:16:29 +0200 Subject: [PATCH 04/12] Use `undefined` instead of `void` We originally wrote `undefined` in CoffeeScript. CoffeeScript compiled it to `void 0` when generating the JavaScript files. However, the reason to do so was the `undefined` variable was mutable before ECMAScript 5. Using `undefined` is more intuitive, and nowadays there's no reason to use `void 0`. --- .eslintrc.yml | 1 + app/assets/javascripts/cookies.js | 3 +-- app/assets/javascripts/forms.js | 2 +- app/assets/javascripts/watch_form_changes.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 5eea83873..c50122ba3 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -36,6 +36,7 @@ rules: no-spaced-func: error no-tabs: error no-trailing-spaces: error + no-void: error no-whitespace-before-property: error object-curly-spacing: - error diff --git a/app/assets/javascripts/cookies.js b/app/assets/javascripts/cookies.js index 1f1af9b60..620c10dbd 100644 --- a/app/assets/javascripts/cookies.js +++ b/app/assets/javascripts/cookies.js @@ -1,10 +1,9 @@ -// Generated by CoffeeScript 1.12.6 (function() { "use strict"; App.Cookies = { saveCookie: function(name, value, days) { var date, expires; - expires = void 0; + expires = undefined; if (days) { date = new Date; date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000); diff --git a/app/assets/javascripts/forms.js b/app/assets/javascripts/forms.js index 9c526aae4..d3120ab1d 100644 --- a/app/assets/javascripts/forms.js +++ b/app/assets/javascripts/forms.js @@ -18,7 +18,7 @@ $(".js-toggle-link").unbind("click").on("click", function() { var toggle_txt; $($(this).data("toggle-selector")).toggle("down"); - if ($(this).data("toggle-text") !== void 0) { + if ($(this).data("toggle-text") !== undefined) { toggle_txt = $(this).text(); $(this).text($(this).data("toggle-text")); $(this).data("toggle-text", toggle_txt); diff --git a/app/assets/javascripts/watch_form_changes.js b/app/assets/javascripts/watch_form_changes.js index cbf9ec798..104d8d4d0 100644 --- a/app/assets/javascripts/watch_form_changes.js +++ b/app/assets/javascripts/watch_form_changes.js @@ -20,7 +20,7 @@ } }, initialize: function() { - if (App.WatchFormChanges.forms().length === 0 || App.WatchFormChanges.msg() === void 0) { + if (App.WatchFormChanges.forms().length === 0 || App.WatchFormChanges.msg() === undefined) { return; } $(document).off("page:before-change").on("page:before-change", App.WatchFormChanges.checkChanges); From 9185c0bcc679e1f28d20d64e1c8e2e39b64d51b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Tue, 2 Jul 2019 16:57:15 +0200 Subject: [PATCH 05/12] Add JavaScript rule for semi colons While I personally prefer the "never" option for this rule, we haven't discussed which guideline to follow, so for now I'm applying the rule CoffeeScript used when generating these files. --- .eslintrc.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.eslintrc.yml b/.eslintrc.yml index c50122ba3..aefbf90df 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -49,6 +49,9 @@ rules: - error - double - avoidEscape: true + semi: + - error + - always semi-spacing: error space-before-blocks: error space-before-function-paren: From 392095a3795f974f778ca3decb79d13ae644e71e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Tue, 2 Jul 2019 17:00:03 +0200 Subject: [PATCH 06/12] Add JavaScript rule for maximum line length I'm using the same criteria we use in Ruby: 110 characters, and the severity set as a warning, since it's a rule we break sometimes. --- .eslintrc.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.eslintrc.yml b/.eslintrc.yml index aefbf90df..d2b4ece50 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -28,6 +28,9 @@ rules: keyword-spacing: error linebreak-style: error lines-between-class-members: error + max-len: + - warn + - code: 110 no-console: error no-multi-spaces: error no-multiple-empty-lines: From d9bb553894081904bf427b633d2c5f625047ab3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Wed, 3 Jul 2019 00:49:43 +0200 Subject: [PATCH 07/12] Add JavaScript rule for comparisons Using `==` and `!=` sometimes causes unexpected behaviour in JavaScript, and it's easy for Ruby developers to use them incorrectly. --- .eslintrc.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.eslintrc.yml b/.eslintrc.yml index d2b4ece50..681e6a706 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -20,6 +20,10 @@ rules: computed-property-spacing: error curly: error eol-last: error + eqeqeq: + - error + - always + - "null": ignore func-call-spacing: error indent: - error From efc32bc76494573b63b5cca20b08744e579a896c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Wed, 3 Jul 2019 01:37:16 +0200 Subject: [PATCH 08/12] Enable Yoda JavaScript rule The rule is not the most important one, but the name is awesome! --- .eslintrc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintrc.yml b/.eslintrc.yml index 681e6a706..7a0e70b81 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -76,3 +76,4 @@ rules: - "-" strict: error switch-colon-spacing: error + yoda: error From 044da18af1eb839d86ea3eb8eb9288205356d1ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Wed, 3 Jul 2019 01:57:31 +0200 Subject: [PATCH 09/12] Apply JavaScript rules to prevent shadowing Using the same variable name makes the code more difficult to read. We're also enabling the `no-param-reassing` rule since we accidentally reassigned params in commit 824dd26d, and this rule will prevent us from doing so in the future. --- .eslintrc.yml | 2 ++ app/assets/javascripts/documentable.js | 6 +++--- app/assets/javascripts/imageable.js | 6 +++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 7a0e70b81..31807c846 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -40,6 +40,8 @@ rules: no-multiple-empty-lines: - error - max: 1 + no-param-reassign: error + no-shadow: error no-spaced-func: error no-tabs: error no-trailing-spaces: error diff --git a/app/assets/javascripts/documentable.js b/app/assets/javascripts/documentable.js index 7c53d2fa6..3fd2857a4 100644 --- a/app/assets/javascripts/documentable.js +++ b/app/assets/javascripts/documentable.js @@ -59,9 +59,9 @@ $(data.wrapper).find(".attachment-actions .action-remove").removeClass("small-3").addClass("small-12"); destroyAttachmentLink = $(data.result.destroy_link); $(data.destroyAttachmentLinkContainer).html(destroyAttachmentLink); - $(destroyAttachmentLink).on("click", function(e) { - e.preventDefault(); - e.stopPropagation(); + $(destroyAttachmentLink).on("click", function(event) { + event.preventDefault(); + event.stopPropagation(); App.Documentable.doDeleteCachedAttachmentRequest(this.href, data); }); if (input["lockUpload"]) { diff --git a/app/assets/javascripts/imageable.js b/app/assets/javascripts/imageable.js index 72258a3c7..7f0773907 100644 --- a/app/assets/javascripts/imageable.js +++ b/app/assets/javascripts/imageable.js @@ -61,9 +61,9 @@ App.Imageable.setPreview(data); destroyAttachmentLink = $(data.result.destroy_link); $(data.destroyAttachmentLinkContainer).html(destroyAttachmentLink); - $(destroyAttachmentLink).on("click", function(e) { - e.preventDefault(); - e.stopPropagation(); + $(destroyAttachmentLink).on("click", function(event) { + event.preventDefault(); + event.stopPropagation(); App.Imageable.doDeleteCachedAttachmentRequest(this.href, data); }); }, From 25bfd01e693482f35fed537ef1a4fb8a53702c25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Wed, 3 Jul 2019 01:59:55 +0200 Subject: [PATCH 10/12] Add JavaScript rule to return a value in callbacks It's very easy for Ruby developers to omit the `return` statement in an array callback, such as the ones in `map` or `filter`. Doing so will make those funcions have the same effect as `forEach`, which is usually not the intended behaviour. --- .eslintrc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintrc.yml b/.eslintrc.yml index 31807c846..944715bb8 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -14,6 +14,7 @@ parserOptions: ecmaVersion: 5 rules: array-bracket-spacing: error + array-callback-return: error block-spacing: error brace-style: error comma-spacing: error From af6a494344ffd2a6ab952aeeb87ef17b0db0a058 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Wed, 3 Jul 2019 02:32:47 +0200 Subject: [PATCH 11/12] Apply JavaScript rule to use the dot notation We were using the dot notation in most places, but not everywhere. --- .eslintrc.yml | 1 + app/assets/javascripts/budget_edit_associations.js | 6 +++--- app/assets/javascripts/documentable.js | 6 +++--- app/assets/javascripts/legislation_annotatable.js | 6 +++--- app/assets/javascripts/map.js | 6 +++--- app/assets/javascripts/votations.js | 2 +- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/.eslintrc.yml b/.eslintrc.yml index 944715bb8..0feacde55 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -20,6 +20,7 @@ rules: comma-spacing: error computed-property-spacing: error curly: error + dot-notation: error eol-last: error eqeqeq: - error diff --git a/app/assets/javascripts/budget_edit_associations.js b/app/assets/javascripts/budget_edit_associations.js index 83ff6c48a..a50485a24 100644 --- a/app/assets/javascripts/budget_edit_associations.js +++ b/app/assets/javascripts/budget_edit_associations.js @@ -2,9 +2,9 @@ "use strict"; App.BudgetEditAssociations = { set_text: function(response) { - $(".js-budget-show-administrators-list").text(response["administrators"]); - $(".js-budget-show-valuators-list").text(response["valuators"]); - $(".js-budget-show-trackers-list").text(response["trackers"]); + $(".js-budget-show-administrators-list").text(response.administrators); + $(".js-budget-show-valuators-list").text(response.valuators); + $(".js-budget-show-trackers-list").text(response.trackers); }, initialize: function() { $(".js-budget-list-checkbox-user").on({ diff --git a/app/assets/javascripts/documentable.js b/app/assets/javascripts/documentable.js index 3fd2857a4..b6b85ba8c 100644 --- a/app/assets/javascripts/documentable.js +++ b/app/assets/javascripts/documentable.js @@ -11,9 +11,9 @@ $("#nested-documents").on("cocoon:after-insert", function(e, nested_document) { var input; input = $(nested_document).find(".js-document-attachment"); - input["lockUpload"] = $(nested_document).closest("#nested-documents").find(".document:visible").length >= $("#nested-documents").data("max-documents-allowed"); + input.lockUpload = $(nested_document).closest("#nested-documents").find(".document:visible").length >= $("#nested-documents").data("max-documents-allowed"); App.Documentable.initializeDirectUploadInput(input); - if (input["lockUpload"]) { + if (input.lockUpload) { App.Documentable.lockUploads(); } }); @@ -64,7 +64,7 @@ event.stopPropagation(); App.Documentable.doDeleteCachedAttachmentRequest(this.href, data); }); - if (input["lockUpload"]) { + if (input.lockUpload) { App.Documentable.showNotice(); } }, diff --git a/app/assets/javascripts/legislation_annotatable.js b/app/assets/javascripts/legislation_annotatable.js index 50d46ecd8..ab5f5cc6d 100644 --- a/app/assets/javascripts/legislation_annotatable.js +++ b/app/assets/javascripts/legislation_annotatable.js @@ -70,7 +70,7 @@ type: "renderLegislationAnnotation", annotation_id: target.data("annotation-id"), annotation_url: target.closest(".legislation-annotatable").data("legislation-annotatable-base-url"), - offset: target.offset()["top"] + offset: target.offset().top }); parents_ids.each(function(i, pid) { $.event.trigger({ @@ -149,7 +149,7 @@ type: "renderLegislationAnnotation", annotation_id: ann_id, annotation_url: el.closest(".legislation-annotatable").data("legislation-annotatable-base-url"), - offset: el.offset()["top"] + offset: el.offset().top }); clearInterval(checkExist); } @@ -205,7 +205,7 @@ App.LegislationAnnotatable.app = new annotator.App().include(function() { return { beforeAnnotationCreated: function(ann) { - ann["legislation_draft_version_id"] = ann_id; + ann.legislation_draft_version_id = ann_id; ann.permissions = ann.permissions || {}; ann.permissions.admin = []; } diff --git a/app/assets/javascripts/map.js b/app/assets/javascripts/map.js index 84d90093e..d1882cc5e 100644 --- a/app/assets/javascripts/map.js +++ b/app/assets/javascripts/map.js @@ -75,7 +75,7 @@ }; openMarkerPopup = function(e) { marker = e.target; - $.ajax("/investments/" + marker.options["id"] + "/json_data", { + $.ajax("/investments/" + marker.options.id + "/json_data", { type: "GET", dataType: "json", success: function(data) { @@ -84,7 +84,7 @@ }); }; getPopupContent = function(data) { - return "" + data["investment_title"] + ""; + return "" + data.investment_title + ""; }; mapCenterLatLng = new L.LatLng(mapCenterLatitude, mapCenterLongitude); map = L.map(element.id).setView(mapCenterLatLng, zoom); @@ -103,7 +103,7 @@ addMarkerInvestments.forEach(function(coordinates) { if (App.Map.validCoordinates(coordinates)) { marker = createMarker(coordinates.lat, coordinates.long); - marker.options["id"] = coordinates.investment_id; + marker.options.id = coordinates.investment_id; marker.on("click", openMarkerPopup); } }); diff --git a/app/assets/javascripts/votations.js b/app/assets/javascripts/votations.js index c409b58c3..312ccdcb7 100644 --- a/app/assets/javascripts/votations.js +++ b/app/assets/javascripts/votations.js @@ -29,7 +29,7 @@ } }, setTraduction: function(response) { - $(".js-description_text").text(response["traduction"]); + $(".js-description_text").text(response.traduction); }, updateChecks: function() { App.Votations.checkMaxVotes(); From 8231096854b982029bdfca4f0894595248c3f4ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Wed, 3 Jul 2019 15:00:22 +0200 Subject: [PATCH 12/12] Add JavaScript rule to disallow array constructors Using `Array(0, 1, 2)` will *not* create an Array with the elements [0, 1, 2]. This is a mistake I've seen in the past, and the JavaScript community recommends adding this rule. --- .eslintrc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintrc.yml b/.eslintrc.yml index 0feacde55..339bc88f2 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -37,6 +37,7 @@ rules: max-len: - warn - code: 110 + no-array-constructor: error no-console: error no-multi-spaces: error no-multiple-empty-lines: