Merge pull request #5190 from dannon/vue_dep_tweaks

Client dependency upgrades, changes.
This commit is contained in:
John Chilton
2017-12-14 09:52:44 -05:00
committed by GitHub
24 changed files with 85 additions and 132 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ import QueryStringParsing from "utils/query-string-parsing";
import Router from "layout/router";
import Utils from "utils/utils";
import Page from "layout/page";
import Vue from "libs/vue";
import Vue from "vue";
import UserAPIKeys from "components/UserAPIKeys.vue";
window.app = function app(options, bootstrapped) {
+1 -1
View File
@@ -22,7 +22,7 @@ import Ui from "mvc/ui/ui-misc";
import DatasetError from "mvc/dataset/dataset-error";
import DatasetEditAttributes from "mvc/dataset/dataset-edit-attributes";
import Citations from "components/Citations.vue";
import Vue from "libs/vue";
import Vue from "vue";
/** define the 'Analyze Data'/analysis/main/home page for Galaxy
* * has a masthead
@@ -6,9 +6,7 @@
export function append_notebook(url) {
clear_main_area();
$("#main").append(
`<iframe frameBorder="0" seamless="seamless" style="width: 100%; height: 100%; overflow:hidden;" scrolling="no" src="${
url
}"></iframe>`
`<iframe frameBorder="0" seamless="seamless" style="width: 100%; height: 100%; overflow:hidden;" scrolling="no" src="${url}"></iframe>`
);
}
@@ -21,9 +19,7 @@ export function clear_main_area() {
export function display_spinner() {
$("#main").append(
`<img id="spinner" src="${
galaxy_root
}static/style/largespinner.gif" style="position:absolute;margin:auto;top:0;left:0;right:0;bottom:0;">`
`<img id="spinner" src="${galaxy_root}static/style/largespinner.gif" style="position:absolute;margin:auto;top:0;left:0;right:0;bottom:0;">`
);
}
+1 -5
View File
@@ -154,11 +154,7 @@ WYMeditor.editor.prototype.dialog = function(dialogType, dialogFeatures, bodyHtm
}
show_modal(
"Create Link",
`<div><div><label id='link_attribute_label'>URL <span style='float: right; font-size: 90%'><a href='#' id='set_link_id'>Create in-page anchor</a></span></label><br><input type='text' class='wym_href' value='${
curURL
}' size='40' /></div><div><label>Title</label><br><input type='text' class='wym_title' value='${
curTitle
}' size='40' /></div><div>`,
`<div><div><label id='link_attribute_label'>URL <span style='float: right; font-size: 90%'><a href='#' id='set_link_id'>Create in-page anchor</a></span></label><br><input type='text' class='wym_href' value='${curURL}' size='40' /></div><div><label>Title</label><br><input type='text' class='wym_title' value='${curTitle}' size='40' /></div><div>`,
{
"Make link": function() {
// Get URL, name/title.
+3 -3
View File
@@ -154,9 +154,9 @@ function show_in_overlay(options) {
closeButton: true,
title: "&nbsp;",
body: $(
`<div style='margin: -5px;'><iframe style='margin: 0; padding: 0;' src='${options.url}' width='${
width
}' height='${height}' scrolling='${scroll}' frameborder='0'></iframe></div>`
`<div style='margin: -5px;'><iframe style='margin: 0; padding: 0;' src='${
options.url
}' width='${width}' height='${height}' scrolling='${scroll}' frameborder='0'></iframe></div>`
)
});
modal.show({ backdrop: true });
+11 -35
View File
@@ -180,9 +180,7 @@ export default {
if (options.operations.length !== 0) {
tmpl += `<div id="${id}" class="${cls}" style="float: left;">`;
}
tmpl += `<a class="menubutton-label use-target" target="${target}" href="${
link
}" onclick="return false;">${value}</a>`;
tmpl += `<a class="menubutton-label use-target" target="${target}" href="${link}" onclick="return false;">${value}</a>`;
if (options.operations.length !== 0) {
tmpl += "</div>";
}
@@ -262,21 +260,13 @@ export default {
if (page_index == options.cur_page_num) {
tmpl += `<span class="page-link inactive-link" id="page-link-${page_index}">${page_index}</span>`;
} else {
tmpl += `<span class="page-link" id="page-link-${
page_index
}"><a href="javascript:void(0);" onclick="return false;" page_num="${page_index}">${
page_index
}</a></span>`;
tmpl += `<span class="page-link" id="page-link-${page_index}"><a href="javascript:void(0);" onclick="return false;" page_num="${page_index}">${page_index}</a></span>`;
}
}
// show last page
if (max_page < num_pages) {
tmpl += `...<span class="page-link" id="page-link-${
num_pages
}"><a href="javascript:void(0);" onclick="return false;" page_num="${num_pages}">${
num_pages
}</a></span>`;
tmpl += `...<span class="page-link" id="page-link-${num_pages}"><a href="javascript:void(0);" onclick="return false;" page_num="${num_pages}">${num_pages}</a></span>`;
}
tmpl += "</span>";
@@ -386,9 +376,7 @@ export default {
//
// standard search
//
var tmpl = `<div id="standard-search" style="display: ${
standard_search_display
};"><table><tr><td style="padding: 0;"><table>`;
var tmpl = `<div id="standard-search" style="display: ${standard_search_display};"><table><tr><td style="padding: 0;"><table>`;
// add standard filters
for (let column of options.columns) {
@@ -411,9 +399,7 @@ export default {
//
// advanced search
//
tmpl += `<div id="advanced-search" style="display: ${
advanced_search_display
}; margin-top: 5px; border: 1px solid #ccc;"><table><tr><td style="text-align: left" colspan="100"><a href="" class="advanced-search-toggle">Close Advanced Search</a></td></tr>`;
tmpl += `<div id="advanced-search" style="display: ${advanced_search_display}; margin-top: 5px; border: 1px solid #ccc;"><table><tr><td style="text-align: left" colspan="100"><a href="" class="advanced-search-toggle">Close Advanced Search</a></td></tr>`;
// add advanced filters
for (let column of options.columns) {
@@ -456,9 +442,9 @@ export default {
if (column.is_text) {
filter_value = JSON.stringify(filter_value);
}
tmpl += `<input type="hidden" id="${column.key}" name="f-${column.key}" value="${
filter_value
}"/>`;
tmpl += `<input type="hidden" id="${column.key}" name="f-${
column.key
}" value="${filter_value}"/>`;
}
}
}
@@ -510,9 +496,7 @@ export default {
// print input field for column
tmpl += `
<span class="search-box">
<input class="search-box-input" id="input-${column_key}-filter" name="f-${
column_key
}" type="text" placeholder="${value}" size="${size}"/>
<input class="search-box-input" id="input-${column_key}-filter" name="f-${column_key}" type="text" placeholder="${value}" size="${size}"/>
<button type="submit" style="background: transparent; border: none; padding: 4px; margin: 0px;">
<i class="fa fa-search"></i>
</button>
@@ -547,11 +531,7 @@ export default {
if (filter && cf[column_key] && filter == cf_arg) {
tmpl += `<span class="categorical-filter ${column_key}-filter current-filter">${cf_label}</span>`;
} else {
tmpl += `<span class="categorical-filter ${
column_key
}-filter"><a href="javascript:void(0);" filter_key="${cf_key}" filter_val="${cf_arg}">${
cf_label
}</a></span>`;
tmpl += `<span class="categorical-filter ${column_key}-filter"><a href="javascript:void(0);" filter_key="${cf_key}" filter_val="${cf_arg}">${cf_label}</a></span>`;
}
}
tmpl += "</span>";
@@ -565,10 +545,6 @@ export default {
// template for filter items
filter_element: function(filter_key, filter_value) {
filter_value = Utils.sanitize(filter_value);
return `<span class="text-filter-val">${filter_value}<a href="javascript:void(0);" filter_key="${
filter_key
}" filter_val="${
filter_value
}"><i class="fa fa-times" style="padding-left: 5px; padding-bottom: 6px;"/></a></span>`;
return `<span class="text-filter-val">${filter_value}<a href="javascript:void(0);" filter_key="${filter_key}" filter_val="${filter_value}"><i class="fa fa-times" style="padding-left: 5px; padding-bottom: 6px;"/></a></span>`;
}
};
+1 -3
View File
@@ -75,9 +75,7 @@ var HDCAListItemView = _super.extend(
} else if (!jobStatesSummary || !jobStatesSummary.hasDetails()) {
return `
<div class="progress state-progress">
<span class="note">Loading job data for ${
collectionTypeDescription
}.<span class="blinking">..</span></span>
<span class="note">Loading job data for ${collectionTypeDescription}.<span class="blinking">..</span></span>
<div class="progress-bar info" style="width:100%">
</div>`;
} else {
@@ -910,9 +910,9 @@ var FolderToolbarView = Backbone.View.extend({
}
var promise = $.when(
$.post(
`${Galaxy.root}api/libraries/datasets?encoded_folder_id=${that.id}&source=${options.source}&path=${
popped_item
}&file_type=${options.file_type}&link_data=${options.link_data}&space_to_tab=${
`${Galaxy.root}api/libraries/datasets?encoded_folder_id=${that.id}&source=${
options.source
}&path=${popped_item}&file_type=${options.file_type}&link_data=${options.link_data}&space_to_tab=${
options.space_to_tab
}&to_posix_lines=${options.to_posix_lines}&dbkey=${options.dbkey}&tag_using_filenames=${
options.tag_using_filenames
@@ -959,13 +959,13 @@ var FolderToolbarView = Backbone.View.extend({
}
var promise = $.when(
$.post(
`${Galaxy.root}api/libraries/datasets?encoded_folder_id=${that.id}&source=${options.source}&path=${
popped_item
}&preserve_dirs=${options.preserve_dirs}&link_data=${options.link_data}&to_posix_lines=${
options.to_posix_lines
}&space_to_tab=${options.space_to_tab}&file_type=${options.file_type}&dbkey=${
options.dbkey
}&tag_using_filenames=${options.tag_using_filenames}`
`${Galaxy.root}api/libraries/datasets?encoded_folder_id=${that.id}&source=${
options.source
}&path=${popped_item}&preserve_dirs=${options.preserve_dirs}&link_data=${
options.link_data
}&to_posix_lines=${options.to_posix_lines}&space_to_tab=${options.space_to_tab}&file_type=${
options.file_type
}&dbkey=${options.dbkey}&tag_using_filenames=${options.tag_using_filenames}`
)
);
promise
@@ -124,9 +124,9 @@ var LibraryView = Backbone.View.extend({
placeholder: "Click to select a role",
container: self.$el.find(`#${id}`),
ajax: {
url: `${Galaxy.root}api/libraries/${self.id}/permissions?scope=available&is_library_access=${
is_library_access
}`,
url: `${Galaxy.root}api/libraries/${
self.id
}/permissions?scope=available&is_library_access=${is_library_access}`,
dataType: "json",
quietMillis: 100,
data: function(term, page) {
@@ -7,7 +7,7 @@ import Deferred from "utils/deferred";
import Ui from "mvc/ui/ui-misc";
import FormBase from "mvc/form/form-view";
import Citations from "components/Citations.vue";
import Vue from "libs/vue";
import Vue from "vue";
export default FormBase.extend({
initialize: function(options) {
var self = this;
+1 -3
View File
@@ -269,9 +269,7 @@ var View = Backbone.View.extend({
} else if (batch_n !== n) {
this.form.highlight(
input_id,
`Please make sure that you select the same number of inputs for all batch mode fields. This field contains <b>${
n
}</b> selection(s) while a previous field contains <b>${batch_n}</b>.`
`Please make sure that you select the same number of inputs for all batch mode fields. This field contains <b>${n}</b> selection(s) while a previous field contains <b>${batch_n}</b>.`
);
return false;
}
@@ -106,10 +106,7 @@ $.extend(CanvasManager.prototype, {
// If it appears that the user is trying to copy/paste text, we
// pass that through.
if (window.getSelection().toString() === "") {
if (
this.app.workflow.active_node &&
this.app.workflow.active_node.type !== "subworkflow"
) {
if (this.app.workflow.active_node && this.app.workflow.active_node.type !== "subworkflow") {
e.clipboardData.setData(
"application/json",
JSON.stringify({
@@ -35,9 +35,7 @@ $.extend(Workflow.prototype, {
}
if (!this.canLabelOutputWith(toLabel)) {
Toastr.warning(
`Workflow contains duplicate workflow output labels ${
toLabel
}. This must be fixed before it can be saved.`
`Workflow contains duplicate workflow output labels ${toLabel}. This must be fixed before it can be saved.`
);
}
if (toLabel) {
@@ -277,9 +277,7 @@ export default Backbone.View.extend({
if (upgrade_message) {
window.show_modal(
"Issues loading this workflow",
`Please review the following issues, possibly resulting from tool upgrades or changes.<p><ul>${
upgrade_message
}</ul></p>`,
`Please review the following issues, possibly resulting from tool upgrades or changes.<p><ul>${upgrade_message}</ul></p>`,
{ Continue: hide_modal }
);
} else {
@@ -560,9 +558,7 @@ export default Backbone.View.extend({
if (upgrade_message) {
window.show_modal(
"Subworkflow embedded with changes",
`Problems were encountered loading this workflow (possibly a result of tool upgrades). Please review the following parameters and then save.<ul>${
upgrade_message
}</ul>`,
`Problems were encountered loading this workflow (possibly a result of tool upgrades). Please review the following parameters and then save.<ul>${upgrade_message}</ul>`,
{ Continue: hide_modal }
);
} else {
@@ -103,9 +103,7 @@ var WorkflowItemView = Backbone.View.extend({
} value="${wfId}">`;
var trHtml = `<td><div class="dropdown"><button class="menubutton" type="button" data-toggle="dropdown">${_.escape(
this.model.get("name")
)}<span class="caret"></span></button>${this._templateActions()}</div></td><td><span><div class="${
wfId
} tags-display"></div></td><td>${
)}<span class="caret"></span></button>${this._templateActions()}</div></td><td><span><div class="${wfId} tags-display"></div></td><td>${
this.model.get("owner") === Galaxy.user.attributes.username ? "You" : this.model.get("owner")
}</span></td><td>${this.model.get("number_of_steps")}</td><td>${
this.model.get("published") ? "Yes" : "No"
@@ -323,9 +321,7 @@ var WorkflowListView = Backbone.View.extend({
"<th>Published</th>" +
"<th>Show in tools panel</th>" +
"</tr></thead>";
return `${
tableHtml
}<tbody class="workflow-search "><div class="hidden_description_layer"><p>Drop workflow files here to import</p></tbody></table></div>`;
return `${tableHtml}<tbody class="workflow-search "><div class="hidden_description_layer"><p>Drop workflow files here to import</p></tbody></table></div>`;
},
/** Main template */
+1 -2
View File
@@ -34,8 +34,7 @@ var paths = {
'jquery-mousewheel': [ 'jquery.mousewheel.js', 'jquery/jquery.mousewheel.js' ],
'raven-js': ['dist/raven.js', 'raven.js'],
'requirejs': [ 'require.js', 'require.js' ],
'underscore': [ 'underscore.js', 'underscore.js' ],
'vue': [ 'dist/vue.js', 'vue.js' ]
'underscore': [ 'underscore.js', 'underscore.js' ]
},
libs: ['galaxy/scripts/libs/**/*.js']
};
+7 -7
View File
@@ -28,7 +28,7 @@
"raven-js": "^3.17.0",
"requirejs": "2",
"underscore": "^1.8.3",
"vue": "^2.5.3"
"vue": "^2.5.9"
},
"scripts": {
"watch": "gulp stage-libs && concurrently \"yarn run webpack-watch\" \"yarn run gulp watch\" \"yarn run style-watch\"",
@@ -55,11 +55,11 @@
"devDependencies": {
"babel-core": "^6.24.0",
"babel-loader": "^7.1.1",
"babel-preset-env": "^1.3.2",
"concurrently": "^3.4.0",
"babel-preset-env": "^1.6.1",
"concurrently": "^3.5.1",
"css-loader": "^0.28.7",
"del": "^3.0.0",
"expose-loader": "^0.7.3",
"expose-loader": "^0.7.4",
"grunt": "^0.4.5",
"grunt-bower-install-simple": "^1.1.0",
"grunt-cli": "^0.1.13",
@@ -87,11 +87,11 @@
"karma-webpack": "^2.0.6",
"phantomjs-polyfill": "0.0.2",
"phantomjs-prebuilt": "^2.1.7",
"prettier": "^1.7.4",
"prettier": "^1.9.1",
"qunitjs": "^2.4.1",
"sinon": "^4.1.2",
"vue-loader": "^13.5.0",
"vue-template-compiler": "^2.5.3",
"webpack": "^3.6.0"
"vue-template-compiler": "^2.5.9",
"webpack": "^3.10.0"
}
}
+1 -1
View File
@@ -25,7 +25,7 @@ var commonLibs = [
"libs/farbtastic",
"libs/bootstrap",
"libs/bootstrap-tour",
"libs/vue",
"vue",
// mvc
"libs/underscore",
"libs/backbone",
+23 -19
View File
@@ -887,9 +887,9 @@ babel-plugin-transform-strict-mode@^6.24.1:
babel-runtime "^6.22.0"
babel-types "^6.24.1"
babel-preset-env@^1.3.2:
version "1.6.0"
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4"
babel-preset-env@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48"
dependencies:
babel-plugin-check-es2015-constants "^6.22.0"
babel-plugin-syntax-trailing-function-commas "^6.22.0"
@@ -1659,9 +1659,9 @@ concat-stream@~1.4.6:
readable-stream "~1.1.9"
typedarray "~0.0.5"
concurrently@^3.4.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-3.5.0.tgz#8cf1b7707a6916a78a4ff5b77bb04dec54b379b2"
concurrently@^3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-3.5.1.tgz#ee8b60018bbe86b02df13e5249453c6ececd2521"
dependencies:
chalk "0.5.1"
commander "2.6.0"
@@ -2616,9 +2616,9 @@ expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
expose-loader@^0.7.3:
version "0.7.3"
resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.3.tgz#35fbd3659789e4faa81f59de8b7e9fc39e466d51"
expose-loader@^0.7.4:
version "0.7.4"
resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.4.tgz#9bcdd3878b5da9107930b55a03f65afe90b3314a"
extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
version "3.0.1"
@@ -5894,10 +5894,14 @@ preserve@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
prettier@^1.7.0, prettier@^1.7.4:
prettier@^1.7.0:
version "1.8.2"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.8.2.tgz#bff83e7fd573933c607875e5ba3abbdffb96aeb8"
prettier@^1.9.1:
version "1.9.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.9.1.tgz#41638a0d47c1efbd1b7d5a742aaa5548eab86d70"
pretty-bytes@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84"
@@ -7495,9 +7499,9 @@ vue-style-loader@^3.0.0:
hash-sum "^1.0.2"
loader-utils "^1.0.2"
vue-template-compiler@^2.5.3:
version "2.5.3"
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.5.3.tgz#ab631b0694e211a6aaf0d800102b37836aae36a4"
vue-template-compiler@^2.5.9:
version "2.5.9"
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.5.9.tgz#7fabc73c8d3d12d32340cd86c5fc33e00e86d686"
dependencies:
de-indent "^1.0.2"
he "^1.1.0"
@@ -7506,9 +7510,9 @@ vue-template-es2015-compiler@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz#dc42697133302ce3017524356a6c61b7b69b4a18"
vue@^2.5.3:
version "2.5.3"
resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.3.tgz#e1a3b1f49b6e93e574ce040b95cbc873912fecc1"
vue@^2.5.9:
version "2.5.9"
resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.9.tgz#b2380cd040915dca69881dafd121d760952e65f7"
walk-sync@0.3.1:
version "0.3.1"
@@ -7577,9 +7581,9 @@ webpack@^1.14.0:
watchpack "^0.2.1"
webpack-core "~0.6.9"
webpack@^3.6.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.7.0.tgz#9081d0b1ba4950e34ddc54195721eba4bf205e83"
webpack@^3.10.0:
version "3.10.0"
resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.10.0.tgz#5291b875078cf2abf42bdd23afe3f8f96c17d725"
dependencies:
acorn "^5.0.0"
acorn-dynamic-import "^2.0.0"
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
define("mvc/tool/tool-form-base",["exports","utils/localization","utils/utils","utils/deferred","mvc/ui/ui-misc","mvc/form/form-view","components/Citations.vue","libs/vue"],function(e,t,i,n,o,r,a,s){"use strict";function l(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(e,"__esModule",{value:!0});var u=l(t),d=(l(i),l(n)),c=l(o),f=l(r),p=l(a),h=l(s);e.default=f.default.extend({initialize:function(e){var t=this;this.deferred=new d.default,f.default.prototype.initialize.call(this,e),this._update(this.model.get("initialmodel")),this.model.get("listen_to_history")&&parent.Galaxy&&parent.Galaxy.currHistoryPanel&&this.listenTo(parent.Galaxy.currHistoryPanel.collection,"change",function(){t.model.get("onchange")()}),this.$el.on("remove",function(){t._destroy()})},_update:function(e){var t=this;(e=e||this.model.get("buildmodel"))?(this.deferred.reset(),this.deferred.execute(function(i){e(i,t),i.then(function(){t._render()})})):this._render()},_destroy:function(){var e=this;this.$el.off().hide(),this.deferred.execute(function(){f.default.prototype.remove.call(e),Galaxy.emit.debug("tool-form-base::_destroy()","Destroy view.")})},_render:function(){var e=this,t=this.model.attributes;this.model.set({title:t.fixed_title||"<b>"+t.name+"</b> "+t.description+" (Galaxy Version "+t.version+")",operations:!t.hide_operations&&this._operations(),onchange:function(){e.deferred.reset(),e.deferred.execute(function(t){e.model.get("postchange")(t,e)})}}),this.render(),this.model.get("collapsible")||this.$el.append($("<div/>").addClass("ui-margin-top-large").append(this._footer())),this.show_message&&this.message.update({status:"success",message:"Now you are using '"+t.name+"' version "+t.version+", id '"+t.id+"'.",persistent:!1}),this.show_message=!0},_operations:function(){var e=this,t=this.model.attributes,i=new c.default.ButtonMenu({icon:"fa-cubes",title:!t.narrow&&"Versions"||null,tooltip:"Select another tool version"});if(!t.sustain_version&&t.versions&&t.versions.length>1)for(var n in t.versions){var o=t.versions[n];o!=t.version&&i.addMenu({title:"Switch to "+o,version:o,icon:"fa-cube",onclick:function(){e.model.set("id",t.id.replace(t.version,this.version)),e.model.set("version",this.version),e._update()}})}else i.$el.hide();var r=new c.default.ButtonMenu({id:"options",icon:"fa-caret-down",title:!t.narrow&&"Options"||null,tooltip:"View available options"});return t.biostar_url&&(r.addMenu({icon:"fa-question-circle",title:"Question?",onclick:function(){window.open(t.biostar_url+"/p/new/post/")}}),r.addMenu({icon:"fa-search",title:(0,u.default)("Search"),onclick:function(){window.open(t.biostar_url+"/local/search/page/?q="+t.name)}})),r.addMenu({icon:"fa-share",title:(0,u.default)("Share"),onclick:function(){prompt("Copy to clipboard: Ctrl+C, Enter",window.location.origin+Galaxy.root+"root?tool_id="+t.id)}}),Galaxy.user&&Galaxy.user.get("is_admin")&&r.addMenu({icon:"fa-download",title:(0,u.default)("Download"),onclick:function(){window.location.href=Galaxy.root+"api/tools/"+t.id+"/download"}}),t.requirements&&t.requirements.length>0&&r.addMenu({icon:"fa-info-circle",title:(0,u.default)("Requirements"),onclick:function(){!this.requirements_visible||e.portlet.collapsed?(this.requirements_visible=!0,e.portlet.expand(),e.message.update({persistent:!0,message:e._templateRequirements(t),status:"info"})):(this.requirements_visible=!1,e.message.update({message:""}))}}),t.sharable_url&&r.addMenu({icon:"fa-external-link",title:(0,u.default)("See in Tool Shed"),onclick:function(){window.open(t.sharable_url)}}),$.getJSON("/api/webhooks/tool-menu/all",function(e){_.each(e,function(e){e.activate&&e.config.function&&r.addMenu({icon:e.config.icon,title:e.config.title,onclick:function(){new Function("options",e.config.function)(t)}})})}),{menu:r,versions:i}},_footer:function(){var e=this.model.attributes,t=$("<div/>").append(this._templateHelp(e));if(e.citations){var i=h.default.extend(p.default),n=document.createElement("div");t.append(n),new i({propsData:{id:e.id,source:"tools"}}).$mount(n)}return t},_templateHelp:function(e){var t=$("<div/>").addClass("ui-form-help").append(e.help);return t.find("a").attr("target","_blank"),t},_templateRequirements:function(e){var t=e.requirements.length;if(t>0){var i="This tool requires ";_.each(e.requirements,function(e,n){i+=e.name+(e.version?" (Version "+e.version+")":"")+(n<t-2?", ":n==t-2?" and ":"")});var n=$("<a/>").attr("target","_blank").attr("href","https://galaxyproject.org/tools/requirements/").text("here");return $("<span/>").append(i+". Click ").append(n).append(" for more information.")}return"No requirements found."}})});
define("mvc/tool/tool-form-base",["exports","utils/localization","utils/utils","utils/deferred","mvc/ui/ui-misc","mvc/form/form-view","components/Citations.vue","vue"],function(e,t,i,n,o,r,a,s){"use strict";function l(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(e,"__esModule",{value:!0});var u=l(t),d=(l(i),l(n)),c=l(o),f=l(r),p=l(a),h=l(s);e.default=f.default.extend({initialize:function(e){var t=this;this.deferred=new d.default,f.default.prototype.initialize.call(this,e),this._update(this.model.get("initialmodel")),this.model.get("listen_to_history")&&parent.Galaxy&&parent.Galaxy.currHistoryPanel&&this.listenTo(parent.Galaxy.currHistoryPanel.collection,"change",function(){t.model.get("onchange")()}),this.$el.on("remove",function(){t._destroy()})},_update:function(e){var t=this;(e=e||this.model.get("buildmodel"))?(this.deferred.reset(),this.deferred.execute(function(i){e(i,t),i.then(function(){t._render()})})):this._render()},_destroy:function(){var e=this;this.$el.off().hide(),this.deferred.execute(function(){f.default.prototype.remove.call(e),Galaxy.emit.debug("tool-form-base::_destroy()","Destroy view.")})},_render:function(){var e=this,t=this.model.attributes;this.model.set({title:t.fixed_title||"<b>"+t.name+"</b> "+t.description+" (Galaxy Version "+t.version+")",operations:!t.hide_operations&&this._operations(),onchange:function(){e.deferred.reset(),e.deferred.execute(function(t){e.model.get("postchange")(t,e)})}}),this.render(),this.model.get("collapsible")||this.$el.append($("<div/>").addClass("ui-margin-top-large").append(this._footer())),this.show_message&&this.message.update({status:"success",message:"Now you are using '"+t.name+"' version "+t.version+", id '"+t.id+"'.",persistent:!1}),this.show_message=!0},_operations:function(){var e=this,t=this.model.attributes,i=new c.default.ButtonMenu({icon:"fa-cubes",title:!t.narrow&&"Versions"||null,tooltip:"Select another tool version"});if(!t.sustain_version&&t.versions&&t.versions.length>1)for(var n in t.versions){var o=t.versions[n];o!=t.version&&i.addMenu({title:"Switch to "+o,version:o,icon:"fa-cube",onclick:function(){e.model.set("id",t.id.replace(t.version,this.version)),e.model.set("version",this.version),e._update()}})}else i.$el.hide();var r=new c.default.ButtonMenu({id:"options",icon:"fa-caret-down",title:!t.narrow&&"Options"||null,tooltip:"View available options"});return t.biostar_url&&(r.addMenu({icon:"fa-question-circle",title:"Question?",onclick:function(){window.open(t.biostar_url+"/p/new/post/")}}),r.addMenu({icon:"fa-search",title:(0,u.default)("Search"),onclick:function(){window.open(t.biostar_url+"/local/search/page/?q="+t.name)}})),r.addMenu({icon:"fa-share",title:(0,u.default)("Share"),onclick:function(){prompt("Copy to clipboard: Ctrl+C, Enter",window.location.origin+Galaxy.root+"root?tool_id="+t.id)}}),Galaxy.user&&Galaxy.user.get("is_admin")&&r.addMenu({icon:"fa-download",title:(0,u.default)("Download"),onclick:function(){window.location.href=Galaxy.root+"api/tools/"+t.id+"/download"}}),t.requirements&&t.requirements.length>0&&r.addMenu({icon:"fa-info-circle",title:(0,u.default)("Requirements"),onclick:function(){!this.requirements_visible||e.portlet.collapsed?(this.requirements_visible=!0,e.portlet.expand(),e.message.update({persistent:!0,message:e._templateRequirements(t),status:"info"})):(this.requirements_visible=!1,e.message.update({message:""}))}}),t.sharable_url&&r.addMenu({icon:"fa-external-link",title:(0,u.default)("See in Tool Shed"),onclick:function(){window.open(t.sharable_url)}}),$.getJSON("/api/webhooks/tool-menu/all",function(e){_.each(e,function(e){e.activate&&e.config.function&&r.addMenu({icon:e.config.icon,title:e.config.title,onclick:function(){new Function("options",e.config.function)(t)}})})}),{menu:r,versions:i}},_footer:function(){var e=this.model.attributes,t=$("<div/>").append(this._templateHelp(e));if(e.citations){var i=h.default.extend(p.default),n=document.createElement("div");t.append(n),new i({propsData:{id:e.id,source:"tools"}}).$mount(n)}return t},_templateHelp:function(e){var t=$("<div/>").addClass("ui-form-help").append(e.help);return t.find("a").attr("target","_blank"),t},_templateRequirements:function(e){var t=e.requirements.length;if(t>0){var i="This tool requires ";_.each(e.requirements,function(e,n){i+=e.name+(e.version?" (Version "+e.version+")":"")+(n<t-2?", ":n==t-2?" and ":"")});var n=$("<a/>").attr("target","_blank").attr("href","https://galaxyproject.org/tools/requirements/").text("here");return $("<span/>").append(i+". Click ").append(n).append(" for more information.")}return"No requirements found."}})});