[%- repos_link = c.uri_for_action('/repository/summary', [p.name]) -%]
<tr class="reposrow">
<td><a class="list" href="[% repos_link %]">[% p.name %]</a></td>
- <td><a class="list" title="[% p.description %]" href="[% repos_link %]">[% abridged_description(p.description) %]</a></td>
+ <td><a class="list" title="[% p.description %]" href="[% repos_link %]/shortlog">[% abridged_description(p.description) %]</a></td>
<td>[% p.owner %]</td>
<td class="time-since">[% time_since(p.last_change) %]</td>
<td class="link"><a href="[% repos_link %]">summary</a>
[% BLOCK shortlog_table_headfoot %]
[% SET cell = type == 'head' ? 'th' : 'td' %]
<tr>
- <[% cell %]>sha1</[% cell %]>
- <[% cell %]>time</[% cell %]>
- <[% cell %]>author</[% cell %]>
- <[% cell %]>message</[% cell %]>
- <[% cell %]>actions</[% cell %]>
+ <[% cell %]>ID (sha1)</[% cell %]>
+ <[% cell %]>Time</[% cell %]>
+ <[% cell %]>Message</[% cell %]>
+ <[% cell %]>Author</[% cell %]>
+ <[% cell %]>Actions</[% cell %]>
</tr>
[% END %]
-<div class='content'>
- [% INCLUDE 'inc/log_pager.tt2' %]
- <table class='shortlog listing'>
- <thead>[% PROCESS shortlog_table_headfoot type = 'head' %]</thead>
- <tfoot>[% PROCESS shortlog_table_headfoot type = 'foot' %]</tfoot>
- <tbody>
+
+
+<table class='shortlog listing'>
+<thead>[% PROCESS shortlog_table_headfoot type = 'head' %]</thead>
+<tbody>
[% FOREACH line IN log_lines %]
- <tr>
- <td class='sha1' title='[% line.sha1 %]'>[% INCLUDE 'inc/chroma_hash.tt2' sha1 = line.sha1.substr(0, 7) %]</td>
- <td class='time-since' title='[% line.authored_time %]'>[% time_since(line.authored_time) %]</td>
- <td class='author'><img style="padding-right: 10px" src="[% uri_for_gravatar(line.author.email, 20) %]" />[% line.author.name | html %]</td>
- <td>
- [% short_cmt(line.comment) | html %]
- [% INCLUDE '_refs.tt2' object = line %]
- </td>
- <td class='action-list'>
- <a href="[% c.uri_for_action("/ref/commit", [Repository.name, line.sha1]) %]">commit</a>
- <a href="[% c.uri_for_action("/ref/diff_fancy", [Repository.name, line.sha1]) %]">commitdiff</a>
- <a href="[% c.uri_for_action("/ref/tree", [Repository.name, line.sha1]) %]">tree</a>
- </td>
- </tr>
- [% END %]
- </tbody>
-</table>[%
- INCLUDE 'inc/log_pager.tt2';
-%]
-</div>
+ <tr [% "class='invert'" IF loop.count % 2 %]>
+ <td class='sha1' title='[% line.sha1 %]'>[% INCLUDE 'inc/chroma_hash.tt2' sha1 = line.sha1.substr(0, 7) %]</td>
+ <td class='time-since' title='[% line.authored_time %]'>[% time_since(line.authored_time) %]</td>
+ <td>
+ [% short_cmt(line.comment) | html %]
+ [% INCLUDE '_refs.tt2' object = line %]
+ </td>
+ <td class='author'><img src="[% uri_for_gravatar(line.author.email, 21) %]" />[% line.author.name | html %]</td>
+ <td class='action-list'>
+ <a href="[% c.uri_for_action("/ref/commit", [Repository.name, line.sha1]) %]" title="Commit details" class="button commit">commit</a>
+ <a href="[% c.uri_for_action("/ref/diff_fancy", [Repository.name, line.sha1]) %]" title="Commit difference" class="button diff">commitdiff</a>
+ <a href="[% c.uri_for_action("/ref/tree", [Repository.name, line.sha1]) %]" title="Tree" class="button tree">tree</a>
+ </td>
+</tr>
+[% END %]
+</tbody>
+</table>
+
+[% INCLUDE 'inc/log_pager.tt2' %]
\ No newline at end of file
[%- sha1 = sha1 || HEAD -%]
-<span class='chroma-hash'>[%-
+[%-
hptr = 0;
WHILE hptr < sha1.length - 6;
sha1part = sha1.substr(hptr, 6);
- "<span style='border-bottom: solid 4px #" _ sha1part _ ";'>" _ sha1part _ "</span>";
hptr = hptr + 6;
END;
--%]</span>
+-%]
+
+<div class='button sha1_holder[% "_invert" IF loop.count % 2 %]' style="background-color:#[% sha1part %]"></div> <div class="sha1_label">[% sha1part %]</div>
-<div class='pager'>
- <a href='[% c.uri_for_action('/' _ c.action, [Repository.name]) %]'>HEAD</a> §
- [% IF log_lines.first.sha1 != Commit.sha1 || (log_lines.size != 25 && page) %]
- <a href='[% c.uri_with(pg => (page||0) + 1) %]'>« newer</a>
- [% END %]
- [% IF log_lines.first.sha1 != Commit.sha1 && log_lines.size == 25%]
- •
- [% END %]
- [% IF log_lines.size == 25 %]
- <a href='[% c.uri_with(pg => (page||0) - 1) %]'>older »</a>
- [% END %]
-</div>
+<ul class="pager">
+ [% IF log_lines.first.sha1 != Commit.sha1 || (log_lines.size != 25 && page) %]
+ <li class="pager_prev"><a href='[% c.uri_with(pg => (page||0) + 1) %]'>Newer commits</a></li>
+ [% END %]
+
+ [% IF log_lines.first.sha1 != Commit.sha1 && log_lines.size == 25 %] [% END %]
+
+ [% IF log_lines.size == 25 %]
+ <li class="pager_next"><a href='[% c.uri_with(pg => (page||0) - 1) %]'>Older commits</a></li>
+ [% END %]
+</ul>
[% IF Repository %]
<div id="page-search">
<form method="get" action="[% c.uri_for_action('/repository/search', [Repository.name]) %]" enctype="application/x-www-form-urlencoded">
+ Search
+
+ <input type="text" name="text" value="[% c.req.param('s') %]" />
<select name="type">
<option value="commit">commit</option>
<option value="author">author</option>
<option value="grep">grep</option>
<option value="pickaxe">pickaxe</option>
-->
- </select><sup><a href="[% c.uri_for_action('/search_help') %]">?</a></sup> search:
- <input type="text" name="text" value="[% c.req.param('s') %]">
+ </select>
<span title="Extended regular expression"><label><input type="checkbox" name="regexp" value="1">re</label></span>
+ <sup><a href="[% c.uri_for_action('/search_help') %]">?</a></sup>
</form>
</div>
[% END %]
<div class='summary content'>
- [% subinclude('/fragment/repository/summary', c.req.captures) %]
+ <!-- [% subinclude('/fragment/repository/summary', c.req.captures) %]
- <h2><a href='[% c.uri_for(c.controller.action_for('shortlog'), c.req.captures) %]'>shortlog</a></h2>
+ <h2><a href='[% c.uri_for(c.controller.action_for('shortlog'), c.req.captures) %]'>shortlog</a></h2> -->
[% subinclude('/fragment/repository/shortlog', c.req.captures) %]
<h2><a href='[% c.uri_for(c.controller.action_for('heads'), c.req.captures) %]'>branches</a></h2>
--- /dev/null
+body{
+ background:#FAFAFA url(/static/i/bg.png) repeat-x left top;
+ padding:0;
+ margin:0;
+ font-family:Arial, Verdana, sans-serif;
+ font-size:80%;
+}
+a img{
+ border:0;
+}
+div{
+ aborder:1px solid red;
+}
+
+
+/* structure */
+.sub_holder{
+ width:970px;
+ margin:0 auto;
+ aborder:1px solid red;
+ text-align:left;
+}
+
+#header{
+ margin-top:20px;
+ aheight:300px;
+}
+#content_holder{
+ background:transparent url(/static/i/bg_content.png) repeat-y center center;
+ aborder:1px solid olive;
+}
+#content{
+ padding:0 12px 40px 10px;
+ aborder:1px solid red;
+ background:transparent url(/static/i/bg_bottom.png) no-repeat center bottom;
+}
+#content_inner{
+ aborder:1px solid blue;
+ background:transparent url(/static/i/bg_top.png) no-repeat;
+}
+#logo{
+ margin-left:-10px;
+ float:left;
+}
+#header .search{
+ margin-right:50px;
+ float:right;
+}
+
+
+/* nav tabs */
+#nav_logs{
+ clear:both;
+ float:right;
+ margin:-18px 50px 0 50px;
+}
+#nav_logs li{
+ display:block;
+ float:left;
+ list-style:none;
+ margin:0;
+ padding:0;
+}
+#nav_logs li a{
+ display:block;
+ margin-left:20px;
+ padding:10px 15px 10px 48px;
+ color:#ffffff;
+ font-size:1.4em;
+ text-transform:uppercase;
+ text-decoration:none;
+}
+a#log_short{
+ background:#666 url(/static/i/icons/shortlog.gif) no-repeat 15px center;
+}
+a#log_full{
+ background:#666 url(/static/i/icons/fulllog.gif) no-repeat 15px center;
+}
+#nav_logs li a:hover{
+ text-decoration:underline;
+ background-color:#DC143C;
+}
+#nav_logs li.selected a{
+ background-color:#333;
+}
+
+
+
+
+
+
+
+/* formating */
+h1{
+ margin:0;
+ padding:20px 0;
+ clear:both;
+ font-weight:normal;
+ font-size:1.85em;
+ color:#fff;
+}
+h1 a{
+ margin-right:10px;
+ color:#fff;
+}
+h1 a:hover{
+ color:#EAF2F5;
+}
+p,
+td,
+a{
+ color:#666;
+}
+a:hover{
+ color:#DC143C;
+}
+
+
+.button{
+ display:block;
+ float:left;
+ vertical-align:middle;
+ margin-right:8px;
+ text-indent:-999999999999px;
+ width:21px;
+ height:21px;
+}
+.commit{
+ background:transparent url(/static/i/icons/commit.png) no-repeat;
+}
+.diff{
+ background:transparent url(/static/i/icons/diff.png) no-repeat;
+}
+.tree{
+ background:transparent url(/static/i/icons/tree.png) no-repeat;
+}
+
+.sha1_holder{
+ background:transparent url(/static/i/icons/button_sha1.png) no-repeat;
+}
+.sha1_holder_invert{
+ background:transparent url(/static/i/icons/button_sha1_invert.png) no-repeat;
+}
+.sha1_label{
+ padding-top:2px;
+ float:left;
+}
+
+
+/* paging */
+.pager{
+ width:100%;
+ float:left;
+ margin:10px 0;
+ padding:0;
+}
+.pager li{
+ margin:0;
+ padding:0;
+ display:block;
+ list-style:none;
+}
+.pager li a{
+ display:block;
+ padding:4px 6px;
+ color:#fff;
+ border:1px solid #ddd;
+ background-color:#333;
+}
+.pager .pager_prev a{
+ margin-left:20px;
+ float:left;
+}
+.pager .pager_next a{
+ margin-right:20px;
+ float:right;
+}
+
+
+
+
+/* table listings */
+th{
+ padding:9px 5px 9px 10px;
+ text-align:left;
+ color:#fff;
+}
+tr.invert{
+ background-color:#f0f0f0;
+}
+.sha1{
+ width:80px;
+}
+.time-since{
+ width:95px;
+ font-weight:bold;
+}
+.author{
+ width:180px;
+}
+.author img{
+ margin-right:5px;
+ vertical-align:middle;
+}
+table.listing{
+ width:970px;
+ border-collapse:collapse;
+}
+.listing td{
+ padding:9px 5px 9px 10px;
+}
+.action-list{
+ width:90px;
+}
\ No newline at end of file
[%- IF no_wrapper || template.name.match('\.(css|js|txt)'); content; ELSE; -%]
-<!DOCTYPE html>
-<html lang="en">
+<!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" xml:lang="en" lang="en">
<head>
<!-- git core binaries version [% git_version %] -->
- <meta charset="utf-8">
- <meta name="generator" content="gitweb/[% version %] git/[% git_version %]">
- <meta name="robots" content="index, nofollow">
+ <meta charset="utf-8" />
+ <meta name="generator" content="gitweb/[% version %] git/[% git_version %]" />
+ <meta name="robots" content="index, nofollow" />
<title>[%# FIXME - MING %][%-
title = BLOCK;
c.config.sitename;
title;
-%] (Gitalist)</title>
[% INCLUDE '_header_feeds.tt2' %]
- <link rel="stylesheet" href="[% c.uri_for('/static/css/blueprint/screen.css') %]" type="text/css" media="screen, projection">
- <link rel="stylesheet" href="[% c.uri_for('/static/css/blueprint/print.css') %]" type="text/css" media="print">
- <!--[if lt IE 8]>
- <link rel="stylesheet" href="[% c.uri_for('/static/css/blueprint/ie.css') %]" type="text/css" media="screen, projection">
- <![endif]-->
- <link rel="stylesheet" type="text/css" href="[% c.uri_for('/static/css/site.css') %]">
- <link rel="stylesheet" type="text/css" href="[% c.uri_for('/static/css/960.css') %]">
- <link rel="shortcut icon" href="[% c.uri_for('/static/git-favicon.png') %]" type="image/png">
+
+ <link rel="stylesheet" type="text/css" href="[% c.uri_for('/static/css/core.css') %]" />
+ <link rel="shortcut icon" href="[% c.uri_for('/static/git-favicon.png') %]" type="image/png" />
</head>
<body>
-<div id='the-container' class='container_12'>
+<div id="header">
+ <div class="sub_holder">
+ <a href="[% c.uri_for('/') %]" id="logo"><img src="[% c.uri_for('/static/i/logo.png') %]" alt="Gitalist" /></a>
+
+ <div class="search">
+ [% IF Repository; INCLUDE 'nav/search.tt2'; END %]
+ </div>
+
+
+ <div id="nav_logs" [% 'style="visibility:hidden"' IF c.action.name == "index" %]>
+ <ul>
+ [% IF c.req.captures.size == 1; SET path = 'repository'; ELSE; SET path = 'ref'; END %]
+ <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>
+ <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>
+ </ul>
+ </div>
+
+ <h1>
+ <a href="[% c.uri_for('/') %]">Home</a>
+
+ [%- IF Repository %]
+ / <a href="[% c.uri_for_action('/repository/summary', [Repository.name]) %]/shortlog">[% Repository.name %]</a>
+ [%- END %]
+ /
+
+ [% c.action.name.replace("_"," ").replace("log", " log") FILTER ucfirst %]
- <div id="page-header">
- <div class="clear"></div>
- <div class='grid_6'>
- <a href="[% c.uri_for('/') %]">A Gitalist</a>
- [%- IF Repository %]
- / <a href="[% c.uri_for_action('/repository/summary', [Repository.name]) %]">[% Repository.name %]</a>
- [%- END %]
- </div>
- <div class='grid_6'>
- <a title="git homepage" href="http://git-scm.org">
- <img src="[% c.uri_for('/logo.png') %]" alt="git" class="logo">
- </a>
- [% IF Repository; INCLUDE 'nav/search.tt2'; END %]
- </div>
- </div>
+ </h1>
+
+ </div>
+</div>
+
+
+
+<div id="content_holder">
+ <div id="content" class="sub_holder">
+ <div id="content_inner">
- [% INCLUDE 'nav/actions.tt2' %]
+
- <div class="clear"></div>
- <div id='body' class='grid_12'>
[% content %]
- </div>
- <div class="clear"></div>
- <div id="page-footer">
- <div class='grid_12'>
- [%
- IF Repository; Repository.description | html; END;
- INCLUDE 'inc/footer_feeds.tt2';
- %]
- </div>
- </div>
+
+
+ [% INCLUDE 'nav/actions.tt2' %]
+ </div>
+ </div>
+</div>
+<div id="footer">
+ <div class="sub_holder">
+ [%
+ IF Repository; Repository.description | html; END;
+ INCLUDE 'inc/footer_feeds.tt2';
+ %]
+ <a title="git homepage" href="http://git-scm.org"><img src="[% c.uri_for('/logo.png') %]" alt="git" /></a>
+ </div>
</div>
+
+
+[% USE Dumper %]
+<pre>
[% Repository.path %]
-+[% Dumper.dump(c.stash) %]
++[% Dumper.dump(c.req.action) %]
+</pre>
</body>