Projet

Général

Profil

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

Jérôme Schneider, 29 juillet 2014 16:55

Télécharger (4,38 ko)

Voir les différences:

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

Closes #2740
 .../dossiers/patientrecord_tab1_general.html       |  4 +-
 calebasse/static/js/calebasse.dossiers.js          | 44 +++++++++++++++++-----
 2 files changed, 37 insertions(+), 11 deletions(-)
calebasse/dossiers/templates/dossiers/patientrecord_tab1_general.html
87 87
      <button type="button" id="patientrecord-history">Historique</button><br/>
88 88
      <hr/>
89 89
      <p id="confidential-msg" style="display: none; font-size: 10px;">Confidentialité mise à jour</p>
90
      {{ form.confidential.label_tag }} : {{ form.confidential }}
90
      {{ form.confidential.label_tag }} : <span class="autosubmit">{{ form.confidential }}</span>
91 91
      <p id="pause-msg" style="display: none; font-size: 10px;">Pause facturation mise à jour</p>
92
      {{ form.pause.label_tag }} : {{ form.pause }}
92
      {{ form.pause.label_tag }} : <span class="autosubmit">{{ form.pause }}</span>
93 93
      <br/><label>Commentaire de la pause facturation</label> <button class="save enable-on-change btn-maj">✔</button><br/>
94 94
      {{ form.pause_comment }}
95 95

  
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
    $('.autosubmit').click(function() {
39
        form_changed = false;
40
    });
41
    $('form').change(function() {
42
        form_changed = true;
43
    });
44
    $('button').click(function() {
45
        form_changed = false;
46
    });
47
}
48

  
20 49
function state_dialog(url, state_title, state_type) {
21 50
    $('#change-record').load(url,
22 51
            function () {
......
54 83
}
55 84

  
56 85
function load_tab1_general() {
86
    warning_on_unsave_change();
57 87
    $('#update-paper-id-btn').click(function() {
58 88
        generic_ajaxform_dialog('update/paper_id', 'Modifier le numéro du dossier papier',
59 89
            '#ajax-dlg', '500px', 'Modifier');
......
96 126
      $('#patientrecord-history').click();
97 127
      location.hash = '';
98 128
    }
99
    $('#id_pause').click(function() {
100
        $('#general-form').submit();
101
    });
102
    $('#id_confidential').click(function() {
129
    $('.autosubmit').click(function() {
103 130
        $('#general-form').submit();
104 131
    });
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
-