#**
 *  Query settings for grouping by fields,
 *  e.g.: Manufacturer or Popularity
 *#

#set($queryOpts = $params.get("queryOpts"))

#if($queryOpts == "group")
  <div>
    #set($groupF = $request.params.get('group.field'))

    <label #annTitle("Add the &group.field parameter. Multiselect is supported")>
      Group By:
      <select id="group" name="group.field" multiple="true">
        ## TODO: Handle multiple selects correctly
        ## TODO: fix empty / "No Group" selection

        <option value=""
          #if($groupF == '')selected="true"#end
        >
          No Group
        </option>

        <option value="manu_exact"
          #if($groupF == 'manu_exact')selected="true"#end
        >
          Manufacturer
        </option>

        <option value="popularity"
          #if($groupF == 'popularity')selected="true"#end
        >
          Popularity
        </option>

      </select>
    </label>  

    <input type="hidden" name="group" value="true"/>

  </div>

#end
