X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/2a66af7ee0ee2d9943f58db45417b78764a43483..5fa477181f00d867a51d9f6e4fb1915522d725f5:/modules/data/saveDialog.js?ds=inline diff --git a/modules/data/saveDialog.js b/modules/data/saveDialog.js new file mode 100644 index 0000000..a772ba6 --- /dev/null +++ b/modules/data/saveDialog.js @@ -0,0 +1,54 @@ +define([ +'libs/text!./saveDialog.html', +'libs/underscore-min', +'libs/backbone-min', +'libs/jquery-1.9.1.min' +], function(saveDialogTemplate, _, Backbone, $) { + + var DialogView = Backbone.View.extend({ + template: _.template(saveDialogTemplate), + events: { + 'click .save-btn': 'onSave', + 'click .cancel-btn': 'close', + 'click .close': 'close' + }, + initialize: function() { + _.bindAll(this); + this.actionsDisabled = false; + }, + show: function() { + this.setElement(this.template()); + this.$el.modal({backdrop: 'static'}); + this.$el.modal('show'); + + }, + onSave: function(e) { + e.preventDefault(); + var view = this; + this.trigger('save', { + data: {description: view.$el.find('textarea').val()}, + success: function() { view.actionsDisabled = false; view.close(); }, + error: function() { view.actionsDisabled = false; view.close(); }, + }) + }, + close: function(e) { + if(e) + e.preventDefault(); + if(!this.actionsDisabled) { + this.$el.modal('hide'); + this.$el.remove(); + } + }, + toggleButtons: function(toggle) { + this.$('.btn, button').toggleClass('disabled', !toggle); + this.actionsDisabled = !toggle; + } + }); + + return { + create: function() { + return new DialogView(); + } + } + +}); \ No newline at end of file