Merge remote branch 'foxtons/master' into foxtons
[catagits/Gitalist.git] / root / wrapper.tt2
CommitLineData
c8a42dd5 1[%- IF no_wrapper || template.name.match('\.(css|js|txt)'); content; ELSE; -%]
82f94bce 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
d3feefcf 5<head>
f71a83ab 6 <!-- git core binaries version [% git_version %] -->
82f94bce 7 <meta charset="utf-8" />
8 <meta name="generator" content="gitweb/[% version %] git/[% git_version %]" />
9 <meta name="robots" content="index, nofollow" />
a349e797 10 <title>[%# FIXME - MING %][%-
da8f4f82 11 title = BLOCK;
12 c.config.sitename;
87581f05 13 IF Repository; ' - ' _ Repository.name | html; END;
906a2dd2 14 IF c.action; ' / ' _ c.action; END;
15 IF filename; ' - ' _ filename | html; END;
a349e797 16 IF c.action && c.action == 'tree'; '/'; END;
da8f4f82 17 END;
18 title;
19 -%] (Gitalist)</title>
20 [% INCLUDE '_header_feeds.tt2' %]
82f94bce 21
2b686219 22 <link rel="stylesheet" type="text/css" href="[% c.uri_for('/core.css') %]" />
82f94bce 23 <link rel="shortcut icon" href="[% c.uri_for('/static/git-favicon.png') %]" type="image/png" />
71eba67c 24 <script type="text/javascript">
25 // FIXME: this should be in an external js file once c.uri_for works in js files
26 function compareDiffs(repo, path){
27 var f = document.theform;
28 if(!repo){
29 var repo = "";
30 }
31 if(!path){
32 var path = "";
33 }
34 var sha1,sha2;
35 for(var i=0,len=f.length;i<len;i++){
36 if(f[i].name == "sha1_a"){
37 if(f[i].checked){
38 sha1 = f[i].value;
39 }
40 }
41 if(f[i].name == "sha1_b"){
42 if(f[i].checked){
43 sha2 = f[i].value;
44 }
45 }
46 }
47 document.location.href = "[% c.uri_for("/") %]" + repo + "/"+ sha1 + "/diff/" + sha2 + "/" + path;
48 }
066e05d3 49 // handles hover sub menus in IE
50 startList = function() {
51 if (document.getElementById && document.getElementById("actions_nav_link")) {
52 var navList = document.getElementById("actions_nav_list");
53 var navLink = document.getElementById("actions_nav_link");
54 // assign event handlers to each element
55 navLink.onmouseover=function() {
56 setNavClass(navList);
57 }
58 navList.onmouseover=function() {
59 setNavClass(navList);
60 }
61 navList.onmouseout=function() {
62 navList.className=navList.className.replace(" actions_nav_list_over", "");
63 }
64 navLink.onmouseout=function() {
65 navList.className=navList.className.replace(" actions_nav_list_over", "");
66 }
67 }
68
69 }
70 function setNavClass(el){
71 var link_el = document.getElementById("actions_nav_link");
72 var offsetAry = findPos(link_el);
73 // set position of list
74 el.style.left = offsetAry[0]+"px";
75 el.style.top = offsetAry[1]+30 +"px";
76 el.className+=" actions_nav_list_over";
77 }
78
79 function addLoadListener(fn){
80 if (typeof window.addEventListener != 'undefined') {
81 window.addEventListener('load', fn, false);
82 }else if (typeof document.addEventListener != 'undefined'){
83 document.addEventListener('load', fn, false);
84 }else if (typeof window.attachEvent != 'undefined'){
85 window.attachEvent('onload', fn);
86 }else{
87 var oldfn = window.onload;
88 if (typeof window.onload != 'function'){
89 window.onload = fn;
90 }else{
91 window.onload = function(){
92 oldfn();
93 fn();
94 };
95 }
96 }
97 }
98 function findPos(obj) {
99 var curleft = curtop = 0;
100 if (obj.offsetParent) {
101 do {
102 curleft += obj.offsetLeft;
103 curtop += obj.offsetTop;
104 }
105 while (obj = obj.offsetParent);
106 return [curleft,curtop];
107 }
108 }
109 addLoadListener(startList);
71eba67c 110 </script>
24701964 111</head>
112
113<body>
114
08d8bb08 115<div id="header_holder">
82f94bce 116 <div class="sub_holder">
08d8bb08 117 <div id="header">
118 <a href="[% c.uri_for('/') %]" id="logo"><img src="[% c.uri_for('/static/i/logo.png') %]" alt="Gitalist" /></a>
9143f8d4 119
08d8bb08 120 <div class="search">
121 [% IF Repository; INCLUDE 'nav/search.tt2'; ELSE; %]
122
123 <form method="get" action="[% c.uri_for_action('/search') %]" enctype="application/x-www-form-urlencoded">
124 <p class="projsearch">Search:
125 <input type="text" name="s" value="[% search_text %]" />
126 </p>
127 </form>
128 [% END %]
129 </div>
82f94bce 130 </div>
131
132
133 <div id="nav_logs" [% 'style="visibility:hidden"' IF c.action.name == "index" %]>
9143f8d4 134
135 [% IF c.req.captures.size == 1; SET path = 'repository'; ELSE; SET path = 'ref'; END %]
136
82f94bce 137 <ul>
03686cdc 138 <li[% ' class="selected"' IF c.action.name.match('tree') %]><a href="[% c.uri_for_action('/ref/tree', c.req.captures) || c.uri_for_action('/repository/tree', c.req.captures) %]" id="tree">Tree</a></li>
9143f8d4 139
80d7575a 140 <li[% ' class="selected"' IF c.action.name.match('longlog') %]><a href="[% c.uri_for_action('/' _ path _ '/longlog', c.req.captures) %]" id="log_full">Long log</a></li>
9143f8d4 141
80d7575a 142 <li[% ' class="selected"' IF c.action.name.match('shortlog') %]><a href="[% c.uri_for_action('/' _ path _ '/shortlog', c.req.captures) %]" id="log_short">Short log</a></li>
9143f8d4 143
144
145 <li id="branch_selector">
146 [%# FIXME: convert to c.uri_for_action #%]
147
148 Branches
149 <select onchange="document.location.href='/[% Repository.name %]/'+this.options[this.selectedIndex].text + '/shortlog';">
150 <option value="">HEAD</option>
151
152 [% FOREACH branch_head IN Repository.heads %]
153 <option [% "selected" IF c.req.path.search(branch_head.name) %]>[% branch_head.name %]</option>
154 [% END %]
155
156 </select>
157 </li>
158
82f94bce 159 </ul>
160 </div>
161
162 <h1>
163 <a href="[% c.uri_for('/') %]">Home</a>
164
165 [%- IF Repository %]
166 / <a href="[% c.uri_for_action('/repository/summary', [Repository.name]) %]/shortlog">[% Repository.name %]</a>
167 [%- END %]
168 /
9143f8d4 169 [%- IF Repository %]
170 [%# FIXME: output branch name in a nicer way!!! #%]
171 [% FOREACH branch_head IN Repository.heads %]
172 [% IF c.req.path.search(branch_head.name) %]
173 <a href="[% c.uri_for_action('/repository/summary', [Repository.name]) %]/[% branch_head.name %]/shortlog">[% branch_head.name %]</a> /
174 [% END %]
175 [% END %]
176 [%- END %]
82f94bce 177
066e05d3 178
9143f8d4 179 [%-
0aa355fb 180 SET actions_list = {
181 "blob" => 1,
182 "raw" => 1,
183 "blame" => 1,
184 "history" => 1,
185 };
186
066e05d3 187 SET action_name = c.action.name
188 .replace("_"," ")
189 .replace("log", " log")
190 .replace("fancy","")
191 .replace("index","Repositories");
192 action_name_ucfirst = action_name FILTER ucfirst;
0aa355fb 193 IF actions_list.$action_name;
194 '<a href="#" id="actions_nav_link"><span>' _ action_name_ucfirst _ '</span></a>';
195 ELSE;
196 action_name_ucfirst;
197 END;
066e05d3 198
9143f8d4 199 -%]
066e05d3 200
82f94bce 201 </h1>
202
066e05d3 203 [%-
066e05d3 204 IF actions_list.$action_name;
205 '<ul id="actions_nav_list">';
206 FOREACH action IN actions_list;
207 action_output = action.key FILTER ucfirst;
208 NEXT IF action_output == action_name_ucfirst;
209 action = action.key;
210 '<li><a href="/' _ c.req.path.replace(action_name, action) _ '">' _ action_output _ '</a></li>';
211 END;
212 '</ul>';
213 END;
214 -%]
215
82f94bce 216 </div>
217</div>
218
066e05d3 219
82f94bce 220<div id="content_holder">
221 <div id="content" class="sub_holder">
222 <div id="content_inner">
1fd8159c 223
82f94bce 224
d3feefcf 225
10938267 226 [% content %]
10938267 227
82f94bce 228
82f94bce 229 </div>
230 </div>
231</div>
69421cb7 232
eab82ed1 233<div id="footer_holder">
234 <div id="footer" class="sub_holder">
235
8d491fb3 236 <p>[% IF Repository; Repository.description | html IF Repository.description != "Unnamed repository; edit this file to name it for gitweb." ; END; %]</p>
eab82ed1 237
238 <a title="git homepage" href="http://git-scm.org"><img src="[% c.uri_for('/logo.png') %]" id="git_logo" alt="git" /></a>
239
240 <div id="feeds">
241 [% INCLUDE 'inc/footer_feeds.tt2' %]
242 </div>
82f94bce 243 </div>
eab82ed1 244
2cf1e781 245</div>
246
82f94bce 247
9143f8d4 248
eab82ed1 249<div id="debug_holder">
250 <div id="debug" class="sub_holder">
82f94bce 251
eab82ed1 252 <p>Debug:</p>
253
254 [% USE Dumper %]
255 <pre>
256 [% Repository.path %]
066e05d3 257 [%# Dumper.dump(c.req.path) %]
eab82ed1 258 </pre>
259
260 </div>
261</div>
ed30bf20 262
d3feefcf 263</body>
264</html>
c8a42dd5 265[%- END -%]