Author: Jeff Smith <whydoubt@yahoo.com>
ui-commit: Display git notes when present Signed-off-by: Jeff Smith <whydoubt@yahoo.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
cgit.css | 18 ++++++++++++++++++ cgit.h | 1 + ui-commit.c | 15 +++++++++++++++
diff --git a/cgit.css b/cgit.css index 6e47eb3acfbf2eac8ce763575fa5b03a64030a74..3675697d6c93eda76ee6799a2349d39cc3471f5d 100644 --- a/cgit.css +++ b/cgit.css @@ -326,6 +326,24 @@ white-space: pre; font-family: monospace; } +div.notes-header { + font-weight: bold; + padding-top: 1.5em; +} + +div.notes { + white-space: pre; + font-family: monospace; + border: solid 1px #ee9; + background-color: #ffd; + padding: 0.3em 2em 0.3em 1em; + float: left; +} + +div.notes-footer { + clear: left; +} + div.diffstat-header { font-weight: bold; padding-top: 1.5em; diff --git a/cgit.h b/cgit.h index e9e27188056157507452e13abe20e4fc056c2a6c..32d9d2b026550046b8b0dd8dea60cf45d38fb267 100644 --- a/cgit.h +++ b/cgit.h @@ -19,6 +19,7 @@ #include#include <xdiff-interface.h> #include <xdiff/xdiff.h> #include <utf8.h> +#include <notes.h> /* diff --git a/ui-commit.c b/ui-commit.c index a11bc5f3b00d21368c3ba826e7060aeb14de83d7..45af45046a1d48e1759a18d04c51a6a77c693ae8 100644 --- a/ui-commit.c +++ b/ui-commit.c @@ -17,6 +17,7 @@ { struct commit *commit, *parent; struct commitinfo *info, *parent_info; struct commit_list *p; + struct strbuf notes = STRBUF_INIT; unsigned char sha1[20]; char *tmp, *tmp2; int parents = 0; @@ -34,6 +35,8 @@ cgit_print_error(fmt("Bad commit reference: %s", hex)); return; } info = cgit_parse_commit(commit); + + get_commit_notes(commit, ¬es, PAGE_ENCODING, 0); load_ref_decorations(DECORATE_FULL_REFS); @@ -120,6 +123,17 @@ html_txt(info->msg); if (ctx.repo->commit_filter) cgit_close_filter(ctx.repo->commit_filter); html("</div>"); + if (notes.len != 0) { + html("<div class='notes-header'>Notes</div>"); + html("<div class='notes'>"); + if (ctx.repo->commit_filter) + cgit_open_filter(ctx.repo->commit_filter); + html_txt(notes.buf); + if (ctx.repo->commit_filter) + cgit_close_filter(ctx.repo->commit_filter); + html("</div>"); + html("<div class='notes-footer'></div>"); + } if (parents < 3) { if (parents) tmp = sha1_to_hex(commit->parents->item->object.sha1); @@ -127,5 +141,6 @@ else tmp = NULL; cgit_print_diff(ctx.qry.sha1, tmp, prefix); } + strbuf_release(¬es); cgit_free_commitinfo(info); }