diff --git a/client/src/js/modules/dc/views/downstreamreprocess.js b/client/src/js/modules/dc/views/downstreamreprocess.js
index b9b58e603..cec8cb339 100644
--- a/client/src/js/modules/dc/views/downstreamreprocess.js
+++ b/client/src/js/modules/dc/views/downstreamreprocess.js
@@ -74,6 +74,7 @@ define(['backbone', 'marionette', 'views/dialog',
ui: {
pipeline: 'select[name=pipeline]',
warning: '#warning',
+ fields: 'input, select',
},
buttons: {
@@ -87,6 +88,8 @@ define(['backbone', 'marionette', 'views/dialog',
events: {
'change @ui.pipeline': 'updatePipeline',
+ 'input @ui.fields': 'onFieldChanged',
+ 'change @ui.fields': 'onFieldChanged',
},
templateHelpers: function() {
@@ -144,14 +147,24 @@ define(['backbone', 'marionette', 'views/dialog',
},
+ onFieldChanged: function() {
+ this._enableIntegrateButton();
+ },
+
_disableIntegrateButton: function() {
var btn = $('.ui-dialog-buttonpane button:contains("Submit")')
- btn.button('disable').button('option', 'label', 'Submitted!')
- setTimeout(function() {
- btn.button('enable').button('option', 'label', 'Submit')
+ btn.addClass('submitted').button('disable').button('option', 'label', 'Submitted!')
+ this.resetTimeout = setTimeout(() => {
+ this._enableIntegrateButton()
}, 5000)
},
+ _enableIntegrateButton: function() {
+ var btn = $('.ui-dialog-buttonpane button.submitted')
+ btn.removeClass('submitted').button('enable').button('option', 'label', 'Submit')
+ clearTimeout(this.resetTimeout);
+ },
+
_enqueue: function(options) {
Backbone.ajax({
url: app.apiurl+'/process/enqueue/downstream',
diff --git a/client/src/js/modules/dc/views/reprocess.js b/client/src/js/modules/dc/views/reprocess.js
index 8ed8b3f5d..74e507c91 100644
--- a/client/src/js/modules/dc/views/reprocess.js
+++ b/client/src/js/modules/dc/views/reprocess.js
@@ -267,6 +267,7 @@ define(['backbone', 'marionette', 'views/dialog',
al: 'input[name=alpha]',
be: 'input[name=beta]',
ga: 'input[name=gamma]',
+ fields: 'input, select',
},
buttons: {
@@ -281,6 +282,8 @@ define(['backbone', 'marionette', 'views/dialog',
'change @ui.pipeline': 'updatePipeline',
'change @ui.indexingMethod': 'updateIndexingMethod',
'click a.multicrystal': 'closeDialog',
+ 'input @ui.fields': 'onFieldChanged',
+ 'change @ui.fields': 'onFieldChanged',
},
templateHelpers: function() {
@@ -556,15 +559,27 @@ define(['backbone', 'marionette', 'views/dialog',
},
+ onFieldChanged: function() {
+ this._enableIntegrateButton();
+ },
+
+
_disableIntegrateButton: function() {
var btn = $('.ui-dialog-buttonpane button:contains("Integrate")')
- btn.button('disable').button('option', 'label', 'Submitted!')
- setTimeout(function() {
- btn.button('enable').button('option', 'label', 'Integrate')
+ btn.addClass('submitted').button('disable').button('option', 'label', 'Submitted!')
+ this.resetTimeout = setTimeout(() => {
+ this._enableIntegrateButton()
}, 5000)
},
+ _enableIntegrateButton: function() {
+ var btn = $('.ui-dialog-buttonpane button.submitted')
+ btn.removeClass('submitted').button('enable').button('option', 'label', 'Integrate')
+ clearTimeout(this.resetTimeout);
+ },
+
+
_enqueue: function(options) {
Backbone.ajax({
url: app.apiurl+'/process/enqueue',
diff --git a/client/src/js/modules/mc/views/datacollections.js b/client/src/js/modules/mc/views/datacollections.js
index 5ca413450..729146f4a 100644
--- a/client/src/js/modules/mc/views/datacollections.js
+++ b/client/src/js/modules/mc/views/datacollections.js
@@ -62,6 +62,8 @@ define(['backbone', 'marionette',
'click .integrate': 'integrate',
'click button.opt': 'toggleOpts',
'change @ui.pipeline': 'updatePipeline',
+ 'input @ui.fields': 'onFieldChanged',
+ 'change @ui.fields': 'onFieldChanged',
},
ui: {
@@ -73,6 +75,8 @@ define(['backbone', 'marionette',
opts: 'div.options',
sm: 'input[name=sm]',
sg: 'select[name=sg]',
+ integrateBtn: 'button.integrate',
+ fields: 'input, select',
},
templateHelpers: function() {
@@ -211,16 +215,26 @@ define(['backbone', 'marionette',
},
+ onFieldChanged: function() {
+ this._enableIntegrateButton();
+ },
+
+
_disableIntegrateButton: function() {
- var btn = $('button.integrate')
- var btnHtml = btn.html()
- btn.prop('disabled', true).html(' Submitted!');
- setTimeout(function() {
- btn.prop('disabled', false).html(btnHtml);
+ this.btnHtml = this.ui.integrateBtn.html()
+ this.ui.integrateBtn.prop('disabled', true).html(' Submitted!');
+ this.resetTimeout = setTimeout(() => {
+ this._enableIntegrateButton()
}, 5000)
},
+ _enableIntegrateButton: function() {
+ this.ui.integrateBtn.prop('disabled', false).html(this.btnHtml);
+ clearTimeout(this.resetTimeout);
+ },
+
+
_enqueue: function(options) {
Backbone.ajax({
url: app.apiurl+'/process/enqueue',
@@ -252,6 +266,7 @@ define(['backbone', 'marionette',
},
onRender: function() {
+ this.btnHtml = this.ui.integrateBtn.html()
this.pages.show(this.paginator)
this.srch.show(this.search)
this.ui.opts.hide()