Commit c18b29dc authored by annie.sullivan%gmail.com's avatar annie.sullivan%gmail.com
Browse files

Refinements to advanced search UI bug=326613 r=ben@mozilla.org

parent b277b94d
Loading
Loading
Loading
Loading
+21 −57
Original line number Diff line number Diff line
@@ -588,39 +588,23 @@ var PlacesQueryBuilder = {
  
  _keywordSearch: {
    advancedSearch_N_Subject: "advancedSearch_N_SubjectKeyword",
    advancedSearch_N_HostMenulist: false,
    advancedSearch_N_KeywordLabel: true,
    advancedSearch_N_UriMenulist: false,
    advancedSearch_N_LocationMenulist: false,
    advancedSearch_N_TimeMenulist: false,
    advancedSearch_N_Textbox: "",
    advancedSearch_N_TimePicker: false,
    advancedSearch_N_TimeMenulist2: false,
  },
  _hostSearch: {
    advancedSearch_N_Subject: "advancedSearch_N_SubjectHost",
    advancedSearch_N_HostMenulist: "advancedSearch_N_HostMenuSelected",
    advancedSearch_N_KeywordLabel: false,
    advancedSearch_N_UriMenulist: false,
  _locationSearch: {
    advancedSearch_N_Subject: "advancedSearch_N_SubjectLocation",
    advancedSearch_N_LocationMenulist: "advancedSearch_N_LocationMenuSelected",
    advancedSearch_N_TimeMenulist: false,
    advancedSearch_N_Textbox: "",
    advancedSearch_N_TimePicker: false,
    advancedSearch_N_TimeMenulist2: false,
  },
  _uriSearch: {
    advancedSearch_N_Subject: "advancedSearch_N_SubjectUri",
    advancedSearch_N_HostMenulist: false,
    advancedSearch_N_KeywordLabel: false,
    advancedSearch_N_UriMenulist: "advancedSearch_N_UriMenuSelected",
    advancedSearch_N_TimeMenulist: false,
    advancedSearch_N_Textbox: "http://",
    advancedSearch_N_TimePicker: false,
    advancedSearch_N_TimeMenulist2: false,
  },
  _timeSearch: {
    advancedSearch_N_Subject: "advancedSearch_N_SubjectVisited",
    advancedSearch_N_HostMenulist: false,
    advancedSearch_N_KeywordLabel: false,
    advancedSearch_N_UriMenulist: false,
    advancedSearch_N_LocationMenulist: false,
    advancedSearch_N_TimeMenulist: true,
    advancedSearch_N_Textbox: false,
    advancedSearch_N_TimePicker: "date",
@@ -628,9 +612,7 @@ var PlacesQueryBuilder = {
  },
  _timeInLastSearch: {
    advancedSearch_N_Subject: "advancedSearch_N_SubjectVisited",
    advancedSearch_N_HostMenulist: false,
    advancedSearch_N_KeywordLabel: false,
    advancedSearch_N_UriMenulist: false,
    advancedSearch_N_LocationMenulist: false,
    advancedSearch_N_TimeMenulist: true,
    advancedSearch_N_Textbox: "7",
    advancedSearch_N_TimePicker: false,
@@ -644,15 +626,13 @@ var PlacesQueryBuilder = {
    this._nextSearch = {
      "keyword": this._timeSearch,
      "visited": this._hostSearch,
      "host": this._uriSearch,
      "uri": this._keywordSearch,
      "location": this._locationSearch,
    };
    
    this._queryBuilders = {
      "keyword": this.setKeywordQuery,
      "visited": this.setVisitedQuery,
      "host": this.setHostQuery,
      "uri": this.setUriQuery,
      "location": this.setLocationQuery,
    };
    
    this._dateService = Cc["@mozilla.org/intl/scriptabledateformat;1"].
@@ -896,23 +876,18 @@ var PlacesQueryBuilder = {
    query.searchTerms += document.getElementById(prefix + "Textbox").value + " ";
  },
  
  setUriQuery: function PQB_setUriQuery(query, prefix) {
    var matchType = document.getElementById(prefix + "UriMenulist").selectedItem.value;
    if (matchType == "startsWith")
      query.uriIsPrefix = true;
    else
      query.uriIsPrefix = false;

  setLocationQuery: function PQB_setLocationQuery(query, prefix) {
    var type = document.getElementById(prefix + "LocationMenulist").selectedItem.value;
    if (type == "onsite") {
      query.domain = document.getElementById(prefix + "Textbox").value;
    }
    else {
      query.uriIsPrefix = (type == "startswith");
      var ios = Cc["@mozilla.org/network/io-service;1"].
                  getService(Ci.nsIIOService);
      var spec = document.getElementById(prefix + "Textbox").value;
      query.uri = ios.newURI(spec, null, null);
  },
  
  setHostQuery: function PQB_setHostQuery(query, prefix) {
    if (document.getElementById(prefix + "HostMenulist").selectedItem.value == "is")
      query.domainIsHost = true;
    query.domain = document.getElementById(prefix + "Textbox").value;
    }
  },
  
  setVisitedQuery: function PQB_setVisitedQuery(query, prefix) {
@@ -961,7 +936,6 @@ var PlacesQueryBuilder = {
    var queries = [];
    if (queryType == "and")
      queries.push(PlacesPage._hist.getNewQuery());
    var onlyBookmarked = document.getElementById("advancedSearchOnlyBookmarked").checked;
    for (var i = 1; i <= this._numRows; i++) {
      var prefix = "advancedSearch" + i;
      
@@ -972,7 +946,6 @@ var PlacesQueryBuilder = {
        query = queries[0];
      else
        query = PlacesPage._hist.getNewQuery();
      query.onlyBookmarked = onlyBookmarked;
      
      var querySubject = document.getElementById(prefix + "Subject").value;
      this._queryBuilders[querySubject](query, prefix);
@@ -981,17 +954,8 @@ var PlacesQueryBuilder = {
        queries.push(query);
    }
    
    // Set max results
    var result = PlacesPage._content.getResult();
    var options = PlacesPage.getCurrentOptions();
    if (document.getElementById("advancedSearchHasMax").checked) {
      var max = parseInt(document.getElementById("advancedSearchMaxResults").value);
      if (isNaN(max))
        max = 100;
      options.maxResults = max;
      dump("Max results = " + options.maxResults + "(" + max + ")\n");
    }
    // Make sure we're getting uri results, not visits
    var options = PlacesPage.getCurrentOptions();
    options.resultType = options.RESULT_TYPE_URI;

    PlacesPage._content.load(queries, options);
+19 −49
Original line number Diff line number Diff line
@@ -133,46 +133,27 @@
                                rowid="1"
                                id="advancedSearch1SubjectVisited"
                                oncommand="PlacesQueryBuilder.showSearch(this.getAttribute('rowid'), PlacesQueryBuilder._timeSearch);"/>
                      <menuitem value="host"
                                label="&advancedSearch.subj_host.label;"
                      <menuitem value="location"
                                label="&advancedSearch.subj_location.label;"
                                rowid="1"
                                id="advancedSearch1SubjectHost"
                                oncommand="PlacesQueryBuilder.showSearch(this.getAttribute('rowid'), PlacesQueryBuilder._hostSearch);"/>
                      <menuitem value="uri"
                                label="&advancedSearch.subj_uri.label;"
                                rowid="1"
                                id="advancedSearch1SubjectUri"
                                oncommand="PlacesQueryBuilder.showSearch(this.getAttribute('rowid'), PlacesQueryBuilder._uriSearch);"/>
                                id="advancedSearch1SubjectLocation"
                                oncommand="PlacesQueryBuilder.showSearch(this.getAttribute('rowid'), PlacesQueryBuilder._locationSearch);"/>
                    </menupopup>
                  </menulist>

                  <hbox flex="1" align="center">
                    <menulist id="advancedSearch1HostMenulist"
                    <menulist id="advancedSearch1LocationMenulist"
                              oncommand="PlacesQueryBuilder.doSearch();"
                              hidden="true">
                      <menupopup>
                        <menuitem id="advancedSearch1HostMenuSelected"
                                  value="is"
                                  label="&advancedSearch.host_is.label;"
                        <menuitem id="advancedSearch1LocationMenuSelected"
                                  value="startswith"
                                  label="&advancedSearch.location_startswith.label;"
                                  selected="true"/>
                        <menuitem value="endsWith"
                                  label="&advancedSearch.host_endswith.label;"/>
                      </menupopup>
                    </menulist>

                    <label id="advancedSearch1KeywordLabel"
                           value="&advancedSearch.include.label;"/>

                    <menulist id="advancedSearch1UriMenulist"
                              oncommand="PlacesQueryBuilder.doSearch();"
                              hidden="true">
                      <menupopup>
                        <menuitem value="is"
                                  label="&advancedSearch.uri_is.label;"/>
                        <menuitem id="advancedSearch1UriMenuSelected"
                                  value="startsWith"
                                  selected="true"
                                  label="&advancedSearch.uri_startswith.label;"/>
                                  label="&advancedSearch.location_is.label;"/>
                        <menuitem value="onsite"
                                  label="&advancedSearch.location_onsite.label;"/>
                      </menupopup>
                    </menulist>

@@ -198,14 +179,18 @@
                                  oncommand="PlacesQueryBuilder.showSearch(this.getAttribute('rowid'), PlacesQueryBuilder._timeInLastSearch);"/>
                      </menupopup>
                    </menulist>
                    <textbox id="advancedSearch1Textbox"
                    <textbox type="timed"
                             timeout="50"
                             id="advancedSearch1Textbox"
                             flex="1"
                             oninput="PlacesQueryBuilder.doSearch();"/>
                             oncommand="PlacesQueryBuilder.doSearch();"/>

                    <textbox id="advancedSearch1TimePicker"
                    <textbox type="timed"
                             timeout="50"
                             id="advancedSearch1TimePicker"
                             hidden="true" flex="1"
                             rowid="1"
                             oninput="PlacesQueryBuilder.onDateTyped(event, this.getAttribute('rowid'));"
                             oncommand="PlacesQueryBuilder.onDateTyped(event, this.getAttribute('rowid'));"
                             onclick="PlacesQueryBuilder.handleTimePickerClick(event, this.getAttribute('rowid'));"/>
                    <popup id="advancedSearch1DatePopup"
                           onpopupshowing="this.setAttribute('showing', true);"
@@ -243,21 +228,6 @@
                </row>
              </rows>
            </grid>
            <hbox align="center">
              <checkbox id="advancedSearchOnlyBookmarked"
                        label="&advancedSearch.onlybookmarked.label;"
                        checked="false"
                        oncommand="PlacesQueryBuilder.doSearch();"/>
              <spacer flex="1"/>
              <checkbox id="advancedSearchHasMax"
                        label="&advancedSearch.max.label;"
                        oncommand="PlacesQueryBuilder.doSearch();"
                        checked="true"/>
              <textbox id="advancedSearchMaxResults"
                       oninput="PlacesQueryBuilder.doSearch();"
                       value="100"/>
              <spacer flex="1"/>
            </hbox>
          </vbox>
          <tree id="placeContent" class="placesTree" context="placesContext" 
                flex="1" query="" type="places" 
+8 −14
Original line number Diff line number Diff line
@@ -139,23 +139,17 @@
<!ENTITY advancedSearch.rules.label
  " of the following rules:">
<!ENTITY advancedSearch.subj_keyword.label
  "Keywords">
  "Containing the text">
<!ENTITY advancedSearch.subj_visited.label
  "Visited">
<!ENTITY advancedSearch.subj_host.label
  "Host">
<!ENTITY advancedSearch.subj_uri.label
  "URI">
<!ENTITY advancedSearch.host_is.label
  "is">
<!ENTITY advancedSearch.host_endswith.label
  "ends with">
<!ENTITY advancedSearch.include.label
  "include">
<!ENTITY advancedSearch.uri_is.label
  "is">
<!ENTITY advancedSearch.uri_startswith.label
<!ENTITY advancedSearch.subj_location.label
  "Location">
<!ENTITY advancedSearch.location_startswith.label
  "starts with">
<!ENTITY advancedSearch.location_is.label
  "is">
<!ENTITY advancedSearch.location_onsite.label
  "is on site">
<!ENTITY advancedSearch.time_is.label
  "on">
<!ENTITY advancedSearch.time_before.label