•  
     
    story #42242 Artidoc read-only fields: string
Summary
Empty
Artidoc read-only fields: string
Empty

At this stage, the goal is to display string fields in the 4 columns layer.

  • Display in the Document

    • Implement the grid system

    • A new key is added in Section payload with configured fields (see below)

    • Design configuration in database (see below)

  • Display as PDF

  • Configuration

    • Introduce the configuration modal

      • Modal should display the generic configuration message

      • Modal only propose String fields

        • Except the field that corresponds to Title semantic

        • User have access to fields of tracker they can access

        • User have access to fields they can read

        • Fields are injected in the app at load (no REST route)

      • Mock-up needed: empty state when no fields can be configured.

    • Add the fields to the PUT /artidoc/:id/configuration payload

JSON example of the Section payload

{
// Artidoc section representation
fields: [
  {
    type: "string",
    label: "Papa Mike",
    // We do not use a "rank" key to know the order, because fields have individual permission levels. We trust the order of the Array of fields.
    display_type: "column", // display_type can be "column" or "block". By default it is "column", which means it will stack in 4 columns layer.
    value: "Alpha Bravo"
  },
] // end fields
}

Schema of the database table for the configuration

item_id // ID of the artidoc document
field_id // ID of the field in tracker_field
rank // relative order of the fields
display_type // "block" or "column"

Introduce specific behaviors:

  • When an Artidoc is duplicated, the configuration is duplicated.

  • When a field is deleted at tracker level, all Artidocs that render this fields are updated to remove the configured field.

  • When the tracker is changed, the configured fields are removed.

  • When a Section is updated, the corresponding fields are reloaded.

Empty
Empty
Status
Empty
Selected
Development
  • [ ] Does it involves User Interface? 
  • [ ] Are there any mockups?
  • [ ] Are permissions checked?
  • [ ] Does it need Javascript development?
  • [ ] Does it need a forge upgrade bucket?
  • [ ] Does it need to execute things in system events?
  • [ ] Does it impact project creation (templates)?
  • [ ] Is it exploratory?
Empty
Details
#42242
Manuel Vacelet (vaceletm)
2025-03-21 11:39
2025-03-20 14:52
31219

References
Referencing story #42242

Git commit

tuleap/tuleap/stable

feat: user must choose a tracker before fields 0d13812dd0
feat: backend sends string field information a318175488
feat: exclude title semantic from artidoc fields cc6a9c2908
feat: Display string field 3318c492a6
feat: clone field configuration for artidoc 14e9d10aea
feat: Unused fields should not be displayed 73a3f8c938
feat: cascade deletion of field to artidoc configuration 204094d5ea
feat: be able to click on the field selection tab a8e1677144
feat: string fields display in pdf af190aecff
refactor: use Psl Json functions in REST tests 3447f60a97
chore: Add missing strict types directive 72be681a0c
refactor: Replace row array by a domain object for fields 5c97d44c93
fix: tlp-tabs can also be buttons e237d571ca
fix: disable button tlp-dropdown-item using the disabled attribute a6b5d76fab
fix: artidoc cypress test fails b4b8a864f8
refactor: move tabs to tlp-styles 73c5a05bc0
feat: add texts and translations cd229e00d5
refactor: rename StoredConfiguredField -> ArtifactSectionField 425fe84669
chore: clean form element factory ccc7e38bc3
refactor: use enum for field permissions instead of string 37671ac37f
feat: display fields in configuration table 9741b2a564
test: DB test Semantic description DAO 27c98f9b6a
test: DB test Semantic title DAO 4223bcf9b9
chore: remove unused turndown types eee3280f87
feat: Configuration route validates fields c7955f87a3
feat: Fields can be configured via REST b229f2e47d
feat: display available fields 31177d677c
refactor: split configuration modal in several components f88712e421
fix: disabled tlp-tab should not be transparent 05978a0e1f
refactor: Use new DAO for retrieving title field 121eaa1d3f
refactor: Use new DAO for retrieving description field 79fa2bc0fa
feat: reorder fields withs buttons 53175a745c
test: Replace into for semantic DAOs 1173315bfe
feat: allows the selection and deletion of fields f080076f10
feat: disable fields tab when document has unsaved content 766df0f549
refactor: Use new DAO for saving title semantic d5a99c58be
refactor: Use new DAO for deleting title semantic 43d21454ff
feat: change the modal configuration workflow 288d6caa47
test: Duplicate semantics 4f0bb5c1db
feat: reorder fields using drag and drop 3c0816d459
fix: stop displaying selected fields in a tlp-table 1cbf1cdbaf
refactor: Use new DAO for check functions and replace old DAO e3ad9f6ec3
refactor: Use new DAO for saving description semantic b48513a25a
chore: rename Title DB test 4db0f4f6c5
refactor: Use new DAO for deleting description semantic 91b4cbfa20
refactor: Use new DAO for check functions and replace old DAO for description 7dcf76c0b6
chore: rename Description DB test 32a8171327

Follow-ups

User avatar
Joris MASSON (jmasson)2025-03-21 11:39
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
User avatar
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
User avatar
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes