Story #14393

Provide support for using controlled vocabulary/terminology service when setting properties on collections

Added by Tom Morris almost 3 years ago. Updated almost 3 years ago.

Status:
Closed
Priority:
Normal
Category:
-
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Story points:
3.0

Description

Provide the equivalent support as was done for the existing workbench in #12479.

Some other details:
  • behavior is triggered by presence or absence of vocabulary file ("vocabulary.json" in existing implementation, but could be controlled by a configuration parameter
  • design center was 10-15 groups of terms (ie "vocabularies") with numbers of items for each ranging from a couple of dozen to a few thousand
  • there's an example file at arvados/apps/workbench/public/vocabulary-example.json

Related issues

Related to Arvados - Story #12479: [Workbench] Extend tag/property editing to support a structured vocabularyResolved10/24/2017

Blocked by Arvados Workbench 2 - Feature #14554: [Config] Config files deploymentClosed

Blocks Arvados Workbench 2 - Feature #14587: [Vocabulary] Disable default use of vocabulary.json.In Progress

Associated revisions

Revision 80fab904 (diff)
Added by Michał Kłobukowski almost 3 years ago

Create vocabulary model

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision e843169b (diff)
Added by Michał Kłobukowski almost 3 years ago

Create getVocabulary selector

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 54bc9553 (diff)
Added by Michał Kłobukowski almost 3 years ago

Create vocabulary service

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 85c93508 (diff)
Added by Michał Kłobukowski almost 3 years ago

Add vocabulary url to config

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 042fbd69 (diff)
Added by Michał Kłobukowski almost 3 years ago

Add VOCABULARY_URL to config schema in readme

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision b8bba11c (diff)
Added by Michał Kłobukowski almost 3 years ago

Add vocabularyService to ServiceRepository

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 1022c7ee (diff)
Added by Michał Kłobukowski almost 3 years ago

Add function that validates whether a given value is a correct vcabulary

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 960d08db (diff)
Added by Michał Kłobukowski almost 3 years ago

Export DEFAULT_VOCABULARY value

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision fdd79297 (diff)
Added by Michał Kłobukowski almost 3 years ago

Create loadVocabulary action

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 612cc2f2 (diff)
Added by Michał Kłobukowski almost 3 years ago

Add loadVocabulary dispatch to project initialization

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 028b8ca1 (diff)
Added by Michał Kłobukowski almost 3 years ago

Fix vocabulary tags fiel type

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 857ac804 (diff)
Added by Michał Kłobukowski almost 3 years ago

Add error support to autocomplete

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 511702e8 (diff)
Added by Michał Kłobukowski almost 3 years ago

Create PropertyKeyField

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 81546d30 (diff)
Added by Michał Kłobukowski almost 3 years ago

Create PropertyValueField

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 4aaaf749 (diff)
Added by Michał Kłobukowski almost 3 years ago

Use formValues to access property key value

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 850f82da (diff)
Added by Michał Kłobukowski almost 3 years ago

Extract PROPERTY_KEY_FIELD_NAME to keep consistency between fields

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 6453a606 (diff)
Added by Michał Kłobukowski almost 3 years ago

Extract PROPERTY_VALUE_FIELD_NAME

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 366a714c (diff)
Added by Michał Kłobukowski almost 3 years ago

Create ResourcePropertiesForm

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 6fbf6c43 (diff)
Added by Michał Kłobukowski almost 3 years ago

Reuse ResourcePropertiesForm as CollectionTagForm

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision e039a6f5 (diff)
Added by Michał Kłobukowski almost 3 years ago

Reuse ResourcePropertiesForm as ProjectPropertiesForm

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 8eb3dc9f (diff)
Added by Michał Kłobukowski almost 3 years ago

Unwrap ResourcePropertiesForm

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 3f2690d7 (diff)
Added by Michał Kłobukowski almost 3 years ago

Mark vocabulary tag fields as optional

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 01d6c5fb (diff)
Added by Michał Kłobukowski almost 3 years ago

Update getTagValues to handle undefined tag values field

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 0b43ddb0 (diff)
Added by Michał Kłobukowski almost 3 years ago

Create ProgressButton

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision e8bda1ab (diff)
Added by Michał Kłobukowski almost 3 years ago

Change Autocomplete's popover anchor

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision e9fdba2e (diff)
Added by Michał Kłobukowski almost 3 years ago

Extract property-field-common module

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision cf3a9e01 (diff)
Added by Michał Kłobukowski almost 3 years ago

Use ProgressButton in ResourcePropertiesForm

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 6578e959 (diff)
Added by Michał Kłobukowski almost 3 years ago

Extract common utils for controlling property field error visibility

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 768d715e (diff)
Added by Michał Kłobukowski almost 3 years ago

Extract property field props builder

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 2cb16ce0 (diff)
Added by Michał Kłobukowski almost 3 years ago

Clean up imports

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 4ff8b259 (diff)
Added by Michał Kłobukowski almost 3 years ago

Add classes prop to ResourcePropertiesForm

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 52bc7822 (diff)
Added by Michał Kłobukowski almost 3 years ago

Add margin to ProjectPropertiesForm

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 486d4d2a (diff)
Added by Michał Kłobukowski almost 3 years ago

Add margin to CollectionTagForm

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 6a923242 (diff)
Added by Michał Kłobukowski almost 3 years ago

Add build-local script

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision ca461336 (diff)
Added by Michał Kłobukowski almost 3 years ago

Restore TAG_KEY_VALIDATION

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision f0aac0b9 (diff)
Added by Michał Kłobukowski almost 3 years ago

Restore TAG_VALUE_VALIDATION

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 9a6108f9 (diff)
Added by Michał Kłobukowski almost 3 years ago

Add test-local script

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision b7de31f1
Added by Michał Kłobukowski almost 3 years ago

Merge branch 'master' into 14393-vocabulary

refs #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision fdc9e2f7
Added by Michał Kłobukowski almost 3 years ago

Merge branch '14393-vocabulary'

refs #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 025c6ba3 (diff)
Added by Michał Kłobukowski almost 3 years ago

Add react-select dependency

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 88d3dba9 (diff)
Added by Michał Kłobukowski almost 3 years ago

Improve suggestions box style so it stays in a viewport

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 425cafe2 (diff)
Added by Michał Kłobukowski almost 3 years ago

Force suggestions box to update position when items amount changes

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 6d7c7e9e (diff)
Added by Michał Kłobukowski almost 3 years ago

Add autocomplete arrows navigation

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 88bc5b67 (diff)
Added by Michał Kłobukowski almost 3 years ago

Remove unused react-select dependency

Feature #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision f9dafeec
Added by Michał Kłobukowski almost 3 years ago

Merge branch 'master' into 14393-improve-autoselect

refs #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

Revision 5ecee04a
Added by Michał Kłobukowski almost 3 years ago

Merge branch '14393-improve-autoselect'

refs #14393

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <>

History

#1 Updated by Tom Morris almost 3 years ago

  • Related to Story #12479: [Workbench] Extend tag/property editing to support a structured vocabulary added

#2 Updated by Moritz Gilsdorf almost 3 years ago

Using the terminologies when setting the properties is not enough. It should then also be used when using properties in the search.

#3 Updated by Chrystian Klingenberg almost 3 years ago

  • Target version set to sprint 13 (lucky number)

#4 Updated by Michał Kłobukowski almost 3 years ago

Behavior is triggered by presence or absence of vocabulary file ("vocabulary.json" in existing implementation, but could be controlled by a configuration parameter
1. So should we expect vocabulary.json to placed by default for example under `c97qk.arvadosapi.com/vocabulary.json`?
2. Does configuration mean a config.json file the same that is currently used for `API_HOST`?
3. Would that be the way to check if vocabulary should be enabled:
3.1 Get vocabulary from default path end enable the feature,
3.2 If default not available check config file for vocabulary URL - if present fetch it end enable the feature,

there's an example file at arvados/apps/workbench/public/vocabulary-example.json
1. Does the truthy strict property mean, that we won't be able to type other values that the ones from vocabulary.

#5 Updated by Michał Kłobukowski almost 3 years ago

  • Status changed from New to Feedback
  • Assigned To set to Michał Kłobukowski

#6 Updated by Michał Kłobukowski almost 3 years ago

  • Status changed from Feedback to In Progress

#7 Updated by Daniel Kos almost 3 years ago

  • Target version changed from sprint 13 (lucky number) to sprint 14

#8 Updated by Michał Kłobukowski almost 3 years ago

#9 Updated by Michał Kłobukowski almost 3 years ago

  • Related to deleted (Feature #14554: [Config] Config files deployment)

#10 Updated by Michał Kłobukowski almost 3 years ago

#11 Updated by Michał Kłobukowski almost 3 years ago

  • Status changed from In Progress to Resolved

#12 Updated by Michał Kłobukowski almost 3 years ago

  • Status changed from Resolved to In Progress

#13 Updated by Michał Kłobukowski almost 3 years ago

  • Status changed from In Progress to Resolved
  • Story points set to 3.0

#14 Updated by Michał Kłobukowski almost 3 years ago

  • Blocks Feature #14587: [Vocabulary] Disable default use of vocabulary.json. added

#15 Updated by Michał Kłobukowski almost 3 years ago

From https://dev.arvados.org/issues/14554:

However the vocabulary.json is more dynamic and it needs to be possible to change it between Installations.
In our case the vocabulary.json is generated every couple of hours from an API and replaces the previous one
In a way the vocabulary.json is like an external API itself. One possible way could be to configure the URL of the vocabulary.json in the config.json which would allow us to use a rest API directly instead of a static json file

#16 Updated by Michał Kłobukowski almost 3 years ago

Currently vocabulary file is loaded once when the application starts. To load a new vocabulary user has to refresh the page. Should that behaviour stay for now, or should it be more dynamic, so that vocabulary endpoint would be called when typing into properties form. A drawback of more dynamic behaviour is that the vocabulary file can be quite large and loading it very often would cause some lags.

#17 Updated by Michal Komorowski almost 3 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF