X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/e03e917292152f4a726a4eea2a57da8d234fb683..413a5f1dc25d5c8a788127f40816f39c49cd0d1c:/src/editor/modules/data/dialog.js diff --git a/src/editor/modules/data/dialog.js b/src/editor/modules/data/dialog.js deleted file mode 100644 index 0d4bbd4..0000000 --- a/src/editor/modules/data/dialog.js +++ /dev/null @@ -1,96 +0,0 @@ -define(function(require) { - - /* globals gettext */ - 'use strict'; - - var _ = require('libs/underscore'), - Backbone = require('libs/backbone'), - dialogTemplate = require('libs/text!./dialog.html'), - fieldTemplates = {}; - fieldTemplates.checkbox = require('libs/text!./templates/checkbox.html'); - fieldTemplates.select = require('libs/text!./templates/select.html'); - fieldTemplates.textarea = require('libs/text!./templates/textarea.html'); - fieldTemplates.input = require('libs/text!./templates/input.html'); - - - - var DialogView = Backbone.View.extend({ - template: _.template(dialogTemplate), - events: { - 'click .execute-btn': 'onExecute', - 'click .cancel-btn': 'onCancel', - 'click .close': 'close' - }, - initialize: function() { - _.bindAll(this); - this.actionsDisabled = false; - }, - show: function() { - this.setElement(this.template(_.extend({ - executeButtonText: gettext('Submit'), - cancelButtonText: gettext('Cancel') - }, this.options))); - - var body = this.$('.modal-body'); - (this.options.fields || []).forEach(function(field) { - var template = fieldTemplates[field.type]; - if(!template) { - throw new Error('Field type {type} not recognized.'.replace('{type}', field.type)); - } - body.append( - _.template(template)(_.extend({description: ''}, field)) - ); - }); - - if(this.options.text) { - body.append('

' + this.options.text + '

'); - } - - this.$el.modal({backdrop: 'static'}); - this.$el.modal('show'); - this.$('textarea').focus(); - }, - onExecute: function(e) { - e.preventDefault(); - var view = this, - formData = {}; - - (this.options.fields || []).forEach(function(field) { - var widget = view.$('[name=' + field.name +']'); - formData[field.name] = widget.val(); - }); - - this.trigger('execute', { - formData: formData, - success: function() { view.actionsDisabled = false; view.close(); }, - error: function() { view.actionsDisabled = false; view.close(); }, - }); - }, - onCancel: function() { - this.trigger('cancel'); - this.close(); - }, - close: function(e) { - if(e) { - e.preventDefault(); - } - if(!this.actionsDisabled) { - this.$el.modal('hide'); - this.$el.remove(); - } - this.trigger('close'); - }, - toggleButtons: function(toggle) { - this.$('.btn, button').toggleClass('disabled', !toggle); - this.$('textarea').attr('disabled', !toggle); - this.actionsDisabled = !toggle; - } - }); - - return { - create: function(config) { - return new DialogView(config); - } - }; - -}); \ No newline at end of file