diff --git a/cgit.c b/cgit.c index c82587b..db5d342 100644 --- a/cgit.c +++ b/cgit.c @@ -154,6 +154,8 @@ static void querystring_cb(const char *name, const char *value) ctx.qry.name = xstrdup(value); } else if (!strcmp(name, "mimetype")) { ctx.qry.mimetype = xstrdup(value); + } else if (!strcmp(name, "showmsg")) { + ctx.qry.showmsg = atoi(value); } } diff --git a/cgit.h b/cgit.h index 91db98a..aab898b 100644 --- a/cgit.h +++ b/cgit.h @@ -121,6 +121,7 @@ struct cgit_query { char *url; int ofs; int nohead; + int showmsg; }; struct cgit_config { diff --git a/ui-log.c b/ui-log.c index 8dd8b89..631e46d 100644 --- a/ui-log.c +++ b/ui-log.c @@ -44,8 +44,12 @@ void print_commit(struct commit *commit) cgit_print_age(commit->date, TM_WEEK * 2, FMT_SHORTDATE); html_link_close(); html(""); + if (ctx.qry.showmsg) + html(""); cgit_commit_link(info->subject, NULL, NULL, ctx.qry.head, sha1_to_hex(commit->object.sha1)); + if (ctx.qry.showmsg) + html(""); html(""); html_txt(info->author); if (ctx.repo->enable_log_filecount) { @@ -61,6 +65,17 @@ void print_commit(struct commit *commit) } } html("\n"); + if (ctx.qry.showmsg) { + html("
"); + html_txt(info->msg); + html("

"); + if (ctx.repo->enable_log_filecount) { + html(""); + if (ctx.repo->enable_log_linecount) + html(""); + } + html("\n"); + } cgit_free_commitinfo(info); } @@ -100,8 +115,15 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern html(""); html("" - "" - ""); + ""); if (ctx.repo->enable_log_filecount) { html(""); columns++; @@ -136,20 +158,20 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern 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(" "); } 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(""); } else if ((commit = get_revision(&rev)) != NULL) { html("\n"); } } diff --git a/ui-refs.c b/ui-refs.c index 32e0429..7eb16d5 100644 --- a/ui-refs.c +++ b/ui-refs.c @@ -58,7 +58,8 @@ static int print_branch(struct refinfo *ref) if (!info) return 1; html(""); } diff --git a/ui-shared.c b/ui-shared.c index 224e5f3..dc39e64 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -281,7 +281,8 @@ void cgit_plain_link(char *name, char *title, char *class, char *head, } 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 @@ void cgit_log_link(char *name, char *title, char *class, char *head, html(delim); html("ofs="); htmlf("%d", ofs); + delim = "&"; + } + if (showmsg) { + html(delim); + html("showmsg=1"); } html("'>"); html_txt(name); @@ -568,6 +574,8 @@ void add_hidden_formfields(int incl_head, int incl_search, char *page) 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) @@ -634,7 +642,7 @@ void cgit_print_pageheader(struct cgit_context *ctx) 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"), diff --git a/ui-shared.h b/ui-shared.h index 3c8a6d0..2ab53ae 100644 --- a/ui-shared.h +++ b/ui-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, diff --git a/ui-tree.c b/ui-tree.c index 79332fc..051db7c 100644 --- a/ui-tree.c +++ b/ui-tree.c @@ -106,7 +106,7 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen, html("\n"); free(name); return 0;
AgeCommit messageAuthorCommit 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("AuthorFiles
"); cgit_log_link("[...]", NULL, NULL, ctx.qry.head, NULL, NULL, 0, - NULL, NULL); + NULL, NULL, ctx.qry.showmsg); html("
"); - 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(""); if (ref->object->type == OBJ_COMMIT) { diff --git a/ui-repolist.c b/ui-repolist.c index c23232c..5833140 100644 --- a/ui-repolist.c +++ b/ui-repolist.c @@ -146,7 +146,7 @@ void cgit_print_repolist() html(""); 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(""); cgit_log_link("log", NULL, "button", ctx.qry.head, curr_rev, - fullpath, 0, NULL, NULL); + fullpath, 0, NULL, NULL, ctx.qry.showmsg); html("