]> git.cameronkatri.com Git - cgit.git/commitdiff
implement repo.logo and repo.logo-link
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Thu, 23 Dec 2010 11:47:54 +0000 (12:47 +0100)
committerLars Hjemli <hjemli@gmail.com>
Sat, 19 Feb 2011 13:41:39 +0000 (14:41 +0100)
Allow for per repo logo and logo-link; Use global logo and logo-link per
default.

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
cgit.c
cgit.h
cgitrc.5.txt
ui-shared.c

diff --git a/cgit.c b/cgit.c
index 412fbf0c32c4c0d2be3b0973ae5b5804c85059d6..e8c1f9405f56af242b94587cf47349a40a40ba99 100644 (file)
--- a/cgit.c
+++ b/cgit.c
@@ -71,9 +71,13 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value)
                repo->module_link= xstrdup(value);
        else if (!strcmp(name, "section"))
                repo->section = xstrdup(value);
-       else if (!strcmp(name, "readme") && value != NULL) {
+       else if (!strcmp(name, "readme") && value != NULL)
                repo->readme = xstrdup(value);
-       } else if (ctx.cfg.enable_filter_overrides) {
+       else if (!strcmp(name, "logo") && value != NULL)
+               repo->logo = xstrdup(value);
+       else if (!strcmp(name, "logo-link") && value != NULL)
+               repo->logo_link = xstrdup(value);
+       else if (ctx.cfg.enable_filter_overrides) {
                if (!strcmp(name, "about-filter"))
                        repo->about_filter = new_filter(value, 0);
                else if (!strcmp(name, "commit-filter"))
diff --git a/cgit.h b/cgit.h
index f5f68ac74c76d33110354645aeba464827dec736..8a9d5fa6a86723ddf964ca8f51ae1a4f9f756006 100644 (file)
--- a/cgit.h
+++ b/cgit.h
@@ -70,6 +70,8 @@ struct cgit_repo {
        char *readme;
        char *section;
        char *clone_url;
+       char *logo;
+       char *logo_link;
        int snapshots;
        int enable_log_filecount;
        int enable_log_linecount;
index 8e51ca5766945c68c23b1f988062b865cf46397a..01157a915c0c72c8dc99b5844dd9c70f3ad49f71 100644 (file)
@@ -370,6 +370,15 @@ repo.enable-subject-links::
        A flag which can be used to override the global setting
        `enable-subject-links'. Default value: none.
 
+repo.logo::
+       Url which specifies the source of an image which will be used as a logo
+       on this repo's pages. Default value: global logo.
+
+repo.logo-link::
+       Url loaded when clicking on the cgit logo image. If unspecified the
+       calculated url of the repository index page will be used. Default
+       value: global logo-link.
+
 repo.max-stats::
        Override the default maximum statistics period. Valid values are equal
        to the values specified for the global "max-stats" setting. Default
index ae29615a32d04ac8c3e933815e61b64543fdecee..7efae7ab04982bf6d5f557cba1d9cdc9b91f9ede 100644 (file)
@@ -756,17 +756,27 @@ static void cgit_print_path_crumbs(struct cgit_context *ctx, char *path)
 
 static void print_header(struct cgit_context *ctx)
 {
+       char *logo = NULL, *logo_link = NULL;
+
        html("<table id='header'>\n");
        html("<tr>\n");
 
-       if (ctx->cfg.logo && ctx->cfg.logo[0] != 0) {
+       if (ctx->repo && ctx->repo->logo && *ctx->repo->logo)
+               logo = ctx->repo->logo;
+       else
+               logo = ctx->cfg.logo;
+       if (ctx->repo && ctx->repo->logo_link && *ctx->repo->logo_link)
+               logo_link = ctx->repo->logo_link;
+       else
+               logo_link = ctx->cfg.logo_link;
+       if (logo && *logo) {
                html("<td class='logo' rowspan='2'><a href='");
-               if (ctx->cfg.logo_link)
-                       html_attr(ctx->cfg.logo_link);
+               if (logo_link && *logo_link)
+                       html_attr(logo_link);
                else
                        html_attr(cgit_rooturl());
                html("'><img src='");
-               html_attr(ctx->cfg.logo);
+               html_attr(logo);
                html("' alt='cgit logo'/></a></td>\n");
        }