Ask for confirmation when changing the page and
the forms watched do have changes
This commit is contained in:
@@ -54,6 +54,7 @@
|
|||||||
//= require legislation
|
//= require legislation
|
||||||
//= require legislation_allegations
|
//= require legislation_allegations
|
||||||
//= require legislation_annotatable
|
//= require legislation_annotatable
|
||||||
|
//= require watch_form_changes
|
||||||
//= require custom
|
//= require custom
|
||||||
|
|
||||||
var initialize_modules = function() {
|
var initialize_modules = function() {
|
||||||
@@ -83,6 +84,7 @@ var initialize_modules = function() {
|
|||||||
App.Legislation.initialize();
|
App.Legislation.initialize();
|
||||||
if ( $(".legislation-annotatable").length )
|
if ( $(".legislation-annotatable").length )
|
||||||
App.LegislationAnnotatable.initialize();
|
App.LegislationAnnotatable.initialize();
|
||||||
|
App.WatchFormChanges.initialize();
|
||||||
};
|
};
|
||||||
|
|
||||||
$(function(){
|
$(function(){
|
||||||
|
|||||||
31
app/assets/javascripts/watch_form_changes.js.coffee
Normal file
31
app/assets/javascripts/watch_form_changes.js.coffee
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
App.WatchFormChanges =
|
||||||
|
forms: ->
|
||||||
|
return $('form[data-watch-changes]')
|
||||||
|
|
||||||
|
msg: ->
|
||||||
|
if($('[data-watch-form-message]').length)
|
||||||
|
return $('[data-watch-form-message]').data('watch-form-message')
|
||||||
|
|
||||||
|
checkChanges: (event) ->
|
||||||
|
console.log(event)
|
||||||
|
changes = false
|
||||||
|
App.WatchFormChanges.forms().each ->
|
||||||
|
form = $(this)
|
||||||
|
if form.serialize() != form.data('watchChanges')
|
||||||
|
changes = true
|
||||||
|
if changes
|
||||||
|
return confirm(App.WatchFormChanges.msg())
|
||||||
|
else
|
||||||
|
return true
|
||||||
|
|
||||||
|
initialize: ->
|
||||||
|
if App.WatchFormChanges.forms().length == 0 || App.WatchFormChanges.msg() == undefined
|
||||||
|
return
|
||||||
|
|
||||||
|
$(document).off('page:before-change').on('page:before-change', (e) -> App.WatchFormChanges.checkChanges(e))
|
||||||
|
|
||||||
|
App.WatchFormChanges.forms().each ->
|
||||||
|
form = $(this)
|
||||||
|
form.data('watchChanges', form.serialize())
|
||||||
|
|
||||||
|
false
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<%= form_for [:admin, @process, @draft_version], url: url do |f| %>
|
<%= form_for [:admin, @process, @draft_version], url: url, html: {data: {watch_changes: true}} do |f| %>
|
||||||
|
|
||||||
<% if @draft_version.errors.any? %>
|
<% if @draft_version.errors.any? %>
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<%= form_for [:admin, @process] do |f| %>
|
<%= form_for [:admin, @process], html: {data: {watch_changes: true}} do |f| %>
|
||||||
|
|
||||||
<% if @process.errors.any? %>
|
<% if @process.errors.any? %>
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<%= form_for [:admin, @process, @question], url: url do |f| %>
|
<%= form_for [:admin, @process, @question], url: url, html: {data: {watch_changes: true}} do |f| %>
|
||||||
|
|
||||||
<% if @question.errors.any? %>
|
<% if @question.errors.any? %>
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<%= favicon_link_tag "favicon.ico" %>
|
<%= favicon_link_tag "favicon.ico" %>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="admin">
|
<body class="admin" data-watch-form-message="<%= I18n.t('layouts.admin.watch_form_message') %>">
|
||||||
<div class="off-canvas-wrapper">
|
<div class="off-canvas-wrapper">
|
||||||
<div class="off-canvas-wrapper-inner" data-off-canvas-wrapper>
|
<div class="off-canvas-wrapper-inner" data-off-canvas-wrapper>
|
||||||
<div class="off-canvas position-left" id="offCanvas" data-off-canvas>
|
<div class="off-canvas position-left" id="offCanvas" data-off-canvas>
|
||||||
|
|||||||
@@ -218,6 +218,8 @@ en:
|
|||||||
see_all: See proposals
|
see_all: See proposals
|
||||||
budgets: Participatory budgeting
|
budgets: Participatory budgeting
|
||||||
spending_proposals: Spending Proposals
|
spending_proposals: Spending Proposals
|
||||||
|
admin:
|
||||||
|
watch_form_message: 'You have unsaved changes. Do you confirm to leave the page?'
|
||||||
legacy_legislation:
|
legacy_legislation:
|
||||||
help:
|
help:
|
||||||
alt: Select the text you want to comment and press the button with the pencil.
|
alt: Select the text you want to comment and press the button with the pencil.
|
||||||
|
|||||||
@@ -218,6 +218,8 @@ es:
|
|||||||
see_all: Ver propuestas
|
see_all: Ver propuestas
|
||||||
budgets: Presupuestos ciudadanos
|
budgets: Presupuestos ciudadanos
|
||||||
spending_proposals: "Propuestas de inversión"
|
spending_proposals: "Propuestas de inversión"
|
||||||
|
admin:
|
||||||
|
watch_form_message: 'Has realizado cambios que no han sido guardados. ¿Seguro que quieres abandonar la página?'
|
||||||
legacy_legislation:
|
legacy_legislation:
|
||||||
help:
|
help:
|
||||||
alt: Selecciona el texto que quieres comentar y pulsa en el botón con el lápiz.
|
alt: Selecciona el texto que quieres comentar y pulsa en el botón con el lápiz.
|
||||||
|
|||||||
Reference in New Issue
Block a user