diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/ui-refs.c4
-rw-r--r--source/ui-shared.c14
-rw-r--r--source/ui-shared.h3
-rw-r--r--source/ui-tag.c53
4 files changed, 40 insertions, 34 deletions
diff --git a/source/ui-refs.c b/source/ui-refs.c
index 42a3cfb..c375137 100644
--- a/source/ui-refs.c
+++ b/source/ui-refs.c
@@ -108,7 +108,7 @@ static int print_branch(struct refinfo *ref)
} else {
// The object link sits in the message column, and the empty
// tail cells keep the row as wide as the header.
- cgit_object_link(ref->object);
+ cgit_object_link(ref->object, 0);
html("</td><td class='col-author'></td><td colspan='2'>");
}
html("</td></tr>\n");
@@ -153,7 +153,7 @@ static int print_tag(struct refinfo *ref)
if (ctx.repo->snapshots && (obj->type == OBJ_COMMIT))
cgit_print_snapshot_links(ctx.repo, name, " ");
else
- cgit_object_link(obj);
+ cgit_object_link(obj, 0);
html("</td><td class='col-author'>");
if (info) {
if (info->tagger) {
diff --git a/source/ui-shared.c b/source/ui-shared.c
index 2f0843c..bb786a6 100644
--- a/source/ui-shared.c
+++ b/source/ui-shared.c
@@ -1020,16 +1020,21 @@ void cgit_stats_link(const char *name, const char *title, const char *class,
reporevlink("stats", name, title, class, head, NULL, path);
}
-void cgit_object_link(struct object *obj)
+void cgit_object_link(struct object *obj, int full)
{
const char *page;
char *shortrev, *fullrev, *name;
fullrev = oid_to_hex(&obj->oid);
- shortrev = xstrdup(fullrev);
- shortrev[SHORT_HASH_LEN] = '\0';
+ if (full) {
+ name = cgit_fmt("%s %s", type_name(obj->type), fullrev);
+ } else {
+ shortrev = xstrdup(fullrev);
+ shortrev[SHORT_HASH_LEN] = '\0';
+ name = cgit_fmt("%s %s...", type_name(obj->type), shortrev);
+ }
if (obj->type == OBJ_COMMIT) {
- cgit_commit_link(cgit_fmt("commit %s...", shortrev), NULL, NULL, ctx.qry.head, fullrev, NULL);
+ cgit_commit_link(name, NULL, NULL, ctx.qry.head, fullrev, NULL);
return;
} else if (obj->type == OBJ_TREE)
page = "tree";
@@ -1037,7 +1042,6 @@ void cgit_object_link(struct object *obj)
page = "tag";
else
page = "blob";
- name = cgit_fmt("%s %s...", type_name(obj->type), shortrev);
reporevlink(page, name, NULL, NULL, ctx.qry.head, fullrev, NULL);
}
diff --git a/source/ui-shared.h b/source/ui-shared.h
index 8a1a2b8..e2d2db9 100644
--- a/source/ui-shared.h
+++ b/source/ui-shared.h
@@ -60,7 +60,8 @@ extern void cgit_diff_link(const char *name, const char *title, const char *clas
const char *head, const char *new_rev, const char *old_rev, const char *path);
extern void cgit_stats_link(const char *name, const char *title, const char *class,
const char *head, const char *path);
-extern void cgit_object_link(struct object *obj);
+// Names the object by type and id, abbreviated unless full is set.
+extern void cgit_object_link(struct object *obj, int full);
extern void cgit_submodule_link(const char *class, char *path, const char *rev);
diff --git a/source/ui-tag.c b/source/ui-tag.c
index 02fbfc7..56862bb 100644
--- a/source/ui-tag.c
+++ b/source/ui-tag.c
@@ -17,34 +17,27 @@
#include "ui-shared.h"
#include "ui-tag.h"
-// The rows share the commit page's three column layout, so a single value
-// spans the name and date columns of the tagger row.
-static void print_tag_row(const char *revname, const struct object_id *oid)
+static void print_name_row(const char *revname, const struct object_id *oid)
{
- html("<tr><th>tag</th><td colspan='2'>");
+ html("<tr><th>tag name</th><td>");
html_txt(revname);
if (oid)
htmlf(" (<span class='oid'>%s</span>)", oid_to_hex(oid));
html("</td></tr>\n");
}
-static void print_object_row(struct object *obj)
-{
- html("<tr><th>object</th><td colspan='2' class='oid'>");
- cgit_object_link(obj);
- html("</td></tr>\n");
-}
-
-static void print_download_row(const char *revname)
+static void print_date_row(struct taginfo *info)
{
- html("<tr><th>download</th><td colspan='2' class='oid'>");
- cgit_print_snapshot_links(ctx.repo, revname, "<br>");
- html("</td></tr>\n");
+ html("<tr><th>tag date</th><td><time datetime='");
+ html_attr(show_date(info->tagger_date, info->tagger_tz, cgit_date_mode(DATE_ISO8601_STRICT)));
+ html("'>");
+ html_txt(show_date(info->tagger_date, info->tagger_tz, cgit_date_mode(DATE_ISO8601)));
+ html("</time></td></tr>\n");
}
static void print_tagger_row(struct taginfo *info)
{
- html("<tr><th>tagger</th><td>");
+ html("<tr><th>tagged by</th><td>");
// A tag can carry a tagger with no address, and a filter must not be
// handed a NULL argument.
cgit_open_filter(ctx.repo->email_filter, info->tagger_email ? info->tagger_email : "", "tag");
@@ -54,14 +47,20 @@ static void print_tagger_row(struct taginfo *info)
html_txt(info->tagger_email);
}
cgit_close_filter(ctx.repo->email_filter);
- html("</td><td class='right'>");
- if (info->tagger_date > 0) {
- html("<time datetime='");
- html_attr(show_date(info->tagger_date, info->tagger_tz, cgit_date_mode(DATE_ISO8601_STRICT)));
- html("'>");
- html_txt(show_date(info->tagger_date, info->tagger_tz, cgit_date_mode(DATE_ISO8601)));
- html("</time>");
- }
+ html("</td></tr>\n");
+}
+
+static void print_object_row(struct object *obj)
+{
+ html("<tr><th>tagged object</th><td class='oid'>");
+ cgit_object_link(obj, 1);
+ html("</td></tr>\n");
+}
+
+static void print_download_row(const char *revname)
+{
+ html("<tr><th>download</th><td class='oid'>");
+ cgit_print_snapshot_links(ctx.repo, revname, "<br>");
html("</td></tr>\n");
}
@@ -106,9 +105,11 @@ static void print_annotated_tag(const char *revname, const struct object_id *oid
cgit_print_layout_start();
html("<table class='commit-info'>\n");
+ print_name_row(revname, oid);
+ if (info->tagger_date > 0)
+ print_date_row(info);
if (info->tagger)
print_tagger_row(info);
- print_tag_row(revname, oid);
print_object_row(tag->tagged);
if (ctx.repo->snapshots)
print_download_row(revname);
@@ -122,7 +123,7 @@ static void print_lightweight_tag(const char *revname, struct object *obj)
{
cgit_print_layout_start();
html("<table class='commit-info'>\n");
- print_tag_row(revname, NULL);
+ print_name_row(revname, NULL);
print_object_row(obj);
if (ctx.repo->snapshots)
print_download_row(revname);