enhanced the code viewer to show svn properties
This commit is contained in:
		| @ -48,4 +48,4 @@ rpm: dist | ||||
| 	mkdir -p "@abs_top_builddir@/RPM/SRPMS" | ||||
| 	mkdir -p "@abs_top_builddir@/RPM/RPMS" | ||||
| 	cp codepot-@VERSION@.tar.gz "@abs_top_builddir@/RPM/SOURCES" | ||||
| 	rpmbuild --define "_topdir @abs_top_builddir@/RPM" -ba codepot.spec  | ||||
| 	rpmbuild --define "_topdir @abs_top_builddir@/RPM" -ba codepot.spec --target noarch | ||||
|  | ||||
| @ -733,7 +733,7 @@ rpm: dist | ||||
| 	mkdir -p "@abs_top_builddir@/RPM/SRPMS" | ||||
| 	mkdir -p "@abs_top_builddir@/RPM/RPMS" | ||||
| 	cp codepot-@VERSION@.tar.gz "@abs_top_builddir@/RPM/SOURCES" | ||||
| 	rpmbuild --define "_topdir @abs_top_builddir@/RPM" -ba codepot.spec  | ||||
| 	rpmbuild --define "_topdir @abs_top_builddir@/RPM" -ba codepot.spec --target noarch | ||||
|  | ||||
| # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||||
| # Otherwise a system limit (for SysV at least) may be exceeded. | ||||
|  | ||||
| @ -11,11 +11,12 @@ default_site_name = "@PACKAGE@" | ||||
| ;------------------------------------------------------------------------------ | ||||
| ; database settings | ||||
| ;------------------------------------------------------------------------------ | ||||
| database_username = | ||||
| database_password =  | ||||
| database_name =  | ||||
| database_driver =  | ||||
| database_prefix =  | ||||
| database_hostname = "localhost" | ||||
| database_username = "" | ||||
| database_password = "" | ||||
| database_name = "" | ||||
| database_driver = "" | ||||
| database_prefix = "" | ||||
|  | ||||
| ;------------------------------------------------------------------------------ | ||||
| ; ldap settings | ||||
|  | ||||
| @ -37,7 +37,7 @@ | ||||
| $active_group = "default"; | ||||
| $active_record = TRUE; | ||||
|  | ||||
| $db['default']['hostname'] = "localhost"; | ||||
| $db['default']['hostname'] = CODEPOT_DATABASE_HOSTNAME; | ||||
| $db['default']['username'] = CODEPOT_DATABASE_USERNAME; | ||||
| $db['default']['password'] = CODEPOT_DATABASE_PASSWORD; | ||||
| $db['default']['database'] = CODEPOT_DATABASE_NAME; | ||||
| @ -50,5 +50,18 @@ $db['default']['cachedir'] = ""; | ||||
| $db['default']['char_set'] = "utf8"; | ||||
| $db['default']['dbcollat'] = "utf8_general_ci"; | ||||
|  | ||||
| $db['auth-mysql']['hostname'] = CODEPOT_AUTH_MYSQL_HOSTNAME; | ||||
| $db['auth-mysql']['username'] = CODEPOT_AUTH_MYSQL_USERNAME; | ||||
| $db['auth-mysql']['password'] = CODEPOT_AUTH_MYSQL_PASSWORD; | ||||
| $db['auth-mysql']['database'] = CODEPOT_AUTH_MYSQL_NAME; | ||||
| $db['auth-mysql']['dbdriver'] = "mysql"; | ||||
| $db['auth-mysql']['dbprefix'] = CODEPOT_AUTH_MYSQL_PREFIX; | ||||
| $db['auth-mysql']['pconnect'] = FALSE; | ||||
| $db['auth-mysql']['db_debug'] = FALSE; | ||||
| $db['auth-mysql']['cache_on'] = FALSE; | ||||
| $db['auth-mysql']['cachedir'] = ""; | ||||
| $db['auth-mysql']['char_set'] = "utf8"; | ||||
| $db['auth-mysql']['dbcollat'] = "utf8_general_ci"; | ||||
|  | ||||
| /* End of file database.php */ | ||||
| /* Location: ./system/application/config/database.php */ | ||||
|  | ||||
| @ -20,6 +20,7 @@ class Code extends Controller | ||||
|  | ||||
| 		$this->load->library ('Language', 'lang'); | ||||
| 		$this->lang->load ('common', CODEPOT_LANG);  | ||||
| 		$this->lang->load ('code', CODEPOT_LANG);  | ||||
| 	} | ||||
|  | ||||
| 	function home ($projectid = '', $subdir = '', $rev = SVN_REVISION_HEAD) | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| wwwdir=$(WWWDIR)/codepot/language/english | ||||
| www_DATA =  \ | ||||
| 	code_lang.php \ | ||||
| 	common_lang.php \ | ||||
| 	issue_lang.php \ | ||||
| 	index.html \ | ||||
|  | ||||
| @ -166,6 +166,7 @@ top_builddir = @top_builddir@ | ||||
| top_srcdir = @top_srcdir@ | ||||
| wwwdir = $(WWWDIR)/codepot/language/english | ||||
| www_DATA = \ | ||||
| 	code_lang.php \ | ||||
| 	common_lang.php \ | ||||
| 	issue_lang.php \ | ||||
| 	index.html \ | ||||
|  | ||||
							
								
								
									
										9
									
								
								codepot/src/codepot/language/english/code_lang.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								codepot/src/codepot/language/english/code_lang.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| <?php | ||||
