From 0203a69d88c854c1fe3a210c83ff3ee0d943f4df Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Thu, 19 Nov 2015 20:21:41 -0500 Subject: [PATCH] Tours. --- client/bower.json | 1 + client/galaxy/scripts/apps/analysis.js | 32 +- client/galaxy/scripts/layout/menu.js | 40 +- client/galaxy/scripts/libs/bootstrap-tour.js | 802 ++++++++++++++++++ .../scripts/mvc/tool/tool-form-composite.js | 2 +- client/galaxy/scripts/mvc/tours.js | 62 ++ .../scripts/mvc/upload/upload-button.js | 2 +- .../less/galaxy_bootstrap/variables.less | 2 +- client/grunt-tasks/install-libs.js | 3 +- config/galaxy.ini.sample | 4 + lib/galaxy/app.py | 3 + lib/galaxy/config.py | 2 + lib/galaxy/tours/__init__.py | 59 ++ lib/galaxy/webapps/galaxy/api/tours.py | 34 + lib/galaxy/webapps/galaxy/buildapp.py | 16 + static/maps/galaxy.menu.js.map | 1 + static/maps/layout/menu.js.map | 2 +- static/maps/libs/bootstrap-tour.js.map | 1 + static/maps/mvc/tours.js.map | 1 + static/maps/mvc/upload/upload-button.js.map | 2 +- static/scripts/bundled/analysis.bundled.js | 17 +- .../scripts/bundled/analysis.bundled.js.map | 2 +- static/scripts/bundled/libs.bundled.js | 32 +- static/scripts/bundled/libs.bundled.js.map | 2 +- static/scripts/galaxy.menu.js | 2 + static/scripts/layout/menu.js | 2 +- static/scripts/libs/bootstrap-tour.js | 2 + static/scripts/mvc/tours.js | 2 + static/scripts/mvc/upload/upload-button.js | 2 +- static/style/blue/base.css | 2 +- static/style/blue/bootstrap-tour.css | 728 ++++++++++++++++ templates/base.mako | 2 + templates/base/base_panels.mako | 2 +- 33 files changed, 1820 insertions(+), 48 deletions(-) create mode 100644 client/galaxy/scripts/libs/bootstrap-tour.js create mode 100644 client/galaxy/scripts/mvc/tours.js create mode 100644 lib/galaxy/tours/__init__.py create mode 100644 lib/galaxy/webapps/galaxy/api/tours.py create mode 100644 static/maps/galaxy.menu.js.map create mode 100644 static/maps/libs/bootstrap-tour.js.map create mode 100644 static/maps/mvc/tours.js.map create mode 100644 static/scripts/galaxy.menu.js create mode 100644 static/scripts/libs/bootstrap-tour.js create mode 100644 static/scripts/mvc/tours.js create mode 100755 static/style/blue/bootstrap-tour.css diff --git a/client/bower.json b/client/bower.json index 67262e323ab..28c80b4bb62 100644 --- a/client/bower.json +++ b/client/bower.json @@ -14,6 +14,7 @@ "underscore": "~1.7.0", "backbone": "~1.1.2", "bootstrap": "~3.3.2", + "bootstrap-tour":"~0.10.2", "d3": "~3.5.3", "farbtastic": "~2.0.0-alpha.1", "toastr": "~2.1.0", diff --git a/client/galaxy/scripts/apps/analysis.js b/client/galaxy/scripts/apps/analysis.js index 5195fc73afc..c32ea42f0dd 100644 --- a/client/galaxy/scripts/apps/analysis.js +++ b/client/galaxy/scripts/apps/analysis.js @@ -7,7 +7,8 @@ var jQuery = require( 'jquery' ), ToolPanel = require( './tool-panel' ), HistoryPanel = require( './history-panel' ), PAGE = require( 'layout/page' ), - ToolForm = require( 'mvc/tool/tool-form' ); + ToolForm = require( 'mvc/tool/tool-form' ), + Tours = require('libs/bootstrap-tour'); /** define the 'Analyze Data'/analysis/main/home page for Galaxy * * has a masthead @@ -75,6 +76,35 @@ window.app = function app( options, bootstrapped ){ $( '.select2-hidden-accessible' ).remove(); centerPanel.display( view ); }, + // DBTODO: THIS SHOULD PROBABLY NOT BE HERE -- but where? + giveTour: function(tour_id){ + var url = Galaxy.root + 'api/tours/' + tour_id; + $.getJSON( url, function( data ) { + // Set hooks for additional click and data entry actions. + _.each(data.steps, function(step) { + if (step.preclick){ + step.onShow= function(){$(step.preclick).click()}; + } + if (step.postclick){ + step.onHide = function(){$(step.postclick).click()}; + } + if (step.textinsert){ + step.onShown= function(){$(step.element).text(step.textinsert)}; + } + }); + // Store tour steps in sessionStorage to easily persist w/o hackery. + sessionStorage.setItem('activeGalaxyTour', data); + var tour = new Tour({ + orphan: true, + debug: true, // REMOVE ME WHEN DONE DEBUGGING + steps: data.steps + }); + // Always clean restart, since this is a new, explicit giveTour execution. + tour.init(); + tour.goTo(0); + tour.restart(); + }); + }, }; // .................................................... routes diff --git a/client/galaxy/scripts/layout/menu.js b/client/galaxy/scripts/layout/menu.js index d19b259fbe7..fe57e1ff0aa 100644 --- a/client/galaxy/scripts/layout/menu.js +++ b/client/galaxy/scripts/layout/menu.js @@ -1,5 +1,5 @@ // dependencies -define([], function() { +define(['mvc/tours'], function( Tours ) { /** GalaxyMenu uses the GalaxyMasthead class in order to add menu items and icons to the Masthead **/ var GalaxyMenu = Backbone.Model.extend({ @@ -81,6 +81,7 @@ var GalaxyMenu = Backbone.Model.extend({ content : 'page/list_published' }); + this.masthead.append(tab_shared); // @@ -209,6 +210,13 @@ var GalaxyMenu = Backbone.Model.extend({ target : '_blank' }); } + tab_help.add({ + title : 'Interactive Tours', + onclick : function(c){ + Galaxy.app.display(new Tours.ToursView()); + }, + target : 'galaxy_main' + }); this.masthead.append( tab_help ); // @@ -388,7 +396,8 @@ var GalaxyMastheadTab = Backbone.View.extend({ type : 'url', target : '_parent', scratchbook : false, - divider : false + divider : false, + onclick : undefined } // read in defaults @@ -419,17 +428,26 @@ var GalaxyMastheadTab = Backbone.View.extend({ // add events var self = this; - $item.on('click', function(e){ - // prevent default - e.preventDefault(); - // no modifications if new tab is requested - if (self.options.target === '_blank') - return true; - // load into frame - Galaxy.frame.add(options); - }); + if (menuOptions.onclick !== undefined){ + $item.on('click', function(e){ + e.preventDefault(); + menuOptions.onclick(); + }); + } else { + $item.on('click', function(e){ + // prevent default + e.preventDefault(); + + // no modifications if new tab is requested + if (self.options.target === '_blank') + return true; + + // load into frame + Galaxy.frame.add(options); + }); + } // append divider if (menuOptions.divider) diff --git a/client/galaxy/scripts/libs/bootstrap-tour.js b/client/galaxy/scripts/libs/bootstrap-tour.js new file mode 100644 index 00000000000..1874061e8cd --- /dev/null +++ b/client/galaxy/scripts/libs/bootstrap-tour.js @@ -0,0 +1,802 @@ +/* ======================================================================== + * bootstrap-tour - v0.10.1 + * http://bootstraptour.com + * ======================================================================== + * Copyright 2012-2013 Ulrich Sossou + * + * ======================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ======================================================================== + */ + +(function($, window) { + var Tour, document; + document = window.document; + Tour = (function() { + function Tour(options) { + var storage; + try { + storage = window.localStorage; + } catch (_error) { + storage = false; + } + this._options = $.extend({ + name: 'tour', + steps: [], + container: 'body', + autoscroll: true, + keyboard: true, + storage: storage, + debug: false, + backdrop: false, + backdropPadding: 0, + redirect: true, + orphan: false, + duration: false, + delay: false, + basePath: '', + template: '', + afterSetState: function(key, value) {}, + afterGetState: function(key, value) {}, + afterRemoveState: function(key) {}, + onStart: function(tour) {}, + onEnd: function(tour) {}, + onShow: function(tour) {}, + onShown: function(tour) {}, + onHide: function(tour) {}, + onHidden: function(tour) {}, + onNext: function(tour) {}, + onPrev: function(tour) {}, + onPause: function(tour, duration) {}, + onResume: function(tour, duration) {} + }, options); + this._force = false; + this._inited = false; + this.backdrop = { + overlay: null, + $element: null, + $background: null, + backgroundShown: false, + overlayElementShown: false + }; + this; + } + + Tour.prototype.addSteps = function(steps) { + var step, _i, _len; + for (_i = 0, _len = steps.length; _i < _len; _i++) { + step = steps[_i]; + this.addStep(step); + } + return this; + }; + + Tour.prototype.addStep = function(step) { + this._options.steps.push(step); + return this; + }; + + Tour.prototype.getStep = function(i) { + if (this._options.steps[i] != null) { + return $.extend({ + id: "step-" + i, + path: '', + placement: 'right', + title: '', + content: '

', + next: i === this._options.steps.length - 1 ? -1 : i + 1, + prev: i - 1, + animation: true, + container: this._options.container, + autoscroll: this._options.autoscroll, + backdrop: this._options.backdrop, + backdropPadding: this._options.backdropPadding, + redirect: this._options.redirect, + orphan: this._options.orphan, + duration: this._options.duration, + delay: this._options.delay, + template: this._options.template, + onShow: this._options.onShow, + onShown: this._options.onShown, + onHide: this._options.onHide, + onHidden: this._options.onHidden, + onNext: this._options.onNext, + onPrev: this._options.onPrev, + onPause: this._options.onPause, + onResume: this._options.onResume + }, this._options.steps[i]); + } + }; + + Tour.prototype.init = function(force) { + this._force = force; + if (this.ended()) { + this._debug('Tour ended, init prevented.'); + return this; + } + this.setCurrentStep(); + this._initMouseNavigation(); + this._initKeyboardNavigation(); + this._onResize((function(_this) { + return function() { + return _this.showStep(_this._current); + }; + })(this)); + if (this._current !== null) { + this.showStep(this._current); + } + this._inited = true; + return this; + }; + + Tour.prototype.start = function(force) { + var promise; + if (force == null) { + force = false; + } + if (!this._inited) { + this.init(force); + } + if (this._current === null) { + promise = this._makePromise(this._options.onStart != null ? this._options.onStart(this) : void 0); + this._callOnPromiseDone(promise, this.showStep, 0); + } + return this; + }; + + Tour.prototype.next = function() { + var promise; + promise = this.hideStep(this._current); + return this._callOnPromiseDone(promise, this._showNextStep); + }; + + Tour.prototype.prev = function() { + var promise; + promise = this.hideStep(this._current); + return this._callOnPromiseDone(promise, this._showPrevStep); + }; + + Tour.prototype.goTo = function(i) { + var promise; + promise = this.hideStep(this._current); + return this._callOnPromiseDone(promise, this.showStep, i); + }; + + Tour.prototype.end = function() { + var endHelper, promise; + endHelper = (function(_this) { + return function(e) { + $(document).off("click.tour-" + _this._options.name); + $(document).off("keyup.tour-" + _this._options.name); + $(window).off("resize.tour-" + _this._options.name); + _this._setState('end', 'yes'); + _this._inited = false; + _this._force = false; + _this._clearTimer(); + if (_this._options.onEnd != null) { + return _this._options.onEnd(_this); + } + }; + })(this); + promise = this.hideStep(this._current); + return this._callOnPromiseDone(promise, endHelper); + }; + + Tour.prototype.ended = function() { + return !this._force && !!this._getState('end'); + }; + + Tour.prototype.restart = function() { + this._removeState('current_step'); + this._removeState('end'); + return this.start(); + }; + + Tour.prototype.pause = function() { + var step; + step = this.getStep(this._current); + if (!(step && step.duration)) { + return this; + } + this._paused = true; + this._duration -= new Date().getTime() - this._start; + window.clearTimeout(this._timer); + this._debug("Paused/Stopped step " + (this._current + 1) + " timer (" + this._duration + " remaining)."); + if (step.onPause != null) { + return step.onPause(this, this._duration); + } + }; + + Tour.prototype.resume = function() { + var step; + step = this.getStep(this._current); + if (!(step && step.duration)) { + return this; + } + this._paused = false; + this._start = new Date().getTime(); + this._duration = this._duration || step.duration; + this._timer = window.setTimeout((function(_this) { + return function() { + if (_this._isLast()) { + return _this.next(); + } else { + return _this.end(); + } + }; + })(this), this._duration); + this._debug("Started step " + (this._current + 1) + " timer with duration " + this._duration); + if ((step.onResume != null) && this._duration !== step.duration) { + return step.onResume(this, this._duration); + } + }; + + Tour.prototype.hideStep = function(i) { + var hideStepHelper, promise, step; + step = this.getStep(i); + if (!step) { + return; + } + this._clearTimer(); + promise = this._makePromise(step.onHide != null ? step.onHide(this, i) : void 0); + hideStepHelper = (function(_this) { + return function(e) { + var $element; + $element = $(step.element); + if (!($element.data('bs.popover') || $element.data('popover'))) { + $element = $('body'); + } + $element.popover('destroy').removeClass("tour-" + _this._options.name + "-element tour-" + _this._options.name + "-" + i + "-element"); + if (step.reflex) { + $element.removeClass('tour-step-element-reflex').off("" + (_this._reflexEvent(step.reflex)) + ".tour-" + _this._options.name); + } + if (step.backdrop) { + _this._hideBackdrop(); + } + if (step.onHidden != null) { + return step.onHidden(_this); + } + }; + })(this); + this._callOnPromiseDone(promise, hideStepHelper); + return promise; + }; + + Tour.prototype.showStep = function(i) { + var promise, showStepHelper, skipToPrevious, step; + if (this.ended()) { + this._debug('Tour ended, showStep prevented.'); + return this; + } + step = this.getStep(i); + if (!step) { + return; + } + skipToPrevious = i < this._current; + promise = this._makePromise(step.onShow != null ? step.onShow(this, i) : void 0); + showStepHelper = (function(_this) { + return function(e) { + var current_path, path, showPopoverAndOverlay; + _this.setCurrentStep(i); + path = (function() { + switch ({}.toString.call(step.path)) { + case '[object Function]': + return step.path(); + case '[object String]': + return this._options.basePath + step.path; + default: + return step.path; + } + }).call(_this); + current_path = [document.location.pathname, document.location.hash].join(''); + if (_this._isRedirect(path, current_path)) { + _this._redirect(step, path); + return; + } + if (_this._isOrphan(step)) { + if (!step.orphan) { + _this._debug("Skip the orphan step " + (_this._current + 1) + ".\nOrphan option is false and the element does not exist or is hidden."); + if (skipToPrevious) { + _this._showPrevStep(); + } else { + _this._showNextStep(); + } + return; + } + _this._debug("Show the orphan step " + (_this._current + 1) + ". Orphans option is true."); + } + if (step.backdrop) { + _this._showBackdrop(!_this._isOrphan(step) ? step.element : void 0); + } + showPopoverAndOverlay = function() { + if (_this.getCurrentStep() !== i) { + return; + } + if ((step.element != null) && step.backdrop) { + _this._showOverlayElement(step); + } + _this._showPopover(step, i); + if (step.onShown != null) { + step.onShown(_this); + } + return _this._debug("Step " + (_this._current + 1) + " of " + _this._options.steps.length); + }; + if (step.autoscroll) { + _this._scrollIntoView(step.element, showPopoverAndOverlay); + } else { + showPopoverAndOverlay(); + } + if (step.duration) { + return _this.resume(); + } + }; + })(this); + if (step.delay) { + this._debug("Wait " + step.delay + " milliseconds to show the step " + (this._current + 1)); + window.setTimeout((function(_this) { + return function() { + return _this._callOnPromiseDone(promise, showStepHelper); + }; + })(this), step.delay); + } else { + this._callOnPromiseDone(promise, showStepHelper); + } + return promise; + }; + + Tour.prototype.getCurrentStep = function() { + return this._current; + }; + + Tour.prototype.setCurrentStep = function(value) { + if (value != null) { + this._current = value; + this._setState('current_step', value); + } else { + this._current = this._getState('current_step'); + this._current = this._current === null ? null : parseInt(this._current, 10); + } + return this; + }; + + Tour.prototype._setState = function(key, value) { + var e, keyName; + if (this._options.storage) { + keyName = "" + this._options.name + "_" + key; + try { + this._options.storage.setItem(keyName, value); + } catch (_error) { + e = _error; + if (e.code === DOMException.QUOTA_EXCEEDED_ERR) { + this._debug('LocalStorage quota exceeded. State storage failed.'); + } + } + return this._options.afterSetState(keyName, value); + } else { + if (this._state == null) { + this._state = {}; + } + return this._state[key] = value; + } + }; + + Tour.prototype._removeState = function(key) { + var keyName; + if (this._options.storage) { + keyName = "" + this._options.name + "_" + key; + this._options.storage.removeItem(keyName); + return this._options.afterRemoveState(keyName); + } else { + if (this._state != null) { + return delete this._state[key]; + } + } + }; + + Tour.prototype._getState = function(key) { + var keyName, value; + if (this._options.storage) { + keyName = "" + this._options.name + "_" + key; + value = this._options.storage.getItem(keyName); + } else { + if (this._state != null) { + value = this._state[key]; + } + } + if (value === void 0 || value === 'null') { + value = null; + } + this._options.afterGetState(key, value); + return value; + }; + + Tour.prototype._showNextStep = function() { + var promise, showNextStepHelper, step; + step = this.getStep(this._current); + showNextStepHelper = (function(_this) { + return function(e) { + return _this.showStep(step.next); + }; + })(this); + promise = this._makePromise(step.onNext != null ? step.onNext(this) : void 0); + return this._callOnPromiseDone(promise, showNextStepHelper); + }; + + Tour.prototype._showPrevStep = function() { + var promise, showPrevStepHelper, step; + step = this.getStep(this._current); + showPrevStepHelper = (function(_this) { + return function(e) { + return _this.showStep(step.prev); + }; + })(this); + promise = this._makePromise(step.onPrev != null ? step.onPrev(this) : void 0); + return this._callOnPromiseDone(promise, showPrevStepHelper); + }; + + Tour.prototype._debug = function(text) { + if (this._options.debug) { + return window.console.log("Bootstrap Tour '" + this._options.name + "' | " + text); + } + }; + + Tour.prototype._isRedirect = function(path, currentPath) { + return (path != null) && path !== '' && (({}.toString.call(path) === '[object RegExp]' && !path.test(currentPath)) || ({}.toString.call(path) === '[object String]' && path.replace(/\?.*$/, '').replace(/\/?$/, '') !== currentPath.replace(/\/?$/, ''))); + }; + + Tour.prototype._redirect = function(step, path) { + if ($.isFunction(step.redirect)) { + return step.redirect.call(this, path); + } else if (step.redirect === true) { + this._debug("Redirect to " + path); + return document.location.href = path; + } + }; + + Tour.prototype._isOrphan = function(step) { + return (step.element == null) || !$(step.element).length || $(step.element).is(':hidden') && ($(step.element)[0].namespaceURI !== 'http://www.w3.org/2000/svg'); + }; + + Tour.prototype._isLast = function() { + return this._current < this._options.steps.length - 1; + }; + + Tour.prototype._showPopover = function(step, i) { + var $element, $tip, isOrphan, options; + $(".tour-" + this._options.name).remove(); + options = $.extend({}, this._options); + isOrphan = this._isOrphan(step); + step.template = this._template(step, i); + if (isOrphan) { + step.element = 'body'; + step.placement = 'top'; + } + $element = $(step.element); + $element.addClass("tour-" + this._options.name + "-element tour-" + this._options.name + "-" + i + "-element"); + if (step.options) { + $.extend(options, step.options); + } + if (step.reflex && !isOrphan) { + $element.addClass('tour-step-element-reflex'); + $element.off("" + (this._reflexEvent(step.reflex)) + ".tour-" + this._options.name); + $element.on("" + (this._reflexEvent(step.reflex)) + ".tour-" + this._options.name, (function(_this) { + return function() { + if (_this._isLast()) { + return _this.next(); + } else { + return _this.end(); + } + }; + })(this)); + } + $element.popover({ + placement: step.placement, + trigger: 'manual', + title: step.title, + content: step.content, + html: true, + animation: step.animation, + container: step.container, + template: step.template, + selector: step.element + }).popover('show'); + $tip = $element.data('bs.popover') ? $element.data('bs.popover').tip() : $element.data('popover').tip(); + $tip.attr('id', step.id); + this._reposition($tip, step); + if (isOrphan) { + return this._center($tip); + } + }; + + Tour.prototype._template = function(step, i) { + var $navigation, $next, $prev, $resume, $template; + $template = $.isFunction(step.template) ? $(step.template(i, step)) : $(step.template); + $navigation = $template.find('.popover-navigation'); + $prev = $navigation.find('[data-role="prev"]'); + $next = $navigation.find('[data-role="next"]'); + $resume = $navigation.find('[data-role="pause-resume"]'); + if (this._isOrphan(step)) { + $template.addClass('orphan'); + } + $template.addClass("tour-" + this._options.name + " tour-" + this._options.name + "-" + i); + if (step.prev < 0) { + $prev.addClass('disabled'); + } + if (step.next < 0) { + $next.addClass('disabled'); + } + if (!step.duration) { + $resume.remove(); + } + return $template.clone().wrap('
').parent().html(); + }; + + Tour.prototype._reflexEvent = function(reflex) { + if ({}.toString.call(reflex) === '[object Boolean]') { + return 'click'; + } else { + return reflex; + } + }; + + Tour.prototype._reposition = function($tip, step) { + var offsetBottom, offsetHeight, offsetRight, offsetWidth, originalLeft, originalTop, tipOffset; + offsetWidth = $tip[0].offsetWidth; + offsetHeight = $tip[0].offsetHeight; + tipOffset = $tip.offset(); + originalLeft = tipOffset.left; + originalTop = tipOffset.top; + offsetBottom = $(document).outerHeight() - tipOffset.top - $tip.outerHeight(); + if (offsetBottom < 0) { + tipOffset.top = tipOffset.top + offsetBottom; + } + offsetRight = $('html').outerWidth() - tipOffset.left - $tip.outerWidth(); + if (offsetRight < 0) { + tipOffset.left = tipOffset.left + offsetRight; + } + if (tipOffset.top < 0) { + tipOffset.top = 0; + } + if (tipOffset.left < 0) { + tipOffset.left = 0; + } + $tip.offset(tipOffset); + if (step.placement === 'bottom' || step.placement === 'top') { + if (originalLeft !== tipOffset.left) { + return this._replaceArrow($tip, (tipOffset.left - originalLeft) * 2, offsetWidth, 'left'); + } + } else { + if (originalTop !== tipOffset.top) { + return this._replaceArrow($tip, (tipOffset.top - originalTop) * 2, offsetHeight, 'top'); + } + } + }; + + Tour.prototype._center = function($tip) { + return $tip.css('top', $(window).outerHeight() / 2 - $tip.outerHeight() / 2); + }; + + Tour.prototype._replaceArrow = function($tip, delta, dimension, position) { + return $tip.find('.arrow').css(position, delta ? 50 * (1 - delta / dimension) + '%' : ''); + }; + + Tour.prototype._scrollIntoView = function(element, callback) { + var $element, $window, counter, offsetTop, scrollTop, windowHeight; + $element = $(element); + if (!$element.length) { + return callback(); + } + $window = $(window); + offsetTop = $element.offset().top; + windowHeight = $window.height(); + scrollTop = Math.max(0, offsetTop - (windowHeight / 2)); + this._debug("Scroll into view. ScrollTop: " + scrollTop + ". Element offset: " + offsetTop + ". Window height: " + windowHeight + "."); + counter = 0; + return $('body, html').stop(true, true).animate({ + scrollTop: Math.ceil(scrollTop) + }, (function(_this) { + return function() { + if (++counter === 2) { + callback(); + return _this._debug("Scroll into view.\nAnimation end element offset: " + ($element.offset().top) + ".\nWindow height: " + ($window.height()) + "."); + } + }; + })(this)); + }; + + Tour.prototype._onResize = function(callback, timeout) { + return $(window).on("resize.tour-" + this._options.name, function() { + clearTimeout(timeout); + return timeout = setTimeout(callback, 100); + }); + }; + + Tour.prototype._initMouseNavigation = function() { + var _this; + _this = this; + return $(document).off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='prev']").off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='next']").off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='end']").off("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='pause-resume']").on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='next']", (function(_this) { + return function(e) { + e.preventDefault(); + return _this.next(); + }; + })(this)).on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='prev']", (function(_this) { + return function(e) { + e.preventDefault(); + return _this.prev(); + }; + })(this)).on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='end']", (function(_this) { + return function(e) { + e.preventDefault(); + return _this.end(); + }; + })(this)).on("click.tour-" + this._options.name, ".popover.tour-" + this._options.name + " *[data-role='pause-resume']", function(e) { + var $this; + e.preventDefault(); + $this = $(this); + $this.text(_this._paused ? $this.data('pause-text') : $this.data('resume-text')); + if (_this._paused) { + return _this.resume(); + } else { + return _this.pause(); + } + }); + }; + + Tour.prototype._initKeyboardNavigation = function() { + if (!this._options.keyboard) { + return; + } + return $(document).on("keyup.tour-" + this._options.name, (function(_this) { + return function(e) { + if (!e.which) { + return; + } + switch (e.which) { + case 39: + e.preventDefault(); + if (_this._isLast()) { + return _this.next(); + } else { + return _this.end(); + } + break; + case 37: + e.preventDefault(); + if (_this._current > 0) { + return _this.prev(); + } + break; + case 27: + e.preventDefault(); + return _this.end(); + } + }; + })(this)); + }; + + Tour.prototype._makePromise = function(result) { + if (result && $.isFunction(result.then)) { + return result; + } else { + return null; + } + }; + + Tour.prototype._callOnPromiseDone = function(promise, cb, arg) { + if (promise) { + return promise.then((function(_this) { + return function(e) { + return cb.call(_this, arg); + }; + })(this)); + } else { + return cb.call(this, arg); + } + }; + + Tour.prototype._showBackdrop = function(element) { + if (this.backdrop.backgroundShown) { + return; + } + this.backdrop = $('
', { + "class": 'tour-backdrop' + }); + this.backdrop.backgroundShown = true; + return $('body').append(this.backdrop); + }; + + Tour.prototype._hideBackdrop = function() { + this._hideOverlayElement(); + return this._hideBackground(); + }; + + Tour.prototype._hideBackground = function() { + if (this.backdrop) { + this.backdrop.remove(); + this.backdrop.overlay = null; + return this.backdrop.backgroundShown = false; + } + }; + + Tour.prototype._showOverlayElement = function(step) { + var $element, elementData; + $element = $(step.element); + if (!$element || $element.length === 0 || this.backdrop.overlayElementShown) { + return; + } + this.backdrop.overlayElementShown = true; + this.backdrop.$element = $element.addClass('tour-step-backdrop'); + this.backdrop.$background = $('
', { + "class": 'tour-step-background' + }); + elementData = { + width: $element.innerWidth(), + height: $element.innerHeight(), + offset: $element.offset() + }; + this.backdrop.$background.appendTo('body'); + if (step.backdropPadding) { + elementData = this._applyBackdropPadding(step.backdropPadding, elementData); + } + return this.backdrop.$background.width(elementData.width).height(elementData.height).offset(elementData.offset); + }; + + Tour.prototype._hideOverlayElement = function() { + if (!this.backdrop.overlayElementShown) { + return; + } + this.backdrop.$element.removeClass('tour-step-backdrop'); + this.backdrop.$background.remove(); + this.backdrop.$element = null; + this.backdrop.$background = null; + return this.backdrop.overlayElementShown = false; + }; + + Tour.prototype._applyBackdropPadding = function(padding, data) { + if (typeof padding === 'object') { + if (padding.top == null) { + padding.top = 0; + } + if (padding.right == null) { + padding.right = 0; + } + if (padding.bottom == null) { + padding.bottom = 0; + } + if (padding.left == null) { + padding.left = 0; + } + data.offset.top = data.offset.top - padding.top; + data.offset.left = data.offset.left - padding.left; + data.width = data.width + padding.left + padding.right; + data.height = data.height + padding.top + padding.bottom; + } else { + data.offset.top = data.offset.top - padding; + data.offset.left = data.offset.left - padding; + data.width = data.width + (padding * 2); + data.height = data.height + (padding * 2); + } + return data; + }; + + Tour.prototype._clearTimer = function() { + window.clearTimeout(this._timer); + this._timer = null; + return this._duration = null; + }; + + return Tour; + + })(); + return window.Tour = Tour; +})(jQuery, window); diff --git a/client/galaxy/scripts/mvc/tool/tool-form-composite.js b/client/galaxy/scripts/mvc/tool/tool-form-composite.js index 76b47a87611..3ca50acd22a 100644 --- a/client/galaxy/scripts/mvc/tool/tool-form-composite.js +++ b/client/galaxy/scripts/mvc/tool/tool-form-composite.js @@ -332,4 +332,4 @@ define([ 'utils/utils', 'mvc/ui/ui-misc', 'mvc/form/form-view', 'mvc/form/form-d return { View: View }; -}); \ No newline at end of file +}); diff --git a/client/galaxy/scripts/mvc/tours.js b/client/galaxy/scripts/mvc/tours.js new file mode 100644 index 00000000000..32822e3ff77 --- /dev/null +++ b/client/galaxy/scripts/mvc/tours.js @@ -0,0 +1,62 @@ +/** + * This is the primary galaxy tours definition, currently only used for + * rendering a tour menu. + * + * For now it's intended to be plunked into the center display a-la + * Galaxy.app.display, but we could use a modal as well for more flexibility. + * + * DBTODO - This is downright backbone abuse, rewrite it. + */ + +define([],function() { + + var Tour = Backbone.Model.extend({ + urlRoot: '/api/tours', + }); + + var Tours = Backbone.Collection.extend({ + url: '/api/tours', + model: Tour, + }); + + var ToursView = Backbone.View.extend({ + // initialize + initialize: function(options) { + var self = this; + this.setElement('
'); + this.model = new Tours() + this.model.fetch({ + success: function( model ){ + console.log(model); + self.render(); + }, + error: function( model, response ){ + // Do something. + console.error("Failed to fetch tours."); + } + }); + }, + + render: function(){ + var tpl = _.template([ + "

Available Galaxy Tours

", + "
    ", + '<% _.each(tours, function(tour) { %>', + '
  • ', + '>', + '<%- tour.id %>', + '', + '- <%- tour.attributes.description %>', + '
  • ', + '<% }); %>', + "
"].join('')); + this.$el.html(tpl({tours: this.model.models, Galaxy: Galaxy})).on("click", ".tourItem", function(e){ + Galaxy.app.giveTour($(this).data("tour.id")); + }); + }, + + + }); + + return {ToursView: ToursView} +}); diff --git a/client/galaxy/scripts/mvc/upload/upload-button.js b/client/galaxy/scripts/mvc/upload/upload-button.js index 32cb194227f..3daf4fde670 100644 --- a/client/galaxy/scripts/mvc/upload/upload-button.js +++ b/client/galaxy/scripts/mvc/upload/upload-button.js @@ -77,7 +77,7 @@ var View = Backbone.View.extend({ return '
' + '
' + '
' + - '' + + '' + '' + '' + '
' + diff --git a/client/galaxy/style/less/galaxy_bootstrap/variables.less b/client/galaxy/style/less/galaxy_bootstrap/variables.less index 496ce0c2d65..2359b9719d0 100644 --- a/client/galaxy/style/less/galaxy_bootstrap/variables.less +++ b/client/galaxy/style/less/galaxy_bootstrap/variables.less @@ -267,7 +267,7 @@ @zindex-navbar: 1000; @zindex-dropdown: 1000; -@zindex-popover: 1010; +@zindex-popover: 1080; @zindex-tooltip: 1030; @zindex-navbar-fixed: 1030; @zindex-modal-background: 1040; diff --git a/client/grunt-tasks/install-libs.js b/client/grunt-tasks/install-libs.js index 9ac3ba604d9..529b45cf22c 100644 --- a/client/grunt-tasks/install-libs.js +++ b/client/grunt-tasks/install-libs.js @@ -23,6 +23,7 @@ module.exports = function( grunt ){ 'farbtastic': [ 'src/farbtastic.js', 'farbtastic.js' ], 'jQTouch': [ 'src/reference/jqtouch.js', 'jquery/jqtouch.js' ], + 'bootstrap-tour': [ 'build/js/bootstrap-tour.js', 'bootstrap-tour.js' ], // these need to be updated and tested //'jquery-form': [ 'jquery.form.js', 'jquery/jquery.form.js' ], @@ -90,4 +91,4 @@ module.exports = function( grunt ){ grunt.registerTask( 'copy-libs', 'copy external libraries to src', copyLibs ); grunt.registerTask( 'install-libs', 'fetch external libraries and copy to src', [ 'bower-install-simple:prod', 'copy-libs' ] ); -}; \ No newline at end of file +}; diff --git a/config/galaxy.ini.sample b/config/galaxy.ini.sample index 0fde9285f67..eab93ed9bc3 100644 --- a/config/galaxy.ini.sample +++ b/config/galaxy.ini.sample @@ -249,6 +249,10 @@ paste.app_factory = galaxy.web.buildapp:app_factory # have security considerations, so proceed with caution. #interactive_environment_plugins_directory = +# Interactive tour directory: where to store interactive tour definition files. +# Set to config/plugins/tours to load the default tours that ship with Galaxy. +#tour_config_dir = + # Each job is given a unique empty directory as its current working directory. # This option defines in what parent directory those directories will be # created. diff --git a/lib/galaxy/app.py b/lib/galaxy/app.py index d33446ac0e0..607118a83bc 100644 --- a/lib/galaxy/app.py +++ b/lib/galaxy/app.py @@ -14,6 +14,7 @@ from galaxy.visualization.genomes import Genomes from galaxy.visualization.data_providers.registry import DataProviderRegistry from galaxy.visualization.plugins.registry import VisualizationsRegistry from galaxy.tools.special_tools import load_lib_tools +from galaxy.tours import ToursRegistry from galaxy.sample_tracking import external_service_types from galaxy.openid.providers import OpenIDProviders from galaxy.tools.data_manager.manager import DataManagers @@ -105,6 +106,8 @@ class UniverseApplication( object, config.ConfiguresGalaxyMixin ): self, directories_setting=self.config.visualization_plugins_directory, template_cache_dir=self.config.template_cache ) + # Tours registry + self.tour_registry = ToursRegistry(self.config.tour_config_dir) # Load security policy. self.security_agent = self.model.security_agent self.host_security_agent = galaxy.security.HostAgent( diff --git a/lib/galaxy/config.py b/lib/galaxy/config.py index e9f7e9af4b0..c351a544785 100644 --- a/lib/galaxy/config.py +++ b/lib/galaxy/config.py @@ -105,6 +105,8 @@ class Configuration( object ): self.user_label_filters = listify( kwargs.get( "user_tool_label_filters", [] ), do_strip=True ) self.user_section_filters = listify( kwargs.get( "user_tool_section_filters", [] ), do_strip=True ) + self.tour_config_dir = resolve_path( kwargs.get("tour_config_dir", ""), self.root) + self.expose_user_name = kwargs.get( "expose_user_name", False ) self.expose_user_email = kwargs.get( "expose_user_email", False ) diff --git a/lib/galaxy/tours/__init__.py b/lib/galaxy/tours/__init__.py new file mode 100644 index 00000000000..fccc06fbbe4 --- /dev/null +++ b/lib/galaxy/tours/__init__.py @@ -0,0 +1,59 @@ +""" +This module manages loading/etc of Galaxy interactive tours. +""" + +import os +import yaml +import logging +log = logging.getLogger( __name__ ) + + +def tour_loader(contents_dict): + # This *COULD* be done on the clientside. Maybe even should? + for step in contents_dict['steps']: + if 'intro' in step: + step['content'] = step.pop('intro') + if 'position' in step: + step['placement'] = step.pop('position') + # Handle these hooks on the client side, instead of trying to ship + # functions as strings and eval + # if 'preclick' in step: + # step['onShow'] = "$('%s').click()" % step.pop('preclick') + # if 'postclick' in step: + # step['onHide'] = "$('%s').click()" % step.pop('postclick') + # if 'textinsert' in step: + # step['onShown'] = "$('%s').text('%s')" % (step['element'], step.pop('textinsert')) + if 'element' not in step: + step['orphan'] = True + return contents_dict + + +class ToursRegistry(object): + + def __init__(self, tour_dir): + self.tour_dir = tour_dir + self.load_tours() + + def tours_by_id_with_description(self): + return [{'id': k, + 'description': self.tours[k].get('description', None)} + for k in self.tours.keys()] + + def load_tours(self): + self.tours = {} + for f in os.listdir(self.tour_dir): + if f.endswith('.yaml'): + tour_path = os.path.join(self.tour_dir, f) + with open(tour_path) as handle: + conf = yaml.load(handle) + # Could pop the following, but is there a good reason to? + # As long as they key doesn't conflict with tour keys, it's + # fine. + tour_id = conf.get('tour_id', f.strip('.yaml')) + self.tours[tour_id] = tour_loader(conf) + log.info("Loaded tour '%s'" % tour_id) + + def tour_contents(self, tour_id): + # Extra format translation could happen here (like the previous intro_to_tour) + # For now just return the loaded contents. + return self.tours.get(tour_id, None) diff --git a/lib/galaxy/webapps/galaxy/api/tours.py b/lib/galaxy/webapps/galaxy/api/tours.py new file mode 100644 index 00000000000..4905b7de46b --- /dev/null +++ b/lib/galaxy/webapps/galaxy/api/tours.py @@ -0,0 +1,34 @@ +""" +API Controller providing Galaxy Tours +""" +import logging +from galaxy.web import _future_expose_api_anonymous_and_sessionless as expose_api_anonymous_and_sessionless +from galaxy.web.base.controller import BaseAPIController + +log = logging.getLogger( __name__ ) + + +class ToursController( BaseAPIController ): + + def __init__( self, app ): + super( ToursController, self ).__init__( app ) + + @expose_api_anonymous_and_sessionless + def index( self, trans, **kwd ): + """ + *GET /api/tours/ + Displays available tours + """ + return trans.app.tour_registry.tours_by_id_with_description() + + @expose_api_anonymous_and_sessionless + def show( self, trans, tour_id, **kwd ): + """ + load_config( self, trans, Tour_config_file, **kwd ) + * GET /api/tours/{tour_config_file}: + Read a yaml file containing the specified tour definition + + :returns: tour definition + :rtype: dictionary + """ + return trans.app.tour_registry.tour_contents(tour_id) diff --git a/lib/galaxy/webapps/galaxy/buildapp.py b/lib/galaxy/webapps/galaxy/buildapp.py index 7895d1da5d7..4452f4e0cc1 100644 --- a/lib/galaxy/webapps/galaxy/buildapp.py +++ b/lib/galaxy/webapps/galaxy/buildapp.py @@ -393,6 +393,22 @@ def populate_api_routes( webapp, app ): action='get_api_key', conditions=dict( method=[ "GET" ] ) ) + # ===================== + # ===== TOURS API ===== + # ===================== + + webapp.mapper.connect( 'index', + '/api/tours', + controller='tours', + action='index', + conditions=dict( method=["GET"] ) ) + + webapp.mapper.connect( 'show', + '/api/tours/{tour_id}', + controller='tours', + action='show', + conditions=dict( method=[ "GET" ] ) ) + # ======================= # ===== LIBRARY API ===== # ======================= diff --git a/static/maps/galaxy.menu.js.map b/static/maps/galaxy.menu.js.map new file mode 100644 index 00000000000..5979b2873a0 --- /dev/null +++ b/static/maps/galaxy.menu.js.map @@ -0,0 +1 @@ +{"version":3,"file":"galaxy.menu.js","sources":["../src/galaxy.menu.js"],"names":["define","Masthead","GalaxyMenu","Backbone","Model","extend","initialize","options","this","config","masthead","create","tab_analysis","GalaxyMastheadTab","id","title","content","title_attribute","append","workflow_options","Galaxy","user","disabled","tab_workflow","tab_shared","add","divider","user_requests","tab_lab","lims_doc_url","visualization_options","tab_visualization","target","get","tab_admin","extra_class","tab_help","biostar_url","biostar_url_redirect","support_url","search_url","mailing_lists","screencasts_url","wiki_url","citation_url","terms_url","tab_user","use_remote_user","allow_user_creation","active_view","highlight"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/layout/menu.js.map b/static/maps/layout/menu.js.map index 82a32650256..04619ede9f3 100644 --- a/static/maps/layout/menu.js.map +++ b/static/maps/layout/menu.js.map @@ -1 +1 @@ -{"version":3,"file":"menu.js","sources":["../../src/layout/menu.js"],"names":["define","GalaxyMenu","Backbone","Model","extend","initialize","options","this","config","masthead","create","tab_analysis","GalaxyMastheadTab","id","title","content","title_attribute","append","workflow_options","Galaxy","user","disabled","tab_workflow","tab_shared","add","divider","user_requests","tab_lab","lims_doc_url","visualization_options","tab_visualization","target","get","tab_admin","extra_class","tab_help","biostar_url","biostar_url_redirect","support_url","search_url","mailing_lists","screencasts_url","wiki_url","citation_url","terms_url","tab_user","use_remote_user","allow_user_creation","active_view","highlight","View","type","scratchbook","onunload","visible","location","$menu","events","click .head","_","defaults","undefined","indexOf","root","setElement","$","_template","el","find","addClass","_attachPopover","hide","show","css","visibility","menuOptions","_templateMenu","$item","_templateMenuItem","self","on","e","preventDefault","frame","_templateDivider","_head","$popover_element","popover","html","placement","setTimeout","tmpl"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"menu.js","sources":["../../src/layout/menu.js"],"names":["define","Tours","GalaxyMenu","Backbone","Model","extend","initialize","options","this","config","masthead","create","tab_analysis","GalaxyMastheadTab","id","title","content","title_attribute","append","workflow_options","Galaxy","user","disabled","tab_workflow","tab_shared","add","divider","user_requests","tab_lab","lims_doc_url","visualization_options","tab_visualization","target","get","tab_admin","extra_class","tab_help","biostar_url","biostar_url_redirect","support_url","search_url","mailing_lists","screencasts_url","wiki_url","citation_url","terms_url","onclick","app","display","ToursView","tab_user","use_remote_user","allow_user_creation","active_view","highlight","View","type","scratchbook","onunload","visible","location","$menu","events","click .head","_","defaults","undefined","indexOf","root","setElement","$","_template","el","find","addClass","_attachPopover","hide","show","css","visibility","menuOptions","_templateMenu","$item","_templateMenuItem","self","on","e","preventDefault","frame","_templateDivider","_head","$popover_element","popover","html","placement","setTimeout","tmpl"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/libs/bootstrap-tour.js.map b/static/maps/libs/bootstrap-tour.js.map new file mode 100644 index 00000000000..1d90815c8df --- /dev/null +++ b/static/maps/libs/bootstrap-tour.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bootstrap-tour.js","sources":["../../src/libs/bootstrap-tour.js"],"names":["$","window","Tour","document","options","storage","localStorage","_error","this","_options","extend","name","steps","container","autoscroll","keyboard","debug","backdrop","backdropPadding","redirect","orphan","duration","delay","basePath","template","afterSetState","afterGetState","afterRemoveState","onStart","onEnd","onShow","onShown","onHide","onHidden","onNext","onPrev","onPause","onResume","_force","_inited","overlay","$element","$background","backgroundShown","overlayElementShown","prototype","addSteps","step","_i","_len","length","addStep","push","getStep","i","id","path","placement","title","content","next","prev","animation","init","force","ended","_debug","setCurrentStep","_initMouseNavigation","_initKeyboardNavigation","_onResize","_this","showStep","_current","start","promise","_makePromise","_callOnPromiseDone","hideStep","_showNextStep","_showPrevStep","goTo","end","endHelper","off","_setState","_clearTimer","_getState","restart","_removeState","pause","_paused","_duration","Date","getTime","_start","clearTimeout","_timer","resume","setTimeout","_isLast","hideStepHelper","element","data","popover","removeClass","reflex","_reflexEvent","_hideBackdrop","showStepHelper","skipToPrevious","current_path","showPopoverAndOverlay","toString","call","location","pathname","hash","join","_isRedirect","_redirect","_isOrphan","_showBackdrop","getCurrentStep","_showOverlayElement","_showPopover","_scrollIntoView","value","parseInt","key","e","keyName","setItem","code","DOMException","QUOTA_EXCEEDED_ERR","_state","removeItem","getItem","showNextStepHelper","showPrevStepHelper","text","console","log","currentPath","test","replace","isFunction","href","is","namespaceURI","$tip","isOrphan","remove","_template","addClass","on","trigger","html","selector","tip","attr","_reposition","_center","$navigation","$next","$prev","$resume","$template","find","clone","wrap","parent","offsetBottom","offsetHeight","offsetRight","offsetWidth","originalLeft","originalTop","tipOffset","offset","left","top","outerHeight","outerWidth","_replaceArrow","css","delta","dimension","position","callback","$window","counter","offsetTop","scrollTop","windowHeight","height","Math","max","stop","animate","ceil","timeout","preventDefault","$this","which","result","then","cb","arg","class","append","_hideOverlayElement","_hideBackground","elementData","width","innerWidth","innerHeight","appendTo","_applyBackdropPadding","padding","right","bottom","jQuery"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/mvc/tours.js.map b/static/maps/mvc/tours.js.map new file mode 100644 index 00000000000..ed30308bd20 --- /dev/null +++ b/static/maps/mvc/tours.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tours.js","sources":["../../src/mvc/tours.js"],"names":["define","Tour","Backbone","Model","extend","urlRoot","Tours","Collection","url","model","ToursView","View","initialize","self","this","setElement","fetch","success","console","log","render","error","tpl","_","template","join","$el","html","tours","models","Galaxy","on","app","giveTour","$","data"],"mappings":"AAUAA,UAAU,WAEN,GAAIC,GAAOC,SAASC,MAAMC,QACxBC,QAAS,eAGPC,EAAQJ,SAASK,WAAWH,QAC9BI,IAAK,aACLC,MAAOR,IAGLS,EAAYR,SAASS,KAAKP,QAE1BQ,WAAY,WACR,GAAIC,GAAOC,IACXA,MAAKC,WAAW,UAChBD,KAAKL,MAAQ,GAAIH,GACjBQ,KAAKL,MAAMO,OACTC,QAAS,SAAUR,GACjBS,QAAQC,IAAIV,GACZI,EAAKO,UAEPC,MAAO,WAELH,QAAQG,MAAM,8BAKtBD,OAAQ,WACJ,GAAIE,GAAMC,EAAEC,UACR,kCACA,OACA,uCACI,OACI,4DACI,iBACJ,OACA,uCACJ,QACJ,YACA,SAASC,KAAK,IAClBX,MAAKY,IAAIC,KAAKL,GAAKM,MAAOd,KAAKL,MAAMoB,OAAQC,OAAQA,UAAUC,GAAG,QAAS,YAAa,WACpFD,OAAOE,IAAIC,SAASC,EAAEpB,MAAMqB,KAAK,gBAO7C,QAAQzB,UAAWA"} \ No newline at end of file diff --git a/static/maps/mvc/upload/upload-button.js.map b/static/maps/mvc/upload/upload-button.js.map index 7b723f389ea..3d95837464f 100644 --- a/static/maps/mvc/upload/upload-button.js.map +++ b/static/maps/mvc/upload/upload-button.js.map @@ -1 +1 @@ -{"version":3,"file":"upload-button.js","sources":["../../../src/mvc/upload/upload-button.js"],"names":["define","Model","Backbone","extend","defaults","icon","tooltip","label","percentage","status","View","model","initialize","options","self","this","setElement","_template","$el","on","e","onclick","title","get","placement","_percentage","_status","$","window","text","onunload","value","find","removeClass","addClass","css","width"],"mappings":"AACAA,UAAW,WAGX,GAAIC,GAAQC,SAASD,MAAME,QACvBC,UACIC,KAAc,YACdC,QAAc,8CACdC,MAAc,YACdC,WAAc,EACdC,OAAc,MAKlBC,EAAOR,SAASQ,KAAKP,QAErBQ,MAAQ,KAGRC,WAAa,SAAUC,GAEnB,GAAIC,GAAOC,KAGPJ,EAAQE,EAAQF,KAGpBI,MAAKC,WAAYD,KAAKE,aAGtBF,KAAKG,IAAIC,GAAI,QAAS,SAAUC,GAAMP,EAAQQ,QAASD,KAGvDL,KAAKG,IAAIZ,SAAWgB,MAAOX,EAAMY,IAAI,WAAYC,UAAW,WAG5Db,EAAMQ,GAAI,oBAAqB,WAC3BL,EAAKW,YAAad,EAAMY,IAAK,iBAEjCZ,EAAMQ,GAAI,gBAAiB,WACvBL,EAAKY,QAASf,EAAMY,IAAK,YAI7B,IAAIT,GAAOC,IACXY,GAAGC,QAAST,GAAI,eAAgB,WAC5B,GAAIU,GAAO,EAIX,OAHKhB,GAAQiB,WACTD,EAAOhB,EAAQiB,YAEN,IAARD,EACMA,EADX,UAORH,QAAS,SAAUK,GACf,GAAIb,GAAMH,KAAKG,IAAIc,KAAM,gBACzBd,GAAIe,cACJf,EAAIgB,SAAU,gBACdhB,EAAIgB,SAAU,6BACA,IAATH,GACDb,EAAIgB,SAAU,gBAAkBH,IAKxCN,YAAa,SAAUM,GACnB,GAAIb,GAAMH,KAAKG,IAAIc,KAAM,gBACzBd,GAAIiB,KAAOC,MAAQL,EAAQ,OAI/Bd,UAAW,WACP,MAAQ,sLAWhB,QACIhB,MAAUA,EACVS,KAAUA"} \ No newline at end of file +{"version":3,"file":"upload-button.js","sources":["../../../src/mvc/upload/upload-button.js"],"names":["define","Model","Backbone","extend","defaults","icon","tooltip","label","percentage","status","View","model","initialize","options","self","this","setElement","_template","$el","on","e","onclick","title","get","placement","_percentage","_status","$","window","text","onunload","value","find","removeClass","addClass","css","width"],"mappings":"AACAA,UAAW,WAGX,GAAIC,GAAQC,SAASD,MAAME,QACvBC,UACIC,KAAc,YACdC,QAAc,8CACdC,MAAc,YACdC,WAAc,EACdC,OAAc,MAKlBC,EAAOR,SAASQ,KAAKP,QAErBQ,MAAQ,KAGRC,WAAa,SAAUC,GAEnB,GAAIC,GAAOC,KAGPJ,EAAQE,EAAQF,KAGpBI,MAAKC,WAAYD,KAAKE,aAGtBF,KAAKG,IAAIC,GAAI,QAAS,SAAUC,GAAMP,EAAQQ,QAASD,KAGvDL,KAAKG,IAAIZ,SAAWgB,MAAOX,EAAMY,IAAI,WAAYC,UAAW,WAG5Db,EAAMQ,GAAI,oBAAqB,WAC3BL,EAAKW,YAAad,EAAMY,IAAK,iBAEjCZ,EAAMQ,GAAI,gBAAiB,WACvBL,EAAKY,QAASf,EAAMY,IAAK,YAI7B,IAAIT,GAAOC,IACXY,GAAGC,QAAST,GAAI,eAAgB,WAC5B,GAAIU,GAAO,EAIX,OAHKhB,GAAQiB,WACTD,EAAOhB,EAAQiB,YAEN,IAARD,EACMA,EADX,UAORH,QAAS,SAAUK,GACf,GAAIb,GAAMH,KAAKG,IAAIc,KAAM,gBACzBd,GAAIe,cACJf,EAAIgB,SAAU,gBACdhB,EAAIgB,SAAU,6BACA,IAATH,GACDb,EAAIgB,SAAU,gBAAkBH,IAKxCN,YAAa,SAAUM,GACnB,GAAIb,GAAMH,KAAKG,IAAIc,KAAM,gBACzBd,GAAIiB,KAAOC,MAAQL,EAAQ,OAI/Bd,UAAW,WACP,MAAQ,oNAWhB,QACIhB,MAAUA,EACVS,KAAUA"} \ No newline at end of file diff --git a/static/scripts/bundled/analysis.bundled.js b/static/scripts/bundled/analysis.bundled.js index 6370c6c74c7..65737d8aef5 100644 --- a/static/scripts/bundled/analysis.bundled.js +++ b/static/scripts/bundled/analysis.bundled.js @@ -1,12 +1,13 @@ -webpackJsonp([3,1],[function(t,e,i){(function(t,e){var n=i(1),s=n,o=i(82).GalaxyApp,a=i(61),r=i(13),l=i(111),c=i(110),d=i(84),h=i(22);window.app=function(i,n){window.Galaxy=new o(i,n),Galaxy.debug("analysis app");var u=i.config,p=new l({el:"#left",userIsAnonymous:Galaxy.user.isAnonymous(),spinner_url:u.spinner_url,search_url:u.search_url,toolbox:u.toolbox,toolbox_in_panel:u.toolbox_in_panel,stored_workflow_menu_entries:u.stored_workflow_menu_entries,nginx_upload_path:u.nginx_upload_path,ftp_upload_site:u.ftp_upload_site,default_genome:u.default_genome,default_extension:u.default_extension}),f=new r.CenterPanel({el:"#center"}),g=new c({el:"#right",galaxyRoot:Galaxy.root,userIsAnonymous:Galaxy.user.isAnonymous(),allow_user_dataset_purge:u.allow_user_dataset_purge}),m=new d.PageLayoutView(t.extend(i,{el:"body",left:p,center:f,right:g}));Galaxy.page=m,Galaxy.params=Galaxy.config.params,Galaxy.toolPanel=p.tool_panel,Galaxy.upload=p.uploadButton,Galaxy.currHistoryPanel=g.historyView,Galaxy.currHistoryPanel.listenToGalaxy(Galaxy),Galaxy.app={display:function(t,e){s(".select2-hidden-accessible").remove(),f.display(t)}};new(e.Router.extend({initialize:function(t){this.options=t},execute:function(t,e,i){Galaxy.debug("router execute:",t,e,i);var n=a.parse(e.pop());e.push(n),t&&t.apply(this,e)},routes:{"(/)":"home","(/)root*":"home"},home:function(t){(t.tool_id||t.job_id)&&"upload1"!==t.tool_id?this._loadToolForm(t):t.workflow_id?this._loadCenterIframe("workflow/run?id="+t.workflow_id):t.m_c?this._loadCenterIframe(t.m_c+"/"+t.m_a):this._loadCenterIframe("welcome")},_loadToolForm:function(t){t.id=t.tool_id,f.display(new h.View(t))},_loadCenterIframe:function(t,e){e=e||Galaxy.root,t=e+t,f.$("#galaxy_main").prop("src",t)}}))(i);s(function(){m.render().right.historyView.loadCurrentHistory(),Galaxy.listenTo(m.right.historyView,"history-size-change",function(){Galaxy.user.fetch({url:Galaxy.user.urlRoot()+"/"+(Galaxy.user.id||"current")})}),m.right.historyView.connectToQuotaMeter(m.masthead.quotaMeter),e.history.start({root:Galaxy.root,pushState:!0})})}}).call(e,i(3),i(2))},,,,,,,function(t,e,i){var n,s;(function(o,a){n=[i(4),i(54),i(57),i(25),i(53),i(16),i(10)],s=function(t,e,i,n,s,r,l){var c=o.View.extend({initialize:function(e){this.options=t.merge(e,{url:"",cls:""}),this.setElement(this._template(this.options))},_template:function(t){return''}}),d=o.View.extend({initialize:function(e){this.options=t.merge(e,{title:"",cls:"",tagname:"label"}),this.setElement(this._template(this.options))},title:function(t){this.$el.html(t)},value:function(){return options.title},_template:function(t){return a("<"+t.tagname+"/>").addClass("ui-label").addClass(t.cls).html(t.title)}}),h=o.View.extend({initialize:function(e){this.options=t.merge(e,{floating:"right",icon:"",tooltip:"",placement:"bottom",title:"",cls:""}),this.setElement(this._template(this.options)),a(this.el).tooltip({title:e.tooltip,placement:"bottom"})},_template:function(t){return'
 '+t.title+"
"}}),u=o.View.extend({initialize:function(e){this.options=t.merge(e,{title:"",cls:""}),this.setElement(this._template(this.options)),a(this.el).on("click",e.onclick)},_template:function(t){return'"}}),p=o.View.extend({initialize:function(e){this.options=t.merge(e,{message:null,status:"info",cls:"",persistent:!1}),this.setElement('
'),this.options.message&&this.update(this.options)},update:function(e){if(this.options=t.merge(e,this.options),""!=e.message){if(this.$el.html(this._template(this.options)),this.$el.fadeIn(),this.timeout&&window.clearTimeout(this.timeout),!e.persistent){var i=this;this.timeout=window.setTimeout(function(){i.$el.is(":visible")?i.$el.fadeOut():i.$el.hide()},3e3)}}else this.$el.fadeOut()},_template:function(t){var e="ui-message alert alert-"+t.status;return t.large&&(e=("success"==t.status&&"done"||"danger"==t.status&&"error"||t.status)+"messagelarge"),'
'+t.message+"
"}}),f=o.View.extend({initialize:function(e){this.options=t.merge(e,{onclick:null,searchword:""}),this.setElement(this._template(this.options));var i=this;this.options.onclick&&this.$el.on("submit",function(t){var e=i.$el.find("#search");i.options.onclick(e.val())})},_template:function(t){return''}}),g=o.View.extend({initialize:function(e){this.options=t.merge(e,{type:"text",placeholder:"",disabled:!1,visible:!0,cls:"",area:!1}),this.setElement(this._template(this.options)),void 0!==this.options.value&&this.value(this.options.value),this.options.disabled&&this.$el.prop("disabled",!0),this.options.visible||this.$el.hide();var i=this;this.$el.on("input",function(){i.options.onchange&&i.options.onchange(i.$el.val())})},value:function(t){return void 0!==t&&this.$el.val("string"==typeof t&&t||""),this.$el.val()},_template:function(t){return t.area?'':''}}),m=o.View.extend({initialize:function(t){this.options=t,this.setElement(this._template(this.options)),void 0!==this.options.value&&this.value(this.options.value)},value:function(t){return void 0!==t&&this.$("hidden").val(t),this.$("hidden").val()},_template:function(t){var e='
';return t.info&&(e+="
"+t.info+"
"),e+='
'}});return{Anchor:u,Button:r.ButtonDefault,ButtonIcon:r.ButtonIcon,ButtonCheck:r.ButtonCheck,ButtonMenu:r.ButtonMenu,ButtonLink:r.ButtonLink,Icon:h,Image:c,Input:g,Label:d,Message:p,Modal:l,RadioButton:n.RadioButton,Checkbox:n.Checkbox,Radio:n.Radio,Searchbox:f,Select:e,Hidden:m,Slider:i,Drilldown:s}}.apply(e,n),!(void 0!==s&&(t.exports=s))}).call(e,i(2),i(1))},function(t,e){"use strict";function i(t){return d[t]}function n(t){for(var e=1;ei;i++)if(t[i]===e)return i;return-1}function o(t){if("string"!=typeof t){if(t&&t.toHTML)return t.toHTML();if(null==t)return"";if(!t)return t+"";t=""+t}return u.test(t)?t.replace(h,i):t}function a(t){return t||0===t?g(t)&&0===t.length?!0:!1:!0}function r(t){var e=n({},t);return e._parent=t,e}function l(t,e){return t.path=e,t}function c(t,e){return(t?t+".":"")+e}e.__esModule=!0,e.extend=n,e.indexOf=s,e.escapeExpression=o,e.isEmpty=a,e.createFrame=r,e.blockParams=l,e.appendContextPath=c;var d={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},h=/[&<>"'`=]/g,u=/[&<>"'`=]/,p=Object.prototype.toString;e.toString=p;var f=function(t){return"function"==typeof t};f(/x/)&&(e.isFunction=f=function(t){return"function"==typeof t&&"[object Function]"===p.call(t)}),e.isFunction=f;var g=Array.isArray||function(t){return t&&"object"==typeof t?"[object Array]"===p.call(t):!1};e.isArray=g},function(t,e){"use strict";function i(t,e){var s=e&&e.loc,o=void 0,a=void 0;s&&(o=s.start.line,a=s.start.column,t+=" - "+o+":"+a);for(var r=Error.prototype.constructor.call(this,t),l=0;l';return t.title&&(e+='
',t.icon&&(e+=' '),e+=''+t.title+"
"),e+='
',"top"==t.placement&&(e+='
'),e+='
',"bottom"==t.placement&&(e+='
'),e+='