fnp
/
fnpeditor.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
editor: fix selecting text spanning multiple nodes in Chrome
[fnpeditor.git]
/
src
/
editor
/
modules
/
data
/
dialog.js
diff --git
a/src/editor/modules/data/dialog.js
b/src/editor/modules/data/dialog.js
index
0ad87e5
..
0d4bbd4
100644
(file)
--- a/
src/editor/modules/data/dialog.js
+++ b/
src/editor/modules/data/dialog.js
@@
-1,10
+1,11
@@
define(function(require) {
define(function(require) {
+ /* globals gettext */
'use strict';
var _ = require('libs/underscore'),
Backbone = require('libs/backbone'),
'use strict';
var _ = require('libs/underscore'),
Backbone = require('libs/backbone'),
-
saveD
ialogTemplate = require('libs/text!./dialog.html'),
+
d
ialogTemplate = require('libs/text!./dialog.html'),
fieldTemplates = {};
fieldTemplates.checkbox = require('libs/text!./templates/checkbox.html');
fieldTemplates.select = require('libs/text!./templates/select.html');
fieldTemplates = {};
fieldTemplates.checkbox = require('libs/text!./templates/checkbox.html');
fieldTemplates.select = require('libs/text!./templates/select.html');
@@
-14,10
+15,10
@@
define(function(require) {
var DialogView = Backbone.View.extend({
var DialogView = Backbone.View.extend({
- template: _.template(
saveD
ialogTemplate),
+ template: _.template(
d
ialogTemplate),
events: {
events: {
- 'click .
save-btn': 'onSav
e',
- 'click .cancel-btn': '
close
',
+ 'click .
execute-btn': 'onExecut
e',
+ 'click .cancel-btn': '
onCancel
',
'click .close': 'close'
},
initialize: function() {
'click .close': 'close'
},
initialize: function() {
@@
-25,10
+26,13
@@
define(function(require) {
this.actionsDisabled = false;
},
show: function() {
this.actionsDisabled = false;
},
show: function() {
- this.setElement(this.template(this.options));
+ this.setElement(this.template(_.extend({
+ executeButtonText: gettext('Submit'),
+ cancelButtonText: gettext('Cancel')
+ }, this.options)));
var body = this.$('.modal-body');
var body = this.$('.modal-body');
-
this.options.fields
.forEach(function(field) {
+
(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));
var template = fieldTemplates[field.type];
if(!template) {
throw new Error('Field type {type} not recognized.'.replace('{type}', field.type));
@@
-38,26
+42,34
@@
define(function(require) {
);
});
);
});
+ if(this.options.text) {
+ body.append('<p>' + this.options.text + '</p>');
+ }
+
this.$el.modal({backdrop: 'static'});
this.$el.modal('show');
this.$('textarea').focus();
},
this.$el.modal({backdrop: 'static'});
this.$el.modal('show');
this.$('textarea').focus();
},
- on
Sav
e: function(e) {
+ on
Execut
e: function(e) {
e.preventDefault();
var view = this,
formData = {};
e.preventDefault();
var view = this,
formData = {};
-
this.options.fields
.forEach(function(field) {
+
(this.options.fields || [])
.forEach(function(field) {
var widget = view.$('[name=' + field.name +']');
formData[field.name] = widget.val();
});
var widget = view.$('[name=' + field.name +']');
formData[field.name] = widget.val();
});
- this.trigger('
sav
e', {
+ this.trigger('
execut
e', {
formData: formData,
success: function() { view.actionsDisabled = false; view.close(); },
error: function() { view.actionsDisabled = false; view.close(); },
});
},
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();
close: function(e) {
if(e) {
e.preventDefault();
@@
-66,6
+78,7
@@
define(function(require) {
this.$el.modal('hide');
this.$el.remove();
}
this.$el.modal('hide');
this.$el.remove();
}
+ this.trigger('close');
},
toggleButtons: function(toggle) {
this.$('.btn, button').toggleClass('disabled', !toggle);
},
toggleButtons: function(toggle) {
this.$('.btn, button').toggleClass('disabled', !toggle);