Skip to content

Ftr/dynamic annotation classification - #6

Merged
bwbohl merged 68 commits into
bazga/candidatefrom
ftr/dynamic-annotation-classification
Jun 24, 2026
Merged

bwbohl merged 68 commits into
bazga/candidatefrom
ftr/dynamic-annotation-classification

Conversation

@bwbohl

@bwbohl bwbohl commented Jun 24, 2026

Copy link
Copy Markdown
Member

Description, Context and related Issue

Refs https://github.com/Edirom/Edirom-Online-Frontend/issues/{ISSUE_NUMBER}

How Has This Been Tested?

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation Update
  • Improvement
  • Refactoring

Overview

  • I have updated the inline documentation accordingly.
  • I have performed a self-review of my code, according to the style guide
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes at testing
  • All new and existing tests passed.

fmacca and others added 30 commits June 8, 2026 16:34
Update postprocessing of getHelp call
* added component edirom-dom for textview

* Update CITATION.cff commit and date-released [skip ci]

* changed request for TEI text to v2 API

* Update CITATION.cff commit and date-released [skip ci]

* Update CITATION.cff commit and date-released [skip ci]

* changing to new API v2 request

* removed leading slash

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 1.0.2 to 2.0.0.
- [Release notes](https://github.com/actions/add-to-project/releases)
- [Commits](actions/add-to-project@v1.0.2...v2.0.0)

---
updated-dependencies:
- dependency-name: actions/add-to-project
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Remove the iconify.design script tag that is no longer used in
the VerovioImage component.
closes Edirom#205
**Before:** every URL passed to the AJAX controller had `backendURL` prepended unconditionally.

**After:** `backendURL` is only prepended if the URL is relative (i.e., doesn't already start with `http://` or `https://`).

Co-authored-by: Daniel Jettka <research@jettka.de>
in order to achieve the following:
* use existing lang key that does not match the calculated key form
* set to hidden by default
to achieve the following:
* use existing lang key that does not match the calculated key
* increase flex size
* increase width to show full three-digit numbers
* text-align right
The parameters lang and edition are set in window.doAJAXRequest by default
bwbohl added 27 commits June 23, 2026 11:26
Add taxonomyClasses field to the annotations data store
configuration in TextFacsimileSplitView to support taxonomy
classification data in annotation responses.
Add taxonomyClasses field to the annotations data store in
MeasureBasedView to support taxonomy classification data in
annotation responses.
Add taxonomyClasses field to the annotations data store to
support taxonomy classification in source view annotations.
This enables proper handling and display of taxonomy data
returned from the API response.
Update annotation property retrieval to check for
taxonomyClasses first, falling back to categories for
backward compatibility with existing annotation data
formats.
Update image viewer to prioritize taxonomyClasses field when
retrieving annotation categories, falling back to the legacy
categories field for backward compatibility with existing
annotations.
Pass allTaxonomyIds parameter through annotation filter
chain to enable proper taxonomy validation. Update filter
logic to skip taxonomies with no matching classes instead
of failing the filter. Refactor to work with annotation
child div IDs rather than annotation objects directly.
Fix typo in comment and improve code formatting.
Add logic to populate taxonomies array from categories and
priorities when taxonomies is empty. This ensures consistent
data structure for annotation information regardless of the
source data format.
Add null check before accessing the dom property of
shapeEl to prevent errors when the element does not
exist. This prevents potential null reference exceptions
when removing shape elements from the DOM.
Add legacy categories and priority columns to the default columns. These
columns are marked as legacy to indicate they are deprecated fields that
are maintained for backward compatibility with existing annotations.
Align implementations of addAnnotations methods in
OpenSeadragonViewer and ImageViewer:
- Add comprehensive debug logging
- Consistently rename variables for clarity: outerDiv becomes
  annoIconContainer, innerId becomes annoIconId, and add annoId
  variable.
- Include participant type in annotation icon CSS classes
- Add explanatory comments for code sections and improve code
  organization with better spacing.
- Align logic and code order
…tion

Signed-off-by: Benjamin W. Bohl <b.w.bohl@gmail.com>
@bwbohl
bwbohl merged commit ba89a5a into bazga/candidate Jun 24, 2026
1 check passed
bwbohl added a commit that referenced this pull request Jun 26, 2026
* update getHelp

* Incorporating edirom-dom web component (for TEI rendering) (Edirom#148)

* added component edirom-dom for textview

* Update CITATION.cff commit and date-released [skip ci]

* changed request for TEI text to v2 API

* Update CITATION.cff commit and date-released [skip ci]

* Update CITATION.cff commit and date-released [skip ci]

* changing to new API v2 request

* removed leading slash

---------



* Bump actions/add-to-project from 1.0.2 to 2.0.0 (Edirom#198)

Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 1.0.2 to 2.0.0.
- [Release notes](https://github.com/actions/add-to-project/releases)
- [Commits](actions/add-to-project@v1.0.2...v2.0.0)

---
updated-dependencies:
- dependency-name: actions/add-to-project
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...




* Bump actions/checkout from 6 to 7 (Edirom#218)

Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...




* refactor: remove unused iconify script tag (Edirom#206)

Remove the iconify.design script tag that is no longer used in
the VerovioImage component.
closes Edirom#205

* avoid prepending `backendURL` to URLs (Edirom#199)

**Before:** every URL passed to the AJAX controller had `backendURL` prepended unconditionally.

**After:** `backendURL` is only prepended if the URL is relative (i.e., doesn't already start with `http://` or `https://`).



* AnnotationView: mark TODO

* AnnotationView: use calculated store fields instead of model

* AnnotationView: add method for calculating columns

* AnnotationView: remove predefined me.list

* AnnotationView: add method for creating list and store

* AnnotationView: add method for loading Annotations and creating components

* AnnotationView: create method for initializing independent components

* AnnotationView: add event and property annotationsLoaded

* AnnotationView: call loadAnnotationsAndCreateComponents afterrender

* AnnotationView: remove forgotten event listener

* AnnotationsView: load list store only if defined

* AnnotationView: showList add check if me.list available

* Delete Annotation.js

* AnnotationView: rework column definitions to hide empty columns

* AnnotationView: getLangString for column headers

* AnnotationView: add default column definition for `id`

in order to achieve the following:
* use existing lang key that does not match the calculated key form
* set to hidden by default

* AnnotationView:  readd default column definition for title

to achieve the following:
* use existing lang key that does not match the calculated key
* increase flex size

* AnnotationView: improve styling of pos column

* increase width to show full three-digit numbers
* text-align right

* AnnotationView controller: remove unneeded AJAXRequest parameters

The parameters lang and edition are set in window.doAJAXRequest by default

* AnnotationView: improve MVC separation of view and controller

* AnnotationView: do not set column visible if already hidden in default column definition

* AnnotationView controller: add debug log

* AnnotationView: handle undefined emptyFields

* AnnotationView:  handle annotation entries/fields with dots in their name

* annotation.scss: apply text-align tight to .annotationList .pos descendants

* AnnotationView styling: move todo.css rules to annotation.scss

* AnnotationView: remove duplicate cls property

* Source- and Text-Views: Load taxonomies array instead of categories and priorities

* View – SourceView: use dynamic taxonomies in setAnnotationFilter function

* View – SourceView: use dynamic taxonomies in annotationFilterChanged function

* MeasureBasedView annotationFilterChanged: pass taxonomies array to individual viewers

* MeasureBasedView – horizontal viewer: process taxonomies array for annotation filter

* MeasureBasedView: add inline documentation

* SourceView: add some inline documentation

* AnnotationView: do not prepend 'view.window.AnnotationView_' for fieldName localisation

* View PageBasedView – annotationFilter: process taxonomies array

* View PageBasedView: cleanup & formatting

* View PageBasedView: align with View MeasureBasedView

* View PageBasedView: add some inline documentation

* View SourceView: add local-file fallback for taxonomy.label

* View SourceView: add some inline documentation

* View SourceView: remove trailing whitespaces

* View TextFacsimileSplitView – setAnnotationFilter: process taxonomies array

* View TextFacsimileSplitView: fix trailing whitespaces and indentation

* View TextView – setAnnotationFilter: process taxonomies array

* View TextView: remove trailing whitespace

* AnnotationView: ignore legacyFields

* Application.js: remove call to undefined model.Annotation.updateProxy

* MeasureBasedView: fix some indentation and trailing whitespace

* TextFacsimileSplitView: add taxonomyClasses field to annotations store

Add taxonomyClasses field to the annotations data store
configuration in TextFacsimileSplitView to support taxonomy
classification data in annotation responses.

* MeasureBasedView: add taxonomyClasses field to annotations store

Add taxonomyClasses field to the annotations data store in
MeasureBasedView to support taxonomy classification data in
annotation responses.

* SourceView: add taxonomyClasses field to annotations store

Add taxonomyClasses field to the annotations data store to
support taxonomy classification in source view annotations.
This enables proper handling and display of taxonomy data
returned from the API response.

* OpenSeaDragonViewer: support taxonomyClasses in annotation data

Update annotation property retrieval to check for
taxonomyClasses first, falling back to categories for
backward compatibility with existing annotation data
formats.

* ImageViewer: support taxonomyClasses in image annotations

Update image viewer to prioritize taxonomyClasses field when
retrieving annotation categories, falling back to the legacy
categories field for backward compatibility with existing
annotations.

* feat: pass allTaxonomyIds to annotation filter

Pass allTaxonomyIds parameter through annotation filter
chain to enable proper taxonomy validation. Update filter
logic to skip taxonomies with no matching classes instead
of failing the filter. Refactor to work with annotation
child div IDs rather than annotation objects directly.
Fix typo in comment and improve code formatting.

* SourceView controller: merge categories and priorities into taxonomies

Add logic to populate taxonomies array from categories and
priorities when taxonomies is empty. This ensures consistent
data structure for annotation information regardless of the
source data format.

* ImageViewer fix: add null check before removing shape element

Add null check before accessing the dom property of
shapeEl to prevent errors when the element does not
exist. This prevents potential null reference exceptions
when removing shape elements from the DOM.

* feat: add legacy priority and category columns

Add legacy categories and priority columns to the default columns. These
columns are marked as legacy to indicate they are deprecated fields that
are maintained for backward compatibility with existing annotations.

* cleanup: remove unused variable declaration

* refactor: addAnnotations in OpenSeaDragonViewer and ImageViewer

Align implementations of addAnnotations methods in
OpenSeadragonViewer and ImageViewer:
- Add comprehensive debug logging
- Consistently rename variables for clarity: outerDiv becomes
  annoIconContainer, innerId becomes annoIconId, and add annoId
  variable.
- Include participant type in annotation icon CSS classes
- Add explanatory comments for code sections and improve code
  organization with better spacing.
- Align logic and code order

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Benjamin W. Bohl <b.w.bohl@gmail.com>
Co-authored-by: Francesco Maccarini <48057744+fmacca@users.noreply.github.com>
Co-authored-by: Daniel Jettka <research@jettka.de>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
bwbohl added a commit that referenced this pull request Jul 6, 2026
* update getHelp

* Incorporating edirom-dom web component (for TEI rendering) (Edirom#148)

* added component edirom-dom for textview

* Update CITATION.cff commit and date-released [skip ci]

* changed request for TEI text to v2 API

* Update CITATION.cff commit and date-released [skip ci]

* Update CITATION.cff commit and date-released [skip ci]

* changing to new API v2 request

* removed leading slash

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* Bump actions/add-to-project from 1.0.2 to 2.0.0 (Edirom#198)

Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 1.0.2 to 2.0.0.
- [Release notes](https://github.com/actions/add-to-project/releases)
- [Commits](actions/add-to-project@v1.0.2...v2.0.0)

---
updated-dependencies:
- dependency-name: actions/add-to-project
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump actions/checkout from 6 to 7 (Edirom#218)

Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* refactor: remove unused iconify script tag (Edirom#206)

Remove the iconify.design script tag that is no longer used in
the VerovioImage component.
closes Edirom#205

* avoid prepending `backendURL` to URLs (Edirom#199)

**Before:** every URL passed to the AJAX controller had `backendURL` prepended unconditionally.

**After:** `backendURL` is only prepended if the URL is relative (i.e., doesn't already start with `http://` or `https://`).

Co-authored-by: Daniel Jettka <research@jettka.de>

* AnnotationView: mark TODO

* AnnotationView: use calculated store fields instead of model

* AnnotationView: add method for calculating columns

* AnnotationView: remove predefined me.list

* AnnotationView: add method for creating list and store

* AnnotationView: add method for loading Annotations and creating components

* AnnotationView: create method for initializing independent components

* AnnotationView: add event and property annotationsLoaded

* AnnotationView: call loadAnnotationsAndCreateComponents afterrender

* AnnotationView: remove forgotten event listener

* AnnotationsView: load list store only if defined

* AnnotationView: showList add check if me.list available

* Delete Annotation.js

* AnnotationView: rework column definitions to hide empty columns

* AnnotationView: getLangString for column headers

* AnnotationView: add default column definition for `id`

in order to achieve the following:
* use existing lang key that does not match the calculated key form
* set to hidden by default

* AnnotationView:  readd default column definition for title

to achieve the following:
* use existing lang key that does not match the calculated key
* increase flex size

* AnnotationView: improve styling of pos column

* increase width to show full three-digit numbers
* text-align right

* AnnotationView controller: remove unneeded AJAXRequest parameters

The parameters lang and edition are set in window.doAJAXRequest by default

* AnnotationView: improve MVC separation of view and controller

* AnnotationView: do not set column visible if already hidden in default column definition

* AnnotationView controller: add debug log

* AnnotationView: handle undefined emptyFields

* AnnotationView:  handle annotation entries/fields with dots in their name

* annotation.scss: apply text-align tight to .annotationList .pos descendants

* AnnotationView styling: move todo.css rules to annotation.scss

* AnnotationView: remove duplicate cls property

* Source- and Text-Views: Load taxonomies array instead of categories and priorities

* View – SourceView: use dynamic taxonomies in setAnnotationFilter function

* View – SourceView: use dynamic taxonomies in annotationFilterChanged function

* MeasureBasedView annotationFilterChanged: pass taxonomies array to individual viewers

* MeasureBasedView – horizontal viewer: process taxonomies array for annotation filter

* MeasureBasedView: add inline documentation

* SourceView: add some inline documentation

* AnnotationView: do not prepend 'view.window.AnnotationView_' for fieldName localisation

* View PageBasedView – annotationFilter: process taxonomies array

* View PageBasedView: cleanup & formatting

* View PageBasedView: align with View MeasureBasedView

* View PageBasedView: add some inline documentation

* View SourceView: add local-file fallback for taxonomy.label

* View SourceView: add some inline documentation

* View SourceView: remove trailing whitespaces

* View TextFacsimileSplitView – setAnnotationFilter: process taxonomies array

* View TextFacsimileSplitView: fix trailing whitespaces and indentation

* View TextView – setAnnotationFilter: process taxonomies array

* View TextView: remove trailing whitespace

* AnnotationView: ignore legacyFields

* Application.js: remove call to undefined model.Annotation.updateProxy

* MeasureBasedView: fix some indentation and trailing whitespace

* TextFacsimileSplitView: add taxonomyClasses field to annotations store

Add taxonomyClasses field to the annotations data store
configuration in TextFacsimileSplitView to support taxonomy
classification data in annotation responses.

* MeasureBasedView: add taxonomyClasses field to annotations store

Add taxonomyClasses field to the annotations data store in
MeasureBasedView to support taxonomy classification data in
annotation responses.

* SourceView: add taxonomyClasses field to annotations store

Add taxonomyClasses field to the annotations data store to
support taxonomy classification in source view annotations.
This enables proper handling and display of taxonomy data
returned from the API response.

* OpenSeaDragonViewer: support taxonomyClasses in annotation data

Update annotation property retrieval to check for
taxonomyClasses first, falling back to categories for
backward compatibility with existing annotation data
formats.

* ImageViewer: support taxonomyClasses in image annotations

Update image viewer to prioritize taxonomyClasses field when
retrieving annotation categories, falling back to the legacy
categories field for backward compatibility with existing
annotations.

* feat: pass allTaxonomyIds to annotation filter

Pass allTaxonomyIds parameter through annotation filter
chain to enable proper taxonomy validation. Update filter
logic to skip taxonomies with no matching classes instead
of failing the filter. Refactor to work with annotation
child div IDs rather than annotation objects directly.
Fix typo in comment and improve code formatting.

* SourceView controller: merge categories and priorities into taxonomies

Add logic to populate taxonomies array from categories and
priorities when taxonomies is empty. This ensures consistent
data structure for annotation information regardless of the
source data format.

* ImageViewer fix: add null check before removing shape element

Add null check before accessing the dom property of
shapeEl to prevent errors when the element does not
exist. This prevents potential null reference exceptions
when removing shape elements from the DOM.

* feat: add legacy priority and category columns

Add legacy categories and priority columns to the default columns. These
columns are marked as legacy to indicate they are deprecated fields that
are maintained for backward compatibility with existing annotations.

* cleanup: remove unused variable declaration

* refactor: addAnnotations in OpenSeaDragonViewer and ImageViewer

Align implementations of addAnnotations methods in
OpenSeadragonViewer and ImageViewer:
- Add comprehensive debug logging
- Consistently rename variables for clarity: outerDiv becomes
  annoIconContainer, innerId becomes annoIconId, and add annoId
  variable.
- Include participant type in annotation icon CSS classes
- Add explanatory comments for code sections and improve code
  organization with better spacing.
- Align logic and code order

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Benjamin W. Bohl <b.w.bohl@gmail.com>
Co-authored-by: Francesco Maccarini <48057744+fmacca@users.noreply.github.com>
Co-authored-by: Daniel Jettka <research@jettka.de>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants