mirror of
https://github.com/apache/zeppelin
synced 2026-05-24 09:38:26 +00:00
IIFE refactoring of job page
This commit is contained in:
parent
4c45e08116
commit
409c65cbb7
3 changed files with 80 additions and 67 deletions
|
|
@ -12,10 +12,15 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
'use strict';
|
||||
(function() {
|
||||
|
||||
angular.module('zeppelinWebApp').filter('sortByKey', function() {
|
||||
return function(properties) {
|
||||
var sortedKeys = properties ? Object.keys(properties) : [];
|
||||
return sortedKeys.sort();
|
||||
};
|
||||
});
|
||||
angular.module('zeppelinWebApp').filter('sortByKey', sortByKey);
|
||||
|
||||
function sortByKey() {
|
||||
return function(properties) {
|
||||
var sortedKeys = properties ? Object.keys(properties) : [];
|
||||
return sortedKeys.sort();
|
||||
};
|
||||
}
|
||||
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -12,78 +12,82 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
'use strict';
|
||||
(function() {
|
||||
|
||||
angular.module('zeppelinWebApp')
|
||||
.controller('JobmanagerCtrl',
|
||||
function($scope, websocketMsgSrv, $interval) {
|
||||
angular.module('zeppelinWebApp').controller('JobmanagerCtrl', JobmanagerCtrl);
|
||||
|
||||
$scope.filterValueToName = function(filterValue) {
|
||||
var index = _.findIndex($scope.ACTIVE_INTERPRETERS, {value: filterValue});
|
||||
JobmanagerCtrl.$inject = ['$scope', 'websocketMsgSrv', '$interval'];
|
||||
|
||||
if ($scope.ACTIVE_INTERPRETERS[index].name !== undefined) {
|
||||
return $scope.ACTIVE_INTERPRETERS[index].name;
|
||||
} else {
|
||||
return 'undefined';
|
||||
}
|
||||
};
|
||||
function JobmanagerCtrl($scope, websocketMsgSrv, $interval) {
|
||||
$scope.filterValueToName = function(filterValue) {
|
||||
var index = _.findIndex($scope.ACTIVE_INTERPRETERS, {value: filterValue});
|
||||
|
||||
$scope.init = function() {
|
||||
$scope.jobInfomations = [];
|
||||
$scope.JobInfomationsByFilter = $scope.jobInfomations;
|
||||
if ($scope.ACTIVE_INTERPRETERS[index].name !== undefined) {
|
||||
return $scope.ACTIVE_INTERPRETERS[index].name;
|
||||
} else {
|
||||
return 'undefined';
|
||||
}
|
||||
};
|
||||
|
||||
websocketMsgSrv.getNotebookJobsList();
|
||||
$scope.init = function() {
|
||||
$scope.jobInfomations = [];
|
||||
$scope.JobInfomationsByFilter = $scope.jobInfomations;
|
||||
|
||||
$scope.$on('$destroy', function() {
|
||||
websocketMsgSrv.unsubscribeJobManager();
|
||||
});
|
||||
};
|
||||
websocketMsgSrv.getNotebookJobsList();
|
||||
|
||||
/*
|
||||
** $scope.$on functions below
|
||||
*/
|
||||
|
||||
$scope.$on('setNotebookJobs', function(event, responseData) {
|
||||
$scope.lastJobServerUnixTime = responseData.lastResponseUnixTime;
|
||||
$scope.jobInfomations = responseData.jobs;
|
||||
$scope.jobInfomationsIndexs = $scope.jobInfomations ? _.indexBy($scope.jobInfomations, 'notebookId') : {};
|
||||
$scope.$on('$destroy', function() {
|
||||
websocketMsgSrv.unsubscribeJobManager();
|
||||
});
|
||||
};
|
||||
|
||||
$scope.$on('setUpdateNotebookJobs', function(event, responseData) {
|
||||
var jobInfomations = $scope.jobInfomations;
|
||||
var indexStore = $scope.jobInfomationsIndexs;
|
||||
$scope.lastJobServerUnixTime = responseData.lastResponseUnixTime;
|
||||
var notes = responseData.jobs;
|
||||
notes.map(function(changedItem) {
|
||||
if (indexStore[changedItem.notebookId] === undefined) {
|
||||
var newItem = angular.copy(changedItem);
|
||||
jobInfomations.push(newItem);
|
||||
indexStore[changedItem.notebookId] = newItem;
|
||||
} else {
|
||||
var changeOriginTarget = indexStore[changedItem.notebookId];
|
||||
/*
|
||||
** $scope.$on functions below
|
||||
*/
|
||||
|
||||
if (changedItem.isRemoved !== undefined && changedItem.isRemoved === true) {
|
||||
$scope.$on('setNotebookJobs', function(event, responseData) {
|
||||
$scope.lastJobServerUnixTime = responseData.lastResponseUnixTime;
|
||||
$scope.jobInfomations = responseData.jobs;
|
||||
$scope.jobInfomationsIndexs = $scope.jobInfomations ? _.indexBy($scope.jobInfomations, 'notebookId') : {};
|
||||
});
|
||||
|
||||
// remove Item.
|
||||
var removeIndex = _.findIndex(indexStore, changedItem.notebookId);
|
||||
if (removeIndex > -1) {
|
||||
indexStore.splice(removeIndex, 1);
|
||||
}
|
||||
$scope.$on('setUpdateNotebookJobs', function(event, responseData) {
|
||||
var jobInfomations = $scope.jobInfomations;
|
||||
var indexStore = $scope.jobInfomationsIndexs;
|
||||
$scope.lastJobServerUnixTime = responseData.lastResponseUnixTime;
|
||||
var notes = responseData.jobs;
|
||||
notes.map(function(changedItem) {
|
||||
if (indexStore[changedItem.notebookId] === undefined) {
|
||||
var newItem = angular.copy(changedItem);
|
||||
jobInfomations.push(newItem);
|
||||
indexStore[changedItem.notebookId] = newItem;
|
||||
} else {
|
||||
var changeOriginTarget = indexStore[changedItem.notebookId];
|
||||
|
||||
removeIndex = _.findIndex(jobInfomations, {'notebookId': changedItem.notebookId});
|
||||
if (removeIndex) {
|
||||
jobInfomations.splice(removeIndex, 1);
|
||||
}
|
||||
if (changedItem.isRemoved !== undefined && changedItem.isRemoved === true) {
|
||||
|
||||
} else {
|
||||
// change value for item.
|
||||
changeOriginTarget.isRunningJob = changedItem.isRunningJob;
|
||||
changeOriginTarget.notebookName = changedItem.notebookName;
|
||||
changeOriginTarget.notebookType = changedItem.notebookType;
|
||||
changeOriginTarget.interpreter = changedItem.interpreter;
|
||||
changeOriginTarget.unixTimeLastRun = changedItem.unixTimeLastRun;
|
||||
changeOriginTarget.paragraphs = changedItem.paragraphs;
|
||||
// remove Item.
|
||||
var removeIndex = _.findIndex(indexStore, changedItem.notebookId);
|
||||
if (removeIndex > -1) {
|
||||
indexStore.splice(removeIndex, 1);
|
||||
}
|
||||
|
||||
removeIndex = _.findIndex(jobInfomations, {'notebookId': changedItem.notebookId});
|
||||
if (removeIndex) {
|
||||
jobInfomations.splice(removeIndex, 1);
|
||||
}
|
||||
|
||||
} else {
|
||||
// change value for item.
|
||||
changeOriginTarget.isRunningJob = changedItem.isRunningJob;
|
||||
changeOriginTarget.notebookName = changedItem.notebookName;
|
||||
changeOriginTarget.notebookType = changedItem.notebookType;
|
||||
changeOriginTarget.interpreter = changedItem.interpreter;
|
||||
changeOriginTarget.unixTimeLastRun = changedItem.unixTimeLastRun;
|
||||
changeOriginTarget.paragraphs = changedItem.paragraphs;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -12,10 +12,13 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
'use strict';
|
||||
(function() {
|
||||
|
||||
angular.module('zeppelinWebApp')
|
||||
.controller('JobCtrl', function($scope) {
|
||||
angular.module('zeppelinWebApp').controller('JobCtrl', JobCtrl);
|
||||
|
||||
JobCtrl.$inject = ['$scope'];
|
||||
|
||||
function JobCtrl($scope) {
|
||||
$scope.init = function(jobInformation) {
|
||||
$scope.progressValue = 0;
|
||||
};
|
||||
|
|
@ -34,5 +37,6 @@ angular.module('zeppelinWebApp')
|
|||
var result = Math.ceil(runningJobCount / totalCount * 100);
|
||||
return isNaN(result) ? 0 : result;
|
||||
};
|
||||
}
|
||||
|
||||
});
|
||||
})();
|
||||
|
|
|
|||
Loading…
Reference in a new issue