Skip to content
Snippets Groups Projects
Commit 9a05de62 authored by Jorrit Schaap's avatar Jorrit Schaap
Browse files

Task #9607: automatically load task when searching for mom/otdb id which is...

Task #9607: automatically load task when searching for mom/otdb id which is not in scope, select loaded task and adjust scope to view the loaded task
parent 7d60e78e
No related branches found
No related tags found
No related merge requests found
...@@ -338,6 +338,36 @@ angular.module('raeApp').factory("dataService", ['$http', '$q', function($http, ...@@ -338,6 +338,36 @@ angular.module('raeApp').factory("dataService", ['$http', '$q', function($http,
}) })
}; };
self.getTaskByOTDBId = function(otdb_id) {
var defer = $q.defer();
$http.get('/rest/tasks/otdb/' + otdb_id).success(function(result) {
var task = result.task;
if(task) {
task.starttime = self.convertDatestringToLocalUTCDate(task.starttime);
task.endtime = self.convertDatestringToLocalUTCDate(task.endtime);
}
defer.resolve(task);
}).error(function(result) {
defer.resolve(undefined);
})
return defer.promise;
};
self.getTaskByMoMId = function(mom_id) {
var defer = $q.defer();
$http.get('/rest/tasks/mom/' + mom_id).success(function(result) {
var task = result.task;
if(task) {
task.starttime = self.convertDatestringToLocalUTCDate(task.starttime);
task.endtime = self.convertDatestringToLocalUTCDate(task.endtime);
}
defer.resolve(task);
}).error(function(result) {
defer.resolve(undefined);
})
return defer.promise;
};
self.copyTask = function(task) { self.copyTask = function(task) {
$http.put('/rest/tasks/' + task.id + '/copy').error(function(result) { $http.put('/rest/tasks/' + task.id + '/copy').error(function(result) {
console.log("Error. Could not copy task. " + result); console.log("Error. Could not copy task. " + result);
...@@ -767,6 +797,7 @@ dataControllerMod.controller('DataController', ...@@ -767,6 +797,7 @@ dataControllerMod.controller('DataController',
function($scope, dataService) { function($scope, dataService) {
var self = this; var self = this;
$scope.dataService = dataService; $scope.dataService = dataService;
dataService.dataCtrl = this;
$scope.dateOptions = { $scope.dateOptions = {
formatYear: 'yyyy', formatYear: 'yyyy',
...@@ -790,6 +821,28 @@ dataControllerMod.controller('DataController', ...@@ -790,6 +821,28 @@ dataControllerMod.controller('DataController',
$scope.jumpToNow(); $scope.jumpToNow();
$scope.loadTaskByOTDBIdSelectAndJumpIntoView = function(otdb_id) {
$scope.dataService.getTaskByOTDBId(otdb_id).then(function(task) {
if(task) {
$scope.dataService.tasks.push(task);
$scope.dataService.taskDict[task.id] = task;
$scope.dataService.setSelectedTaskId(task.id);
$scope.jumpToSelectedTask();
}
});
};
$scope.loadTaskByMoMIdSelectAndJumpIntoView = function(mom_id) {
$scope.dataService.getTaskByMoMId(mom_id).then(function(task) {
if(task) {
$scope.dataService.tasks.push(task);
$scope.dataService.taskDict[task.id] = task;
$scope.dataService.setSelectedTaskId(task.id);
$scope.jumpToSelectedTask();
}
});
};
$scope.selectCurrentTask = function() { $scope.selectCurrentTask = function() {
var currentTasks = dataService.tasks.filter(function(t) { return t.starttime <= dataService.viewTimeSpan.to && t.endime >= dataService.viewTimeSpan.from; }); var currentTasks = dataService.tasks.filter(function(t) { return t.starttime <= dataService.viewTimeSpan.to && t.endime >= dataService.viewTimeSpan.from; });
if(currentTasks.lenght > 0) { if(currentTasks.lenght > 0) {
...@@ -828,6 +881,7 @@ dataControllerMod.controller('DataController', ...@@ -828,6 +881,7 @@ dataControllerMod.controller('DataController',
from: dataService.floorDate(new Date(focusTime.getTime() - 0.4*viewSpanInMinutes*60*1000), 1, 5), from: dataService.floorDate(new Date(focusTime.getTime() - 0.4*viewSpanInMinutes*60*1000), 1, 5),
to: dataService.floorDate(new Date(focusTime.getTime() + 0.6*viewSpanInMinutes*60*1000), 1, 5) to: dataService.floorDate(new Date(focusTime.getTime() + 0.6*viewSpanInMinutes*60*1000), 1, 5)
}; };
dataService.autoFollowNow = false;
}; };
$scope.scrollBack = function() { $scope.scrollBack = function() {
......
...@@ -148,6 +148,23 @@ $scope.columns = [ ...@@ -148,6 +148,23 @@ $scope.columns = [
$scope.dataService.filteredTaskDict = $scope.dataService.toIdBasedDict($scope.dataService.filteredTasks); $scope.dataService.filteredTaskDict = $scope.dataService.toIdBasedDict($scope.dataService.filteredTasks);
$scope.dataService.filteredTaskChangeCntr++; $scope.dataService.filteredTaskChangeCntr++;
if($scope.dataService.filteredTasks.length == 0) {
var otdb_col = $scope.gridApi.grid.columns.find(function(c) {return c.field == 'otdb_id'; });
if(otdb_col && otdb_col.filters.length && otdb_col.filters[0].hasOwnProperty('term')) {
var otdb_id = otdb_col.filters[0].term;
$scope.$parent.$parent.loadTaskByOTDBIdSelectAndJumpIntoView(otdb_id);
otdb_col.filters[0].term = null;
} else {
var mom_col = $scope.gridApi.grid.columns.find(function(c) {return c.field == 'mom_id'; });
if(mom_col && mom_col.filters.length && mom_col.filters[0].hasOwnProperty('term')) {
var mom_id = mom_col.filters[0].term;
$scope.$parent.$parent.loadTaskByMoMIdSelectAndJumpIntoView(mom_id);
mom_col.filters[0].term = null;
}
}
}
}); });
}); });
......
...@@ -233,6 +233,38 @@ def getTask(task_id): ...@@ -233,6 +233,38 @@ def getTask(task_id):
return jsonify({'task': None}) return jsonify({'task': None})
@app.route('/rest/tasks/otdb/<int:otdb_id>', methods=['GET'])
def getTaskByOTDBId(otdb_id):
try:
task = rarpc.getTask(otdb_id=otdb_id)
if not task:
abort(404)
task['name'] = 'Task %d' % task['id']
updateTaskMomDetails(task, momqueryrpc)
return jsonify({'task': task})
except Exception as e:
abort(404)
return jsonify({'task': None})
@app.route('/rest/tasks/mom/<int:mom_id>', methods=['GET'])
def getTaskByMoMId(mom_id):
try:
task = rarpc.getTask(mom_id=mom_id)
if not task:
abort(404)
task['name'] = 'Task %d' % task['id']
updateTaskMomDetails(task, momqueryrpc)
return jsonify({'task': task})
except Exception as e:
abort(404)
return jsonify({'task': None})
@app.route('/rest/tasks/<int:task_id>', methods=['PUT']) @app.route('/rest/tasks/<int:task_id>', methods=['PUT'])
def putTask(task_id): def putTask(task_id):
if isProductionEnvironment(): if isProductionEnvironment():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment