summaryrefslogtreecommitdiffstats
path: root/module/web/static/js/views/queryModal.js
diff options
context:
space:
mode:
Diffstat (limited to 'module/web/static/js/views/queryModal.js')
-rw-r--r--module/web/static/js/views/queryModal.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/module/web/static/js/views/queryModal.js b/module/web/static/js/views/queryModal.js
new file mode 100644
index 000000000..5477334a0
--- /dev/null
+++ b/module/web/static/js/views/queryModal.js
@@ -0,0 +1,68 @@
+define(['jquery', 'underscore', 'app', 'views/abstract/modalView', './input/inputLoader', 'text!tpl/default/queryDialog.html'],
+ function($, _, App, modalView, load_input, template) {
+ return modalView.extend({
+
+ // TODO: submit on enter reloads the page sometimes
+ events: {
+ 'click .btn-success': 'submit',
+ 'submit form': 'submit'
+ },
+ template: _.compile(template),
+
+ // the notificationView
+ parent: null,
+
+ model: null,
+ input: null,
+
+ initialize: function() {
+ // Inherit parent events
+ this.events = _.extend({}, modalView.prototype.events, this.events);
+ },
+
+ renderContent: function() {
+ var data = {
+ title: this.model.get('title'),
+ plugin: this.model.get('plugin'),
+ description: this.model.get('description')
+ };
+
+ var input = this.model.get('input').data;
+ if (this.model.isCaptcha()) {
+ data.captcha = input[0];
+ data.type = input[1];
+ }
+ return data;
+ },
+
+ onRender: function() {
+ // instantiate the input
+ var input = this.model.get('input');
+ var inputView = load_input(input);
+ this.input = new inputView(input);
+ // only renders after wards
+ this.$('#inputField').append(this.input.render().el);
+ },
+
+ submit: function(e) {
+ e.stopPropagation();
+ // TODO: load next task
+
+ this.model.set('result', this.input.getVal());
+ var self = this;
+ this.model.save({success: function() {
+ self.hide();
+ }});
+
+ this.input.clear();
+ },
+
+ onShow: function() {
+ this.input.focus();
+ },
+
+ onHide: function() {
+ this.input.destroy();
+ }
+ });
+ }); \ No newline at end of file