These are sketched of the first Search App mock-ups.
To include the search capability in Basie, there are a couple things that we need. The first is the search bar at the top of every page. It’s convenient to be on any page and be able to search for something specific. That general search bar will search for the content over the entire site. There will also be the option of doing a general Google search. You can see an drop-down arrow where the user can select whether they want to search only in their Basie project or on Google instead. if they choose to do a Google search from that search bar, then a new tab or window should open with the Google results page.
The Search results from Basie will display the “Title” which will be any number of things depending on the result.
* Events – event name
* Mail – subject line
* Tickets – ticket title/one-liner description
* Wiki – title of the Wiki page
* Source – full file name including root directory (i.e. /root/trunk/file.py)
Next to the Title will be a percentage rating of how relevant the result is. The first item will always be 100%, and all subsequent results will be rated with respect to the first item. So if the first result gets 5 hits of the key words, and the next item gets 4, then the second result will display 80%.
Following the “Title” will be the context in which the search content appears.
Then on a new line, the link to the item as plain text.
In the advanced search, there are several more fields that the user can specify:
Show Items with…
* all of these words – makes sure all the words appear in the result
* this exact phrase – must appear exactly in the result
* any of these words – lets the user input words separated by ‘OR’. You will notice that there is a second ‘OR’ after the second box. It is a button, that, once pressed, inserts two new input boxes directly below the current two input boxes.
* none of these words – will exclude any result that contain any of the words inputted here
* within the last – this will let users specify how recent the search results must be based on the last time the item was modified or updated. List options would be “anytime”(default), “24 hours”, “2 days”, “week”, “month”, “year”.
* before – this will let users specify how old the search results must be at least. List options would be “now”(default), “24 hours”, “2 days”, “week”, “month”, “year”.
* any language
* in the following languages – lets users specify what language the search results should be in.
* Display ## results per page – gives the user the abilitty to specify how many results they want to display on one page. Since we are using pagination, users may only want to see the first few or see them all on one page. It will be a drop-down menu with the following options: 5, 10, 20, all.
I thought it would be a good idea to allow users to specify the language since Basie supports multiple languages. It’s likely that in a single project, there may be multiple language source files or e-mails. So this option may be useful if the user wants to search for only e-mails written in french.