]> gitweb.ps.run Git - ps-cgit/blobdiff - ui-shared.c
Add link to index page from repo header, remove page name
[ps-cgit] / ui-shared.c
index d08ede90b8125a63d1b553c8c78b02e18dd133e8..cd9838732be5f5f34e2c3fba3c4ac900486333dc 100644 (file)
@@ -114,7 +114,7 @@ char *cgit_currurl()
                return fmt("%s/", ctx.cfg.virtual_root);
 }
 
-static void site_url(char *page, char *search)
+static void site_url(char *page, char *search, int ofs)
 {
        char *delim = "?";
 
@@ -133,11 +133,16 @@ static void site_url(char *page, char *search)
                html(delim);
                html("q=");
                html_attr(search);
+               delim = "&";
+       }
+       if (ofs) {
+               html(delim);
+               htmlf("ofs=%d", ofs);
        }
 }
 
 static void site_link(char *page, char *name, char *title, char *class,
-                      char *search)
+                     char *search, int ofs)
 {
        html("<a");
        if (title) {
@@ -151,12 +156,18 @@ static void site_link(char *page, char *name, char *title, char *class,
                html("'");
        }
        html(" href='");
-       site_url(page, search);
+       site_url(page, search, ofs);
        html("'>");
        html_txt(name);
        html("</a>");
 }
 
+void cgit_index_link(char *name, char *title, char *class, char *pattern,
+                    int ofs)
+{
+       site_link(NULL, name, title, class, pattern, ofs);
+}
+
 static char *repolink(char *title, char *class, char *page, char *head,
                      char *path)
 {
@@ -432,6 +443,9 @@ void cgit_print_docstart(struct cgit_context *ctx)
 
 void cgit_print_docend()
 {
+       html("</div><div class='footer'>generated ");
+       cgit_print_date(time(NULL), FMT_LONGDATE);
+       htmlf(" by cgit %s", cgit_version);
        html("</div>\n</body>\n</html>\n");
 }
 
@@ -531,10 +545,10 @@ void cgit_print_pageheader(struct cgit_context *ctx)
 
        html("<td class='main'>");
        if (ctx->repo) {
+               cgit_index_link("index", NULL, NULL, NULL, 0);
+               html(" : ");
                reporevlink(NULL, ctx->repo->name, NULL, hc(cmd, "summary"),
                            ctx->qry.head, NULL, NULL);
-               html(" : ");
-               html_txt(ctx->qry.page);
                html("</td><td class='form'>");
                html("<form method='get' action=''>\n");
                add_hidden_formfields(0, 1, ctx->qry.page);
@@ -596,9 +610,10 @@ void cgit_print_pageheader(struct cgit_context *ctx)
                html("<input type='submit' value='search'/>\n");
                html("</form>\n");
        } else {
-               site_link(NULL, "index", NULL, hc(cmd, "repolist"), NULL);
+               site_link(NULL, "index", NULL, hc(cmd, "repolist"), NULL, 0);
                if (ctx->cfg.root_readme)
-                       site_link("about", "about", NULL, hc(cmd, "about"), NULL);
+                       site_link("about", "about", NULL, hc(cmd, "about"),
+                                 NULL, 0);
                html("</td><td class='form'>");
                html("<form method='get' action='");
                html_attr(cgit_rooturl());