Child pages
  • Attribute definition editor UI
Skip to end of metadata
Go to start of metadata

Create/edit attribute definition screen

Attribute Framework UIs

    /grouper/grouperUi/appHtml/grouper.html?operation=SimpleAttributeUpdate.createEdit



  • title of screen with help information infodot
  • combobox to search for attributes to edit


  • combobox has icon for application (box)
  • should only show attributes which are editable by the user
  • can search by uuid
  • can search by name (separates by spaces, case-insensitive, searches by all substrings)
  • edit attribute definition button will populate screen with the existing details of the attribute definition


  • if no attribute definition if chosen, but the edit button is pressed, it will give a friendly error
  • new attribute definition button will show blank fields for attribute definition details


  • "new" attributes should not show the delete or edit actions buttons
  • folder of attribute definition is readonly for edit with folder icons, or combobox for new


  • folder combobox has folder icon inside
  • folder combobox shows results where user has CREATE in the folder
  • folder combobox shows results of the uuid of the folder, or the name substring split by whitespace
  • folder is designated with a required asterisk on create
  • folder has a friendly error message if not entered on create
  • uuid in readonly mode for edits, not there for new
  • extension (id) should be readonly for edit, or writable for create
  • extension (id) is designated with a required asterisk on create
  • extension (id) has a friendly error message if not entered on create
  • attribute type has drop down for new, readonly for edit
  • attribute type has all options of AttributeDefType enum: attribute, type, limit, domain, permission
  • attribute type is designated with a required asterisk on create
  • attribute type has a friendly error message if not entered on create.   Note, there is a blank option
  • attribute type should populate the correct value on edit
  • description is editable for new or edit
  • description should populate correctly for existing records
  • description is a textarea and is not required
  • multiAssignable is editable for new or edit
  • multiAssignable should populate correctly for existing records
  • multiAssignable is a checkbox, defaults to unchecked, and is not required
  • value type is editable for new or edit
  • value type should populate correctly for existing records
  • value type is a drop down, defaults to none, and is not required
  • value type has all options of AttributeDefValueType enum: floating, integer, marker, memberId, string, timestamp
  • value type has no blank option
  • multiValued is editable for new or edit
  • multiValued should populate correctly for existing records
  • multiValued is a checkbox, defaults to unchecked, and is not required
  • multiValued cannot be checked if the value type is marker, a friendly error will appear
  • assignTo is a grid of checkboxes for what the attribute can be assigned to
  • assignTo has a required indicator
  • assignTo will show a friendly error if none selected
  • assignTo will populate correctly for existing records
  • assignTo defaults to none for new records
  • assignTo text should not wrap lines for legibility
  • if a permission, then is not assignable to the correct object types, give a friendly error
  • if a permission, then cannot be multi-assignable, give a friendly error
  • if a permission, then if not no-value, give a friendly error
  • all labels have tooltips
  • the delete button is on the left and should delete the attribute definition
  • the delete button should ask for confirmation before deleting the attribute definition
  • the cancel button should refresh the screen in a blank and reset state
  • the save button should save the data, popup a success alert, and redraw the saved information
  • security is checked again on the save button

Action panel



  • add an edit actions button
  • edit actions button should only appear for permissions
  • this button opens a panel below the attribute definition
  • add an infodot on actions header
  • change actions textfield can take space, comma, or semi separated actions
  • button to add actions will add any actions in the textfield
  • button to add actions should not allow blank input
  • button to add actions should add any actions, allowing duplicates (will be skipped)
  • button to add actions will give a friendly success message
  • button to add actions will redraw the action panel
  • button to add actions will remove
  • button to add will remove the edit action panel if applicable
  • button to replace actions will do the same thing as add (side effects, etc), but will replace the action list with the inputted action(s)

Edit action panel



  • cant edit action if there is only one action (no other actions to change the hierarchies about)
  • when editing an action, show the action name of the action being edited
  • when editing an action, give drop down of available actions which can imply
  • when adding an action that implies, do not allow blank
  • button for "add action that implies this action" should have action name embedded so it is easy to read
  • when clicking "add action that implies this action", add that relationship
  • when clicking "add action that implies this action", give a friendly success message
  • when editing an action, give drop down of available actions which can be implied by
  • when adding an action that implies, do not allow blank
  • button for "add action that is implied by this action" should have action name embedded so it is easy to read
  • when clicking "add action that is implied by this action", add that relationship
  • when clicking "add action that is implies by this action", give a friendly success message
  • when editing an action, show the immediate and effective implies
  • when editing an action, show the immediate implies
  • when editing an action, show an X next to each immediate imply
  • when editing an action, X next to each immediate imply should have a confirm
  • when editing an action, X next to immediate imply should break the relationship
  • when editing an action, X next to immediate imply should give friendly success message
  • add action name again on screen between impies and implied by to break up the two sides of the hierarchy
  • when editing an action, show the immediate and effective implied by
  • when editing an action, show the immediate implied by
  • when editing an action, show an X next to each immediate implied by
  • when editing an action, X next to each immediate implied by should have a confirm
  • when editing an action, X next to immediate implied by should break the relationship
  • when editing an action, X next to immediate implied by should give friendly success message

Privilege panel



  • attribute privilege edit button opens up a privilege panel
  • privilege panel shows all 6 privileges, and each subject which has an assignment
  • subjects shown can be immediate or effective
  • header of privilege list repeats every X rows, configurable by simpleAttributeUpdate.repeatPrivilegeHeaderAfterRows from media.properties
  • show checkboxes with ones checked when immediately assigned
  • show images of green allow or red deny where green means immediately or effectively assigned
  • show different tooltip on image for immediate, effective, or immediate_and_effective
  • have a combo to add subjects to top of list
  • combo should search subjects and display the top results (like add member in membership lite screen)
  • keep hidden fields of who is in additional list list
  • keep hidden field for each privilege entry to keep the old state so we know what the user changed (not step on other's toes)
  • if there are no privilege changes detected, show friendly message
  • alternate row colors so the rows are easy to differentiate
  • on the confirm message on privilege assign, if the privilege is already there (race condition?), then show warning
  • on the confirm message, so a different message for revoke or assign
  • on the confirm message show the gui label, and the friendly label for privilege
  • filter membership type checkbox should show effective members (defaults to off)
  • add assign to all in attributeDef edit panel
  • show effective privileges due to action inheritance (e.g. admin implies read)
  • show effective privileges due to global assignment
  • page the privileges
  • allow configurable page size
  • test each page number displayed at the bottom
  • if a page is selected, then do not show the additional selected subjects
  • show a message that the paging is not precise if additional entities are listed
  • if you submit the privilege panel, you could change the everyentity privileges, so refresh the edit panel as well
  • make the image clickable on the privilege panel
  • the image on the privilege panel should confirm the selection
  • the image confirm should be different for allow and deny
  • scroll to anchor not to bottom or whatever
  • if a paging button is pressed, it should maintain the indirect privileges checkbox
  • changing the indirect privilege checkbox should reset paging to the first page
  • each page submit should do a total page size, since the numbers can change
  • clicking on the "privileges" button in the attribute def edit panel should clear paging

TODO

  • When going to the attribute action panel, try to scroll the browser down when it appears
  • Unit test the UI logic methods
  • Show who created / last edited the attribute definition
  • Show auditing on the attribute definition
  • Escape description for HTML, and actions
  • Make sure there is page level documentation on new/edit screen
  • Add a delete button for attribute definition
  • Add auditing on create/edit/delete
  • If a stem is entered which doesnt exist, should we create if not exist?  :)
  • Search comboboxes on name or display name