summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2007-06-26 15:32:03 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2007-06-26 15:32:08 (UTC)
commit42e459bb1f209df8278f4f4f0ee3f4bcfae80da8 (patch) (unidiff)
tree1f5acb9111aef704d2d62009bd2f2dac416d84d3
parent0d05bca502f4a5347fa629045aca97ba9b404acc (diff)
downloadcgit-42e459bb1f209df8278f4f4f0ee3f4bcfae80da8.zip
cgit-42e459bb1f209df8278f4f4f0ee3f4bcfae80da8.tar.gz
cgit-42e459bb1f209df8278f4f4f0ee3f4bcfae80da8.tar.bz2
Do not include current path in the "tree" menu link
When generating the menu links on repo pages the tree link included the current path. This made the link pretty useless whenever the current path was set so this commit just passes NULL instead. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--ui-shared.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ui-shared.c b/ui-shared.c
index a198cf2..64c237f 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -180,175 +180,175 @@ void cgit_commit_link(char *name, char *title, char *class, char *head,
180 reporevlink("commit", name, title, class, head, rev, NULL); 180 reporevlink("commit", name, title, class, head, rev, NULL);
181} 181}
182 182
183void cgit_diff_link(char *name, char *title, char *class, char *head, 183void cgit_diff_link(char *name, char *title, char *class, char *head,
184 char *new_rev, char *old_rev, char *path) 184 char *new_rev, char *old_rev, char *path)
185{ 185{
186 char *delim; 186 char *delim;
187 187
188 delim = repolink(title, class, "diff", head, path); 188 delim = repolink(title, class, "diff", head, path);
189 if (new_rev && strcmp(new_rev, cgit_query_head)) { 189 if (new_rev && strcmp(new_rev, cgit_query_head)) {
190 html(delim); 190 html(delim);
191 html("id="); 191 html("id=");
192 html_attr(new_rev); 192 html_attr(new_rev);
193 delim = "&amp;"; 193 delim = "&amp;";
194 } 194 }
195 if (old_rev) { 195 if (old_rev) {
196 html(delim); 196 html(delim);
197 html("id2="); 197 html("id2=");
198 html_attr(old_rev); 198 html_attr(old_rev);
199 } 199 }
200 html("'>"); 200 html("'>");
201 html_txt(name); 201 html_txt(name);
202 html("</a>"); 202 html("</a>");
203} 203}
204 204
205void cgit_print_date(time_t secs, char *format) 205void cgit_print_date(time_t secs, char *format)
206{ 206{
207 char buf[64]; 207 char buf[64];
208 struct tm *time; 208 struct tm *time;
209 209
210 time = gmtime(&secs); 210 time = gmtime(&secs);
211 strftime(buf, sizeof(buf)-1, format, time); 211 strftime(buf, sizeof(buf)-1, format, time);
212 html_txt(buf); 212 html_txt(buf);
213} 213}
214 214
215void cgit_print_age(time_t t, time_t max_relative, char *format) 215void cgit_print_age(time_t t, time_t max_relative, char *format)
216{ 216{
217 time_t now, secs; 217 time_t now, secs;
218 218
219 time(&now); 219 time(&now);
220 secs = now - t; 220 secs = now - t;
221 221
222 if (secs > max_relative && max_relative >= 0) { 222 if (secs > max_relative && max_relative >= 0) {
223 cgit_print_date(t, format); 223 cgit_print_date(t, format);
224 return; 224 return;
225 } 225 }
226 226
227 if (secs < TM_HOUR * 2) { 227 if (secs < TM_HOUR * 2) {
228 htmlf("<span class='age-mins'>%.0f min.</span>", 228 htmlf("<span class='age-mins'>%.0f min.</span>",
229 secs * 1.0 / TM_MIN); 229 secs * 1.0 / TM_MIN);
230 return; 230 return;
231 } 231 }
232 if (secs < TM_DAY * 2) { 232 if (secs < TM_DAY * 2) {
233 htmlf("<span class='age-hours'>%.0f hours</span>", 233 htmlf("<span class='age-hours'>%.0f hours</span>",
234 secs * 1.0 / TM_HOUR); 234 secs * 1.0 / TM_HOUR);
235 return; 235 return;
236 } 236 }
237 if (secs < TM_WEEK * 2) { 237 if (secs < TM_WEEK * 2) {
238 htmlf("<span class='age-days'>%.0f days</span>", 238 htmlf("<span class='age-days'>%.0f days</span>",
239 secs * 1.0 / TM_DAY); 239 secs * 1.0 / TM_DAY);
240 return; 240 return;
241 } 241 }
242 if (secs < TM_MONTH * 2) { 242 if (secs < TM_MONTH * 2) {
243 htmlf("<span class='age-weeks'>%.0f weeks</span>", 243 htmlf("<span class='age-weeks'>%.0f weeks</span>",
244 secs * 1.0 / TM_WEEK); 244 secs * 1.0 / TM_WEEK);
245 return; 245 return;
246 } 246 }
247 if (secs < TM_YEAR * 2) { 247 if (secs < TM_YEAR * 2) {
248 htmlf("<span class='age-months'>%.0f months</span>", 248 htmlf("<span class='age-months'>%.0f months</span>",
249 secs * 1.0 / TM_MONTH); 249 secs * 1.0 / TM_MONTH);
250 return; 250 return;
251 } 251 }
252 htmlf("<span class='age-years'>%.0f years</span>", 252 htmlf("<span class='age-years'>%.0f years</span>",
253 secs * 1.0 / TM_YEAR); 253 secs * 1.0 / TM_YEAR);
254} 254}
255 255
256void cgit_print_docstart(char *title, struct cacheitem *item) 256void cgit_print_docstart(char *title, struct cacheitem *item)
257{ 257{
258 html("Content-Type: text/html; charset=utf-8\n"); 258 html("Content-Type: text/html; charset=utf-8\n");
259 htmlf("Last-Modified: %s\n", http_date(item->st.st_mtime)); 259 htmlf("Last-Modified: %s\n", http_date(item->st.st_mtime));
260 htmlf("Expires: %s\n", http_date(item->st.st_mtime + 260 htmlf("Expires: %s\n", http_date(item->st.st_mtime +
261 ttl_seconds(item->ttl))); 261 ttl_seconds(item->ttl)));
262 html("\n"); 262 html("\n");
263 html(cgit_doctype); 263 html(cgit_doctype);
264 html("<html>\n"); 264 html("<html>\n");
265 html("<head>\n"); 265 html("<head>\n");
266 html("<title>"); 266 html("<title>");
267 html_txt(title); 267 html_txt(title);
268 html("</title>\n"); 268 html("</title>\n");
269 htmlf("<meta name='generator' content='cgit v%s'/>\n", cgit_version); 269 htmlf("<meta name='generator' content='cgit v%s'/>\n", cgit_version);
270 html("<link rel='stylesheet' type='text/css' href='"); 270 html("<link rel='stylesheet' type='text/css' href='");
271 html_attr(cgit_css); 271 html_attr(cgit_css);
272 html("'/>\n"); 272 html("'/>\n");
273 html("</head>\n"); 273 html("</head>\n");
274 html("<body>\n"); 274 html("<body>\n");
275} 275}
276 276
277void cgit_print_docend() 277void cgit_print_docend()
278{ 278{
279 html("</td></tr></table>"); 279 html("</td></tr></table>");
280 html("</body>\n</html>\n"); 280 html("</body>\n</html>\n");
281} 281}
282 282
283void cgit_print_pageheader(char *title, int show_search) 283void cgit_print_pageheader(char *title, int show_search)
284{ 284{
285 html("<table id='layout'>"); 285 html("<table id='layout'>");
286 html("<tr><td id='header'><a href='"); 286 html("<tr><td id='header'><a href='");
287 html_attr(cgit_rooturl()); 287 html_attr(cgit_rooturl());
288 html("'>"); 288 html("'>");
289 html_txt(cgit_root_title); 289 html_txt(cgit_root_title);
290 html("</a></td><td id='logo'>"); 290 html("</a></td><td id='logo'>");
291 html("<a href='"); 291 html("<a href='");
292 html_attr(cgit_logo_link); 292 html_attr(cgit_logo_link);
293 htmlf("'><img src='%s' alt='logo'/></a>", cgit_logo); 293 htmlf("'><img src='%s' alt='logo'/></a>", cgit_logo);
294 html("</td></tr>"); 294 html("</td></tr>");
295 html("<tr><td id='crumb'>"); 295 html("<tr><td id='crumb'>");
296 if (cgit_query_repo) { 296 if (cgit_query_repo) {
297 html_txt(cgit_repo->name); 297 html_txt(cgit_repo->name);
298 html(" ("); 298 html(" (");
299 html_txt(cgit_query_head); 299 html_txt(cgit_query_head);
300 html(") : &nbsp;"); 300 html(") : &nbsp;");
301 reporevlink(NULL, "summary", NULL, NULL, cgit_query_head, 301 reporevlink(NULL, "summary", NULL, NULL, cgit_query_head,
302 NULL, NULL); 302 NULL, NULL);
303 html(" "); 303 html(" ");
304 cgit_log_link("log", NULL, NULL, cgit_query_head, 304 cgit_log_link("log", NULL, NULL, cgit_query_head,
305 cgit_query_sha1, cgit_query_path); 305 cgit_query_sha1, cgit_query_path);
306 html(" "); 306 html(" ");
307 cgit_tree_link("tree", NULL, NULL, cgit_query_head, 307 cgit_tree_link("tree", NULL, NULL, cgit_query_head,
308 cgit_query_sha1, cgit_query_path); 308 cgit_query_sha1, NULL);
309 html(" "); 309 html(" ");
310 cgit_commit_link("commit", NULL, NULL, cgit_query_head, 310 cgit_commit_link("commit", NULL, NULL, cgit_query_head,
311 cgit_query_sha1); 311 cgit_query_sha1);
312 html(" "); 312 html(" ");
313 cgit_diff_link("diff", NULL, NULL, cgit_query_head, 313 cgit_diff_link("diff", NULL, NULL, cgit_query_head,
314 cgit_query_sha1, cgit_query_sha2, 314 cgit_query_sha1, cgit_query_sha2,
315 cgit_query_path); 315 cgit_query_path);
316 } else { 316 } else {
317 html_txt("Index of repositories"); 317 html_txt("Index of repositories");
318 } 318 }
319 html("</td>"); 319 html("</td>");
320 html("<td id='search'>"); 320 html("<td id='search'>");
321 if (show_search) { 321 if (show_search) {
322 html("<form method='get' action='"); 322 html("<form method='get' action='");
323 html_attr(cgit_currurl()); 323 html_attr(cgit_currurl());
324 html("'>"); 324 html("'>");
325 if (!cgit_virtual_root) { 325 if (!cgit_virtual_root) {
326 if (cgit_query_repo) 326 if (cgit_query_repo)
327 html_hidden("r", cgit_query_repo); 327 html_hidden("r", cgit_query_repo);
328 if (cgit_query_page) 328 if (cgit_query_page)
329 html_hidden("p", cgit_query_page); 329 html_hidden("p", cgit_query_page);
330 } 330 }
331 if (cgit_query_head) 331 if (cgit_query_head)
332 html_hidden("h", cgit_query_head); 332 html_hidden("h", cgit_query_head);
333 if (cgit_query_sha1) 333 if (cgit_query_sha1)
334 html_hidden("id", cgit_query_sha1); 334 html_hidden("id", cgit_query_sha1);
335 if (cgit_query_sha2) 335 if (cgit_query_sha2)
336 html_hidden("id2", cgit_query_sha2); 336 html_hidden("id2", cgit_query_sha2);
337 html("<input type='text' name='q' value='"); 337 html("<input type='text' name='q' value='");
338 html_attr(cgit_query_search); 338 html_attr(cgit_query_search);
339 html("'/></form>"); 339 html("'/></form>");
340 } 340 }
341 html("</td></tr>"); 341 html("</td></tr>");
342 html("<tr><td id='content' colspan='2'>"); 342 html("<tr><td id='content' colspan='2'>");
343} 343}
344 344
345void cgit_print_snapshot_start(const char *mimetype, const char *filename, 345void cgit_print_snapshot_start(const char *mimetype, const char *filename,
346 struct cacheitem *item) 346 struct cacheitem *item)
347{ 347{
348 htmlf("Content-Type: %s\n", mimetype); 348 htmlf("Content-Type: %s\n", mimetype);
349 htmlf("Content-Disposition: inline; filename=\"%s\"\n", filename); 349 htmlf("Content-Disposition: inline; filename=\"%s\"\n", filename);
350 htmlf("Last-Modified: %s\n", http_date(item->st.st_mtime)); 350 htmlf("Last-Modified: %s\n", http_date(item->st.st_mtime));
351 htmlf("Expires: %s\n", http_date(item->st.st_mtime + 351 htmlf("Expires: %s\n", http_date(item->st.st_mtime +
352 ttl_seconds(item->ttl))); 352 ttl_seconds(item->ttl)));
353 html("\n"); 353 html("\n");
354} 354}