all repos — cgit @ 3c32fe07717f27fc891b66ccd06057fb810d03ad

a hyperfast web frontend for git written in c

Merge branch 'full-log'

Conflicts:
	cgit.c
	cgit.h
Lars Hjemli hjemli@gmail.com
Sat, 06 Dec 2008 11:37:37 +0100
commit

3c32fe07717f27fc891b66ccd06057fb810d03ad

parent

9c8be943f72b6f1bda5a31ce401899c3dd734e98

9 files changed, 61 insertions(+), 13 deletions(-)

jump to
M cgit.ccgit.c

@@ -156,6 +156,8 @@ } else if (!strcmp(name, "mimetype")) {

ctx.qry.mimetype = xstrdup(value); } else if (!strcmp(name, "s")){ ctx.qry.sort = xstrdup(value); + } else if (!strcmp(name, "showmsg")) { + ctx.qry.showmsg = atoi(value); } }
M cgit.csscgit.css

@@ -120,6 +120,10 @@ table.list tr {

background: white; } +table.list tr.logheader { + background: #eee; +} + table.list tr:hover { background: #eee; }

@@ -141,6 +145,17 @@

table.list td { border: none; padding: 0.1em 0.5em 0.1em 0.5em; +} + +table.list td.logsubject { + font-family: monospace; + font-weight: bold; +} + +table.list td.logmsg { + font-family: monospace; + white-space: pre; + padding: 1em 0em 2em 0em; } table.list td a {
M cgit.hcgit.h

@@ -123,6 +123,7 @@ char *url;

int ofs; int nohead; char *sort; + int showmsg; }; struct cgit_config {
M ui-log.cui-log.c

@@ -35,15 +35,18 @@ void print_commit(struct commit *commit)

{ struct commitinfo *info; char *tmp; + int cols = 2; info = cgit_parse_commit(commit); - html("<tr><td>"); + htmlf("<tr%s><td>", + ctx.qry.showmsg ? " class='logheader'" : ""); tmp = fmt("id=%s", sha1_to_hex(commit->object.sha1)); tmp = cgit_pageurl(ctx.repo->url, "commit", tmp); html_link_open(tmp, NULL, NULL); cgit_print_age(commit->date, TM_WEEK * 2, FMT_SHORTDATE); html_link_close(); - html("</td><td>"); + htmlf("</td><td%s>", + ctx.qry.showmsg ? " class='logsubject'" : ""); cgit_commit_link(info->subject, NULL, NULL, ctx.qry.head, sha1_to_hex(commit->object.sha1)); html("</td><td>");

@@ -61,6 +64,17 @@ htmlf("-%d/+%d", rem_lines, add_lines);

} } html("</td></tr>\n"); + if (ctx.qry.showmsg) { + if (ctx.repo->enable_log_filecount) { + cols++; + if (ctx.repo->enable_log_linecount) + cols++; + } + htmlf("<tr class='nohover'><td/><td colspan='%d' class='logmsg'>", + cols); + html_txt(info->msg); + html("</td></tr>\n"); + } cgit_free_commitinfo(info); }

@@ -113,8 +127,15 @@ if (pager)

html("<table class='list nowrap'>"); html("<tr class='nohover'><th class='left'>Age</th>" - "<th class='left'>Commit message</th>" - "<th class='left'>Author</th>"); + "<th class='left'>Commit message"); + if (pager) { + html(" ("); + cgit_log_link("toggle", NULL, NULL, ctx.qry.head, ctx.qry.sha1, + ctx.qry.path, ctx.qry.ofs, ctx.qry.grep, + ctx.qry.search, ctx.qry.showmsg ? 0 : 1); + html(")"); + } + html("</th><th class='left'>Author</th>"); if (ctx.repo->enable_log_filecount) { html("<th class='left'>Files</th>"); columns++;

@@ -149,20 +170,20 @@ if (ofs > 0) {

cgit_log_link("[prev]", NULL, NULL, ctx.qry.head, ctx.qry.sha1, ctx.qry.path, ofs - cnt, ctx.qry.grep, - ctx.qry.search); + ctx.qry.search, ctx.qry.showmsg); html("&nbsp;"); } if ((commit = get_revision(&rev)) != NULL) { cgit_log_link("[next]", NULL, NULL, ctx.qry.head, ctx.qry.sha1, ctx.qry.path, ofs + cnt, ctx.qry.grep, - ctx.qry.search); + ctx.qry.search, ctx.qry.showmsg); } html("</div>"); } else if ((commit = get_revision(&rev)) != NULL) { html("<tr class='nohover'><td colspan='3'>"); cgit_log_link("[...]", NULL, NULL, ctx.qry.head, NULL, NULL, 0, - NULL, NULL); + NULL, NULL, ctx.qry.showmsg); html("</td></tr>\n"); } }
M ui-refs.cui-refs.c

