From f7ffde9db447be807f3c7924bbfe243c3f6faa51 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Fri, 25 May 2018 11:07:13 -0400 Subject: [PATCH 01/24] Alias btn-xs to btn-sm for thinks (like welcome) which may have been customized and rely on the previous styles. --- client/galaxy/style/scss/base.scss | 6 ++++++ static/style/blue/base.css | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/client/galaxy/style/scss/base.scss b/client/galaxy/style/scss/base.scss index f03dc22646c..362e58aa850 100644 --- a/client/galaxy/style/scss/base.scss +++ b/client/galaxy/style/scss/base.scss @@ -1300,6 +1300,12 @@ a.action-button { vertical-align: middle; } +.btn-xs { + // The 'new' bootstrap 4 btn-sm is about the same size as the old btn-xs, + // should serve as a replacement for anything expecting this. + @extend .btn-sm; +} + //.action-button > * { // vertical-align: middle; //} diff --git a/static/style/blue/base.css b/static/style/blue/base.css index 9a54840dbb8..8779d0f5d42 100644 --- a/static/style/blue/base.css +++ b/static/style/blue/base.css @@ -2125,7 +2125,7 @@ button, .btn-group-lg > .action-button, .btn-group-lg > .menubutton { border-radius: 0.3rem; } .btn-sm, .btn-group-sm > .btn, .btn-group-sm > input[type="submit"], .btn-group-sm > -button, .btn-group-sm > .action-button, .btn-group-sm > .menubutton, .multi-panel-history .control-column .btn, .multi-panel-history .control-column input[type="submit"], .multi-panel-history .control-column +button, .btn-group-sm > .action-button, .btn-group-sm > .menubutton, .btn-xs, .multi-panel-history .control-column .btn, .multi-panel-history .control-column input[type="submit"], .multi-panel-history .control-column button, .multi-panel-history .control-column .action-button, .multi-panel-history .control-column .menubutton, .multi-panel-history .history-column .panel-controls .btn, .multi-panel-history .history-column .panel-controls input[type="submit"], .multi-panel-history .history-column .panel-controls button, .multi-panel-history .history-column .panel-controls .action-button, .multi-panel-history .history-column .panel-controls .menubutton { padding: 0.25rem 0.5rem; @@ -2505,7 +2505,7 @@ button, margin-right: 0; } .btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split, .btn-group-sm > input[type="submit"] + .dropdown-toggle-split, .btn-group-sm > -button + .dropdown-toggle-split, .btn-group-sm > .action-button + .dropdown-toggle-split, .btn-group-sm > .menubutton + .dropdown-toggle-split, .multi-panel-history .control-column .btn + .dropdown-toggle-split, .multi-panel-history .control-column input[type="submit"] + .dropdown-toggle-split, .multi-panel-history .control-column +button + .dropdown-toggle-split, .btn-group-sm > .action-button + .dropdown-toggle-split, .btn-group-sm > .menubutton + .dropdown-toggle-split, .btn-xs + .dropdown-toggle-split, .multi-panel-history .control-column .btn + .dropdown-toggle-split, .multi-panel-history .control-column input[type="submit"] + .dropdown-toggle-split, .multi-panel-history .control-column button + .dropdown-toggle-split, .multi-panel-history .control-column .action-button + .dropdown-toggle-split, .multi-panel-history .control-column .menubutton + .dropdown-toggle-split, .multi-panel-history .history-column .panel-controls .btn + .dropdown-toggle-split, .multi-panel-history .history-column .panel-controls input[type="submit"] + .dropdown-toggle-split, .multi-panel-history .history-column .panel-controls button + .dropdown-toggle-split, .multi-panel-history .history-column .panel-controls .action-button + .dropdown-toggle-split, .multi-panel-history .history-column .panel-controls .menubutton + .dropdown-toggle-split { padding-right: 0.375rem; From db444455b29b008b0f3bdf0844f38a4db1e457ef Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Fri, 25 May 2018 11:45:18 -0400 Subject: [PATCH 02/24] Alias btn-default to btn-secondary for backwards compatibility. --- client/galaxy/style/scss/base.scss | 7 +++++++ static/style/blue/base.css | 24 +++++++++++++----------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/client/galaxy/style/scss/base.scss b/client/galaxy/style/scss/base.scss index 362e58aa850..326153852e2 100644 --- a/client/galaxy/style/scss/base.scss +++ b/client/galaxy/style/scss/base.scss @@ -1306,6 +1306,13 @@ a.action-button { @extend .btn-sm; } +.btn-default { + // A hopefully temporary alias (as with above) to provide backwards + // compatibility for external stuff using .btn-default, which is now + // .btn-secondary. + @extend .btn-secondary; +} + //.action-button > * { // vertical-align: middle; //} diff --git a/static/style/blue/base.css b/static/style/blue/base.css index 8779d0f5d42..ea27306d17d 100644 --- a/static/style/blue/base.css +++ b/static/style/blue/base.css @@ -1736,45 +1736,47 @@ button.btn-primary { box-shadow: 0 0 0 0.2rem rgba(37, 83, 123, 0.5); } .btn-secondary, input[type="submit"], -button, .action-button, .menubutton { +button, .action-button, .btn-default, .menubutton { color: #212529; background-color: #dee2e6; border-color: #dee2e6; } .btn-secondary:hover, input[type="submit"]:hover, - button:hover, .action-button:hover, .menubutton:hover { + button:hover, .action-button:hover, .btn-default:hover, .menubutton:hover { color: #212529; background-color: #c8cfd6; border-color: #c1c9d0; } .btn-secondary:focus, input[type="submit"]:focus, - button:focus, .action-button:focus, .menubutton:focus, .btn-secondary.focus, input.focus[type="submit"], - button.focus, .focus.action-button, .focus.menubutton { + button:focus, .action-button:focus, .btn-default:focus, .menubutton:focus, .btn-secondary.focus, input.focus[type="submit"], + button.focus, .focus.action-button, .focus.btn-default, .focus.menubutton { box-shadow: 0 0 0 0.2rem rgba(222, 226, 230, 0.5); } .btn-secondary.disabled, input.disabled[type="submit"], - button.disabled, .disabled.action-button, .disabled.menubutton, .btn-secondary:disabled, input[type="submit"]:disabled, - button:disabled, .action-button:disabled, .menubutton:disabled { + button.disabled, .disabled.action-button, .disabled.btn-default, .disabled.menubutton, .btn-secondary:disabled, input[type="submit"]:disabled, + button:disabled, .action-button:disabled, .btn-default:disabled, .menubutton:disabled { color: #212529; background-color: #dee2e6; border-color: #dee2e6; } .btn-secondary:not(:disabled):not(.disabled):active, input[type="submit"]:not(:disabled):not(.disabled):active, - button:not(:disabled):not(.disabled):active, .action-button:not(:disabled):not(.disabled):active, .menubutton:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, input[type="submit"]:not(:disabled):not(.disabled).active, - button:not(:disabled):not(.disabled).active, .action-button:not(:disabled):not(.disabled).active, .menubutton:not(:disabled):not(.disabled).active, + button:not(:disabled):not(.disabled):active, .action-button:not(:disabled):not(.disabled):active, .btn-default:not(:disabled):not(.disabled):active, .menubutton:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, input[type="submit"]:not(:disabled):not(.disabled).active, + button:not(:disabled):not(.disabled).active, .action-button:not(:disabled):not(.disabled).active, .btn-default:not(:disabled):not(.disabled).active, .menubutton:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle, .show > input.dropdown-toggle[type="submit"], .show > button.dropdown-toggle, .show > .dropdown-toggle.action-button, + .show > .dropdown-toggle.btn-default, .show > .dropdown-toggle.menubutton { color: #212529; background-color: #c1c9d0; border-color: #bac2cb; } .btn-secondary:not(:disabled):not(.disabled):active:focus, input[type="submit"]:not(:disabled):not(.disabled):active:focus, - button:not(:disabled):not(.disabled):active:focus, .action-button:not(:disabled):not(.disabled):active:focus, .menubutton:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, input[type="submit"]:not(:disabled):not(.disabled).active:focus, - button:not(:disabled):not(.disabled).active:focus, .action-button:not(:disabled):not(.disabled).active:focus, .menubutton:not(:disabled):not(.disabled).active:focus, + button:not(:disabled):not(.disabled):active:focus, .action-button:not(:disabled):not(.disabled):active:focus, .btn-default:not(:disabled):not(.disabled):active:focus, .menubutton:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, input[type="submit"]:not(:disabled):not(.disabled).active:focus, + button:not(:disabled):not(.disabled).active:focus, .action-button:not(:disabled):not(.disabled).active:focus, .btn-default:not(:disabled):not(.disabled).active:focus, .menubutton:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus, .show > input.dropdown-toggle[type="submit"]:focus, .show > button.dropdown-toggle:focus, .show > .dropdown-toggle.action-button:focus, + .show > .dropdown-toggle.btn-default:focus, .show > .dropdown-toggle.menubutton:focus { box-shadow: 0 0 0 0.2rem rgba(222, 226, 230, 0.5); } @@ -9003,7 +9005,7 @@ button, .action-button, .menubutton { white-space: normal; } .btn-secondary, input[type="submit"], -button, .action-button, .menubutton { +button, .action-button, .btn-default, .menubutton { border: 1px solid #bfbfbf; } .dropdown-menu { From 074ec18490e2fb86c17a506374d78269c29ae03f Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Fri, 25 May 2018 11:55:23 -0400 Subject: [PATCH 03/24] Missed label->badge translations. --- client/galaxy/scripts/mvc/tours.js | 2 +- client/galaxy/style/scss/base.scss | 6 +++--- static/scripts/bundled/libs.bundled.js | 2 +- static/scripts/mvc/tours.js | 2 +- static/style/blue/base.css | 10 +++++----- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/client/galaxy/scripts/mvc/tours.js b/client/galaxy/scripts/mvc/tours.js index 5eb8fedafec..0a91bf080de 100644 --- a/client/galaxy/scripts/mvc/tours.js +++ b/client/galaxy/scripts/mvc/tours.js @@ -47,7 +47,7 @@ const TOURPAGE_TEMPLATE = ` - <%- tour.attributes.description || "No description given." %> <% _.each(tour.attributes.tags, function(tag) { %> - + <%- tag.charAt(0).toUpperCase() + tag.slice(1) %> <% }); %> diff --git a/client/galaxy/style/scss/base.scss b/client/galaxy/style/scss/base.scss index 326153852e2..06241f11c4c 100644 --- a/client/galaxy/style/scss/base.scss +++ b/client/galaxy/style/scss/base.scss @@ -1138,15 +1138,15 @@ div.odd_row { // Tool panel stuff // Extra label colors -.label-beta { +.badge-beta { @extend .badge-warning; } -.label-new { +.badge-new { @extend .badge-info; } -.sm-label-pad { +.sm-badge-pad { margin-right: 2px; } diff --git a/static/scripts/bundled/libs.bundled.js b/static/scripts/bundled/libs.bundled.js index 52a17460191..294109e6d87 100644 --- a/static/scripts/bundled/libs.bundled.js +++ b/static/scripts/bundled/libs.bundled.js @@ -52,7 +52,7 @@ this.get("accessible")||this.set("state",s.default.NOT_VIEWABLE),this.urls=this. * @license MIT | GPL | Apache 2.0, see LICENSE.txt * @see https://github.com/dyve/jquery-autocomplete */ -!function(e){"use strict";e.fn.autocomplete_verheul=function(t){var n;arguments.length>1?(n=t,t=arguments[1],t.url=n):"string"==typeof t&&(n=t,t={url:n});var i=e.extend({},e.fn.autocomplete_verheul.defaults,t);return this.each(function(){var t=e(this);t.data("autocompleter",new e.Autocompleter(t,e.meta?e.extend({},i,t.data()):i))})},e.fn.autocomplete_verheul.defaults={inputClass:"acInput",loadingClass:"acLoading",resultsClass:"acResults",selectClass:"acSelect",queryParamName:"q",extraParams:{},remoteDataType:!1,lineSeparator:"\n",cellSeparator:"|",minChars:2,maxItemsToShow:10,delay:400,useCache:!0,maxCacheLength:10,matchSubset:!0,matchCase:!1,matchInside:!0,mustMatch:!1,selectFirst:!1,selectOnly:!1,showResult:null,preventDefaultReturn:1,preventDefaultTab:0,autoFill:!1,filterResults:!0,filter:!0,sortResults:!0,sortFunction:null,onItemSelect:null,onNoMatch:null,onFinish:null,matchStringConverter:null,beforeUseConverter:null,autoWidth:"min-width",useDelimiter:!1,delimiterChar:",",delimiterKeyCode:188,processData:null,onError:null,enabled:!0};var t=function(t){var n,i,o=typeof t;return"string"===o?(n=t,i={}):e.isArray(t)?(n=t[0],i=t.slice(1)):"object"===o&&(n=t.value,i=t.data),n=String(n),"object"!=typeof i&&(i={}),{value:n,data:i}},n=function(e,t,n){var i=parseInt(e,10);return n=n||{},(isNaN(i)||n.min&&it?1:e").hide().addClass(this.options.resultsClass).css({position:"absolute"}),e("body").append(this.dom.$results),t.keydown(function(e){switch(o.lastKeyPressed_=e.keyCode,o.lastKeyPressed_){case o.options.delimiterKeyCode:o.options.useDelimiter&&o.active_&&o.selectCurrent();break;case 35:case 36:case 16:case 17:case 18:case 37:case 39:break;case 38:return e.preventDefault(),o.active_?o.focusPrev():o.activate(),!1;case 40:return e.preventDefault(),o.active_?o.focusNext():o.activate(),!1;case 9:if(o.active_&&(o.selectCurrent(),o.options.preventDefaultTab))return e.preventDefault(),!1;if(2===o.options.preventDefaultTab)return e.preventDefault(),!1;break;case 13:if(o.active_&&(o.selectCurrent(),o.options.preventDefaultReturn))return e.preventDefault(),!1;if(2===o.options.preventDefaultReturn)return e.preventDefault(),!1;break;case 27:if(o.active_)return e.preventDefault(),o.deactivate(!0),!1;break;default:o.activate()}}),t.on("paste",function(){o.activate()});var r=function(){o.deactivate(!0)};t.blur(function(){o.finishOnBlur_&&(o.finishTimeout_=setTimeout(r,200))}),t.parents("form").on("submit",r)},e.Autocompleter.prototype.position=function(){var t=this.dom.$elem.offset(),n=this.dom.$results.outerHeight(),i=e(window).outerHeight(),o=t.top+this.dom.$elem.outerHeight(),r=o+n,a={top:o,left:t.left};if(r>i){var s=t.top-n;s>=0&&(a.top=s)}this.dom.$results.css(a)},e.Autocompleter.prototype.cacheRead=function(e){var t,n,i,o,r;if(this.options.useCache)for(e=String(e),t=e.length,n=this.options.matchSubset?1:t;n<=t;){for(o=this.options.matchInside?t-n:0,r=0;r<=o;){if(i=e.substr(0,n),void 0!==this.cacheData_[i])return this.cacheData_[i];r++}n++}return!1},e.Autocompleter.prototype.cacheWrite=function(e,t){return!!this.options.useCache&&(this.cacheLength_>=this.options.maxCacheLength&&this.cacheFlush(),e=String(e),void 0!==this.cacheData_[e]&&this.cacheLength_++,this.cacheData_[e]=t,this.cacheData_[e])},e.Autocompleter.prototype.cacheFlush=function(){this.cacheData_={},this.cacheLength_=0},e.Autocompleter.prototype.callHook=function(t,n){var i=this.options[t];return!(!i||!e.isFunction(i))&&i(n,this)},e.Autocompleter.prototype.activate=function(){if(this.options.enabled){var e=this;this.keyTimeout_&&clearTimeout(this.keyTimeout_),this.keyTimeout_=setTimeout(function(){e.activateNow()},this.options.delay)}},e.Autocompleter.prototype.activateNow=function(){var e=this.beforeUseConverter(this.dom.$elem.val());e!==this.lastProcessedValue_&&e!==this.lastSelectedValue_&&this.fetchData(e)},e.Autocompleter.prototype.fetchData=function(e){var t=this,n=function(e,n){t.options.processData&&(e=t.options.processData(e)),t.showResults(t.filterResults(e,n),n)};this.lastProcessedValue_=e,e.length-1:0===o}return!0},e.Autocompleter.prototype.filterResult=function(t,n){return!1===this.options.filter||(e.isFunction(this.options.filter)?this.options.filter(t,n):this.defaultFilter(t,n))},e.Autocompleter.prototype.filterResults=function(e,n){var i,o,r=[];for(i=0;i0&&this.options.maxItemsToShow");return i.html(this.showResult(t.value,t.data)),i.data({value:t.value,data:t.data}).click(function(){n.selectItem(i)}).mousedown(n.disableFinishOnBlur).mouseup(n.enableFinishOnBlur),i},e.Autocompleter.prototype.getItems=function(){return e(">ul>li",this.dom.$results)},e.Autocompleter.prototype.showResults=function(t,n){var i,o,r,a,s=t.length,l=this,u=e("
    "),c=!1,d=!1;if(s){for(i=0;i

    ").text(t).html()},e.Autocompleter.prototype.autoFill=function(e,t){var n,i,o,r;if(this.options.autoFill&&8!==this.lastKeyPressed_&&(n=String(e).toLowerCase(),i=String(t).toLowerCase(),o=e.length,r=t.length,n.substr(0,r)===i)){var a=this.getDelimiterOffsets(),s=a.start?" ":"";this.setValue(s+e);var l=r+a.start+s.length,u=o+a.start+s.length;return this.selectRange(l,u),!0}return!1},e.Autocompleter.prototype.focusNext=function(){this.focusMove(1)},e.Autocompleter.prototype.focusPrev=function(){this.focusMove(-1)},e.Autocompleter.prototype.focusMove=function(t){var i=this.getItems();if(t=n(t,0))for(var o=0;o=i.length&&(t=i.length-1),n=e(i[t])):n=e(t),n&&n.addClass(this.selectClass_).addClass(this.options.selectClass))},e.Autocompleter.prototype.selectCurrent=function(){var t=e("li."+this.selectClass_,this.dom.$results);1===t.length?this.selectItem(t):this.deactivate(!1)},e.Autocompleter.prototype.selectItem=function(e){var t=e.data("value"),n=e.data("data"),i=this.displayValue(t,n),o=this.beforeUseConverter(i);this.lastProcessedValue_=o,this.lastSelectedValue_=o;var r=this.getDelimiterOffsets(),a=this.options.delimiterChar,s=this.dom.$elem,l=0;this.options.useDelimiter&&(s.val().substring(r.start-1,r.start)==a&&" "!=a&&(i=" "+i),s.val().substring(r.end,r.end+1)!=a&&this.lastKeyPressed_!=this.options.delimiterKeyCode?i+=a:l=1),this.setValue(i),this.setCaret(r.start+i.length+l),this.callHook("onItemSelect",{value:t,data:n}),this.deactivate(!0),s.focus()},e.Autocompleter.prototype.displayValue=function(t,n){return e.isFunction(this.options.displayValue)?this.options.displayValue(t,n):t},e.Autocompleter.prototype.hideResults=function(){this.dom.$results.hide()},e.Autocompleter.prototype.deactivate=function(e){this.finishTimeout_&&clearTimeout(this.finishTimeout_),this.keyTimeout_&&clearTimeout(this.keyTimeout_),e&&(this.lastProcessedValue_!==this.lastSelectedValue_&&(this.options.mustMatch&&this.setValue(""),this.callHook("onNoMatch")),this.active_&&this.callHook("onFinish"),this.lastKeyPressed_=null,this.lastProcessedValue_=null,this.lastSelectedValue_=null,this.active_=!1),this.hideResults()},e.Autocompleter.prototype.selectRange=function(e,t){var n=this.dom.$elem.get(0);if(n.setSelectionRange)n.focus(),n.setSelectionRange(e,t);else if(n.createTextRange){var i=n.createTextRange();i.collapse(!0),i.moveEnd("character",t),i.moveStart("character",e),i.select()}},e.Autocompleter.prototype.setCaret=function(e){this.selectRange(e,e)},e.Autocompleter.prototype.getCaret=function(){var e,t,n,i,o,r,a=this.dom.$elem,s=a[0];return s.createTextRange?(t=document.selection,"textarea"!=s.tagName.toLowerCase()?(e=a.val(),n=t.createRange().duplicate(),n.moveEnd("character",e.length),i=""===n.text?e.length:e.lastIndexOf(n.text),n=t.createRange().duplicate(),n.moveStart("character",-e.length),o=n.text.length):(n=t.createRange(),r=n.duplicate(),r.moveToElementText(s),r.setEndPoint("EndToEnd",n),i=r.text.length-n.text.length,o=i+n.text.length)):(i=a[0].selectionStart,o=a[0].selectionEnd),{start:i,end:o}},e.Autocompleter.prototype.setValue=function(e){if(this.options.useDelimiter){var t=this.dom.$elem.val(),n=this.getDelimiterOffsets();e=t.substring(0,n.start)+e+t.substring(n.end)}this.dom.$elem.val(e)},e.Autocompleter.prototype.getValue=function(e){if(this.options.useDelimiter){var t=this.getDelimiterOffsets();return e.substring(t.start,t.end).trim()}return e},e.Autocompleter.prototype.getDelimiterOffsets=function(){var e=this.dom.$elem.val();if(this.options.useDelimiter){var t=e.substring(0,this.getCaret().start),n=t.lastIndexOf(this.options.delimiterChar)+1,i=e.substring(this.getCaret().start),o=i.indexOf(this.options.delimiterChar);-1==o&&(o=e.length),o+=this.getCaret().start}else n=0,o=e.length;return{start:n,end:o}}}(e)}).call(t,n(0))},function(e,t,n){(function(e){!function(){function t(){var e="{}";if("userDataBehavior"==T){w.load("jStorage");try{e=w.getAttribute("jStorage")}catch(e){}try{M=w.getAttribute("jStorage_update")}catch(e){}b.jStorage=e}s(),c(),d()}function n(){"localStorage"==T||"globalStorage"==T?"addEventListener"in window?window.addEventListener("storage",i,!1):document.attachEvent("onstorage",i):"userDataBehavior"==T&&setInterval(i,1e3)}function i(){var e;clearTimeout(k),k=setTimeout(function(){if("localStorage"==T||"globalStorage"==T)e=b.jStorage_update;else if("userDataBehavior"==T){w.load("jStorage");try{e=w.getAttribute("jStorage_update")}catch(e){}}e&&e!=M&&(M=e,o())},25)}function o(){var e,n=v.parse(v.stringify(_.__jstorage_meta.CRC32));t(),e=v.parse(v.stringify(_.__jstorage_meta.CRC32));var i,o=[],a=[];for(i in n)if(n.hasOwnProperty(i)){if(!e[i]){a.push(i);continue}n[i]!=e[i]&&"2."==String(n[i]).substr(0,2)&&o.push(i)}for(i in e)e.hasOwnProperty(i)&&(n[i]||o.push(i));r(o,"updated"),r(a,"deleted")}function r(e,t){if(e=[].concat(e||[]),"flushed"==t){e=[];for(var n in S)S.hasOwnProperty(n)&&e.push(n);t="deleted"}for(var i=0,o=e.length;i=0;e--)t=_.__jstorage_meta.PubSub[e],t[0]>x&&(n=t[0],h(t[1],t[2]));x=n}}function h(e,t){if(E[e])for(var n=0,i=E[e].length;n=4;)n=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24,n=1540483477*(65535&n)+((1540483477*(n>>>16)&65535)<<16),n^=n>>>24,n=1540483477*(65535&n)+((1540483477*(n>>>16)&65535)<<16),o=1540483477*(65535&o)+((1540483477*(o>>>16)&65535)<<16)^n,i-=4,++r;switch(i){case 3:o^=(255&e.charCodeAt(r+2))<<16;case 2:o^=(255&e.charCodeAt(r+1))<<8;case 1:o^=255&e.charCodeAt(r),o=1540483477*(65535&o)+((1540483477*(o>>>16)&65535)<<16)}return o^=o>>>13,o=1540483477*(65535&o)+((1540483477*(o>>>16)&65535)<<16),(o^=o>>>15)>>>0}var g=e||window.$||(window.$={}),v={parse:window.JSON&&(window.JSON.parse||window.JSON.decode)||String.prototype.evalJSON&&function(e){return String(e).evalJSON()}||g.parseJSON||g.evalJSON,stringify:Object.toJSON||window.JSON&&(window.JSON.stringify||window.JSON.encode)||g.toJSON};if(!("parse"in v&&"stringify"in v))throw new Error("No JSON support found, include //cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js to page");var y,_={__jstorage_meta:{CRC32:{}}},b={jStorage:"{}"},w=null,C=0,T=!1,S={},k=!1,M=0,E={},x=+new Date,O={isXML:function(e){var t=(e?e.ownerDocument||e:0).documentElement;return!!t&&"HTML"!==t.nodeName},encode:function(e){if(!this.isXML(e))return!1;try{return(new XMLSerializer).serializeToString(e)}catch(t){try{return e.xml}catch(e){}}return!1},decode:function(e){var t,n="DOMParser"in window&&(new DOMParser).parseFromString||window.ActiveXObject&&function(e){var t=new ActiveXObject("Microsoft.XMLDOM");return t.async="false",t.loadXML(e),t};return!!n&&(t=n.call("DOMParser"in window&&new DOMParser||window,e,"text/xml"),!!this.isXML(t)&&t)}};g.jStorage={version:"0.4.4",set:function(e,t,n){if(u(e),n=n||{},void 0===t)return this.deleteKey(e),t;if(O.isXML(t))t={_is_xml:!0,xml:O.encode(t)};else{if("function"==typeof t)return;t&&"object"==typeof t&&(t=v.parse(v.stringify(t)))}return _[e]=t,_.__jstorage_meta.CRC32[e]="2."+m(v.stringify(t),2538058380),this.setTTL(e,n.TTL||0),r(e,"updated"),t},get:function(e,t){return u(e),e in _?_[e]&&"object"==typeof _[e]&&_[e]._is_xml?O.decode(_[e].xml):_[e]:void 0===t?null:t},deleteKey:function(e){return u(e),e in _&&(delete _[e],"object"==typeof _.__jstorage_meta.TTL&&e in _.__jstorage_meta.TTL&&delete _.__jstorage_meta.TTL[e],delete _.__jstorage_meta.CRC32[e],l(),a(),r(e,"deleted"),!0)},setTTL:function(e,t){var n=+new Date;return u(e),t=Number(t)||0,e in _&&(_.__jstorage_meta.TTL||(_.__jstorage_meta.TTL={}),t>0?_.__jstorage_meta.TTL[e]=n+t:delete _.__jstorage_meta.TTL[e],l(),c(),a(),!0)},getTTL:function(e){var t=+new Date;return u(e),e in _&&_.__jstorage_meta.TTL&&_.__jstorage_meta.TTL[e]?_.__jstorage_meta.TTL[e]-t||0:0},flush:function(){return _={__jstorage_meta:{CRC32:{}}},l(),a(),r(null,"flushed"),!0},storageObj:function(){function e(){}return e.prototype=_,new e},index:function(){var e,t=[];for(e in _)_.hasOwnProperty(e)&&"__jstorage_meta"!=e&&t.push(e);return t},storageSize:function(){return C},currentBackend:function(){return T},storageAvailable:function(){return!!T},listenKeyChange:function(e,t){u(e),S[e]||(S[e]=[]),S[e].push(t)},stopListening:function(e,t){if(u(e),S[e]){if(!t)return void delete S[e];for(var n=S[e].length-1;n>=0;n--)S[e][n]==t&&S[e].splice(n,1)}},subscribe:function(e,t){if(!(e=(e||"").toString()))throw new TypeError("Channel not defined");E[e]||(E[e]=[]),E[e].push(t)},publish:function(e,t){if(!(e=(e||"").toString()))throw new TypeError("Channel not defined");p(e,t)},reInit:function(){t()}},function(){var e=!1;if("localStorage"in window)try{window.localStorage.setItem("_tmptest","tmpval"),e=!0,window.localStorage.removeItem("_tmptest")}catch(e){}if(e)try{window.localStorage&&(b=window.localStorage,T="localStorage",M=b.jStorage_update)}catch(e){}else if("globalStorage"in window)try{window.globalStorage&&(b="localhost"==window.location.hostname?window.globalStorage["localhost.localdomain"]:window.globalStorage[window.location.hostname],T="globalStorage",M=b.jStorage_update)}catch(e){}else{if(w=document.createElement("link"),!w.addBehavior)return void(w=null);w.style.behavior="url(#default#userData)",document.getElementsByTagName("head")[0].appendChild(w);try{w.load("jStorage")}catch(e){w.setAttribute("jStorage","{}"),w.save("jStorage"),w.load("jStorage")}var t="{}";try{t=w.getAttribute("jStorage")}catch(e){}try{M=w.getAttribute("jStorage_update")}catch(e){}b.jStorage=t,T="userDataBehavior"}s(),c(),n(),d(),"addEventListener"in window&&window.addEventListener("pageshow",function(e){e.persisted&&i()},!1)}()}()}).call(t,n(0))},function(e,t,n){"use strict";(function(e){function i(e,t){a(e).find(".tag-name").each(function(){a(this).click(function(){var e=a(this).text(),n=e.split(":");return t(n[0],n[1]),!0})})}Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),r=function(e){return e&&e.__esModule?e:{default:e}}(o),a=r.default;r.default.fn.autocomplete_tagging=function(t){function n(e){a(e).mouseenter(function(){a(this).attr("src",l.delete_tag_img_rollover)}),a(e).mouseleave(function(){a(this).attr("src",l.delete_tag_img)}),a(e).click(function(){var t=a(this).parent(),n=t.find(".tag-name").eq(0),i=n.text(),o=i.split(":"),r=o[0],s=o[1],u=t.prev();t.remove(),delete l.tags[r];var h=l.get_toggle_link_text_fn(l.tags);return d.text(h),a.ajax({url:l.ajax_delete_tag_url,data:{tag_name:r},error:function(){l.tags[r]=s,u.hasClass("tag-button")?u.after(t):c.prepend(t),alert("Remove tag failed"),d.text(l.get_toggle_link_text_fn(l.tags)),e.mouseenter(function(){a(this).attr("src",l.delete_tag_img_rollover)}),e.mouseleave(function(){a(this).attr("src",l.delete_tag_img)})},success:function(){}}),!0})}function o(e){var t=a("").attr("src",l.delete_tag_img).addClass("delete-tag-img");n(t);var i=a("").text(e).addClass("tag-name");i.click(function(){var t=e.split(":");return l.tag_click_fn(t[0],t[1]),!0});var o=a("").addClass("tag-button");return o.append(i),l.editable&&o.append(t),o}var s={get_toggle_link_text_fn:function(t){var n=e.size(t);return n>0?n+(n>1?" Tags":" Tag"):"Add tags"},tag_click_fn:function(e,t){},editable:!0,input_size:20,in_form:!1,tags:{},use_toggle_link:!0,item_id:"",add_tag_img:"",add_tag_img_rollover:"",delete_tag_img:"",ajax_autocomplete_tag_url:"",ajax_retag_url:"",ajax_delete_tag_url:"",ajax_add_tag_url:""},l=r.default.extend(s,t),u=a(this),c=u.find(".tag-area"),d=u.find(".toggle-link"),h=u.find(".tag-input"),f=u.find(".add-tag-button");d.click(function(){var e;return e=c.is(":hidden")?function(){0===a(this).find(".tag-button").length&&c.click()}:function(){c.blur()},c.slideToggle("fast",e),a(this)}),l.editable&&h.hide(),h.keyup(function(e){if(27===e.keyCode)a(this).trigger("blur");else if(13===e.keyCode||188===e.keyCode||32===e.keyCode){var t=this.value;if(-1!==t.indexOf(": ",t.length-2))return this.value=t.substring(0,t.length-1),!1;if(188!==e.keyCode&&32!==e.keyCode||(t=t.substring(0,t.length-1)),t=a.trim(t),t.length<2)return!1;this.value="";var n=o(t),i=c.children(".tag-button");if(0!==i.length){var r=i.slice(i.length-1);r.after(n)}else c.prepend(n);var s=t.split(":");l.tags[s[0]]=s[1];var u=l.get_toggle_link_text_fn(l.tags);d.text(u);var h=a(this);return a.ajax({url:l.ajax_add_tag_url,data:{new_tag:t},error:function(){n.remove(),delete l.tags[s[0]];var e=l.get_toggle_link_text_fn(l.tags);d.text(e),alert("Add tag failed")},success:function(){h.data("autocompleter").cacheFlush()}}),!1}});var p=function(e,t,n,i,o){var r=i.split(":");return 1===r.length?r[0]:r[1]},m={selectFirst:!1,formatItem:p,autoFill:!1,highlight:!1};h.autocomplete_verheul(l.ajax_autocomplete_tag_url,m),u.find(".delete-tag-img").each(function(){n(a(this))}),i(a(this),l.tag_click_fn),f.click(function(){return a(this).hide(),c.click(),!1}),l.editable&&(c.bind("blur",function(t){e.size(l.tags)>0&&(f.show(),h.hide(),c.removeClass("active-tag-area"))}),c.click(function(e){var t=a(this).hasClass("active-tag-area");if(a(e.target).hasClass("delete-tag-img")&&!t)return!1;if(a(e.target).hasClass("tag-name")&&!t)return!1;a(this).addClass("active-tag-area"),f.hide(),h.show(),h.focus();var n=function(e){!function(e,t){e.attr("id");t!==e&&(e.blur(),a(window).unbind("click.tagging_blur"),a(this).addClass("tooltip"))}(c,a(e.target))};return a(window).bind("click.tagging_blur",n),!1})),l.use_toggle_link&&c.hide()},t.default=i}).call(t,n(1))},function(e,t,n){"use strict";function i(){d.hide()}function o(e,t,n,i,o){d.setContent({title:e,body:t,buttons:n,extra_buttons:i}),d.show({backdrop:!0},o)}function r(e,t,n,i,o){d.setContent({title:e,body:t,buttons:n,extra_buttons:i}),d.show({backdrop:!1},o)}function a(e){var t=e.width||"600",n=e.height||"400",o=e.scroll||"auto";u("#overlay-background").bind("click.overlay",function(){i(),u("#overlay-background").unbind("click.overlay")}),d.setContent({closeButton:!0,title:" ",body:u("
    ")}),d.show({backdrop:!0})}Object.defineProperty(t,"__esModule",{value:!0});var s=n(0),l=function(e){return e&&e.__esModule?e:{default:e}}(s),u=l.default,c=function(e){this.$overlay=e.overlay,this.$dialog=e.dialog,this.$header=this.$dialog.find(".modal-header"),this.$body=this.$dialog.find(".modal-body"),this.$footer=this.$dialog.find(".modal-footer"),this.$backdrop=e.backdrop,this.$header.find(".close").on("click",u.proxy(this.hide,this))};u.extend(c.prototype,{setContent:function(e){this.$header.hide(),e.title&&(this.$header.find(".title").html(e.title),this.$header.show()),e.closeButton?(this.$header.find(".close").show(),this.$header.show()):this.$header.find(".close").hide(),this.$footer.hide();var t=this.$footer.find(".buttons").html("");e.buttons&&(u.each(e.buttons,function(e,n){t.append(u(" ").text(e).click(n)).append(" ")}),this.$footer.show());var n=this.$footer.find(".extra_buttons").html("");e.extra_buttons&&(u.each(e.extra_buttons,function(e,t){n.append(u("").text(e).click(t)).append(" ")}),this.$footer.show());var i=e.body;"progress"==i&&(i=u("
    ")),this.$body.html(i)},show:function(e,t){this.$dialog.is(":visible")||(e.backdrop?this.$backdrop.addClass("in"):this.$backdrop.removeClass("in"),this.$overlay.show(),this.$dialog.show(),this.$overlay.addClass("in"),this.$body.css("min-width",this.$body.width()),this.$body.css("max-height",u(window).height()-this.$footer.outerHeight()-this.$header.outerHeight()-parseInt(this.$dialog.css("padding-top"),10)-parseInt(this.$dialog.css("padding-bottom"),10))),t&&t()},hide:function(){var e=this;e.$dialog.fadeOut(function(){e.$overlay.hide(),e.$backdrop.removeClass("in"),e.$body.children().remove(),e.$body.css("min-width",void 0)})}});var d;u(function(){d=new c({overlay:u("#top-modal"),dialog:u("#top-modal-dialog"),backdrop:u("#top-modal-backdrop")})}),t.default={Modal:c,hide_modal:i,show_modal:o,show_message:r,show_in_overlay:a}},function(e,t,n){"use strict";function i(e,t,n,i,o,r,s,l,u){void 0===o&&(o=30),void 0===s&&(s=4),a("#"+e).click(function(){if(!(a("#renaming-active").length>0)){var e,c=a("#"+t),d=c.text();e=r?a("").attr({rows:s,cols:o}).text(a.trim(d)):a("").attr({value:a.trim(d),size:o}),e.attr("id","renaming-active"),e.blur(function(){a(this).remove(),c.show(),u&&u(e)}),e.keyup(function(o){if(27===o.keyCode)a(this).trigger("blur");else if(13===o.keyCode){var r={};r[i]=a(this).val(),a(this).trigger("blur"),a.ajax({url:n,data:r,error:function(){alert("Text editing for elt "+t+" failed")},success:function(t){""!==t?c.text(t):c.html("None"),u&&u(e)}})}}),l&&l(e),c.hide(),e.insertAfter(c),e.focus(),e.select()}})}Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),r=function(e){return e&&e.__esModule?e:{default:e}}(o),a=r.default;t.default=i},function(e,t,n){"use strict";(function(e){function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function o(e){var t=g(e);window.sessionStorage.setItem("activeGalaxyTour",JSON.stringify(e));var n=new f(h.extend({steps:t.steps},m));return n.init(),n.goTo(0),n.restart(),n}function r(t){var n=p+"api/tours/"+t;e.getJSON(n,function(e){o(e)})}function a(){var e=JSON.parse(window.sessionStorage.getItem("activeGalaxyTour"));if(e&&(e=g(e))&&e.steps&&window&&window.self===window.top){var t=new f(h.extend({steps:e.steps},m));t.init(),t.restart()}}Object.defineProperty(t,"__esModule",{value:!0}),t.ToursView=void 0,t.giveTourWithData=o,t.giveTourById=r,t.activeGalaxyTourRunner=a;var s=n(3),l=function(e){return e&&e.__esModule?e:{default:e}}(s),u=n(2),c=i(u),d=n(1),h=i(d);n(424);var f=window.Tour,p="undefined"==typeof Galaxy?"/":Galaxy.root,m={storage:window.sessionStorage,onEnd:function(){window.sessionStorage.removeItem("activeGalaxyTour")},delay:150,orphan:!0},g=function(t){return h.each(t.steps,function(t){t.preclick&&(t.onShow=function(){h.each(t.preclick,function(t){e(t).click()})}),t.postclick&&(t.onHide=function(){h.each(t.postclick,function(t){e(t).click()})}),t.textinsert&&(t.onShown=function(){e(t.element).val(t.textinsert).trigger("change")}),t.path&&(console.warn("This Galaxy Tour is attempting to use path navigation. This is known to be unstable and can possibly get the Galaxy client 'stuck' in a tour, and at this time is not allowed."),delete t.path)}),t},v=c.Model.extend({urlRoot:p+"api/tours"}),y=c.Collection.extend({url:p+"api/tours",model:v}),_=t.ToursView=c.View.extend({title:(0,l.default)("Tours"),initialize:function(){var e=this;this.setElement("
    "),this.model=new y,this.model.fetch({success:function(){e.render()},error:function(){console.error("Failed to fetch tours.")}})},render:function(){var t=h.template('\n

    Galaxy Tours

    \n

    This page presents a list of interactive tours available on this Galaxy server.\n Select any tour to get started (and remember, you can click \'End Tour\' at any time).

    \n\n
    \n
    \n <% _.each(tourtagorder, function(tag) { %>\n \n <% }); %>\n
    \n
    \n\n<% _.each(tourtagorder, function(tourtagkey) { %>\n
    \n
    \n <% var tourtag = tourtags[tourtagkey]; %>\n

    \n <%- tourtag.name %>\n

    \n
      \n <% _.each(tourtag.tours, function(tour) { %>\n
    • \n >\n <%- tour.attributes.name || tour.id %>\n \n - <%- tour.attributes.description || "No description given." %>\n <% _.each(tour.attributes.tags, function(tag) { %>\n \n <%- tag.charAt(0).toUpperCase() + tag.slice(1) %>\n \n <% }); %>\n
    • \n <% }); %>\n
    \n
    \n
    \n<% }); %>'),n={};h.each(this.model.models,function(e){null===e.attributes.tags?(void 0===n.Untagged&&(n.Untagged={name:"Untagged",tours:[]}),n.Untagged.tours.push(e)):h.each(e.attributes.tags,function(t){t=t.charAt(0).toUpperCase()+t.slice(1),void 0===n[t]&&(n[t]={name:t,tours:[]}),n[t].tours.push(e)})});var i=Object.keys(n).sort();this.$el.html(t({tours:this.model.models,tourtags:n,tourtagorder:i})).on("click",".tourItem",function(t){t.preventDefault(),r(e(this).data("tour.id"))}).on("click",".tag-selector-button",function(t){var n=e(t.target),i="block",o=n.attr("tag-selector-button");n.toggleClass("btn-primary"),n.toggleClass("btn-secondary"),n.hasClass("btn-secondary")&&(i="none"),e("div[tag='"+o+"']").css({display:i})})}});t.default={ToursView:_,giveTourWithData:o,giveTourById:r,activeGalaxyTourRunner:a}}).call(t,n(0))},function(e,t,n){"use strict";(function(e,i,o){function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(5),s=r(a),l=n(194),u=r(l),c=e.View.extend({initialize:function(t){var n=this;this.data=[],this.data2=[],this.model=t&&t.model||new e.Model({id:s.default.uid(),cls:"ui-select",error_text:"No options available",empty_text:"Nothing selected",visible:!0,wait:!1,multiple:!1,searchable:!0,optional:!1,disabled:!1,readonly:!1,onchange:function(){},value:null,individual:!1,pagesize:20}).set(t),this.on("change",function(){n.model.get("onchange")&&n.model.get("onchange")(n.value())}),this.listenTo(this.model,"change:data",this._changeData,this),this.listenTo(this.model,"change:disabled",this._changeDisabled,this),this.listenTo(this.model,"change:wait",this._changeWait,this),this.listenTo(this.model,"change:visible",this._changeVisible,this),this.listenTo(this.model,"change:value",this._changeValue,this),this.listenTo(this.model,"change:multiple change:searchable change:cls change:id",this.render,this),this.render()},render:function(){var e=this;this.model.get("searchable")?this._renderSearchable():this._renderClassic(),this.$el.addClass(this.model.get("cls")).attr("id",this.model.get("id")),this.$select.empty().addClass("select").attr("id",this.model.get("id")+"_select").prop("multiple",this.model.get("multiple")).on("change",function(){e.value(e._getValue()),e.trigger("change")}),this._changeData(),this._changeWait(),this._changeVisible(),this._changeDisabled()},_renderClassic:function(){var e=this;this.$el.addClass(this.model.get("multiple")?"ui-select-multiple":"ui-select").append(this.$select=i("").attr({id:n,type:this.model.get("type"),name:this.model.id,value:t.value})).append(e("