As an App Adm, I want to define the columns available in my table view, so that I can create custom table/listing screens showing only the information that I need.
The scope of this Story is to let users see what's available and choose which attributes/columns/fields of the object he wants available in the Table View that he is creating. This is the main interaction of the Table View Builder, once without this, there won't be any other possible way to user customize their table views.
It's important to keep in mind that:
- Users should be able to insert columns by "Drag and drop" and/or two clicks (quick add);
- The system must help the user understand which columns are available and where to drag them to add to the Table View;
- In this Story, we don't need to have the abilities to reorder, resize, apply filters or apply sort in the columns. Those features already have a specific story for that;
- The scope of the story includes the option to remove a column that was previously added in the table view;
- Duplicated columns in the table view should not be allowed;
- The list of columns should inform the Field Label and the Field type of each attribute;
- The feature should follow a WYSIWYG "What You See Is What You Get" approach.
- 1. Given a object with the attributes/fields defined, when the users accesses the table view builder of that object, then the system must display/list for the user all attributes of the object as available columns to be inserted in the table view;
- 2. Given that a user is creating a new Table View for his object, when the user drags and drop one of the available columns into the stage area, then the system should add the column in the current Table View;
- For this Story, we don't need to give the ability to choose where the column will be placed in the table, it can be automatic added after the last column to the right.
- 3. Given that a user is creating a new Table View for his object, when the user double clicks in one of the available columns, then the system should automatic add the column in the current Table View after the last column to the right;
- 4. Given that a user is creating a new Table View for his object, when the user defines the name of the current table view, then the system must rename the Table View for the defined by the user;
- 5. Given that a user is defining a new Table View and there's at least one column added to the table view, when the user selects the column and clicks on the "x" button (or hits backspace/delete in the keyboard) of the column selected, then the system must remove the column from the table view;
- 6. Given that a column was already added by the user in a table view, when the user accessed the table view builder of that table view, then the system must not allow the user to add that same column again;
- 7. Given a object with the attributes/fields defined, when the user checks the list of available columns of the object in the table view builder, then the user must be able to identify what type of field is each column/attribute;
- 8. Given that a user finished defining the table view of an object, when the user clicks on the Save button, then the system must save the table view as defined by the user and associate it with the object;
- 9. Given that a user is defining the table view of an object, when the user clicks on the Cancel button, then the system must cancel and undo any changes made by the user in the table view builder;
- If the user was creating a brand new new table view, that the cancel must also cancel the table view creation.
- All Acceptance Criteria were passed;
- Make sure that the expected automated tests were created (unit / integration / functional) and passed successfully;
- Verify if the test labels were added;
- Code with peer review completed;
- Validated by QA, Product Designer and/or PM;
- No critical bug related to Story scope (ex.: similar of FP4, FP5);
- Make sure that all system documentation were updated (if necessary).