-rw-r--r-- | cgit.css | 8 | ||||
-rw-r--r-- | ui-shared.c | 6 |
2 files changed, 14 insertions, 0 deletions
@@ -57,96 +57,104 @@ table#header td.form select { | |||
57 | font-size: 90%; | 57 | font-size: 90%; |
58 | } | 58 | } |
59 | 59 | ||
60 | table#header td.sub { | 60 | table#header td.sub { |
61 | color: #777; | 61 | color: #777; |
62 | border-top: solid 1px #ccc; | 62 | border-top: solid 1px #ccc; |
63 | padding-left: 10px; | 63 | padding-left: 10px; |
64 | } | 64 | } |
65 | 65 | ||
66 | table.tabs { | 66 | table.tabs { |
67 | /* border-bottom: solid 2px #ccc; */ | 67 | /* border-bottom: solid 2px #ccc; */ |
68 | border-collapse: collapse; | 68 | border-collapse: collapse; |
69 | margin-top: 2em; | 69 | margin-top: 2em; |
70 | margin-bottom: 0px; | 70 | margin-bottom: 0px; |
71 | width: 100%; | 71 | width: 100%; |
72 | } | 72 | } |
73 | 73 | ||
74 | table.tabs td { | 74 | table.tabs td { |
75 | padding: 0px 1em; | 75 | padding: 0px 1em; |
76 | vertical-align: bottom; | 76 | vertical-align: bottom; |
77 | } | 77 | } |
78 | 78 | ||
79 | table.tabs td a { | 79 | table.tabs td a { |
80 | padding: 2px 0.75em; | 80 | padding: 2px 0.75em; |
81 | color: #777; | 81 | color: #777; |
82 | font-size: 110%; | 82 | font-size: 110%; |
83 | } | 83 | } |
84 | 84 | ||
85 | table.tabs td a.active { | 85 | table.tabs td a.active { |
86 | color: #000; | 86 | color: #000; |
87 | background-color: #ccc; | 87 | background-color: #ccc; |
88 | } | 88 | } |
89 | 89 | ||
90 | table.tabs td.form { | 90 | table.tabs td.form { |
91 | text-align: right; | 91 | text-align: right; |
92 | } | 92 | } |
93 | 93 | ||
94 | table.tabs td.form form { | 94 | table.tabs td.form form { |
95 | padding-bottom: 2px; | 95 | padding-bottom: 2px; |
96 | font-size: 90%; | 96 | font-size: 90%; |
97 | white-space: nowrap; | 97 | white-space: nowrap; |
98 | } | 98 | } |
99 | 99 | ||
100 | table.tabs td.form input, | 100 | table.tabs td.form input, |
101 | table.tabs td.form select { | 101 | table.tabs td.form select { |
102 | font-size: 90%; | 102 | font-size: 90%; |
103 | } | 103 | } |
104 | 104 | ||
105 | div.path { | ||
106 | margin: 0px; | ||
107 | padding: 5px 2em 2px 2em; | ||
108 | color: #000; | ||
109 | background-color: #ccc; | ||
110 | font-weight: bold; | ||
111 | } | ||
112 | |||
105 | div.content { | 113 | div.content { |
106 | margin: 0px; | 114 | margin: 0px; |
107 | padding: 2em; | 115 | padding: 2em; |
108 | border-top: solid 3px #ccc; | 116 | border-top: solid 3px #ccc; |
109 | border-bottom: solid 3px #ccc; | 117 | border-bottom: solid 3px #ccc; |
110 | } | 118 | } |
111 | 119 | ||
112 | 120 | ||
113 | table.list { | 121 | table.list { |
114 | width: 100%; | 122 | width: 100%; |
115 | border: none; | 123 | border: none; |
116 | border-collapse: collapse; | 124 | border-collapse: collapse; |
117 | } | 125 | } |
118 | 126 | ||
119 | table.list tr { | 127 | table.list tr { |
120 | background: white; | 128 | background: white; |
121 | } | 129 | } |
122 | 130 | ||
123 | table.list tr.logheader { | 131 | table.list tr.logheader { |
124 | background: #eee; | 132 | background: #eee; |
125 | } | 133 | } |
126 | 134 | ||
127 | table.list tr:hover { | 135 | table.list tr:hover { |
128 | background: #eee; | 136 | background: #eee; |
129 | } | 137 | } |
130 | 138 | ||
131 | table.list tr.nohover:hover { | 139 | table.list tr.nohover:hover { |
132 | background: white; | 140 | background: white; |
133 | } | 141 | } |
134 | 142 | ||
135 | table.list th { | 143 | table.list th { |
136 | font-weight: bold; | 144 | font-weight: bold; |
137 | /* color: #888; | 145 | /* color: #888; |
138 | border-top: dashed 1px #888; | 146 | border-top: dashed 1px #888; |
139 | border-bottom: dashed 1px #888; | 147 | border-bottom: dashed 1px #888; |
140 | */ | 148 | */ |
141 | padding: 0.1em 0.5em 0.05em 0.5em; | 149 | padding: 0.1em 0.5em 0.05em 0.5em; |
142 | vertical-align: baseline; | 150 | vertical-align: baseline; |
143 | } | 151 | } |
144 | 152 | ||
145 | table.list td { | 153 | table.list td { |
146 | border: none; | 154 | border: none; |
147 | padding: 0.1em 0.5em 0.1em 0.5em; | 155 | padding: 0.1em 0.5em 0.1em 0.5em; |
148 | } | 156 | } |
149 | 157 | ||
150 | table.list td.logsubject { | 158 | table.list td.logsubject { |
151 | font-family: monospace; | 159 | font-family: monospace; |
152 | font-weight: bold; | 160 | font-weight: bold; |
diff --git a/ui-shared.c b/ui-shared.c index 3d5030b..bc14e70 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -712,86 +712,92 @@ void cgit_print_pageheader(struct cgit_context *ctx) | |||
712 | cgit_log_link("log", NULL, hc(ctx, "log"), ctx->qry.head, | 712 | cgit_log_link("log", NULL, hc(ctx, "log"), ctx->qry.head, |
713 | NULL, NULL, 0, NULL, NULL, ctx->qry.showmsg); | 713 | NULL, NULL, 0, NULL, NULL, ctx->qry.showmsg); |
714 | cgit_tree_link("tree", NULL, hc(ctx, "tree"), ctx->qry.head, | 714 | cgit_tree_link("tree", NULL, hc(ctx, "tree"), ctx->qry.head, |
715 | ctx->qry.sha1, NULL); | 715 | ctx->qry.sha1, NULL); |
716 | cgit_commit_link("commit", NULL, hc(ctx, "commit"), | 716 | cgit_commit_link("commit", NULL, hc(ctx, "commit"), |
717 | ctx->qry.head, ctx->qry.sha1, 0); | 717 | ctx->qry.head, ctx->qry.sha1, 0); |
718 | cgit_diff_link("diff", NULL, hc(ctx, "diff"), ctx->qry.head, | 718 | cgit_diff_link("diff", NULL, hc(ctx, "diff"), ctx->qry.head, |
719 | ctx->qry.sha1, ctx->qry.sha2, NULL, 0); | 719 | ctx->qry.sha1, ctx->qry.sha2, NULL, 0); |
720 | if (ctx->repo->max_stats) | 720 | if (ctx->repo->max_stats) |
721 | cgit_stats_link("stats", NULL, hc(ctx, "stats"), | 721 | cgit_stats_link("stats", NULL, hc(ctx, "stats"), |
722 | ctx->qry.head, NULL); | 722 | ctx->qry.head, NULL); |
723 | if (ctx->repo->readme) | 723 | if (ctx->repo->readme) |
724 | reporevlink("about", "about", NULL, | 724 | reporevlink("about", "about", NULL, |
725 | hc(ctx, "about"), ctx->qry.head, NULL, | 725 | hc(ctx, "about"), ctx->qry.head, NULL, |
726 | NULL); | 726 | NULL); |
727 | html("</td><td class='form'>"); | 727 | html("</td><td class='form'>"); |
728 | html("<form class='right' method='get' action='"); | 728 | html("<form class='right' method='get' action='"); |
729 | if (ctx->cfg.virtual_root) | 729 | if (ctx->cfg.virtual_root) |
730 | html_url_path(cgit_fileurl(ctx->qry.repo, "log", | 730 | html_url_path(cgit_fileurl(ctx->qry.repo, "log", |
731 | ctx->qry.vpath, NULL)); | 731 | ctx->qry.vpath, NULL)); |
732 | html("'>\n"); | 732 | html("'>\n"); |
733 | cgit_add_hidden_formfields(1, 0, "log"); | 733 | cgit_add_hidden_formfields(1, 0, "log"); |
734 | html("<select name='qt'>\n"); | 734 | html("<select name='qt'>\n"); |
735 | html_option("grep", "log msg", ctx->qry.grep); | 735 | html_option("grep", "log msg", ctx->qry.grep); |
736 | html_option("author", "author", ctx->qry.grep); | 736 | html_option("author", "author", ctx->qry.grep); |
737 | html_option("committer", "committer", ctx->qry.grep); | 737 | html_option("committer", "committer", ctx->qry.grep); |
738 | html("</select>\n"); | 738 | html("</select>\n"); |
739 | html("<input class='txt' type='text' size='10' name='q' value='"); | 739 | html("<input class='txt' type='text' size='10' name='q' value='"); |
740 | html_attr(ctx->qry.search); | 740 | html_attr(ctx->qry.search); |
741 | html("'/>\n"); | 741 | html("'/>\n"); |
742 | html("<input type='submit' value='search'/>\n"); | 742 | html("<input type='submit' value='search'/>\n"); |
743 | html("</form>\n"); | 743 | html("</form>\n"); |
744 | } else { | 744 | } else { |
745 | site_link(NULL, "index", NULL, hc(ctx, "repolist"), NULL, 0); | 745 | site_link(NULL, "index", NULL, hc(ctx, "repolist"), NULL, 0); |
746 | if (ctx->cfg.root_readme) | 746 | if (ctx->cfg.root_readme) |
747 | site_link("about", "about", NULL, hc(ctx, "about"), | 747 | site_link("about", "about", NULL, hc(ctx, "about"), |
748 | NULL, 0); | 748 | NULL, 0); |
749 | html("</td><td class='form'>"); | 749 | html("</td><td class='form'>"); |
750 | html("<form method='get' action='"); | 750 | html("<form method='get' action='"); |
751 | html_attr(cgit_rooturl()); | 751 | html_attr(cgit_rooturl()); |
752 | html("'>\n"); | 752 | html("'>\n"); |
753 | html("<input type='text' name='q' size='10' value='"); | 753 | html("<input type='text' name='q' size='10' value='"); |
754 | html_attr(ctx->qry.search); | 754 | html_attr(ctx->qry.search); |
755 | html("'/>\n"); | 755 | html("'/>\n"); |
756 | html("<input type='submit' value='search'/>\n"); | 756 | html("<input type='submit' value='search'/>\n"); |
757 | html("</form>"); | 757 | html("</form>"); |
758 | } | 758 | } |
759 | html("</td></tr></table>\n"); | 759 | html("</td></tr></table>\n"); |
760 | if (ctx->qry.vpath) { | ||
761 | html("<div class='path'>"); | ||
762 | html("path: "); | ||
763 | html_txt(ctx->qry.vpath); | ||
764 | html("</div>"); | ||
765 | } | ||
760 | html("<div class='content'>"); | 766 | html("<div class='content'>"); |
761 | } | 767 | } |
762 | 768 | ||
763 | void cgit_print_filemode(unsigned short mode) | 769 | void cgit_print_filemode(unsigned short mode) |
764 | { | 770 | { |
765 | if (S_ISDIR(mode)) | 771 | if (S_ISDIR(mode)) |
766 | html("d"); | 772 | html("d"); |
767 | else if (S_ISLNK(mode)) | 773 | else if (S_ISLNK(mode)) |
768 | html("l"); | 774 | html("l"); |
769 | else if (S_ISGITLINK(mode)) | 775 | else if (S_ISGITLINK(mode)) |
770 | html("m"); | 776 | html("m"); |
771 | else | 777 | else |
772 | html("-"); | 778 | html("-"); |
773 | html_fileperm(mode >> 6); | 779 | html_fileperm(mode >> 6); |
774 | html_fileperm(mode >> 3); | 780 | html_fileperm(mode >> 3); |
775 | html_fileperm(mode); | 781 | html_fileperm(mode); |
776 | } | 782 | } |
777 | 783 | ||
778 | void cgit_print_snapshot_links(const char *repo, const char *head, | 784 | void cgit_print_snapshot_links(const char *repo, const char *head, |
779 | const char *hex, int snapshots) | 785 | const char *hex, int snapshots) |
780 | { | 786 | { |
781 | const struct cgit_snapshot_format* f; | 787 | const struct cgit_snapshot_format* f; |
782 | char *prefix; | 788 | char *prefix; |
783 | char *filename; | 789 | char *filename; |
784 | unsigned char sha1[20]; | 790 | unsigned char sha1[20]; |
785 | 791 | ||
786 | if (get_sha1(fmt("refs/tags/%s", hex), sha1) == 0 && | 792 | if (get_sha1(fmt("refs/tags/%s", hex), sha1) == 0 && |
787 | (hex[0] == 'v' || hex[0] == 'V') && isdigit(hex[1])) | 793 | (hex[0] == 'v' || hex[0] == 'V') && isdigit(hex[1])) |
788 | hex++; | 794 | hex++; |
789 | prefix = xstrdup(fmt("%s-%s", cgit_repobasename(repo), hex)); | 795 | prefix = xstrdup(fmt("%s-%s", cgit_repobasename(repo), hex)); |
790 | for (f = cgit_snapshot_formats; f->suffix; f++) { | 796 | for (f = cgit_snapshot_formats; f->suffix; f++) { |
791 | if (!(snapshots & f->bit)) | 797 | if (!(snapshots & f->bit)) |
792 | continue; | 798 | continue; |
793 | filename = fmt("%s%s", prefix, f->suffix); | 799 | filename = fmt("%s%s", prefix, f->suffix); |
794 | cgit_snapshot_link(filename, NULL, NULL, NULL, NULL, filename); | 800 | cgit_snapshot_link(filename, NULL, NULL, NULL, NULL, filename); |
795 | html("<br/>"); | 801 | html("<br/>"); |
796 | } | 802 | } |
797 | } | 803 | } |