@@ -58,7 +58,8 @@

if (!info) return 1; html("<tr><td>"); - cgit_log_link(name, NULL, NULL, name, NULL, NULL, 0, NULL, NULL); + cgit_log_link(name, NULL, NULL, name, NULL, NULL, 0, NULL, NULL, + ctx.qry.showmsg); html("</td><td>"); if (ref->object->type == OBJ_COMMIT) {
M ui-repolist.cui-repolist.c

@@ -257,7 +257,7 @@ if (ctx.cfg.enable_index_links) {

html("<td>"); cgit_summary_link("summary", NULL, "button", NULL); cgit_log_link("log", NULL, "button", NULL, NULL, NULL, - 0, NULL, NULL); + 0, NULL, NULL, ctx.qry.showmsg); cgit_tree_link("tree", NULL, "button", NULL, NULL, NULL); html("</td>"); }
M ui-shared.cui-shared.c

@@ -281,7 +281,8 @@ reporevlink("plain", name, title, class, head, rev, path);

} void cgit_log_link(char *name, char *title, char *class, char *head, - char *rev, char *path, int ofs, char *grep, char *pattern) + char *rev, char *path, int ofs, char *grep, char *pattern, + int showmsg) { char *delim;

@@ -305,6 +306,11 @@ if (ofs > 0) {

html(delim); html("ofs="); htmlf("%d", ofs); + delim = "&"; + } + if (showmsg) { + html(delim); + html("showmsg=1"); } html("'>"); html_txt(name);

@@ -570,6 +576,8 @@ if (ctx.qry.sha1)

html_hidden("id", ctx.qry.sha1); if (ctx.qry.sha2) html_hidden("id2", ctx.qry.sha2); + if (ctx.qry.showmsg) + html_hidden("showmsg", "1"); if (incl_search) { if (ctx.qry.grep)

@@ -636,7 +644,7 @@ ctx->qry.head);

cgit_refs_link("refs", NULL, hc(cmd, "refs"), ctx->qry.head, ctx->qry.sha1, NULL); cgit_log_link("log", NULL, hc(cmd, "log"), ctx->qry.head, - NULL, NULL, 0, NULL, NULL); + NULL, NULL, 0, NULL, NULL, ctx->qry.showmsg); cgit_tree_link("tree", NULL, hc(cmd, "tree"), ctx->qry.head, ctx->qry.sha1, NULL); cgit_commit_link("commit", NULL, hc(cmd, "commit"),
M ui-shared.hui-shared.h

@@ -19,7 +19,7 @@ extern void cgit_plain_link(char *name, char *title, char *class, char *head,

char *rev, char *path); extern void cgit_log_link(char *name, char *title, char *class, char *head, char *rev, char *path, int ofs, char *grep, - char *pattern); + char *pattern, int showmsg); extern void cgit_commit_link(char *name, char *title, char *class, char *head, char *rev); extern void cgit_patch_link(char *name, char *title, char *class, char *head,
M ui-tree.cui-tree.c

@@ -106,7 +106,7 @@ htmlf("</td><td class='ls-size'>%li</td>", size);

html("<td>"); cgit_log_link("log", NULL, "button", ctx.qry.head, curr_rev, - fullpath, 0, NULL, NULL); + fullpath, 0, NULL, NULL, ctx.qry.showmsg); html("</td></tr>\n"); free(name); return 0;