From c0bb73ae9047f57279b4b2daa4e80ae7cd34b241 Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Fri, 23 Sep 2016 11:39:47 +0000
Subject: [PATCH] Task #9886: added direct link to LTA catalogue for ingested
 tasks

---
 .../static/app/controllers/gridcontroller.js  | 30 +++++++++++++++----
 .../lib/webservice.py                         |  3 ++
 2 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
index 724621385f6..dfefca1460b 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/static/app/controllers/gridcontroller.js
@@ -626,12 +626,32 @@ gridControllerMod.directive('contextMenu', ['$document', '$window', function($do
                 ulElement.append(liElement);
                 liElement.on('click', function() {
                     closeContextMenu();
-                    for(var t of selected_tasks) {
-                        if(t) {
-                            var url = dataService.config.inspection_plots_base_url + '/' + t.otdb_id;
-                            $window.open(url, '_blank');
-                        }
+                    var url = dataService.config.inspection_plots_base_url + '/' + task.otdb_id;
+                    $window.open(url, '_blank');
+                });
+            }
+
+            if(task.ingest_status == 'ingested' && dataService.config.lta_base_url) {
+                var liElement = angular.element('<li><a href="#">Open in LTA catalogue</a></li>');
+                ulElement.append(liElement);
+                liElement.on('click', function() {
+                    closeContextMenu();
+                    //example: http://lofar.target.rug.nl/Lofar?mode=query_result_page_user&product=AveragingPipeline&ObservationId=544965&project=LC6_015
+                    //map task.sub_type to url product parameter
+                    var product;
+                    switch(task.sub_type) {
+                        case 'averaging_pipeline': product = 'AveragingPipeline'; break;
+                        case 'calibration_pipeline': product = 'CalibrationPipeline'; break;
+                        case 'pulsar_pipeline': product = 'PulsarPipeline'; break;
+                        case 'lofar_imaging_pipeline': product = 'ImagingPipeline'; break;
+                        case 'imaging_pipeline_msss': product = 'ImagingPipeline'; break;
+                        case 'long_baseline_pipeline': product = 'LongBaselinePipeline'; break;
+                        case 'lofar_observation': product = 'Observation'; break;
+                        default:
+                            return;
                     }
+                    var url = dataService.config.lta_base_url + '/Lofar?mode=query_result_page_user&product=' + product + '&ObservationId=' + task.otdb_id + '&project=' + task.project_name;
+                    $window.open(url, '_blank');
                 });
             }
 
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py
index 5cb338f6795..df76efa8cc5 100755
--- a/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentEditor/lib/webservice.py
@@ -125,12 +125,15 @@ def index():
 @gzipped
 def config():
     config = {'mom_base_url':'',
+              'lta_base_url':'',
               'inspection_plots_base_url':'https://proxy.lofar.eu/inspect/HTML/'}
 
     if isProductionEnvironment():
         config['mom_base_url'] = 'https://lofar.astron.nl/mom3'
+        config['lta_base_url'] = 'http://lofar.target.rug.nl/'
     elif isTestEnvironment():
         config['mom_base_url'] = 'http://lofartest.control.lofar:8080/mom3'
+        config['lta_base_url'] = 'http://lofar-test.target.rug.nl/'
 
     return jsonify({'config': config})
 
-- 
GitLab