diff options
| author | Lars Hjemli <hjemli@gmail.com> | 2008-04-13 12:48:44 +0200 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2008-04-13 12:48:44 +0200 | 
| commit | 76ba6287bfb533baca7285b107b5d975581d449d (patch) | |
| tree | 22445a77f5b87280ec980f9b4da5a511f1f27faf /ui-repolist.c | |
| parent | Use GIT-1.5.5 (diff) | |
| parent | Make repository search case insensitive (diff) | |
| download | cgit-76ba6287bfb533baca7285b107b5d975581d449d.tar.gz cgit-76ba6287bfb533baca7285b107b5d975581d449d.tar.bz2 cgit-76ba6287bfb533baca7285b107b5d975581d449d.zip | |
Merge branch 'lh/layout'
* lh/layout:
  Make repository search case insensitive
  Remove 'patch' link from tab, add to commit view
  Implement minimal freetext search in the repolist
  More layout fixes
  Minor fixup in tree-view css
  Reintroduce the branch switcher
  Add fixed link to index page from repo header
  Include diff in commit view
  Replace sidebar/logo
Diffstat (limited to 'ui-repolist.c')
| -rw-r--r-- | ui-repolist.c | 51 | 
1 files changed, 38 insertions, 13 deletions
| diff --git a/ui-repolist.c b/ui-repolist.c index eeeaf3d..7a7e95a 100644 --- a/ui-repolist.c +++ b/ui-repolist.c @@ -44,20 +44,23 @@ static void print_modtime(struct cgit_repo *repo)  	cgit_print_age(s.st_mtime, -1, NULL);  } -void cgit_print_repolist() +int is_match(struct cgit_repo *repo)  { -	int i, columns = 4; -	char *last_group = NULL; - -	if (ctx.cfg.enable_index_links) -		columns++; - -	ctx.page.title = ctx.cfg.root_title; -	cgit_print_http_headers(&ctx); -	cgit_print_docstart(&ctx); -	cgit_print_pageheader(&ctx); +	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; +} -	html("<table summary='repository list' class='list nowrap'>"); +void print_header(int columns) +{  	if (ctx.cfg.index_header) {  		htmlf("<tr class='nohover'><td colspan='%d' class='include-block'>",  		      columns); @@ -70,11 +73,31 @@ void cgit_print_repolist()  	     "<th class='left'>Owner</th>"  	     "<th class='left'>Idle</th>");  	if (ctx.cfg.enable_index_links) -		html("<th>Links</th>"); +		html("<th class='left'>Links</th>");  	html("</tr>\n"); +} +void cgit_print_repolist() +{ +	int i, columns = 4, hits = 0, header = 0; +	char *last_group = NULL; + +	if (ctx.cfg.enable_index_links) +		columns++; + +	ctx.page.title = ctx.cfg.root_title; +	cgit_print_http_headers(&ctx); +	cgit_print_docstart(&ctx); +	cgit_print_pageheader(&ctx); + +	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 && @@ -110,5 +133,7 @@ void cgit_print_repolist()  		html("</tr>\n");  	}  	html("</table>"); +	if (!hits) +		cgit_print_error("No repositories found");  	cgit_print_docend();  } | 
