diff --git a/examples/al-obscore.html b/examples/al-obscore.html index 90ea0b7b..635fe042 100644 --- a/examples/al-obscore.html +++ b/examples/al-obscore.html @@ -12,11 +12,13 @@ A.init.then(() => { aladin = A.aladin('#aladin-lite-div', {target: '14 18 16.868 +56 44 29.37', fov: 360, projection: 'AIT', showContextMenu: true}); - const c1 = A.catalogFromURL('https://raw.githubusercontent.com/VisIVOLab/SKA-Discovery-Service-Mockup/main/ObsCore/ObsCore_003.xml', {onClick: 'showTable'}); - aladin.addCatalog(c1); + A.catalogFromURL('https://raw.githubusercontent.com/VisIVOLab/SKA-Discovery-Service-Mockup/main/ObsCore/ObsCore_003.xml', {onClick: 'showTable'}, (catalog) => { + aladin.addCatalog(catalog) + }); - const c2 = A.catalogFromVizieR('B/assocdata/obscore', '14 18 16.868 +56 44 29.37', 100, {onClick: 'showTable', limit: 1000}); - aladin.addCatalog(c2); + A.catalogFromVizieR('B/assocdata/obscore', '14 18 16.868 +56 44 29.37', 100, {onClick: 'showTable', limit: 1000}, (catalog) => { + aladin.addCatalog(catalog); + }); }); diff --git a/src/js/A.js b/src/js/A.js index c17ccc5a..326a08fb 100644 --- a/src/js/A.js +++ b/src/js/A.js @@ -177,16 +177,16 @@ A.catalogFromURL = function (url, options, successCallback, errorCallback, usePr catalog.name = "ObsCore:" + url; } - // Even if the votable is not a proper ObsCore one, try to see if specific columns are given - // e.g. access_format and access_url - ObsCore.handleActions(catalog); - catalog.addFootprints(footprints) catalog.addSources(sources); if (successCallback) { - successCallback(sources); + successCallback(catalog); } + + // Even if the votable is not a proper ObsCore one, try to see if specific columns are given + // e.g. access_format and access_url + ObsCore.handleActions(catalog); }; if (useProxy !== undefined) { @@ -203,7 +203,6 @@ A.catalogFromURL = function (url, options, successCallback, errorCallback, usePr url, processVOTable, () => { - console.log("error cors") Catalog.parseVOTable( url, processVOTable, diff --git a/src/js/DefaultActionsForContextMenu.js b/src/js/DefaultActionsForContextMenu.js index 305f2e30..17c89c20 100644 --- a/src/js/DefaultActionsForContextMenu.js +++ b/src/js/DefaultActionsForContextMenu.js @@ -129,8 +129,9 @@ export let DefaultActionsForContextMenu = (function () { files.forEach(file => { const url = URL.createObjectURL(file); - let catalogue = A.catalogFromURL(url, { name: file.name, onClick: 'showTable'}, null, false); - aladinInstance.addCatalog(catalogue); + A.catalogFromURL(url, { name: file.name, onClick: 'showTable'}, (catalog) => { + aladinInstance.addCatalog(catalog); + }, false); }); }; input.click(); diff --git a/src/js/MOC.js b/src/js/MOC.js index 0be3e3d0..4adb05b5 100644 --- a/src/js/MOC.js +++ b/src/js/MOC.js @@ -93,6 +93,7 @@ export let MOC = (function() { this.dataURL = mocURL; this.promiseFetchData = fetch(this.dataURL) .then((resp) => resp.arrayBuffer()); + this.successCallback = successCallback; }; diff --git a/src/js/vo/ObsCore.js b/src/js/vo/ObsCore.js index 0838931c..514bd168 100644 --- a/src/js/vo/ObsCore.js +++ b/src/js/vo/ObsCore.js @@ -188,13 +188,14 @@ throw 'Mandatory field ' + nameField + ' not found'; }; - ObsCore.handleActions = function(obsCoreCatalog) { + ObsCore.handleActions = function(cat) { // Get the ObsCore fields - let fields = obsCoreCatalog.fields; - // And the aladin lite instance - let aladinInstance = obsCoreCatalog.view.aladin; + let fields = cat.fields; + + cat.addFieldClickCallback("access_url", (row) => { + // And the aladin lite instance + let aladinInstance = cat.view.aladin; - obsCoreCatalog.addFieldClickCallback("access_url", (row) => { let accessUrlFieldName = fields["access_url"].name; let accessFormatFieldName = fields["access_format"].name; diff --git a/src/js/vo/samp.js b/src/js/vo/samp.js index b469e01e..80dac6ba 100644 --- a/src/js/vo/samp.js +++ b/src/js/vo/samp.js @@ -30,6 +30,7 @@ import { ALEvent } from "../events/ALEvent"; import { samp } from '../libs/samp'; +import A from "../A"; export class SAMPConnector { constructor(aladin) { @@ -45,22 +46,23 @@ export class SAMPConnector { callHandler["coord.pointAt.sky"] = function(senderId, message, isCall) { var params = message["samp.params"]; - aladin.gotoRaDec(+params["ra"], +params["dec"]) + const {ra, dec} = params; + aladin.gotoRaDec(+ra, +dec) }; callHandler["coverage.load.moc.fits"] = function(senderId, message, isCall) { var params = message["samp.params"]; - let name = params["name"]; - let moc = A.MOCFromURL(params["url"], {name: name, lineWidth: 3}); + const {url, name} = params; + let moc = A.MOCFromURL(url, {name, lineWidth: 3}); aladin.addMOC(moc); }; callHandler["image.load.fits"] = function(senderId, message, isCall) { let params = message["samp.params"]; - let url = params["url"]; - let name = params["name"]; + const {url, name} = params; + const image = aladin.createImageFITS(url, name, options, (e) => window.alert(e)); aladin.setOverlayImageLayer(image, name); @@ -69,16 +71,17 @@ export class SAMPConnector { callHandler["table.load.votable"] = function(senderId, message, isCall) { let params = message["samp.params"]; - let url = params["url"]; - let name = params["name"]; + let {url, name} = params; - let cat = A.catalogFromURL( + A.catalogFromURL( url, - {name: name, onClick: 'showTable'}, - null, + {name, onClick: 'showTable'}, + // Add the catalog if the query has succeded + (catalog) => { + aladin.addCatalog(catalog) + }, (e) => window.alert(e) ); - aladin.addCatalog(cat) }; let subs = cc.calculateSubscriptions();