diff options
| -rw-r--r-- | ui-log.c | 42 |
1 files changed, 30 insertions, 12 deletions
| @@ -96,7 +96,7 @@ void print_commit(struct commit *commit, struct rev_info *revs) | |||
| 96 | { | 96 | { |
| 97 | struct commitinfo *info; | 97 | struct commitinfo *info; |
| 98 | char *tmp; | 98 | char *tmp; |
| 99 | int cols = 2; | 99 | int cols = revs->graph ? 3 : 2; |
| 100 | struct strbuf graphbuf = STRBUF_INIT; | 100 | struct strbuf graphbuf = STRBUF_INIT; |
| 101 | struct strbuf msgbuf = STRBUF_INIT; | 101 | struct strbuf msgbuf = STRBUF_INIT; |
| 102 | 102 | ||
| @@ -110,7 +110,7 @@ void print_commit(struct commit *commit, struct rev_info *revs) | |||
| 110 | /* Advance graph until current commit */ | 110 | /* Advance graph until current commit */ |
| 111 | while (!graph_next_line(revs->graph, &graphbuf)) { | 111 | while (!graph_next_line(revs->graph, &graphbuf)) { |
| 112 | /* Print graph segment in otherwise empty table row */ | 112 | /* Print graph segment in otherwise empty table row */ |
| 113 | html("<tr class='nohover'><td/><td class='commitgraph'>"); | 113 | html("<tr class='nohover'><td class='commitgraph'>"); |
| 114 | html(graphbuf.buf); | 114 | html(graphbuf.buf); |
| 115 | htmlf("</td><td colspan='%d' /></tr>\n", cols); | 115 | htmlf("</td><td colspan='%d' /></tr>\n", cols); |
| 116 | strbuf_setlen(&graphbuf, 0); | 116 | strbuf_setlen(&graphbuf, 0); |
| @@ -119,14 +119,7 @@ void print_commit(struct commit *commit, struct rev_info *revs) | |||
| 119 | } | 119 | } |
| 120 | 120 | ||
| 121 | info = cgit_parse_commit(commit); | 121 | info = cgit_parse_commit(commit); |
| 122 | htmlf("<tr%s><td>", | 122 | htmlf("<tr%s>", ctx.qry.showmsg ? " class='logheader'" : ""); |
| 123 | ctx.qry.showmsg ? " class='logheader'" : ""); | ||
| 124 | tmp = fmt("id=%s", sha1_to_hex(commit->object.sha1)); | ||
| 125 | tmp = cgit_fileurl(ctx.repo->url, "commit", ctx.qry.vpath, tmp); | ||
| 126 | html_link_open(tmp, NULL, NULL); | ||
| 127 | cgit_print_age(commit->date, TM_WEEK * 2, FMT_SHORTDATE); | ||
| 128 | html_link_close(); | ||
| 129 | html("</td>"); | ||
| 130 | 123 | ||
| 131 | if (revs->graph) { | 124 | if (revs->graph) { |
| 132 | /* Print graph segment for current commit */ | 125 | /* Print graph segment for current commit */ |
| @@ -135,6 +128,15 @@ void print_commit(struct commit *commit, struct rev_info *revs) | |||
| 135 | html("</td>"); | 128 | html("</td>"); |
| 136 | strbuf_setlen(&graphbuf, 0); | 129 | strbuf_setlen(&graphbuf, 0); |
| 137 | } | 130 | } |
| 131 | else { | ||
| 132 | html("<td>"); | ||
| 133 | tmp = fmt("id=%s", sha1_to_hex(commit->object.sha1)); | ||
| 134 | tmp = cgit_fileurl(ctx.repo->url, "commit", ctx.qry.vpath, tmp); | ||
| 135 | html_link_open(tmp, NULL, NULL); | ||
| 136 | cgit_print_age(commit->date, TM_WEEK * 2, FMT_SHORTDATE); | ||
| 137 | html_link_close(); | ||
| 138 | html("</td>"); | ||
| 139 | } | ||
| 138 | 140 | ||
| 139 | htmlf("<td%s>", ctx.qry.showmsg ? " class='logsubject'" : ""); | 141 | htmlf("<td%s>", ctx.qry.showmsg ? " class='logsubject'" : ""); |
| 140 | if (ctx.qry.showmsg) { | 142 | if (ctx.qry.showmsg) { |
| @@ -167,6 +169,16 @@ void print_commit(struct commit *commit, struct rev_info *revs) | |||
| 167 | show_commit_decorations(commit); | 169 | show_commit_decorations(commit); |
| 168 | html("</td><td>"); | 170 | html("</td><td>"); |
| 169 | html_txt(info->author); | 171 | html_txt(info->author); |
| 172 | |||
| 173 | if (revs->graph) { | ||
| 174 | html("</td><td>"); | ||
| 175 | tmp = fmt("id=%s", sha1_to_hex(commit->object.sha1)); | ||
| 176 | tmp = cgit_fileurl(ctx.repo->url, "commit", ctx.qry.vpath, tmp); | ||
| 177 | html_link_open(tmp, NULL, NULL); | ||
| 178 | cgit_print_age(commit->date, TM_WEEK * 2, FMT_SHORTDATE); | ||
| 179 | html_link_close(); | ||
| 180 | } | ||
| 181 | |||
| 170 | if (ctx.repo->enable_log_filecount) { | 182 | if (ctx.repo->enable_log_filecount) { |
| 171 | files = 0; | 183 | files = 0; |
| 172 | add_lines = 0; | 184 | add_lines = 0; |
| @@ -182,7 +194,7 @@ void print_commit(struct commit *commit, struct rev_info *revs) | |||
| 182 | html("</td></tr>\n"); | 194 | html("</td></tr>\n"); |
| 183 | 195 | ||
| 184 | if (revs->graph || ctx.qry.showmsg) { /* Print a second table row */ | 196 | if (revs->graph || ctx.qry.showmsg) { /* Print a second table row */ |
| 185 | html("<tr class='nohover'><td/>"); /* Empty 'Age' column */ | 197 | html("<tr class='nohover'>"); |
| 186 | 198 | ||
| 187 | if (ctx.qry.showmsg) { | 199 | if (ctx.qry.showmsg) { |
| 188 | /* Concatenate commit message + notes in msgbuf */ | 200 | /* Concatenate commit message + notes in msgbuf */ |
| @@ -223,6 +235,8 @@ void print_commit(struct commit *commit, struct rev_info *revs) | |||
| 223 | } | 235 | } |
| 224 | html("</td>\n"); | 236 | html("</td>\n"); |
| 225 | } | 237 | } |
| 238 | else | ||
| 239 | html("<td/>"); /* Empty 'Age' column */ | ||
| 226 | 240 | ||
| 227 | /* Print msgbuf into remainder of table row */ | 241 | /* Print msgbuf into remainder of table row */ |
| 228 | htmlf("<td colspan='%d'%s>\n", cols, | 242 | htmlf("<td colspan='%d'%s>\n", cols, |
| @@ -345,9 +359,11 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern | |||
| 345 | if (pager) | 359 | if (pager) |
| 346 | html("<table class='list nowrap'>"); | 360 | html("<table class='list nowrap'>"); |
| 347 | 361 | ||
| 348 | html("<tr class='nohover'><th class='left'>Age</th>"); | 362 | html("<tr class='nohover'>"); |
| 349 | if (commit_graph) | 363 | if (commit_graph) |
| 350 | html("<th></th>"); | 364 | html("<th></th>"); |
| 365 | else | ||
| 366 | html("<th class='left'>Age</th>"); | ||
| 351 | html("<th class='left'>Commit message"); | 367 | html("<th class='left'>Commit message"); |
| 352 | if (pager) { | 368 | if (pager) { |
| 353 | html(" ("); | 369 | html(" ("); |
| @@ -358,6 +374,8 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern | |||
| 358 | html(")"); | 374 | html(")"); |
| 359 | } | 375 | } |
| 360 | html("</th><th class='left'>Author</th>"); | 376 | html("</th><th class='left'>Author</th>"); |
| 377 | if (commit_graph) | ||
| 378 | html("<th class='left'>Age</th>"); | ||
| 361 | if (ctx.repo->enable_log_filecount) { | 379 | if (ctx.repo->enable_log_filecount) { |
| 362 | html("<th class='left'>Files</th>"); | 380 | html("<th class='left'>Files</th>"); |
| 363 | columns++; | 381 | columns++; |
