enhanced the code folder view to show an executable file differently
This commit is contained in:
		| @ -157,6 +157,28 @@ class Code extends Controller | ||||
| 					$file['created_tag'] = $this->subversion->getRevProp ($projectid, $file['created_rev'], CODEPOT_SVN_TAG_PROPERTY); | ||||
| 					if ($file['created_tag'] === FALSE) $file['created_tag'] = ''; | ||||
|  | ||||
| 					 | ||||
| 					foreach ($file['content'] as &$f) | ||||
| 					{ | ||||
| 						$exe = $this->subversion->getProp ( | ||||
| 							$projectid, $path . '/' . $f['name'],  | ||||
| 							$file['created_rev'], 'svn:executable'); | ||||
| 						if ($exe !== FALSE && is_array($exe))  | ||||
| 						{ | ||||
| 							// the answer is like this | ||||
| 							// Array ( [file:///var/lib/codepot/svnrepo/sg/trunk/drbdfix/drbdfix.sh] => Array ( [svn:executable] => * ) ) | ||||
| 							foreach ($exe as &$ex) | ||||
| 							{ | ||||
| 								if (array_key_exists('svn:executable', $ex))  | ||||
| 								{ | ||||
| 									$f['executable'] = $ex['svn:executable']; | ||||
| 									break; | ||||
| 								} | ||||
| 							} | ||||
| 						} | ||||
| 					} | ||||
|  | ||||
|  | ||||
| 					$data['project'] = $project; | ||||
| 					$data['headpath'] = $path; | ||||
| 					$data['file'] = $file; | ||||
|  | ||||
| @ -1137,6 +1137,26 @@ class SubversionModel extends Model | ||||
| 		return @svn_proplist ($workurl, 0, $rev); | ||||
| 	} | ||||
|  | ||||
| 	function getProp ($projectid, $path, $rev, $prop) | ||||
| 	{ | ||||
| 		$orgurl = 'file://'.$this->_canonical_path(CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"); | ||||
|  | ||||
| 		$workurl = ($path == '')? $orgurl: "{$orgurl}@"; // trailing @ for collision prevention | ||||
| 		$info = @svn_info ($workurl, FALSE, $rev); | ||||
|  | ||||
| 		if ($info === FALSE || count($info) != 1)  | ||||
| 		{ | ||||
| 			if ($rev == SVN_REVISION_HEAD || $path == '') return FALSE; | ||||
|  | ||||
| 			// rebuild the URL with a peg revision and retry it. | ||||
| 			$workurl = "{$orgurl}@{$rev}"; | ||||
| 			$info = @svn_info ($workurl, FALSE, $rev); | ||||
| 			if ($info === FALSE || count($info) != 1)  return FALSE; | ||||
| 		} | ||||
|  | ||||
| 		return @svn_propget ($workurl, $prop, FALSE, $rev); | ||||
| 	} | ||||
|  | ||||
| 	function _cloc_revision_by_lang ($projectid, $path, $rev) | ||||
| 	{ | ||||
| 		$orgurl = 'file://'.$this->_canonical_path(CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"); | ||||
|  | ||||
| @ -713,7 +713,8 @@ $this->load->view ( | ||||
| 			{ | ||||
| 				// file | ||||
| 				$hexpath = $this->converter->AsciiToHex($fullpath); | ||||
| 				print "<tr class='{$rowclass}'>"; | ||||
| 				$executable_class  = array_key_exists('executable', $f)? 'executable': ''; | ||||
| 				print "<tr class='{$rowclass} {$executable_class}'>"; | ||||
| 				print '<td>'; | ||||
| 				$fa_type = codepot_get_fa_file_type ($f['name']); | ||||
| 				print "<i class='fa fa-{$fa_type}-o'></i> "; | ||||
|  | ||||
| @ -10,6 +10,10 @@ | ||||
| 	vertical-align: middle; | ||||
| } | ||||
|  | ||||
| #code_folder_mainarea_result_table tr.executable { | ||||
| 	background-color: #F0FAF0; | ||||
| } | ||||
|  | ||||
| #code_folder_mainarea_result_readme { | ||||
| 	padding: 0.2em 0.2em 0.2em 0.2em; | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user