added top committers and top projects to the side home page
This commit is contained in:
		| @ -104,8 +104,15 @@ class Site extends Controller | |||||||
| 				$login['id'], $this->issuehelper->_get_open_status_array($this->lang), 0); | 				$login['id'], $this->issuehelper->_get_open_status_array($this->lang), 0); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | 		// TODO: make count_limit configurable instead of using 20 | ||||||
|  | 		$commit_counts_per_project = $this->logs->countCodeCommitsPerProject ('', 0, 20); | ||||||
|  | 		$commit_counts_per_user = $this->logs->countCodeCommitsPerUser ('', 0, 20); | ||||||
|  |  | ||||||
| 		if (/*$issues === FALSE || $recently_resolved_issues === FALSE ||*/ | 		if (/*$issues === FALSE || $recently_resolved_issues === FALSE ||*/ | ||||||
| 		    $open_issue_counts_per_project === FALSE || $your_open_issue_counts_per_project === FALSE) | 		    $open_issue_counts_per_project === FALSE || | ||||||
|  | 		    $your_open_issue_counts_per_project === FALSE || | ||||||
|  | 		    $commit_counts_per_project === FALSE || | ||||||
|  | 		    $commit_counts_per_user === FALSE) | ||||||
| 		{ | 		{ | ||||||
| 			$data['login'] = $login; | 			$data['login'] = $login; | ||||||
| 			$data['message'] = 'DATABASE ERROR'; | 			$data['message'] = 'DATABASE ERROR'; | ||||||
| @ -121,6 +128,8 @@ class Site extends Controller | |||||||
| 		$data['recently_resolved_issues'] = $recently_resolved_issues;*/ | 		$data['recently_resolved_issues'] = $recently_resolved_issues;*/ | ||||||
| 		$data['open_issue_counts_per_project'] = $open_issue_counts_per_project; | 		$data['open_issue_counts_per_project'] = $open_issue_counts_per_project; | ||||||
| 		$data['your_open_issue_counts_per_project'] = $your_open_issue_counts_per_project; | 		$data['your_open_issue_counts_per_project'] = $your_open_issue_counts_per_project; | ||||||
|  | 		$data['commit_counts_per_project'] = $commit_counts_per_project; | ||||||
|  | 		$data['commit_counts_per_user'] = $commit_counts_per_user; | ||||||
| 		$data['issue_type_array'] = $this->issuehelper->_get_type_array($this->lang); | 		$data['issue_type_array'] = $this->issuehelper->_get_type_array($this->lang); | ||||||
| 		$data['issue_status_array'] = $this->issuehelper->_get_status_array($this->lang); | 		$data['issue_status_array'] = $this->issuehelper->_get_status_array($this->lang); | ||||||
| 		$data['issue_priority_array'] = $this->issuehelper->_get_priority_array($this->lang); | 		$data['issue_priority_array'] = $this->issuehelper->_get_priority_array($this->lang); | ||||||
|  | |||||||
| @ -109,6 +109,8 @@ $lang['System'] = 'System'; | |||||||
| $lang['Tag'] = 'Tag'; | $lang['Tag'] = 'Tag'; | ||||||
| $lang['Text'] = 'Text'; | $lang['Text'] = 'Text'; | ||||||
| $lang['Time'] = 'Time'; | $lang['Time'] = 'Time'; | ||||||
|  | $lang['Top committers'] = 'Top committers'; | ||||||
|  | $lang['Top projects'] = 'Top projects'; | ||||||
| $lang['Type'] = 'Type'; | $lang['Type'] = 'Type'; | ||||||
| $lang['Undo'] = 'Undo'; | $lang['Undo'] = 'Undo'; | ||||||
| $lang['Unzip a zip file'] = 'Unzip a zip file'; | $lang['Unzip a zip file'] = 'Unzip a zip file'; | ||||||
|  | |||||||
| @ -108,6 +108,8 @@ $lang['System'] = 'Sistem'; | |||||||
| $lang['Tag'] = 'Label'; | $lang['Tag'] = 'Label'; | ||||||
| $lang['Text'] = 'Teks'; | $lang['Text'] = 'Teks'; | ||||||
| $lang['Time'] = 'Waktu'; | $lang['Time'] = 'Waktu'; | ||||||
|  | $lang['Top committers'] = 'Top committers'; | ||||||
|  | $lang['Top projects'] = 'Top projects'; | ||||||
| $lang['Type'] = 'Type'; | $lang['Type'] = 'Type'; | ||||||
| $lang['Undo'] = 'Undo'; | $lang['Undo'] = 'Undo'; | ||||||
| $lang['Unzip a zip file'] = 'Unzip a zip file'; | $lang['Unzip a zip file'] = 'Unzip a zip file'; | ||||||
|  | |||||||
| @ -109,6 +109,8 @@ $lang['System'] = '시스템'; | |||||||
| $lang['Tag'] = '태그'; | $lang['Tag'] = '태그'; | ||||||
| $lang['Text'] = '본문'; | $lang['Text'] = '본문'; | ||||||
| $lang['Time'] = '시간'; | $lang['Time'] = '시간'; | ||||||
|  | $lang['Top committers'] = '톱 커미터'; | ||||||
|  | $lang['Top projects'] = '톱 프로젝트'; | ||||||
| $lang['Type'] = '종류'; | $lang['Type'] = '종류'; | ||||||
| $lang['Undo'] = '되돌림'; | $lang['Undo'] = '되돌림'; | ||||||
| $lang['Unzip a zip file'] = 'zip파일 풀기'; | $lang['Unzip a zip file'] = 'zip파일 풀기'; | ||||||
|  | |||||||
| @ -214,6 +214,70 @@ class LogModel extends Model | |||||||
| 			return TRUE; | 			return TRUE; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	function countCodeCommitsPerProject ($userid, $hour_limit = 0, $count_limit = 0) | ||||||
|  | 	{ | ||||||
|  | 		$this->db->trans_begin (); | ||||||
|  | 		if (strlen($userid) > 0) $this->db->where ('userid', $userid); | ||||||
|  |  | ||||||
|  | 		if ($hour_limit > 0) | ||||||
|  | 		{ | ||||||
|  | 			//$this->db->where ("updatedon >= SYSDATE() - INTERVAL {$hour_limit} HOUR"); | ||||||
|  | 			$this->db->where ("createdon >= CURRENT_TIMESTAMP - INTERVAL '{$hour_limit}' HOUR"); | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		$this->db->where ('type', 'code'); | ||||||
|  | 		$this->db->where ('action', 'commit'); | ||||||
|  |  | ||||||
|  | 		if ($count_limit > 0) $this->db->limit ($count_limit); | ||||||
|  |  | ||||||
|  | 		$this->db->select ('projectid, COUNT(id) AS commit_count'); | ||||||
|  | 		$this->db->group_by ('projectid'); | ||||||
|  | 		if ($count_limit > 0)  $this->db->order_by ('commit_count', 'desc'); | ||||||
|  | 		$query = $this->db->get ('log'); | ||||||
|  | 		if ($this->db->trans_status() === FALSE)  | ||||||
|  | 		{ | ||||||
|  | 			$this->errmsg = $this->db->_error_message();  | ||||||
|  | 			$this->db->trans_rollback (); | ||||||
|  | 			return FALSE; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		$this->db->trans_commit(); | ||||||
|  |  | ||||||
|  | 		return $query->result (); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	function countCodeCommitsPerUser ($projectid, $hour_limit = 0, $count_limit = 0) | ||||||
|  | 	{ | ||||||
|  | 		$this->db->trans_begin (); | ||||||
|  | 		if (strlen($projectid) > 0) $this->db->where ('projectid', $projectid); | ||||||
|  |  | ||||||
|  | 		if ($hour_limit > 0) | ||||||
|  | 		{ | ||||||
|  | 			//$this->db->where ("updatedon >= SYSDATE() - INTERVAL {$hour_limit} HOUR"); | ||||||
|  | 			$this->db->where ("createdon >= CURRENT_TIMESTAMP - INTERVAL '{$hour_limit}' HOUR"); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		$this->db->where ('type', 'code'); | ||||||
|  | 		$this->db->where ('action', 'commit'); | ||||||
|  |  | ||||||
|  | 		if ($count_limit > 0) $this->db->limit ($count_limit); | ||||||
|  |  | ||||||
|  | 		$this->db->select ('userid, COUNT(id) AS commit_count'); | ||||||
|  | 		$this->db->group_by ('userid'); | ||||||
|  | 		if ($count_limit > 0) $this->db->order_by ('commit_count', 'desc'); | ||||||
|  | 		$query = $this->db->get ('log'); | ||||||
|  | 		if ($this->db->trans_status() === FALSE)  | ||||||
|  | 		{ | ||||||
|  | 			$this->errmsg = $this->db->_error_message();  | ||||||
|  | 			$this->db->trans_rollback (); | ||||||
|  | 			return FALSE; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		$this->db->trans_commit(); | ||||||
|  |  | ||||||
|  | 		return $query->result (); | ||||||
|  | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
| ?> | ?> | ||||||
|  | |||||||
| @ -333,10 +333,12 @@ $(function () { | |||||||
| 		$(document).keydown (function(event) { | 		$(document).keydown (function(event) { | ||||||
| 			if (event.keyCode == 37) | 			if (event.keyCode == 37) | ||||||
| 			{ | 			{ | ||||||
|  | 				// left-arrow | ||||||
| 				on_prev_pdf_page(); | 				on_prev_pdf_page(); | ||||||
| 			} | 			} | ||||||
| 			else if (event.keyCode == 39)  | 			else if (event.keyCode == 39)  | ||||||
| 			{ | 			{ | ||||||
|  | 				// right-arrow | ||||||
| 				on_next_pdf_page(); | 				on_next_pdf_page(); | ||||||
| 			} | 			} | ||||||
| 		}); | 		}); | ||||||
|  | |||||||
| @ -228,7 +228,7 @@ foreach ($urls as $url) | |||||||
| 				print '<td class="object">'; | 				print '<td class="object">'; | ||||||
| 				print anchor (	 | 				print anchor (	 | ||||||
| 					"code/revision/{$x['repo']}/{$xdot}/{$x['rev']}",  | 					"code/revision/{$x['repo']}/{$xdot}/{$x['rev']}",  | ||||||
| 					"r{$x['rev']}"); | 					"#R{$x['rev']}"); | ||||||
| 				print '</td>'; | 				print '</td>'; | ||||||
|  |  | ||||||
| 				print '</tr>'; | 				print '</tr>'; | ||||||
| @ -293,7 +293,8 @@ foreach ($urls as $url) | |||||||
| 				{ | 				{ | ||||||
| 					$hex = $this->converter->AsciiToHex ($log['message']); | 					$hex = $this->converter->AsciiToHex ($log['message']); | ||||||
| 					$uri = "/issue/show/{$log['projectid']}/{$hex}"; | 					$uri = "/issue/show/{$log['projectid']}/{$hex}"; | ||||||
| 					$trimmed =  $this->lang->line('Issue') . " {$log['message']}"; | 					//$trimmed =  $this->lang->line('Issue') . " {$log['message']}"; | ||||||
|  | 					$trimmed = "#I{$log['message']}"; | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				if ($uri != '') | 				if ($uri != '') | ||||||
|  | |||||||
| @ -28,8 +28,10 @@ | |||||||
| <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.min.js')?>"></script> | ||||||
| <script type="text/javascript" src="<?php print base_url_make('/js/jquery.flot.time.min.js')?>"></script> | <script type="text/javascript" src="<?php print base_url_make('/js/jquery.flot.time.min.js')?>"></script> | ||||||
| <script type="text/javascript" src="<?php print base_url_make('/js/jquery.flot.categories.min.js')?>"></script> | <script type="text/javascript" src="<?php print base_url_make('/js/jquery.flot.categories.min.js')?>"></script> | ||||||
|  | <script type="text/javascript" src="<?php print base_url_make('/js/jquery.flot.pie.min.js')?>"></script> | ||||||
| <script type="text/javascript" src="<?php print base_url_make('/js/jquery.flot.tickrotor.js')?>"></script> | <script type="text/javascript" src="<?php print base_url_make('/js/jquery.flot.tickrotor.js')?>"></script> | ||||||
|  |  | ||||||
|  |  | ||||||
| <script type="text/javascript"> | <script type="text/javascript"> | ||||||
| function render_wiki() | function render_wiki() | ||||||
| { | { | ||||||
| @ -44,6 +46,10 @@ function render_wiki() | |||||||
| 	prettyPrint (); | 	prettyPrint (); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | function labelFormatter(label, series)  | ||||||
|  | { | ||||||
|  | 	return "<div style='font-size:8pt; text-align:center; padding:2px; color:white;'>" + label + "<br/>" + series.data[0][1] + "(" + Math.round(series.percent) + "%)</div>"; | ||||||
|  | } | ||||||
|  |  | ||||||
| <?php if (count($open_issue_counts_per_project) > 0): ?> | <?php if (count($open_issue_counts_per_project) > 0): ?> | ||||||
| function show_open_issues_per_project() | function show_open_issues_per_project() | ||||||
| @ -126,6 +132,90 @@ function show_open_issues_per_project() | |||||||
| } | } | ||||||
| <?php endif; ?> | <?php endif; ?> | ||||||
|  |  | ||||||
|  | <?php if (count($commit_counts_per_project) > 0): ?> | ||||||
|  | function show_commits_per_project() | ||||||
|  | { | ||||||
|  | 	var commits_per_project_data = [ | ||||||
|  | 	<?php | ||||||
|  | 		$first = TRUE; | ||||||
|  | 		foreach ($commit_counts_per_project as $commit) | ||||||
|  | 		{ | ||||||
|  | 			if ($commit->commit_count > 0) | ||||||
|  | 			{ | ||||||
|  | 				if ($first) $first = FALSE; | ||||||
|  | 				else print "\n,"; | ||||||
|  | 				printf ("{ label: '%s', data: %d}", $commit->projectid, $commit->commit_count); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	?> | ||||||
|  | 	]; | ||||||
|  |  | ||||||
|  | 	var options = | ||||||
|  | 	{ | ||||||
|  | 		series: { | ||||||
|  | 			shadowSize: 0, | ||||||
|  | 			pie: {  | ||||||
|  | 				show: true,  | ||||||
|  | 				innerRadius: 0.1, | ||||||
|  | 				label: { | ||||||
|  | 					show: true, | ||||||
|  | 					radius: 7/10, | ||||||
|  | 					formatter: labelFormatter, | ||||||
|  | 					background: { opacity: 0.8 } | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		}, | ||||||
|  | 		legend: { | ||||||
|  | 			show: false | ||||||
|  | 		} | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	var commit_graph_plot = $.plot($("#site_home_commits_per_project"), commits_per_project_data, options); | ||||||
|  | } | ||||||
|  | <?php endif; ?> | ||||||
|  |  | ||||||
|  | <?php if (count($commit_counts_per_user) > 0): ?> | ||||||
|  | function show_commits_per_user() | ||||||
|  | { | ||||||
|  | 	var commits_per_user_data = [ | ||||||
|  | 	<?php | ||||||
|  | 		$first = TRUE; | ||||||
|  | 		foreach ($commit_counts_per_user as $commit) | ||||||
|  | 		{ | ||||||
|  | 			if ($commit->commit_count > 0) | ||||||
|  | 			{ | ||||||
|  | 				if ($first) $first = FALSE; | ||||||
|  | 				else print "\n,"; | ||||||
|  | 				printf ("{ label: '%s', data: %d}", $commit->userid, $commit->commit_count); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	?> | ||||||
|  | 	]; | ||||||
|  |  | ||||||
|  | 	var options = | ||||||
|  | 	{ | ||||||
|  | 		series: { | ||||||
|  | 			shadowSize: 0, | ||||||
|  | 			pie: {  | ||||||
|  | 				show: true,  | ||||||
|  | 				innerRadius: 0.1, | ||||||
|  | 				label: { | ||||||
|  | 					show: true, | ||||||
|  | 					radius: 7/10, | ||||||
|  | 					formatter: labelFormatter, | ||||||
|  | 					background: { opacity: 0.8 } | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		}, | ||||||
|  | 		legend: { | ||||||
|  | 			show: false | ||||||
|  | 		} | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	var commit_graph_plot = $.plot($("#site_home_commits_per_user"), commits_per_user_data, options); | ||||||
|  | } | ||||||
|  | <?php endif; ?> | ||||||
|  |  | ||||||
| $(function () { | $(function () { | ||||||
| 	render_wiki (); | 	render_wiki (); | ||||||
|  |  | ||||||
| @ -145,6 +235,21 @@ $(function () { | |||||||
| <?php if (count($open_issue_counts_per_project) > 0): ?> | <?php if (count($open_issue_counts_per_project) > 0): ?> | ||||||
| 	show_open_issues_per_project(); | 	show_open_issues_per_project(); | ||||||
| <?php endif; ?> | <?php endif; ?> | ||||||
|  |  | ||||||
|  | <?php if (count($commit_counts_per_project) > 0): ?> | ||||||
|  | 	$("#site_home_sidebar_top_projects_box").accordion ({ | ||||||
|  | 		collapsible: true  | ||||||
|  | 	}); | ||||||
|  | 	show_commits_per_project(); | ||||||
|  | <?php endif; ?> | ||||||
|  |  | ||||||
|  | <?php if (count($commit_counts_per_user) > 0): ?> | ||||||
|  | 	$("#site_home_sidebar_top_committers_box").accordion ({ | ||||||
|  | 		collapsible: true  | ||||||
|  | 	}); | ||||||
|  | 	show_commits_per_user(); | ||||||
|  | <?php endif; ?> | ||||||
|  |  | ||||||
| }); | }); | ||||||
| </script> | </script> | ||||||
|  |  | ||||||
| @ -191,172 +296,197 @@ $this->load->view ( | |||||||
| <div class="codepot-sidebar" id="site_home_sidebar"> | <div class="codepot-sidebar" id="site_home_sidebar"> | ||||||
|  |  | ||||||
| <div id="site_home_sidebar_latest_projects_box" class="collapsible-box"> | <div id="site_home_sidebar_latest_projects_box" class="collapsible-box"> | ||||||
| <div id="site_home_sidebar_latest_projects_header" class="collapsible-box-header"> | 	<div id="site_home_sidebar_latest_projects_header" class="collapsible-box-header"> | ||||||
| 	<?php print $this->lang->line('Latest projects'); ?> | 		<?php print $this->lang->line('Latest projects'); ?> | ||||||
| </div> | 	</div> | ||||||
|  |  | ||||||
| <ul id="site_home_sidebar_latest_projects_list" class="collapsible-box-list"> | 	<ul id="site_home_sidebar_latest_projects_list" class="collapsible-box-list"> | ||||||
| <?php | 	<?php | ||||||
| foreach ($latest_projects as $project) | 	foreach ($latest_projects as $project) | ||||||
| { | 	{ | ||||||
| 	if (strcasecmp ($project->name, $project->id) != 0) | 		if (strcasecmp ($project->name, $project->id) != 0) | ||||||
| 		$cap = "{$project->name} ($project->id)"; | 			$cap = "{$project->name} ($project->id)"; | ||||||
| 	else $cap = $project->name; | 		else $cap = $project->name; | ||||||
|  |  | ||||||
| 	$sum = $project->summary; | 		$sum = $project->summary; | ||||||
| 	//$sum = preg_replace("/(.{15}).+/u", "$1…", $project->summary); | 		//$sum = preg_replace("/(.{15}).+/u", "$1…", $project->summary); | ||||||
| 	$sum = htmlspecialchars ($sum); | 		$sum = htmlspecialchars ($sum); | ||||||
|  |  | ||||||
| 	$anc = anchor ("project/home/{$project->id}",  | 		$anc = anchor ("project/home/{$project->id}",  | ||||||
| 		htmlspecialchars($cap), "title='$sum'"); | 			htmlspecialchars($cap), "title='$sum'"); | ||||||
| 	print "<li>{$anc}</li>"; | 		print "<li>{$anc}</li>"; | ||||||
| } | 	} | ||||||
| ?> | 	?> | ||||||
| </ul> | 	</ul> | ||||||
|  |  | ||||||
| </div> | </div> | ||||||
|  |  | ||||||
|  | <?php if (count($commit_counts_per_project) > 0): ?> | ||||||
|  | <div id="site_home_sidebar_top_projects_box" class="collapsible-box"> | ||||||
|  | 	<div id="site_home_sidebar_top_projects_header" class="collapsible-box-header"> | ||||||
|  | 		<?php print $this->lang->line('Top projects'); ?> | ||||||
|  | 	</div> | ||||||
|  |  | ||||||
|  | 	<div id="site_home_result_commits_per_project_graph" style="overflow:auto;"> | ||||||
|  | 		<div id="site_home_commits_per_project" style="width:100%;height:200px;"></div> | ||||||
|  | 	</div> | ||||||
|  | </div> | ||||||
|  | <?php endif; ?> | ||||||
|  |  | ||||||
|  | <?php if (count($commit_counts_per_user) > 0): ?> | ||||||
|  | <div id="site_home_sidebar_top_committers_box" class="collapsible-box"> | ||||||
|  | 	<div id="site_home_sidebar_top_committers_header" class="collapsible-box-header"> | ||||||
|  | 		<?php print $this->lang->line('Top committers'); ?> | ||||||
|  | 	</div> | ||||||
|  |  | ||||||
|  | 	<div id="site_home_result_commits_per_user_graph" style="overflow:auto;"> | ||||||
|  | 		<div id="site_home_commits_per_user" style="width:100%;height:200px;"></div> | ||||||
|  | 	</div> | ||||||
|  | </div> | ||||||
|  | <?php endif; ?> | ||||||
|  |  | ||||||
| <div id="site_home_sidebar_log_box" class="collapsible-box"> | <div id="site_home_sidebar_log_box" class="collapsible-box"> | ||||||
| <div id="site_home_sidebar_log_header" class="collapsible-box-header"> | 	<div id="site_home_sidebar_log_header" class="collapsible-box-header"> | ||||||
| <span><?php print $this->lang->line('Change log'); ?></span> | 	<span><?php print $this->lang->line('Change log'); ?></span> | ||||||
| <span id="site_home_sidebar_log_all_span"><a href='#' id="site_home_sidebar_log_all_button"><?php print $this->lang->line('All'); ?></a></span> | 	<span id="site_home_sidebar_log_all_span"><a href='#' id="site_home_sidebar_log_all_button"><?php print $this->lang->line('All'); ?></a></span> | ||||||
| </div> | 	</div> | ||||||
|  |  | ||||||
| <div id="site_home_sidebar_log_table_container" class="collapsible-box-panel"> | 	<div id="site_home_sidebar_log_table_container" class="collapsible-box-panel"> | ||||||
| <table id="site_home_sidebar_log_table" class="collapsible-box-table"> | 	<table id="site_home_sidebar_log_table" class="collapsible-box-table"> | ||||||
| <?php  | 	<?php  | ||||||
| 	$xdot = $this->converter->AsciiToHex ('.'); | 		$xdot = $this->converter->AsciiToHex ('.'); | ||||||
| 	foreach ($log_entries as $log) | 		foreach ($log_entries as $log) | ||||||
| 	{ |  | ||||||
| 		if (CODEPOT_DATABASE_STORE_GMT) |  | ||||||
| 			$createdon = $log['createdon'] . ' +0000'; |  | ||||||
| 		else |  | ||||||
| 			$createdon = $log['createdon']; |  | ||||||
|  |  | ||||||
| 		if ($log['type'] == 'code') |  | ||||||
| 		{ | 		{ | ||||||
| 			$x = $log['message']; | 			if (CODEPOT_DATABASE_STORE_GMT) | ||||||
|  | 				$createdon = $log['createdon'] . ' +0000'; | ||||||
|  | 			else | ||||||
|  | 				$createdon = $log['createdon']; | ||||||
|  |  | ||||||
| 			print '<tr class="odd">'; | 			if ($log['type'] == 'code') | ||||||
| 			print '<td class="date">'; |  | ||||||
| 			print strftime ('%m-%d', strtotime($createdon)); |  | ||||||
| 			print '</td>'; |  | ||||||
| 			print '<td class="projectid">'; |  | ||||||
| 			/* |  | ||||||
| 			print anchor ( |  | ||||||
| 				"code/file/{$x['repo']}/{$xdot}/{$x['rev']}",  |  | ||||||
| 				$x['repo']); |  | ||||||
| 			*/ |  | ||||||
| 			print anchor ("project/home/{$x['repo']}", $x['repo']); |  | ||||||
| 			print '</td>'; |  | ||||||
| 			print '<td class="object">'; |  | ||||||
| 			print anchor (	 |  | ||||||
| 				"code/revision/{$x['repo']}/{$xdot}/{$x['rev']}",  |  | ||||||
| 				"r{$x['rev']}"); |  | ||||||
| 			print '</td>'; |  | ||||||
|  |  | ||||||
| 			print '</tr>'; |  | ||||||
|  |  | ||||||
| 			print '<tr class="even">'; |  | ||||||
|  |  | ||||||
| 			print '<td></td>'; |  | ||||||
| 			print '<td colspan="2" class="details">'; |  | ||||||
| 			print '<span class="description">'; |  | ||||||
|  |  | ||||||
| 			if ($log['action'] == 'revpropchange') |  | ||||||
| 			{ | 			{ | ||||||
| 				$fmt = $this->lang->line ('MSG_LOG_REVPROP_CHANGE_BY'); | 				$x = $log['message']; | ||||||
| 				//print htmlspecialchars (sprintf($fmt, $x['propname'], $x['author'])); |  | ||||||
| 				printf ( | 				print '<tr class="odd">'; | ||||||
| 					htmlspecialchars ($fmt), | 				print '<td class="date">'; | ||||||
| 					htmlspecialchars ($x['propname']), | 				print strftime ('%m-%d', strtotime($createdon)); | ||||||
| 					anchor ("/site/userlog/{$x['author']}", htmlspecialchars ($x['author']))); | 				print '</td>'; | ||||||
|  | 				print '<td class="projectid">'; | ||||||
|  | 				/* | ||||||
|  | 				print anchor ( | ||||||
|  | 					"code/file/{$x['repo']}/{$xdot}/{$x['rev']}",  | ||||||
|  | 					$x['repo']); | ||||||
|  | 				*/ | ||||||
|  | 				print anchor ("project/home/{$x['repo']}", $x['repo']); | ||||||
|  | 				print '</td>'; | ||||||
|  | 				print '<td class="object">'; | ||||||
|  | 				print anchor (	 | ||||||
|  | 					"code/revision/{$x['repo']}/{$xdot}/{$x['rev']}",  | ||||||
|  | 					"#R{$x['rev']}"); | ||||||
|  | 				print '</td>'; | ||||||
|  |  | ||||||
|  | 				print '</tr>'; | ||||||
|  |  | ||||||
|  | 				print '<tr class="even">'; | ||||||
|  |  | ||||||
|  | 				print '<td></td>'; | ||||||
|  | 				print '<td colspan="2" class="details">'; | ||||||
|  | 				print '<span class="description">'; | ||||||
|  |  | ||||||
|  | 				if ($log['action'] == 'revpropchange') | ||||||
|  | 				{ | ||||||
|  | 					$fmt = $this->lang->line ('MSG_LOG_REVPROP_CHANGE_BY'); | ||||||
|  | 					//print htmlspecialchars (sprintf($fmt, $x['propname'], $x['author'])); | ||||||
|  | 					printf ( | ||||||
|  | 						htmlspecialchars ($fmt), | ||||||
|  | 						htmlspecialchars ($x['propname']), | ||||||
|  | 						anchor ("/site/userlog/{$x['author']}", htmlspecialchars ($x['author']))); | ||||||
|  | 				} | ||||||
|  | 				else | ||||||
|  | 				{ | ||||||
|  | 					$fmt = $this->lang->line ( | ||||||
|  | 						'MSG_LOG_'.strtoupper($log['action']).'_BY'); | ||||||
|  | 					//print htmlspecialchars (sprintf($fmt, $x['author'])); | ||||||
|  | 					printf ( | ||||||
|  | 						htmlspecialchars ($fmt), | ||||||
|  | 						anchor ("/site/userlog/{$x['author']}", htmlspecialchars ($x['author']))); | ||||||
|  | 				} | ||||||
|  | 				print '</span>'; | ||||||
|  |  | ||||||
|  | 				if ($log['action'] != 'revpropchange') | ||||||
|  | 				{ | ||||||
|  | 					print '<div class="codepot-plain-text-view"><pre>'; | ||||||
|  | 					$sm = strtok (trim ($x['message']), "\r\n"); | ||||||
|  | 					print htmlspecialchars ($sm); | ||||||
|  | 					print '</pre></div>'; | ||||||
|  | 				} | ||||||
|  | 				print '</td>'; | ||||||
|  | 				print '</tr>'; | ||||||
| 			} | 			} | ||||||
| 			else | 			else | ||||||
| 			{ | 			{ | ||||||
|  | 				print '<tr class="odd">'; | ||||||
|  | 				print '<td class="date">'; | ||||||
|  | 				print strftime ('%m-%d', strtotime($createdon)); | ||||||
|  | 				print '</td>'; | ||||||
|  |  | ||||||
|  | 				print '<td class="project">'; | ||||||
|  | 				print anchor ("/project/home/{$log['projectid']}", $log['projectid']); | ||||||
|  | 				print '</td>'; | ||||||
|  |  | ||||||
|  | 				print '<td class="object">'; | ||||||
|  | 				$uri = ''; | ||||||
|  | 				if ($log['type'] == 'project') | ||||||
|  | 				{ | ||||||
|  | 					$uri = "/project/home/{$log['projectid']}"; | ||||||
|  | 					$trimmed = preg_replace("/(.{15}).+/u", "$1…", $log['message']); | ||||||
|  | 				} | ||||||
|  | 				else if ($log['type'] == 'wiki') | ||||||
|  | 				{ | ||||||
|  | 					$hex = $this->converter->AsciiToHex ($log['message']); | ||||||
|  | 					$uri = "/wiki/show_r/{$log['projectid']}/{$hex}"; | ||||||
|  | 					$trimmed = preg_replace("/(.{15}).+/u", "$1…", $log['message']); | ||||||
|  | 				} | ||||||
|  | 				else if ($log['type'] == 'file') | ||||||
|  | 				{ | ||||||
|  | 					$hex = $this->converter->AsciiToHex ($log['message']); | ||||||
|  | 					$uri = "/file/show/{$log['projectid']}/{$hex}"; | ||||||
|  | 					$trimmed = preg_replace("/(.{15}).+/u", "$1…", $log['message']); | ||||||
|  | 				} | ||||||
|  | 				else if ($log['type'] == 'issue') | ||||||
|  | 				{ | ||||||
|  | 					$hex = $this->converter->AsciiToHex ($log['message']); | ||||||
|  | 					$uri = "/issue/show/{$log['projectid']}/{$hex}"; | ||||||
|  | 					//$trimmed = $this->lang->line('Issue') . " {$log['message']}"; | ||||||
|  | 					$trimmed = "#I{$log['message']}"; | ||||||
|  | 				} | ||||||
|  |  | ||||||
|  | 				if ($uri != '' && $trimmed != '') | ||||||
|  | 					print anchor ($uri, htmlspecialchars($trimmed)); | ||||||
|  | 				else | ||||||
|  | 					print htmlspecialchars($trimmed); | ||||||
|  | 				print '</td>'; | ||||||
|  |  | ||||||
|  | 				print '</tr>'; | ||||||
|  |  | ||||||
|  | 				print '<tr class="even">'; | ||||||
|  | 				print '<td></td>'; | ||||||
|  | 				print '<td colspan="2" class="details">'; | ||||||
|  | 				print '<span class="description">'; | ||||||
| 				$fmt = $this->lang->line ( | 				$fmt = $this->lang->line ( | ||||||
| 					'MSG_LOG_'.strtoupper($log['action']).'_BY'); | 					'MSG_LOG_'.strtoupper($log['action']).'_BY'); | ||||||
| 				//print htmlspecialchars (sprintf($fmt, $x['author'])); | 				//print htmlspecialchars (sprintf($fmt, $log['userid'])); | ||||||
| 				printf ( | 				printf ( | ||||||
| 					htmlspecialchars ($fmt), | 					htmlspecialchars ($fmt), | ||||||
| 					anchor ("/site/userlog/{$x['author']}", htmlspecialchars ($x['author']))); | 					anchor ("/site/userlog/{$log['userid']}", htmlspecialchars ($log['userid']))); | ||||||
| 			} | 				print '</span>'; | ||||||
| 			print '</span>'; | 				print '</td>'; | ||||||
|  |  | ||||||
| 			if ($log['action'] != 'revpropchange') | 				print '</tr>'; | ||||||
| 			{ |  | ||||||
| 				print '<div class="codepot-plain-text-view"><pre>'; |  | ||||||
| 				$sm = strtok (trim ($x['message']), "\r\n"); |  | ||||||
| 				print htmlspecialchars ($sm); |  | ||||||
| 				print '</pre></div>'; |  | ||||||
| 			} | 			} | ||||||
| 			print '</td>'; |  | ||||||
| 			print '</tr>'; |  | ||||||
| 		} | 		} | ||||||
| 		else | 	?> | ||||||
| 		{ | 	</table> | ||||||
| 			print '<tr class="odd">'; | 	</div> | ||||||
| 			print '<td class="date">'; |  | ||||||
| 			print strftime ('%m-%d', strtotime($createdon)); |  | ||||||
| 			print '</td>'; |  | ||||||
|  |  | ||||||
| 			print '<td class="project">'; |  | ||||||
| 			print anchor ("/project/home/{$log['projectid']}", $log['projectid']); |  | ||||||
| 			print '</td>'; |  | ||||||
|  |  | ||||||
| 			print '<td class="object">'; |  | ||||||
| 			$uri = ''; |  | ||||||
| 			if ($log['type'] == 'project') |  | ||||||
| 			{ |  | ||||||
| 				$uri = "/project/home/{$log['projectid']}"; |  | ||||||
| 				$trimmed = preg_replace("/(.{15}).+/u", "$1…", $log['message']); |  | ||||||
| 			} |  | ||||||
| 			else if ($log['type'] == 'wiki') |  | ||||||
| 			{ |  | ||||||
| 				$hex = $this->converter->AsciiToHex ($log['message']); |  | ||||||
| 				$uri = "/wiki/show_r/{$log['projectid']}/{$hex}"; |  | ||||||
| 				$trimmed = preg_replace("/(.{15}).+/u", "$1…", $log['message']); |  | ||||||
| 			} |  | ||||||
| 			else if ($log['type'] == 'file') |  | ||||||
| 			{ |  | ||||||
| 				$hex = $this->converter->AsciiToHex ($log['message']); |  | ||||||
| 				$uri = "/file/show/{$log['projectid']}/{$hex}"; |  | ||||||
| 				$trimmed = preg_replace("/(.{15}).+/u", "$1…", $log['message']); |  | ||||||
| 			} |  | ||||||
| 			else if ($log['type'] == 'issue') |  | ||||||
| 			{ |  | ||||||
| 				$hex = $this->converter->AsciiToHex ($log['message']); |  | ||||||
| 				$uri = "/issue/show/{$log['projectid']}/{$hex}"; |  | ||||||
| 				$trimmed = $this->lang->line('Issue') . " {$log['message']}"; |  | ||||||
| 			} |  | ||||||
|  |  | ||||||
| 			if ($uri != '' && $trimmed != '') |  | ||||||
| 				print anchor ($uri, htmlspecialchars($trimmed)); |  | ||||||
| 			else |  | ||||||
| 				print htmlspecialchars($trimmed); |  | ||||||
| 			print '</td>'; |  | ||||||
|  |  | ||||||
| 			print '</tr>'; |  | ||||||
|  |  | ||||||
| 			print '<tr class="even">'; |  | ||||||
| 			print '<td></td>'; |  | ||||||
| 			print '<td colspan="2" class="details">'; |  | ||||||
| 			print '<span class="description">'; |  | ||||||
| 			$fmt = $this->lang->line ( |  | ||||||
| 				'MSG_LOG_'.strtoupper($log['action']).'_BY'); |  | ||||||
| 			//print htmlspecialchars (sprintf($fmt, $log['userid'])); |  | ||||||
| 			printf ( |  | ||||||
| 				htmlspecialchars ($fmt), |  | ||||||
| 				anchor ("/site/userlog/{$log['userid']}", htmlspecialchars ($log['userid']))); |  | ||||||
| 			print '</span>'; |  | ||||||
| 			print '</td>'; |  | ||||||
|  |  | ||||||
| 			print '</tr>'; |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| ?> |  | ||||||
| </table> |  | ||||||
| </div> |  | ||||||
| </div> <!-- box --> | </div> <!-- box --> | ||||||
|  |  | ||||||
| </div> <!-- site_home_sidebar --> | </div> <!-- site_home_sidebar --> | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user