<!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="[% uri_base | none %]/images/favicon.ico" type="image/x-icon"> <link rel="icon" href="[% uri_base | none %]/images/favicon.ico" 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 | none %]/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 | none %]/javascripts/jquery-ui.custom.min.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/jquery-history.js"></script> <!-- <script type="text/javascript" src="[% uri_base | none %]/javascripts/jquery.cookie.js"></script> --> <script type="text/javascript" src="[% uri_base | none %]/javascripts/jquery-deserialize.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/bootstrap.min.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/bootstrap2-toggle.min.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/underscore.min.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/jquery.qtip.min.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/d3-3.5.17.min.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/d3-force-network-chart.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/toastr.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/jquery.floatThead.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/daterangepicker.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/moment.min.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/jquery.dataTables.min.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/dataTables.bootstrap.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/dataTables.ip-address-detect.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/dataTables.ip-address-sort.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/jstree/jstree.min.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/he.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/natural.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/portsort.js"></script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/versionsort.js"></script> <script type="text/javascript"> var uri_base = '[% uri_base | none %]'; var nd_check_userlog = '[% settings.check_userlog | html_entity %]'; </script> <script type="text/javascript" src="[% uri_base | none %]/javascripts/netdisco.js"></script> [% IF user_has_role('port_control') %] <script type="text/javascript" src="[% uri_base | none %]/javascripts/netdisco_portcontrol.js"></script> [% END %] [% FOREACH add_js IN settings._additional_javascript %] <script type="text/javascript" src="[% uri_base | none %]/plugin/[% add_js | none %]/[% add_js | none %].js"></script> [% END %] <link rel="stylesheet" href="[% uri_base | none %]/css/bootstrap.min.css"/> <link rel="stylesheet" href="[% uri_base | none %]/css/bootstrap2-toggle.min.css"/> <link rel="stylesheet" href="[% uri_base | none %]/css/awesome-bootstrap-checkbox.css"/> <link rel="stylesheet" href="[% uri_base | none %]/css/jquery.qtip.min.css"/> <link rel="stylesheet" href="[% uri_base | none %]/css/smoothness/jquery-ui.custom.min.css"/> <link rel="stylesheet" href="[% uri_base | none %]/css/font-awesome.min.css"/> <link rel="stylesheet" href="[% uri_base | none %]/css/toastr.css"/> <link rel="stylesheet" href="[% uri_base | none %]/css/d3-force-network-chart.css"/> <link rel="stylesheet" href="[% uri_base | none %]/css/netdisco.css"/> <link rel="stylesheet" href="[% uri_base | none %]/css/bootstrap-tree.css"/> <link rel="stylesheet" href="[% uri_base | none %]/javascripts/jstree/themes/proton/style.min.css"/> <link rel="stylesheet" href="[% uri_base | none %]/css/daterangepicker-bs2.css"/> <link rel="stylesheet" href="[% uri_base | none %]/css/dataTables.bootstrap.css"/> <link rel="stylesheet" href="[% uri_base | none %]/css/nd_print.css" media="print"/> [% FOREACH add_css IN settings._additional_css %] <link rel="stylesheet" href="[% uri_base | none %]/plugin/[% add_css | none %]/[% add_css | none %].css"/> [% END %] </head> <body> <div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <a class="brand" href="[% uri_for('') | none %]">Netdisco</a> [% IF session.logged_in_user %] <ul class="nav"> [% FOREACH ni IN settings._navbar_items %] <li[% ' class="active"' IF vars.nav == ni.tag %]> <a href="[% uri_for(ni.path) | none %]">[% 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 %] [% NEXT IF settings._reports.$item.hidden %] <li><a href="[% uri_for('/report/' _ item) %]?firstsearch=on">[% settings._reports.$item.label | html_entity %]</a></li> [% END %] </ul> </li> [% END %] [% END %] </ul> </li> <!-- /dropdown --> [% END %] [% IF user_has_role('admin') %] <li class="dropdown[% ' active' IF vars.nav == 'admin' %]"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Admin <b class="caret"></b></a> <ul class="dropdown-menu"> <li> <form method="post" class="nd_inline-form" action="[% uri_for('/admin/discoverall') | none %]"> <button type="submit" class="btn btn-link nd_btn-link">Discover All</button> </form> </li> <li> <form method="post" class="nd_inline-form" action="[% uri_for('/admin/arpwalk') | none %]"> <button type="submit" class="btn btn-link nd_btn-link">Arpnip All</button> </form> </li> <li> <form method="post" class="nd_inline-form" action="[% uri_for('/admin/macwalk') | none %]"> <button type="submit" class="btn btn-link nd_btn-link">Macsuck All</button> </form> </li> <li> <form method="post" class="nd_inline-form" action="[% uri_for('/admin/nbtwalk') | none %]"> <button type="submit" class="btn btn-link nd_btn-link">NBTstat All</button> </form> </li> <li> <form method="post" class="nd_inline-form" action="[% uri_for('/admin/expire') | none %]"> <button type="submit" class="btn btn-link nd_btn-link">Run Expire Job</button> </form> </li> <li> <form method="post" class="nd_inline-form" action="[% uri_for('/admin/stats') | none %]"> <button type="submit" class="btn btn-link nd_btn-link">Update Statistics</button> </form> </li> [% IF settings._admin_tasks.size %] <li class="divider"></li> [% FOREACH ai IN settings._admin_order %] [% NEXT IF settings._admin_tasks.$ai.hidden %] <li><a href="[% uri_for('/admin/' _ ai) %]">[% settings._admin_tasks.$ai.label | html_entity %]</a></li> [% END %] [% END %] </ul> </li> <!-- /dropdown --> [% END %] </ul> <form class="navbar-search pull-left" method="get" action="[% uri_for('/search') | none %]"> <input placeholder="Find Anything" class="search-query span3" id="nq" name="q" value="[% display_name | html_entity %]" type="search" autocomplete="off"/> <input name="firstsearch" type="hidden" value="on"> <div class="btn-group nd_navbar-search-group"> <button class="btn btn-inverse nd_navbar-search-icon"> <span style="font-size: 18px;"> <i id="navsearchgo" class="icon-search"></i> </span> </button> <button class="btn btn-inverse dropdown-toggle nd_navbar-search-caret" data-toggle="dropdown"> <span class="caret" style="border-top-color: #999; border-bottom-color: #999"></span> </button> <ul class="dropdown-menu"> <li><a class="nd_navsearchgo-specific" href="" data-tab="device">Search Devices</a></li> <li><a class="nd_navsearchgo-specific" href="" data-tab="node">Search Nodes</a></li> <li><a class="nd_navsearchgo-specific" href="" data-tab="vlan">Search VLANs</a></li> <li><a class="nd_navsearchgo-specific" href="" data-tab="port">Search Ports</a></li> </ul> </div> </form> [% IF settings.tenant_databases.size %] [% SET tenant = vars.tenant %] <ul class="nav pull-right"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> <i class="icon-home text-success"></i> [% (settings.tenant_data.$tenant.displayname || settings.database.displayname || 'Default') | html_entity %] <b class="caret"></b> </a> <ul class="dropdown-menu"> [% FOREACH t IN settings.tenant_tags %] [% NEXT IF tenant AND t == tenant %] [% NEXT IF NOT tenant and t == 'netdisco' %] <li><a class="nd_navtenant" href="" data-currenttenant="[% settings.tenant_data.$tenant.path || settings.tenant_data.netdisco.path %]" data-tenantpath="[% settings.tenant_data.$t.path %]" data-tenant="[% t %]">[% settings.tenant_data.$t.displayname | html_entity %]</a></li> [% END %] </ul> </li> <!-- /dropdown --> </ul> [% END %] <ul class="nav pull-right"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> [% IF user_has_role('admin') %] <i class="icon-user text-error"></i> [% ELSIF user_has_role('port_control') %] <i class="icon-user text-warning"></i> [% ELSE %] <i class="icon-user"></i> [% END %] [% session.logged_in_fullname || session.logged_in_user | html_entity %] <b class="caret"></b> </a> <ul class="dropdown-menu"> [% IF NOT ( settings.no_auth OR user_has_role('ldap') OR user_has_role('radius') ) %] <li><a href="[% uri_for('/password') | none %]">Change Password</a></li> [% END %] <li><a href="[% uri_for('/swagger-ui') | none %]" target="_blank">👉 Browse the API</a></li> [% IF user_has_role('admin') %] <li><a href="https://github.com/netdisco/netdisco/wiki/Configuration" target="_blank">âš™ï¸ Configuration Reference</a></li> <li><a href="https://github.com/sponsors/netdisco" target="_blank">💜 Become a Sponsor</a></li> [% END %] [% IF NOT settings.no_auth %] <li><a href="[% uri_for('/logout') | none %]">Log Out</a></li> [% END %] </ul> </li> <!-- /dropdown --> </ul> [% END %] </div> </div> </div> [% content | none %] <script type="text/javascript"> [%+ INCLUDE 'js/common.js' -%] // tenant change $('.nd_navtenant').click(function(event) { event.preventDefault(); var url = new URL(window.History.getState()['url']); var newpath = url.pathname; newpath = newpath.replace($(this).data('currenttenant'), ""); newpath = newpath.replace("[% settings.path %]", "/"); newpath = newpath.replace("//", "/"); newpath = $(this).data('tenantpath').concat(newpath, url.search); window.location = newpath; }); </script> </body> </html>