Wiki

Clone wiki

TaskTrack / CompositeSearch

The tasks in the system are quite rich in metadata (division,customer,leader,categories etc).

Two modes of search are expected:

  1. Find me that task that's something to do with overdrafts (Free text)
  2. Find me all tasks from division_1 that are for customer_2 (Faceted)

But, in both modes of operation, it is possible that following the first results, there may be a successive free-text or faceted query.

We need the UI, and the routes, to support this.

It is expected that the search box in the global nav bar will be used to trigger searches, using type-ahead, as described below.

Routes

The main page for the application is the task listing. This versatile page will meet a range of business requirements using a filtering. For example, users may wish to view "My Tasks", or "Pending Tasks in my Division".

These assorted requirements are to be met through filter routes:

  • /list/leader:23 (to view tasks for leader 12)
  • /list/leader:12/status:pending (to view pending tasks for leader 12)

The routes will also support the faceted search

  • /list/division:division_1/customer:customer_2 (view division_1 tasks for customer_2)

And free text search

  • /list/search:france (view tasks that include the word france
  • /list/search:france+banana (view tasks that include both france and bananas)

Interactions

beware, solutioneering ahead

  1. It's quite clear how the buttons on the nav bar would trigger routes to run faceted searches.
  2. When viewing as task, the presence of a "search icon" next to a facet (such as leader) would trigger a route to show tasks for that leader.
  3. The "suspended/completed/etc" toggles on the task-list page would either update to reflect any status filters received in the route, or would apply themselves internally to the listing, without being applied the route itself.
  4. Entering a facet value (such as Finance) into the search box would provide the drop-down item "Show tasks for Finance department"
  5. Entering any value (france) in the search box would provide the drop-down item "Show tasks that contain France"

Successive refinement

It is also expected that the search box can be used for successive refinement. So, whilst normal operation of the search box is to replace the current route (filter) with the new one typed in, entering "AND" as the first term will cause the following facet/search to be added to the current route filter.

Shortcuts

We may be able to offer keyboard shortcut support at fairly low cost using the search box. We could have a single shortcut "/" that takes the cursor to the search box. The user can then start to enter their search terms (either free text or faceted). But, our type-ahead support could also be aware of the available commands. So, the user could start to enter "Add task", and selecting the matching term in the drop-down would switch to the add-task page. Similarly, when in a task, entering "/" then "add report" would popup the dialog to add a status report.

Just a thought.

Updated