| $lang['CODE_COMMIT'] = 'Commit'; | ||||
| $lang['CODE_HIDE_DETAILS'] = 'Hide details'; | ||||
| $lang['CODE_PROPERTIES'] = 'Properties'; | ||||
| $lang['CODE_PROPERTY'] = 'Property'; | ||||
| $lang['CODE_SHOW_DETAILS'] = 'Show details'; | ||||
|  | ||||
| $lang['CODE_MSG_COMMITTED_BY_ON'] = 'Committed by %s on %s'; | ||||
| ?> | ||||
| @ -1,5 +1,6 @@ | ||||
| wwwdir=$(WWWDIR)/codepot/language/korean | ||||
| www_DATA =  \ | ||||
| 	code_lang.php \ | ||||
| 	common_lang.php \ | ||||
| 	issue_lang.php \ | ||||
| 	index.html \ | ||||
|  | ||||
| @ -166,6 +166,7 @@ top_builddir = @top_builddir@ | ||||
| top_srcdir = @top_srcdir@ | ||||
| wwwdir = $(WWWDIR)/codepot/language/korean | ||||
| www_DATA = \ | ||||
| 	code_lang.php \ | ||||
| 	common_lang.php \ | ||||
| 	issue_lang.php \ | ||||
| 	index.html \ | ||||
|  | ||||
							
								
								
									
										9
									
								
								codepot/src/codepot/language/korean/code_lang.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								codepot/src/codepot/language/korean/code_lang.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| <?php | ||||
| $lang['CODE_COMMIT'] = '커밋'; | ||||
| $lang['CODE_HIDE_DETAILS'] = '상세내역숨김'; | ||||
| $lang['CODE_PROPERTIES'] = '속성'; | ||||
| $lang['CODE_PROPERTY'] = '속성'; | ||||
| $lang['CODE_SHOW_DETAILS'] = '상세내역보기'; | ||||
|  | ||||
| $lang['CODE_MSG_COMMITTED_BY_ON'] = '%s가 %s에 커밋함'; | ||||
| ?> | ||||
| @ -6,6 +6,7 @@ www_DATA =  \ | ||||
| 	ldaploginmodel.php \ | ||||
| 	loginmodel.php \ | ||||
| 	logmodel.php \ | ||||
| 	mysqlloginmodel.php \ | ||||
| 	projectmodel.php \ | ||||
| 	sitemodel.php \ | ||||
| 	subversionmodel.php \ | ||||
|  | ||||
| @ -172,6 +172,7 @@ www_DATA = \ | ||||
| 	ldaploginmodel.php \ | ||||
| 	loginmodel.php \ | ||||
| 	logmodel.php \ | ||||
| 	mysqlloginmodel.php \ | ||||
| 	projectmodel.php \ | ||||
| 	sitemodel.php \ | ||||
| 	subversionmodel.php \ | ||||
|  | ||||
							
								
								
									
										37
									
								
								codepot/src/codepot/models/mysqlloginmodel.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								codepot/src/codepot/models/mysqlloginmodel.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,37 @@ | ||||
| <?php | ||||
| require_once 'loginmodel.php'; | ||||
|  | ||||
| class MysqlLoginModel extends LoginModel | ||||
| { | ||||
| 	function LdapLoginModel () | ||||
| 	{ | ||||
| 		parent::LoginModel (); | ||||
| 		$this->load->database ('auth-mysql'); | ||||
| 	} | ||||
|  | ||||
| 	function authenticate ($userid, $password) | ||||
| 	{ | ||||
| 		$this->db->trans_start (); | ||||
| 		 | ||||
| 	/* | ||||
| 	TODO: | ||||
| 		$this->db->select ('username'); | ||||
|                 $this->db->where ('username', $userid); | ||||
|                 $this->db->where ('passwd', $userid); | ||||
| 	*/ | ||||
| 		$this->db->trans_complete (); | ||||
| 		if ($this->db->trans_status() === FALSE) return FALSE; | ||||
|  | ||||
| 		return parent::authenticate ($userid, $password, $email); | ||||
| 	} | ||||
|  | ||||
| 	function queryUserInfo ($userid) | ||||
| 	{ | ||||
| 		$user['id'] = ''; | ||||
| 		$user['email'] = ''; | ||||
|  | ||||
| 		return $user; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| ?> | ||||
| @ -7,9 +7,21 @@ class SubversionModel extends Model | ||||
| 		parent::Model (); | ||||
| 	} | ||||
|  | ||||
| 	function _canonical_path($path)  | ||||
| 	{ | ||||
| 		$canonical = preg_replace('|/\.?(?=/)|','',$path); | ||||
| 		while (($collapsed = preg_replace('|/[^/]+/\.\./|','/',$canonical,1)) !== $canonical)  | ||||
| 		{ | ||||
| 			$canonical = $collapsed; | ||||
| 		} | ||||
| 		$canonical = preg_replace('|^/\.\./|','/',$canonical); | ||||
| 		return $canonical; | ||||
| 	} | ||||
|  | ||||
| 	function getFile ($projectid, $path, $rev = SVN_REVISION_HEAD) | ||||
| 	{ | ||||
| 		$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		//$url = 'file://'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		$url = 'file://'.$this->_canonical_path(CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"); | ||||
|  | ||||
| 		$info = @svn_info ($url, FALSE, $rev); | ||||
| 		if ($info === FALSE || count($info) != 1) return FALSE; | ||||
| @ -31,10 +43,20 @@ class SubversionModel extends Model | ||||
| 				1, SVN_DISCOVER_CHANGED_PATHS); | ||||
| 			if ($log === FALSE) return FALSE; | ||||
|  | ||||
| 			$prop = @svn_proplist ($url, FALSE, $rev); | ||||
| 			if ($prop === FALSE) return FALSE; | ||||
|  | ||||
| 			if (array_key_exists ($url, $prop)) | ||||
| 			{ | ||||
| 				$fileinfo['properties'] = $prop[$url]; | ||||
| 			} | ||||
| 			else $fileinfo['properties'] = NULL; | ||||
|  | ||||
| 			$fileinfo['fullpath'] = substr ( | ||||
| 				$info[0]['url'], strlen($info[0]['repos'])); | ||||
| 			$fileinfo['content'] = $str; | ||||
| 			$fileinfo['logmsg'] = (count($log) > 0)? $log[0]['msg']: ''; | ||||
|  | ||||
| 			return $fileinfo; | ||||
| 		} | ||||
| 		else if ($info[0]['kind'] == SVN_NODE_DIR)  | ||||
| @ -52,6 +74,13 @@ class SubversionModel extends Model | ||||
| 				if ($log === FALSE) return FALSE; | ||||
| 			} | ||||
|  | ||||
| 			$prop = @svn_proplist ($url, FALSE, $rev); | ||||
| 			if ($prop === FALSE) return FALSE; | ||||
|  | ||||
| 			if (array_key_exists ($url, $prop)) | ||||
| 				$fileinfo['properties'] = $prop[$url]; | ||||
| 			else $fileinfo['properties'] = NULL; | ||||
|  | ||||
| 			$fileinfo['fullpath'] = substr ( | ||||
| 				$info[0]['url'], strlen($info[0]['repos'])); | ||||
| 			$fileinfo['name'] =  $info[0]['path']; | ||||
| @ -69,7 +98,8 @@ class SubversionModel extends Model | ||||
|  | ||||
| 	function getBlame ($projectid, $path, $rev = SVN_REVISION_HEAD) | ||||
| 	{ | ||||
| 		$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		//$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		$url = 'file://'.$this->_canonical_path(CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"); | ||||
|  | ||||
| 		$info = @svn_info ($url, FALSE, $rev); | ||||
| 		if ($info === FALSE || count($info) != 1) return FALSE; | ||||
| @ -100,7 +130,8 @@ class SubversionModel extends Model | ||||
|  | ||||
| 	function getHistory ($projectid, $path, $rev = SVN_REVISION_HEAD) | ||||
| 	{ | ||||
| 		$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		//$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		$url = 'file://'.$this->_canonical_path(CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"); | ||||
|  | ||||
| 		$info = @svn_info ($url, FALSE, $rev); | ||||
| 		if ($info === FALSE || count($info) != 1) return FALSE; | ||||
| @ -134,7 +165,8 @@ class SubversionModel extends Model | ||||
|  | ||||
| 	function getRevHistory ($projectid, $path, $rev) | ||||
| 	{ | ||||
| 		$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		//$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		$url = 'file://'.$this->_canonical_path(CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"); | ||||
|  | ||||
| 		$info = @svn_info ($url, FALSE, $rev); | ||||
| 		if ($info === FALSE || count($info) != 1) return FALSE; | ||||
| @ -420,7 +452,8 @@ class SubversionModel extends Model | ||||
| 	// | ||||
| 	function getDiff ($projectid, $path, $rev1, $rev2) | ||||
| 	{ | ||||
| 		$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		//$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		$url = 'file://'.$this->_canonical_path(CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"); | ||||
|  | ||||
| 		$lsinfo1 = @svn_ls ($url, $rev1, FALSE, TRUE); | ||||
| 		if ($lsinfo1 === FALSE || count($lsinfo1) != 1) return FALSE; | ||||
| @ -504,7 +537,8 @@ class SubversionModel extends Model | ||||
|  | ||||
| 	function getPrevRev ($projectid, $path, $rev) | ||||
| 	{ | ||||
| 		$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		//$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		$url = 'file://'.$this->_canonical_path(CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"); | ||||
|  | ||||
| 		$log = @svn_log ( | ||||
| 			$url, $rev, SVN_REVISION_INITIAL, 2, | ||||
| @ -520,7 +554,8 @@ class SubversionModel extends Model | ||||
|  | ||||
| 	function getNextRev ($projectid, $path, $rev) | ||||
| 	{ | ||||
| 		$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		//$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		$url = 'file://'.$this->_canonical_path(CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"); | ||||
|  | ||||
| 		$log = @svn_log ( | ||||
| 			$url, SVN_REVISION_HEAD, $rev, 0, | ||||
| @ -557,7 +592,8 @@ class SubversionModel extends Model | ||||
|  | ||||
| 	function getHeadRev ($projectid, $path) | ||||
| 	{ | ||||
| 		$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		//$url = 'file:///'.CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"; | ||||
| 		$url = 'file://'.$this->_canonical_path(CODEPOT_SVNREPO_DIR."/{$projectid}/{$path}"); | ||||
|  | ||||
| 		$log = @svn_log ( | ||||
| 			$url, SVN_REVISION_HEAD, SVN_REVISION_INITIAL, 1, | ||||
|  | ||||
| @ -10,6 +10,36 @@ | ||||
| <script type="text/javascript" src="<?=base_url()?>/js/prettify/lang-lua.js"></script> | ||||
| <script type="text/javascript" src="<?=base_url()?>/js/prettify/lang-sql.js"></script> | ||||
| <script type="text/javascript" src="<?=base_url()?>/js/prettify/lang-vb.js"></script> | ||||
|  | ||||
| <script type="text/javascript" src="<?=base_url()?>/js/jquery.min.js"></script> | ||||
| <script type="text/javascript" src="<?=base_url()?>/js/jquery-ui.min.js"></script> | ||||
| <link type="text/css" rel="stylesheet" href="<?=base_url()?>/css/jquery-ui.css" /> | ||||
|  | ||||
| <script type="text/javascript"> | ||||
| $(function () { | ||||
| 	if ($("#code_blame_mainarea_result_info").is(":visible")) | ||||
| 		btn_label = "<?=$this->lang->line('CODE_HIDE_DETAILS')?>"; | ||||
| 	else | ||||
| 		btn_label = "<?=$this->lang->line('CODE_SHOW_DETAILS')?>"; | ||||
| 	 | ||||
| 	btn = $("#code_blame_mainarea_details_button").button({"label": btn_label}).click (function () { | ||||
| 		 | ||||
| 		if ($("#code_blame_mainarea_result_info").is(":visible")) | ||||
| 		{ | ||||
| 			$("#code_blame_mainarea_result_info").hide(); | ||||
| 			$("#code_blame_mainarea_details_button").button( | ||||
| 				"option", "label", "<?=$this->lang->line('CODE_SHOW_DETAILS')?>"); | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			$("#code_blame_mainarea_result_info").show(); | ||||
| 			$("#code_blame_mainarea_details_button").button( | ||||
| 				"option", "label", "<?=$this->lang->line('CODE_HIDE_DETAILS')?>"); | ||||
| 		} | ||||
| 	}); | ||||
| }); | ||||
| </script> | ||||
|  | ||||
| <title><?=htmlspecialchars($project->name)?></title> | ||||
| </head> | ||||
|  | ||||
| @ -112,12 +142,11 @@ print anchor ("code/history/{$project->id}/{$xpar}", $this->lang->line('History' | ||||
| </div> <!-- code_blame_mainarea_menu --> | ||||
|  | ||||
| <div class="infostrip" id="code_blame_mainarea_infostrip"> | ||||
| 	<?=anchor ("code/file/{$project->id}/${xpar}/{$file['prev_rev']}", '<<')?>  | ||||
| 	<?=anchor ("code/blame/{$project->id}/${xpar}/{$file['prev_rev']}", '<<')?>  | ||||
| 	<?=$this->lang->line('Revision')?>: <?=$file['created_rev']?>  | ||||
| 	<?=anchor ("code/file/{$project->id}/${xpar}/{$file['next_rev']}", '>>')?> | | ||||
| 	<?=$this->lang->line('Author')?>: <?=htmlspecialchars($file['last_author'])?> | | ||||
| 	<?=anchor ("code/blame/{$project->id}/${xpar}/{$file['next_rev']}", '>>')?> | | ||||
| 	<?=$this->lang->line('Size')?>: <?=$file['size']?> | | ||||
| 	<?=$this->lang->line('Last updated on')?>: <?=$file['time']?> | ||||
| 	<a id="code_blame_mainarea_details_button" href='#'><?=$this->lang->line('Details')?></a> | ||||
| </div> | ||||
|  | ||||
| <div id="code_blame_mainarea_result"> | ||||
| @ -174,21 +203,34 @@ print anchor ("code/history/{$project->id}/{$xpar}", $this->lang->line('History' | ||||
| </pre> | ||||
|  | ||||
| <div id="code_blame_mainarea_result_info"> | ||||
| <script language='javascript'> | ||||
| function toggle_logmsg() | ||||
| { | ||||
| 	var x = document.getElementById ('code_blame_mainarea_result_info_logmsg');	 | ||||
| 	if (x) x.style.visibility = (x.style.visibility == 'visible')? 'hidden': 'visible'; | ||||
| 	return false; | ||||
| } | ||||
| </script> | ||||
| <div class="title"><?= $this->lang->line('CODE_COMMIT') ?></div> | ||||
| <?php printf ($this->lang->line('CODE_MSG_COMMITTED_BY_ON'), $file['last_author'], $file['time']); ?> | ||||
|  | ||||
| <div class="title"> | ||||
| <a href='#' onClick='toggle_logmsg()'><?= $this->lang->line('Message') ?></a> | ||||
| </div> | ||||
| <pre id="code_blame_mainarea_result_info_logmsg" style="visibility: visible"> | ||||
| <div class="title"><?= $this->lang->line('Message') ?></div> | ||||
| <pre id="code_blame_mainarea_result_info_logmsg"> | ||||
| <?= $file['logmsg'] ?> | ||||
| </pre> | ||||
|  | ||||
| <?php | ||||
| if (array_key_exists('properties', $file) && count($file['properties']) > 0) | ||||
| { | ||||
| 	print '<div class="title">'; | ||||
| 	print $this->lang->line('CODE_PROPERTIES'); | ||||
| 	print '</div>'; | ||||
|  | ||||
| 	print '<ul id="code_blame_mainarea_result_info_property_list">'; | ||||
| 	foreach ($file['properties'] as $pn => $pv) | ||||
| 	{ | ||||
| 		print '<li>'; | ||||
| 		print htmlspecialchars($pn); | ||||
| 		print ' - '; | ||||
| 		print htmlspecialchars($pv); | ||||
| 		print '</li>'; | ||||
| 	} | ||||
| 	print '</ul>'; | ||||
| } | ||||
| ?> | ||||
| </pre> | ||||
| </div> <!-- code_blame_mainarea_result_info --> | ||||
|  | ||||
| </div> <!-- code_blame_mainarea_result --> | ||||
|  | ||||
| @ -10,6 +10,36 @@ | ||||
| <script type="text/javascript" src="<?=base_url()?>/js/prettify/lang-lua.js"></script> | ||||
| <script type="text/javascript" src="<?=base_url()?>/js/prettify/lang-sql.js"></script> | ||||
| <script type="text/javascript" src="<?=base_url()?>/js/prettify/lang-vb.js"></script> | ||||
|  | ||||
| <script type="text/javascript" src="<?=base_url()?>/js/jquery.min.js"></script> | ||||
| <script type="text/javascript" src="<?=base_url()?>/js/jquery-ui.min.js"></script> | ||||
| <link type="text/css" rel="stylesheet" href="<?=base_url()?>/css/jquery-ui.css" /> | ||||
|  | ||||
| <script type="text/javascript"> | ||||
| $(function () { | ||||
| 	if ($("#code_file_mainarea_result_info").is(":visible")) | ||||
| 		btn_label = "<?=$this->lang->line('CODE_HIDE_DETAILS')?>"; | ||||
| 	else | ||||
| 		btn_label = "<?=$this->lang->line('CODE_SHOW_DETAILS')?>"; | ||||
| 	 | ||||
| 	btn = $("#code_file_mainarea_details_button").button({"label": btn_label}).click (function () { | ||||
| 		 | ||||
| 		if ($("#code_file_mainarea_result_info").is(":visible")) | ||||
| 		{ | ||||
| 			$("#code_file_mainarea_result_info").hide(); | ||||
| 			$("#code_file_mainarea_details_button").button( | ||||
| 				"option", "label", "<?=$this->lang->line('CODE_SHOW_DETAILS')?>"); | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			$("#code_file_mainarea_result_info").show(); | ||||
| 			$("#code_file_mainarea_details_button").button( | ||||
| 				"option", "label", "<?=$this->lang->line('CODE_HIDE_DETAILS')?>"); | ||||
| 		} | ||||
| 	}); | ||||
| }); | ||||
| </script> | ||||
|  | ||||
| <title><?=htmlspecialchars($project->name)?></title> | ||||
| </head> | ||||
|  | ||||
| @ -113,9 +143,8 @@ $this->load->view ( | ||||
| 	<?=anchor ("code/file/{$project->id}/${xpar}/{$file['prev_rev']}", '<<')?>  | ||||
| 	<?=$this->lang->line('Revision')?>: <?=$file['created_rev']?>  | ||||
| 	<?=anchor ("code/file/{$project->id}/${xpar}/{$file['next_rev']}", '>>')?> | | ||||
| 	<?=$this->lang->line('Author')?>: <?=htmlspecialchars($file['last_author'])?> | | ||||
| 	<?=$this->lang->line('Size')?>: <?=$file['size']?> | | ||||
| 	<?=$this->lang->line('Last updated on')?>: <?=$file['time']?>  | ||||
| 	<a id="code_file_mainarea_details_button" href='#'><?=$this->lang->line('Details')?></a> | ||||
| </div> | ||||
|  | ||||
| <div id="code_file_mainarea_result"> | ||||
| @ -153,21 +182,34 @@ if ($fileext == '') $fileext = "html" | ||||
|  | ||||
|  | ||||
| <div id="code_file_mainarea_result_info"> | ||||
| <script language='javascript'> | ||||
| function toggle_logmsg() | ||||
| { | ||||
| 	var x = document.getElementById ('code_file_mainarea_result_info_logmsg');	 | ||||
| 	if (x) x.style.visibility = (x.style.visibility == 'visible')? 'hidden': 'visible'; | ||||
| 	return false; | ||||
| } | ||||
| </script> | ||||
| <div class="title"><?= $this->lang->line('CODE_COMMIT') ?></div> | ||||
| <?php printf ($this->lang->line('CODE_MSG_COMMITTED_BY_ON'), $file['last_author'], $file['time']); ?> | ||||
|  | ||||
| <div class="title"> | ||||
| <a href='#' onClick='toggle_logmsg()'><?= $this->lang->line('Message') ?></a> | ||||
| </div> | ||||
| <pre id="code_file_mainarea_result_info_logmsg" style="visibility: visible"> | ||||
| <div class="title"><?= $this->lang->line('Message') ?></div> | ||||
| <pre id="code_file_mainarea_result_info_logmsg"> | ||||
| <?= $file['logmsg'] ?> | ||||
| </pre> | ||||
|  | ||||
| <?php | ||||
| if (array_key_exists('properties', $file) && count($file['properties']) > 0) | ||||
| { | ||||
| 	print '<div class="title">'; | ||||
| 	print $this->lang->line('CODE_PROPERTIES'); | ||||
| 	print '</div>'; | ||||
|  | ||||
| 	print '<ul id="code_file_mainarea_result_info_property_list">'; | ||||
| 	foreach ($file['properties'] as $pn => $pv) | ||||
| 	{ | ||||
| 		print '<li>'; | ||||
| 		print htmlspecialchars($pn); | ||||
| 		print ' - '; | ||||
| 		print htmlspecialchars($pv); | ||||
| 		print '</li>'; | ||||
| 	} | ||||
| 	print '</ul>'; | ||||
| } | ||||
| ?> | ||||
| </pre> | ||||
| </div> <!-- code_file_mainarea_result_info --> | ||||
|  | ||||
| </div> <!-- code_file_mainarea_result --> | ||||
|  | ||||
| @ -35,12 +35,19 @@ function load_ini ($file) | ||||
| 		array ('max_logs_in_site_home',        'integer',    10), | ||||
| 		array ('max_logs_in_project_home',     'integer',    5), | ||||
|  | ||||
| 		array ('database_hostname',            'string',     'localhost'), | ||||
| 		array ('database_username',            'string',     ''), | ||||
| 		array ('database_password',            'string',     ''), | ||||
| 		array ('database_name',                'string',     ''), | ||||
| 		array ('database_driver',              'string',     ''), | ||||
| 		array ('database_prefix',              'string',     ''), | ||||
|  | ||||
| 		array ('auth_mysql_hostname',          'string',     'localhost'), | ||||
| 		array ('auth_mysql_username',          'string',     ''), | ||||
| 		array ('auth_mysql_password',          'string',     ''), | ||||
| 		array ('auth_mysql_name',              'string',     ''), | ||||
| 		array ('auth_mysql_prefix',            'string',     ''), | ||||
|  | ||||
| 		array ('ldap_server_host',             'string',     '127.0.0.1'), | ||||
| 		array ('ldap_server_port',             'integer',    389), | ||||
| 		array ('ldap_server_protocol_version', 'integer',    3), | ||||
|  | ||||
| @ -28,9 +28,14 @@ | ||||
|  | ||||
| #code_file_mainarea_result_info { | ||||
| 	position: absolute; | ||||
| 	top: 0; | ||||
| 	right: 0; | ||||
| 	top: 5; | ||||
| 	right: 5; | ||||
| 	width: 22em; | ||||
| 	background: #E5ECF9 none repeat scroll 0 0; | ||||
| 	border: #D4DBE8 1px solid; | ||||
| 	overflow: auto; | ||||
| 	padding: 0.2em 0.4em 0.2em 0.4em; | ||||
| 	font-size: 0.9em; | ||||
| } | ||||
|  | ||||
| #code_file_mainarea_result_info pre { | ||||
| @ -38,24 +43,20 @@ | ||||
| 	border: 0; | ||||
| 	margin: 0; | ||||
| 	padding: 0; | ||||
| 	background-color: inherit; | ||||
| 	white-space: -moz-pre-wrap; | ||||
| 	white-space: -o-pre-wrap; | ||||
| 	white-space: pre-wrap; | ||||
| } | ||||
|  | ||||
| #code_file_mainarea_result_info .title { | ||||
| 	background-color: #7777FF; | ||||
| 	border: 0; | ||||
| 	margin: 0; | ||||
| 	font-size: 0.8em; | ||||
| 	text-align: right;	 | ||||
| } | ||||
|  | ||||
| #code_file_mainarea_result_info .title a { | ||||
| 	color: white; | ||||
| 	background-color: #8888FF; | ||||
| 	color: #FFFFFF; | ||||
| 	border: #D4DBE8 1px solid; | ||||
| 	margin: 0.3em 0 0.3em 0; | ||||
| 	padding: 0.1em 0.1em 0.1em 0.1em; | ||||
| 	font-size: inherit; | ||||
| 	background-color: inherit; | ||||
| } | ||||
|  | ||||
| #code_file_mainarea_result_info .title a:hover { | ||||
| 	background-color: inherit; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| /*-----------------------------------------------  | ||||
| @ -72,9 +73,14 @@ | ||||
|  | ||||
| #code_blame_mainarea_result_info { | ||||
| 	position: absolute; | ||||
| 	top: 0; | ||||
| 	right: 0; | ||||
| 	top: 5; | ||||
| 	right: 5; | ||||
| 	width: 22em; | ||||
| 	background: #E5ECF9 none repeat scroll 0 0; | ||||
| 	border: #D4DBE8 1px solid; | ||||
| 	overflow: auto; | ||||
| 	padding: 0.2em 0.4em 0.2em 0.4em; | ||||
| 	font-size: 0.9em; | ||||
| } | ||||
|  | ||||
| #code_blame_mainarea_result_info pre { | ||||
| @ -82,24 +88,20 @@ | ||||
| 	border: 0; | ||||
| 	margin: 0; | ||||
| 	padding: 0; | ||||
| 	background-color: inherit; | ||||
| 	white-space: -moz-pre-wrap; | ||||
| 	white-space: -o-pre-wrap; | ||||
| 	white-space: pre-wrap; | ||||
| } | ||||
|  | ||||
| #code_blame_mainarea_result_info .title { | ||||
| 	background-color: #7777FF; | ||||
| 	border: 0; | ||||
| 	margin: 0; | ||||
| 	font-size: 0.8em; | ||||
| 	text-align: right;	 | ||||
| } | ||||
|  | ||||
| #code_blame_mainarea_result_info .title a { | ||||
| 	color: white; | ||||
| 	background-color: #8888FF; | ||||
| 	color: #FFFFFF; | ||||
| 	border: #D4DBE8 1px solid; | ||||
| 	margin: 0.3em 0 0.3em 0; | ||||
| 	padding: 0.1em 0.1em 0.1em 0.1em; | ||||
| 	font-size: inherit; | ||||
| 	background-color: inherit; | ||||
| } | ||||
|  | ||||
| #code_blame_mainarea_result_info .title a:hover { | ||||
| 	background-color: inherit; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| /*-----------------------------------------------  | ||||
| @ -127,6 +129,9 @@ | ||||
| 	background-color: inherit; | ||||
| 	padding: 0; | ||||
| 	margin: 0; | ||||
| 	white-space: -moz-pre-wrap; | ||||
| 	white-space: -o-pre-wrap; | ||||
| 	white-space: pre-wrap; | ||||
| } | ||||
|  | ||||
| #code_history_mainarea_result_table .title { | ||||
|  | ||||
		Reference in New Issue
	
	Block a user