Coder Social home page Coder Social logo

tap-complex-data's People

Contributors

galyfray avatar haoyunliao avatar lmichel avatar zomeserges avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

haoyunliao

tap-complex-data's Issues

[FEATURE] Restoring the columns displayed be default

Is your feature request related to a problem? Please describe.
The column selector form opens with the default column selected.
Screenshot 2021-12-18 at 11 17 09

One the user has done its own selection, there is no way to turn back this default setup

Describe the solution you'd like
A third restore default button on the form bottom would be appreciated

[FEATURE] Error feed back

On Simbad, when put constraint on numerical IDs, the values are quoted. They shouldn't be.

SELECT TOP 10 "public".basic.oid , "public".basic.otype , "public".basic.main_id , "public".basic.otype_txt , "public".basic.ra , "public".basic.dec
 FROM  "public".basic
 JOIN "public".otypes ON "public".basic.oid="public".otypes.oidref
 WHERE ( "public".basic.oid  ='11898832' ) AND
   ( "public".otypes.otype  ='-536870912' )

When run this query, the former results are displayed as if the query was successful and there is no error message in the console or on the screen either.

The user has no reason to consider that a failure happen. This is a very serious issue.

[FEATURE] Editable request

Is your feature request related to a problem? Please describe.
being able to edit the request in the jsResources demo page would be usefull

Describe the solution you'd like
a field where we could edit the request

[Bug] unnecessary/too agressive re-normalization

When we connect a table without join (no key either), onle one row is displayed with the following message:

duplacted data has been removed 9 duplicated entrie(s) were removed

Likely an edge effect

[FEATURE] Bookmark facility

Is your feature request related to a problem? Please describe.
Once #36 is fixed, we have 2 levels of bookmarking

  • per service
  • per service.table

This make the bookmark button on the page head confusing
Screenshot 2021-12-18 at 11 29 37

Describe the solution you'd like
Remove the BM button from the page head
Make it accessible from the info button Screenshot 2021-12-18 at 11 35 43 either at service or table nodes

[FEATURE]"smart" async of methods

many methods use async await for a very small part of the work and sometimes asynchronous work isn't needed each call due to a cache it would make the api more flexible to make methods use a "smart" async:

  • new standard parameters among every api method : fullAsync when true the whole method is wraped into a promise (even if unnecessary)
  • reduce the async part to only the needed
  • only return a promise when needed if work is entirely done with cached data it shouldn't create a promise
  • add generic code to ease the handle of the "smart" async by the user ?

[FEATURE] Restore TapHandle functionnality: Alix

  • Possibility of opening the Alix sky browser on any table with positions.

This has been implemented by Serges on the develop branch of TapHandle

  • The button opening ALix should added to the tabler header (with the arrows)
  • We might have a CSS conflict between JSResourrce CSS and Alix CSS: let's be cautious

[FEATURE]better select where

Is your feature request related to a problem? Please describe.
selecting the table then the field like currently done in the jsResources page is quite un handy

Describe the solution you'd like
putting all columns in one constraint selector

Describe alternatives you've considered
a better way to select the table

[FEATURE] Re-normalization

Is your feature request related to a problem? Please describe.
Request with joins often return un-normalized data currently a re-normalization process exist in the code dedicated to the jsResource test page but not in the api

Describe the solution you'd like
move re-normalization process from the jsResource test page's dedicated code to the api

[FEATURE] Waiting panel

Make the waiting panel a little bit transparent.

The black screen is uncomfortable because the user lost track of what he was looking at.

[FEATURE] Constraints on sub-components

I we have the following schema
Scan1
A selection on basic=XY with ref=AB will show up

  1. The basic row on the top level
  2. a 1 row tables with ref=AB when we click on the basic row,

This is exactly the expected behavior

If we had one more join level as shown below
Scan2

A selection on basic=XY with ref_val=AB will show up

  1. The basic row on the top level
  2. a 2 rows tables with cle1=1 when clicking on the basic row,
  3. ref_val=AB when clinking on cle2=2
  4. ref_val=CD when clinking on cle2=3

Although this is a correct behavior, it is confusing for the user because he looses the track of the selected data as long as he goes down in the hierarchy .

This issue must be discussed ahead but we can test the following workaround:

  1. Restoring the the constraint when clicking on a row of a table with a level > root (e.g. ref and deeper in our example)
  2. Running the constraint-less query on demand (button or shift-click...)

[Bug] Support of multiple joins

Following the discussion with the registry WG, It turns out that the reason for the misbehavior of the registry browser is due the non support of joins with multiple keys.

Dear Registry WG,

