Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roma UI omits attribute classes when elements are selected on-the-fly; yet, when an ODD is uploaded, the attribute classes are displayed correctly #104

Closed
rvdb opened this issue Jun 9, 2020 · 1 comment
Assignees
Labels
Milestone

Comments

@rvdb
Copy link

rvdb commented Jun 9, 2020

When an element is selected in Roma, not all of its attribute classes are being displayed in the "Attributes" screen for that element.

Following steps should illustrate the problem:

  1. create a new ODD, based on the "TEI absolutely bare" template
  2. select the <name> element --> "Attributes"

There, following attribute classes are missing: att.canonical, att.editLike, att.global.source, att.naming, att.personal. Yet, in the the generated tei_bare.odd, there's no trace why these classes should be missing.

Additionally, when this same tei_bare.odd file is uploaded in Roma, all of these attribute classes are shown, so this seems like an UI bug (at first, this issue seemed related to #101, but I'm not sure.

@raffazizzi raffazizzi self-assigned this Sep 18, 2020
@raffazizzi raffazizzi added the bug label Sep 18, 2020
@raffazizzi raffazizzi added this to the v0.3.0 milestone Sep 18, 2020
@raffazizzi
Copy link
Contributor

A note as I look at this issue over several sessions....

This is a very interesting situation. Let's focus on att.canonical, which is inherited via att.personal.

When the ODD is first loaded, no element is using att.personal therefore it's dropped from the ODD by the XSLT processor. When name is added, Roma sees that att.personal is excluded from the schema so it won't add it to name.

When the ODD is loaded back, name is now selected, which means that att.personal does not get dropped from the processor.

The solution, I think, is to check whether the class (e.g. att.personal) is explicitly excluded and if not, it should be restored before adding the element that uses it (e.g. name).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants