|
@@ -232,6 +232,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
|
|
|
<script type="text/javascript" charset="utf-8">
|
|
<script type="text/javascript" charset="utf-8">
|
|
|
|
|
|
|
|
(function () {
|
|
(function () {
|
|
|
|
|
+
|
|
|
var Job = function (vm, job) {
|
|
var Job = function (vm, job) {
|
|
|
var self = this;
|
|
var self = this;
|
|
|
|
|
|
|
@@ -252,17 +253,18 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
|
|
|
|
|
|
|
|
self.fetchJob = function () {
|
|
self.fetchJob = function () {
|
|
|
self.loadingJob(true);
|
|
self.loadingJob(true);
|
|
|
|
|
+ hueUtils.changeURL('#!' + self.id());
|
|
|
vm.section('app');
|
|
vm.section('app');
|
|
|
$.post("/jobbrowser/api/job", {
|
|
$.post("/jobbrowser/api/job", {
|
|
|
appid: ko.mapping.toJSON(self.id),
|
|
appid: ko.mapping.toJSON(self.id),
|
|
|
interface: ko.mapping.toJSON(vm.interface)
|
|
interface: ko.mapping.toJSON(vm.interface)
|
|
|
- }, function(data) {
|
|
|
|
|
|
|
+ }, function (data) {
|
|
|
if (data.status == 0) {
|
|
if (data.status == 0) {
|
|
|
vm.job(new Job(vm, job));
|
|
vm.job(new Job(vm, job));
|
|
|
} else {
|
|
} else {
|
|
|
$(document).trigger("error", data.message);
|
|
$(document).trigger("error", data.message);
|
|
|
}
|
|
}
|
|
|
- }).always(function(){
|
|
|
|
|
|
|
+ }).always(function () {
|
|
|
self.loadingJob(false);
|
|
self.loadingJob(false);
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
@@ -282,11 +284,11 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
|
|
|
$.post("/jobbrowser/api/jobs", {
|
|
$.post("/jobbrowser/api/jobs", {
|
|
|
username: ko.mapping.toJSON(self.username),
|
|
username: ko.mapping.toJSON(self.username),
|
|
|
interface: ko.mapping.toJSON(vm.interface)
|
|
interface: ko.mapping.toJSON(vm.interface)
|
|
|
- }, function(data) {
|
|
|
|
|
|
|
+ }, function (data) {
|
|
|
if (data.status == 0) {
|
|
if (data.status == 0) {
|
|
|
var apps = [];
|
|
var apps = [];
|
|
|
if (data && data.apps) {
|
|
if (data && data.apps) {
|
|
|
- data.apps.forEach(function(job) { // TODO: update and merge
|
|
|
|
|
|
|
+ data.apps.forEach(function (job) { // TODO: update and merge
|
|
|
apps.push(new Job(vm, job));
|
|
apps.push(new Job(vm, job));
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
@@ -294,7 +296,7 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
|
|
|
} else {
|
|
} else {
|
|
|
$(document).trigger("error", data.message);
|
|
$(document).trigger("error", data.message);
|
|
|
}
|
|
}
|
|
|
- }).always(function(){
|
|
|
|
|
|
|
+ }).always(function () {
|
|
|
self.loadingJobs(false);
|
|
self.loadingJobs(false);
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
@@ -308,7 +310,8 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
|
|
|
|
|
|
|
|
self.section = ko.observable('apps');
|
|
self.section = ko.observable('apps');
|
|
|
self.interface = ko.observable('jobs');
|
|
self.interface = ko.observable('jobs');
|
|
|
- self.interface.subscribe(function(val) {
|
|
|
|
|
|
|
+ self.interface.subscribe(function (val) {
|
|
|
|
|
+ hueUtils.changeURL('#!' + val);
|
|
|
self.jobs.fetchJobs();
|
|
self.jobs.fetchJobs();
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
@@ -325,6 +328,27 @@ ${ commonheader("Job Browser", "jobbrowser", user, request) | n,unicode }
|
|
|
viewModel = new JobBrowserViewModel(options);
|
|
viewModel = new JobBrowserViewModel(options);
|
|
|
ko.applyBindings(viewModel);
|
|
ko.applyBindings(viewModel);
|
|
|
|
|
|
|
|
|
|
+ var loadHash = function () {
|
|
|
|
|
+ var h = window.location.hash;
|
|
|
|
|
+ if (h.indexOf('#!') === 0) {
|
|
|
|
|
+ h = h.substr(2);
|
|
|
|
|
+ }
|
|
|
|
|
+ switch (h) {
|
|
|
|
|
+ case 'schedules':
|
|
|
|
|
+ case 'jobs':
|
|
|
|
|
+ case 'batches':
|
|
|
|
|
+ viewModel.interface(h);
|
|
|
|
|
+ break;
|
|
|
|
|
+ default:
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ window.onhashchange = function () {
|
|
|
|
|
+ loadHash();
|
|
|
|
|
+ }
|
|
|
|
|
+ loadHash();
|
|
|
|
|
+
|
|
|
viewModel.jobs.fetchJobs();
|
|
viewModel.jobs.fetchJobs();
|
|
|
});
|
|
});
|
|
|
})();
|
|
})();
|