hydra/src/root/layout.tt
2013-07-09 12:07:18 +02:00

141 lines
4.2 KiB
Plaintext

[% 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 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: function() {
$.post("[% c.uri_for('/persona-logout') %]")
.done(function(data) {
window.location.reload();
})
.fail(function() { bootbox.alert("Server request failed!"); });
}
});
$("#persona-signin").click(function() {
navigator.id.request();
});
$("#persona-signout").click(function() {
navigator.id.logout();
});
</script>
</body>
</html>