cgit_print_age(s.st_mtime, -1, NULL);
}
+int is_match(struct cgit_repo *repo)
+{
+ if (!ctx.qry.search)
+ return 1;
+ if (repo->url && strcasestr(repo->url, ctx.qry.search))
+ return 1;
+ if (repo->name && strcasestr(repo->name, ctx.qry.search))
+ return 1;
+ if (repo->desc && strcasestr(repo->desc, ctx.qry.search))
+ return 1;
+ if (repo->owner && strcasestr(repo->owner, ctx.qry.search))
+ return 1;
+ return 0;
+}
+
+void print_header(int columns)
+{
+ html("<tr class='nohover'>"
+ "<th class='left'>Name</th>"
+ "<th class='left'>Description</th>"
+ "<th class='left'>Owner</th>"
+ "<th class='left'>Idle</th>");
+ if (ctx.cfg.enable_index_links)
+ html("<th class='left'>Links</th>");
+ html("</tr>\n");
+}
+
void cgit_print_repolist()
{
- int i, columns = 4;
+ int i, columns = 4, hits = 0, header = 0;
char *last_group = NULL;
if (ctx.cfg.enable_index_links)
cgit_print_docstart(&ctx);
cgit_print_pageheader(&ctx);
- html("<table summary='repository list' class='list nowrap'>");
- if (ctx.cfg.index_header) {
- htmlf("<tr class='nohover'><td colspan='%d' class='include-block'>",
- columns);
+ if (ctx.cfg.index_header)
html_include(ctx.cfg.index_header);
- html("</td></tr>");
- }
- html("<tr class='nohover'>"
- "<th class='left'>Name</th>"
- "<th class='left'>Description</th>"
- "<th class='left'>Owner</th>"
- "<th class='left'>Idle</th>");
- if (ctx.cfg.enable_index_links)
- html("<th class='left'>Links</th>");
- html("</tr>\n");
+ html("<table summary='repository list' class='list nowrap'>");
for (i=0; i<cgit_repolist.count; i++) {
ctx.repo = &cgit_repolist.repos[i];
+ if (!is_match(ctx.repo))
+ continue;
+ if (!header++)
+ print_header(columns);
+ hits++;
if ((last_group == NULL && ctx.repo->group != NULL) ||
(last_group != NULL && ctx.repo->group == NULL) ||
(last_group != NULL && ctx.repo->group != NULL &&
html_txt(ctx.repo->name);
html_link_close();
html("</td><td>");
+ html_link_open(cgit_repourl(ctx.repo->url), NULL, NULL);
html_ntxt(ctx.cfg.max_repodesc_len, ctx.repo->desc);
+ html_link_close();
html("</td><td>");
html_txt(ctx.repo->owner);
html("</td><td>");
html("</tr>\n");
}
html("</table>");
+ if (!hits)
+ cgit_print_error("No repositories found");
cgit_print_docend();
}
+
+void cgit_print_site_readme()
+{
+ if (ctx.cfg.root_readme)
+ html_include(ctx.cfg.root_readme);
+}