From cb3afa76d93f7883958d46be41022a513f3c9904 Mon Sep 17 00:00:00 2001 From: Mark Williams Date: Mon, 18 Sep 2023 14:51:12 +0100 Subject: [PATCH] LIMS-979: Add Unqueue All and Unqueue Selected buttons to Container Queue page --- api/src/Page/Sample.php | 2 +- .../modules/imaging/views/queuecontainer.js | 53 ++++++++++++++++++- .../js/templates/imaging/queuecontainer.html | 12 ++++- 3 files changed, 63 insertions(+), 4 deletions(-) diff --git a/api/src/Page/Sample.php b/api/src/Page/Sample.php index 4c7bdebe7..7b8f88c9f 100644 --- a/api/src/Page/Sample.php +++ b/api/src/Page/Sample.php @@ -168,7 +168,7 @@ class Sample extends Page array('/sub/:ssid', 'put', '_update_sub_sample_full'), array('/sub', 'post', '_add_sub_sample'), array('/sub/:ssid', 'delete', '_delete_sub_sample'), - array('/sub/queue/cid/:cid', 'post', '_queue_all_sub_samples'), + array('/sub/queue/cid/:cid', 'get', '_queue_all_sub_samples'), array('/sub/queue(/:BLSUBSAMPLEID)', 'get', '_pre_q_sub_sample'), array('/plan', 'get', '_get_diffraction_plans'), diff --git a/client/src/js/modules/imaging/views/queuecontainer.js b/client/src/js/modules/imaging/views/queuecontainer.js index e4c6d396d..0ed464e0a 100644 --- a/client/src/js/modules/imaging/views/queuecontainer.js +++ b/client/src/js/modules/imaging/views/queuecontainer.js @@ -527,6 +527,8 @@ define(['marionette', 'click a.unqueue': 'unqueueContainer', 'click a.addpage': 'queuePageSamples', 'click a.addall': 'queueAllSamples', + 'click a.unqueuesel': 'unqueueSelectedSamples', + 'click a.unqueueall': 'unqueueAllSamples', 'change @ui.nodata': 'refreshSubSamples', 'change @ui.notcompleted': 'refreshSubSamples', }, @@ -571,7 +573,6 @@ define(['marionette', this.$el.addClass('loading'); Backbone.ajax({ url: app.apiurl+'/sample/sub/queue/cid/'+this.model.get('CONTAINERID'), - method: "post", data: {}, success: function(resp) { _.each(resp, function (r) { @@ -586,6 +587,56 @@ define(['marionette', }) }, + unqueueSelectedSamples: function(e) { + e.preventDefault() + + var self = this + this.$el.addClass('loading'); + var sids = _.map(this.qsubsamples.where({ isGridSelected: true }), function(ss) {return ss.get('BLSUBSAMPLEID')}) + + Backbone.ajax({ + url: app.apiurl+'/sample/sub/queue', + data: { + BLSUBSAMPLEID: sids, + UNQUEUE: 1, + }, + success: function(resp) { + _.each(resp, function (r) { + var ss = self.qsubsamples.findWhere({ BLSUBSAMPLEID: r.BLSUBSAMPLEID }) + ss.set({ READYFORQUEUE: '0' }) + }) + }, + complete: function(resp, status) { + self.$el.removeClass('loading') + self.refreshQSubSamples(self) + } + }) + }, + + unqueueAllSamples: function(e) { + e.preventDefault() + + var self = this + this.$el.addClass('loading'); + Backbone.ajax({ + url: app.apiurl+'/sample/sub/queue/cid/'+this.model.get('CONTAINERID'), + data: { + queued: 1, + UNQUEUE: 1, + }, + success: function(resp) { + _.each(resp, function (r) { + var ss = self.qsubsamples.fullCollection.findWhere({ BLSUBSAMPLEID: r.BLSUBSAMPLEID }) + ss.set({ READYFORQUEUE: '0' }) + }) + }, + complete: function(resp, status) { + self.$el.removeClass('loading') + self.refreshQSubSamples(self) + } + }) + }, + unqueueContainer: function(e) { e.preventDefault() diff --git a/client/src/js/templates/imaging/queuecontainer.html b/client/src/js/templates/imaging/queuecontainer.html index 26ecbe899..cff3c820b 100644 --- a/client/src/js/templates/imaging/queuecontainer.html +++ b/client/src/js/templates/imaging/queuecontainer.html @@ -49,12 +49,20 @@

Available Samples

Queued Samples

-
+ + +
+ Presets: Apply to Selected Apply to All + +
-
<% if (!CONTAINERQUEUEID) { %>