Projet

Général

Profil

0001-dossiers-show-an-alert-when-closing-without-saving.patch

Jérôme Schneider, 29 juillet 2014 10:54

Télécharger (2,85 ko)

Voir les différences:

Subject: [PATCH] dossiers: show an alert when closing without saving

Closes #2740
 calebasse/static/js/calebasse.dossiers.js | 36 ++++++++++++++++++++++++++-----
 1 file changed, 31 insertions(+), 5 deletions(-)
calebasse/static/js/calebasse.dossiers.js
17 17
      '#address-dlg', '600px', 'Ajouter');
18 18
}
19 19

  
20
function warning_on_unsave_change() {
21
    var form_changed = false;
22
    $(window).on("beforeunload", function() {
23
        if (form_changed) {
24
            return "Vous n'avez pas enregistré vos changements.";
25
        }
26
    });
27
    $("#tabs").on("tabsbeforeactivate", function(event, ui) {
28
        if (form_changed) {
29
            var answer = confirm('Vous avez des changements non sauvegardés. Voulez vous vraiment continuer ?');
30
            if (! answer) {
31
                event.preventDefault();
32
            }
33
            else {
34
                form_changed = false;
35
            }
36
        }
37
    });
38
    $('form').change(function() {
39
        form_changed = true;
40
    });
41
    $('button').click(function() {
42
        form_changed = false;
43
    });
44
}
45

  
20 46
function state_dialog(url, state_title, state_type) {
21 47
    $('#change-record').load(url,
22 48
            function () {
......
54 80
}
55 81

  
56 82
function load_tab1_general() {
83
    warning_on_unsave_change();
57 84
    $('#update-paper-id-btn').click(function() {
58 85
        generic_ajaxform_dialog('update/paper_id', 'Modifier le numéro du dossier papier',
59 86
            '#ajax-dlg', '500px', 'Modifier');
......
105 132
}
106 133

  
107 134
function load_tab2_adm() {
135
    warning_on_unsave_change();
108 136
    init_magic_dialog();
109 137
    $('#prescription-transport-btn').click(function() {
110 138
        $('#ajax-dlg').load('prescription-transport',
......
325 353

  
326 354
function load_tab8_medical() {
327 355
  calebasse_ajax_form('#tabs-8');
328
  SelectFilter.init("id_mises_1", "Catégorie", 0, "/static/admin/");
329
  SelectFilter.init("id_mises_2", "Catégorie", 0, "/static/admin/");
330
  SelectFilter.init("id_mises_3", "Catégorie", 0, "/static/admin/");
356
  warning_on_unsave_change();
331 357
}
332 358

  
333 359

  
......
354 380
    });
355 381

  
356 382

  
357
    $('.atabs').click(function() {
358
        location.hash = 'tab=' + $(this).data('id');
383
    $('#tabs').on("tabsload", function(event, ui) {
384
        location.hash = 'tab=' + $(ui.tab).data('id');
359 385
    });
360 386

  
361 387
    $('#btn_all_state').click(function() {
362
-