diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js
index 9cfefb6a58914579d9007cebfabd96a23c881b50..6a41d756ed73840f06c43afd64e0dd52a6f67c53 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/datacontroller.js
@@ -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) {
         $http.put('/rest/tasks/' + task.id + '/copy').error(function(result) {
             console.log("Error. Could not copy task. " + result);
@@ -767,6 +797,7 @@ dataControllerMod.controller('DataController',
                             function($scope, dataService) {
     var self = this;
     $scope.dataService = dataService;
+    dataService.dataCtrl = this;
 
     $scope.dateOptions = {
         formatYear: 'yyyy',
@@ -790,6 +821,28 @@ dataControllerMod.controller('DataController',
 
     $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() {
         var currentTasks = dataService.tasks.filter(function(t) { return t.starttime <= dataService.viewTimeSpan.to && t.endime >= dataService.viewTimeSpan.from; });
         if(currentTasks.lenght > 0) {
@@ -828,6 +881,7 @@ dataControllerMod.controller('DataController',
             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)
         };
+        dataService.autoFollowNow = false;
     };
 
     $scope.scrollBack = function() {
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
index 461b7892185fb56d3dedcbf26ee927539a7a1cb5..e54e9c8b7ff8e50f1f89e8d7cadd24dec4be6b33 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
@@ -148,6 +148,23 @@ $scope.columns = [
 
                     $scope.dataService.filteredTaskDict = $scope.dataService.toIdBasedDict($scope.dataService.filteredTasks);
                     $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;
+                            }
+                        }
+                    }
                 });
             });
 
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py
index d2492c6dd73a971856f354deca6bd2d6446896a6..7a040d9c6bffd4c1e03b183259844eb6e56b9d37 100755
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py
@@ -233,6 +233,38 @@ def getTask(task_id):
 
     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'])
 def putTask(task_id):
     if isProductionEnvironment():