# added sanity check on user settigs taken from the session/cookie data
# added revision navigator in the code folder view. # added etag/last-modified to user icon retrieval. # fixed various css issues
This commit is contained in:
		| @ -223,8 +223,8 @@ LICENSE | ||||
|    CodeIgniter 1.7.2                            See src/system/license.txt | ||||
|    Google code prettify                         Apache License 2.0 | ||||
|    JavaScript Creole 1.0 Wiki Markup Parser     See src/js/creole.js | ||||
|    jQuery JavaScript Library v1.4.2             See http://jquery.org/license | ||||
|    jQuery UI 1.8                                MIT or GPL | ||||
|    jQuery JavaScript Library v1.11.2            MIT See http://jquery.org/license | ||||
|    jQuery UI 1.9.2                              MIT See http://jquery.org/license | ||||
|    PHPGraphLib                                  MIT | ||||
|    CLOC 1.62                                    GPL | ||||
|    Flot                                         https://github.com/flot/flot/blob/master/LICENSE.txt | ||||
|  | ||||
| @ -199,12 +199,18 @@ class User extends Controller | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			// | ||||
| 			// make sure that these field also exist in the database | ||||
| 			// also change the sanity check in LoginModel/getUser() | ||||
| 			// if you add/delete fields to the settings object. | ||||
| 			// | ||||
| 			$settings->code_hide_line_num = $this->input->post('code_hide_line_num'); | ||||
| 			$settings->code_hide_metadata = $this->input->post('code_hide_metadata'); | ||||
| 			$settings->icon_name = $icon_fname; | ||||
| 			$settings->uploaded_icon_name = $uploaded_fname; | ||||
|  | ||||
| 			if ($this->users->storeSettings ($login['id'], $settings) === FALSE) | ||||
| 			/* $uploaded_fname will be renamed to this name in users->storeSettings() */ | ||||
| 			$settings->icon_name = $icon_fname;  | ||||
|  | ||||
| 			if ($this->users->storeSettings ($login['id'], $settings, $uploaded_fname) === FALSE) | ||||
| 			{ | ||||
| 				@unlink (CODEPOT_USERICON_DIR . '/' . $uploaded_fname); | ||||
| 				$data['message'] = 'DATABASE ERROR'; | ||||
| @ -249,6 +255,25 @@ class User extends Controller | ||||
| 		if ($userid_len > 0) | ||||
| 		{ | ||||
| 			$icon_path = CODEPOT_USERICON_DIR . '/' . $userid . '.png'; | ||||
|  | ||||
| 			$stat = @stat($icon_path); | ||||
| 			if ($stat !== FALSE) | ||||
| 			{ | ||||
| 				$etag = sprintf ('%x-%x-%x-%x', $stat['dev'], $stat['ino'], $stat['size'], $stat['mtime']); | ||||
| 				$lastmod = gmdate ('D, d M Y H:i:s', $stat['mtime']); | ||||
|  | ||||
| 				header ('Last-Modified: ' . $lastmod . ' GMT'); | ||||
| 				header ('Etag: ' . $etag); | ||||
|  | ||||
| 				if ((isset($_SERVER['HTTP_IF_NONE_MATCH']) && $_SERVER['HTTP_IF_NONE_MATCH'] == $etag) || | ||||
| 				    (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) >= $stat['mtime'])) | ||||
| 				{ | ||||
| 					header('Not Modified', true, 304); | ||||
| 					flush (); | ||||
| 					return; | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			$icon_size = @filesize ($icon_path); | ||||
| 			if (@file_exists($icon_path) === TRUE &&  | ||||
| 			    ($icon_size = @filesize($icon_path)) !== FALSE && | ||||
|  | ||||
| @ -43,6 +43,12 @@ class LoginModel extends Model | ||||
| 			{ | ||||
| 				$settings = @unserialize ($settings); | ||||
| 				if ($settings === FALSE) $settings = NULL; | ||||
|  | ||||
| 				// Sanity check on the session/cookie data | ||||
| 				// See Controller/User->settings() for required fields. | ||||
| 				if (!isset($settings->code_hide_line_num)) $settings->code_hide_line_num = ''; | ||||
| 				if (!isset($settings->code_hide_metadata)) $settings->code_hide_metadata = ''; | ||||
| 				if (!isset($settings->icon_name)) $settings->icon_name = ''; | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
|  | ||||
| @ -33,7 +33,7 @@ class UserModel extends Model | ||||
| 		return $result[0]; | ||||
| 	} | ||||
|  | ||||
| 	function storeSettings ($userid, $settings) | ||||
| 	function storeSettings ($userid, $settings, $uploaded_icon_name) | ||||
| 	{ | ||||
| 		$icon_name_set = strlen($settings->icon_name) > 0; | ||||
|  | ||||
| @ -74,7 +74,7 @@ class UserModel extends Model | ||||
|  | ||||
| 		if ($icon_name_set) | ||||
| 		{ | ||||
| 			if (@rename (CODEPOT_USERICON_DIR . '/' . $settings->uploaded_icon_name, | ||||
| 			if (@rename (CODEPOT_USERICON_DIR . '/' . $uploaded_icon_name, | ||||
| 			             CODEPOT_USERICON_DIR . '/' . $settings->icon_name) === FALSE) | ||||
| 			{ | ||||
| 				$this->db->trans_rollback (); | ||||
|  | ||||
| @ -176,7 +176,14 @@ print anchor ("code/fetch/{$project->id}/${xpar}{$revreq}", $this->lang->line('D | ||||
| <div class="infostrip" id="code_blame_mainarea_infostrip"> | ||||
| 	<?php  | ||||
| 		print anchor ("code/blame/{$project->id}/${xpar}/{$file['prev_rev']}", '<<'); | ||||
| 		printf ('%s: %s', $this->lang->line('Revision'), $file['created_rev']); | ||||
| 		print ' '; | ||||
|  | ||||
| 		// anchor to the revision history at the root directory | ||||
| 		print anchor ( | ||||
| 			"code/revision/{$project->id}/!/{$file['created_rev']}", | ||||
| 			sprintf("%s %s", $this->lang->line('Revision'), $file['created_rev']) | ||||
| 		); | ||||
|  | ||||
|                 if (!empty($file['created_tag'])) | ||||
|                 { | ||||
| 			print ' '; | ||||
| @ -184,6 +191,7 @@ print anchor ("code/fetch/{$project->id}/${xpar}{$revreq}", $this->lang->line('D | ||||
| 			print htmlspecialchars($file['created_tag']); | ||||
| 			print ('</span>'); | ||||
|                 } | ||||
| 		print ' '; | ||||
| 		print anchor ("code/blame/{$project->id}/${xpar}/{$file['next_rev']}", '>>'); | ||||
|  | ||||
| 		print ' | '; | ||||
| @ -254,7 +262,10 @@ if ($login['settings'] != NULL && | ||||
|  | ||||
| <div id="code_blame_mainarea_result_info" class="infobox"> | ||||
| <div class="title"><?php print  $this->lang->line('CODE_COMMIT') ?></div> | ||||
| <?php printf ($this->lang->line('CODE_MSG_COMMITTED_BY_ON'), $file['last_author'], $file['time']); ?> | ||||
| <ul> | ||||
| <li><?php printf ($this->lang->line('CODE_MSG_COMMITTED_BY_ON'), $file['last_author'], $file['time']); ?></li> | ||||
| </ul> | ||||
|  | ||||
|  | ||||
| <div class="title"><?php print  $this->lang->line('Message') ?></div> | ||||
| <pre id="code_blame_mainarea_result_info_logmsg"> | ||||
|  | ||||
| @ -213,7 +213,14 @@ $this->load->view ( | ||||
|  | ||||
| 	<?php  | ||||
| 		print anchor ("code/file/{$project->id}/${xpar}/{$file['prev_rev']}", '<<'); | ||||
| 		printf ('%s: %s', $this->lang->line('Revision'), $file['created_rev']); | ||||
| 		print ' '; | ||||
|  | ||||
| 		// anchor to the revision history at the root directory | ||||
| 		print anchor ( | ||||
| 			"code/revision/{$project->id}/!/{$file['created_rev']}", | ||||
| 			sprintf("%s %s", $this->lang->line('Revision'), $file['created_rev']) | ||||
| 		); | ||||
|  | ||||
| 		if (!empty($file['created_tag'])) | ||||
| 		{ | ||||
| 			print ' '; | ||||
| @ -221,6 +228,8 @@ $this->load->view ( | ||||
| 			print htmlspecialchars($file['created_tag']); | ||||
| 			print ('</span>'); | ||||
| 		} | ||||
|  | ||||
| 		print ' '; | ||||
| 		print anchor ("code/file/{$project->id}/${xpar}/{$file['next_rev']}", '>>'); | ||||
|  | ||||
| 		print ' | '; | ||||
| @ -229,6 +238,11 @@ $this->load->view ( | ||||
| 	<a id="code_file_mainarea_metadata_button" href='#'><?php print $this->lang->line('Metadata')?></a> | ||||
| </div> | ||||
|  | ||||
| <div style="display:none"> | ||||
| <pre id="code_file_mainarea_result_raw"> | ||||
| </pre> | ||||
| </div> | ||||
|  | ||||
| <div class="result" id="code_file_mainarea_result"> | ||||
|  | ||||
| <?php  | ||||
| @ -278,7 +292,9 @@ if ($login['settings'] != NULL && | ||||
|  | ||||
| <div id="code_file_mainarea_result_info" class="infobox"> | ||||
| <div class="title"><?php print  $this->lang->line('CODE_COMMIT') ?></div> | ||||
| <?php printf ($this->lang->line('CODE_MSG_COMMITTED_BY_ON'), $file['last_author'], $file['time']); ?> | ||||
| <ul> | ||||
| <li><?php printf ($this->lang->line('CODE_MSG_COMMITTED_BY_ON'), $file['last_author'], $file['time']); ?></li> | ||||
| </ul> | ||||
|  | ||||
| <div class="title"><?php print  $this->lang->line('Message') ?></div> | ||||
| <pre id="code_file_mainarea_result_info_logmsg"> | ||||
| @ -319,11 +335,6 @@ if (array_key_exists('properties', $file) && count($file['properties']) > 0) | ||||
| </div> <!-- code_file_mainarea_result_info --> | ||||
|  | ||||
|  | ||||
| <div style="display:none"> | ||||
| <pre id="code_file_mainarea_result_raw"> | ||||
| </pre> | ||||
| </div> | ||||
|  | ||||
| </div> <!-- code_file_mainarea_result --> | ||||
|  | ||||
| </div> <!-- code_file_mainarea --> | ||||
|  | ||||
| @ -30,7 +30,6 @@ | ||||
| <script type="text/javascript" src="<?php print base_url_make('/js/jquery.flot.tickrotor.js')?>"></script> | ||||
|  | ||||
|  | ||||
|  | ||||
| <?php | ||||
| 	$file_count = count($file['content']); | ||||
|  | ||||
| @ -151,8 +150,8 @@ function render_readme() | ||||
| 	creole_render_wiki ( | ||||
| 		"code_folder_mainarea_result_readme_text", | ||||
| 		"code_folder_mainarea_result_readme", | ||||
| 		"<?php print site_url()?>/wiki/show/<?php print $project->id?>/", | ||||
| 		"<?php print site_url()?>/wiki/attachment0/<?php print $project->id?>/" | ||||
| 		codepot_merge_path("<?php print site_url(); ?>", "/wiki/show/<?php print $project->id?>/"), | ||||
| 		codepot_merge_path("<?php print site_url(); ?>", "/wiki/attachment0/<?php print $project->id?>/") | ||||
| 	); | ||||
| 	prettyPrint(); | ||||
| 	<?php endif; ?> | ||||
| @ -201,7 +200,9 @@ $(function () { | ||||
| 		//setTimeout (show_progress, 1000); | ||||
|  | ||||
| 		var ajax_req = $.ajax ({ | ||||
| 			url: '<?php print site_url()?>/graph/folder_loc_json/<?php print $project->id?>/<?php print $this->converter->AsciiToHex($headpath)?><?php print $revreq?>', | ||||
| 			url: codepot_merge_path ( | ||||
| 				"<?php print site_url(); ?>",  | ||||
| 				"/graph/folder_loc_json/<?php print $project->id; ?>/<?php print $this->converter->AsciiToHex($headpath)?><?php print $revreq?>"), | ||||
| 			context: document.body, | ||||
| 			success: show_loc_graph | ||||
| 		}); | ||||
| @ -390,13 +391,25 @@ $this->load->view ( | ||||
| 		print ' | '; | ||||
| 	}  | ||||
|  | ||||
| 	printf ('%s: %s', $this->lang->line('Revision'), $file['created_rev']); | ||||
| 	$xpar = $this->converter->AsciiTohex ($headpath); | ||||
| 	print anchor ("code/file/{$project->id}/${xpar}/{$prev_revision}", '<<'); | ||||
| 	print ' '; | ||||
|  | ||||
| 	// anchor to the revision history at the root directory | ||||
| 	print anchor ( | ||||
| 		"code/revision/{$project->id}/!/{$file['created_rev']}",  | ||||
| 		sprintf("%s %s", $this->lang->line('Revision'), $file['created_rev']) | ||||
| 	); | ||||
|  | ||||
| 	if (!empty($file['created_tag'])) | ||||
| 	{ | ||||
| 		print ' '; | ||||
| 		printf ('<span class="left_arrow_indicator">%s</span>', htmlspecialchars($file['created_tag'])); | ||||
| 	} | ||||
|  | ||||
| 	print ' '; | ||||
| 	print anchor ("code/file/{$project->id}/${xpar}/{$next_revision}", '>>'); | ||||
|  | ||||
| 	if ($file_count > 0) | ||||
| 	{ | ||||
| 		print ' | '; | ||||
| @ -561,7 +574,11 @@ $this->load->view ( | ||||
| 		print '<div class="title">'; | ||||
| 		print $this->lang->line('CODE_COMMIT'); | ||||
| 		print '</div>'; | ||||
| 		print '<ul>'; | ||||
| 		print '<li>'; | ||||
| 		printf ($this->lang->line('CODE_MSG_COMMITTED_BY'), $file['last_author']); | ||||
| 		print '</li>'; | ||||
| 		print '</ul>'; | ||||
|  | ||||
| 		print '<div class="title">'; | ||||
| 		print $this->lang->line('Message'); | ||||
|  | ||||
| @ -182,13 +182,6 @@ $(function() { | ||||
|  | ||||
| function render_wiki() | ||||
| { | ||||
| 	creole_render_wiki ( | ||||
| 		"code_revision_mainarea_result_msg_text",  | ||||
| 		"code_revision_mainarea_result_msg",  | ||||
| 		"<?php print site_url()?>/wiki/show/<?php print $project->id?>/", | ||||
| 		"" | ||||
| 	); | ||||
|  | ||||
| 	<?php  | ||||
| 	print "for (i = 0; i < $review_count; i++) {\n"; | ||||
| 	?> | ||||
| @ -330,7 +323,9 @@ $history = $file['history']; | ||||
| <div class="infostrip" id="code_revision_mainarea_infostrip"> | ||||
| 	<?php | ||||
| 		print anchor ("code/revision/{$project->id}/${xpar}/{$prev_revision}", '<<'); | ||||
| 		printf ('%s: %s',  $this->lang->line('Revision'), $history['rev']); | ||||
| 		print ' '; | ||||
|  | ||||
| 		printf ('%s %s',  $this->lang->line('Revision'), $history['rev']); | ||||
| 		if (!empty($history['tag'])) | ||||
| 		{ | ||||
| 			print ' '; | ||||
| @ -338,6 +333,8 @@ $history = $file['history']; | ||||
| 			print htmlspecialchars($history['tag']); | ||||
| 			print ('</span>'); | ||||
| 		} | ||||
|  | ||||
| 		print ' '; | ||||
| 		print anchor ("code/revision/{$project->id}/${xpar}/{$next_revision}", '>>'); | ||||
|  | ||||
| 		if ($can_edit) | ||||
| @ -369,7 +366,7 @@ $history = $file['history']; | ||||
| </div> | ||||
|  | ||||
| <div id="code_revision_mainarea_result_msg"> | ||||
| <pre id="code_revision_mainarea_result_msg_text" style="visibility: hidden;"> | ||||
| <pre id="code_revision_mainarea_result_msg_text"> | ||||
| <?php print htmlspecialchars($history['msg']); ?> | ||||
| </pre> | ||||
| </div> | ||||
|  | ||||
| @ -460,8 +460,10 @@ $this->load->view ( | ||||
|  | ||||
| <!-- | ||||
| <div class="sidebar" id="graph_main_sidebar"> | ||||
| <div class="box"> | ||||
| <ul> | ||||
| <div class="collapsible-box"> | ||||
| <div class="collapsible-box-header"> | ||||
| </div> | ||||
| <ul class="collapsible-box-list"> | ||||
| <li><?php print $this->lang->line('Created on')?> <?php print $project->createdon?></li> | ||||
| <li><?php print $this->lang->line('Created by')?> <?php print $project->createdby?></li> | ||||
| <li><?php print $this->lang->line('Last updated on')?> <?php print $project->updatedon?></li> | ||||
|  | ||||
| @ -51,7 +51,7 @@ function render_project_pages (total, shown, req_offset, req_size) | ||||
| 	var num_pages = parseInt((total + req_size - 1) / req_size); | ||||
| 	var page_no = parseInt(req_offset / req_size) + 1; | ||||
|  | ||||
| 	var max_page_buttons = 10; | ||||
| 	var max_page_buttons = 9; | ||||
| 	var page_no_start = page_no, page_no_stop = page_no; | ||||
| 	var button_count = 1; | ||||
| 	while (button_count < max_page_buttons) | ||||
| @ -97,7 +97,7 @@ function render_project_pages (total, shown, req_offset, req_size) | ||||
| 		var b = prepare_page_button (i, req_size); | ||||
| 		if (i == page_no) b.addClass ("ui-state-active"); | ||||
| 	} | ||||
| 	if (page_no_stop < num_pages) prepare_page_button (num_pages); | ||||
| 	if (page_no_stop < num_pages) prepare_page_button (num_pages, req_size); | ||||
| } | ||||
|  | ||||
| function render_project_list (json) | ||||
| @ -199,12 +199,13 @@ $this->load->view ( | ||||
|  | ||||
| <div class="mainarea" id="project_catalog_mainarea"> | ||||
|  | ||||
| <div id="project_catalog_mainarea_search_form"> | ||||
| 	<div id="project_catalog_mainarea_search_form_header"> | ||||
| <div id="project_catalog_mainarea_search_form" class="collapsible-box"> | ||||
| 	<div id="project_catalog_mainarea_search_form_header" class="collapsible-box-header"> | ||||
| 	<span><?php print $this->lang->line('Filters'); ?></span> | ||||
| 	<span id="project_catalog_mainarea_total_projects_holder"><?php printf ('%s: <span id="project_catalog_mainarea_total_projects">%d</span>', $this->lang->line('PROJECT_LABEL_TOTAL_PROJECTS'), $total_num_projects); ?></span> | ||||
| 	</div> | ||||
| 	<form id="project_search_form"> | ||||
|  | ||||
| 	<form id="project_search_form" class="collapsible-box-form"> | ||||
|  | ||||
| 		<div id="project_search_form_id_and_name"> | ||||
| 			<?php | ||||
|  | ||||
| @ -107,7 +107,10 @@ $this->load->view ( | ||||
| <div class="sidebar" id="site_home_sidebar"> | ||||
|  | ||||
| <div id="site_home_sidebar_latest_projects_box" class="collapsible-box"> | ||||
| <div id="site_home_sidebar_latest_projects_header" class="collapsible-box-header"><?php print $this->lang->line('Latest projects'); ?></div> | ||||
| <div id="site_home_sidebar_latest_projects_header" class="collapsible-box-header"> | ||||
| 	<?php print $this->lang->line('Latest projects'); ?> | ||||
| </div> | ||||
|  | ||||
| <ul id="site_home_sidebar_latest_projects_list" class="collapsible-box-list"> | ||||
| <?php | ||||
| foreach ($latest_projects as $project) | ||||
| @ -126,6 +129,7 @@ foreach ($latest_projects as $project) | ||||
| } | ||||
| ?> | ||||
| </ul> | ||||
|  | ||||
| </div> | ||||
|  | ||||
| <div id="site_home_sidebar_log_box" class="collapsible-box"> | ||||
| @ -272,9 +276,11 @@ foreach ($latest_projects as $project) | ||||
| <div class="result" id="site_home_mainarea_result"> | ||||
|  | ||||
| <?php if ($issues && count($issues) > 0): ?> | ||||
| 	<div id="site_home_mainarea_result_open_issues"> | ||||
| 	<div id="site_home_mainarea_result_open_issues_header"><?php print $this->lang->line('Open issues')?></div> | ||||
| 	<ul id="site_home_mainarea_result_open_issues_list"> | ||||
| 	<div id="site_home_mainarea_result_open_issues" class="collapsible-box"> | ||||
| 	<div id="site_home_mainarea_result_open_issues_header" class="collapsible-box-header"> | ||||
| 		<?php print $this->lang->line('Open issues')?> | ||||
| 	</div> | ||||
| 	<ul id="site_home_mainarea_result_open_issues_list" class="collapsible-box-list"> | ||||
| 		<?php  | ||||
| 		foreach ($issues as $issue)  | ||||
| 		{ | ||||
| @ -301,9 +307,11 @@ foreach ($latest_projects as $project) | ||||
| <?php endif; ?> | ||||
|  | ||||
| <?php if ($recently_resolved_issues && count($recently_resolved_issues) > 0): ?> | ||||
| 	<div id="site_home_mainarea_result_resolved_issues"> | ||||
| 	<div id="site_home_mainarea_result_resolved_issues_header"><?php print $this->lang->line('Recently resolved issues')?></div> | ||||
| 	<ul id="site_home_mainarea_result_resolved_issues_list"> | ||||
| 	<div id="site_home_mainarea_result_resolved_issues" class="collapsible-box"> | ||||
| 	<div id="site_home_mainarea_result_resolved_issues_header" class="collapsible-box-header"> | ||||
| 		<?php print $this->lang->line('Recently resolved issues')?> | ||||
| 	</div> | ||||
| 	<ul id="site_home_mainarea_result_resolved_issues_list" class="collapsible-box-list"> | ||||
| 		<?php  | ||||
| 		foreach ($recently_resolved_issues as $issue)  | ||||
| 		{ | ||||
|  | ||||
| @ -1,10 +1,6 @@ | ||||
| /*-----------------------------------------------  | ||||
|  * project source folder view  | ||||
|  *-----------------------------------------------*/ | ||||
| #code_folder_sidebar_info pre { | ||||
| 	white-space: pre-wrap; | ||||
| } | ||||
|  | ||||
| #code_folder_mainarea_result { | ||||
| 	overflow: auto; | ||||
| 	position: relative; | ||||
| @ -15,45 +11,6 @@ | ||||
| 	white-space: nowrap; | ||||
| } | ||||
|  | ||||
| #code_folder_mainarea_result_info { | ||||
| 	position: absolute; | ||||
| 	top: 5px; | ||||
| 	right: 2px; | ||||
| 	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_folder_mainarea_result_info pre { | ||||
| 	overflow: auto; | ||||
| 	border: 0; | ||||
| 	margin: 0; | ||||
|  | ||||
| 	background-color: inherit; | ||||
| 	white-space: -moz-pre-wrap; | ||||
| 	white-space: -o-pre-wrap; | ||||
| 	white-space: pre-wrap; | ||||
|  | ||||
| 	padding-left: 0.5em; | ||||
| 	font-size: 0.9em; | ||||
| 	line-height: 1.2em; | ||||
|  | ||||
| 	color: #333333; | ||||
| } | ||||
|  | ||||
| #code_folder_mainarea_result_info .title { | ||||
| 	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; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| #code_folder_mainarea_result_readme { | ||||
| 	padding: 0.2em 0.2em 0.2em 0.2em; | ||||
| } | ||||
| @ -62,6 +19,11 @@ | ||||
| 	white-space: pre-wrap; | ||||
| 	padding: 0.3em; | ||||
| 	line-height: 1.2em; | ||||
| 	background-color: #F8F8FA; | ||||
|  | ||||
| 	-moz-border-radius: 3px; | ||||
| 	-webkit-border-radius: 3px; | ||||
| 	border-radius: 3px; | ||||
| } | ||||
|  | ||||
| /*-----------------------------------------------  | ||||
| @ -75,45 +37,6 @@ | ||||
| 	line-height: 1.4em; | ||||
| } | ||||
|  | ||||
| #code_file_mainarea_result_info { | ||||
| 	position: absolute; | ||||
| 	top: 5px; | ||||
| 	right: 2px; | ||||
| 	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 { | ||||
| 	overflow: auto; | ||||
| 	border: 0; | ||||
| 	margin: 0; | ||||
|  | ||||
| 	background-color: inherit; | ||||
| 	white-space: -moz-pre-wrap; | ||||
| 	white-space: -o-pre-wrap; | ||||
| 	white-space: pre-wrap; | ||||
|  | ||||
| 	padding-left: 0.5em; | ||||
| 	font-size: 0.9em; | ||||
| 	line-height: 1.2em; | ||||
|  | ||||
| 	color: #333333; | ||||
| } | ||||
|  | ||||
| #code_file_mainarea_result_info .title { | ||||
| 	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; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| #code_file_mainarea_result_info_locgraph { | ||||
| 	width: 21em;  | ||||
| 	height: auto; | ||||
| @ -130,45 +53,6 @@ | ||||
| 	line-height: 1.4em; | ||||
| } | ||||
|  | ||||
| #code_blame_mainarea_result_info { | ||||
| 	position: absolute; | ||||
| 	top: 5px; | ||||
| 	right: 2px; | ||||
| 	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 { | ||||
| 	overflow: auto; | ||||
| 	border: 0; | ||||
| 	margin: 0; | ||||
|  | ||||
| 	background-color: inherit; | ||||
| 	white-space: -moz-pre-wrap; | ||||
| 	white-space: -o-pre-wrap; | ||||
| 	white-space: pre-wrap; | ||||
|  | ||||
| 	padding-left: 0.5em; | ||||
| 	font-size: 0.9em; | ||||
| 	line-height: 1.2em; | ||||
|  | ||||
| 	color: #333333; | ||||
| } | ||||
|  | ||||
| #code_blame_mainarea_result_info .title { | ||||
| 	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; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| /*-----------------------------------------------  | ||||
|  * project source history view  | ||||
|  *-----------------------------------------------*/ | ||||
| @ -220,12 +104,18 @@ | ||||
| } | ||||
|  | ||||
| #code_revision_mainarea_result_msg { | ||||
| 	border: 0; | ||||
| 	padding: 0;	 | ||||
| 	background-color: inherit; | ||||
| 	margin: 0; | ||||
| 	margin-bottom: 1em; | ||||
| } | ||||
|  | ||||
| #code_revision_mainarea_result_msg_text { | ||||
| 	padding: 0.5em 0.5em 0.5em 0.5em; | ||||
|  | ||||
| 	white-space: pre-wrap; | ||||
| 	line-height: 1.2em; | ||||
| 	background-color: #F8F8FA; | ||||
|  | ||||
| 	-moz-border-radius: 3px; | ||||
| 	-webkit-border-radius: 3px; | ||||
| 	border-radius: 3px; | ||||
| } | ||||
|  | ||||
| #code_revision_mainarea_result_files_table td { | ||||
| @ -293,16 +183,6 @@ | ||||
| 	padding-left: 22px; | ||||
| } | ||||
|  | ||||
| #code_revision_mainarea_result_sidebar { | ||||
| 	/*overflow: auto;*/ | ||||
| } | ||||
|  | ||||
| #code_revision_mainarea_result_sidebar pre { | ||||
| 	overflow: auto; | ||||
| 	border: 0; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .review_comment_title { | ||||
| 	padding: 3px 3px 3px 3px; | ||||
| 	margin-top: 5px; | ||||
| @ -393,15 +273,15 @@ | ||||
|  | ||||
| #code_diff_mainarea_result_fulldiffold { | ||||
| 	border: none; | ||||
| 	//padding-left: 10px; | ||||
| 	//background: #F8F8FA; | ||||
| 	/*padding-left: 10px; | ||||
| 	background: #F8F8FA;*/ | ||||
| 	padding-left: 1px; | ||||
| 	line-height: 1.4em; | ||||
| } | ||||
|  | ||||
| #code_diff_mainarea_result_fulldiffnew { | ||||
| 	border: none; | ||||
| 	//padding-left: 10px; | ||||
| 	/*padding-left: 10px;*/ | ||||
| 	background: #FEF8F8; | ||||
| 	padding-left: 1px; | ||||
| 	line-height: 1.4em; | ||||
| @ -432,7 +312,7 @@ | ||||
| 	background-color:#ddffdd; | ||||
| 	background-image:url(images/bullet_add.png); | ||||
| 	background-repeat:no-repeat; | ||||
| 	//background-position: 2px 50%; | ||||
| 	/*background-position: 2px 50%;*/ | ||||
| 	background-position: 0 50%; | ||||
| 	padding: 0; | ||||
| 	padding-left:15px; | ||||
| @ -444,7 +324,7 @@ | ||||
| 	background-color:#f8e4cc; | ||||
| 	background-image:url(images/bullet_delete.png); | ||||
| 	background-repeat:no-repeat; | ||||
| 	//background-position: 2px 50%; | ||||
| 	/*background-position: 2px 50%;*/ | ||||
| 	background-position: 0 50%; | ||||
| 	padding: 0; | ||||
| 	padding-left:15px; | ||||
| @ -456,7 +336,7 @@ | ||||
| 	background-color:#ffffcc; | ||||
| 	background-image:url(images/bullet_yellow.png); | ||||
| 	background-repeat:no-repeat; | ||||
| 	//background-position: 2px 50%; | ||||
| 	/*background-position: 2px 50%;*/ | ||||
| 	background-position: 0 50%; | ||||
| 	padding: 0; | ||||
| 	padding-left:15px; | ||||
| @ -468,7 +348,7 @@ | ||||
| } | ||||
|  | ||||
| #code_diff_mainarea_result_fullview .diffchangednew { | ||||
| 	//background-color:#ffff00; | ||||
| 	/*background-color:#ffff00;*/ | ||||
| 	text-decoration: underline; | ||||
| } | ||||
|  | ||||
| @ -484,68 +364,6 @@ | ||||
|  *-----------------------------------------------*/ | ||||
|   | ||||
|  | ||||
| /* | ||||
| label.code_search_option { | ||||
| 	display: inline-block; | ||||
| 	cursor: pointer; | ||||
| 	position: relative; | ||||
| 	font-size: 13px; | ||||
| 	margin-left: 9px; | ||||
| 	margin-right: 9px; | ||||
| }  | ||||
|  | ||||
| label.code_search_option:before { | ||||
| 	content:""; | ||||
| 	display: inline-block; | ||||
| 	width: 16px; | ||||
| 	height: 16px; | ||||
| 	margin-right: 10px; | ||||
| 	position: absolute; | ||||
| 	left: 0; | ||||
| 	top: 0; | ||||
| 	background-color: #aaa; | ||||
| 	box-shadow: inset 0px 2px 3px 0px rgba(0, 0, 0, .3), 0px 1px 0px 0px rgba(255, 255, 255, .8); | ||||
| 	border-radius: 3px; | ||||
| } | ||||
|  | ||||
| input[type=checkbox].code_search_option { | ||||
| 	display: none; | ||||
| } | ||||
|  | ||||
|  | ||||
| input[type=checkbox].code_search_option:checked  + label:before { | ||||
| 	content:"\2713"; | ||||
| 	text-shadow: 1px 1px 1px rgba(0, 0, 0, .2); | ||||
| 	font-size: 15px; | ||||
| 	color: #f3f3f3; | ||||
| 	text-align: center; | ||||
| 	line-height: 15px; | ||||
| } | ||||
|  | ||||
| #code_search_invertedly:checked + label:before { | ||||
| 	content: "v"; | ||||
| } | ||||
|  | ||||
| #code_search_case_insensitively:checked + label:before { | ||||
| 	content: "i"; | ||||
| } | ||||
|  | ||||
| #code_search_recursively:checked + label:before { | ||||
| 	content: "r"; | ||||
| } | ||||
|  | ||||
| #code_search_is_regex:checked + label:before { | ||||
| 	content: "x"; | ||||
| } | ||||
|  | ||||
| #code_folder_search_submit { | ||||
| 	margin-left: 0.5em; | ||||
| } | ||||
|  | ||||
| #code_search_search_submit { | ||||
| 	margin-left: 0.5em; | ||||
| } */ | ||||
|  | ||||
| #code_search_invertedly_label .ui-button-text { | ||||
| 	padding-left: 0.5em; | ||||
| 	padding-right: 0.5em; | ||||
|  | ||||
| @ -1,33 +1,17 @@ | ||||
| html { | ||||
| } | ||||
|  | ||||
| body { | ||||
| 	padding: 0; | ||||
| 	margin: 5px 5px 5px 5px; | ||||
| 	margin: 4px 4px 4px 4px; | ||||
| 	/*margin: 0;*/ | ||||
| 	min-width: 600px; | ||||
| 	/* color: #333333; */ | ||||
| } | ||||
|  | ||||
| pre { | ||||
| 	font-family: consolas, "Andale Mono", monospace; | ||||
| 	overflow: auto; | ||||
| 	width: inherit; | ||||
| 	border: none; | ||||
|  | ||||
| 	tab-size: 5; | ||||
| 	-moz-tab-size: 5; | ||||
| 	-o-tab-size: 5; | ||||
| } | ||||
|  | ||||
| textarea { | ||||
| 	font-family: consolas, "Andale Mono", monospace; | ||||
|  | ||||
| 	tab-size: 5; | ||||
| 	-moz-tab-size: 5; | ||||
| 	-o-tab-size: 5; | ||||
| 	min-width: 600px; | ||||
| } | ||||
|  | ||||
| .content { | ||||
| 	font-size: 0.9em; | ||||
| 	font-family: Ubuntu, "Trebuchet MS", sans-serif; | ||||
| 	font-family: Ubuntu, "Trebuchet MS", Tahoma, Verdana, sans-serif; | ||||
| } | ||||
|  | ||||
| .content h1 { | ||||
| @ -68,6 +52,52 @@ textarea { | ||||
| 	color: #4665A2; | ||||
| } | ||||
|  | ||||
| .content pre { | ||||
| 	font-family: consolas, "Andale Mono", monospace; | ||||
| 	overflow: auto; | ||||
| 	width: inherit; | ||||
| 	border: none; | ||||
|  | ||||
| 	tab-size: 5; | ||||
| 	-moz-tab-size: 5; | ||||
| 	-o-tab-size: 5; | ||||
| } | ||||
|  | ||||
| .content textarea { | ||||
| 	font-family: consolas, "Andale Mono", monospace; | ||||
|  | ||||
| 	tab-size: 5; | ||||
| 	-moz-tab-size: 5; | ||||
| 	-o-tab-size: 5; | ||||
| } | ||||
|  | ||||
| .content .collapsible-box { | ||||
| 	margin: 0; | ||||
| 	padding: 0; | ||||
| } | ||||
|  | ||||
| .content .collapsible-box-header { | ||||
| 	background: #E5ECF9 none repeat scroll 0 0; | ||||
| 	border: #D4DBE8 1px solid; | ||||
| 	color: #1C94C4; | ||||
|         font-size: 0.9em; | ||||
| } | ||||
|  | ||||
| .content .collapsible-box-list { | ||||
| 	line-height: 1.5em; | ||||
| 	margin: 1px 0 0 0; | ||||
| } | ||||
|  | ||||
| .content .collapsible-box-table { | ||||
| 	border-collapse: collapse; | ||||
| 	line-height: 1.5em; | ||||
| 	margin: 1px 0 0 0; | ||||
| } | ||||
|  | ||||
| .content .collapsible-box-form { | ||||
| 	line-height: 2em; | ||||
| 	margin: 1px 0 0 0; | ||||
| } | ||||
|  | ||||
| .content .taskbar { | ||||
| 	font-size: 1em; | ||||
| @ -226,6 +256,10 @@ textarea { | ||||
| 	padding: 0.3em 0.5em 0.3em 0.5em; | ||||
| } | ||||
|  | ||||
| .content .sidebar .collapsible-box { | ||||
| 	margin-bottom: 1em; | ||||
| } | ||||
|  | ||||
| .content .mainarea .title { | ||||
| 	font-size: 120%; | ||||
| 	margin-top: 0.2em; | ||||
| @ -263,6 +297,7 @@ textarea { | ||||
|  | ||||
| .content .mainarea .result { | ||||
| 	min-height: 30em; | ||||
| 	overflow: auto; | ||||
| } | ||||
|  | ||||
| .content .mainarea .form_container { | ||||
| @ -274,10 +309,7 @@ textarea { | ||||
| } | ||||
|  | ||||
| .content .mainarea form { | ||||
| 	margin: 0; | ||||
| } | ||||
|  | ||||
| .content .mainarea form label { | ||||
| 	margin-bottom: 0; | ||||
| } | ||||
|  | ||||
| .content .mainarea form input { | ||||
| @ -612,77 +644,13 @@ pre.prettyprint li.L9 { background: #eee } | ||||
| 	float: right; | ||||
| 	width: 22em; | ||||
| 	margin-top: 0.3em; | ||||
| } | ||||
|  | ||||
| .content .sidebar .box { | ||||
| 	/* box in an sidebar to present actual information  */ | ||||
| 	padding:8px 8px 8px 8px; | ||||
| 	margin: 1px 1px 5px 1px; | ||||
| 	display:block; | ||||
| 	overflow: auto; | ||||
|  | ||||
| 	/*background: #E5ECF9 none repeat scroll 0 0;*/ | ||||
| 	background: #EEEEEE none repeat scroll 0 0; | ||||
| 	border: #D4DBE8 1px solid;  | ||||
| 	/* background: #DDDDDD none repeat scroll 0 0; | ||||
| 	border: #CCCCCC 1px solid; */ | ||||
|  | ||||
| 	-moz-border-radius: 3px; | ||||
| 	-webkit-border-radius: 3px; | ||||
| 	border-radius: 3px; | ||||
|  | ||||
| /* | ||||
| 	-webkit-box-shadow: 0 8px 6px -6px #777; | ||||
| 	-moz-box-shadow: 0 8px 6px -6px #777; | ||||
| 	box-shadow: 0 8px 6px -6px #777;*/ | ||||
| } | ||||
|  | ||||
| .content .sidebar .boxtitle { | ||||
| 	/* title of an infobox */ | ||||
| 	font-weight:bold; | ||||
| 	outline-color:-moz-use-text-color; | ||||
| 	outline-style:none; | ||||
| 	outline-width:0; | ||||
| 	padding: 2px; | ||||
| 	vertical-align:baseline; | ||||
| 	border:0 none; | ||||
| 	color:#FFFFFF; | ||||
| 	/*background-color: #7777FF;*/ | ||||
| 	background-color: #4665A2; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| .content .sidebar .boxtitle a { | ||||
| 	text-decoration: none; | ||||
| 	color: #FFFFFF; | ||||
| } | ||||
|  | ||||
| .content .sidebar .boxtitle a:hover { | ||||
| 	/*background-color: #BBBBFF;*/ | ||||
| 	color: #8899CC; | ||||
| 	margin-left: 0.5em; | ||||
| } | ||||
|  | ||||
| .content .sidebar .collapsible-box { | ||||
| 	margin-bottom: 1em; | ||||
| 	padding-left: 0.5em; | ||||
| 	margin-bottom: 0.5em; | ||||
| } | ||||
|  | ||||
| .content .sidebar .collapsible-box-header { | ||||
| 	background: #E5ECF9 none repeat scroll 0 0; | ||||
| 	border: #D4DBE8 1px solid; | ||||
| 	color: #1C94C4; | ||||
| } | ||||
|  | ||||
| .content .sidebar .collapsible-box-list { | ||||
| 	padding-left: 1.8em; | ||||
| 	margin-left: 0; | ||||
| 	line-height: 1.5em; | ||||
| } | ||||
|  | ||||
| .content .sidebar .collapsible-box-table { | ||||
| 	line-height: 1.5em; | ||||
| 	border-collapse: collapse; | ||||
| } | ||||
|  | ||||
| .content .sidebar .user_icon_img { | ||||
| 	height: 2em; | ||||
| @ -697,10 +665,12 @@ pre.prettyprint li.L9 { background: #eee } | ||||
| 	border-radius: 3px; | ||||
| } | ||||
|  | ||||
| /* | ||||
| .content .sidebar ul { | ||||
| 	margin: 0.2em 0 0.2em 0.5em; | ||||
| 	padding: 0.2em 0 0.2em 1em; | ||||
| } | ||||
| */ | ||||
|  | ||||
| .content .sidebar a { | ||||
| 	text-decoration: none; | ||||
| @ -708,22 +678,58 @@ pre.prettyprint li.L9 { background: #eee } | ||||
| 	padding-right: .2em; | ||||
| } | ||||
|  | ||||
| /* | ||||
| .content .sidebar table { | ||||
| 	font-size: 1em; | ||||
| 	width: 100%; | ||||
| 	margin: 0.2em 0 0.2em 0; | ||||
| 	padding: 0.2em 0 0.2em 1em; | ||||
| } | ||||
| */ | ||||
|  | ||||
| .content .infobox { | ||||
| 	position: absolute; | ||||
| 	top: 5px; | ||||
| 	right: 2px; | ||||
| 	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; | ||||
|  | ||||
| 	-moz-border-radius: 3px; | ||||
| 	-webkit-border-radius: 3px; | ||||
| 	border-radius: 3px; | ||||
|  | ||||
| /* | ||||
| 	-webkit-box-shadow: 0 8px 6px -6px #777; | ||||
| 	-moz-box-shadow: 0 8px 6px -6px #777; | ||||
| 	box-shadow: 0 8px 6px -6px #777;*/ | ||||
| 	color: #333333; | ||||
| } | ||||
|  | ||||
| .content .infobox .title { | ||||
| 	background: #E0E0E0; | ||||
| 	/*background: #E5ECF9 none repeat scroll 0 0;*/ | ||||
| 	border: none; | ||||
| 	color: #1C94C4; | ||||
|         font-size: 0.9em; | ||||
| 	padding: 0.5em; | ||||
|  | ||||
| 	-moz-border-radius: 3px; | ||||
| 	-webkit-border-radius: 3px; | ||||
| 	border-radius: 3px; | ||||
| } | ||||
|  | ||||
| .content .infobox ul { | ||||
| 	line-height: 1.5em; | ||||
| 	margin: 1px 0 0 0; | ||||
| 	padding: 0.5em 1.8em 0.5em 1.8em; | ||||
| } | ||||
|  | ||||
| .content .infobox pre { | ||||
| 	white-space: pre-wrap; | ||||
| 	margin: 0; | ||||
| 	padding: 0.5em 0.2em 0.5em 0.2em; | ||||
| } | ||||
|  | ||||
| .content .footer { | ||||
|  | ||||
| @ -85,14 +85,6 @@ | ||||
| 	margin-top: 1em; | ||||
| } | ||||
|  | ||||
| /*#project_catalog_mainarea_search_form .ui-accordion-header {*/ | ||||
| #project_catalog_mainarea_search_form_header { | ||||
| 	/* trying to emulate infostrip with the header of a jquery-ui's accordion widget */ | ||||
| 	background: #E5ECF9 none repeat scroll 0 0; | ||||
| 	border: #D4DBE8 1px solid; | ||||
| 	color: #1C94C4; | ||||
| } | ||||
|  | ||||
| #project_catalog_mainarea_search_form form { | ||||
| 	line-height: 2.5em; | ||||
| } | ||||
|  | ||||
| @ -50,40 +50,6 @@ | ||||
| 	white-space: pre-wrap; | ||||
| } | ||||
|  | ||||
| #site_home_mainarea_result_open_issues { | ||||
| 	margin-bottom: 1em; | ||||
| } | ||||
|  | ||||
| #site_home_mainarea_result_open_issues_header { | ||||
| 	background: none repeat scroll 0 0 #E5ECF9; | ||||
| 	border: 1px solid #D4DBE8; | ||||
| 	color: #1C94C4; | ||||
| 	font-size: 0.9em; | ||||
| } | ||||
|  | ||||
| #site_home_mainarea_result_open_issues_list { | ||||
| 	margin: 0; | ||||
| 	padding-left: 1.8em; | ||||
| 	line-height: 1.5em; | ||||
|  | ||||
| } | ||||
|  | ||||
| #site_home_mainarea_result_resolved_issues { | ||||
| 	margin-bottom: 1em; | ||||
| } | ||||
|  | ||||
| #site_home_mainarea_result_resolved_issues_header { | ||||
| 	background: none repeat scroll 0 0 #E5ECF9; | ||||
| 	border: 1px solid #D4DBE8; | ||||
| 	color: #1C94C4; | ||||
| 	font-size: 0.9em; | ||||
| } | ||||
|  | ||||
| #site_home_mainarea_result_resolved_issues_list { | ||||
| 	margin: 0; | ||||
| 	padding-left: 1.8em; | ||||
| 	line-height: 1.5em; | ||||
| } | ||||
| /*-----------------------------------------------  | ||||
|  * site show view  | ||||
|  *-----------------------------------------------*/ | ||||
|  | ||||
| @ -16,32 +16,6 @@ | ||||
| 	column-gap: 2em; | ||||
| } | ||||
|  | ||||
| #wiki_show_mainarea_result_info { | ||||
| 	position: absolute; | ||||
| 	top: 5px; | ||||
| 	right: 2px; | ||||
| 	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; | ||||
| } | ||||
|  | ||||
| #wiki_show_mainarea_result_info ul { | ||||
| 	padding-left: 2em; | ||||
| } | ||||
|  | ||||
| #wiki_show_mainarea_result_info .title { | ||||
| 	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; | ||||
| 	text-transform: uppercase; | ||||
| } | ||||
|  | ||||
| /*--------------------------------------------- | ||||
|  * wiki edit | ||||
|  *---------------------------------------------*/ | ||||
|  | ||||
		Reference in New Issue
	
	Block a user