<!--
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under
the License.
-->





<div id="sidenav">
  <header class="row-fluid">
    <h3>Filter by: </h3>
  </header>

  <nav>
		<ul class="task-tabs nav nav-list">
		  <% for (var filter in filters) { %>
		      <li data-type="<%=filter%>">
			      <a>
			      		<%=filters[filter]%>
			      </a>
		    </li>
		  <% } %>
		</ul>
		<ul class="nav nav-list views">
			<li class="nav-header">Polling interval</li>
			<li>
				<input id="pollingRange" type="range"
				       min="1"
				       max="30"
				       step="1"
				       value="5"/>
				<label for="pollingRange"><span>5</span> second(s)</label>
			</li>
		</ul>
  </nav>
</div>
