Needed to add the 'autocomplete' jQuery UI component because it can do minLength=0 properly. Used the smoothness UI theme. Added typeahead AJAX calls to support the topology searching. Added new plugin and template for the topology editing page.
133 lines
5.3 KiB
Plaintext
133 lines
5.3 KiB
Plaintext
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-type" content="text/html; charset=[% settings.charset | html_entity %]" />
|
|
<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
|
|
<title>Netdisco</title>
|
|
|
|
<!-- HTML5 shim, for IE6-8 support of HTML elements -->
|
|
<!--[if lt IE 9]>
|
|
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
|
<![endif]-->
|
|
|
|
<script type="text/javascript" src="[% uri_base %]/javascripts/jquery-latest.min.js"></script>
|
|
<!-- <script type="text/javascript" src="http://code.jquery.com/jquery-migrate-1.1.1.js"></script> -->
|
|
<script type="text/javascript" src="[% uri_base %]/javascripts/jquery-ui.custom.min.js"></script>
|
|
<script type="text/javascript" src="[% uri_base %]/javascripts/jquery-history.js"></script>
|
|
<script type="text/javascript" src="[% uri_base %]/javascripts/jquery-deserialize.js"></script>
|
|
<script type="text/javascript" src="[% uri_base %]/javascripts/bootstrap.min.js"></script>
|
|
<script type="text/javascript" src="[% uri_base %]/javascripts/d3.min.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
var uri_base = '[% uri_base %]';
|
|
</script>
|
|
|
|
<script type="text/javascript" src="[% uri_base %]/javascripts/netdisco.js"></script>
|
|
|
|
[% IF vars.user.port_control %]
|
|
<script type="text/javascript" src="[% uri_base %]/javascripts/toastr.js"></script>
|
|
<script type="text/javascript" src="[% uri_base %]/javascripts/netdisco_portcontrol.js"></script>
|
|
|
|
<link rel="stylesheet" href="[% uri_base %]/css/toastr.css"/>
|
|
[% END %]
|
|
|
|
<link rel="stylesheet" href="[% uri_base %]/css/bootstrap.min.css"/>
|
|
<link rel="stylesheet" href="[% uri_base %]/css/smoothness/jquery-ui.custom.min.css"/>
|
|
<link rel="stylesheet" href="[% uri_base %]/css/font-awesome.min.css"/>
|
|
<link rel="stylesheet" href="[% uri_base %]/css/netdisco.css"/>
|
|
<link rel="stylesheet" href="[% uri_base %]/css/nd_print.css" media="print"/>
|
|
</head>
|
|
|
|
<body>
|
|
[%
|
|
user_dd = [
|
|
{ "title" = "Settings", "link" = "/settings" },
|
|
{ "title" = "Help", "link" = "/help" },
|
|
{ "title" = "Log Out", "link" = "/logout" }
|
|
]
|
|
%]
|
|
|
|
<div class="navbar navbar-inverse navbar-fixed-top">
|
|
<div class="navbar-inner">
|
|
<div class="container">
|
|
<a class="brand" href="[% uri_for('/') %]">Netdisco</a>
|
|
[% IF session.user %]
|
|
<ul class="nav">
|
|
[% FOREACH ni IN settings.navbar_items %]
|
|
<li[% ' class="active"' IF vars.nav == ni.tag %]>
|
|
<a href="[% uri_for(ni.path) %]">[% ni.label | html_entity %]</a>
|
|
</li>
|
|
[% END %]
|
|
[% IF settings.reports.size %]
|
|
<li class="dropdown[% ' active' IF vars.nav == 'reports' %]">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Reports <b class="caret"></b></a>
|
|
<ul class="dropdown-menu">
|
|
[% FOREACH category IN settings.report_order %]
|
|
[% IF settings.reports_menu.$category.size %]
|
|
<li class="dropdown-submenu">
|
|
<a href="#">[% category | html_entity %]</a>
|
|
<ul class="dropdown-menu">
|
|
[% FOREACH item IN settings.reports_menu.$category %]
|
|
<li><a href="[% uri_for('/report/' _ item) %]">[% settings.reports.$item.label | html_entity %]</a></li>
|
|
[% END %]
|
|
</ul>
|
|
</li>
|
|
[% END %]
|
|
[% END %]
|
|
</ul>
|
|
</li> <!-- /dropdown -->
|
|
[% END %]
|
|
</ul>
|
|
<form class="navbar-search pull-left" method="get" action="[% uri_for('/search') %]">
|
|
<input placeholder="Find Anything" class="search-query span3"
|
|
id="nq" name="q" type="text" autocomplete="off"/>
|
|
<span style="font-size: 24px;">
|
|
<i id="navsearchgo" class="icon-search navbar_icon"></i>
|
|
</span>
|
|
</form>
|
|
[% IF vars.user.admin AND settings.admin_tasks.size %]
|
|
<ul class="nav">
|
|
<li class="dropdown[% ' active' IF vars.nav == 'admin' %]">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Admin Tasks <b class="caret"></b></a>
|
|
<ul class="dropdown-menu">
|
|
[% FOREACH ai IN settings.admin_tasks.keys.sort %]
|
|
<li><a href="[% uri_for('/admin/' _ ai) %]">[% settings.admin_tasks.$ai.label | html_entity %]</a></li>
|
|
[% END %]
|
|
</ul>
|
|
</li> <!-- /dropdown -->
|
|
</ul>
|
|
[% END %]
|
|
<ul class="nav pull-right">
|
|
<li class="nd_navbartext">Logged in as </li>
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
|
[% IF vars.user.admin %]
|
|
<i class="icon-user text-error"></i>
|
|
[% ELSIF vars.user.port_control %]
|
|
<i class="icon-user text-warning"></i>
|
|
[% ELSE %]
|
|
<i class="icon-user"></i>
|
|
[% END %]
|
|
[% session.user | html_entity %] <b class="caret"></b></a>
|
|
<ul class="dropdown-menu">
|
|
[% FOREACH item IN user_dd %]
|
|
<li><a href="[% uri_for(item.link) %]">[% item.title | html_entity %]</a></li>
|
|
[% END %]
|
|
</ul>
|
|
</li> <!-- /dropdown -->
|
|
</ul>
|
|
[% END %]
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
[% content %]
|
|
|
|
<script type="text/javascript">
|
|
[%+ INCLUDE 'js/common.js' -%]
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|