•  
     
    story #9468 import folders
Summary
Empty
import folders
Empty
  • New plugin Folder
  • plugin provides "_in_folder" artifact link type
    • Usable for XML import
  • plugin provides "Folder" tab in artifact (shown when there at least on "_in_folder" link type)
  • The tab shows a roll-up view of "_in_folder" (see below)
  • At this step, it's not possible to manipulate Folder from the UI
  • Project can now have a tracker of type "Folder". In project only a tracker can have this type. The tracker can be flagged as a folder type only by XML import, no UI flag will be displayed
  • An artifact can't be in more than one folder. At xml import, if we found more than 1 _in_folder link, the first artifact is added with correct nature, next artifacts will have an empty nature and an error is displayed

View:

Given

(`-- stands for _is_child)

Story A
`-- Task T1
    |-- Task T1.1
    `-- Task T1.2
Story B
`-- Task T2
---------------------
Folder F1
|-- Subf F1.1
`-- Subf F1.2

And

Story A   -_in_folder-> Folder F1
Task T1   -_in_folder-> Folder F1
Task T1.1 -_in_folder-> Subf F1.1
Task T1.2 -_in_folder-> Folder F1
Story B   -_in_folder-> Folder F1
Task T2   -_in_folder-> Subf F1.2

Then resulting view:

Id                 | Title | Status | ... | Parent
--------------------------------------------------
Story A            |       |        |     | Folder F1
Story B            |       |        |     | Folder F1

And if I expand everything:

Id                 | Title | Status | ... | Parent
--------------------------------------------------
Story A            |       |        |     | Folder F1
`-- Task T1        |       |        |     | Folder F1
    |-- Task T1.1  |       |        |     | Folder F1 / Subf F1.1
    `-- Task T1.2  |       |        |     | Folder F1
Story B            |       |        |     | Folder F1
`-- Task T2        |       |        |     | Folder F1 / Subf F1.2

Fields to display:

  • Same as Artifact links v2 (Id, project, tracker...)
  • + "Folder"

Ways of working

  • The inital load of "Folder" tab loads all "in_folder" links directly connected to the artifact
    • In the example above (Story A, Task T1, Story B and Task T2)
    • Artifacts are show relative to their parents (T1 is shown as a child of Story A)
    • Display is collapsed by default
    • Initial load only deal with first level "in_folder" (we don't inspect Folders's children)
  • Elements with the same parent are displayed according to their ranks
  • Data contraints
    • There is none, people can des-organize folders the way they want.

 

Empty
Nicolas Terray (nterray)
Status
Empty
Done
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
#9468
Manuel Vacelet (vaceletm)
2016-10-10 17:15
2016-09-09 17:27
4593

References
Referencing story #9468

Git commit

tuleap/tuleap/stable

New "Folders" plugin faada082b2
Provide "_in_folder" link type (immutable) 340b568348
Hide "_in_folder" type in ArtifactLinkField e397a96c52
Display folder tab 78f24e51a6
Folder is translated as "Dossier" in French 904271d417
Display empty content in the tab 6fb4a40e54
Do not display the tab if project is not allowed to 59fb9754b3
Fix name of the tab in artifact view 305180a0dd
Display empty table in Folder tab 734e4e7801
Display artifacts that are in the folder f8774e7a22
Do not display the tab if there is no Artifact in the folder 6702d041cd
Introduce rollup view in Folder tab 0171583cc0
Display hierarchy of folders in column 8d2db9a3ef
XML import - handle new attribute 'is_folder' for tracker 473bc4f9dd
Submitter of the artifact is clickable fcdd8a6d20
Don't display artifact link when nature is '_is_folder' 6f44b86574
Notices displayed with <natures> a6451b2422
Assignee is clickable 0473e13fc7
Change propoerty is_folder by in_folder a8fa7a5a0c
Refactoring: use tailored route to retrieve children 17cab8d62c
A fatal error is thrown when tracker has no semantic title d45964fba6
Refactoring: folder hierarchy should be per artifact 467c9309ad
Display folder the children belongs to 17f5e4f3e2
Fix DOM based XSS in rollup.js 4ed8b50d3c
Take _in_folder in account during import e9acebcc08
Rename NatureIsFolder 31965712ae
Refactoring: do not talk about is_folder in tracker ae92efe8bb
Package artifactsfolders plugin 89437e531a
Display current folder of an artifact 1f35c099c0

Follow-ups

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
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
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
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