Merge branch 'lh/embedded'

Conflicts:
	cgitrc.5.txt
	ui-shared.c
This commit is contained in:
Lars Hjemli 2009-07-25 12:29:22 +02:00
commit 286a905842
4 changed files with 37 additions and 6 deletions

4
cgit.c
View File

@ -51,6 +51,8 @@ void config_cb(const char *name, const char *value)
ctx.cfg.virtual_root = ""; ctx.cfg.virtual_root = "";
} else if (!strcmp(name, "nocache")) } else if (!strcmp(name, "nocache"))
ctx.cfg.nocache = atoi(value); ctx.cfg.nocache = atoi(value);
else if (!strcmp(name, "noheader"))
ctx.cfg.noheader = atoi(value);
else if (!strcmp(name, "snapshots")) else if (!strcmp(name, "snapshots"))
ctx.cfg.snapshots = cgit_parse_snapshots_mask(value); ctx.cfg.snapshots = cgit_parse_snapshots_mask(value);
else if (!strcmp(name, "enable-index-links")) else if (!strcmp(name, "enable-index-links"))
@ -73,6 +75,8 @@ void config_cb(const char *name, const char *value)
ctx.cfg.cache_static_ttl = atoi(value); ctx.cfg.cache_static_ttl = atoi(value);
else if (!strcmp(name, "cache-dynamic-ttl")) else if (!strcmp(name, "cache-dynamic-ttl"))
ctx.cfg.cache_dynamic_ttl = atoi(value); ctx.cfg.cache_dynamic_ttl = atoi(value);
else if (!strcmp(name, "embedded"))
ctx.cfg.embedded = atoi(value);
else if (!strcmp(name, "max-message-length")) else if (!strcmp(name, "max-message-length"))
ctx.cfg.max_msg_len = atoi(value); ctx.cfg.max_msg_len = atoi(value);
else if (!strcmp(name, "max-repodesc-length")) else if (!strcmp(name, "max-repodesc-length"))

2
cgit.h
View File

@ -156,6 +156,7 @@ struct cgit_config {
int cache_repo_ttl; int cache_repo_ttl;
int cache_root_ttl; int cache_root_ttl;
int cache_static_ttl; int cache_static_ttl;
int embedded;
int enable_index_links; int enable_index_links;
int enable_log_filecount; int enable_log_filecount;
int enable_log_linecount; int enable_log_linecount;
@ -167,6 +168,7 @@ struct cgit_config {
int max_repodesc_len; int max_repodesc_len;
int max_stats; int max_stats;
int nocache; int nocache;
int noheader;
int renamelimit; int renamelimit;
int snapshots; int snapshots;
int summary_branches; int summary_branches;

View File

@ -59,6 +59,11 @@ css::
Url which specifies the css document to include in all cgit pages. Url which specifies the css document to include in all cgit pages.
Default value: "/cgit.css". Default value: "/cgit.css".
embedded::
Flag which, when set to "1", will make cgit generate a html fragment
suitable for embedding in other html pages. Default value: none. See
also: "noheader".
enable-index-links:: enable-index-links::
Flag which, when set to "1", will make cgit generate extra links for Flag which, when set to "1", will make cgit generate extra links for
each repo in the repository index (specifically, to the "summary", each repo in the repository index (specifically, to the "summary",
@ -153,6 +158,10 @@ nocache::
deprecated, and will not be honored starting with cgit-1.0. Default deprecated, and will not be honored starting with cgit-1.0. Default
value: "0". value: "0".
noheader::
Flag which, when set to "1", will make cgit omit the standard header
on all pages. Default value: none. See also: "embedded".
renamelimit:: renamelimit::
Maximum number of files to consider when detecting renames. The value Maximum number of files to consider when detecting renames. The value
"-1" uses the compiletime value in git (for further info, look at "-1" uses the compiletime value in git (for further info, look at

View File

@ -469,6 +469,9 @@ void cgit_print_http_headers(struct cgit_context *ctx)
{ {
const char *method = getenv("REQUEST_METHOD"); const char *method = getenv("REQUEST_METHOD");
if (ctx->cfg.embedded)
return;
if (ctx->page.status) if (ctx->page.status)
htmlf("Status: %d %s\n", ctx->page.status, ctx->page.statusmsg); htmlf("Status: %d %s\n", ctx->page.status, ctx->page.statusmsg);
if (ctx->page.mimetype && ctx->page.charset) if (ctx->page.mimetype && ctx->page.charset)
@ -492,6 +495,9 @@ void cgit_print_http_headers(struct cgit_context *ctx)
void cgit_print_docstart(struct cgit_context *ctx) void cgit_print_docstart(struct cgit_context *ctx)
{ {
if (ctx->cfg.embedded)
return;
char *host = cgit_hosturl(); char *host = cgit_hosturl();
html(cgit_doctype); html(cgit_doctype);
html("<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n"); html("<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n");
@ -537,6 +543,9 @@ void cgit_print_docend()
cgit_print_date(time(NULL), FMT_LONGDATE, ctx.cfg.local_time); cgit_print_date(time(NULL), FMT_LONGDATE, ctx.cfg.local_time);
html("</div>\n"); html("</div>\n");
} }
html("</div>");
if (ctx.cfg.embedded)
return;
html("</body>\n</html>\n"); html("</body>\n</html>\n");
} }
@ -624,13 +633,8 @@ char *hc(struct cgit_cmd *cmd, const char *page)
return (strcmp(cmd ? cmd->name : fallback_cmd, page) ? NULL : "active"); 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("<table id='header'>\n");
html("<tr>\n"); html("<tr>\n");
html("<td class='logo' rowspan='2'><a href='"); html("<td class='logo' rowspan='2'><a href='");
@ -671,6 +675,18 @@ void cgit_print_pageheader(struct cgit_context *ctx)
html_include(ctx->cfg.index_info); html_include(ctx->cfg.index_info);
} }
html("</td></tr></table>\n"); 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"); html("<table class='tabs'><tr><td>\n");
if (ctx->repo) { if (ctx->repo) {