author | Lars Hjemli <hjemli@gmail.com> | 2011-02-19 13:51:00 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2011-02-19 13:51:00 (UTC) |
commit | 979c460e7f71d153ae79da67b8b21c3412f0fe02 (patch) (side-by-side diff) | |
tree | 6da9ffb66ed0a68205e6644cb7e2b4652d6684be /ui-shared.c | |
parent | fb9e6d1594a24fe4e551fd57a9c91fd18b14806e (diff) | |
parent | 0141b9f889bbaa1fe474f9a98dd377138ac73054 (diff) | |
download | cgit-979c460e7f71d153ae79da67b8b21c3412f0fe02.zip cgit-979c460e7f71d153ae79da67b8b21c3412f0fe02.tar.gz cgit-979c460e7f71d153ae79da67b8b21c3412f0fe02.tar.bz2 |
Merge branch 'br/misc'
* br/misc:
Use transparent background for the cgit logo
ssdiff: anchors for ssdiff
implement repo.logo and repo.logo-link
-rw-r--r-- | ui-shared.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/ui-shared.c b/ui-shared.c index ae29615..7efae7a 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -711,107 +711,117 @@ void cgit_add_hidden_formfields(int incl_head, int incl_search, if (incl_head && ctx.qry.head && ctx.repo->defbranch && strcmp(ctx.qry.head, ctx.repo->defbranch)) html_hidden("h", ctx.qry.head); if (ctx.qry.sha1) html_hidden("id", ctx.qry.sha1); if (ctx.qry.sha2) html_hidden("id2", ctx.qry.sha2); if (ctx.qry.showmsg) html_hidden("showmsg", "1"); if (incl_search) { if (ctx.qry.grep) html_hidden("qt", ctx.qry.grep); if (ctx.qry.search) html_hidden("q", ctx.qry.search); } } static const char *hc(struct cgit_context *ctx, const char *page) { return strcmp(ctx->qry.page, page) ? NULL : "active"; } static void cgit_print_path_crumbs(struct cgit_context *ctx, char *path) { char *old_path = ctx->qry.path; char *p = path, *q, *end = path + strlen(path); ctx->qry.path = NULL; cgit_self_link("root", NULL, NULL, ctx); ctx->qry.path = p = path; while (p < end) { if (!(q = strchr(p, '/'))) q = end; *q = '\0'; html_txt("/"); cgit_self_link(p, NULL, NULL, ctx); if (q < end) *q = '/'; p = q + 1; } ctx->qry.path = old_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"); } html("<td class='main'>"); if (ctx->repo) { cgit_index_link("index", NULL, NULL, NULL, 0); html(" : "); cgit_summary_link(ctx->repo->name, ctx->repo->name, NULL, NULL); html("</td><td class='form'>"); html("<form method='get' action=''>\n"); cgit_add_hidden_formfields(0, 1, ctx->qry.page); html("<select name='h' onchange='this.form.submit();'>\n"); for_each_branch_ref(print_branch_option, ctx->qry.head); html("</select> "); html("<input type='submit' name='' value='switch'/>"); html("</form>"); } else html_txt(ctx->cfg.root_title); html("</td></tr>\n"); html("<tr><td class='sub'>"); if (ctx->repo) { html_txt(ctx->repo->desc); html("</td><td class='sub right'>"); html_txt(ctx->repo->owner); } else { if (ctx->cfg.root_desc) html_txt(ctx->cfg.root_desc); else if (ctx->cfg.index_info) html_include(ctx->cfg.index_info); } html("</td></tr></table>\n"); } void cgit_print_pageheader(struct cgit_context *ctx) { html("<div id='cgit'>"); if (!ctx->cfg.noheader) print_header(ctx); html("<table class='tabs'><tr><td>\n"); if (ctx->repo) { cgit_summary_link("summary", NULL, hc(ctx, "summary"), ctx->qry.head); cgit_refs_link("refs", NULL, hc(ctx, "refs"), ctx->qry.head, ctx->qry.sha1, NULL); cgit_log_link("log", NULL, hc(ctx, "log"), ctx->qry.head, NULL, ctx->qry.vpath, 0, NULL, NULL, |