From a1b7105b389e8a7b8f9ed9aab630c8b543825da4 Mon Sep 17 00:00:00 2001 From: Saskia Hiltemann Date: Tue, 30 Oct 2018 13:21:59 +0100 Subject: [PATCH 1/2] add option to strip url prefix from pair names --- .../list-of-pairs-collection-creator.js | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/client/galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js b/client/galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js index b79e7c39883..2111fc20374 100644 --- a/client/galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js +++ b/client/galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js @@ -256,6 +256,9 @@ var PairedCollectionCreator = Backbone.View.extend(baseMVC.LoggableMixin) this.removeExtensions = true; //this.removeExtensions = false; + /** remove file extensions (\.*) from created pair names? */ + this.removeUrlPrefix = true; + /** fn to call when the cancel button is clicked (scoped to this) - if falsy, no btn is displayed */ this.oncancel = attributes.oncancel; /** fn to call when the collection is created (scoped to this) */ @@ -544,8 +547,9 @@ var PairedCollectionCreator = Backbone.View.extend(baseMVC.LoggableMixin) }, /** try to find a good pair name for the given fwd and rev datasets */ - _guessNameForPair: function(fwd, rev, removeExtensions) { + _guessNameForPair: function(fwd, rev, removeExtensions, removeUrlPrefix) { removeExtensions = removeExtensions !== undefined ? removeExtensions : this.removeExtensions; + removeUrlPrefix = removeUrlPrefix !== undefined ? removeUrlPrefix : this.removeUrlPrefix; var fwdName = fwd.name; var revName = rev.name; @@ -563,6 +567,15 @@ var PairedCollectionCreator = Backbone.View.extend(baseMVC.LoggableMixin) revName = revName.replace(extension, ""); } } + if (removeUrlPrefix) { + var lastSlashIndex = lcs.lastIndexOf("/"); + if (lastSlashIndex > 0) { + var urlprefix = lcs.slice(0, lastSlashIndex + 1); + lcs = lcs.replace(urlprefix, ""); + fwdName = fwdName.replace(extension, ""); + revName = revName.replace(extension, ""); + } + } return lcs || `${fwdName} & ${revName}`; }, @@ -891,7 +904,8 @@ var PairedCollectionCreator = Backbone.View.extend(baseMVC.LoggableMixin) footerSettings: { ".hide-originals": "hideOriginals", - ".remove-extensions": "removeExtensions" + ".remove-extensions": "removeExtensions", + ".remove-urlprefix": "removeUrlPrefix" }, /** add any jQuery/bootstrap/custom plugins to elements rendered */ @@ -1082,6 +1096,9 @@ var PairedCollectionCreator = Backbone.View.extend(baseMVC.LoggableMixin) "change .remove-extensions": function(ev) { this.toggleExtensions(); }, + "change .remove-urlprefix": function(ev) { + this.toggleUrlPrefix(); + }, "change .collection-name": "_changeName", "keydown .collection-name": "_nameCheckForEnter", "change .hide-originals": "_changeHideOriginals", @@ -1492,7 +1509,20 @@ var PairedCollectionCreator = Backbone.View.extend(baseMVC.LoggableMixin) toggleExtensions: function(force) { var self = this; self.removeExtensions = force !== undefined ? force : !self.removeExtensions; + _.each(self.paired, pair => { + // don't overwrite custom names + if (pair.customizedName) { + return; + } + pair.name = self._guessNameForPair(pair.forward, pair.reverse); + }); + self._renderPaired(); + self._renderFooter(); + }, + toggleUrlPrefix: function(force) { + var self = this; + self.removeUrlPrefix = force !== undefined ? force : !self.removeUrlPrefix; _.each(self.paired, pair => { // don't overwrite custom names if (pair.customizedName) { @@ -1640,6 +1670,11 @@ var PairedCollectionCreator = Backbone.View.extend(baseMVC.LoggableMixin) '', "", '", + '", '", - '