diff --git a/app/assets/javascripts/advanced_search.js.coffee b/app/assets/javascripts/advanced_search.js.coffee index 9503e02c9..77f9183b5 100644 --- a/app/assets/javascripts/advanced_search.js.coffee +++ b/app/assets/javascripts/advanced_search.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.AdvancedSearch = advanced_search_terms: -> diff --git a/app/assets/javascripts/allow_participation.js.coffee b/app/assets/javascripts/allow_participation.js.coffee index 0427ae730..3438e46c4 100644 --- a/app/assets/javascripts/allow_participation.js.coffee +++ b/app/assets/javascripts/allow_participation.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.AllowParticipation = initialize: -> diff --git a/app/assets/javascripts/answers.js.coffee b/app/assets/javascripts/answers.js.coffee index 2a2687648..3a2fb10b1 100644 --- a/app/assets/javascripts/answers.js.coffee +++ b/app/assets/javascripts/answers.js.coffee @@ -1,7 +1,9 @@ +"use strict" + App.Answers = initializeAnswers: (answers) -> - $(answers).on 'cocoon:after-insert', (e, new_answer) -> + $(answers).on "cocoon:after-insert", (e, new_answer) -> given_order = App.Answers.maxGivenOrder(answers) + 1 $(new_answer).find("[name$='[given_order]']").val(given_order) @@ -13,7 +15,7 @@ App.Answers = return max_order nestedAnswers: -> - $('.js-answers').each (index, answers) -> + $(".js-answers").each (index, answers) -> App.Answers.initializeAnswers(answers) initialize: -> diff --git a/app/assets/javascripts/app.js.coffee b/app/assets/javascripts/app.js.coffee index d8efafdee..b0ea6be5e 100644 --- a/app/assets/javascripts/app.js.coffee +++ b/app/assets/javascripts/app.js.coffee @@ -1 +1,3 @@ +"use strict" + window.App = {} diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 9174fd0ff..8381fd0fc 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -88,6 +88,8 @@ //= require votations var initialize_modules = function() { + "use strict"; + App.Answers.initialize(); App.Questions.initialize(); App.Comments.initialize(); @@ -133,7 +135,7 @@ 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 ) @@ -141,6 +143,8 @@ var initialize_modules = function() { }; $(function(){ + "use strict"; + Turbolinks.enableProgressBar(); $(document).ready(initialize_modules); diff --git a/app/assets/javascripts/banners.js.coffee b/app/assets/javascripts/banners.js.coffee index 50b6db3d5..8a1710b5e 100644 --- a/app/assets/javascripts/banners.js.coffee +++ b/app/assets/javascripts/banners.js.coffee @@ -1,28 +1,20 @@ +"use strict" + App.Banners = - - update_banner: (selector, text) -> - $(selector).html(text) - - update_background_color: (selector, background_color) -> - $(selector).css("background-color", background_color) - - update_font_color: (selector, font_color) -> - $(selector).css("color", font_color) - initialize: -> $("[data-js-banner-title]").on change: -> - App.Banners.update_banner("#js-banner-title", $(this).val()) + $("#js-banner-title").html($(this).val()) $("[data-js-banner-description]").on change: -> - App.Banners.update_banner("#js-banner-description", $(this).val()) + $("#js-banner-description").html($(this).val()) $("[name='banner[background_color]']").on change: -> - App.Banners.update_background_color("#js-banner-background", $(this).val()) + $("#js-banner-background").css("background-color", $(this).val()) $("[name='banner[font_color]']").on change: -> - App.Banners.update_font_color("#js-banner-title", $(this).val()) - App.Banners.update_font_color("#js-banner-description", $(this).val()) + $("#js-banner-title").css("color", $(this).val()) + $("#js-banner-description").css("color", $(this).val()) diff --git a/app/assets/javascripts/budget_edit_associations.js.coffee b/app/assets/javascripts/budget_edit_associations.js.coffee index 4c5fad06d..5daa48441 100644 --- a/app/assets/javascripts/budget_edit_associations.js.coffee +++ b/app/assets/javascripts/budget_edit_associations.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.BudgetEditAssociations = set_text: (response)-> @@ -19,7 +21,6 @@ App.BudgetEditAssociations = $(".js-budget-show-users-list").on click: -> div_id = $(this).data().toggle - for list in $(".js-budget-users-list") - do -> - if (list.id != div_id) - $(list).addClass("is-hidden") if !$(list).hasClass("is-hidden") + $(".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.coffee b/app/assets/javascripts/check_all_none.js.coffee index f0507b277..45df897ea 100644 --- a/app/assets/javascripts/check_all_none.js.coffee +++ b/app/assets/javascripts/check_all_none.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.CheckAllNone = initialize: -> diff --git a/app/assets/javascripts/checkbox_toggle.js.coffee b/app/assets/javascripts/checkbox_toggle.js.coffee index f20476f8d..0121b0b3a 100644 --- a/app/assets/javascripts/checkbox_toggle.js.coffee +++ b/app/assets/javascripts/checkbox_toggle.js.coffee @@ -1,10 +1,11 @@ +"use strict" + App.CheckboxToggle = initialize: -> $("[data-checkbox-toggle]").on "change", -> - $this = $(this) - $target = $($this.data("checkbox-toggle")) - if $this.is(":checked") + $target = $($(this).data("checkbox-toggle")) + if $(this).is(":checked") $target.show() else $target.hide() diff --git a/app/assets/javascripts/ckeditor/loader.js.erb b/app/assets/javascripts/ckeditor/loader.js.erb index a01df8811..9f0d7a2a3 100644 --- a/app/assets/javascripts/ckeditor/loader.js.erb +++ b/app/assets/javascripts/ckeditor/loader.js.erb @@ -1,3 +1,3 @@ //= require ckeditor/init -CKEDITOR.config.customConfig = "<%= javascript_path 'ckeditor/config.js' %>"; +CKEDITOR.config.customConfig = "<%= javascript_path "ckeditor/config.js" %>"; diff --git a/app/assets/javascripts/columns_selector.js.coffee b/app/assets/javascripts/columns_selector.js.coffee index 8a7f61208..312f2e129 100644 --- a/app/assets/javascripts/columns_selector.js.coffee +++ b/app/assets/javascripts/columns_selector.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.ColumnsSelector = initColums: () -> @@ -9,15 +11,14 @@ App.ColumnsSelector = App.Cookies.saveCookie($("#js-columns-selector").data("cookie"), c_value, 30) columns = c_value.split(",") - for column in columns - do -> - $("[data-field=" + column + "]").removeClass("hidden") - $("#column_selector_" + column).prop("checked", true) + 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 = $.trim($(this).text()) + text = $(this).text().trim() item = $("#column_selector_item_template").clone() item.prop("id", "column_selector_item_" + field) input = item.find("input") @@ -40,12 +41,10 @@ App.ColumnsSelector = $(".column-selector-item input").prop("checked", false) toggleColumn: (event) -> - column = $(event.target).data("column") - App.ColumnsSelector.displayColumn(column) + App.ColumnsSelector.displayColumn($(event.target).data("column")) displayColumn: (column) -> - item = $("#column_selector_" + column) - if item.prop("checked") + if $("#column_selector_" + column).prop("checked") $("[data-field=" + column + "]").removeClass("hidden") else $("[data-field=" + column + "]").addClass("hidden") diff --git a/app/assets/javascripts/comments.js.coffee b/app/assets/javascripts/comments.js.coffee index d80ee6e0b..cbd84f8c2 100644 --- a/app/assets/javascripts/comments.js.coffee +++ b/app/assets/javascripts/comments.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.Comments = add_comment: (parent_id, response_html) -> @@ -40,12 +42,9 @@ App.Comments = initialize: -> $("body .js-add-comment-link").each -> - $this = $(this) - - unless $this.data("initialized") is "yes" - $this.on("click", -> - id = $(this).data().id - App.Comments.toggle_form(id) + unless $(this).data("initialized") is "yes" + $(this).on("click", -> + App.Comments.toggle_form($(this).data().id) false ).data "initialized", "yes" diff --git a/app/assets/javascripts/cookies.js.coffee b/app/assets/javascripts/cookies.js.coffee index 4a1c84e2d..aa5a875f6 100644 --- a/app/assets/javascripts/cookies.js.coffee +++ b/app/assets/javascripts/cookies.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.Cookies = saveCookie: (name, value, days) -> @@ -5,19 +7,19 @@ App.Cookies = if days date = new Date date.setTime date.getTime() + days * 24 * 60 * 60 * 1000 - expires = '; expires=' + date.toGMTString() + expires = "; expires=" + date.toGMTString() else - expires = '' - document.cookie = name + '=' + value + expires + '; path=/' + expires = "" + document.cookie = name + "=" + value + expires + "; path=/" return getCookie: (name) -> if document.cookie.length > 0 - c_start = document.cookie.indexOf(name + '=') + c_start = document.cookie.indexOf(name + "=") if c_start != -1 c_start = c_start + name.length + 1 - c_end = document.cookie.indexOf(';', c_start) + 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/dashboard_graphs.js b/app/assets/javascripts/dashboard_graphs.js index f12b9dbba..261bc5293 100644 --- a/app/assets/javascripts/dashboard_graphs.js +++ b/app/assets/javascripts/dashboard_graphs.js @@ -5,7 +5,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(){ - 'use strict'; + "use strict"; var ProposalGraph = function(url) { this.url = url; @@ -15,9 +15,9 @@ this.groupBy = null; this.proposalSuccess = null; this.maximumValue = 0; - this.progressLabel = 'Progress'; - this.supportsLabel = 'Supports'; - this.successLabel = 'Success'; + this.progressLabel = "Progress"; + this.supportsLabel = "Supports"; + this.successLabel = "Success"; this.goals = null; this.achievements = null; this.xColumnValues = null; @@ -44,15 +44,12 @@ }; ProposalGraph.prototype.parseGoals = function(data) { - var i, l; - - this.goals = []; - for (i = 0, l = data.length; i < l; i += 1) { - this.goals.push({ - value: data[i].required_supports, - text: data[i].title - }); - } + this.goals = data.map(function(item) { + return { + value: item.required_supports, + text: item.title + }; + }); }; ProposalGraph.prototype.refreshData = function () { @@ -135,7 +132,7 @@ this.achievements.push({ value: this.formatGroup(group), text: data[group].title, - position: 'start' + position: "start" }); } } @@ -153,13 +150,13 @@ this.formatXColumnValues(); - colors[this.progressColumnValues[0]] = '#004a83'; - colors[this.successfulColumnValues[0]] = '#ff7f0e'; + colors[this.progressColumnValues[0]] = "#004a83"; + colors[this.successfulColumnValues[0]] = "#ff7f0e"; c3.generate({ - bindto: '#' + this.targetId, + bindto: "#" + this.targetId, data: { - x: 'x', + x: "x", columns: [ this.xColumnValues, this.progressColumnValues, @@ -169,7 +166,7 @@ color: function (color, d) { var achievement; - if (d.id === this.successfulColumnValues[0] || !Object.prototype.hasOwnProperty.call(d, 'x')) { + if (d.id === this.successfulColumnValues[0] || !Object.prototype.hasOwnProperty.call(d, "x")) { return color; } @@ -178,7 +175,7 @@ }.bind(this)); if (achievement !== undefined) { - return '#ff0000'; + return "#ff0000"; } return color; @@ -193,11 +190,11 @@ max: maximumValue, label: { text: this.supportsLabel, - position: 'outer-middle' + position: "outer-middle" } }, x: { - type: 'category', + type: "category", tick: { values: this.tickXValues(), centered: true @@ -220,7 +217,7 @@ }.bind(this)); if (achievement !== undefined) { - return this.xColumnValues[d + 1] + ': ' + achievement.text; + return this.xColumnValues[d + 1] + ": " + achievement.text; } return this.xColumnValues[d + 1]; @@ -273,7 +270,7 @@ } } - this.xColumnValues.unshift('x'); + this.xColumnValues.unshift("x"); }; ProposalGraph.prototype.formatGroup = function(group) { @@ -286,21 +283,21 @@ }; ProposalGraph.prototype.isDailyGrouped = function() { - return this.groupBy === undefined || this.groupBy === '' || this.groupBy === null; + return this.groupBy === undefined || this.groupBy === "" || this.groupBy === null; }; $(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'); - graph.targetId = $(this).attr('id'); - graph.groupBy = $(this).data('proposal-graph-group-by'); - graph.progressLabel = $(this).data('proposal-graph-progress-label'); - graph.supportsLabel = $(this).data('proposal-graph-supports-label'); - graph.successLabel = $(this).data('proposal-graph-success-label'); - graph.proposalSuccess = parseInt($(this).data('proposal-success'), 10); - graph.resourcesUrl = $(this).data('proposal-resources-url'); + $("[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"); + graph.targetId = $(this).attr("id"); + graph.groupBy = $(this).data("proposal-graph-group-by"); + graph.progressLabel = $(this).data("proposal-graph-progress-label"); + graph.supportsLabel = $(this).data("proposal-graph-supports-label"); + graph.successLabel = $(this).data("proposal-graph-success-label"); + graph.proposalSuccess = parseInt($(this).data("proposal-success"), 10); + graph.resourcesUrl = $(this).data("proposal-resources-url"); graph.refresh(); }); diff --git a/app/assets/javascripts/documentable.js.coffee b/app/assets/javascripts/documentable.js.coffee index 2cfe3323a..9287304c2 100644 --- a/app/assets/javascripts/documentable.js.coffee +++ b/app/assets/javascripts/documentable.js.coffee @@ -1,10 +1,10 @@ +"use strict" + App.Documentable = initialize: -> - - inputFiles = $(".js-document-attachment") - $.each inputFiles, (index, input) -> - App.Documentable.initializeDirectUploadInput(input) + $(".js-document-attachment").each -> + App.Documentable.initializeDirectUploadInput(this) $("#nested-documents").on "cocoon:after-remove", -> App.Documentable.unlockUploads() @@ -17,9 +17,9 @@ App.Documentable = initializeDirectUploadInput: (input) -> - inputData = @buildData([], input) + inputData = this.buildData([], input) - @initializeRemoveCachedDocumentLink(input, inputData) + this.initializeRemoveCachedDocumentLink(input, inputData) $(input).fileupload @@ -28,13 +28,13 @@ App.Documentable = formData: null add: (e, data) -> - data = App.Documentable.buildFileUploadData(e, data) - App.Documentable.clearProgressBar(data) - App.Documentable.setProgressBar(data, "uploading") - data.submit() + 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) -> - $.each data.files, (index, file) -> + data.files.forEach (file) -> App.Documentable.setFilename(inputData, file.name) fail: (e, data) -> @@ -72,10 +72,6 @@ App.Documentable = $(data.progressBar).find(".loading-bar").css "width", "#{progress}%" return - buildFileUploadData: (e, data) -> - data = @buildData(data, e.target) - return data - buildData: (data, input) -> wrapper = $(input).closest(".direct-upload") data.input = input diff --git a/app/assets/javascripts/embed_video.js.coffee b/app/assets/javascripts/embed_video.js.coffee index 6f7ef12a4..163f831c7 100644 --- a/app/assets/javascripts/embed_video.js.coffee +++ b/app/assets/javascripts/embed_video.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.EmbedVideo = initialize: -> diff --git a/app/assets/javascripts/fixed_bar.js.coffee b/app/assets/javascripts/fixed_bar.js.coffee index f1ba7550f..59b3255f0 100644 --- a/app/assets/javascripts/fixed_bar.js.coffee +++ b/app/assets/javascripts/fixed_bar.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.FixedBar = initialize: -> $("[data-fixed-bar]").each -> diff --git a/app/assets/javascripts/flaggable.js.coffee b/app/assets/javascripts/flaggable.js.coffee index 411723368..fe5709ddd 100644 --- a/app/assets/javascripts/flaggable.js.coffee +++ b/app/assets/javascripts/flaggable.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.Flaggable = update: (resource_id, button) -> diff --git a/app/assets/javascripts/followable.js.coffee b/app/assets/javascripts/followable.js.coffee index 5fad5f563..4f1d339d5 100644 --- a/app/assets/javascripts/followable.js.coffee +++ b/app/assets/javascripts/followable.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.Followable = update: (followable_id, button, notice) -> diff --git a/app/assets/javascripts/forms.js.coffee b/app/assets/javascripts/forms.js.coffee index 2ce43367c..e81ec0668 100644 --- a/app/assets/javascripts/forms.js.coffee +++ b/app/assets/javascripts/forms.js.coffee @@ -1,9 +1,11 @@ +"use strict" + App.Forms = disableEnter: -> $("form.js-enter-disabled").on("keyup keypress", (event) -> if event.which == 13 - e.preventDefault() + event.preventDefault() ) submitOnChange: -> @@ -25,9 +27,7 @@ App.Forms = synchronizeInputs: -> progress_bar = "[name='progress_bar[percentage]']" - process_background = "[name='legislation_process[background_color]']" - process_font = ", [name='legislation_process[font_color]']" - processes = process_background + process_font + 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}") diff --git a/app/assets/javascripts/foundation_extras.js.coffee b/app/assets/javascripts/foundation_extras.js.coffee index c12a2de92..e2c949daa 100644 --- a/app/assets/javascripts/foundation_extras.js.coffee +++ b/app/assets/javascripts/foundation_extras.js.coffee @@ -1,24 +1,23 @@ +"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" - - clearSticky = -> - $("[data-sticky]").foundation("destroy") if $("[data-sticky]").length - - $(document).on("page:before-unload", clearSticky) - - window.addEventListener("popstate", clearSticky, false) - - mobile_ui_init = -> - $(window).trigger "load.zf.sticky" - - desktop_ui_init = -> - $(window).trigger "init.zf.sticky" + $(document).on("page:before-unload", this.clearSticky) + window.addEventListener("popstate", this.clearSticky, false) $ -> if $(window).width() < 620 - do mobile_ui_init + App.FoundationExtras.mobile_ui_init() else - do desktop_ui_init + App.FoundationExtras.desktop_ui_init() diff --git a/app/assets/javascripts/gettext.js.coffee b/app/assets/javascripts/gettext.js.coffee index 4d9700921..2d954e56d 100644 --- a/app/assets/javascripts/gettext.js.coffee +++ b/app/assets/javascripts/gettext.js.coffee @@ -1,3 +1,5 @@ +"use strict" + i18n = { es: { "Comments": "Comentarios", diff --git a/app/assets/javascripts/globalize.js.coffee b/app/assets/javascripts/globalize.js.coffee index af320e2e1..46976864f 100644 --- a/app/assets/javascripts/globalize.js.coffee +++ b/app/assets/javascripts/globalize.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.Globalize = selected_language: -> @@ -87,17 +89,13 @@ App.Globalize = App.Globalize.update_description() $(".js-select-language").on "change", -> - locale = $(this).val() - App.Globalize.display_translations(locale) + App.Globalize.display_translations($(this).val()) $(".js-delete-language").on "click", (e) -> e.preventDefault() - locale = $(this).data("locale") + App.Globalize.remove_language($(this).data("locale")) $(this).hide() - App.Globalize.remove_language(locale) $(".js-add-fields-container").on "cocoon:after-insert", -> - $.each( - App.Globalize.enabled_locales(), - (index, locale) -> App.Globalize.enable_locale(locale) - ) + App.Globalize.enabled_locales().forEach (locale) -> + App.Globalize.enable_locale(locale) diff --git a/app/assets/javascripts/ie_alert.js.coffee b/app/assets/javascripts/ie_alert.js.coffee index 30c7620ce..75338974b 100644 --- a/app/assets/javascripts/ie_alert.js.coffee +++ b/app/assets/javascripts/ie_alert.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.IeAlert = set_cookie_and_hide: (event) -> event.preventDefault() diff --git a/app/assets/javascripts/imageable.js.coffee b/app/assets/javascripts/imageable.js.coffee index 7317c2b49..656514484 100644 --- a/app/assets/javascripts/imageable.js.coffee +++ b/app/assets/javascripts/imageable.js.coffee @@ -1,16 +1,16 @@ +"use strict" + App.Imageable = initialize: -> - inputFiles = $(".js-image-attachment") - $.each inputFiles, (index, input) -> - App.Imageable.initializeDirectUploadInput(input) + $(".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", -> - if $(".js-image-attachment").length > 0 - $(".js-image-attachment").closest(".image").remove() + $(".js-image-attachment").closest(".image").remove() $("#nested-image").on "cocoon:after-insert", (e, nested_image) -> $("#new_image_link").addClass("hide") @@ -19,9 +19,9 @@ App.Imageable = initializeDirectUploadInput: (input) -> - inputData = @buildData([], input) + inputData = this.buildData([], input) - @initializeRemoveCachedImageLink(input, inputData) + this.initializeRemoveCachedImageLink(input, inputData) $(input).fileupload @@ -30,13 +30,13 @@ App.Imageable = formData: null add: (e, data) -> - data = App.Imageable.buildFileUploadData(e, data) - App.Imageable.clearProgressBar(data) - App.Imageable.setProgressBar(data, "uploading") - data.submit() + 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) -> - $.each data.files, (index, file) -> + data.files.forEach (file) -> App.Imageable.setFilename(inputData, file.name) fail: (e, data) -> @@ -73,10 +73,6 @@ App.Imageable = $(data.progressBar).find(".loading-bar").css "width", "#{progress}%" return - buildFileUploadData: (e, data) -> - data = @buildData(data, e.target) - return data - buildData: (data, input) -> wrapper = $(input).closest(".direct-upload") data.input = input diff --git a/app/assets/javascripts/investment_report_alert.js.coffee b/app/assets/javascripts/investment_report_alert.js.coffee index 91dc6ba44..d968deb55 100644 --- a/app/assets/javascripts/investment_report_alert.js.coffee +++ b/app/assets/javascripts/investment_report_alert.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.InvestmentReportAlert = initialize: -> $("#js-investment-report-alert").on "click", -> diff --git a/app/assets/javascripts/legislation.js.coffee b/app/assets/javascripts/legislation.js.coffee index ec104f2e2..d2c710c80 100644 --- a/app/assets/javascripts/legislation.js.coffee +++ b/app/assets/javascripts/legislation.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.Legislation = initialize: -> diff --git a/app/assets/javascripts/legislation_admin.js.coffee b/app/assets/javascripts/legislation_admin.js.coffee index c64826224..847c39663 100644 --- a/app/assets/javascripts/legislation_admin.js.coffee +++ b/app/assets/javascripts/legislation_admin.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.LegislationAdmin = initialize: -> diff --git a/app/assets/javascripts/legislation_allegations.js.coffee b/app/assets/javascripts/legislation_allegations.js.coffee index 3a3f9ce4d..4823d1e58 100644 --- a/app/assets/javascripts/legislation_allegations.js.coffee +++ b/app/assets/javascripts/legislation_allegations.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.LegislationAllegations = toggle_comments: -> diff --git a/app/assets/javascripts/legislation_annotatable.js.coffee b/app/assets/javascripts/legislation_annotatable.js.coffee index ba5b445fa..fc985e749 100644 --- a/app/assets/javascripts/legislation_annotatable.js.coffee +++ b/app/assets/javascripts/legislation_annotatable.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.LegislationAnnotatable = makeEditableAndHighlight: (colour) -> @@ -18,7 +20,7 @@ App.LegislationAnnotatable = try if !document.execCommand("BackColor", false, colour) App.LegislationAnnotatable.makeEditableAndHighlight colour - catch ex + catch App.LegislationAnnotatable.makeEditableAndHighlight colour return @@ -85,7 +87,7 @@ App.LegislationAnnotatable = return customShow: (position) -> - $(@element).html "" + $(this.element).html "" # Clean comments section and open it $("#comments-box").html "" App.LegislationAllegations.show_comments() @@ -96,8 +98,8 @@ App.LegislationAnnotatable = method: "GET" url: "#{annotation_url}/annotations/new" dataType: "script").done (-> - $("#new_legislation_annotation #legislation_annotation_quote").val(@annotation.quote) - $("#new_legislation_annotation #legislation_annotation_ranges").val(JSON.stringify(@annotation.ranges)) + $("#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 @@ -158,7 +160,7 @@ App.LegislationAnnotatable = checkExist = setInterval((-> if $("span[data-annotation-id='#{last_annotation.id}']").length - for annotation in annotations + annotations.forEach (annotation) -> ann_weight = App.LegislationAnnotatable.propotionalWeight(annotation.weight, max_weight) el = $("span[data-annotation-id='#{annotation.id}']") el.addClass("weight-#{ann_weight}") @@ -180,9 +182,8 @@ App.LegislationAnnotatable = current_user_id = $("html").data("current-user-id") $(".legislation-annotatable").each -> - $this = $(this) - ann_id = $this.data("legislation-draft-version-id") - base_url = $this.data("legislation-annotatable-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 -> @@ -201,7 +202,4 @@ App.LegislationAnnotatable = App.LegislationAnnotatable.app.start().then -> App.LegislationAnnotatable.app.ident.identity = current_user_id - - options = {} - options["legislation_draft_version_id"] = ann_id - App.LegislationAnnotatable.app.annotations.load(options) + App.LegislationAnnotatable.app.annotations.load(legislation_draft_version_id: ann_id) diff --git a/app/assets/javascripts/location_changer.js.coffee b/app/assets/javascripts/location_changer.js.coffee index 630cd1b11..409e5a3c0 100644 --- a/app/assets/javascripts/location_changer.js.coffee +++ b/app/assets/javascripts/location_changer.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.LocationChanger = initialize: -> diff --git a/app/assets/javascripts/managers.js.coffee b/app/assets/javascripts/managers.js.coffee index 63218f2f5..3ec7683c1 100644 --- a/app/assets/javascripts/managers.js.coffee +++ b/app/assets/javascripts/managers.js.coffee @@ -1,22 +1,22 @@ +"use strict" + App.Managers = generatePassword: -> - chars = "aAbcdeEfghiJkmnpqrstuUvwxyz23456789" - pass = "" - x = 0 - while x < 12 - i = Math.floor(Math.random() * chars.length) - pass += chars.charAt(i) - x++ - return pass + 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", -> - password = App.Managers.generatePassword() - $("#user_password").val(password) + $("#user_password").val(App.Managers.generatePassword()) $(".show-password").on "click", -> if $("#user_password").is("input[type='password']") diff --git a/app/assets/javascripts/map.js.coffee b/app/assets/javascripts/map.js.coffee index bed9019c8..25ef1dbbf 100644 --- a/app/assets/javascripts/map.js.coffee +++ b/app/assets/javascripts/map.js.coffee @@ -1,11 +1,10 @@ +"use strict" + App.Map = initialize: -> - maps = $("*[data-map]") - - if maps.length > 0 - $.each maps, (index, map) -> - App.Map.initializeMap map + $("*[data-map]").each -> + App.Map.initializeMap(this) $(".js-toggle-map").on click: -> @@ -82,8 +81,7 @@ App.Map = e.target.bindPopup(getPopupContent(data)).openPopup() getPopupContent = (data) -> - content = "#{data["investment_title"]}" - return content + "#{data["investment_title"]}" mapCenterLatLng = new (L.LatLng)(mapCenterLatitude, mapCenterLongitude) map = L.map(element.id).setView(mapCenterLatLng, zoom) @@ -98,10 +96,10 @@ App.Map = map.on "click", moveOrPlaceMarker if addMarkerInvestments - for i in addMarkerInvestments - if App.Map.validCoordinates(i) - marker = createMarker(i.lat, i.long) - marker.options["id"] = i.investment_id + addMarkerInvestments.forEach (coordinates) -> + if App.Map.validCoordinates(coordinates) + marker = createMarker(coordinates.lat, coordinates.long) + marker.options["id"] = coordinates.investment_id marker.on "click", openMarkerPopup diff --git a/app/assets/javascripts/markdown_editor.js.coffee b/app/assets/javascripts/markdown_editor.js.coffee index b3dc7c14e..eb10c3108 100644 --- a/app/assets/javascripts/markdown_editor.js.coffee +++ b/app/assets/javascripts/markdown_editor.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.MarkdownEditor = refresh_preview: (element, md) -> @@ -32,8 +34,8 @@ App.MarkdownEditor = editor.toggleClass("fullscreen") $(".fullscreen-container").toggleClass("medium-8", "medium-12") span = $(this).find("span") - current_html = span.html() - if(current_html == span.data("open-text")) + + if(span.html() == span.data("open-text")) span.html(span.data("closed-text")) else span.html(span.data("open-text")) diff --git a/app/assets/javascripts/modal_download.js.coffee b/app/assets/javascripts/modal_download.js.coffee index b4cad86dc..a1e36010a 100644 --- a/app/assets/javascripts/modal_download.js.coffee +++ b/app/assets/javascripts/modal_download.js.coffee @@ -1,8 +1,10 @@ +"use strict" + App.ModalDownload = enableButton: -> $("#js-download-modal-submit").attr("disabled", false) - $("#js-download-modal-submit").removeClass('disabled') + $("#js-download-modal-submit").removeClass("disabled") initialize: -> $("#js-download-modal-submit").on "click", -> diff --git a/app/assets/javascripts/moderator_budget_investments.js.coffee b/app/assets/javascripts/moderator_budget_investments.js.coffee index 612a058a4..4bcb49ad1 100644 --- a/app/assets/javascripts/moderator_budget_investments.js.coffee +++ b/app/assets/javascripts/moderator_budget_investments.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.ModeratorBudgetInvestments = add_class_faded: (id) -> diff --git a/app/assets/javascripts/moderator_comment.js.coffee b/app/assets/javascripts/moderator_comment.js.coffee index fcc6e92c1..0e866d762 100644 --- a/app/assets/javascripts/moderator_comment.js.coffee +++ b/app/assets/javascripts/moderator_comment.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.ModeratorComments = add_class_faded: (id) -> diff --git a/app/assets/javascripts/moderator_debates.js.coffee b/app/assets/javascripts/moderator_debates.js.coffee index 7cb25eb51..39bd7df10 100644 --- a/app/assets/javascripts/moderator_debates.js.coffee +++ b/app/assets/javascripts/moderator_debates.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.ModeratorDebates = add_class_faded: (id) -> diff --git a/app/assets/javascripts/moderator_proposal_notifications.js.coffee b/app/assets/javascripts/moderator_proposal_notifications.js.coffee index b2e8fbf44..12c9040d1 100644 --- a/app/assets/javascripts/moderator_proposal_notifications.js.coffee +++ b/app/assets/javascripts/moderator_proposal_notifications.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.ModeratorProposalNotifications = add_class_faded: (id) -> diff --git a/app/assets/javascripts/moderator_proposals.js.coffee b/app/assets/javascripts/moderator_proposals.js.coffee index 2106b5c65..2920ab58f 100644 --- a/app/assets/javascripts/moderator_proposals.js.coffee +++ b/app/assets/javascripts/moderator_proposals.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.ModeratorProposals = add_class_faded: (id) -> diff --git a/app/assets/javascripts/polls.js.coffee b/app/assets/javascripts/polls.js.coffee index 69893a82b..db6c0619c 100644 --- a/app/assets/javascripts/polls.js.coffee +++ b/app/assets/javascripts/polls.js.coffee @@ -1,27 +1,24 @@ +"use strict" + App.Polls = generateToken: -> - token = "" - rand = "" - for n in [0..5] - rand = Math.random().toString(36).substr(2) # remove `0.` - token = token + rand + strings = Array.apply(null, length: 6).map -> + Math.random().toString(36).substr(2) # remove `0.` - token = token.substring(0, 64) - return token + strings.join("").substring(0, 64) - replaceToken: -> - for link in $(".js-question-answer") - token_param = link.search.slice(-6) + replaceToken: (token) -> + $(".js-question-answer").each -> + token_param = this.search.slice(-6) if token_param == "token=" - link.href = link.href + @token + this.href = this.href + token initialize: -> - @token = App.Polls.generateToken() - App.Polls.replaceToken() + token = App.Polls.generateToken() + App.Polls.replaceToken(token) $(".zoom-link").on "click", (event) -> - element = event.target - answer = $(element).closest("div.answer") + answer = $(event.target).closest("div.answer") if $(answer).hasClass("medium-6") $(answer).removeClass("medium-6") diff --git a/app/assets/javascripts/polls_admin.js.coffee b/app/assets/javascripts/polls_admin.js.coffee index a2d0569a7..fb5e954d4 100644 --- a/app/assets/javascripts/polls_admin.js.coffee +++ b/app/assets/javascripts/polls_admin.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.PollsAdmin = initialize: -> diff --git a/app/assets/javascripts/prevent_double_submission.js.coffee b/app/assets/javascripts/prevent_double_submission.js.coffee index eefb8a9fe..acfaa1068 100644 --- a/app/assets/javascripts/prevent_double_submission.js.coffee +++ b/app/assets/javascripts/prevent_double_submission.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.PreventDoubleSubmission = disable_buttons: (buttons) -> setTimeout -> diff --git a/app/assets/javascripts/questions.js.coffee b/app/assets/javascripts/questions.js.coffee index 72023a841..cf396bffc 100644 --- a/app/assets/javascripts/questions.js.coffee +++ b/app/assets/javascripts/questions.js.coffee @@ -1,8 +1,10 @@ +"use strict" + App.Questions = nestedQuestions: -> - $('.js-questions').on 'cocoon:after-insert', (e, new_question) -> - App.Answers.initializeAnswers($(new_question).find('.js-answers')) + $(".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.coffee b/app/assets/javascripts/registration_form.js.coffee index 1672190c8..dec7c4e1f 100644 --- a/app/assets/javascripts/registration_form.js.coffee +++ b/app/assets/javascripts/registration_form.js.coffee @@ -1,9 +1,9 @@ +"use strict" + App.RegistrationForm = initialize: -> - - registrationForm = $("form#new_user[action=\"/users\"]") - usernameInput = $("input#user_username") + usernameInput = $("form#new_user[action=\"/users\"] input#user_username") clearUsernameMessage = -> $("small").remove() @@ -18,8 +18,7 @@ App.RegistrationForm = showUsernameMessage(response) - if registrationForm.length > 0 - usernameInput.on "focusout", -> - clearUsernameMessage() - username = usernameInput.val() - validateUsername(username) if username != "" + usernameInput.on "focusout", -> + clearUsernameMessage() + username = usernameInput.val() + validateUsername(username) if username != "" diff --git a/app/assets/javascripts/send_admin_notification_alert.js.coffee b/app/assets/javascripts/send_admin_notification_alert.js.coffee index c2c9f1195..5bb03f7e7 100644 --- a/app/assets/javascripts/send_admin_notification_alert.js.coffee +++ b/app/assets/javascripts/send_admin_notification_alert.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.SendAdminNotificationAlert = initialize: -> $("#js-send-admin_notification-alert").on "click", -> diff --git a/app/assets/javascripts/send_newsletter_alert.js.coffee b/app/assets/javascripts/send_newsletter_alert.js.coffee index e8e3e5f2a..834d90778 100644 --- a/app/assets/javascripts/send_newsletter_alert.js.coffee +++ b/app/assets/javascripts/send_newsletter_alert.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.SendNewsletterAlert = initialize: -> $("#js-send-newsletter-alert").on "click", -> diff --git a/app/assets/javascripts/settings.js.coffee b/app/assets/javascripts/settings.js.coffee index beb70d7af..cb3313d44 100644 --- a/app/assets/javascripts/settings.js.coffee +++ b/app/assets/javascripts/settings.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.Settings = initialize: -> diff --git a/app/assets/javascripts/social_share.js.coffee b/app/assets/javascripts/social_share.js.coffee index 5776fd555..4a89dfbe4 100644 --- a/app/assets/javascripts/social_share.js.coffee +++ b/app/assets/javascripts/social_share.js.coffee @@ -1,7 +1,7 @@ +"use strict" + App.SocialShare = initialize: -> $(".social-share-button a").each -> - element = $(this) - site = element.data("site") - element.append("#{site}") + $(this).append("#{$(this).data("site")}") diff --git a/app/assets/javascripts/sortable.js.coffee b/app/assets/javascripts/sortable.js.coffee index 1e24da891..09d3050f4 100644 --- a/app/assets/javascripts/sortable.js.coffee +++ b/app/assets/javascripts/sortable.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.Sortable = initialize: -> $(".sortable").sortable diff --git a/app/assets/javascripts/stat_graphs.js b/app/assets/javascripts/stat_graphs.js index 256078a85..479e20287 100644 --- a/app/assets/javascripts/stat_graphs.js +++ b/app/assets/javascripts/stat_graphs.js @@ -4,10 +4,14 @@ //= require stats var initialize_stats_modules = function() { + "use strict"; + App.Stats.initialize(); }; $(function(){ + "use strict"; + $(document).ready(initialize_stats_modules); $(document).on("page:load", initialize_stats_modules); $(document).on("ajax:complete", initialize_stats_modules); diff --git a/app/assets/javascripts/stats.js.coffee b/app/assets/javascripts/stats.js.coffee index 982d2f98e..0cb687230 100644 --- a/app/assets/javascripts/stats.js.coffee +++ b/app/assets/javascripts/stats.js.coffee @@ -1,3 +1,5 @@ +"use strict" + # Helper for generate C3.js graphs #---------------------------------------------------------------------- @@ -8,4 +10,4 @@ buildGraph = (el) -> App.Stats = initialize: -> - buildGraph(g) for g in $("[data-graph]") + $("[data-graph]").each -> buildGraph(this) diff --git a/app/assets/javascripts/suggest.js.coffee b/app/assets/javascripts/suggest.js.coffee index c8e242cf6..24159e36a 100644 --- a/app/assets/javascripts/suggest.js.coffee +++ b/app/assets/javascripts/suggest.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.Suggest = initialize: -> diff --git a/app/assets/javascripts/table_sortable.js.coffee b/app/assets/javascripts/table_sortable.js.coffee index cc2b6adaa..784147327 100644 --- a/app/assets/javascripts/table_sortable.js.coffee +++ b/app/assets/javascripts/table_sortable.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.TableSortable = getCellValue: (row, index) -> $(row).children("td").eq(index).text() @@ -11,12 +13,12 @@ App.TableSortable = initialize: -> $("table.sortable th").click -> table = $(this).parents("table").eq(0) - rows = table.find("tr:gt(0)").not("tfoot tr").toArray().sort(App.TableSortable.comparer($(this).index())) - @asc = !@asc - if !@asc - rows = rows.reverse() - i = 0 - while i < rows.length - table.append rows[i] - i++ + 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.coffee b/app/assets/javascripts/tag_autocomplete.js.coffee index 73c1b31f3..f1230e058 100644 --- a/app/assets/javascripts/tag_autocomplete.js.coffee +++ b/app/assets/javascripts/tag_autocomplete.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.TagAutocomplete = split: ( val ) -> diff --git a/app/assets/javascripts/tags.js.coffee b/app/assets/javascripts/tags.js.coffee index bdabac7fd..f29b384a7 100644 --- a/app/assets/javascripts/tags.js.coffee +++ b/app/assets/javascripts/tags.js.coffee @@ -1,18 +1,18 @@ +"use strict" + App.Tags = initialize: -> $tag_input = $("input.js-tag-list") $("body .js-add-tag-link").each -> - $this = $(this) - - unless $this.data("initialized") is "yes" - $this.on("click", -> + unless $(this).data("initialized") is "yes" + $(this).on("click", -> name = "\"#{$(this).text()}\"" current_tags = $tag_input.val().split(",").filter(Boolean) - if $.inArray(name, current_tags) >= 0 - current_tags.splice($.inArray(name, current_tags), 1) + if current_tags.indexOf(name) >= 0 + current_tags.splice(current_tags.indexOf(name), 1) else current_tags.push name diff --git a/app/assets/javascripts/tree_navigator.js.coffee b/app/assets/javascripts/tree_navigator.js.coffee index 86fd240fd..066967e0c 100644 --- a/app/assets/javascripts/tree_navigator.js.coffee +++ b/app/assets/javascripts/tree_navigator.js.coffee @@ -1,11 +1,8 @@ +"use strict" + App.TreeNavigator = setNodes: (nodes) -> - children = nodes.children("ul") - - if(children.length == 0) - return - - children.each -> + nodes.children("ul").each -> link = $(this).prev("a") $('').insertBefore(link) App.TreeNavigator.setNodes($(this).children()) @@ -21,16 +18,16 @@ App.TreeNavigator = $("[data-tree-navigator] span").on click: -> - elem = $(this) - if(elem.hasClass("open")) - elem.removeClass("open").addClass("closed") - elem.siblings("ul").hide() - else if(elem.hasClass("closed")) - elem.removeClass("closed").addClass("open") - elem.siblings("ul").show() + 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() - if anchor = $(location).attr("hash") - if link = elem.find("a[href='#{anchor}']") - link.parents("ul").each -> - $(this).show() - $(this).siblings("span").removeClass("closed").addClass("open") + 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.coffee b/app/assets/javascripts/users.js.coffee index 29039de95..b5da545fa 100644 --- a/app/assets/javascripts/users.js.coffee +++ b/app/assets/javascripts/users.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.Users = initialize: -> diff --git a/app/assets/javascripts/valuation_budget_investment_form.js.coffee b/app/assets/javascripts/valuation_budget_investment_form.js.coffee index 51fb1d156..6aec6be07 100644 --- a/app/assets/javascripts/valuation_budget_investment_form.js.coffee +++ b/app/assets/javascripts/valuation_budget_investment_form.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.ValuationBudgetInvestmentForm = showFeasibleFields: -> diff --git a/app/assets/javascripts/votations.js.coffee b/app/assets/javascripts/votations.js.coffee index ab22c2afa..2ce9333d0 100644 --- a/app/assets/javascripts/votations.js.coffee +++ b/app/assets/javascripts/votations.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.Votations = checkMaxVotes: -> diff --git a/app/assets/javascripts/votes.js.coffee b/app/assets/javascripts/votes.js.coffee index d0bed54ad..ec57df968 100644 --- a/app/assets/javascripts/votes.js.coffee +++ b/app/assets/javascripts/votes.js.coffee @@ -1,3 +1,5 @@ +"use strict" + App.Votes = hoverize: (votes) -> diff --git a/app/assets/javascripts/watch_form_changes.js.coffee b/app/assets/javascripts/watch_form_changes.js.coffee index f2ee99569..2f3e70eba 100644 --- a/app/assets/javascripts/watch_form_changes.js.coffee +++ b/app/assets/javascripts/watch_form_changes.js.coffee @@ -1,28 +1,27 @@ +"use strict" + App.WatchFormChanges = forms: -> return $("form[data-watch-changes]") msg: -> - if($("[data-watch-form-message]").length) - return $("[data-watch-form-message]").data("watch-form-message") + return $("[data-watch-form-message]").data("watch-form-message") + + hasChanged: -> + App.WatchFormChanges.forms().is -> + $(this).serialize() != $(this).data("watchChanges") checkChanges: -> - changes = false - App.WatchFormChanges.forms().each -> - form = $(this) - if form.serialize() != form.data("watchChanges") - changes = true - if changes - return confirm(App.WatchFormChanges.msg()) + if App.WatchFormChanges.hasChanged() + confirm(App.WatchFormChanges.msg()) else - return true + 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()) + $(document).off("page:before-change").on("page:before-change", App.WatchFormChanges.checkChanges) App.WatchFormChanges.forms().each -> - form = $(this) - form.data("watchChanges", form.serialize()) + $(this).data("watchChanges", $(this).serialize())