summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2008-04-13 10:20:00 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2008-04-13 10:20:00 (UTC)
commit39912a24edf45497e668ebda25636aa6f6db0c9b (patch) (unidiff)
tree5de079ba1441a4f9546252e38c31d4d1b5f17b40
parent536b0541fcfea2169e4df33043cd9ff14c657bce (diff)
downloadcgit-39912a24edf45497e668ebda25636aa6f6db0c9b.zip
cgit-39912a24edf45497e668ebda25636aa6f6db0c9b.tar.gz
cgit-39912a24edf45497e668ebda25636aa6f6db0c9b.tar.bz2
Remove 'patch' link from tab, add to commit view
It's a bit confusing to enter the patch view from the tab, since it has no layout. And the commit view has always lacked showing the commit id. Both of these warts are fixed by this commit, which adds a new header line in the commit view which shows the commit id as a 'permalink' to the current commit and also adds a link to the patch view of the current commit. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--ui-commit.c6
-rw-r--r--ui-shared.c2
-rw-r--r--ui-shared.h2
3 files changed, 8 insertions, 2 deletions
diff --git a/ui-commit.c b/ui-commit.c
index c2fafd7..dd36cc0 100644
--- a/ui-commit.c
+++ b/ui-commit.c
@@ -166,24 +166,30 @@ void cgit_print_commit(char *hex)
166 html(" "); 166 html(" ");
167 html_txt(info->author_email); 167 html_txt(info->author_email);
168 html("</td><td class='right'>"); 168 html("</td><td class='right'>");
169 cgit_print_date(info->author_date, FMT_LONGDATE); 169 cgit_print_date(info->author_date, FMT_LONGDATE);
170 html("</td></tr>\n"); 170 html("</td></tr>\n");
171 html("<tr><th>committer</th><td>"); 171 html("<tr><th>committer</th><td>");
172 html_txt(info->committer); 172 html_txt(info->committer);
173 html(" "); 173 html(" ");
174 html_txt(info->committer_email); 174 html_txt(info->committer_email);
175 html("</td><td class='right'>"); 175 html("</td><td class='right'>");
176 cgit_print_date(info->committer_date, FMT_LONGDATE); 176 cgit_print_date(info->committer_date, FMT_LONGDATE);
177 html("</td></tr>\n"); 177 html("</td></tr>\n");
178 html("<tr><th>commit</th><td colspan='2' class='sha1'>");
179 tmp = sha1_to_hex(commit->object.sha1);
180 cgit_commit_link(tmp, NULL, NULL, ctx.qry.head, tmp);
181 html(" (");
182 cgit_patch_link("patch", NULL, NULL, NULL, tmp);
183 html(")</td></tr>\n");
178 html("<tr><th>tree</th><td colspan='2' class='sha1'>"); 184 html("<tr><th>tree</th><td colspan='2' class='sha1'>");
179 tmp = xstrdup(hex); 185 tmp = xstrdup(hex);
180 cgit_tree_link(sha1_to_hex(commit->tree->object.sha1), NULL, NULL, 186 cgit_tree_link(sha1_to_hex(commit->tree->object.sha1), NULL, NULL,
181 ctx.qry.head, tmp, NULL); 187 ctx.qry.head, tmp, NULL);
182 html("</td></tr>\n"); 188 html("</td></tr>\n");
183 for (p = commit->parents; p ; p = p->next) { 189 for (p = commit->parents; p ; p = p->next) {
184 parent = lookup_commit_reference(p->item->object.sha1); 190 parent = lookup_commit_reference(p->item->object.sha1);
185 if (!parent) { 191 if (!parent) {
186 html("<tr><td colspan='3'>"); 192 html("<tr><td colspan='3'>");
187 cgit_print_error("Error reading parent commit"); 193 cgit_print_error("Error reading parent commit");
188 html("</td></tr>"); 194 html("</td></tr>");
189 continue; 195 continue;
diff --git a/ui-shared.c b/ui-shared.c
index 6253a90..bb08c4a 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -532,26 +532,24 @@ void cgit_print_pageheader(struct cgit_context *ctx)
532 reporevlink(NULL, "summary", NULL, hc(cmd, "summary"), 532 reporevlink(NULL, "summary", NULL, hc(cmd, "summary"),
533 ctx->qry.head, NULL, NULL); 533 ctx->qry.head, NULL, NULL);
534 cgit_refs_link("refs", NULL, hc(cmd, "refs"), ctx->qry.head, 534 cgit_refs_link("refs", NULL, hc(cmd, "refs"), ctx->qry.head,
535 ctx->qry.sha1, NULL); 535 ctx->qry.sha1, NULL);
536 cgit_log_link("log", NULL, hc(cmd, "log"), ctx->qry.head, 536 cgit_log_link("log", NULL, hc(cmd, "log"), ctx->qry.head,
537 NULL, NULL, 0, NULL, NULL); 537 NULL, NULL, 0, NULL, NULL);
538 cgit_tree_link("tree", NULL, hc(cmd, "tree"), ctx->qry.head, 538 cgit_tree_link("tree", NULL, hc(cmd, "tree"), ctx->qry.head,
539 ctx->qry.sha1, NULL); 539 ctx->qry.sha1, NULL);
540 cgit_commit_link("commit", NULL, hc(cmd, "commit"), 540 cgit_commit_link("commit", NULL, hc(cmd, "commit"),
541 ctx->qry.head, ctx->qry.sha1); 541 ctx->qry.head, ctx->qry.sha1);
542 cgit_diff_link("diff", NULL, hc(cmd, "diff"), ctx->qry.head, 542 cgit_diff_link("diff", NULL, hc(cmd, "diff"), ctx->qry.head,
543 ctx->qry.sha1, ctx->qry.sha2, NULL); 543 ctx->qry.sha1, ctx->qry.sha2, NULL);
544 cgit_patch_link("patch", NULL, hc(cmd, "patch"), ctx->qry.head,
545 ctx->qry.sha1);
546 html("</td><td class='form'>"); 544 html("</td><td class='form'>");
547 html("<form class='right' method='get' action='"); 545 html("<form class='right' method='get' action='");
548 if (ctx->cfg.virtual_root) 546 if (ctx->cfg.virtual_root)
549 html_attr(cgit_fileurl(ctx->qry.repo, "log", 547 html_attr(cgit_fileurl(ctx->qry.repo, "log",
550 ctx->qry.path, NULL)); 548 ctx->qry.path, NULL));
551 html("'>\n"); 549 html("'>\n");
552 add_hidden_formfields(1, 0, "log"); 550 add_hidden_formfields(1, 0, "log");
553 html("<select name='qt'>\n"); 551 html("<select name='qt'>\n");
554 html_option("grep", "log msg", ctx->qry.grep); 552 html_option("grep", "log msg", ctx->qry.grep);
555 html_option("author", "author", ctx->qry.grep); 553 html_option("author", "author", ctx->qry.grep);
556 html_option("committer", "committer", ctx->qry.grep); 554 html_option("committer", "committer", ctx->qry.grep);
557 html("</select>\n"); 555 html("</select>\n");
diff --git a/ui-shared.h b/ui-shared.h
index 94de884..76c2b1f 100644
--- a/ui-shared.h
+++ b/ui-shared.h
@@ -5,24 +5,26 @@ extern char *cgit_repourl(const char *reponame);
5extern char *cgit_fileurl(const char *reponame, const char *pagename, 5extern char *cgit_fileurl(const char *reponame, const char *pagename,
6 const char *filename, const char *query); 6 const char *filename, const char *query);
7extern char *cgit_pageurl(const char *reponame, const char *pagename, 7extern char *cgit_pageurl(const char *reponame, const char *pagename,
8 const char *query); 8 const char *query);
9 9
10extern void cgit_tree_link(char *name, char *title, char *class, char *head, 10extern void cgit_tree_link(char *name, char *title, char *class, char *head,
11 char *rev, char *path); 11 char *rev, char *path);
12extern void cgit_log_link(char *name, char *title, char *class, char *head, 12extern void cgit_log_link(char *name, char *title, char *class, char *head,
13 char *rev, char *path, int ofs, char *grep, 13 char *rev, char *path, int ofs, char *grep,
14 char *pattern); 14 char *pattern);
15extern void cgit_commit_link(char *name, char *title, char *class, char *head, 15extern void cgit_commit_link(char *name, char *title, char *class, char *head,
16 char *rev); 16 char *rev);
17extern void cgit_patch_link(char *name, char *title, char *class, char *head,
18 char *rev);
17extern void cgit_refs_link(char *name, char *title, char *class, char *head, 19extern void cgit_refs_link(char *name, char *title, char *class, char *head,
18 char *rev, char *path); 20 char *rev, char *path);
19extern void cgit_snapshot_link(char *name, char *title, char *class, 21extern void cgit_snapshot_link(char *name, char *title, char *class,
20 char *head, char *rev, char *archivename); 22 char *head, char *rev, char *archivename);
21extern void cgit_diff_link(char *name, char *title, char *class, char *head, 23extern void cgit_diff_link(char *name, char *title, char *class, char *head,
22 char *new_rev, char *old_rev, char *path); 24 char *new_rev, char *old_rev, char *path);
23extern void cgit_object_link(struct object *obj); 25extern void cgit_object_link(struct object *obj);
24 26
25extern void cgit_print_error(char *msg); 27extern void cgit_print_error(char *msg);
26extern void cgit_print_date(time_t secs, char *format); 28extern void cgit_print_date(time_t secs, char *format);
27extern void cgit_print_age(time_t t, time_t max_relative, char *format); 29extern void cgit_print_age(time_t t, time_t max_relative, char *format);
28extern void cgit_print_http_headers(struct cgit_context *ctx); 30extern void cgit_print_http_headers(struct cgit_context *ctx);