Merge branch 'lh/embedded'

Conflicts:
	cgitrc.5.txt
	ui-shared.c
Αυτή η υποβολή περιλαμβάνεται σε:
Lars Hjemli 2009-07-25 12:29:22 +02:00
γονέας 542f6a4330 7a8b3b4104
υποβολή 286a905842
4 αρχεία άλλαξαν με 37 προσθήκες και 6 διαγραφές

4
cgit.c

@ -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

@ -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;

@ -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

@ -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) {