]> gitweb.ps.run Git - ps-cgit/blobdiff - ui-shared.c
ui-shared: generate proper links in cgit_object_link()
[ps-cgit] / ui-shared.c
index d909f552ebcd3774bcb8cd5451b4a2239535f422..a959224251e7830cce9c329904ba776735e75c5d 100644 (file)
@@ -359,29 +359,21 @@ void cgit_patch_link(char *name, char *title, char *class, char *head,
 
 void cgit_object_link(struct object *obj)
 {
-       char *page, *arg, *url;
+       char *page, *rev, *name;
 
        if (obj->type == OBJ_COMMIT) {
                 cgit_commit_link(fmt("commit %s", sha1_to_hex(obj->sha1)), NULL, NULL,
                                 ctx.qry.head, sha1_to_hex(obj->sha1));
                return;
-       } else if (obj->type == OBJ_TREE) {
+       } else if (obj->type == OBJ_TREE)
                page = "tree";
-               arg = "id";
-       } else if (obj->type == OBJ_TAG) {
+       else if (obj->type == OBJ_TAG)
                page = "tag";
-               arg = "id";
-       } else {
+       else
                page = "blob";
-               arg = "id";
-       }
-
-       url = cgit_pageurl(ctx.qry.repo, page,
-                          fmt("%s=%s", arg, sha1_to_hex(obj->sha1)));
-       html_link_open(url, NULL, NULL);
-       htmlf("%s %s", typename(obj->type),
-             sha1_to_hex(obj->sha1));
-       html_link_close();
+       rev = sha1_to_hex(obj->sha1);
+       name = fmt("%s %s", typename(obj->type), rev);
+       reporevlink(page, name, NULL, NULL, ctx.qry.head, rev, NULL);
 }
 
 void cgit_print_date(time_t secs, char *format, int local_time)
@@ -496,9 +488,9 @@ void cgit_print_docend()
        if (ctx.cfg.footer)
                html_include(ctx.cfg.footer);
        else {
-               html("<div class='footer'>generated ");
+               htmlf("<div class='footer'>generated  by cgit %s at ",
+                       cgit_version);
                cgit_print_date(time(NULL), FMT_LONGDATE, ctx.cfg.local_time);
-               htmlf(" by cgit %s", cgit_version);
                html("</div>\n");
        }
        html("</body>\n</html>\n");
@@ -649,8 +641,8 @@ void cgit_print_pageheader(struct cgit_context *ctx)
                html("</td><td class='form'>");
                html("<form class='right' method='get' action='");
                if (ctx->cfg.virtual_root)
-                       html_attr(cgit_fileurl(ctx->qry.repo, "log",
-                                              ctx->qry.path, NULL));
+                       html_url_path(cgit_fileurl(ctx->qry.repo, "log",
+                                                  ctx->qry.path, NULL));
                html("'>\n");
                add_hidden_formfields(1, 0, "log");
                html("<select name='qt'>\n");