summaryrefslogtreecommitdiffstatshomepage
path: root/ui-shared.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui-shared.c')
-rw-r--r--ui-shared.c240
1 files changed, 141 insertions, 99 deletions
diff --git a/ui-shared.c b/ui-shared.c
index 75b97a1..6ed1bd4 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -11,8 +11,7 @@
#include "html.h"
const char cgit_doctype[] =
-"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n"
-" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
+ "<!DOCTYPE html>\n";
static char *http_date(time_t t)
{
@@ -198,7 +197,7 @@ static char *repolink(const char *title, const char *class, const char *page,
{
char *delim = "?";
- html("<a");
+ html(" <a");
if (title) {
html(" title='");
html_attr(title);
@@ -686,7 +685,7 @@ void cgit_print_docstart(struct cgit_context *ctx)
fmt("h=%s", ctx->qry.head)));
html("' type='application/atom+xml'/>\n");
}
- if (ctx->cfg.head_include)
+ if (ctx->cfg.head_include)
html_include(ctx->cfg.head_include);
html("</head>\n");
html("<body>\n");
@@ -803,147 +802,190 @@ 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);
+ html("<ul class='breadcrumb'>");
+ html("<li>");
+
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("/");
+ html(" <span class='divider'>/</span></li><li>");
cgit_self_link(p, NULL, NULL, ctx);
if (q < end)
*q = '/';
p = q + 1;
}
+ html("</li></ul>");
ctx->qry.path = old_path;
}
static void print_header(struct cgit_context *ctx)
{
- char *logo = NULL, *logo_link = NULL;
+ /* char *logo = NULL, *logo_link = NULL; */
- html("<table id='header'>\n");
- html("<tr>\n");
+ html("<div class='navbar'>\n");
+ html("<div class='navbar-inner'>\n");
- 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 (logo_link && *logo_link)
- html_attr(logo_link);
- else
- html_attr(cgit_rooturl());
- html("'><img src='");
- html_attr(logo);
- html("' alt='cgit logo'/></a></td>\n");
- }
+ html("<a class='brand' href='http://code.ryuslash.org/'>");
+ html_txt("ryuslash/code");
+ html("</a>");
- html("<td class='main'>");
- if (ctx->repo) {
- cgit_index_link("index", NULL, 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");
+ if (ctx->repo) {
+ html("<form method='get' action='' class='navbar-form pull-right'>\n");
cgit_add_hidden_formfields(0, 1, ctx->qry.page);
- html("<select name='h' onchange='this.form.submit();'>\n");
+ html("<select class='input-small' 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("<input class='btn' 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");
-}
+ html("</div>\n");
+ html("</div>\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,
- ctx->qry.showmsg);
- cgit_tree_link("tree", NULL, hc(ctx, "tree"), ctx->qry.head,
- ctx->qry.sha1, ctx->qry.vpath);
- cgit_commit_link("commit", NULL, hc(ctx, "commit"),
- ctx->qry.head, ctx->qry.sha1, ctx->qry.vpath, 0);
- cgit_diff_link("diff", NULL, hc(ctx, "diff"), ctx->qry.head,
- ctx->qry.sha1, ctx->qry.sha2, ctx->qry.vpath, 0);
- if (ctx->repo->max_stats)
- cgit_stats_link("stats", NULL, hc(ctx, "stats"),
- ctx->qry.head, ctx->qry.vpath);
- if (ctx->repo->readme)
- reporevlink("about", "about", NULL,
- hc(ctx, "about"), ctx->qry.head, NULL,
- NULL);
- html("</td><td class='form'>");
- html("<form class='right' method='get' action='");
+ if (ctx->repo) {
+ html("<form class='form-inline pull-right' method='get' action='");
if (ctx->cfg.virtual_root)
html_url_path(cgit_fileurl(ctx->qry.repo, "log",
- ctx->qry.vpath, NULL));
+ ctx->qry.vpath, NULL));
html("'>\n");
cgit_add_hidden_formfields(1, 0, "log");
- html("<select name='qt'>\n");
+ html("<select class='input-small' name='qt'>\n");
html_option("grep", "log msg", ctx->qry.grep);
html_option("author", "author", ctx->qry.grep);
html_option("committer", "committer", ctx->qry.grep);
html_option("range", "range", ctx->qry.grep);
html("</select>\n");
- html("<input class='txt' type='text' size='10' name='q' value='");
+ html("<input class='input-small' type='text' size='10' name='q' value='");
html_attr(ctx->qry.search);
html("'/>\n");
- html("<input type='submit' value='search'/>\n");
+ html("<input class='btn' type='submit' value='search'/>\n");
html("</form>\n");
- } else {
- site_link(NULL, "index", NULL, hc(ctx, "repolist"), NULL, NULL, 0);
- if (ctx->cfg.root_readme)
- site_link("about", "about", NULL, hc(ctx, "about"),
- NULL, NULL, 0);
- html("</td><td class='form'>");
- html("<form method='get' action='");
+ }
+ else {
+ html("<form class='form-inline pull-right' method='get' action='");
html_attr(cgit_rooturl());
html("'>\n");
- html("<input type='text' name='q' size='10' value='");
+ html("<input class='small-input' type='text' name='q' size='10' value='");
html_attr(ctx->qry.search);
html("'/>\n");
- html("<input type='submit' value='search'/>\n");
+ html("<input class='btn' type='submit' value='search'/>\n");
html("</form>");
+ }
+
+ html("<h1 class='page-header'>");
+ if (ctx->repo)
+ html_txt(ctx->repo->name);
+ else
+ html_txt(ctx->cfg.root_title);
+
+ html(" <small>");
+ if (ctx->repo)
+ html_txt(ctx->repo->desc);
+ else if (ctx->cfg.root_desc)
+ html_txt(ctx->cfg.root_desc);
+ html("</small>");
+ html("</h1>");
+
+ /* 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 (logo_link && *logo_link) */
+ /* html_attr(logo_link); */
+ /* else */
+ /* html_attr(cgit_rooturl()); */
+ /* html("'><img src='"); */
+ /* html_attr(logo); */
+ /* html("' alt='cgit logo'/></a></td>\n"); */
+ /* } */
+}
+
+void cgit_print_pageheader(struct cgit_context *ctx)
+{
+ html("<div id='cgit' class='container'>");
+ if (!ctx->cfg.noheader)
+ print_header(ctx);
+
+ html("<ul class='nav nav-tabs'>");
+ if (ctx->repo) {
+ htmlf("<li class='%s'>", hc(ctx, "summary"));
+ cgit_summary_link("summary", NULL, NULL, ctx->qry.head);
+ html("</li>");
+
+ htmlf("<li class='%s'>", hc(ctx, "refs"));
+ cgit_refs_link("refs", NULL, NULL, ctx->qry.head, ctx->qry.sha1,
+ NULL);
+ html("</li>");
+
+ htmlf("<li class='%s'>", hc(ctx, "log"));
+ cgit_log_link("log", NULL, NULL, ctx->qry.head, NULL,
+ ctx->qry.vpath, 0, NULL, NULL, ctx->qry.showmsg);
+ html("</li>");
+
+ htmlf("<li class='%s'>", hc(ctx, "tree"));
+ cgit_tree_link("tree", NULL, NULL, ctx->qry.head, ctx->qry.sha1,
+ ctx->qry.vpath);
+ html("</li>");
+
+ htmlf("<li class='%s'>", hc(ctx, "commit"));
+ cgit_commit_link("commit", NULL, NULL, ctx->qry.head,
+ ctx->qry.sha1, ctx->qry.vpath, 0);
+ html("</li>");
+
+ htmlf("<li class='%s'>", hc(ctx, "diff"));
+ cgit_diff_link("diff", NULL, NULL, ctx->qry.head, ctx->qry.sha1,
+ ctx->qry.sha2, ctx->qry.vpath, 0);
+ html("</li>");
+
+ if (ctx->repo->max_stats) {
+ htmlf("<li class='%s'>", hc(ctx, "stats"));
+ cgit_stats_link("stats", NULL, NULL, ctx->qry.head,
+ ctx->qry.vpath);
+ html("</li>");
+ }
+
+ if (ctx->repo->readme) {
+ htmlf("<li class='%s'>", hc(ctx, "about"));
+ reporevlink("about", "about", NULL, NULL, ctx->qry.head,
+ NULL, NULL);
+ html("</li>");
+ }
+ }
+ else {
+ htmlf("<li class='%s'>", hc(ctx, "repolist"));
+ site_link(NULL, "index", NULL, NULL, NULL, NULL, 0);
+ html("</li>");
+
+ if (ctx->cfg.root_readme) {
+ htmlf("<li class='%s'>", hc(ctx, "about"));
+ site_link("about", "about", NULL, NULL, NULL, NULL, 0);
+ html("</li>");
+ }
+ }
+ html("</ul>");
+
+
+ html("<table class='tabs'><tr><td>\n");
+ if (ctx->repo) {
+ html("</td><td class='form'>");
+ } else {
+ html("</td><td class='form'>");
}
html("</td></tr></table>\n");
- if (ctx->qry.vpath) {
- html("<div class='path'>");
- html("path: ");
+ if (ctx->qry.vpath)
cgit_print_path_crumbs(ctx, ctx->qry.vpath);
- html("</div>");
- }
+
html("<div class='content'>");
}