diff options
author | Lars Hjemli <hjemli@gmail.com> | 2007-10-30 18:47:38 (JST) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-10-30 21:38:34 (JST) |
commit | 0c8e184e9cbf4d3a1e907de9125f6d8210c169d6 (patch) | |
tree | 2e82baf582b7ba0b34f498e1e7494800070067f9 /ui-summary.c | |
parent | 10ac7ad1f30f914dc5ff36ba3651ef6dca11aaf7 (diff) | |
download | cgit-0c8e184e9cbf4d3a1e907de9125f6d8210c169d6.zip cgit-0c8e184e9cbf4d3a1e907de9125f6d8210c169d6.tar.gz |
Change the cgit layout
This modifies and hopefully improves the layout of all cgit pages:
* Remove the header from all pages and replace it with a sidebar;
most pages have sufficient width but many needs more height.
* Add a dropdown-box to switch between branches, using a one-liner
javascript to reload the current page in context of the selected branch.
* Include refs found below refs/archives in the sidebar, appearing as a
set of menuitems below a 'download' heading.
* Include the brand new cgit logo
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'ui-summary.c')
-rw-r--r-- | ui-summary.c | 65 |
1 files changed, 6 insertions, 59 deletions
diff --git a/ui-summary.c b/ui-summary.c index ba90510..39fe330 100644 --- a/ui-summary.c +++ b/ui-summary.c | |||
@@ -120,47 +120,6 @@ static int print_tag(struct refinfo *ref) | |||
120 | return 0; | 120 | return 0; |
121 | } | 121 | } |
122 | 122 | ||
123 | static int cgit_print_archive_cb(const char *refname, const unsigned char *sha1, | ||
124 | int flags, void *cb_data) | ||
125 | { | ||
126 | struct tag *tag; | ||
127 | struct taginfo *info; | ||
128 | struct object *obj; | ||
129 | char buf[256], *url; | ||
130 | unsigned char fileid[20]; | ||
131 | |||
132 | if (prefixcmp(refname, "refs/archives")) | ||
133 | return 0; | ||
134 | strncpy(buf, refname+14, sizeof(buf)); | ||
135 | obj = parse_object(sha1); | ||
136 | if (!obj) | ||
137 | return 1; | ||
138 | if (obj->type == OBJ_TAG) { | ||
139 | tag = lookup_tag(sha1); | ||
140 | if (!tag || parse_tag(tag) || !(info = cgit_parse_tag(tag))) | ||
141 | return 0; | ||
142 | hashcpy(fileid, tag->tagged->sha1); | ||
143 | } else if (obj->type != OBJ_BLOB) { | ||
144 | return 0; | ||
145 | } else { | ||
146 | hashcpy(fileid, sha1); | ||
147 | } | ||
148 | if (!header) { | ||
149 | html("<table id='downloads'>"); | ||
150 | html("<tr><th>Downloads</th></tr>"); | ||
151 | header = 1; | ||
152 | } | ||
153 | html("<tr><td>"); | ||
154 | url = cgit_pageurl(cgit_query_repo, "blob", | ||
155 | fmt("id=%s&path=%s", sha1_to_hex(fileid), | ||
156 | buf)); | ||
157 | html_link_open(url, NULL, NULL); | ||
158 | html_txt(buf); | ||
159 | html_link_close(); | ||
160 | html("</td></tr>"); | ||
161 | return 0; | ||
162 | } | ||
163 | |||
164 | static void print_refs_link(char *path) | 123 | static void print_refs_link(char *path) |
165 | { | 124 | { |
166 | html("<tr class='nohover'><td colspan='4'>"); | 125 | html("<tr class='nohover'><td colspan='4'>"); |
@@ -221,28 +180,16 @@ void cgit_print_tags(int maxcount) | |||
221 | print_refs_link("tags"); | 180 | print_refs_link("tags"); |
222 | } | 181 | } |
223 | 182 | ||
224 | static void cgit_print_archives() | ||
225 | { | ||
226 | header = 0; | ||
227 | for_each_ref(cgit_print_archive_cb, NULL); | ||
228 | if (header) | ||
229 | html("</table>"); | ||
230 | } | ||
231 | |||
232 | void cgit_print_summary() | 183 | void cgit_print_summary() |
233 | { | 184 | { |
234 | html("<div id='summary'>"); | 185 | if (cgit_repo->readme) { |
235 | cgit_print_archives(); | 186 | html("<div id='summary'>"); |
236 | html("<h2>"); | ||
237 | html_txt(cgit_repo->name); | ||
238 | html(" - "); | ||
239 | html_txt(cgit_repo->desc); | ||
240 | html("</h2>"); | ||
241 | if (cgit_repo->readme) | ||
242 | html_include(cgit_repo->readme); | 187 | html_include(cgit_repo->readme); |
243 | html("</div>"); | 188 | html("</div>"); |
189 | } | ||
244 | if (cgit_summary_log > 0) | 190 | if (cgit_summary_log > 0) |
245 | cgit_print_log(cgit_query_head, 0, cgit_summary_log, NULL, NULL, NULL, 0); | 191 | cgit_print_log(cgit_query_head, 0, cgit_summary_log, NULL, |
192 | NULL, NULL, 0); | ||
246 | html("<table class='list nowrap'>"); | 193 | html("<table class='list nowrap'>"); |
247 | if (cgit_summary_log > 0) | 194 | if (cgit_summary_log > 0) |
248 | html("<tr class='nohover'><td colspan='4'> </td></tr>"); | 195 | html("<tr class='nohover'><td colspan='4'> </td></tr>"); |