diff --git a/.circleci/config.yml b/.circleci/config.yml
index 32dfbce7036..ef892c831e9 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -139,9 +139,6 @@ jobs:
<<: *set_workdir
steps:
- *restore_repo_cache
- - run: sudo apt-get update
- # For uwsgi
- - run: sudo apt-get install -y libpython3.5-dev
- *install_tox
- run: tox -e py35-first_startup
validate_test_tools:
diff --git a/client/galaxy/scripts/admin.toolshed.js b/client/galaxy/scripts/admin.toolshed.js
deleted file mode 100644
index 04182abfda5..00000000000
--- a/client/galaxy/scripts/admin.toolshed.js
+++ /dev/null
@@ -1,80 +0,0 @@
-import Backbone from "backbone";
-import { getGalaxyInstance } from "app";
-import mod_shed_list_view from "mvc/toolshed/shed-list-view";
-import mod_categories_view from "mvc/toolshed/categories-view";
-import mod_repositories_view from "mvc/toolshed/repositories-view";
-import mod_repository_view from "mvc/toolshed/repository-view";
-import mod_repoqueue_view from "mvc/toolshed/repository-queue-view";
-import mod_repo_status_view from "mvc/toolshed/repo-status-view";
-import mod_workflows_view from "mvc/toolshed/workflows-view";
-
-var AdminToolshedRouter = Backbone.Router.extend({
- routes: {
- "": "toolsheds",
- sheds: "toolsheds",
- queue: "queue",
- workflows: "workflows",
- "status/r/:repositories": "status",
- status: "status",
- "categories/s/:tool_shed": "categories",
- "category/s/:tool_shed/c/:category_id/k/:sort_key/p/:page/t/:sort_order": "repositories",
- "repository/s/:tool_shed/r/:repository_id": "repository"
- }
-});
-
-var GalaxyAdminToolshedApp = Backbone.View.extend({
- app_config: {
- known_views: ["toolsheds", "queue", "status", "categories", "repositories", "repository"]
- },
-
- initialize: function() {
- const Galaxy = getGalaxyInstance();
-
- Galaxy.admintoolshedapp = this;
- this.admin_toolshed_router = new AdminToolshedRouter();
-
- this.admin_toolshed_router.on("route:queue", () => {
- Galaxy.admintoolshedapp.adminRepoQueueView = new mod_repoqueue_view.RepoQueueView();
- });
- this.admin_toolshed_router.on("route:toolsheds", () => {
- Galaxy.admintoolshedapp.adminShedListView = new mod_shed_list_view.ShedListView();
- });
- this.admin_toolshed_router.on("route:categories", tool_shed => {
- Galaxy.admintoolshedapp.adminShedCategoriesView = new mod_categories_view.CategoryView({
- tool_shed: tool_shed.replace(/\//g, "%2f")
- });
- });
- this.admin_toolshed_router.on(
- "route:repositories",
- (tool_shed, category_id, sort_key = "name", page = 1, sort_order = "asc") => {
- Galaxy.admintoolshedapp.adminShedCategoryView = new mod_repositories_view.Category({
- tool_shed: tool_shed.replace(/\//g, "%2f"),
- category_id: category_id,
- page: page,
- sort_order: sort_order,
- sort_key: sort_key
- });
- }
- );
- this.admin_toolshed_router.on("route:repository", (tool_shed, repository_id) => {
- Galaxy.admintoolshedapp.adminRepositoryView = new mod_repository_view.RepoDetails({
- tool_shed: tool_shed.replace(/\//g, "%2f"),
- repository_id: repository_id
- });
- });
- this.admin_toolshed_router.on("route:status", repositories => {
- Galaxy.admintoolshedapp.adminRepoStatusView = new mod_repo_status_view.RepoStatus({
- repositories: repositories.split("|")
- });
- });
- this.admin_toolshed_router.on("route:workflows", () => {
- Galaxy.admintoolshedapp.adminWorkflowsView = new mod_workflows_view.Workflows();
- });
-
- Backbone.history.start({ pushState: false });
- }
-});
-
-export default {
- GalaxyApp: GalaxyAdminToolshedApp
-};
diff --git a/client/galaxy/scripts/bundleEntries.js b/client/galaxy/scripts/bundleEntries.js
index 0390749fb83..4112b14bbb2 100644
--- a/client/galaxy/scripts/bundleEntries.js
+++ b/client/galaxy/scripts/bundleEntries.js
@@ -17,7 +17,6 @@ import Circster from "viz/circster";
export { PhylovizView as phyloviz } from "viz/phyloviz";
export { SweepsterVisualization, SweepsterVisualizationView } from "viz/sweepster";
import GalaxyLibrary from "galaxy.library";
-import AdminToolshed from "admin.toolshed";
export { default as pages } from "galaxy.pages";
export { createTabularDatasetChunkedView } from "mvc/dataset/data";
import { HistoryCollection } from "mvc/history/history-model";
@@ -36,10 +35,6 @@ export { default as IES } from "galaxy.interactive_environments";
export { Toast } from "ui/toast"; // TODO: remove when external consumers are updated/gone (IES right now)
-export function adminToolshed(options) {
- new AdminToolshed.GalaxyApp(options);
-}
-
export function trackster(options) {
new TracksterUIView(options);
}
diff --git a/client/galaxy/scripts/mvc/toolshed/categories-view.js b/client/galaxy/scripts/mvc/toolshed/categories-view.js
deleted file mode 100644
index 226da29c9bc..00000000000
--- a/client/galaxy/scripts/mvc/toolshed/categories-view.js
+++ /dev/null
@@ -1,98 +0,0 @@
-import _ from "underscore";
-import $ from "jquery";
-import Backbone from "backbone";
-import { getAppRoot } from "onload/loadConfig";
-import toolshed_model from "mvc/toolshed/toolshed-model";
-import toolshed_util from "mvc/toolshed/util";
-import "libs/jquery/jquery-ui";
-
-var ToolShedCategories = Backbone.View.extend({
- el: "#center",
-
- initialize: function(options) {
- this.options = _.defaults(this.options || options, this.defaults);
- this.model = new toolshed_model.Categories();
- this.model.url = `${this.model.url}?tool_shed_url=${this.options.tool_shed}`;
- this.model.tool_shed = options.tool_shed.replace(/\//g, "%2f");
- this.model.fetch();
- this.listenTo(this.model, "sync", this.render);
- },
-
- render: function(options) {
- const category_list_template = this.templateCategoryList();
- this.options = _.extend(this.options, options);
- this.options.categories = this.model.models;
- this.options.queue = toolshed_util.queueLength();
- this.$el.html(category_list_template(this.options));
- this.bindEvents();
- $("#center").css("overflow", "auto");
- },
-
- bindEvents: function() {
- $("#search_box").autocomplete({
- source: (request, response) => {
- var shed_url = this.model.tool_shed.replace(/%2f/g, "/");
- var base_url = `${getAppRoot()}api/tool_shed/search`;
- var params = {
- term: request.term,
- tool_shed_url: shed_url
- };
- $.post(base_url, params, data => {
- console.log(data);
- var result_list = toolshed_util.shedParser(data);
- response(result_list);
- });
- },
- minLength: 3,
- select: (event, ui) => {
- var tsr_id = ui.item.value;
- var new_route = `repository/s/${this.model.tool_shed}/r/${tsr_id}`;
- Backbone.history.navigate(new_route, {
- trigger: true,
- replace: true
- });
- }
- });
- },
-
- templateCategoryList: function() {
- return _.template(
- `
-
-
-
- ' name='search' placeholder='Search repositories' size='30' type='text' />
-
-
-
-
`
- );
- }
-});
-
-export default {
- CategoryView: ToolShedCategories
-};
diff --git a/client/galaxy/scripts/mvc/toolshed/repo-status-view.js b/client/galaxy/scripts/mvc/toolshed/repo-status-view.js
deleted file mode 100644
index ebdd99624b5..00000000000
--- a/client/galaxy/scripts/mvc/toolshed/repo-status-view.js
+++ /dev/null
@@ -1,132 +0,0 @@
-import $ from "jquery";
-import Backbone from "backbone";
-import _ from "underscore";
-import _l from "utils/localization";
-import toolshed_model from "mvc/toolshed/toolshed-model";
-import toolshed_util from "mvc/toolshed/util";
-
-var ToolShedRepoStatusView = Backbone.View.extend({
- el: "#center",
-
- initialize: function(options) {
- this.options = _.defaults(this.options || [{}], options, this.defaults);
- this.model = new toolshed_model.RepoStatus();
- this.listenTo(this.model, "sync", this.render);
- this.model.url += `?repositories=${this.options.repositories.join("|")}`;
- this.model.fetch();
- this.timer = window.setInterval(() => {
- var terminal_states = ["installed", "error"];
- var all_done = true;
- _.some(this.model.models, repository => {
- var repo_status = repository.get("status").toLowerCase();
- if (terminal_states.indexOf(repo_status) === -1) {
- all_done = false;
- return true;
- }
- });
- if (all_done) {
- window.clearInterval(this.timer);
- } else {
- this.model.fetch();
- }
- }, 2000);
- },
-
- close: function() {
- window.clearInterval(this.timer);
- },
-
- render: function(options) {
- this.options = _.extend(this.options, options);
- var repo_status_template = this.templateRepoStatus();
- this.$el.html(
- repo_status_template({
- title: _l("Repository Status"),
- repositories: this.model.models,
- queue: toolshed_util.queueLength()
- })
- );
- $("#center").css("overflow", "auto");
- },
-
- templateRepoStatus: function() {
- return _.template(
- `
-
-
-
-
- <% _.each(repositories, function(repository) { %>
-
- |
-
-
-
- |
-
-
-
-
- |
-
-
-
-
- |
-
-
-
-
- |
-
-
-
-
- |
-
- <% }); %>
-
-
-
`
- );
- }
-});
-
-export default {
- RepoStatus: ToolShedRepoStatusView
-};
diff --git a/client/galaxy/scripts/mvc/toolshed/repositories-view.js b/client/galaxy/scripts/mvc/toolshed/repositories-view.js
deleted file mode 100644
index fca581d61f3..00000000000
--- a/client/galaxy/scripts/mvc/toolshed/repositories-view.js
+++ /dev/null
@@ -1,222 +0,0 @@
-import _ from "underscore";
-import $ from "jquery";
-import Backbone from "backbone";
-import { getAppRoot } from "onload/loadConfig";
-import toolshed_model from "mvc/toolshed/toolshed-model";
-import toolshed_util from "mvc/toolshed/util";
-import "libs/jquery/jquery-ui";
-
-var ToolShedCategoryContentsView = Backbone.View.extend({
- el: "#center",
-
- initialize: function(params) {
- this.params = params;
- this.model = new toolshed_model.CategoryCollection();
- this.listenTo(this.model, "sync", this.render);
- var shed = params.tool_shed.replace(/\//g, "%2f");
- this.model.url += `?tool_shed_url=${shed}`;
- this.model.url += `&category_id=${params.category_id}`;
- this.model.url += `&sort_key=${params.sort_key}`;
- this.model.url += `&sort_order=${params.sort_order}`;
- this.model.url += `&page=${params.page}`;
- this.model.tool_shed = shed;
- this.model.category = params.category_id;
- this.model.fetch();
- },
-
- render: function(options) {
- this.options = _.defaults(this.options || {}, options);
- var category_contents_template = this.templateCategoryContents();
- var page_navigation_template = this.templatePageNavigation();
- var sorting = {
- class: { owner: "fa-sort", description: "fa-sort", name: "fa-sort" },
- direction: { owner: "asc", description: "asc", name: "asc" }
- };
- sorting.class[this.params.sort_key] = this.params.sort_order == "desc" ? "fa-sort-down" : "fa-sort-up";
- sorting.direction[this.params.sort_key] = this.params.sort_order == "asc" ? "desc" : "asc";
- var previous_page = Math.max(this.params.page - 1, 1);
- var pages = parseInt(this.model.models[0].get("repository_count") % 25) + 1;
- var next_page = Math.min(parseInt(this.params.page) + 1, pages);
- var pagination_params = {
- page: this.params.page,
- next: next_page,
- previous: previous_page,
- pages: pages
- };
- if (pages > 5) {
- var page = parseInt(this.params.page);
- var page_slice = Array();
- var slice_start = Math.max(page - 2, 2);
- var i = slice_start;
- var slice_end = Math.min(Math.min(page + 2, slice_start + 4), pages);
- for (i = slice_start; i <= slice_end; i++) {
- page_slice.push(i);
- }
- pagination_params["page_slice"] = page_slice;
- }
- this.$el.html(
- category_contents_template({
- page_navigation: page_navigation_template(pagination_params),
- category: this.model.models[0],
- tool_shed: this.model.tool_shed,
- queue: toolshed_util.queueLength(),
- sorting: sorting,
- page: this.params.page
- })
- );
- $("#center").css("overflow", "auto");
- this.bindEvents();
- },
-
- bindEvents: function() {
- $("#search_box").autocomplete({
- source: (request, response) => {
- var shed_url = this.model.tool_shed.replace(/%2f/g, "/");
- var base_url = `${getAppRoot()}api/tool_shed/search`;
- var params = {
- term: request.term,
- tool_shed_url: shed_url
- };
- $.post(base_url, params, data => {
- var result_list = toolshed_util.shedParser(data);
- response(result_list);
- });
- },
- minLength: 3,
- select: (event, ui) => {
- var tsr_id = ui.item.value;
- var new_route = `repository/s/${this.model.tool_shed}/r/${tsr_id}`;
- Backbone.history.navigate(new_route, {
- trigger: true,
- replace: true
- });
- }
- });
- $(".fa-fw").on("click", ev => {
- var parameters = {};
- parameters.field = $(ev.target).attr("data-field");
- parameters.direction = $(ev.target).attr("data-direction");
- var new_route = `category/s/${this.model.tool_shed}/c/${this.model.category}/k/${parameters.field}/p/${
- this.params.page
- }/t/${parameters.direction}`;
- Backbone.history.navigate(new_route, {
- trigger: true,
- replace: true
- });
- });
- $(".pagenav").on("click", ev => {
- var page = $(ev.target).attr("data-page");
- var new_route = `category/s/${this.model.tool_shed}/c/${this.model.category}/k/${
- this.params.sort_key
- }/p/${page}/t/${this.params.sort_order}`;
- Backbone.history.navigate(new_route, {
- trigger: true,
- replace: true
- });
- });
- },
-
- templatePageNavigation: function() {
- return _.template(
- `
- <% if (page != 1) { %>
-
-
- <% } else { %>
-
-
- <% } %>
- <% if (pages > 5) { %>
- <% if (page != 1) { %>
-
1
- <% if (page != 2) { %>
-
…
- <% } %>
- <% } else { %>
-
1
- <% } %>
- <% _.each(page_slice, function(i) { %>
- <% if (i == page) { %>
-
<%= i %>
- <% } else { %>
-
<%= i %>
- <% } %>
- <% }); %>
- <% var last_pages = [pages - 2, pages - 1, pages]; %>
- <% if (last_pages.indexOf(parseInt(page)) == -1) { %>
-
…
-
<%= pages %>
- <% } %>
- <% } else { %>
- <% for (i = 1; i <= pages; i++) { %>
- <% if (i == page) { %>
-
<%= i %>
- <% } else { %>
-
<%= i %>
- <% } %>
- <% } %>
- <% } %>
- <% if (page < pages) { %>
-
-
- <% } else { %>
-
-
- <% } %>
-
`
- );
- },
-
- templateCategoryContents: function() {
- return _.template(
- `
-
-
-
-
- " placeholder="Search repositories by name or id" size="60" type="text" />
-
-
- <% if (category.get('repository_count') > 25) { %>
- <%= page_navigation %>
- <% } %>
-
-
-
- <% _.each(category.get("repositories"), function(repository) { %>
-
- | <%= repository.owner %> |
-
-
- |
- <%= repository.description %> |
- <%= repository.type %> |
-
- <% }); %>
-
-
-
`
- );
- }
-});
-
-export default {
- Category: ToolShedCategoryContentsView
-};
diff --git a/client/galaxy/scripts/mvc/toolshed/repository-queue-view.js b/client/galaxy/scripts/mvc/toolshed/repository-queue-view.js
deleted file mode 100644
index a00f7948c31..00000000000
--- a/client/galaxy/scripts/mvc/toolshed/repository-queue-view.js
+++ /dev/null
@@ -1,166 +0,0 @@
-import _ from "underscore";
-import $ from "jquery";
-import Backbone from "backbone";
-import { getAppRoot } from "onload/loadConfig";
-import _l from "utils/localization";
-import toolshed_model from "mvc/toolshed/toolshed-model";
-import toolshed_util from "mvc/toolshed/util";
-
-var View = Backbone.View.extend({
- el: "#center",
-
- defaults: [],
-
- initialize: function(options) {
- this.model = new toolshed_model.RepoQueue();
- this.listenTo(this.model, "sync", this.render);
- this.model.fetch();
- this.render();
- },
-
- render: function(options) {
- var repo_queue_template = this.templateRepoQueue();
- var repositories = this.model.models;
- this.$el.html(
- repo_queue_template({
- repositories: repositories,
- queue: toolshed_util.queueLength()
- })
- );
- $("#center").css("overflow", "auto");
- this.bindEvents();
- },
-
- bindEvents: function() {
- $(".install_one").on("click", ev => {
- const repository_metadata = this.loadFromQueue($(ev.target).attr("data-repokey"));
- this.installFromQueue(repository_metadata, $(ev.target).attr("data-repokey"));
- });
- $(".remove_one").on("click", ev => {
- const queue_key = $(ev.target).attr("data-repokey");
- const repo_queue = JSON.parse(window.localStorage.repositories);
- if (repo_queue.hasOwnProperty(queue_key)) {
- this.removeRow(repo_queue[queue_key].id);
- delete repo_queue[queue_key];
- }
- window.localStorage.repositories = JSON.stringify(repo_queue);
- });
- $("#clear_queue").on("click", () => {
- const repo_queue = JSON.parse(window.localStorage.repositories);
- for (const key of Object.keys(repo_queue)) {
- this.removeRow(repo_queue[key].id);
- }
- window.localStorage.repositories = "{}";
- });
- $("#from_workflow").on("click", () => {
- Backbone.history.navigate("workflows", {
- trigger: true,
- replace: true
- });
- });
- },
-
- removeRow: function(row_id) {
- $(`#queued_repository_${row_id}`).remove();
- },
-
- installFromQueue: function(repository_metadata, queue_key) {
- var params = {};
- params.install_tool_dependencies = repository_metadata.install_tool_dependencies;
- params.install_repository_dependencies = repository_metadata.install_repository_dependencies;
- params.install_resolver_dependencies = repository_metadata.install_resolver_dependencies;
- params.tool_panel_section = repository_metadata.tool_panel_section;
- params.shed_tool_conf = repository_metadata.shed_tool_conf;
- params.repositories = JSON.stringify([
- [repository_metadata.repository.id, repository_metadata.changeset_revision]
- ]);
- params.tool_shed_repository_ids = JSON.stringify([repository_metadata.repository.id]);
- params.tool_shed_url = queue_key.split("|")[0];
- params.changeset = repository_metadata.changeset_revision;
- var url = `${getAppRoot()}api/tool_shed_repositories/install?async=True`;
- $(`#queued_repository_${repository_metadata.repository.id}`).remove();
- if (window.localStorage.repositories) {
- if (queue_key === undefined) {
- queue_key = toolshed_util.queueKey(repository_metadata);
- }
- var repository_queue = JSON.parse(window.localStorage.repositories);
- if (repository_queue.hasOwnProperty(queue_key)) {
- delete repository_queue[queue_key];
- window.localStorage.repositories = JSON.stringify(repository_queue);
- }
- }
-
- $.post(url, params, data => {
- var iri_params = JSON.parse(data);
- var repositories = iri_params.repositories;
- var new_route = `status/r/${repositories.join("|")}`;
- $.post(`${getAppRoot()}admin_toolshed/install_repositories`, iri_params, data => {
- console.log("Initializing repository installation succeeded");
- });
- Backbone.history.navigate(new_route, {
- trigger: true,
- replace: true
- });
- });
- },
-
- loadFromQueue: function(queue_key) {
- var repository_queue = JSON.parse(window.localStorage.repositories);
- if (repository_queue.hasOwnProperty(queue_key)) {
- return repository_queue[queue_key];
- }
- return this.defaults;
- },
-
- templateRepoQueue: function() {
- return _.template(
- `
-
- ${_l("Repository Queue")}
-
-
- `
- );
- }
-});
-
-export default {
- RepoQueueView: View
-};
diff --git a/client/galaxy/scripts/mvc/toolshed/repository-view.js b/client/galaxy/scripts/mvc/toolshed/repository-view.js
deleted file mode 100644
index 80f9869efc8..00000000000
--- a/client/galaxy/scripts/mvc/toolshed/repository-view.js
+++ /dev/null
@@ -1,637 +0,0 @@
-import _ from "underscore";
-import $ from "jquery";
-import Backbone from "backbone";
-import { getAppRoot } from "onload/loadConfig";
-import "libs/jquery/jstree";
-import toolshed_model from "mvc/toolshed/toolshed-model";
-import Utils from "utils/utils";
-import Modal from "mvc/ui/ui-modal";
-import FormView from "mvc/form/form-view";
-import toolshed_util from "mvc/toolshed/util";
-
-var ToolShedRepositoryView = Backbone.View.extend({
- el: "#center",
-
- initialize: function(params) {
- this.options = _.defaults(this.options || {}, this.defaults);
- this.model = new toolshed_model.RepositoryCollection();
- this.listenTo(this.model, "sync", this.render);
- var shed = params.tool_shed.replace(/\//g, "%2f");
- this.model.url += `?tool_shed_url=${shed}&repository_id=${params.repository_id}`;
- this.model.tool_shed_url = params.tool_shed.replace(/%2f/g, "/");
- this.model.tool_shed = shed;
- this.model.category = params.repository_id;
- this.model.fetch();
- },
-
- render: function(options) {
- var repo_details_template = this.templateRepoDetails();
- var models = this.model.models[0];
- this.options = {
- repository: models.get("repository"),
- tool_shed: this.model.tool_shed,
- queue: toolshed_util.queueLength()
- };
- var changesets = Object.keys(this.options.repository.metadata).sort(function(a, b) {
- return parseInt(a.split(":")[0] - b.split(":")[0]);
- });
- var ordered_metadata = {};
- var unordered_metadata = this.options.repository.metadata;
- changesets.forEach(function(key) {
- ordered_metadata[key] = unordered_metadata[key];
- });
- this.options.repository.metadata = ordered_metadata;
- this.options.current_changeset = this.options.current_changeset || changesets[changesets.length - 1];
- this.options.current_metadata = this.options.repository.metadata[this.options.current_changeset];
- this.options.current_metadata.tool_shed_url = this.model.tool_shed_url;
- this.options.tools = this.options.current_metadata.tools;
- this.options.repository_dependencies_template = this.templateRepoDependencies();
- this.options.repository_dependency_template = this.templateRepoDependency();
- this.options.tps_template_global_select = this.templateGlobalSectionSelect();
- this.options.tps_template_global_create = this.templateGlobalSectionCreate();
- this.options.tps_template_tool_select = this.templateToolSectionSelect();
- this.options.tps_template_tool_create = this.templateToolSectionCreate();
- this.options.panel_section_options = this.templatePanelSelectOptions();
- this.options.tool_dependencies = models.get("tool_dependencies");
- this.options.shed_tool_conf = this.templateShedToolConf({
- shed_tool_confs: models.get("shed_conf")
- });
- this.options.panel_section_dict = models.get("panel_section_dict");
- this.options.api_url = `${getAppRoot()}api/tool_shed_repositories/install?async=True`;
- this.options = _.extend(this.options, options);
- this.$el.html(repo_details_template(this.options));
- this.checkInstalled(this.options.current_metadata);
- this.bindEvents();
- $("#center").css("overflow", "auto");
- },
-
- bindEvents: function() {
- $("#changeset").on("change", () => {
- this.options.current_changeset = $("#changeset")
- .find("option:selected")
- .text();
- this.options.current_metadata = this.options.repository.metadata[this.options.current_changeset];
- this.checkInstalled(this.options.current_metadata);
- this.reDraw(this.options);
- });
- $("#tool_panel_section_select").on("change", () => {
- this.tpsSelection();
- });
- $("#install_repository").on("click", ev => {
- ev.preventDefault();
- var params = {};
- params.repositories = JSON.stringify([
- [
- $("#install_repository").attr("data-tsrid"),
- $("#changeset")
- .find("option:selected")
- .val()
- ]
- ]);
- params.tool_shed_repository_ids = JSON.stringify([$("#install_repository").attr("data-tsrid")]);
- params.tool_shed_url = this.model.tool_shed_url;
- params.install_tool_dependencies = $("#install_tool_dependencies").val();
- params.install_repository_dependencies = $("#install_repository_dependencies").val();
- params.install_resolver_dependencies = $("#install_resolver_dependencies").val();
- params.tool_panel_section = JSON.stringify(this.panelSelect(params));
- params.shed_tool_conf = $("select[name='shed_tool_conf']")
- .find("option:selected")
- .val();
- params.changeset = $("#changeset")
- .find("option:selected")
- .val();
- var url = $("#repository_installation").attr("action");
- this.prepareInstall(params, url);
- });
- $("#queue_install").on("click", ev => {
- this.options.current_changeset = $("#changeset")
- .find("option:selected")
- .text();
- this.options.current_metadata = this.options.repository.metadata[this.options.current_changeset];
- var repository_metadata = {};
- _.each(Object.keys(this.options.current_metadata), key => {
- if (!repository_metadata[key]) {
- repository_metadata[key] = this.options.current_metadata[key];
- }
- });
- repository_metadata.install_tool_dependencies = $("#install_tool_dependencies").val();
- repository_metadata.install_repository_dependencies = $("#install_repository_dependencies").val();
- repository_metadata.install_resolver_dependencies = $("#install_resolver_dependencies").val();
- repository_metadata.tool_panel_section = JSON.stringify(this.panelSelect({}));
- repository_metadata.shed_tool_conf = $("select[name='shed_tool_conf']")
- .find("option:selected")
- .val();
- repository_metadata.tool_shed_url = this.model.tool_shed_url;
- if (repository_metadata.tool_shed_url.substr(-1) == "/") {
- repository_metadata.tool_shed_url = repository_metadata.tool_shed_url.substr(
- 0,
- repository_metadata.tool_shed_url.length - 1
- );
- }
- toolshed_util.addToQueue(repository_metadata);
- this.checkInstalled(repository_metadata);
- });
- this.toolTPSSelectionEvents();
- $(() => {
- $("#repository_dependencies").jstree();
- });
- $(".tool_form").on("click", ev => {
- var guid = $(ev.target).attr("data-guid");
- var name = $(ev.target).attr("data-name");
- var desc = $(ev.target).attr("data-desc");
- var tool_shed_url = this.model.tool_shed_url;
- var tsr_id = $("#repository_details").attr("data-tsrid");
- var changeset = $("#changeset")
- .find("option:selected")
- .val();
- var api_url = `${getAppRoot()}api/tool_shed/tool_json`;
- var params = {
- guid: guid,
- tool_shed_url: tool_shed_url,
- tsr_id: tsr_id,
- changeset: changeset
- };
- $.get(api_url, params, data => {
- var toolform = new FormView(data);
- Utils.deepeach(data.inputs, input => {
- if (input.type) {
- if (["data", "data_collection"].indexOf(input.type) != -1) {
- input.type = "hidden";
- input.info = `Data input '${input.name}' (${Utils.textify(input.extensions)})`;
- }
- }
- });
- var modal = new Modal.View();
- var modal_title = `${name} ${desc}`;
- modal.show({
- closing_events: true,
- title: modal_title,
- body: toolform.$el,
- buttons: {
- Close: function() {
- modal.hide();
- }
- }
- });
- });
- });
- $(".select-tps-button").on("click", params => {
- var changeset = this.selectedChangeset();
- var guid = params.target.attributes.getNamedItem("data-toolguid");
- this.showToolTPSSelect(guid, changeset);
- });
- $(".create-tps-button").on("click", params => {
- var changeset = this.selectedChangeset();
- var guid = params.target.attributes.getNamedItem("data-toolguid");
- this.showToolTPSCreate(guid, changeset);
- });
- $(".global-select-tps-button").on("click", () => {
- $("#tool_panel_section").replaceWith(this.options.tps_template_global_select(this.options));
- this.propagateTPS();
- this.bindEvents();
- });
- $(".global-create-tps-button").on("click", () => {
- $("#tool_panel_section").replaceWith(this.options.tps_template_global_create());
- this.bindEvents();
- });
- },
-
- checkInstalled: function(metadata) {
- var params = { name: metadata.name, owner: metadata.owner };
- var already_installed = false;
- $.get(`${getAppRoot()}api/tool_shed_repositories`, params, data => {
- for (var index = 0; index < data.length; index++) {
- var repository = data[index];
- var installed = !repository.deleted && !repository.uninstalled;
- var changeset_match =
- repository.changeset_revision == metadata.changeset_revision ||
- repository.installed_changeset_revision == metadata.changeset_revision;
- if (
- repository.name == metadata.repository.name &&
- repository.owner == metadata.repository.owner &&
- installed &&
- changeset_match
- ) {
- already_installed = true;
- }
- if (already_installed) {
- $("#install_repository").prop("disabled", true);
- $("#install_repository").val("This revision is already installed");
- } else {
- $("#install_repository").prop("disabled", false);
- $("#install_repository").val("Install this revision");
- }
- }
- if (this.repoQueued(metadata) || already_installed) {
- $("#queue_install").hide();
- $("#queue_install").val("This revision is already in the queue");
- } else {
- $("#queue_install").show();
- $("#queue_install").val("Install this revision later");
- }
- });
- },
-
- panelSelect: function(params) {
- var tool_panel_section = {};
- if ($("#tool_panel_section_select").length) {
- params.tool_panel_section_id = $("#tool_panel_section_select")
- .find("option:selected")
- .val();
- } else {
- params.new_tool_panel_section = $("#new_tool_panel_section").val();
- }
- $(".tool_panel_section_picker").each(function() {
- var element_name = $(this).attr("name");
- var tool_guid = $(this).attr("data-toolguid");
- if (element_name === "tool_panel_section_id") {
- tool_panel_section[tool_guid] = {
- tool_panel_section: $(this)
- .find("option:selected")
- .val(),
- action: "append"
- };
- } else {
- tool_panel_section[tool_guid] = {
- tool_panel_section: $(this).val(),
- action: "create"
- };
- }
- });
- return tool_panel_section;
- },
-
- reDraw: function(options) {
- this.$el.empty();
- this.render(options);
- },
-
- repoQueued: function(metadata) {
- if (!window.localStorage.repositories) {
- return;
- }
- var queue_key = this.queueKey(metadata);
- var queued_repos;
- if (window.localStorage.repositories) {
- queued_repos = JSON.parse(window.localStorage.repositories);
- }
- if (queued_repos && queued_repos.hasOwnProperty(queue_key)) {
- return true;
- }
- return false;
- },
-
- queueKey: function(metadata) {
- var shed_url = this.model.tool_shed_url;
- // Make sure there is never a trailing slash on the shed URL.
- if (shed_url.substr(-1) == "/") {
- shed_url = shed_url.substr(0, shed_url.length - 1);
- }
- return `${shed_url}|${metadata.repository_id}|${metadata.changeset_revision}`;
- },
-
- tpsSelection: function() {
- var new_tps = $("#tool_panel_section_select")
- .find("option:selected")
- .val();
- $('.tool_panel_section_picker[default="active"]').each(function() {
- $(this).val(new_tps);
- });
- },
-
- prepareInstall: function(params, api_url) {
- $.post(api_url, params, data => {
- var iri_parameters = JSON.parse(data);
- this.doInstall(iri_parameters);
- });
- },
-
- doInstall: function(params) {
- var controller_url = `${getAppRoot()}admin_toolshed/install_repositories`;
- var repositories = params.repositories;
- var new_route = `status/r/${repositories.join("|")}`;
- $.post(controller_url, params, data => {
- console.log("Initializing repository installation succeeded");
- });
- Backbone.history.navigate(new_route, {
- trigger: true,
- replace: true
- });
- },
-
- selectedChangeset: function() {
- return $("#changeset")
- .find("option:selected")
- .val();
- },
-
- showToolTPSCreate: function(guid, changeset) {
- var metadata = this.options.current_metadata;
- var tools = metadata.tools;
- var tool = toolshed_util.toolByGuid(guid, changeset, tools);
- var selector = "#tool_tps_" + tool.clean;
- $(selector).empty();
- $(selector).append(this.options.tps_template_tool_create({ tool: tool }));
- $(".select-tps-button").click(ev => {
- var changeset = this.selectedChangeset();
- var guid = ev.target.attributes.getNamedItem("data-toolguid");
- this.showToolTPSSelect(guid, changeset);
- });
- this.bindEvents();
- },
-
- showToolTPSSelect: function(guid, changeset) {
- var metadata = this.options.current_metadata;
- var tools = metadata.tools;
- var tool = toolshed_util.toolByGuid(guid, changeset, tools);
- var selector = "#tool_tps_" + tool.clean;
- $(selector).empty();
- $(selector).append(
- this.options.tps_template_tool_select({
- tool: tool,
- panel_section_dict: this.options.panel_section_dict,
- panel_section_options: this.options.panel_section_options
- })
- );
- $(".create-tps-button").click(ev => {
- var changeset = this.selectedChangeset();
- var guid = ev.target.attributes.getNamedItem("data-toolguid");
- this.showToolTPSCreate(guid, changeset);
- });
- this.bindEvents();
- },
-
- propagateTPS: function() {
- $("#tool_panel_section_select").change(() => {
- var new_tps = $("#tool_panel_section_select")
- .find("option:selected")
- .val();
- $('.tool_panel_section_picker[default="active"]').each(obj => {
- obj.val(new_tps);
- });
- });
- this.toolTPSSelectionEvents();
- },
-
- toolTPSSelectionEvents: function() {
- $(".tool_panel_section_picker").on("change", ev => {
- const element = $(ev.target);
- var new_value = element.find("option:selected").val();
- var default_tps = $("#tool_panel_section_select")
- .find("option:selected")
- .val();
- if (new_value == default_tps) {
- element.attr("default", "active");
- } else {
- element.removeAttr("default");
- }
- });
- },
-
- templateRepoDetails: function() {
- return _.template(
- `
- `
- );
- },
-
- templateRepoDependencies: function() {
- return _.template(
- `Repository Dependencies
-
-
- - Repository installation requires the following
- <% if (has_repository_dependencies) { %>
- <% _.each(repository_dependencies, function(dependency) { %>
- <% dependency.repository_dependency_template = repository_dependency_template; %>
- <%= repository_dependency_template(dependency) %>
- <% }); %>
- <% } %>
-
-
-
`
- );
- },
-
- templateRepoDependency: function() {
- return _.template(
- `
- Repository <%= repository.name %> revision <%= changeset_revision %> owned by <%= repository.owner %>
- <% if (has_repository_dependencies) { %>
-
- <% _.each(repository_dependencies, function(dependency) { %>
- <% dependency.repository_dependency_template = repository_dependency_template; %>
- <%= repository_dependency_template(dependency) %>
- <% }); %>
-
- <% } %>
- `
- );
- },
-
- templateShedToolConf: function() {
- return _.template(
- `Shed tool configuration file:
- `
- );
- },
-
- // templateToolDependency: function(){
- // return _.template(
- // `<% if (has_repository_dependencies) { %>
- // <% _.each(repository_dependencies, function(dependency) { %>
- // <% if (dependency.includes_tool_dependencies) { %>
- // <% dependency.tool_dependency_template = tool_dependency_template %>
- // <%= tool_dependency_template(dependency) %>
- // <% } %>
- // <% }); %>
- // <% } %>`
- // );
- // },
-
- templateGlobalSectionCreate: function() {
- return _.template(
- ``
- );
- },
-
- templateGlobalSectionSelect: function() {
- return _.template(
- ``
- );
- },
-
- templateToolSectionCreate: function() {
- return _.template(
- `
-
-
-
`
- );
- },
-
- templateToolSectionSelect: function() {
- return _.template(
- ``
- );
- },
-
- templatePanelSelectOptions: function() {
- return _.template(
- `<% _.each(sections, function(section) { %>
-
- <% }); %>`
- );
- }
-});
-
-export default {
- RepoDetails: ToolShedRepositoryView
-};
diff --git a/client/galaxy/scripts/mvc/toolshed/shed-list-view.js b/client/galaxy/scripts/mvc/toolshed/shed-list-view.js
deleted file mode 100644
index e092ffae6f8..00000000000
--- a/client/galaxy/scripts/mvc/toolshed/shed-list-view.js
+++ /dev/null
@@ -1,53 +0,0 @@
-import Backbone from "backbone";
-import $ from "jquery";
-import _ from "underscore";
-import _l from "utils/localization";
-import toolshed_model from "mvc/toolshed/toolshed-model";
-import toolshed_util from "mvc/toolshed/util";
-
-var ShedListView = Backbone.View.extend({
- initialize: function(options) {
- this.options = _.defaults(this.options || {}, this.defaults);
- this.model = new toolshed_model.ShedsCollection();
- this.listenTo(this.model, "sync", this.render);
- this.model.fetch();
- },
-
- el: "#center",
-
- render: function(options) {
- this.options = _.defaults(this.options || {}, options, this.defaults);
- var toolshed_list_template = this.templateToolshedList();
- this.$el.html(
- toolshed_list_template({
- title: _l("Configured Galaxy Tool Sheds"),
- tool_sheds: this.model.models,
- queue: toolshed_util.queueLength()
- })
- );
- $("#center").css("overflow", "auto");
- },
-
- templateToolshedList: function() {
- return _.template(
- `
-
- <% _.each(tool_sheds, function(shed) { %>
-
- <% }); %>
-
`
- );
- }
-});
-
-export default {
- ShedListView: ShedListView
-};
diff --git a/client/galaxy/scripts/mvc/toolshed/toolshed-model.js b/client/galaxy/scripts/mvc/toolshed/toolshed-model.js
deleted file mode 100644
index d13b742be18..00000000000
--- a/client/galaxy/scripts/mvc/toolshed/toolshed-model.js
+++ /dev/null
@@ -1,106 +0,0 @@
-import _ from "underscore";
-import Backbone from "backbone";
-import { getAppRoot } from "onload/loadConfig";
-
-var ToolShedModel = Backbone.Model.extend({
- defaults: {
- url: "https://toolshed.g2.bx.psu.edu/",
- name: "Galaxy Main Tool Shed"
- },
- urlRoot: `${getAppRoot()}api/tool_shed`
-});
-
-var ToolShedsCollection = Backbone.Collection.extend({
- url: `${getAppRoot()}api/tool_shed`,
- model: ToolShedModel
-});
-
-var ToolShedCategoriesModel = Backbone.Model.extend({
- defaults: [{}],
- urlRoot: `${getAppRoot()}api/tool_shed/contents`
-});
-
-var ToolShedCategoriesCollection = Backbone.Collection.extend({
- url: `${getAppRoot()}api/tool_shed/contents`,
- model: ToolShedCategoriesModel
-});
-
-var ToolShedCategoryModel = Backbone.Model.extend({
- defaults: [{}],
- urlRoot: `${getAppRoot()}api/tool_shed/category`
-});
-
-var ToolShedCategoryCollection = Backbone.Collection.extend({
- url: `${getAppRoot()}api/tool_shed/category`,
- model: ToolShedCategoryModel
-});
-
-var ToolShedRepositoryModel = Backbone.Model.extend({
- defaults: [{}],
- urlRoot: `${getAppRoot()}api/tool_shed/repository`
-});
-
-var ToolShedRepositoryCollection = Backbone.Collection.extend({
- url: `${getAppRoot()}api/tool_shed/repository`,
- model: ToolShedRepositoryModel
-});
-
-var RepoQueueModel = Backbone.Model.extend({
- url: "#"
-});
-
-var RepoQueueCollection = Backbone.Collection.extend({
- url: "#",
- model: RepoQueueModel,
- fetch: function() {
- var repositories = Array();
- var repositories_enc;
- if (window.localStorage.hasOwnProperty("repositories")) {
- repositories_enc = JSON.parse(window.localStorage.repositories);
- } else {
- repositories_enc = [];
- }
- var queue_keys = Object.keys(repositories_enc);
- _.each(queue_keys, key => {
- var repo = repositories_enc[key];
- repo.queue_key = key;
- repositories.push(repo);
- });
- this.reset(repositories);
- return Backbone.Collection.prototype.fetch.call(this);
- }
-});
-
-var RepoStatusModel = Backbone.Model.extend({
- defaults: [{}],
- urlRoot: `${getAppRoot()}api/tool_shed/status`
-});
-
-var RepoStatusCollection = Backbone.Collection.extend({
- url: `${getAppRoot()}api/tool_shed/status`,
- model: RepoStatusModel
-});
-
-var WorkflowToolsModel = Backbone.Model.extend({
- defaults: [{}],
- urlRoot: `${getAppRoot()}api/workflows?missing_tools=True`
-});
-
-var WorkflowToolsCollection = Backbone.Collection.extend({
- url: `${getAppRoot()}api/workflows?missing_tools=True`,
- model: WorkflowToolsModel
-});
-
-export default {
- ShedModel: ToolShedModel,
- ShedsCollection: ToolShedsCollection,
- Category: ToolShedCategoriesModel,
- Categories: ToolShedCategoriesCollection,
- CategoryModel: ToolShedCategoryModel,
- CategoryCollection: ToolShedCategoryCollection,
- RepositoryModel: ToolShedRepositoryModel,
- RepositoryCollection: ToolShedRepositoryCollection,
- RepoQueue: RepoQueueCollection,
- RepoStatus: RepoStatusCollection,
- WorkflowTools: WorkflowToolsCollection
-};
diff --git a/client/galaxy/scripts/mvc/toolshed/util.js b/client/galaxy/scripts/mvc/toolshed/util.js
deleted file mode 100644
index d11abbbf546..00000000000
--- a/client/galaxy/scripts/mvc/toolshed/util.js
+++ /dev/null
@@ -1,65 +0,0 @@
-import $ from "jquery";
-import { getAppRoot } from "onload/loadConfig";
-
-var searchShed = function(request, response) {
- var shed_url = this.shed_url;
- var base_url = `${getAppRoot()}api/tool_shed/search`;
- $.get(base_url, { term: request.term, tool_shed_url: shed_url }, data => {
- var result_list = this.shedParser(data);
- response(result_list);
- });
-};
-
-var shedParser = jsondata => {
- var results = [];
- var hits = jsondata.hits;
- $.each(hits, hit => {
- var record = hits[hit];
- var label = `${record.repository.name} by ${record.repository.repo_owner_username}: ${
- record.repository.description
- }`;
- var result = { value: record.repository.id, label: label };
- results.push(result);
- });
- return results;
-};
-
-var addToQueue = metadata => {
- if (metadata.tool_shed_url.substr(-1) == "/") {
- metadata.tool_shed_url = metadata.tool_shed_url.substr(0, metadata.tool_shed_url.length - 1);
- }
- var key = `${metadata.tool_shed_url}|${metadata.repository_id}|${metadata.changeset_revision}`;
- var queued_repos = {};
- if (window.localStorage.repositories) {
- queued_repos = JSON.parse(window.localStorage.repositories);
- }
- queued_repos[key] = metadata;
- window.localStorage.repositories = JSON.stringify(queued_repos);
-};
-
-var queueLength = () => {
- if (window.localStorage.hasOwnProperty("repositories")) {
- var repo_queue = JSON.parse(window.localStorage.repositories);
- return Object.keys(repo_queue).length;
- } else {
- return 0;
- }
-};
-
-var toolByGuid = function(guid, changeset, tools) {
- var returned_tool;
- tools.forEach(function(tool) {
- if (tool.guid == guid.value) {
- returned_tool = tool;
- }
- });
- return returned_tool;
-};
-
-export default {
- searchShed: searchShed,
- shedParser: shedParser,
- addToQueue: addToQueue,
- queueLength: queueLength,
- toolByGuid: toolByGuid
-};
diff --git a/client/galaxy/scripts/mvc/toolshed/workflows-view.js b/client/galaxy/scripts/mvc/toolshed/workflows-view.js
deleted file mode 100644
index e88192ce711..00000000000
--- a/client/galaxy/scripts/mvc/toolshed/workflows-view.js
+++ /dev/null
@@ -1,133 +0,0 @@
-import _ from "underscore";
-import $ from "jquery";
-import Backbone from "backbone";
-import { getAppRoot } from "onload/loadConfig";
-import _l from "utils/localization";
-import toolshed_model from "mvc/toolshed/toolshed-model";
-import toolshed_util from "mvc/toolshed/util";
-
-var View = Backbone.View.extend({
- el: "#center",
-
- defaults: [{}],
-
- initialize: function(options) {
- this.model = new toolshed_model.WorkflowTools();
- this.listenTo(this.model, "sync", this.render);
- this.model.fetch();
- this.render();
- },
-
- render: function(options) {
- var workflows_missing_tools = this.templateWorkflows();
- var workflows = this.model.models;
- this.$el.html(
- workflows_missing_tools({
- title: _l("Workflows Missing Tools"),
- workflows: workflows,
- queue: toolshed_util.queueLength()
- })
- );
- $("#center").css("overflow", "auto");
- this.bindEvents();
- },
-
- bindEvents: function() {
- var repository_id;
- $(".show_wf_repo").on("click", ev => {
- var tool_ids = $(ev.target).attr("data-toolids");
- var toolshed = $(ev.target).attr("data-shed");
- var api_url = `${getAppRoot()}api/tool_shed/repository`;
- var params = { tool_ids: tool_ids };
- $.get(api_url, params, data => {
- repository_id = data.repository.id;
- var new_route = `repository/s/${toolshed.replace(/:/g, "%3a").replace(/\//g, "%2f")}/r/${
- data.repository.id
- }`;
- Backbone.history.navigate(new_route, {
- trigger: true,
- replace: true
- });
- });
- });
- $(".queue_wf_repo").on("click", ev => {
- var elem = $(ev.target);
- var tool_ids = elem.attr("data-toolids");
- var toolshed = elem.attr("data-shed");
- var api_url = `${getAppRoot()}api/tool_shed/repository`;
- var params = { tool_ids: tool_ids };
- $.get(api_url, params, data => {
- repository_id = data.repository.id;
- params = {
- tool_shed_url: toolshed,
- repository_id: repository_id
- };
- $.get(api_url, params, data => {
- var changesets = Object.keys(data.repository.metadata);
- var current_changeset = changesets[0];
- var current_metadata = data.repository.metadata[current_changeset];
- current_metadata.tool_shed_url = toolshed;
- toolshed_util.addToQueue(current_metadata);
- elem.remove();
- });
- });
- });
- $("#from_workflow").on("click", this.loadWorkflows);
- },
-
- templateWorkflows: function() {
- _.template(
- `
-
-