Sorry, I hadn't realised the mail is on-list before hectically
passing the mail to my MTA. Apologies for a mail intended to be
private and a discussion of my transportation predicaments on the
list.

Anyway, since it was on-list, let me state the problem for
posteriority now that I've arrived:

On Fri, Oct 22, 2021 at 06:04:54PM +0200, Markus Demleitner wrote:
On Fri, Oct 22, 2021 at 04:07:07PM +0200, Laurent Michel wrote:
SELECT TOP 100 rr.capability., rr.interface.
FROM rr.capability
JOIN rr.interface ON rr.interface.ivoid = rr.capability.ivoid
WHERE rr.capability.ivoid like 'ivo://cadc.nrc.ca/youcat'
AND rr.capability.standard_id = 'ivo://ivoa.net/std/tap'

The problem here is that you do not join on cap_index; my natural
join of course did that automatically.

For all I can see, the foreign key from interface into capability is
correctly declared at least on reg.g-vo.org, though, no?

Anyway, if you want to explicitly write the join (which, as I said,
is unidiomatic for RegTAP), you would have to write this as

SELECT TOP 100 rr.capability., rr.interface.
FROM rr.capability
JOIN rr.interface ON (
rr.interface.ivoid = rr.capability.ivoid
AND rr.interface.cap_index = rr.capability.cap_index)
WHERE rr.capability.ivoid like 'ivo://cadc.nrc.ca/youcat'
AND rr.capability.standard_id = 'ivo://ivoa.net/std/tap'

-- or, more concisely, write the join condition as

USING (ivoid, cap_index)

Oh, and avoid the LIKE operator (here in the ivoid condition) when
you don't actually have a pattern. One of these days there'll be a %
or _ in your literal and you'll have unexpected results.

I am also on a crusade against SELECT * -- it usually pays all around
to think what data exactly one needs. Perhaps not so much in this
case, but we have lots of tables in the VO with 100+ columns, and we
ought to educate our users that pulling them all is not a good idea
in general (if only because you'll much earlier hit upload limits
when re-using the table).

Side note: The cool TOPCAT feature where you can control-click the
columns you want in the metadata browser and then hit the "insert
columns" botton would be on my wishlist for taphandle...

[FEATURE] Search bar clean up

Is your feature request related to a problem? Please describe.
The only way we have to erase the search bar content is to use the Backspace key.
This triggers many useless queries on the server and alter the user experience.
Screenshot 2021-12-18 at 10 35 58

Describe the solution you'd like
Add a trash button to the search bar that erase it in in step

[FEATURE] searched table in the search bar

Is your feature request related to a problem? Please describe.
The search bar show-up a list of column that can be constrained, but there is no way to get which table they belong to .
Screenshot 2021-12-18 at 10 17 51
Describe the solution you'd like
A tooltip on each column label telling the table name

[Bug] Dev branch can't connect API with Simbad

Describe the bug
Can't connect simbad with the API

To Reproduce
Steps to reproduce the behavior:
Run the test API page select Simbad click on Connect API

Expected behavior
Satus : OK connected with simbad

Desktop (please complete the following information):

  • OS: Ubuntu 18.04.5
  • Browser firefox
  • Version 91.0.2

[FEATURE] Column selection

For the coming demo

It would be nice to display any column that have been constrained.

It could be added to the objectMap, with a flag (to be added to the AH) allowing to remove before the next query.

for the final version

In addition to the above feature, the WHAT selector should be multi-table

[Bug] Missing space is all column queries

Describe the bug
On CAOM
when expanding the ObsPointing table to display all columns, the schema name is prefixed with10which makes the query failing

Initial Query:

SELECT TOP 10 dbo.CaomObservation.observationTID , dbo.CaomObservation.algName , dbo.CaomObservation.trgName , dbo.CaomObservation.trgPosRA , dbo.CaomObservation.trgPosDec , dbo.CaomObservation.tlsName , dbo.CaomObservation.insName
FROM  dbo.CaomObservation

click on planTID=574585

Failng query

Async AJAXurl: //vao.stsci.edu/CAOMTAP/tapservice.aspx/sync 
query: SELECT TOP 10dbo.ObsPointing.dataProduct_Type , dbo.ObsPointing.calib_level , dbo.ObsPointing.obs_collection , dbo.ObsPointing.obs_id , dbo.ObsPointing.target_name , dbo.ObsPointing.s_ra , dbo.ObsPointing.s_dec , dbo.ObsPointing.t_min , dbo.ObsPointing.t_max , dbo.ObsPointing.t_exptime , dbo.ObsPointing.wavelength_region , dbo.ObsPointing.filters , dbo.ObsPointing.em_min , dbo.ObsPointing.em_max , dbo.ObsPointing.target_classification , dbo.ObsPointing.obs_title , dbo.ObsPointing.t_obs_release , dbo.ObsPointing.instrument_name , dbo.ObsPointing.proposal_pi , dbo.ObsPointing.proposal_id , dbo.ObsPointing.proposal_type , dbo.ObsPointing.project
FROM  dbo.ObsPointing
WHERE ( dbo.ObsPointing.obsID=347707 )

[FEATURE] refactor to remove duplicated code

there is inside of the api many times the same-ish code :

let data = this.someCall()
if(data.status){
    // work
} else {
   // return the error 
}

or

if(this.connectLevel >n){
   //work
}else {
   // return generic error
}

those kind of code are everywhere sometimes in both the api and the application using the api thus finding a way to avoid this duplicated code will improve code clarity as well as quality

proposals :

  • the return object could be enhanced with generic methods like then and else to setup handlers this might have some side effect as sometimes the existence of a then method is used to know if the object can used like a promise
  • a method factory can be used to wrap methods and handle basic tests like the connect level although this will probably be complicated hard to maintain and be a bug factory instead of a method factory. This way may also cause trouble for documentation and completion helper inside some IDEs.

[Bug] Both ivoa and tap_schema always displayed

Describe the bug
The table/schema selector must be tuned in a way that both ivoa and tap_schema are always displayed

To Reproduce
Steps to reproduce the behavior:

  1. Open this page
  2. Double click on STSCI CAOMTAP
  3. Select table like Obs
  4. See that the tap_schema node disappeared.

Expected behavior
ivoa and tap_schema always displayed

Screenshots

Screenshot 2021-12-18 at 10 54 16

[FEATURE] JSResource refactoring

As we can not keep the compliance with JSResource for a reasonable cost, we have fork-and-split this code ant to integrate it within the project

  • Keep the layout and the look and feel
  • Keep the class hierarchy
  • Adapt the logic.

In this new work configuration, we have to strip the imported JSResource code in order to get ride of the functions that are irrelevant in the context of TAP-complex

This a background task tat can be achieved in a progressive mode

[FEATURE] Remind the schema/table on the query form head

Is your feature request related to a problem? Please describe.
The query form window does not remind the schema/table it is related to.
Screenshot 2021-12-18 at 11 07 47

This is confusing when we have a set of joined tables on the screen

Describe the solution you'd like
Put the datatree path as the query form title
Screenshot 2021-12-18 at 11 09 48

[FEATURE] Table selection window

Is your feature request related to a problem? Please describe.
When we click on the Apply button of the schema/table selector, nothing happens
Screenshot 2021-12-18 at 10 51 02

Describe the solution you'd like
The window should be closed when click on APPLY.

[Bug] Tree scroll bar misplaced

Describe the bug
On FF MacOS, the horizontal scroll bar of service tree masks the bottom node.

To Reproduce
Steps to reproduce the behavior:

  1. open this
  2. pass the mouse over the service tree

Expected behavior
All node must keep visible

Screenshots
Screenshot 2021-12-18 at 10 12 33

If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [Mac]
  • OS: [BigSure]
  • Browser [FF]
  • Version [94]

[FEATURE]Position conditions

Is your feature request related to a problem? Please describe.
there is no way to put constraint for object around a position

Describe the solution you'd like
a constraint editor like the one in TapHandle to handle this kind of constraints

[FEATURE] Restore TapHandle functionnality: DataLink

Some tables contain URLs on DataLink endpoints instead of direct links to data products.

DataLink is a VO protocol providing an access to a set of data or services attached to a given product.

  • JSResource embeds a DataLinks Browser that must be reused.

[Bug] Cannot open the query from from the icons

Describe the bug
The icon below is supposed to open the query form

Screenshot 2021-12-18 at 11 00 53

The query forms opens an closes twice and the collapsed windows ends-up over the search bar.
Screenshot 2021-12-18 at 11 02 58

To Reproduce
Steps to reproduce the behavior:

  1. Go to here
  2. Click on 'caomObservation'
  3. Clik on the 'Refine query' icon on the top right of the data table
  4. See error

Expected behavior
Open query form

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [MacBookPro]
  • OS: [BigSure]
  • Browser [FF]
  • Version [94]

Additional context
Note that the column selector works fine

[FEATURE] Credit page

Is your feature request related to a problem? Please describe.
Open a credit page when clicking in the logo
Screenshot 2021-12-18 at 10 28 23

Describe the solution you'd like
This page would a static html page to be joined to the project in a doc folder.
It will show up as modal window

  • Contributors
  • Releases with a date
  • Introduction
  • Useful links

Describe alternatives you've considered
We may consider to write the page in MD and to generate the HTML with Pandoc

[Bug][Dev] Get join tables not working

Describe the bug
The "Get Join Tables" button doesn't work

To Reproduce
Steps to reproduce the behavior:

  1. run testApi
  2. select and connect any server
  3. click on the "Get Join Tables" button
  4. nothing get printed

Expected behavior
The joined table json get showed.

Desktop (please complete the following information):

  • OS: Ubuntu 18.04.5
  • Browser firefox
  • Version 91.0.2

[FEATURE]Popular service drop list

Is your feature request related to a problem? Please describe.
On a notebook with a screen less wide than a laptop, the dropdown list is very narrow
Screenshot 2021-12-18 at 10 22 03

Describe the solution you'd like
The page header should be rearranged to make that list wider, e.g. by moving the search bar to the right

** Alternative **
Make the list wider than the button

License and Typescript missing ?

We are looking into the possibility of developing a Vue.js app that would use a TAP service to display events. I was wondering if we could use your code for this? I don't see any license attached to the repo, so it is not clear.

Also, in the README, you mention Typescript, but the typescript files don't seem to be pushed in the repo.

[FEATURE]Service, schema and root table selection

Is your feature request related to a problem? Please describe.
there is no way to change the root table or to use a different schema in the jsResources demos page

Describe the solution you'd like
something like the tree used in the TapHandle page would do the job

[FEATURE] Auto updates sub pannel

Is your feature request related to a problem? Please describe.
Select a line open a few sub panels then select another line and they're all gone ...

Describe the solution you'd like
when changing the selected line all sub panels should updates

[FEATURE] search in the registry

Is your feature request related to a problem? Please describe.
there is only a very limited amount of TAP services and schema which we can connect to.
would be usefull to be able to look up in the registry for other TAP services

Describe the solution you'd like
A TapHandle like search bar

[Bug] Type error in constraint

On Simbad, when put constraint on numerical IDs, the values are quoted. They shouldn't be.

SELECT TOP 10 "public".basic.oid , "public".basic.otype , "public".basic.main_id , "public".basic.otype_txt , "public".basic.ra , "public".basic.dec
 FROM  "public".basic
 JOIN "public".otypes ON "public".basic.oid="public".otypes.oidref
 WHERE ( "public".basic.oid  ='11898832' ) AND
   ( "public".otypes.otype  ='-536870912' )

[FEATURE] More than 10 lines

Is your feature request related to a problem? Please describe.
the API doesn't allow to select more than 10 lines

Describe the solution you'd like
being able to change this either by a specific methods or using another param in the method we call to gather the data

[FEATURE] Tooltip on the Sauron's eye

Is your feature request related to a problem? Please describe.
The toot tip upon the view's eye must tell explicitly that query by positions could be very slow.
Screenshot 2021-12-18 at 10 46 56
request here.

[Bug][Dev] can't select Vizier

Describe the bug
Selecting vizier does not work

To Reproduce
Steps to reproduce the behavior:

  1. run testApi
  2. select vizier
  3. message doesn't get update

Expected behavior
message get updated and vizier can be connected to the API

Desktop (please complete the following information):

  • OS: Ubuntu 18.04.5
  • Browser firefox
  • Version 91.0.2

[Bug] Multi path supression

Describe the bug
When multiple paths exist from one table to another are available the system currently only keep the shortest path. This behavior is handy for internal ease of programmation but can hide data.

The system must be able to handle multiple paths.
AS a first quick fix keeping the longest path instead can hide less data.

[FEATURE] UCDs of the columns to be displayed by default

Is your feature request related to a problem? Please describe.
For the now, only the position UCDs are used to select the columns to be displayed by default.

Screenshot 2021-12-18 at 10 41 56

**Describe

The Obscore UCDs related to the other axes (time energy at least) must be added
In a more general way, the UCDs to be displayed by default must be preferably taken out from the Obscore Standard.

[FEATURE] ~Better~ encapsulation

In the current api implementation there is no encapsulation. If a true encapsulation is currently impossible in JS (or at least to hard to be worth) a basic encapsulation would probably be a good things to add.

as classes are defined in IIFE making a private method or attribute would be easy (define it inside the function and don't register it in the main object), even if this would require some tests to ensure that all objects doesn't share the sames private objects this remains an easy way to do.
Protected fields and methods could be registered in a protected field of the object, this is not a true protected field but this way would ensure that anyone messing with those fields and functions would know that he may not be supposed to do so.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.