-rw-r--r-- | ui-shared.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/ui-shared.c b/ui-shared.c index ae29615..7efae7a 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -727,75 +727,85 @@ void cgit_add_hidden_formfields(int incl_head, int incl_search, | |||
727 | html_hidden("q", ctx.qry.search); | 727 | html_hidden("q", ctx.qry.search); |
728 | } | 728 | } |
729 | } | 729 | } |
730 | 730 | ||
731 | static const char *hc(struct cgit_context *ctx, const char *page) | 731 | static const char *hc(struct cgit_context *ctx, const char *page) |
732 | { | 732 | { |
733 | return strcmp(ctx->qry.page, page) ? NULL : "active"; | 733 | return strcmp(ctx->qry.page, page) ? NULL : "active"; |
734 | } | 734 | } |
735 | 735 | ||
736 | static void cgit_print_path_crumbs(struct cgit_context *ctx, char *path) | 736 | static void cgit_print_path_crumbs(struct cgit_context *ctx, char *path) |
737 | { | 737 | { |
738 | char *old_path = ctx->qry.path; | 738 | char *old_path = ctx->qry.path; |
739 | char *p = path, *q, *end = path + strlen(path); | 739 | char *p = path, *q, *end = path + strlen(path); |
740 | 740 | ||
741 | ctx->qry.path = NULL; | 741 | ctx->qry.path = NULL; |
742 | cgit_self_link("root", NULL, NULL, ctx); | 742 | cgit_self_link("root", NULL, NULL, ctx); |
743 | ctx->qry.path = p = path; | 743 | ctx->qry.path = p = path; |
744 | while (p < end) { | 744 | while (p < end) { |
745 | if (!(q = strchr(p, '/'))) | 745 | if (!(q = strchr(p, '/'))) |
746 | q = end; | 746 | q = end; |
747 | *q = '\0'; | 747 | *q = '\0'; |
748 | html_txt("/"); | 748 | html_txt("/"); |
749 | cgit_self_link(p, NULL, NULL, ctx); | 749 | cgit_self_link(p, NULL, NULL, ctx); |
750 | if (q < end) | 750 | if (q < end) |
751 | *q = '/'; | 751 | *q = '/'; |
752 | p = q + 1; | 752 | p = q + 1; |
753 | } | 753 | } |
754 | ctx->qry.path = old_path; | 754 | ctx->qry.path = old_path; |
755 | } | 755 | } |
756 | 756 | ||
757 | static void print_header(struct cgit_context *ctx) | 757 | static void print_header(struct cgit_context *ctx) |
758 | { | 758 | { |
759 | char *logo = NULL, *logo_link = NULL; | ||
760 | |||
759 | html("<table id='header'>\n"); | 761 | html("<table id='header'>\n"); |
760 | html("<tr>\n"); | 762 | html("<tr>\n"); |
761 | 763 | ||
762 | if (ctx->cfg.logo && ctx->cfg.logo[0] != 0) { | 764 | if (ctx->repo && ctx->repo->logo && *ctx->repo->logo) |
765 | logo = ctx->repo->logo; | ||
766 | else | ||
767 | logo = ctx->cfg.logo; | ||
768 | if (ctx->repo && ctx->repo->logo_link && *ctx->repo->logo_link) | ||
769 | logo_link = ctx->repo->logo_link; | ||
770 | else | ||
771 | logo_link = ctx->cfg.logo_link; | ||
772 | if (logo && *logo) { | ||
763 | html("<td class='logo' rowspan='2'><a href='"); | 773 | html("<td class='logo' rowspan='2'><a href='"); |
764 | if (ctx->cfg.logo_link) | 774 | if (logo_link && *logo_link) |
765 | html_attr(ctx->cfg.logo_link); | 775 | html_attr(logo_link); |
766 | else | 776 | else |
767 | html_attr(cgit_rooturl()); | 777 | html_attr(cgit_rooturl()); |
768 | html("'><img src='"); | 778 | html("'><img src='"); |
769 | html_attr(ctx->cfg.logo); | 779 | html_attr(logo); |
770 | html("' alt='cgit logo'/></a></td>\n"); | 780 | html("' alt='cgit logo'/></a></td>\n"); |
771 | } | 781 | } |
772 | 782 | ||
773 | html("<td class='main'>"); | 783 | html("<td class='main'>"); |
774 | if (ctx->repo) { | 784 | if (ctx->repo) { |
775 | cgit_index_link("index", NULL, NULL, NULL, 0); | 785 | cgit_index_link("index", NULL, NULL, NULL, 0); |
776 | html(" : "); | 786 | html(" : "); |
777 | cgit_summary_link(ctx->repo->name, ctx->repo->name, NULL, NULL); | 787 | cgit_summary_link(ctx->repo->name, ctx->repo->name, NULL, NULL); |
778 | html("</td><td class='form'>"); | 788 | html("</td><td class='form'>"); |
779 | html("<form method='get' action=''>\n"); | 789 | html("<form method='get' action=''>\n"); |
780 | cgit_add_hidden_formfields(0, 1, ctx->qry.page); | 790 | cgit_add_hidden_formfields(0, 1, ctx->qry.page); |
781 | html("<select name='h' onchange='this.form.submit();'>\n"); | 791 | html("<select name='h' onchange='this.form.submit();'>\n"); |
782 | for_each_branch_ref(print_branch_option, ctx->qry.head); | 792 | for_each_branch_ref(print_branch_option, ctx->qry.head); |
783 | html("</select> "); | 793 | html("</select> "); |
784 | html("<input type='submit' name='' value='switch'/>"); | 794 | html("<input type='submit' name='' value='switch'/>"); |
785 | html("</form>"); | 795 | html("</form>"); |
786 | } else | 796 | } else |
787 | html_txt(ctx->cfg.root_title); | 797 | html_txt(ctx->cfg.root_title); |
788 | html("</td></tr>\n"); | 798 | html("</td></tr>\n"); |
789 | 799 | ||
790 | html("<tr><td class='sub'>"); | 800 | html("<tr><td class='sub'>"); |
791 | if (ctx->repo) { | 801 | if (ctx->repo) { |
792 | html_txt(ctx->repo->desc); | 802 | html_txt(ctx->repo->desc); |
793 | html("</td><td class='sub right'>"); | 803 | html("</td><td class='sub right'>"); |
794 | html_txt(ctx->repo->owner); | 804 | html_txt(ctx->repo->owner); |
795 | } else { | 805 | } else { |
796 | if (ctx->cfg.root_desc) | 806 | if (ctx->cfg.root_desc) |
797 | html_txt(ctx->cfg.root_desc); | 807 | html_txt(ctx->cfg.root_desc); |
798 | else if (ctx->cfg.index_info) | 808 | else if (ctx->cfg.index_info) |
799 | html_include(ctx->cfg.index_info); | 809 | html_include(ctx->cfg.index_info); |
800 | } | 810 | } |
801 | html("</td></tr></table>\n"); | 811 | html("</td></tr></table>\n"); |