diff --git a/client/dive-common/components/DatasetInfo.vue b/client/dive-common/components/DatasetInfo.vue index 074b5b1..05d57dc 100644 --- a/client/dive-common/components/DatasetInfo.vue +++ b/client/dive-common/components/DatasetInfo.vue @@ -19,6 +19,7 @@ import { setDiveDatasetMetadataKey, } from 'platform/web-girder/api/divemetadata.service'; import { usePrompt } from 'dive-common/vue-utilities/prompt-service'; +import DatasetInfoAttributes from './DatasetInfoAttributes.vue'; export default defineComponent({ name: 'DatasetInfo', @@ -26,6 +27,7 @@ export default defineComponent({ StackedVirtualSidebarContainer, DIVEMetadataEditKey, MetadataKeyLabel, + DatasetInfoAttributes, }, props: { @@ -194,7 +196,7 @@ export default defineComponent({ @@ -385,4 +390,5 @@ export default defineComponent({ white-space: normal !important; word-break: break-word; } + diff --git a/client/dive-common/components/DatasetInfoAttributes.vue b/client/dive-common/components/DatasetInfoAttributes.vue new file mode 100644 index 0000000..89ee174 --- /dev/null +++ b/client/dive-common/components/DatasetInfoAttributes.vue @@ -0,0 +1,385 @@ + + + + + diff --git a/client/package.json b/client/package.json index 2afbccb..9fd1696 100644 --- a/client/package.json +++ b/client/package.json @@ -1,6 +1,6 @@ { "name": "dive-dsa", - "version": "1.11.24", + "version": "1.11.25", "author": { "name": "Kitware, Inc.", "email": "Bryon.Lewis@kitware.com" diff --git a/docs/UI-DatasetInfo.md b/docs/UI-DatasetInfo.md index 37359df..0033979 100644 --- a/docs/UI-DatasetInfo.md +++ b/docs/UI-DatasetInfo.md @@ -10,4 +10,25 @@ Utilizing the girder interface to add metadata or using the endpoint `PUT /folder/{girder_id}/metadata` with the key of `datasetInfo` will allow for meatadat to be added to the folder which will then be displayed in the user interface. +## Attributes Panel in Dataset Info + +When a track is selected and the dataset has attribute definitions, an **Attributes** panel appears in Dataset Info. + +- **Track Attributes** show values attached to the selected track. +- **Detection Attributes** show frame-specific values for the selected track at the current frame. +- Empty sections are hidden automatically. For example, if there are no detection attributes, the detection section and its settings menu are not shown. + +### Stickiness (Detection Attributes) + +Detection Attributes include a settings menu (`:material-cog:`) with a **Stickiness** toggle. + +- When disabled, only values set on the current frame are shown. +- When enabled, empty current-frame values can reuse the most recent non-empty value from earlier keyframes. +- Inherited values are indicated in the value tooltip text. + +### Value Display and Tooltips + +- Long values are truncated in-row for readability. +- Hovering a value shows the full text in a tooltip. +- Hovering attribute info (`:material-information:`) shows datatype and predefined values (for text attributes with value lists).