[% USE date %] [% USE HTML %] <?xml version="1.0" encoding="UTF-8"?> [% PROCESS common.tt %] <!DOCTYPE html> <html lang="en"> <head> <title>Hydra - [% HTML.escape(title) %]</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js"></script> <link href="/static/bootstrap/css/bootstrap.min.css" rel="stylesheet" /> <!-- hydra.css must be included before bootstrap-responsive to make the @media rule work. --> <link rel="stylesheet" href="/static/css/hydra.css" type="text/css" /> <link href="/static/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet" /> <style> .popover { max-width: 40%; } </style> <script type="text/javascript" src="/static/js/bootbox.min.js"></script> <link rel="stylesheet" href="/static/css/tree.css" type="text/css" /> <link rel="stylesheet" href="/static/css/logfile.css" type="text/css" /> <script type="text/javascript" src="/static/js/common.js"></script> [% tracker %] </head> <body> <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="brand" href="[% c.uri_for(c.controller('Root').action_for('index')) %]"> [% IF logo == "" %] Hydra [% ELSE %] <img src="[% logo %]" alt="Hydra Logo" class="logo" /> [% END %] </a> <div class="nav-collapse collapse"> [% PROCESS topbar.tt %] </div> </div> </div> </div> <div class="container"> [% IF !hideHeader %] <div class="page-header"> <h1><small>[% HTML.escape(title) %]</small></h1> </div> [% ELSE %] <br /> [% END %] [% IF flashMsg %] <div class="alert alert-info">[% flashMsg %]</div> [% END %] [% IF successMsg %] <div class="alert alert-success">[% successMsg %]</div> [% END %] [% IF errorMsg %] <div class="alert alert-error">Error: [% errorMsg %]</div> [% END %] [% content %] <footer class="navbar"> <hr /> <small> <em><a href="http://nixos.org/hydra" target="_new">Hydra</a> [% HTML.escape(version) %] (using [% HTML.escape(nixVersion) %]).</em> [% IF c.user_exists %] You are signed in as <tt>[% HTML.escape(c.user.username) %]</tt>. [% END %] </small> </footer> </div> <script> function doLogout() { $.post("[% c.uri_for('/logout') %]") .done(function(data) { window.location.reload(); }) .fail(function() { bootbox.alert("Server request failed!"); }); } </script> [% IF c.user_exists && c.user.password != '!' %] <script> $("#persona-signout").click(doLogout); </script> [% ELSE %] <script src="https://login.persona.org/include.js"></script> <script> navigator.id.watch({ loggedInUser: [% c.user_exists ? '"' _ HTML.escape(c.user.username) _ '"' : "null" %], onlogin: function(assertion) { $.post("[% c.uri_for('/persona-login') %]", { assertion: assertion }) .done(function(data) { if (data.error) bootbox.alert("Login failed: " + data.error); else window.location.reload(); }) .fail(function() { bootbox.alert("Server request failed!"); }); }, onlogout: doLogout }); $("#persona-signin").click(function() { navigator.id.request(); }); $("#persona-signout").click(function() { navigator.id.logout(); }); </script> [% END %] </body> </html>