diff --git a/pom.xml b/pom.xml
index 0b0825f9..4b3eda68 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,8 +45,9 @@
UTF-8
UTF-8
jar
- 1.8
- 8
+ 11
+ 11
+ 11
3.3.4
cloudgene.mapred.server.Application
netty
@@ -67,15 +68,9 @@
- jfrog-genepi-maven
- jfrog-genepi-maven
- https://genepi.jfrog.io/artifactory/maven/
-
-
-
- cloudera
- Cloudera repository
- https://repository.cloudera.com/artifactory/cloudera-repos/
+ genepi-maven
+ genepi-maven
+ https://genepi.i-med.ac.at/maven
@@ -84,12 +79,6 @@
-
- cloudgene
- cloudgene-java-sdk
- 1.0.2
-
-
genepi
genepi-io
@@ -106,26 +95,6 @@
-
- genepi
- genepi-hadoop
- mr1-1.4.1
-
-
- org.apache.hadoop
- hadoop-client
-
-
- org.apache.httpcomponents
- httpcore
-
-
- org.apache.httpcomponents
- httpclient
-
-
-
-
commons-dbutils
commons-dbutils
@@ -217,62 +186,6 @@
5.8.3
-
-
-
-
- org.apache.hadoop
- hadoop-hdfs
- ${hadoop.version}
- test
- test-jar
-
-
-
- org.apache.hadoop
- hadoop-hdfs
- ${hadoop.version}
- test
-
-
-
- org.apache.hadoop
- hadoop-common
- ${hadoop.version}
- test
-
-
- org.apache.httpcomponents
- httpcore
-
-
- org.slf4j
- slf4j-reload4j
-
-
-
-
-
- org.apache.hadoop
- hadoop-common
- ${hadoop.version}
- test
- test-jar
-
-
- org.slf4j
- slf4j-reload4j
-
-
-
-
-
- org.apache.hadoop
- hadoop-test
- 2.6.0-mr1-cdh5.16.1
- test
-
-
org.junit.jupiter
junit-jupiter
diff --git a/src/main/html/webapp/admin.js b/src/main/html/webapp/admin.js
index 573bc600..a811db12 100644
--- a/src/main/html/webapp/admin.js
+++ b/src/main/html/webapp/admin.js
@@ -15,15 +15,18 @@ import UserListControl from 'components/admin/user/list/';
import JobListControl from 'components/admin/job/list/';
import JobDetailControl from 'components/core/job/detail/';
import AppListControl from 'components/admin/app/list/';
+import AppSettingsControl from 'components/admin/app/settings/';
+
import AppRepositoryControl from 'components/admin/app/repository/';
import SettingsGeneralControl from 'components/admin/settings/general/';
+import SettingsNextflowControl from 'components/admin/settings/nextflow/';
import SettingsServerControl from 'components/admin/settings/server/';
import SettingsMailControl from 'components/admin/settings/mail/';
import SettingsTemplatesControl from 'components/admin/settings/templates/';
import SettingsLogsControl from 'components/admin/settings/logs/';
-$(document.links).filter(function() {
+$(document.links).filter(function () {
return this.hostname != window.location.hostname;
}).attr('target', '_blank');
@@ -64,6 +67,10 @@ var routes = [{
path: 'pages/admin-apps',
control: AppListControl,
guard: adminGuard
+}, {
+ path: 'pages/admin-apps/{app}',
+ control: AppSettingsControl,
+ guard: adminGuard
}, {
path: 'pages/admin-apps-repository',
control: AppRepositoryControl,
@@ -76,6 +83,10 @@ var routes = [{
path: 'pages/admin-settings-general',
control: SettingsGeneralControl,
guard: adminGuard
+}, {
+ path: 'pages/admin-settings-nextflow',
+ control: SettingsNextflowControl,
+ guard: adminGuard
}, {
path: 'pages/admin-settings-mail',
control: SettingsMailControl,
@@ -106,9 +117,9 @@ function adminGuard(appState) {
}
}
-$.ajaxPrefilter(function(options, orig, xhr) {
+$.ajaxPrefilter(function (options, orig, xhr) {
if (!options.beforeSend) {
- options.beforeSend = function(xhr) {
+ options.beforeSend = function (xhr) {
if (localStorage.getItem("cloudgene")) {
try {
// get data
@@ -133,7 +144,7 @@ $.ajaxPrefilter(function(options, orig, xhr) {
});
-Server.findOne({}, function(server) {
+Server.findOne({}, function (server) {
new LayoutControl("#main", {
appState: server
diff --git a/src/main/html/webapp/components/admin/app/list/list.js b/src/main/html/webapp/components/admin/app/list/list.js
index 35a7f005..10d1de76 100644
--- a/src/main/html/webapp/components/admin/app/list/list.js
+++ b/src/main/html/webapp/components/admin/app/list/list.js
@@ -15,14 +15,13 @@ import template from './list.stache';
import templateInstallGithub from './install-github/install-github.stache';
import templateInstallUrl from './install-url/install-url.stache';
import templatePermission from './permission/permission.stache';
-import templateSettings from './settings/settings.stache';
export default Control.extend({
- "init": function(element, options) {
+ "init": function (element, options) {
var that = this;
- Application.findAll({}, function(applications) {
+ Application.findAll({}, function (applications) {
that.options.installedApplications = applications;
$(element).html(template({
applications: applications
@@ -33,10 +32,10 @@ export default Control.extend({
},
- '#install-app-url-btn click': function(el, ev) {
+ '#install-app-url-btn click': function (el, ev) {
bootbox.confirm(templateInstallUrl(),
- function(result) {
+ function (result) {
if (result) {
var url = $('#url').val();
var app = new Application();
@@ -50,15 +49,15 @@ export default Control.extend({
'',
show: false
});
- waitingDialog.on('shown.bs.modal', function() {
- app.save(function(application) {
+ waitingDialog.on('shown.bs.modal', function () {
+ app.save(function (application) {
waitingDialog.modal('hide');
- bootbox.alert('Congratulations
The application installation was successful.
', function() {
+ bootbox.alert('Congratulations
The application installation was successful.
', function () {
var router = canRoute.router;
router.reload();
});
- }, function(response) {
+ }, function (response) {
waitingDialog.modal('hide');
showErrorDialog("Operation failed", response);
});
@@ -69,10 +68,10 @@ export default Control.extend({
});
},
- '#install-app-github-btn click': function(el, ev) {
+ '#install-app-github-btn click': function (el, ev) {
bootbox.confirm(templateInstallGithub(),
- function(result) {
+ function (result) {
if (result) {
var url = 'github://' + $('#url').val();
@@ -88,16 +87,16 @@ export default Control.extend({
show: false
});
- waitingDialog.on('shown.bs.modal', function() {
+ waitingDialog.on('shown.bs.modal', function () {
- app.save(function(application) {
+ app.save(function (application) {
waitingDialog.modal('hide');
- bootbox.alert('Congratulations
The application installation was successful.
', function() {
+ bootbox.alert('Congratulations
The application installation was successful.
', function () {
var router = canRoute.router;
router.reload();
});
- }, function(response) {
+ }, function (response) {
waitingDialog.modal('hide');
showErrorDialog("Operation failed", response);
});
@@ -108,12 +107,12 @@ export default Control.extend({
});
},
- '#reload-apps-btn click': function(el, ev) {
+ '#reload-apps-btn click': function (el, ev) {
var element = this.element;
Application.findAll({
reload: 'true'
- }, function(applications) {
+ }, function (applications) {
$(element).html(template({
applications: applications
@@ -123,12 +122,12 @@ export default Control.extend({
});
},
- '.enable-disable-btn click': function(el, ev) {
+ '.enable-disable-btn click': function (el, ev) {
var card = $(el).closest('.card');
var application = domData.get.call(card[0], 'application');
var enabled = !application.attr('enabled')
- bootbox.confirm("Are you sure you want to " + (enabled ? "enable" : "disable") + " application " + application.attr('id') + "?", function(result) {
+ bootbox.confirm("Are you sure you want to " + (enabled ? "enable" : "disable") + " application " + application.attr('id') + "?", function (result) {
if (result) {
application.attr('enabled', enabled);
@@ -140,13 +139,13 @@ export default Control.extend({
'',
show: false
});
- waitingDialog.on('shown.bs.modal', function() {
+ waitingDialog.on('shown.bs.modal', function () {
- application.save(function(application) {
+ application.save(function (application) {
waitingDialog.modal('hide');
bootbox.alert('Congratulations
The application has been successfully ' + (enabled ? 'enabled' : 'disabled') + '.
');
- }, function(response) {
+ }, function (response) {
waitingDialog.modal('hide');
showErrorDialog("Operation failed", response);
});
@@ -157,12 +156,12 @@ export default Control.extend({
});
},
- '.delete-app-btn click': function(el, ev) {
+ '.delete-app-btn click': function (el, ev) {
var card = $(el).closest('.card');
var application = domData.get.call(card[0], 'application');
- bootbox.confirm("Are you sure you want to delete " + application.attr('id') + "?", function(result) {
+ bootbox.confirm("Are you sure you want to delete " + application.attr('id') + "?", function (result) {
if (result) {
var waitingDialog = bootbox.dialog({
@@ -174,13 +173,13 @@ export default Control.extend({
show: false
});
- waitingDialog.on('shown.bs.modal', function() {
+ waitingDialog.on('shown.bs.modal', function () {
- application.destroy(function(application) {
+ application.destroy(function (application) {
waitingDialog.modal('hide');
bootbox.alert('Congratulations
The application has been successfully removed.
');
- }, function(response) {
+ }, function (response) {
waitingDialog.modal('hide');
showErrorDialog("Operation failed", response);
});
@@ -193,65 +192,37 @@ export default Control.extend({
},
- '.edit-settings-btn click': function(el, ev) {
-
- var card = $(el).closest('.card');
- var application = domData.get.call(card[0], 'application');
-
-
- bootbox.confirm(templateSettings({
- application: application
- }),
- function(result) {
- if (result) {
- var nextflowProfile = $('#nextflow-profile').val();
- var nextflowConfig = $('#nextflow-config').val();
- var nextflowWork = $('#nextflow-work').val();
-
- application.attr('config').attr('nextflow.profile', nextflowProfile);
- application.attr('config').attr('nextflow.config', nextflowConfig);
- application.attr('config').attr('nextflow.work', nextflowWork);
- application.save(function(data) {},
- function(response) {
- showErrorDialog("Operation failed", response);
- });
- }
- }).find("div.modal-dialog").css({ "width": "80%" });
-
- },
-
-
- '.edit-permission-btn click': function(el, ev) {
+ '.edit-permission-btn click': function (el, ev) {
var card = $(el).closest('.card');
var application = domData.get.call(card[0], 'application');
Group.findAll({},
- function(groups) {
+ function (groups) {
var selection = new canMap();
selection.attr('group', application.attr('permission'));
selection.attr('name', '');
bootbox.confirm(templatePermission({
- selection: selection,
- application: application,
- groups: groups
- }),
- function(result) {
+ selection: selection,
+ application: application,
+ groups: groups
+ }),
+ function (result) {
if (result) {
var group = selection.attr('group');
if (group !== '') {
application.attr('permission', group);
- application.save(function(data) {},
- function(response) {
+ application.save(function (data) { },
+ function (response) {
showErrorDialog("Operation failed", response);
});
} else {
var name = selection.attr('name');
if (name !== '') {
application.attr('permission', name);
- application.save(function(data) {},
- function(response) {
+ application.save(function (data) { },
+ function (response) {
showErrorDialog("Operation failed", response);
});
@@ -264,35 +235,5 @@ export default Control.extend({
});
});
- },
-
- '.reinstall-btn click': function(el, ev) {
-
- var card = $(el).closest('.card');
- var application = domData.get.call(card[0], 'application');
- bootbox.confirm('' + application.attr('id') + '
Force reinstallation of application?
All metafiles in HDFS are deleted and reimported on next job run.
',
- function(result) {
- if (result) {
- application.attr('reinstall', 'true');
- application.save(function(data) {},
- function(response) {
- showErrorDialog("Operation failed", response);
- });
- }
- });
-
-
- },
-
- '.view-source-btn click': function(el, ev) {
-
- var card = $(el).closest('.card');
- var application = domData.get.call(card[0], 'application');
- var env = '';
- for (var property in application.attr('environment').attr()) {
- env += property + '=' + application.attr('environment').attr(property) + '\n';
- }
-
- bootbox.alert('File
' + application.attr('filename') + '
Status
' + application.attr('state') + '
' + 'Environment Variables
' + env + '
' + '
-
+ {{#if(wdlApp.workflow)}}
+
Settings
+ {{/if}}
{{#enabled}}
diff --git a/src/main/html/webapp/components/admin/app/settings/settings.js b/src/main/html/webapp/components/admin/app/settings/settings.js
new file mode 100644
index 00000000..853cf669
--- /dev/null
+++ b/src/main/html/webapp/components/admin/app/settings/settings.js
@@ -0,0 +1,51 @@
+import Control from 'can-control';
+import domData from 'can-util/dom/data/data';
+import canMap from 'can-map';
+import canRoute from 'can-route';
+
+import 'helpers/helpers';
+import $ from 'jquery';
+import bootbox from 'bootbox';
+import showErrorDialog from 'helpers/error-dialog';
+
+import ApplicationSettings from 'models/application-settings';
+import template from './settings.stache';
+
+export default Control.extend({
+
+ "init": function (element, options) {
+ var that = this;
+
+ ApplicationSettings.findOne({ id: options.app }, function (application) {
+ that.application = application;
+ $(element).html(template({
+ application: application
+
+ }));
+ $(element).fadeIn();
+
+ });
+
+ },
+
+
+ 'submit': function (form, event) {
+ event.preventDefault();
+
+ var nextflowProfile = $('#nextflow-profile').val();
+ var nextflowConfig = $('#nextflow-config').val();
+ var nextflowWork = $('#nextflow-work').val();
+
+ this.application.attr('config').attr('nextflow.profile', nextflowProfile);
+ this.application.attr('config').attr('nextflow.config', nextflowConfig);
+ this.application.attr('config').attr('nextflow.work', nextflowWork);
+ this.application.save(function (data) {
+ bootbox.alert("Application settings updated.");
+ },
+ function (response) {
+ showErrorDialog("Operation failed", response);
+ });
+ }
+
+
+});
diff --git a/src/main/html/webapp/components/admin/app/list/settings/settings.stache b/src/main/html/webapp/components/admin/app/settings/settings.stache
similarity index 56%
rename from src/main/html/webapp/components/admin/app/list/settings/settings.stache
rename to src/main/html/webapp/components/admin/app/settings/settings.stache
index 32dceef9..1d06110e 100644
--- a/src/main/html/webapp/components/admin/app/list/settings/settings.stache
+++ b/src/main/html/webapp/components/admin/app/settings/settings.stache
@@ -1,5 +1,6 @@
+
Applications / {{application.id}}
+
{{application.id}}
-
Settings
Change settings for application {{application.wdlApp.name}}.
Nextflow
@@ -14,7 +15,31 @@
Custom Configuration:
All hardware specific parameters can be set here. If you use the AWSBatch profile this is the place to set your credentials
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{{#application.environment}}
+${{{{name}}}
Value: {{value}}
+{{/application.environment}}
+
+
+
+
diff --git a/src/main/html/webapp/components/admin/job/list/list.js b/src/main/html/webapp/components/admin/job/list/list.js
index 34e82ad2..e1f4d6bb 100644
--- a/src/main/html/webapp/components/admin/job/list/list.js
+++ b/src/main/html/webapp/components/admin/job/list/list.js
@@ -11,13 +11,12 @@ import template from './list.stache';
export default Control.extend({
- "init": function(element, options) {
+ "init": function (element, options) {
$(element).html(template());
$(element).fadeIn();
- new JobTable("#job-list-running-stq", {state: "running-stq"});
- new JobTable("#job-list-running-ltq", {state: "running-ltq"});
- new JobTable("#job-list-current", {state: "current"});
+ new JobTable("#job-list-running-ltq", { state: "running-ltq" });
+ new JobTable("#job-list-current", { state: "current" });
}
diff --git a/src/main/html/webapp/components/admin/job/list/list.stache b/src/main/html/webapp/components/admin/job/list/list.stache
index 74a29197..99fa5069 100644
--- a/src/main/html/webapp/components/admin/job/list/list.stache
+++ b/src/main/html/webapp/components/admin/job/list/list.stache
@@ -2,21 +2,14 @@
This page lists all submitted and running jobs.
-
Preprocessing Queue
-
-
-
-
-
-
-
Long Running Queue
+
Running Jobs
-
Active Jobs
+
Completed Jobs
diff --git a/src/main/html/webapp/components/admin/job/list/table/table.stache b/src/main/html/webapp/components/admin/job/list/table/table.stache
index 6dd1cebc..29c62384 100644
--- a/src/main/html/webapp/components/admin/job/list/table/table.stache
+++ b/src/main/html/webapp/components/admin/job/list/table/table.stache
@@ -59,7 +59,7 @@
- {{user.username}}
+ {{username}}
diff --git a/src/main/html/webapp/components/admin/layout/layout.stache b/src/main/html/webapp/components/admin/layout/layout.stache
index e86032c7..95d77850 100644
--- a/src/main/html/webapp/components/admin/layout/layout.stache
+++ b/src/main/html/webapp/components/admin/layout/layout.stache
@@ -28,6 +28,7 @@
Settings
diff --git a/src/main/html/webapp/components/admin/settings/general/general.js b/src/main/html/webapp/components/admin/settings/general/general.js
index bd4a0078..a9a4d080 100644
--- a/src/main/html/webapp/components/admin/settings/general/general.js
+++ b/src/main/html/webapp/components/admin/settings/general/general.js
@@ -9,11 +9,11 @@ import showErrorDialog from 'helpers/error-dialog';
export default Control.extend({
- "init": function(element, options) {
+ "init": function (element, options) {
var that = this;
Settings.findOne({},
- function(settings) {
+ function (settings) {
$(element).html(template({
settings: settings
}));
@@ -23,16 +23,21 @@ export default Control.extend({
},
- 'submit': function(form, event) {
+ 'submit': function (form, event) {
event.preventDefault();
this.settings.attr('name', $(form).find("[name='name']").val());
+ this.settings.attr('adminName', $(form).find("[name='adminName']").val());
+ this.settings.attr('adminMail', $(form).find("[name='adminMail']").val());
+ this.settings.attr('serverUrl', $(form).find("[name='serverUrl']").val());
this.settings.attr('backgroundColor', $(form).find("[name='background-color']").val());
this.settings.attr('foregroundColor', $(form).find("[name='foreground-color']").val());
this.settings.attr('googleAnalytics', $(form).find("[name='google-analytics']").val());
- this.settings.save(function(data) {
+ this.settings.attr('workspaceType', $(form).find("[name='workspaceType']").val());
+ this.settings.attr('workspaceLocation', $(form).find("[name='workspaceLocation']").val());
+ this.settings.save(function (data) {
bootbox.alert("Settings updated.");
- }, function(response) {
+ }, function (response) {
showErrorDialog("Settings not updated", response);
});
diff --git a/src/main/html/webapp/components/admin/settings/general/general.stache b/src/main/html/webapp/components/admin/settings/general/general.stache
index 6b1c01ed..99af7577 100644
--- a/src/main/html/webapp/components/admin/settings/general/general.stache
+++ b/src/main/html/webapp/components/admin/settings/general/general.stache
@@ -6,11 +6,55 @@
|