about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJohan Herland2010-11-15 18:39:49 +0100
committerLars Hjemli2010-11-16 08:18:36 +0100
commit5a36c2a291a00b59b8ec2f112453e117797c2fe5 (patch)
treeeb975b9e99401e3209fc3180409ec48b285920ac
parenthtml.c: use '+' to escape spaces in urls (diff)
downloadcgit-5a36c2a291a00b59b8ec2f112453e117797c2fe5.tar.gz
cgit-5a36c2a291a00b59b8ec2f112453e117797c2fe5.zip
ui-log: Change display of full commit messages (and notes)
When showmsg is enabled, ui-log (in addition to the table row containing
the details of the current commit) adds a second table row containing the
remainder of the commit message, and yet another table row containing the
commit notes (if any). The vertical margins between commit subject, commit
message and commit notes are controlled by CSS.

In preparation for the commit graph (which will be printed to the left of
the commit message/notes) we need to eliminate these vertical margins (as
they would produce ugly gaps in the commit graph) and instead achieve them
by adding newlines to the commit message/notes. Furthermore, we can no
longer print the "Notes:" header in the "Age" column, since the graph will
be drawn between the "Age" column and the "Commit message" column.

This patch therefore prepares the commit message and commit notes in a
single buffer (properly formatting the notes using the NOTES_SHOW_HEADER
and NOTES_INDENT flags to format_note()), and then prints the entire
buffer into a single table row.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r--cgit.css13
-rw-r--r--ui-log.c30
2 files changed, 18 insertions, 25 deletions
diff --git a/cgit.css b/cgit.css index 0c88b65..7a5f423 100644 --- a/cgit.css +++ b/cgit.css
@@ -161,18 +161,7 @@ table.list td.logsubject {
161table.list td.logmsg { 161table.list td.logmsg {
162 font-family: monospace; 162 font-family: monospace;
163 white-space: pre; 163 white-space: pre;
164 padding: 1em 0.5em 2em 0.5em; 164 padding: 0 0.5em;
165}
166
167table.list td.lognotes-label {
168 text-align:right;
169 vertical-align:top;
170}
171
172table.list td.lognotes {
173 font-family: monospace;
174 white-space: pre;
175 padding: 0em 0.5em 2em 0.5em;
176} 165}
177 166
178table.list td a { 167table.list td a {
diff --git a/ui-log.c b/ui-log.c index 27f5a1a..6d7fcae 100644 --- a/ui-log.c +++ b/ui-log.c
@@ -111,29 +111,33 @@ void print_commit(struct commit *commit)
111 } 111 }
112 } 112 }
113 html("</td></tr>\n"); 113 html("</td></tr>\n");
114 if (ctx.qry.showmsg) { 114
115 struct strbuf notes = STRBUF_INIT; 115 if (ctx.qry.showmsg) { /* Print message + notes in a second table row */
116 format_note(NULL, commit->object.sha1, &notes, PAGE_ENCODING, 0); 116 /* Concatenate commit message and notes in msgbuf */
117 struct strbuf msgbuf = STRBUF_INIT;
118 if (info->msg && *(info->msg)) {
119 strbuf_addstr(&msgbuf, info->msg);
120 strbuf_addch(&msgbuf, '\n');
121 }
122 format_note(NULL, commit->object.sha1, &msgbuf, PAGE_ENCODING,
123 NOTES_SHOW_HEADER | NOTES_INDENT);
124 strbuf_addch(&msgbuf, '\n');
125 strbuf_ltrim(&msgbuf);
117 126
118 if (ctx.repo->enable_log_filecount) { 127 if (ctx.repo->enable_log_filecount) {
119 cols++; 128 cols++;
120 if (ctx.repo->enable_log_linecount) 129 if (ctx.repo->enable_log_linecount)
121 cols++; 130 cols++;
122 } 131 }
132
133 /* Create second table row containing msgbuf */
123 htmlf("<tr class='nohover'><td/><td colspan='%d' class='logmsg'>", 134 htmlf("<tr class='nohover'><td/><td colspan='%d' class='logmsg'>",
124 cols); 135 cols);
125 html_txt(info->msg); 136 html_txt(msgbuf.buf);
126 html("</td></tr>\n"); 137 html("</td></tr>\n");
127 if (notes.len != 0) { 138 strbuf_release(&msgbuf);
128 html("<tr class='nohover'>");
129 html("<td class='lognotes-label'>Notes:</td>");
130 htmlf("<td colspan='%d' class='lognotes'>",
131 cols);
132 html_txt(notes.buf);
133 html("</td></tr>\n");
134 }
135 strbuf_release(&notes);
136 } 139 }
140
137 cgit_free_commitinfo(info); 141 cgit_free_commitinfo(info);
138} 142}
139 143