Advanced Search
Requirements:
- Category – drop down with list of all and “All Categories”
- Status – drop-down with list of all and “Any Status”
- Users – drop down
- Advanced Search available to Team Leads only
Questions/Solutions:
- Should be within the Search Mailbox (like the filter interface in the Checkout Mailbox)
- SearchForTicket.mxml
- Multi-select combobox for Categories (like saved responses – does this combobox need the flyout like the saved response?) Nope, just a standard drop-down with the option to select more than one category.
- Multi-select combobox for Statuses (like saved responses – does this combobox need the flyout like the saved response?) Nope, just a standard drop-down with the option to select more than one category.
- Combobox for Users – displays user names & all option
- SearchForTicketMediator.as
- Needs to check if user == team lead then display Categories / Status / Users comboboxes
The permission won’t be tied to a role but a permission which can be assigned to several roles. The permission will need a name.
- Needs to check if user == team lead then display Categories / Status / Users comboboxes
- SearchForTicket.mxml
-
-
- onSearchClicked method revised to add categories / statuses or user selected to the FlurryAdvancedSearchVO
- populate the Categories from CategoryModel
- populate the Statuses from ???? – do we have a list of ticket statuses or will we require a new service call to retrieve them? Currently ticket status is stored within the client as constants
This needs to move to a dictionary lookup so it can translated as part of the translation project - populate the Users from UsersModel
- onChange event handler for userCombobox
- onSelected / onChange event handlers for Categories & Status comboboxes
- Do we want expand / collapse like filter interface? I would think so; see [http://jira.clubpenguin.net/browse/MSS-372
http://jira.clubpenguin.net/browse/MSS-372\ ]
-
- FlurryAdvancedSearchVO to include:
- adminId – 0(all) or single adminId (string/number)
- startIndex:Number
- limit:Number
- ticketCategoryIds:Array
- status:Array
- TicketController.as
- Implement the service call for invoking Search
Isn’t it already searching? What needs to change with the search command? Just need to change the search to use the FlurryAdvancedSearchVO. - Success handler
- MAX_TICKETS_IN_MAILBOX < results
- 1 or more results
- 0 results
- Error handler
- What is the fail scenario? Notification to user?
- Implement the service call for invoking Search
Search Pagination
Requirements:
- Add a start to the SearchVO (where 0 is the first item)
- If the results >= SearchVO.limit then enable a more button (always show it for consistency) Perhaps it would be better to have limit to say 21 if you want 20
- If the more button is pressed then SearchVO.start += SearchVO.limit;
Questions/Solutions:
- Max items per page defined in constant MAX_TICKETS_IN_MAILBOX in FlurryConfiguration.as
- SearchResultsMailbox.mxml
- Add the Prev / Next buttons
- SearchResultsMailboxMediator.as
- Previous Page button disabled by default; enabled when FlurryAdvancedSearchVO.startIndex > 0
- Next Page (More button) disabled by default; enabled when FlurryAdvancedSearchVO.limit > MAX_TICKETS_IN_MAILBOX
Rather when resultsReturned > MAX_TICKETS_IN_MAILBOX - Next Button clicked: FlurryAdvancedSearchVO.startIndex = FlurryAdvancedSearchVO.startIndex + FlurryAdvancedSearchVO.limit (rather MAX_TICKETS_IN_MAILBOX)
- Prev Button clicked: FlurryAdvancedSearchVO.startIndex = FlurryAdvancedSearchVO.startIndex - MAX_TICKETS_IN_MAILBOX
- Prev /Next buttons need to construct FlurryAdvancedSearchVO and invoke search service call; service call success handler needs to clear out Search Mailbox & render search results. Should previous data be stored in cache instead of calling for paging? Should not have to reconstruct the FlurryAdvancedSearchVO but keep it in the state and modify the start and resubmit.
- TicketController.as
- Implement the service call for invoking Search
The search method should be decoupled enough that no changes are needed. The changes should be in the AdvancedSearchVO. Just need to change the search to use the FlurryAdvancedSearchVO. - Success handler
- MAX_TICKETS_IN_MAILBOX < results
- 1 or more results
- 0 results
- Error handler
- What is the fail scenario? Notification to user?
Estimate for Advanced Search & Search Pagination: Approx. 25 hours (dev & unit tests) + 3 hours (QA)
- What is the fail scenario? Notification to user?
- Implement the service call for invoking Search