Teach log search about --grep, --author and --committer
This makes the log searching more explicit, using a dropdown box to specify the commit field to match against. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
这个提交包含在:
		
							
								
								
									
										2
									
								
								cgit.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								cgit.c
									
									
									
									
									
								
							| @@ -94,7 +94,7 @@ static void cgit_print_repo_page(struct cacheitem *item) | ||||
| 	switch(cgit_cmd) { | ||||
| 	case CMD_LOG: | ||||
| 		cgit_print_log(cgit_query_sha1, cgit_query_ofs, | ||||
| 			       cgit_max_commit_count, cgit_query_search, | ||||
| 			       cgit_max_commit_count, cgit_query_grep, cgit_query_search, | ||||
| 			       cgit_query_path, 1); | ||||
| 		break; | ||||
| 	case CMD_TREE: | ||||
|   | ||||
							
								
								
									
										21
									
								
								cgit.css
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								cgit.css
									
									
									
									
									
								
							| @@ -144,15 +144,32 @@ td#search form { | ||||
| 	padding: 0px; | ||||
| } | ||||
|  | ||||
| td#search input { | ||||
| td#search select { | ||||
| 	font-size: 9pt; | ||||
| 	padding: 0px; | ||||
| 	width: 10em; | ||||
| 	border: solid 1px #333; | ||||
| 	color: #333; | ||||
| 	background-color: #fff; | ||||
| } | ||||
|  | ||||
| td#search input { | ||||
| 	font-size: 9pt; | ||||
| 	padding: 0px; | ||||
| } | ||||
|  | ||||
| td#search input.txt { | ||||
| 	width: 8em; | ||||
| 	border: solid 1px #333; | ||||
| 	color: #333; | ||||
| 	background-color: #fff; | ||||
| } | ||||
|  | ||||
| td#search input.btn { | ||||
| 	border: solid 1px #333; | ||||
| 	color: #333; | ||||
| 	background-color: #ccc; | ||||
| } | ||||
|  | ||||
| div#summary { | ||||
| 	vertical-align: top; | ||||
| 	margin-bottom: 1em; | ||||
|   | ||||
							
								
								
									
										4
									
								
								cgit.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								cgit.h
									
									
									
									
									
								
							| @@ -158,6 +158,7 @@ extern char *cgit_querystring; | ||||
| extern char *cgit_query_repo; | ||||
| extern char *cgit_query_page; | ||||
| extern char *cgit_query_search; | ||||
| extern char *cgit_query_grep; | ||||
| extern char *cgit_query_head; | ||||
| extern char *cgit_query_sha1; | ||||
| extern char *cgit_query_sha2; | ||||
| @@ -260,7 +261,8 @@ extern void cgit_print_tags(int maxcount); | ||||
|  | ||||
| extern void cgit_print_repolist(struct cacheitem *item); | ||||
| extern void cgit_print_summary(); | ||||
| extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path, int pager); | ||||
| extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, | ||||
| 			   char *pattern, char *path, int pager); | ||||
| extern void cgit_print_blob(struct cacheitem *item, const char *hex, char *path); | ||||
| extern void cgit_print_tree(const char *rev, char *path); | ||||
| extern void cgit_print_commit(char *hex); | ||||
|   | ||||
							
								
								
									
										3
									
								
								shared.c
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								shared.c
									
									
									
									
									
								
							| @@ -54,6 +54,7 @@ char *cgit_query_repo   = NULL; | ||||
| char *cgit_query_page   = NULL; | ||||
| char *cgit_query_head   = NULL; | ||||
| char *cgit_query_search = NULL; | ||||
| char *cgit_query_grep   = NULL; | ||||
| char *cgit_query_sha1   = NULL; | ||||
| char *cgit_query_sha2   = NULL; | ||||
| char *cgit_query_path   = NULL; | ||||
| @@ -232,6 +233,8 @@ void cgit_querystring_cb(const char *name, const char *value) | ||||
| 		cgit_cmd = cgit_get_cmd_index(value); | ||||
| 	} else if (!strcmp(name, "url")) { | ||||
| 		cgit_parse_url(value); | ||||
| 	} else if (!strcmp(name, "qt")) { | ||||
| 		cgit_query_grep = xstrdup(value); | ||||
| 	} else if (!strcmp(name, "q")) { | ||||
| 		cgit_query_search = xstrdup(value); | ||||
| 	} else if (!strcmp(name, "h")) { | ||||
|   | ||||
							
								
								
									
										9
									
								
								ui-log.c
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								ui-log.c
									
									
									
									
									
								
							| @@ -51,7 +51,7 @@ void print_commit(struct commit *commit) | ||||
| } | ||||
|  | ||||
|  | ||||
| void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path, int pager) | ||||
| void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern, char *path, int pager) | ||||
| { | ||||
| 	struct rev_info rev; | ||||
| 	struct commit *commit; | ||||
| @@ -62,8 +62,11 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path, i | ||||
| 	if (!tip) | ||||
| 		argv[1] = cgit_query_head; | ||||
|  | ||||
| 	if (grep) | ||||
| 		argv[argc++] = fmt("--grep=%s", grep); | ||||
| 	if (grep && pattern && (!strcmp(grep, "grep") || | ||||
| 				!strcmp(grep, "author") || | ||||
| 				!strcmp(grep, "committer"))) | ||||
| 		argv[argc++] = fmt("--%s=%s", grep, pattern); | ||||
|  | ||||
| 	if (path) { | ||||
| 		argv[argc++] = "--"; | ||||
| 		argv[argc++] = path; | ||||
|   | ||||
| @@ -417,9 +417,14 @@ void cgit_print_pageheader(char *title, int show_search) | ||||
| 			html_hidden("id", cgit_query_sha1); | ||||
| 		if (cgit_query_sha2) | ||||
| 			html_hidden("id2", cgit_query_sha2); | ||||
| 		html("<input type='text' name='q' value='"); | ||||
| 		html("<select name='qt'>"); | ||||
| 		html_option("grep", "log msg", cgit_query_grep); | ||||
| 		html_option("author", "author", cgit_query_grep); | ||||
| 		html_option("committer", "committer", cgit_query_grep); | ||||
| 		html("</select>"); | ||||
| 		html("<input class='txt' type='text' name='q' value='"); | ||||
| 		html_attr(cgit_query_search); | ||||
| 		html("'/></form>"); | ||||
| 		html("'/><input class='btn' type='submit' value='...'/></form>"); | ||||
| 	} | ||||
| 	html("</td></tr>"); | ||||
| 	html("<tr><td id='content' colspan='2'>"); | ||||
|   | ||||
| @@ -236,7 +236,7 @@ void cgit_print_summary() | ||||
| 		html_include(cgit_repo->readme); | ||||
| 	html("</div>"); | ||||
| 	if (cgit_summary_log > 0) | ||||
| 		cgit_print_log(cgit_query_head, 0, cgit_summary_log, NULL, NULL, 0); | ||||
| 		cgit_print_log(cgit_query_head, 0, cgit_summary_log, NULL, NULL, NULL, 0); | ||||
| 	html("<table class='list nowrap'>"); | ||||
| 	if (cgit_summary_log > 0) | ||||
| 		html("<tr class='nohover'><td colspan='4'> </td></tr>"); | ||||
|   | ||||
		在新工单中引用
	
	屏蔽一个用户
	 Lars Hjemli
					Lars Hjemli