added a wildcard pattern input to the code search using X-editable
This commit is contained in:
		| @ -224,6 +224,7 @@ LICENSE | ||||
|    JavaScript Creole 1.0 Wiki Markup Parser     See src/js/creole.js | ||||
|    jQuery JavaScript Library v1.11.2            MIT See http://jquery.org/license | ||||
|    jQuery UI 1.9.2                              MIT See http://jquery.org/license | ||||
|    X-editable 1.5.1                             MIT | ||||
|    PHPGraphLib                                  MIT | ||||
|    CLOC 1.62                                    GPL | ||||
|    Flot                                         https://github.com/flot/flot/blob/master/LICENSE.txt | ||||
|  | ||||
| @ -135,6 +135,8 @@ class Code extends Controller | ||||
| 						} | ||||
| 					} | ||||
| 				} | ||||
|  | ||||
| 				$data['wildcard_pattern'] = '*'; | ||||
| 				$this->load->view ($this->VIEW_FOLDER, $data); | ||||
| 			} | ||||
| 		} | ||||
| @ -767,6 +769,7 @@ class Code extends Controller | ||||
| 			$recursively = $this->input->post('search_recursively'); | ||||
| 			$in_name = $this->input->post('search_in_name'); | ||||
| 			$is_regex = $this->input->post('search_is_regex'); | ||||
| 			$wildcard_pattern = $this->input->post('search_wildcard_pattern'); | ||||
|  | ||||
| 			$file = $this->subversion->getFile ($project->id, $path, $rev); | ||||
| 			if ($file === FALSE) | ||||
| @ -786,6 +789,7 @@ class Code extends Controller | ||||
| 				$data['recursively'] = $recursively; | ||||
| 				$data['in_name'] = $in_name; | ||||
| 				$data['is_regex'] = $is_regex; | ||||
| 				$data['wildcard_pattern'] = $wildcard_pattern; | ||||
| 				$data['file'] = $file; | ||||
|  | ||||
| 				$data['revision'] = $rev; | ||||
|  | ||||
| @ -13,4 +13,5 @@ $lang['CODE_SEARCH_CASE_INSENSITIVELY'] = 'Search case-insensitively'; | ||||
| $lang['CODE_SEARCH_RECURSIVELY'] = 'Search recursively to sub-directories'; | ||||
| $lang['CODE_SEARCH_IN_NAME'] = 'Search in file names'; | ||||
| $lang['CODE_SEARCH_IS_REGEX'] = 'Search string is a regular expression'; | ||||
| $lang['CODE_SEARCH_WILDCARD'] = 'Enter a wildcard pattern'; | ||||
| ?> | ||||
|  | ||||
| @ -13,4 +13,5 @@ $lang['CODE_SEARCH_CASE_INSENSITIVELY'] = '대소문자 구분없이 검색합 | ||||
| $lang['CODE_SEARCH_RECURSIVELY'] = '서브디렉토리를 포함하여 검색합니다'; | ||||
| $lang['CODE_SEARCH_IN_NAME'] = '파일이름을 검색합니다'; | ||||
| $lang['CODE_SEARCH_IS_REGEX'] = '검색어가 정규식입니다'; | ||||
| $lang['CODE_SEARCH_WILDCARD'] = '와일드카드 패턴을 입력하세요'; | ||||
| ?> | ||||
|  | ||||
| @ -23,6 +23,9 @@ | ||||
| <script type="text/javascript" src="<?php print base_url_make('/js/jquery-ui.min.js')?>"></script> | ||||
| <link type="text/css" rel="stylesheet" href="<?php print base_url_make('/css/jquery-ui.css')?>" /> | ||||
|  | ||||
| <script type="text/javascript" src="<?php print base_url_make('/js/jqueryui-editable.min.js')?>"></script> | ||||
| <link type="text/css" rel="stylesheet" href="<?php print base_url_make('/css/jqueryui-editable.css')?>" /> | ||||
|  | ||||
| <!--[if lte IE 8]><script type="text/javascript" src="<?php print base_url_make('/js/excanvas.min.js')?>"></script><![endif]--> | ||||
| <script type="text/javascript" src="<?php print base_url_make('/js/jquery.flot.min.js')?>"></script> | ||||
| <script type="text/javascript" src="<?php print base_url_make('/js/jquery.flot.time.min.js')?>"></script> | ||||
| @ -256,6 +259,19 @@ $(function () { | ||||
| 	$('#code_search_is_regex').button(); | ||||
| 	$('.code_search_option').tooltip(); | ||||
|  | ||||
| 	//$('#code_search_wildcard').text($('#code_search_wildcard_pattern').val()); | ||||
| 	$('#code_search_wildcard').text($('input[name=search_wildcard_pattern]').val()); | ||||
|  | ||||
| 	$('#code_search_wildcard').editable({ | ||||
| 		type: 'text',  | ||||
| 		title: '<?php print $this->lang->line('CODE_SEARCH_WILDCARD') ?>', | ||||
| 		placement: 'bottom', | ||||
| 		success: function(response, newValue) { | ||||
| 			//$('#code_search_wildcard_pattern').val(newValue);	 | ||||
| 			$('input[name=search_wildcard_pattern]').val(newValue); | ||||
| 		} | ||||
| 	}); | ||||
|  | ||||
| 	render_readme (); | ||||
| }); | ||||
|  | ||||
| @ -409,6 +425,9 @@ $this->load->view ( | ||||
| 			array('class'=>'code_search_option', 'id'=>'code_search_is_regex_label') | ||||
| 		); | ||||
|  | ||||
| 		printf ('<a id="code_search_wildcard" href="#"></a>'); | ||||
| 		print form_hidden('search_wildcard_pattern', set_value('search_wildcard_pattern', $wildcard_pattern), 'id="code_search_wildcard_pattern"'); | ||||
|  | ||||
| 		print ' '; | ||||
| 		//print form_submit('search_submit', $this->lang->line('Search'), 'id="code_search_submit"'); | ||||
| 		printf ('<a id="code_search_submit" href="#">%s</a>', $this->lang->line('Search')); | ||||
|  | ||||
| @ -21,6 +21,9 @@ | ||||
| <script type="text/javascript" src="<?php print base_url_make('/js/jquery-ui.min.js')?>"></script> | ||||
| <link type="text/css" rel="stylesheet" href="<?php print base_url_make('/css/jquery-ui.css')?>" /> | ||||
|  | ||||
| <script type="text/javascript" src="<?php print base_url_make('/js/jqueryui-editable.min.js')?>"></script> | ||||
| <link type="text/css" rel="stylesheet" href="<?php print base_url_make('/css/jqueryui-editable.css')?>" /> | ||||
|  | ||||
| <script type="text/javascript"> | ||||
| $(function() { | ||||
| 	$('#code_search_submit').button().click (function (e) { | ||||
| @ -48,6 +51,19 @@ $(function() { | ||||
| 	$('#code_search_is_regex').button(); | ||||
| 	$('.code_search_option').tooltip(); | ||||
|  | ||||
| 	//$('#code_search_wildcard').text($('#code_search_wildcard_pattern').text()); | ||||
| 	$('#code_search_wildcard').text($('input[name=search_wildcard_pattern]').val()); | ||||
|  | ||||
| 	$('#code_search_wildcard').editable({ | ||||
| 		type: 'text', | ||||
| 		title: '<?php print $this->lang->line('CODE_SEARCH_WILDCARD') ?>', | ||||
| 		placement: 'bottom', | ||||
| 		success: function(response, newValue) { | ||||
| 			//$('#code_search_wildcard_pattern').val(newValue); | ||||
| 			$('input[name=search_wildcard_pattern]').val(newValue); | ||||
| 		} | ||||
| 	}); | ||||
|  | ||||
| 	prettyPrint(); | ||||
| }); | ||||
| </script> | ||||
| @ -211,6 +227,9 @@ $this->load->view ( | ||||
| 		array('class'=>'code_search_option', 'id'=>'code_search_is_regex_label') | ||||
| 	); | ||||
|  | ||||
| 	printf ('<a id="code_search_wildcard" href="#"></a>'); | ||||
| 	print form_hidden('search_wildcard_pattern', set_value('search_wildcard_pattern', $wildcard_pattern), 'id="code_search_wildcard_pattern"'); | ||||
|  | ||||
| 	print ' '; | ||||
| 	printf ('<a id="code_search_submit" href="#">%s</a>', $this->lang->line('Search')); | ||||
| 	//print form_submit ('search_submit', $this->lang->line('Search'), 'id="code_search_submit"'); | ||||
| @ -228,7 +247,7 @@ $this->load->view ( | ||||
|  | ||||
| <?php | ||||
| // this searching part should have been placed in SubversionModel. | ||||
| function search_and_show ($controller, $project, $path, $revision, $pattern, $invertedly, $case_insensitively, $is_regex, $recurse, $in_name) | ||||
| function search_and_show ($controller, $project, $path, $revision, $pattern, $invertedly, $case_insensitively, $is_regex, $recurse, $in_name, $wildcard) | ||||
| { | ||||
| 	//$file = $controller->subversion->getFile ($project->id, $path, $revision); | ||||
| 	//if ($file['type'] == 'file') return; | ||||
| @ -251,6 +270,9 @@ function search_and_show ($controller, $project, $path, $revision, $pattern, $in | ||||
| 			{ | ||||
| 				if ($file2['type'] == 'file') | ||||
| 				{ | ||||
| 					if (!empty($wildcard) && | ||||
| 					    fnmatch($wildcard, $file2['name'], FNM_PATHNAME | FNM_PERIOD) === FALSE) continue; | ||||
|  | ||||
| 					if ($in_name) | ||||
| 					{ | ||||
| 						$lines = array ($file2['name']); | ||||
| @ -343,7 +365,7 @@ function search_and_show ($controller, $project, $path, $revision, $pattern, $in | ||||
| if (CODEPOT_ALLOW_SET_TIME_LIMIT) set_time_limit (0); | ||||
|  | ||||
| // TODO: prevent recursion to subdirectories depending on input | ||||
| search_and_show ($this, $project, $file['fullpath'], $revision, $pattern, $invertedly, $case_insensitively, $is_regex, $recursively, $in_name); | ||||
| search_and_show ($this, $project, $file['fullpath'], $revision, $pattern, $invertedly, $case_insensitively, $is_regex, $recursively, $in_name, $wildcard_pattern); | ||||
| ?> | ||||
|  | ||||
| </div> <!-- code_search_mainarea_result --> | ||||
|  | ||||
| @ -230,16 +230,14 @@ $this->load->view ( | ||||
| 			array_key_exists($issue->priority, $issue_priority_array)?  | ||||
| 				$issue_priority_array[$issue->priority]: $issue->priority | ||||
| 		); | ||||
| 		print ' | '; | ||||
| 		if ($issue->owner != '') | ||||
| 		{ | ||||
| 			print ' | '; | ||||
| 			print $this->lang->line('Owner'); | ||||
| 			print ': ';  | ||||
| 			print htmlspecialchars($issue->owner); | ||||
| 			print ' | '; | ||||
| 		} | ||||
| 	?> | ||||
| 	<a id="issue_show_mainarea_change_form_open" href="#"><?php print $this->lang->line('Change')?></a> | ||||
| </div> | ||||
|  | ||||
| <div id="issue_show_mainarea_description"> | ||||
| @ -260,6 +258,14 @@ $this->load->view ( | ||||
| 	print '<span class="title">'; | ||||
| 	print $this->lang->line('Change log'); | ||||
| 	print '</span>'; | ||||
|  | ||||
|  | ||||
| 	print '<a id="issue_show_mainarea_change_form_open" href="#">'; | ||||
| 	print $this->lang->line('Change'); | ||||
| 	print '</a>'; | ||||
|  | ||||
| 	print ' '; | ||||
|  | ||||
| 	print '<a id="issue_show_mainarea_undo_change" href="#">'; | ||||
| 	print $this->lang->line('Undo'); | ||||
| 	print '</a>'; | ||||
|  | ||||
| @ -8,6 +8,7 @@ www_DATA =  \ | ||||
| 	font-awesome.min.css \ | ||||
| 	issue.css \ | ||||
| 	jquery-ui.css \ | ||||
| 	jqueryui-editable.css \ | ||||
| 	log.css \ | ||||
| 	project.css \ | ||||
| 	site.css \ | ||||
|  | ||||
| @ -246,6 +246,7 @@ www_DATA = \ | ||||
| 	font-awesome.min.css \ | ||||
| 	issue.css \ | ||||
| 	jquery-ui.css \ | ||||
| 	jqueryui-editable.css \ | ||||
| 	log.css \ | ||||
| 	project.css \ | ||||
| 	site.css \ | ||||
|  | ||||
| @ -388,3 +388,16 @@ | ||||
| 	width: 1em; | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| #code_search_wildcard { | ||||
| 	line-height: 1.4; | ||||
| 	padding: 0.4em; | ||||
| 	border: 1px solid #EB8F00; | ||||
| 	color: #EB8F00; | ||||
| 	background-color: #F6F6F6; | ||||
| 	font-weight: bold; | ||||
|  | ||||
| 	-moz-border-radius: 3px; | ||||
| 	-webkit-border-radius: 3px; | ||||
| 	border-radius: 3px; | ||||
| } | ||||
|  | ||||
| @ -66,7 +66,9 @@ www_DATA =  \ | ||||
| 	ui-icons_222222_256x240.png \ | ||||
| 	ui-anim_basic_16x16.gif \ | ||||
| 	up.png \ | ||||
| 	username.png | ||||
| 	username.png \ | ||||
| 	jqueryui-editable-loading.gif \ | ||||
| 	jqueryui-editable-clear.png | ||||
|  | ||||
| EXTRA_DIST = $(www_DATA) | ||||
|  | ||||
|  | ||||
| @ -265,7 +265,9 @@ www_DATA = \ | ||||
| 	ui-icons_222222_256x240.png \ | ||||
| 	ui-anim_basic_16x16.gif \ | ||||
| 	up.png \ | ||||
| 	username.png | ||||
| 	username.png \ | ||||
| 	jqueryui-editable-loading.gif \ | ||||
| 	jqueryui-editable-clear.png | ||||
|  | ||||
| EXTRA_DIST = $(www_DATA) | ||||
| all: all-am | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								codepot/src/css/images/jqueryui-editable-clear.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								codepot/src/css/images/jqueryui-editable-clear.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 509 B | 
							
								
								
									
										
											BIN
										
									
								
								codepot/src/css/images/jqueryui-editable-loading.gif
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								codepot/src/css/images/jqueryui-editable-loading.gif
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.8 KiB | 
							
								
								
									
										213
									
								
								codepot/src/css/jqueryui-editable.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										213
									
								
								codepot/src/css/jqueryui-editable.css
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,213 @@ | ||||
| /*! X-editable - v1.5.1  | ||||
| * In-place editing with Twitter Bootstrap, jQuery UI or pure jQuery | ||||
| * http://github.com/vitalets/x-editable | ||||
| * Copyright (c) 2013 Vitaliy Potapov; Licensed MIT */ | ||||
| .editableform { | ||||
|     margin-bottom: 0; /* overwrites bootstrap margin */ | ||||
| } | ||||
|  | ||||
| .editableform .control-group { | ||||
|     margin-bottom: 0; /* overwrites bootstrap margin */ | ||||
|     white-space: nowrap; /* prevent wrapping buttons on new line */ | ||||
|     line-height: 20px; /* overwriting bootstrap line-height. See #133 */ | ||||
| } | ||||
|  | ||||
| /*  | ||||
|   BS3 width:1005 for inputs breaks editable form in popup  | ||||
|   See: https://github.com/vitalets/x-editable/issues/393 | ||||
| */ | ||||
| .editableform .form-control { | ||||
|     width: auto; | ||||
| } | ||||
|  | ||||
| .editable-buttons { | ||||
|    display: inline-block; /* should be inline to take effect of parent's white-space: nowrap */ | ||||
|    vertical-align: top; | ||||
|    margin-left: 7px; | ||||
|    /* inline-block emulation for IE7*/ | ||||
|    zoom: 1;  | ||||
|    *display: inline; | ||||
| } | ||||
|  | ||||
| .editable-buttons.editable-buttons-bottom { | ||||
|    display: block;  | ||||
|    margin-top: 7px; | ||||
|    margin-left: 0; | ||||
| } | ||||
|  | ||||
| .editable-input { | ||||
|     vertical-align: top;  | ||||
|     display: inline-block; /* should be inline to take effect of parent's white-space: nowrap */ | ||||
|     width: auto; /* bootstrap-responsive has width: 100% that breakes layout */ | ||||
|     white-space: normal; /* reset white-space decalred in parent*/ | ||||
|    /* display-inline emulation for IE7*/ | ||||
|    zoom: 1;  | ||||
|    *display: inline;    | ||||
| } | ||||
|  | ||||
| .editable-buttons .editable-cancel { | ||||
|    margin-left: 7px;  | ||||
| } | ||||
|  | ||||
| /*for jquery-ui buttons need set height to look more pretty*/ | ||||
| .editable-buttons button.ui-button-icon-only { | ||||
|    height: 24px;  | ||||
|    width: 30px; | ||||
| } | ||||
|  | ||||
| .editableform-loading { | ||||
|     background: url('images/jqueryui-editable-loading.gif') center center no-repeat;   | ||||
|     height: 25px; | ||||
|     width: auto;  | ||||
|     min-width: 25px;  | ||||
| } | ||||
|  | ||||
| .editable-inline .editableform-loading { | ||||
|     background-position: left 5px;       | ||||
| } | ||||
|  | ||||
|  .editable-error-block { | ||||
|     max-width: 300px; | ||||
|     margin: 5px 0 0 0; | ||||
|     width: auto; | ||||
|     white-space: normal; | ||||
| } | ||||
|  | ||||
| /*add padding for jquery ui*/ | ||||
| .editable-error-block.ui-state-error { | ||||
|     padding: 3px;   | ||||
| }   | ||||
|  | ||||
| .editable-error { | ||||
|    color: red;   | ||||
| } | ||||
|  | ||||
| /* ---- For specific types ---- */ | ||||
|  | ||||
| .editableform .editable-date { | ||||
|     padding: 0;  | ||||
|     margin: 0; | ||||
|     float: left; | ||||
| } | ||||
|  | ||||
| /* move datepicker icon to center of add-on button. See https://github.com/vitalets/x-editable/issues/183 */ | ||||
| .editable-inline .add-on .icon-th { | ||||
|    margin-top: 3px; | ||||
|    margin-left: 1px;  | ||||
| } | ||||
|  | ||||
|  | ||||
| /* checklist vertical alignment */ | ||||
| .editable-checklist label input[type="checkbox"],  | ||||
| .editable-checklist label span { | ||||
|     vertical-align: middle; | ||||
|     margin: 0; | ||||
| } | ||||
|  | ||||
| .editable-checklist label { | ||||
|     white-space: nowrap;  | ||||
| } | ||||
|  | ||||
| /* set exact width of textarea to fit buttons toolbar */ | ||||
| .editable-wysihtml5 { | ||||
|     width: 566px;  | ||||
|     height: 250px;  | ||||
| } | ||||
|  | ||||
| /* clear button shown as link in date inputs */ | ||||
| .editable-clear { | ||||
|    clear: both; | ||||
|    font-size: 0.9em; | ||||
|    text-decoration: none; | ||||
|    text-align: right; | ||||
| } | ||||
|  | ||||
| /* IOS-style clear button for text inputs */ | ||||
| .editable-clear-x { | ||||
|    background: url('images/jqueryui-editable-clear.png') center center no-repeat; | ||||
|    display: block; | ||||
|    width: 13px;     | ||||
|    height: 13px; | ||||
|    position: absolute; | ||||
|    opacity: 0.6; | ||||
|    z-index: 100; | ||||
|     | ||||
|    top: 50%; | ||||
|    right: 6px; | ||||
|    margin-top: -6px; | ||||
|     | ||||
| } | ||||
|  | ||||
| .editable-clear-x:hover { | ||||
|    opacity: 1; | ||||
| } | ||||
|  | ||||
| .editable-pre-wrapped { | ||||
|    white-space: pre-wrap; | ||||
| } | ||||
| .editable-container.editable-popup { | ||||
|     max-width: none !important; /* without this rule poshytip/tooltip does not stretch */ | ||||
| }   | ||||
|  | ||||
| .editable-container.popover { | ||||
|     width: auto; /* without this rule popover does not stretch */ | ||||
| } | ||||
|  | ||||
| .editable-container.editable-inline { | ||||
|     display: inline-block;  | ||||
|     vertical-align: middle; | ||||
|     width: auto; | ||||
|     /* inline-block emulation for IE7*/ | ||||
|     zoom: 1;  | ||||
|     *display: inline;     | ||||
| } | ||||
|  | ||||
| .editable-container.ui-widget { | ||||
|    font-size: inherit;  /* jqueryui widget font 1.1em too big, overwrite it */ | ||||
|    z-index: 9990; /* should be less than select2 dropdown z-index to close dropdown first when click */ | ||||
| } | ||||
| .editable-click,  | ||||
| a.editable-click,  | ||||
| a.editable-click:hover { | ||||
|     text-decoration: none; | ||||
|     border-bottom: dashed 1px #0088cc; | ||||
| } | ||||
|  | ||||
| .editable-click.editable-disabled,  | ||||
| a.editable-click.editable-disabled,  | ||||
| a.editable-click.editable-disabled:hover { | ||||
|    color: #585858;   | ||||
|    cursor: default; | ||||
|    border-bottom: none; | ||||
| } | ||||
|  | ||||
| .editable-empty, .editable-empty:hover, .editable-empty:focus{ | ||||
|   font-style: italic;  | ||||
|   color: #DD1144;   | ||||
|   /* border-bottom: none; */ | ||||
|   text-decoration: none; | ||||
| } | ||||
|  | ||||
| .editable-unsaved { | ||||
|   font-weight: bold;  | ||||
| } | ||||
|  | ||||
| .editable-unsaved:after { | ||||
| /*    content: '*'*/ | ||||
| } | ||||
|  | ||||
| .editable-bg-transition { | ||||
|   -webkit-transition: background-color 1400ms ease-out; | ||||
|   -moz-transition: background-color 1400ms ease-out; | ||||
|   -o-transition: background-color 1400ms ease-out; | ||||
|   -ms-transition: background-color 1400ms ease-out; | ||||
|   transition: background-color 1400ms ease-out;   | ||||
| } | ||||
|  | ||||
| /*see https://github.com/vitalets/x-editable/issues/139 */ | ||||
| .form-horizontal .editable | ||||
| {  | ||||
|     padding-top: 5px; | ||||
|     display:inline-block; | ||||
| } | ||||
|  | ||||
| @ -23,6 +23,7 @@ www_DATA = \ | ||||
| 	jquery.flot.time.min.js \ | ||||
| 	excanvas.min.js \ | ||||
| 	jquery.flot.tickrotor.js \ | ||||
| 	jqueryui-editable.min.js \ | ||||
| 	d3.min.js \ | ||||
| 	CodeFlower.js | ||||
|  | ||||
|  | ||||
| @ -261,6 +261,7 @@ www_DATA = \ | ||||
| 	jquery.flot.time.min.js \ | ||||
| 	excanvas.min.js \ | ||||
| 	jquery.flot.tickrotor.js \ | ||||
| 	jqueryui-editable.min.js \ | ||||
| 	d3.min.js \ | ||||
| 	CodeFlower.js | ||||
|  | ||||
|  | ||||
							
								
								
									
										6
									
								
								codepot/src/js/jqueryui-editable.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								codepot/src/js/jqueryui-editable.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Reference in New Issue
	
	Block a user