ClassificationsModule
Patric Schumann (Unlicensed)
Chi Nguyen (Unlicensed)
Holger Hagen (Unlicensed)
Mustapha Zorgati
Dependencies
ClassificationService
ClassificationCategoriesService
ClassificationDefinitionService
BackendService
DomainGuard
ImportExportService
FormsValidatorService
NotificationService
ClassificationOverviewComponent
ClassificationListComponent
ClassificationDetailsComponent
ClassificationTypesSelectorComponent
TaskanaImportExportComponent
TaskanaTreeComponent
TaskanaSpinnerComponent
TaskanaFieldErrorDisplayCOmponent
ClassificationResource
Classification
ClassificationDefinition
ClassificationState
Interface structure
Navigation | GLOBAL HEADER | DomainSelection | ||
Add|Import|Export | TaskTitle | Save|Delete|Revert | ||
TypeFilter | CategoryFilter | NameFilter |
DetailView | |
List view tree
|
Ui description
Browse classifications
Given: A user wants get informed about the existing classifications
When: The user opens the classification administrative page
Then: the classification tree structure is displayed and the user can open and collapse classification subtrees. The tree is filtered by default by type but not by category or name.
Show classification details
Given: A user wants to see all details of a specific classification
When: The selects the specific classification in the tree view
Then: the details of the classification are fetched from the backend, are shown and the classification is selected in the tree view
Given: A user wants to see all details of a specific classification while unsaved changed to a different classification exist.
When: The user selects a new classification in the tree view.
Then: A popup should occur asking the user if the unsaved changes should be persistet. If no, discard changes. If yes, save changes.
Change classification parent
Given: A user wants to reorder the classification hierarchy
When: She drags and drops list-items
Then: The list item will be updated on the server and the list-view will be updated. The classification list will not be fetched again.
Edit classification details
Given: A user wants to edit a classification which details he is currently viewing.
When: She changes the details (all but Key and Domain) and saves the changes. Specific fields are not editable: domain, key.
Then: The specified classification will be persisted in the backend. If all validation criteria apply (from the backend) the classification-tree will be updated and the user will receive a “save-succesfully” notification.
Add classification
Given: A user wants to add a single classification
When: She clicks on the add-button
Then: A template opens in the detail-view with all relevant fields to create a new classification. The classification will be persistet upon saving. If a different classification has unsaved changes a popup appears asking if the user wants to persist those changes.
Revert changes to a classification
Given: A user wants to revert changes made while editing or creating a classification. The given classification is open in the detail view.
When: She clicks the revert button
Then: The application resets all changes and additions made to the form
Delete classification
Given: A user wants to delete a selected classification which is open in the detail view.
When: She clicks the delete button
Then: A confirmation dialogue opens and asks for permission to delete the current classification. On confirmation the classification will be deleted in the backend and the list view is updated. On rejecting the dialogue closes without further actions.
Filter classifications
Given: A user wants to filter the classification list by type
When: She uses the category-type-selection
Then: All available categories should appear on the dropdown and on selection of a category-type the list view should be updated accordingly. The detail-view will NOT be reset and all changes will stay in the detail-view – even if the classification is not selectable on the list-view anymore. The other filter parameters will not change and will be applied aswell. This is a client side filter. No new request is sent to the backend.
Given: A user wants to filter the classification list by category
When: She uses the category-selection
Then: All available categories should appear on the dropdown and on selection of a category the list view should be updated accordingly. The detail-view will NOT be reset and all changes will stay in the detail-view – even if the classification is not selectable on the list-view anymore. The other filter parameters will not change and will be applied aswell. This is a client side filter. No new request is sent to the backend.
Given: A user wants to filter the classification list by name
When: She uses the text-filter
Then: The list-view should update on every key-event and only display items matching the filter. The detail-view will NOT be reset and all changes will stay in the detail-view – even if the classification is not selectable on the list-view anymore. The other filter parameters will not change and will be applied aswell. This is a client side filter. No new request is sent to the backend.