-rw-r--r-- | ui-shared.c | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/ui-shared.c b/ui-shared.c index 66d5b82..015c52b 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -464,16 +464,19 @@ void cgit_print_age(time_t t, time_t max_relative, char *format) htmlf("<span class='age-years'>%.0f years</span>", secs * 1.0 / TM_YEAR); } void cgit_print_http_headers(struct cgit_context *ctx) { const char *method = getenv("REQUEST_METHOD"); + if (ctx->cfg.embedded) + return; + if (ctx->page.status) htmlf("Status: %d %s\n", ctx->page.status, ctx->page.statusmsg); if (ctx->page.mimetype && ctx->page.charset) htmlf("Content-Type: %s; charset=%s\n", ctx->page.mimetype, ctx->page.charset); else if (ctx->page.mimetype) htmlf("Content-Type: %s\n", ctx->page.mimetype); if (ctx->page.size) @@ -487,16 +490,19 @@ void cgit_print_http_headers(struct cgit_context *ctx) htmlf("ETag: \"%s\"\n", ctx->page.etag); html("\n"); if (method && !strcmp(method, "HEAD")) exit(0); } void cgit_print_docstart(struct cgit_context *ctx) { + if (ctx->cfg.embedded) + return; + char *host = cgit_hosturl(); html(cgit_doctype); html("<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n"); html("<head>\n"); html("<title>"); html_txt(ctx->page.title); html("</title>\n"); htmlf("<meta name='generator' content='cgit %s'/>\n", cgit_version); @@ -532,16 +538,19 @@ void cgit_print_docend() if (ctx.cfg.footer) html_include(ctx.cfg.footer); else { htmlf("<div class='footer'>generated by cgit %s at ", cgit_version); cgit_print_date(time(NULL), FMT_LONGDATE, ctx.cfg.local_time); html("</div>\n"); } + html("</div>"); + if (ctx.cfg.embedded) + return; html("</body>\n</html>\n"); } int print_branch_option(const char *refname, const unsigned char *sha1, int flags, void *cb_data) { char *name = (char *)refname; html_option(name, name, ctx.qry.head); @@ -619,23 +628,18 @@ void cgit_add_hidden_formfields(int incl_head, int incl_search, char *page) const char *fallback_cmd = "repolist"; char *hc(struct cgit_cmd *cmd, const char *page) { return (strcmp(cmd ? cmd->name : fallback_cmd, page) ? NULL : "active"); } -void cgit_print_pageheader(struct cgit_context *ctx) +static void print_header(struct cgit_context *ctx) { - struct cgit_cmd *cmd = cgit_get_cmd(ctx); - - if (!cmd && ctx->repo) - fallback_cmd = "summary"; - html("<table id='header'>\n"); html("<tr>\n"); html("<td class='logo' rowspan='2'><a href='"); if (ctx->cfg.logo_link) html_attr(ctx->cfg.logo_link); else html_attr(cgit_rooturl()); html("'><img src='"); @@ -666,16 +670,28 @@ void cgit_print_pageheader(struct cgit_context *ctx) 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) +{ + struct cgit_cmd *cmd = cgit_get_cmd(ctx); + + if (!cmd && ctx->repo) + fallback_cmd = "summary"; + + 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(cmd, "summary"), ctx->qry.head); cgit_refs_link("refs", NULL, hc(cmd, "refs"), ctx->qry.head, ctx->qry.sha1, NULL); cgit_log_link("log", NULL, hc(cmd, "log"), ctx->qry.head, |