Changeset 6c1de0e in osmose-frontend


Ignore:
Timestamp:
Mar 18, 2014 10:08:59 PM (6 years ago)
Author:
Frédéric Rodrigo <fred.rodrigo@…>
Branches:
master
Children:
317f047
Parents:
d2b69f4
git-author:
Frédéric Rodrigo <fred.rodrigo@…> (08/03/2014 22:15:14)
git-committer:
Frédéric Rodrigo <fred.rodrigo@…> (18/03/2014 22:08:59)
Message:

Rework Editor save code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • static/map/Osmose.Editor.js

    ra870ebb r6c1de0e  
    1818    $("#menu-editor-save").click(function () { 
    1919      self._save(this); 
     20    }); 
     21 
     22    this.saveDialog = $('#dialog_editor_save_popup'); 
     23    this.saveDialog.dialog({ 
     24      autoOpen: false, 
     25      modal: true, 
     26      buttons: [{ 
     27        text: self.saveDialog.attr('data-button_cancel'), 
     28        click: function () { 
     29          self.saveDialog.dialog('close'); 
     30        } 
     31      }, { 
     32        text: self.saveDialog.attr('data-button_save'), 
     33        click: function () { 
     34          var dialog_content = self.saveDialog.html(); 
     35          self.saveDialog.html("<center><img src='../images/throbbler.gif' alt='downloading'></center>"); 
     36          self.saveDialog.parent().find('.ui-dialog-buttonpane').hide(); 
     37 
     38          self._upload(); 
     39 
     40          self.saveDialog.html(dialog_content); 
     41          self.saveDialog.parent().find('.ui-dialog-buttonpane').show(); 
     42        }, 
     43      }] 
    2044    }); 
    2145 
     
    6791  }, 
    6892 
     93  _upload: function () { 
     94    $.ajax({ 
     95      url: '../editor/save', 
     96      type: 'POST', 
     97      contentType: 'application/json', 
     98      data: JSON.stringify({ 
     99        tag: { 
     100          comment: document.forms.editor_save_form.elements.comment.value, 
     101          source: document.forms.editor_save_form.elements.source.value, 
     102          type: document.forms.editor_save_form.elements.type.value 
     103        }, 
     104        reuse_changeset: document.forms.editor_save_form.elements.reuse_changeset.checked, 
     105        modify: self._modifiyObjectStack, 
     106        delete: self._deleteObjectStack 
     107      }), 
     108    }).done(function () { 
     109      self._modifiyObjectStack = {}; 
     110      self._deleteObjectStack = {}; 
     111      self._count_touched(); 
     112      this.saveDialog.dialog('close'); 
     113    }).fail(function (xhr, err) { 
     114      alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status); 
     115    }); 
     116  }, 
     117 
    69118  _save: function (e) { 
    70     var self = this, 
    71       dialog = $('#dialog_editor_save_popup'); 
    72  
    73     dialog.find('#editor-modify-count').text(Object.keys(this._modifiyObjectStack).length); 
    74     dialog.find('#editor-delete-count').text(Object.keys(this._deleteObjectStack).length); 
    75  
    76     dialog.dialog({ 
    77       modal: true, 
    78       buttons: [{ 
    79         text: dialog.attr('data-button_cancel'), 
    80         click: function () { 
    81           $(this).dialog('close'); 
    82         } 
    83       }, { 
    84         text: dialog.attr('data-button_save'), 
    85         click: function () { 
    86           var t = this; 
    87           $.ajax({ 
    88             url: '../editor/save', 
    89             type: 'POST', 
    90             contentType: 'application/json', 
    91             data: JSON.stringify({ 
    92               tag: { 
    93                 comment: document.forms.editor_save_form.elements.comment.value, 
    94                 source: document.forms.editor_save_form.elements.source.value, 
    95                 type: document.forms.editor_save_form.elements.type.value 
    96               }, 
    97               reuse_changeset: document.forms.editor_save_form.elements.reuse_changeset.checked, 
    98               modify: self._modifiyObjectStack, 
    99               delete: self._deleteObjectStack 
    100             }), 
    101             beforeSend: function () { 
    102               t.dialog_content = dialog.html(); 
    103               dialog.html("<center><img src='../images/throbbler.gif' alt='downloading'></center>"); 
    104               dialog.parent().find('.ui-dialog-buttonpane').hide(); 
    105             }, 
    106           }).done(function () { 
    107             self._modifiyObjectStack = {}; 
    108             self._deleteObjectStack = {}; 
    109             self._count_touched(); 
    110             $(t).dialog('close'); 
    111           }).fail(function (xhr, err) { 
    112             dialog.html(t.dialog_content); 
    113             dialog.parent().find('.ui-dialog-buttonpane').show(); 
    114             alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status); 
    115           }); 
    116         }, 
    117       }] 
    118     }); 
     119    this.saveDialog.find('#editor-modify-count').text(Object.keys(this._modifiyObjectStack).length); 
     120    this.saveDialog.find('#editor-delete-count').text(Object.keys(this._deleteObjectStack).length); 
     121    this.saveDialog.dialog('open'); 
    119122  }, 
    120123 
Note: See TracChangeset for help on using the changeset viewer.