diff --git a/.ci/jenkins/api-py3/run_tests.sh b/.ci/jenkins/api-py3/run_tests.sh
old mode 100644
new mode 100755
diff --git a/.ci/jenkins/api/run_tests.sh b/.ci/jenkins/api/run_tests.sh
old mode 100644
new mode 100755
diff --git a/.ci/jenkins/framework-py3/run_tests.sh b/.ci/jenkins/framework-py3/run_tests.sh
old mode 100644
new mode 100755
diff --git a/.ci/jenkins/framework/run_tests.sh b/.ci/jenkins/framework/run_tests.sh
old mode 100644
new mode 100755
diff --git a/.ci/jenkins/main-tools-py3/run_tests.sh b/.ci/jenkins/main-tools-py3/run_tests.sh
old mode 100644
new mode 100755
diff --git a/.ci/jenkins/main-tools/run_tests.sh b/.ci/jenkins/main-tools/run_tests.sh
old mode 100644
new mode 100755
diff --git a/.ci/jenkins/selenium-py3/run_tests.sh b/.ci/jenkins/selenium-py3/run_tests.sh
old mode 100644
new mode 100755
diff --git a/.ci/jenkins/selenium/run_tests.sh b/.ci/jenkins/selenium/run_tests.sh
old mode 100644
new mode 100755
index 1faafffcd07..067d4b6cc3a
--- a/.ci/jenkins/selenium/run_tests.sh
+++ b/.ci/jenkins/selenium/run_tests.sh
@@ -28,7 +28,7 @@ docker run -e GIT_COMMITTER_NAME=Jenkins -e GIT_COMMITTER_EMAIL=jenkins@galaxypr
/bin/bash -c 'make client-production-maps'
# Start Selenium server in the test Docker container.
-DOCKER_RUN_EXTRA_ARGS="-v $YARN_CACHE_FOLDER:$YARN_CACHE_FOLDER -e YARN_CACHE_FOLDER=$YARN_CACHE_FOLDER -e USE_SELENIUM=1 -e GALAXY_TEST_SELENIUM_RETRIES=${GALAXY_TEST_SELENIUM_RETRIES} -e GALAXY_TEST_ERRORS_DIRECTORY=${GALAXY_TEST_ERRORS_DIRECTORY} -e GALAXY_TEST_SCREENSHOTS_DIRECTORY=${GALAXY_TEST_SCREENSHOTS_DIRECTORY} ${DOCKER_RUN_EXTRA_ARGS}"
+DOCKER_RUN_EXTRA_ARGS="--shm-size=2g -v $YARN_CACHE_FOLDER:$YARN_CACHE_FOLDER -e YARN_CACHE_FOLDER=$YARN_CACHE_FOLDER -e USE_SELENIUM=1 -e GALAXY_TEST_SELENIUM_RETRIES=${GALAXY_TEST_SELENIUM_RETRIES} -e GALAXY_TEST_ERRORS_DIRECTORY=${GALAXY_TEST_ERRORS_DIRECTORY} -e GALAXY_TEST_SCREENSHOTS_DIRECTORY=${GALAXY_TEST_SCREENSHOTS_DIRECTORY} ${DOCKER_RUN_EXTRA_ARGS}"
export DOCKER_RUN_EXTRA_ARGS
./run_tests.sh --dockerize --db postgres --external_tmp --clean_pyc --skip_flakey_fails --selenium "$@"
diff --git a/.ci/jenkins/toolshed/run_tests.sh b/.ci/jenkins/toolshed/run_tests.sh
old mode 100644
new mode 100755
diff --git a/.gitignore b/.gitignore
index 8edf66370a7..5c9de93c1a3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -105,6 +105,7 @@ test-data-cache
run_framework_tests.html
run_functional_tests.html
run_integration_tests.html
+run_selenium_tests.html
run_toolshed_tests.html
run_api_tests.html
test/tool_shed/tmp/*
diff --git a/client/README.md b/client/README.md
index bee124929c8..84563e8666c 100644
--- a/client/README.md
+++ b/client/README.md
@@ -41,11 +41,8 @@ for inspection of live javascript to facilitate debugging, use:
make client-production-maps
-Important Note: The development branch of Galaxy does not include client script
-artifacts, and these should not be committed. When issuing a PR to a stable
-branch, please run "make client-production-maps", and include those artifacts.
-Or, if you'd rather, include only the /client source changes and build
-artifacts can be added by maintainers on merge.
+Important Note: The Galaxy repository does not include client script artifacts,
+and these should not be committed.
Automatic Rebuilding (Watch Mode)
diff --git a/client/galaxy/docs/bootstrap.md b/client/galaxy/docs/bootstrap.md
index e44d6423e84..ec879739331 100644
--- a/client/galaxy/docs/bootstrap.md
+++ b/client/galaxy/docs/bootstrap.md
@@ -135,8 +135,8 @@ Disabled
```
-
Default
Primary
+
Secondary
Success
Warning
Danger
diff --git a/client/galaxy/scripts/apps/analysis.js b/client/galaxy/scripts/apps/analysis.js
index f9e55555daf..14e5001eedb 100644
--- a/client/galaxy/scripts/apps/analysis.js
+++ b/client/galaxy/scripts/apps/analysis.js
@@ -1,6 +1,7 @@
import $ from "jquery";
import "bootstrap";
import * as _ from "underscore";
+import decodeUriComponent from "decode-uri-component";
import GalaxyApp from "galaxy";
import Router from "layout/router";
import ToolPanel from "./panels/tool-panel";
@@ -357,7 +358,12 @@ window.app = function app(options, bootstrapped) {
/** load the center panel with a tool form described by the given params obj */
_loadToolForm: function(params) {
//TODO: load tool form code async
- params.id = decodeURIComponent(params.tool_id);
+ if (params.tool_id) {
+ params.id = decodeUriComponent(params.tool_id);
+ }
+ if (params.version) {
+ params.version = decodeUriComponent(params.version);
+ }
this.page.display(new ToolForm.View(params));
},
diff --git a/client/galaxy/scripts/apps/panels/admin-panel.js b/client/galaxy/scripts/apps/panels/admin-panel.js
index 56b5bee65f9..d36760fb44b 100644
--- a/client/galaxy/scripts/apps/panels/admin-panel.js
+++ b/client/galaxy/scripts/apps/panels/admin-panel.js
@@ -146,7 +146,7 @@ var AdminPanel = Backbone.View.extend({
this.$el.empty();
this.categories.each(category => {
var $section = $(self._templateSection(category.attributes));
- var $entries = $section.find(".ui-side-section-body");
+ var $entries = $section.find(".toolSectionBody");
_.each(category.get("items"), item => {
if (item.enabled === undefined || item.enabled) {
var $link = $("
")
@@ -165,7 +165,7 @@ var AdminPanel = Backbone.View.extend({
}
$entries.append(
$("
")
- .addClass("ui-side-section-body-title")
+ .addClass("toolTitle")
.append($link)
);
}
@@ -175,16 +175,14 @@ var AdminPanel = Backbone.View.extend({
},
_templateSection: function(options) {
- return [
- "
",
- `
${_l(options.title)}
`,
- '
',
- "
"
- ].join("");
+ return `
`;
},
_template: function() {
- return '
';
+ return '';
},
toString: function() {
diff --git a/client/galaxy/scripts/components/DisplayStructured.vue b/client/galaxy/scripts/components/DisplayStructured.vue
index 2e513f1b8f9..3a66b99337b 100644
--- a/client/galaxy/scripts/components/DisplayStructured.vue
+++ b/client/galaxy/scripts/components/DisplayStructured.vue
@@ -93,7 +93,6 @@ export default {
.bold {
font-weight: bold;
}
-
.light {
font-weight: lighter;
color: grey;
@@ -101,11 +100,9 @@ export default {
.right-aligned {
text-align: right;
}
-
.clickable {
cursor: pointer;
}
-
.workflow {
border: solid gray 1px;
margin-bottom: 1%;
@@ -120,38 +117,17 @@ export default {
.workflow > .body {
border-top: solid gray 1px;
}
-.workflow > .body > .toolForm {
+.workflow > .body > .tool {
border: 0px;
margin: 0;
}
-
-div.toolForm {
- border-width: 1px;
- border-radius: 0px;
- margin-bottom: 1%;
+div.tool {
+ margin-bottom: 5px;
+ border: 1px solid gray;
}
-.toolForm > .header {
- background-color: #ebd9b2;
+.tool > .header {
padding: 5px 10px;
}
-.workflow div.toolForm:not(:first-child) .header {
- border-top: 1px solid #d6b161;
-}
-div.toolFormTitle {
- padding: 0px 0px 4px 0px;
- margin: 0px 0px 4px 0px;
- border: 0px;
- background-color: transparent;
- border-bottom: 1px solid #d6b161;
-}
-/* down from EBD9B2 --> 90743A */
-.toolFormTitle > .light {
- color: #90743a;
-}
-.toolForm em {
- color: #90743a;
-}
-
.job-inputs {
margin: 0px 6px 0px 6px;
text-align: left;
@@ -159,7 +135,7 @@ div.toolFormTitle {
.job-inputs td:nth-child(1) {
text-align: right;
font-weight: lighter;
- color: #90743a;
+ color: gray;
}
.job-inputs td:nth-child(1):after {
content: ":";
@@ -167,17 +143,13 @@ div.toolFormTitle {
.job-inputs td:nth-child(2) {
padding-left: 4px;
}
-.job-inputs em {
-}
-
.job-inputs-show {
float: right;
}
-
.copied-from {
border: 1px solid lightgrey;
border-width: 1px 1px 0px 1px;
- margin-bottom: 1%;
+ margin-bottom: 5px;
}
.copied-from .header {
border-bottom: 1px solid lightgrey;
@@ -187,19 +159,4 @@ div.toolFormTitle {
.copied-from .header a {
color: #888;
}
-
-.dataset.hda {
- min-height: 37px;
- border-width: 0px 0px 1px 0px;
-}
-.toolFormBody > .dataset.hda:last-child {
- border-bottom-width: 0px;
-}
-.dataset.hda:first-child {
- border-top: 1px solid #d6b161;
-}
-.dataset.hda .dataset-title-bar {
- padding-top: 8px;
- padding-left: 10px;
-}
diff --git a/client/galaxy/scripts/components/PluginList.vue b/client/galaxy/scripts/components/PluginList.vue
index 33c02a1cac6..b5d8145947b 100644
--- a/client/galaxy/scripts/components/PluginList.vue
+++ b/client/galaxy/scripts/components/PluginList.vue
@@ -33,7 +33,7 @@