diff options
Diffstat (limited to 'ui-shared.c')
-rw-r--r-- | ui-shared.c | 240 |
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'>"); } |