Skip to content
Snippets Groups Projects
Select Git revision
  • d2c8d3013b53b47a29da1b5fb4c9248f5437443c
  • master default protected
  • Work_Gijs protected
3 results

rd_unb2c.py

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    gridcontroller.js 44.58 KiB
    // $Id: controller.js 32761 2015-11-02 11:50:21Z schaap $
    
    var gridControllerMod = angular.module('GridControllerMod', ['ui.grid',
                                                                 'ui.grid.edit',
                                                                 'ui.grid.selection',
                                                                 'ui.grid.resizeColumns',
                                                                 'ui.grid.autoResize']);
    
    gridControllerMod.controller('GridController', ['$scope', '$window', 'dataService', 'uiGridConstants', function($scope, $window, dataService, uiGridConstants) {
    
        var self = this;
    
        $scope.dataService = dataService;
    
        $scope.sanitize_url = function(in_url) {
            var split_url = in_url.split("://");
            return split_url[0] + "://" + split_url[1].replace(/\/+/g, "/");
        }
    
        $scope.selectBlockingPredecessors = function(in_blocking_predecessors) {
            $scope.$parent.$parent.loadTasksSelectAndJumpIntoView(in_blocking_predecessors);
        };
    
        $scope.openLtaLocation = function(in_ingest_tasks) {
            var ingest_tasks = Array.isArray(in_ingest_tasks) ? in_ingest_tasks : [in_ingest_tasks];
    
            //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 project2project2product2tasksDict = {};
    
            for(var t of ingest_tasks) {
                var lta_product;
                switch(t.sub_type) {
                    case 'averaging_pipeline': lta_product = 'AveragingPipeline'; break;
                    case 'calibration_pipeline': lta_product = 'CalibrationPipeline'; break;
                    case 'pulsar_pipeline': lta_product = 'PulsarPipeline'; break;
                    case 'lofar_imaging_pipeline': lta_product = 'ImagingPipeline'; break;
                    case 'imaging_pipeline_msss': lta_product = 'ImagingPipeline'; break;
                    case 'long_baseline_pipeline': lta_product = 'LongBaselinePipeline'; break;
                    case 'lofar_observation': lta_product = 'Observation'; break;
                }
                if(lta_product && (t.ingest_status != undefined) ) {
                    if(!project2project2product2tasksDict.hasOwnProperty(t.project_name)) {
                        project2project2product2tasksDict[t.project_name] = {};
                    }
                    if(!project2project2product2tasksDict[t.project_name].hasOwnProperty(lta_product)) {
                        project2project2product2tasksDict[t.project_name][lta_product] = [];
                    }
                    project2project2product2tasksDict[t.project_name][lta_product].push(t);
                }
            }
    
            var window_cntr = 0;
            for(var project in project2project2product2tasksDict) {
                for(var product in project2project2product2tasksDict[project]) {
                    var product_tasks = project2project2product2tasksDict[project][product];
                    var otdb_ids = product_tasks.map(function(pt) { return pt.otdb_id; });
                    var otdb_ids_string = otdb_ids.join(',');
                    var url = dataService.config.lta_base_url + '/Lofar?mode=query_result_page_user&product=' + product + '&ObservationId=' + otdb_ids_string + '&project=' + project;
                    url = $scope.sanitize_url(url);
                    setTimeout(function(url_arg) {
                        $window.open(url_arg, '_blank');
                    }, window_cntr*250, url);
                    window_cntr += 1;
                }
            }
        }
    
        $scope.columns = [
        { field: 'name',