Projects:Multiple Selection in Tickets/Functional Specifications
Contents |
Multiple Selection in Tickets - Functional Specifications
Overview
There could be several situations where one action or process is required to be executed on several ticket lines at once, either by a process where several lines are implied or just because the same action/change is required to be done in several lines and the user wants to avoid repeating N times.
Purpose
1. The development should fit the current WebPOS without a massive change in the way it is visualized and operated.
2. The solution should be suitable to be operated with both mouse and touch-screen.
3. It should not overload more the ticket lines, since there is already limited space.
3. The user should be able to execute any action common to all selected lines in a single step.
4. If there are some particular actions only available for some of the selected records, the action execution should be possible, but, of course, only for the records where it applies.
5. Each action/process should take care of its behavior when acting on several lines.
6. The should be a way to select/unselect all lines at once.
Design Considerations
Add a toggle button in the ticket header that toggle the behavior of clicking lines from single-selection to multiple-selection.
Functional Requirements
Toggle button’s functional specification
- The selection mode toggle button (hereafter ‘pin button’) is only shown in ‘EDIT’ mode.
- When the user lands in ‘EDIT’ mode, the pin button is always switched off, regardless of its previous situation.
- With the pin button switched off, the behavior is the current one. Single clicks/taps select the target line (unselecting the previous selected one).
- Once the user switches on the pin button, a “Select All” button is shown next to it.
- With the pin button switched on, the behavior is the following:
- Single clicks/taps on a non-selected line, selects it (the previous one(s) remain(s) selected).
- Single clicks/taps on a selected line, unselects it (the previous one(s) remain(s) selected). If there is only one line selected in the whole ticket, it cannot be unselected.
- Once the user switches off the pin button, the multiple selection mode is off BUT the selected lines remains there. A new click in any line would remove all the selected lines and select just the new clicked one (even if this line was already selected).
- “Select All” button selects all lines. There is no “Select None” button because due to the WebPOS architecture, there is always at least one selected line. In case the user wants to remove as much selected lines as possible, the quickest way is just switching off the pin button and click any line (to select just this one).
Keyboard special case: Ctrl + click
- The equivalent (and intuitive) action for multiple lines selection using the keyboard is keep pressed Ctrl key while clicking the desired lines.
- If the user press Ctrl key and clicks (while pressing it) a non-selected line, this line should be automatically added to the selection (even if the user is in another tab different than ‘EDIT’), the right panel automatically goes to ‘EDIT’ tab (if it was not there before).
- Note that the pin button visualization (status) has not been affected at any time due to the Ctrl key press, so it should not be affected neither when the user does Ctrl key-up.
Keyboard special case: Shift + click
- The equivalent (and intuitive) action for multiple lines range selection using the keyboard is keep pressed Shift key while clicking the desired lines that limit the range.
- If the user press Shift key and clicks in a line, and all the other selected lines are above it, the selection should go from the first selected line to the clicked one.
- If the user press Shift key and clicks in a line, and all the other selected lines are below it, the selection should go from the last selected line to the clicked one.
- If the user press Shift key and clicks in a line, and there is selected lines above and below it, the selection should go from the first selected line to the clicked one and the selection of the lines below the range, should be removed.
- Note that the pin button visualization (status) has not been affected at any time due to the Shift key press, so it should not be affected neither when the user does Shift key-up.
‘EDIT’ panel behavior on multiple selection cases
- Each button (‘Delete’, ‘Return Line’, ‘QUANTITY’, ‘PRICE’, ‘DISCOUNT’, …) should handle by its own the action to be performed when several lines are selected although the idea is to apply the same action to all selected items (fex: if several items are selected, and QUANTITY is set for them, the same quantity should be assigned to each one of the lines regardless of their previous quantity value).
- If the button is not ready to handle multiple lines (fex: buttons added by third-party modules not updated yet), it should not be shown.
- The field ‘Description’ should show a text like “X ticket lines selected”, being X the number of selected lines.
- The fields ‘Quantity’, ‘Price’ and ‘Discount’ should display <Multiple Values> (or <Multiple Quantities>, <Multiple Prices>, …) UNLESS the value of any field is exactly the same for all the selected lines. In this case, this particular field should display that common value and also the text “(per line)” should be added at the end . Note that this value could be the same by chance or because it has been just set using any of the button.
- The field ‘Warehouse’ should display <Multiple Warehouses> (or <Multiple Description>, <Multiple quantities>, …) UNLESS the value of any field is exactly the same for all the selected lines. In this case, this particular field should display that common value.
- The ‘Total’ field should show the total amount of the selected lines (taking into account also the number of units of each one of them)
- The product image should be a generic one. In the last tentative mockup I have used the generic box image.
- The keypad “+” and “-” buttons should be enabled ONLY in the case the quantity be the same for all selected rows.