wrote code to corelate issues and code revisions.
changed the code revision view to show corelated issues
This commit is contained in:
		@ -142,7 +142,7 @@ CREATE TABLE issue_change (
 | 
				
			|||||||
	PRIMARY KEY (projectid, id, sno),
 | 
						PRIMARY KEY (projectid, id, sno),
 | 
				
			||||||
	KEY issue_update_time (projectid, id, updatedon),
 | 
						KEY issue_update_time (projectid, id, updatedon),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CONSTRAINT issue_update_id FOREIGN KEY (projectid,id) REFERENCES issue(projectid,id)
 | 
						CONSTRAINT issue_change_id FOREIGN KEY (projectid,id) REFERENCES issue(projectid,id)
 | 
				
			||||||
		ON DELETE RESTRICT ON UPDATE CASCADE
 | 
							ON DELETE RESTRICT ON UPDATE CASCADE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
) charset=utf8 engine=InnoDB;
 | 
					) charset=utf8 engine=InnoDB;
 | 
				
			||||||
@ -168,6 +168,31 @@ CREATE TABLE issue_change_file_list (
 | 
				
			|||||||
		ON DELETE RESTRICT ON UPDATE CASCADE
 | 
							ON DELETE RESTRICT ON UPDATE CASCADE
 | 
				
			||||||
) charset=utf8 engine=InnoDB;
 | 
					) charset=utf8 engine=InnoDB;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CREATE TABLE issue_coderev (
 | 
				
			||||||
 | 
						projectid  VARCHAR(32)   NOT NULL,
 | 
				
			||||||
 | 
						issueid    BIGINT        NOT NULL,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						codeproid  VARCHAR(32)   NOT NULL,
 | 
				
			||||||
 | 
						coderev    VARCHAR(64)   NOT NULL, -- git commit id is 40 characters. subversion revision is a number.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						UNIQUE KEY issue_coderev_uid(projectid, issueid, codeproid, coderev),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						KEY issue_coderev_codekey (codeproid, coderev),
 | 
				
			||||||
 | 
						KEY issue_coderev_issuekey (projectid, issueid),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						CONSTRAINT issue_coderev_projectid FOREIGN KEY (projectid) REFERENCES project(id)
 | 
				
			||||||
 | 
							ON DELETE RESTRICT ON UPDATE CASCADE,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						CONSTRAINT issue_coderev_codeproid FOREIGN KEY (codeproid) REFERENCES project(id)
 | 
				
			||||||
 | 
							ON DELETE RESTRICT ON UPDATE CASCADE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- Commit message is typypicall free text. Its issue reference could be error-prone.
 | 
				
			||||||
 | 
						-- So i won't have this constraint enforced.
 | 
				
			||||||
 | 
						-- CONSTRAINT issue_coderev_issueid FOREIGN KEY (projectid,issueid) REFERENCES issue(projectid,id)
 | 
				
			||||||
 | 
						--	ON DELETE RESTRICT ON UPDATE CASCADE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					) charset=utf8 engine=InnoDB;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CREATE TABLE file (
 | 
					CREATE TABLE file (
 | 
				
			||||||
	projectid   VARCHAR(32)   NOT NULL,
 | 
						projectid   VARCHAR(32)   NOT NULL,
 | 
				
			||||||
	name        VARCHAR(255)  NOT NULL,
 | 
						name        VARCHAR(255)  NOT NULL,
 | 
				
			||||||
 | 
				
			|||||||
@ -109,6 +109,45 @@ sub close_database
 | 
				
			|||||||
	$dbh->disconnect ();
 | 
						$dbh->disconnect ();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub find_issue_reference_in_commit_message
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						my ($dbh, $prefix, $projectid, $revision, $commit_message) = @_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# find [[#IXXXX]]
 | 
				
			||||||
 | 
						my @issue_ids = ($commit_message =~ /\[\[#I(\d+)\]\]/g);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# find unique issue ids in the findings.
 | 
				
			||||||
 | 
						my %tmp;
 | 
				
			||||||
 | 
						@tmp{@issue_ids}=1;
 | 
				
			||||||
 | 
						my @unique_issue_ids=keys %tmp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						$dbh->begin_work ();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						my $query = $dbh->prepare ("DELETE FROM ${QC}${prefix}issue_coderev${QC} WHERE ${QC}codeproid${QC}=? AND ${QC}coderev${QC}=?");
 | 
				
			||||||
 | 
						if (!$query || !$query->execute ($projectid, $revision))
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							my $errstr = $dbh->errstr();
 | 
				
			||||||
 | 
							if ($query) { $query->finish (); }
 | 
				
			||||||
 | 
							$dbh->rollback ();
 | 
				
			||||||
 | 
							return (-1, $errstr);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						$query->finish ();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for my $issue_id(@unique_issue_ids)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							my $query = $dbh->prepare ("INSERT INTO ${QC}${prefix}issue_coderev${QC} (${QC}projectid${QC},${QC}issueid${QC},${QC}codeproid${QC},${QC}coderev${QC}) VALUES (?,?,?,?)");
 | 
				
			||||||
 | 
							if ($query)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								# ignore errors
 | 
				
			||||||
 | 
								$query->execute ($projectid, $issue_id, $projectid, $revision);
 | 
				
			||||||
 | 
								$query->finish ();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						$dbh->commit ();
 | 
				
			||||||
 | 
						return (0, undef);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sub write_commit_log
 | 
					sub write_commit_log
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	my ($dbh, $prefix, $projectid, $revision, $userid) = @_;
 | 
						my ($dbh, $prefix, $projectid, $revision, $userid) = @_;
 | 
				
			||||||
@ -136,7 +175,7 @@ sub write_commit_log
 | 
				
			|||||||
	if (!$query || !$query->execute ('code', $projectid, $message, 'commit', $userid))
 | 
						if (!$query || !$query->execute ('code', $projectid, $message, 'commit', $userid))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		my $errstr = $dbh->errstr();
 | 
							my $errstr = $dbh->errstr();
 | 
				
			||||||
		$query->finish ();
 | 
							if ($query) { $query->finish (); }
 | 
				
			||||||
		$dbh->rollback ();
 | 
							$dbh->rollback ();
 | 
				
			||||||
		return (-1, $errstr);
 | 
							return (-1, $errstr);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@ -185,8 +224,8 @@ sub get_commit_message
 | 
				
			|||||||
		return undef;
 | 
							return undef;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	my $author = $fs->revision_prop ($REV, 'svn:log');
 | 
						my $logmsg = $fs->revision_prop ($REV, 'svn:log');
 | 
				
			||||||
	return $author;
 | 
						return $logmsg;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -317,6 +356,7 @@ sub email_message_to_project_members
 | 
				
			|||||||
	my $query = $dbh->prepare ("SELECT ${QC}userid${QC} FROM ${QC}${prefix}project_membership${QC} WHERE ${QC}projectid${QC}=?");
 | 
						my $query = $dbh->prepare ("SELECT ${QC}userid${QC} FROM ${QC}${prefix}project_membership${QC} WHERE ${QC}projectid${QC}=?");
 | 
				
			||||||
	if (!$query || !$query->execute ($projectid))
 | 
						if (!$query || !$query->execute ($projectid))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 | 
							if ($query) { $query->finish (); }
 | 
				
			||||||
		return (-1, $dbh->errstr());
 | 
							return (-1, $dbh->errstr());
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -408,6 +448,9 @@ if (!defined($dbh))
 | 
				
			|||||||
	exit (1);
 | 
						exit (1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					my $raw_commit_message = get_commit_message();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					find_issue_reference_in_commit_message ($dbh, $cfg->{database_prefix}, $REPOBASE, $REV, $raw_commit_message);
 | 
				
			||||||
write_commit_log ($dbh, $cfg->{database_prefix}, $REPOBASE, $REV, $AUTHOR);
 | 
					write_commit_log ($dbh, $cfg->{database_prefix}, $REPOBASE, $REV, $AUTHOR);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (lc($cfg->{commit_notification}) eq 'yes')
 | 
					if (lc($cfg->{commit_notification}) eq 'yes')
 | 
				
			||||||
@ -424,10 +467,9 @@ if (lc($cfg->{commit_notification}) eq 'yes')
 | 
				
			|||||||
		$commit_message = format_commit_url($cfg->{commit_notification_url}, $REPOBASE, $AUTHOR, $REV);
 | 
							$commit_message = format_commit_url($cfg->{commit_notification_url}, $REPOBASE, $AUTHOR, $REV);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	my $m = get_commit_message ();
 | 
						if (defined($raw_commit_message))
 | 
				
			||||||
	if (defined($m))
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		$commit_message = $commit_message . "\n" . $m;
 | 
							$commit_message = $commit_message . "\n" . $raw_commit_message;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -7,9 +7,13 @@ use DBI;
 | 
				
			|||||||
use File::Basename;
 | 
					use File::Basename;
 | 
				
			||||||
use POSIX qw(strftime);
 | 
					use POSIX qw(strftime);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use SVN::Core;
 | 
				
			||||||
 | 
					use SVN::Repos;
 | 
				
			||||||
 | 
					use SVN::Fs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
my $CFG_FILE = '@CFGDIR@/codepot.ini';
 | 
					my $CFG_FILE = '@CFGDIR@/codepot.ini';
 | 
				
			||||||
my $REPO = $ARGV[0];
 | 
					my $REPOFS = $ARGV[0];
 | 
				
			||||||
my $REPOBASE = basename($REPO);
 | 
					my $REPOBASE = basename($REPOFS);
 | 
				
			||||||
my $REV = $ARGV[1];
 | 
					my $REV = $ARGV[1];
 | 
				
			||||||
my $USER = $ARGV[2];
 | 
					my $USER = $ARGV[2];
 | 
				
			||||||
my $PROPNAME = $ARGV[3];
 | 
					my $PROPNAME = $ARGV[3];
 | 
				
			||||||
@ -88,6 +92,46 @@ sub close_database
 | 
				
			|||||||
	$dbh->disconnect ();
 | 
						$dbh->disconnect ();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub find_issue_reference_in_commit_message
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						my ($dbh, $prefix, $projectid, $revision, $commit_message) = @_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# find [[#IXXXX]]
 | 
				
			||||||
 | 
						my @issue_ids = ($commit_message =~ /\[\[#I(\d+)\]\]/g);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						# find unique issue ids in the findings.
 | 
				
			||||||
 | 
						my %tmp;
 | 
				
			||||||
 | 
						@tmp{@issue_ids}=1;
 | 
				
			||||||
 | 
						my @unique_issue_ids=keys %tmp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						$dbh->begin_work ();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						my $query = $dbh->prepare ("DELETE FROM ${QC}${prefix}issue_coderev${QC} WHERE ${QC}codeproid${QC}=? AND ${QC}coderev${QC}=?");
 | 
				
			||||||
 | 
						if (!$query || !$query->execute ($projectid, $revision))
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							my $errstr = $dbh->errstr();
 | 
				
			||||||
 | 
							if ($query) { $query->finish (); }
 | 
				
			||||||
 | 
							$dbh->rollback ();
 | 
				
			||||||
 | 
							return (-1, $errstr);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						$query->finish ();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for my $issue_id(@unique_issue_ids)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							my $query = $dbh->prepare ("INSERT INTO ${QC}${prefix}issue_coderev${QC} (${QC}projectid${QC},${QC}issueid${QC},${QC}codeproid${QC},${QC}coderev${QC}) VALUES (?,?,?,?)");
 | 
				
			||||||
 | 
							if ($query)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								# ignore errors
 | 
				
			||||||
 | 
								$query->execute ($projectid, $issue_id, $projectid, $revision);
 | 
				
			||||||
 | 
								$query->finish ();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						$dbh->commit ();
 | 
				
			||||||
 | 
						return (0, undef);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sub write_revprop_change_log
 | 
					sub write_revprop_change_log
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	my ($dbh, $prefix, $projectid, $revision, $userid, $propname, $action) = @_;
 | 
						my ($dbh, $prefix, $projectid, $revision, $userid, $propname, $action) = @_;
 | 
				
			||||||
@ -106,7 +150,7 @@ sub write_revprop_change_log
 | 
				
			|||||||
	if (!$query || !$query->execute ('code', $projectid, $message, $createdon, 'revpropchange', $userid))
 | 
						if (!$query || !$query->execute ('code', $projectid, $message, $createdon, 'revpropchange', $userid))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		my $errstr = $dbh->errstr();
 | 
							my $errstr = $dbh->errstr();
 | 
				
			||||||
		$query->finish ();
 | 
							if ($query) { $query->finish (); }
 | 
				
			||||||
		$dbh->rollback ();
 | 
							$dbh->rollback ();
 | 
				
			||||||
		return (-1, $errstr);
 | 
							return (-1, $errstr);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@ -116,6 +160,27 @@ sub write_revprop_change_log
 | 
				
			|||||||
	return (0, undef);
 | 
						return (0, undef);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sub get_commit_message
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						my $pool = SVN::Pool->new(undef);
 | 
				
			||||||
 | 
						my $svn = eval { SVN::Repos::open ($REPOFS, $pool) };
 | 
				
			||||||
 | 
						if (!defined($svn))
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							print (STDERR "Cannot open svn - $REPOFS\n");
 | 
				
			||||||
 | 
							return undef;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						my $fs = $svn->fs ();
 | 
				
			||||||
 | 
						if (!defined($fs))
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							print (STDERR "Cannot open fs - $REPOFS\n");
 | 
				
			||||||
 | 
							return undef;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						my $logmsg = $fs->revision_prop ($REV, 'svn:log');
 | 
				
			||||||
 | 
						return $logmsg;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#------------------------------------------------------------
 | 
					#------------------------------------------------------------
 | 
				
			||||||
# MAIN
 | 
					# MAIN
 | 
				
			||||||
#------------------------------------------------------------
 | 
					#------------------------------------------------------------
 | 
				
			||||||
@ -134,6 +199,9 @@ if (!defined($dbh))
 | 
				
			|||||||
	exit (1);
 | 
						exit (1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					my $raw_commit_message = get_commit_message();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					find_issue_reference_in_commit_message ($dbh, $cfg->{database_prefix}, $REPOBASE, $REV, $raw_commit_message);
 | 
				
			||||||
write_revprop_change_log ($dbh, $cfg->{database_prefix}, $REPOBASE, $REV, $USER, $PROPNAME, $ACTION);
 | 
					write_revprop_change_log ($dbh, $cfg->{database_prefix}, $REPOBASE, $REV, $USER, $PROPNAME, $ACTION);
 | 
				
			||||||
close_database ($dbh);
 | 
					close_database ($dbh);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -724,7 +724,7 @@ class Code extends Controller
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		$this->load->model ('ProjectModel', 'projects');
 | 
							$this->load->model ('ProjectModel', 'projects');
 | 
				
			||||||
		$this->load->model ('SubversionModel', 'subversion');
 | 
							$this->load->model ('SubversionModel', 'subversion');
 | 
				
			||||||
		$this->load->model ('CodeReviewModel', 'code_review');
 | 
							$this->load->model ('CodeModel', 'code');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		$login = $this->login->getUser ();
 | 
							$login = $this->login->getUser ();
 | 
				
			||||||
		$revision_saved = -1;
 | 
							$revision_saved = -1;
 | 
				
			||||||
@ -759,10 +759,10 @@ class Code extends Controller
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
				else
 | 
									else
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					$review_sno = $this->code_review->insertReview ($projectid, $rev, $login['id'], $review_comment);
 | 
										$review_sno = $this->code->insertReview ($projectid, $rev, $login['id'], $review_comment);
 | 
				
			||||||
					if ($review_sno === FALSE)
 | 
										if ($review_sno === FALSE)
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						$status = 'error - ' . $this->code_review->getErrorMessage();
 | 
											$status = 'error - ' . $this->code->getErrorMessage();
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
					else
 | 
										else
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
@ -792,7 +792,7 @@ class Code extends Controller
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		$this->load->model ('ProjectModel', 'projects');
 | 
							$this->load->model ('ProjectModel', 'projects');
 | 
				
			||||||
		$this->load->model ('SubversionModel', 'subversion');
 | 
							$this->load->model ('SubversionModel', 'subversion');
 | 
				
			||||||
		$this->load->model ('CodeReviewModel', 'code_review');
 | 
							$this->load->model ('CodeModel', 'code');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		$login = $this->login->getUser ();
 | 
							$login = $this->login->getUser ();
 | 
				
			||||||
		$revision_saved = -1;
 | 
							$revision_saved = -1;
 | 
				
			||||||
@ -832,9 +832,9 @@ class Code extends Controller
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
				else
 | 
									else
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					if ($this->code_review->updateReview ($projectid, $rev, (integer)$review_no, $login['id'], $review_comment, TRUE) === FALSE)
 | 
										if ($this->code->updateReview ($projectid, $rev, (integer)$review_no, $login['id'], $review_comment, TRUE) === FALSE)
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
						$status = 'error - ' . $this->code_review->getErrorMessage();
 | 
											$status = 'error - ' . $this->code->getErrorMessage();
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
					else
 | 
										else
 | 
				
			||||||
					{
 | 
										{
 | 
				
			||||||
@ -993,7 +993,7 @@ class Code extends Controller
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		$this->load->model ('ProjectModel', 'projects');
 | 
							$this->load->model ('ProjectModel', 'projects');
 | 
				
			||||||
		$this->load->model ('SubversionModel', 'subversion');
 | 
							$this->load->model ('SubversionModel', 'subversion');
 | 
				
			||||||
		$this->load->model ('CodeReviewModel', 'code_review');
 | 
							$this->load->model ('CodeModel', 'code');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		$login = $this->login->getUser ();
 | 
							$login = $this->login->getUser ();
 | 
				
			||||||
		if (CODEPOT_SIGNIN_COMPULSORY && $login['id'] == '')
 | 
							if (CODEPOT_SIGNIN_COMPULSORY && $login['id'] == '')
 | 
				
			||||||
@ -1048,7 +1048,11 @@ class Code extends Controller
 | 
				
			|||||||
						if (array_key_exists('rev', $h)) $r_rev = $h['rev'];
 | 
											if (array_key_exists('rev', $h)) $r_rev = $h['rev'];
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				$reviews = $this->code_review->getReviews ($projectid, $r_rev);
 | 
					
 | 
				
			||||||
 | 
									$related_issues = $this->code->getRelatedIssues ($projectid, $r_rev);
 | 
				
			||||||
 | 
									if ($related_issues == FALSE) $related_issues = array();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									$reviews = $this->code->getReviews ($projectid, $r_rev);
 | 
				
			||||||
				if ($reviews === FALSE)
 | 
									if ($reviews === FALSE)
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					$data['project'] = $project;
 | 
										$data['project'] = $project;
 | 
				
			||||||
@ -1122,6 +1126,7 @@ class Code extends Controller
 | 
				
			|||||||
					$data['headpath'] = $path;
 | 
										$data['headpath'] = $path;
 | 
				
			||||||
					$data['file'] = $file;
 | 
										$data['file'] = $file;
 | 
				
			||||||
					$data['reviews'] = $reviews; 
 | 
										$data['reviews'] = $reviews; 
 | 
				
			||||||
 | 
										$data['related_issues'] = $related_issues;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					$data['revision'] = $rev;
 | 
										$data['revision'] = $rev;
 | 
				
			||||||
					$data['prev_revision'] = $prev_revision;
 | 
										$data['prev_revision'] = $prev_revision;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
wwwdir=$(WWWDIR)/codepot/models
 | 
					wwwdir=$(WWWDIR)/codepot/models
 | 
				
			||||||
www_DATA =  \
 | 
					www_DATA =  \
 | 
				
			||||||
	codereviewmodel.php \
 | 
						codemodel.php \
 | 
				
			||||||
	dbloginmodel.php \
 | 
						dbloginmodel.php \
 | 
				
			||||||
	filemodel.php \
 | 
						filemodel.php \
 | 
				
			||||||
	index.html \
 | 
						index.html \
 | 
				
			||||||
 | 
				
			|||||||
@ -145,7 +145,7 @@ sysconfdir = @sysconfdir@
 | 
				
			|||||||
target_alias = @target_alias@
 | 
					target_alias = @target_alias@
 | 
				
			||||||
wwwdir = $(WWWDIR)/codepot/models
 | 
					wwwdir = $(WWWDIR)/codepot/models
 | 
				
			||||||
www_DATA = \
 | 
					www_DATA = \
 | 
				
			||||||
	codereviewmodel.php \
 | 
						codemodel.php \
 | 
				
			||||||
	dbloginmodel.php \
 | 
						dbloginmodel.php \
 | 
				
			||||||
	filemodel.php \
 | 
						filemodel.php \
 | 
				
			||||||
	index.html \
 | 
						index.html \
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class CodeReviewModel extends Model
 | 
					class CodeModel extends Model
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	protected $errmsg = '';
 | 
						protected $errmsg = '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -9,12 +9,36 @@ class CodeReviewModel extends Model
 | 
				
			|||||||
		return $this->errmsg;
 | 
							return $this->errmsg;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	function CodeReviewModel ()
 | 
						function CodeModel ()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		parent::Model ();
 | 
							parent::Model ();
 | 
				
			||||||
		$this->load->database ();
 | 
							$this->load->database ();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						function getRelatedIssues ($projectid, $revision)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							$this->db->trans_begin ();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$this->db->from ('issue');
 | 
				
			||||||
 | 
							$this->db->join ('issue_coderev', 'issue.projectid = issue_coderev.projectid AND issue.id = issue_coderev.issueid');
 | 
				
			||||||
 | 
							//$this->db->where ('issue_coderev.projectid', (string)$projectid);
 | 
				
			||||||
 | 
							$this->db->where ('issue_coderev.codeproid', (string)$projectid);
 | 
				
			||||||
 | 
							$this->db->where ('issue_coderev.coderev', $revision);
 | 
				
			||||||
 | 
							$this->db->order_by ('issue.projectid ASC');
 | 
				
			||||||
 | 
							$this->db->order_by ('issue_coderev.issueid ASC');
 | 
				
			||||||
 | 
							$this->db->select ('issue.projectid, issue_coderev.issueid, issue.summary, issue.type, issue.status, issue.priority, issue.owner');
 | 
				
			||||||
 | 
							$query = $this->db->get ();
 | 
				
			||||||
 | 
							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 getReviews ($projectid, $revision)
 | 
						function getReviews ($projectid, $revision)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		$this->db->trans_begin ();
 | 
							$this->db->trans_begin ();
 | 
				
			||||||
@ -255,7 +255,7 @@ $this->load->view (
 | 
				
			|||||||
		<div style='clear: both'></div>
 | 
							<div style='clear: both'></div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<div id='code_blame_metadata_body'>
 | 
						<div id='code_blame_metadata_body' class='codepot-metadata-collapsible-body'>
 | 
				
			||||||
		<div class='codepot-plain-text-view'>
 | 
							<div class='codepot-plain-text-view'>
 | 
				
			||||||
			<pre><?php print htmlspecialchars ($file['logmsg']); ?></pre>
 | 
								<pre><?php print htmlspecialchars ($file['logmsg']); ?></pre>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
				
			|||||||
@ -287,7 +287,7 @@ $this->load->view (
 | 
				
			|||||||
			<div style='clear: both'></div>
 | 
								<div style='clear: both'></div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<div id='code_diff_metadata_body'>
 | 
							<div id='code_diff_metadata_body' class='codepot-metadata-collapsible-body'>
 | 
				
			||||||
			<div class='codepot-plain-text-view'>
 | 
								<div class='codepot-plain-text-view'>
 | 
				
			||||||
				<pre><?php print htmlspecialchars ($file['logmsg']); ?></pre>
 | 
									<pre><?php print htmlspecialchars ($file['logmsg']); ?></pre>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
 | 
				
			|||||||
@ -281,7 +281,7 @@ $this->load->view (
 | 
				
			|||||||
		<div style='clear: both'></div>
 | 
							<div style='clear: both'></div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<div id='code_file_metadata_body'>
 | 
						<div id='code_file_metadata_body' class='codepot-metadata-collapsible-body'>
 | 
				
			||||||
		<div class='codepot-plain-text-view'>
 | 
							<div class='codepot-plain-text-view'>
 | 
				
			||||||
			<pre><?php print htmlspecialchars ($file['logmsg']); ?></pre>
 | 
								<pre><?php print htmlspecialchars ($file['logmsg']); ?></pre>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
				
			|||||||
@ -883,7 +883,7 @@ $this->load->view (
 | 
				
			|||||||
		<div style='clear: both;'></div>
 | 
							<div style='clear: both;'></div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<div id='code_folder_metadata_body'>
 | 
						<div id='code_folder_metadata_body' class='codepot-metadata-collapsible-body'>
 | 
				
			||||||
		<div class='codepot-plain-text-view'>
 | 
							<div class='codepot-plain-text-view'>
 | 
				
			||||||
			<pre><?php print htmlspecialchars ($file['logmsg']); ?></pre>
 | 
								<pre><?php print htmlspecialchars ($file['logmsg']); ?></pre>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
				
			|||||||
@ -362,7 +362,6 @@ $(function() {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	);
 | 
						);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
	function make_edit_review_comment_ok_function (no)
 | 
						function make_edit_review_comment_ok_function (no)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		var form_name = '#code_revision_edit_review_comment_form_' + no;
 | 
							var form_name = '#code_revision_edit_review_comment_form_' + no;
 | 
				
			||||||
@ -673,10 +672,41 @@ $history = $file['history'];
 | 
				
			|||||||
		<div style='clear: both'></div>
 | 
							<div style='clear: both'></div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<div id="code_revision_metadata_body">
 | 
					
 | 
				
			||||||
 | 
						<div id="code_revision_metadata_body" class='codepot-metadata-collapsible-body'>
 | 
				
			||||||
		<div class="codepot-plain-text-view">
 | 
							<div class="codepot-plain-text-view">
 | 
				
			||||||
			<pre id="code_revision_metadata_text"><?php print htmlspecialchars($history['msg']); ?></pre>
 | 
								<?php
 | 
				
			||||||
 | 
									$transformed_message = htmlspecialchars($history['msg']);
 | 
				
			||||||
 | 
									foreach ($related_issues as $ri)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										$hex_issueid = $this->converter->AsciiToHex ($ri->issueid);
 | 
				
			||||||
 | 
										//$transformed_message = preg_replace ("/\[\[#I{$ri->issueid}\]\]/", anchor ("/issue/show/{$ri->projectid}/{$hex_issueid}", $ri->issueid . ':' . htmlspecialchars($ri->summary), "class='codepot-issue-type-{$ri->type}'"), $transformed_message);
 | 
				
			||||||
 | 
										//$transformed_message = preg_replace ("/\[\[(#I{$ri->issueid})\]\]/", "[[<span class='codepot-issue-type-{$ri->type}'>\${1}</span>]]", $transformed_message);
 | 
				
			||||||
 | 
										$transformed_message = preg_replace (
 | 
				
			||||||
 | 
											"/\[\[(#I{$ri->issueid})\]\]/", 
 | 
				
			||||||
 | 
											'[[' . anchor ("/issue/show/{$ri->projectid}/{$hex_issueid}", "\${1}", "class='codepot-issue-type-{$ri->type}'") . ']]',
 | 
				
			||||||
 | 
											$transformed_message
 | 
				
			||||||
 | 
										);
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								?>
 | 
				
			||||||
 | 
								<pre id="code_revision_metadata_text"><?php print $transformed_message; ?></pre>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
							<?php 
 | 
				
			||||||
 | 
								if (!empty($related_issues))
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									print '<div><ul id="code_revision_related_issue_list" class="codepot-horizontal-list">';
 | 
				
			||||||
 | 
									foreach ($related_issues as $ri)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										$hex_issueid = $this->converter->AsciiToHex ($ri->issueid);
 | 
				
			||||||
 | 
										print '<li>';
 | 
				
			||||||
 | 
										print anchor ("/issue/show/{$ri->projectid}/{$hex_issueid}", $ri->issueid . ':' . htmlspecialchars($ri->summary), "class='codepot-issue-type-{$ri->type}'");
 | 
				
			||||||
 | 
										print '</li>';
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									print '</ul></div>';
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							<div style='clear: both'></div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -613,7 +613,7 @@ $this->load->view (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<div id='file_show_metadata' class='collapsible-box'>
 | 
					<div id='file_show_metadata' class='collapsible-box'>
 | 
				
			||||||
	<div id='file_show_metadata_header' class='collapsible-box-header'><?php print $this->lang->line('Metadata')?></div>
 | 
						<div id='file_show_metadata_header' class='collapsible-box-header'><?php print $this->lang->line('Metadata')?></div>
 | 
				
			||||||
	<div id='file_show_metadata_body'>
 | 
						<div id='file_show_metadata_body' class='codepot-metadata-collapsible-body'>
 | 
				
			||||||
	<ul id='file_show_metadata_list'>
 | 
						<ul id='file_show_metadata_list'>
 | 
				
			||||||
	<li><?php print $this->lang->line('Created on')?> <?php print codepot_dbdatetodispdate($file->createdon); ?></li>
 | 
						<li><?php print $this->lang->line('Created on')?> <?php print codepot_dbdatetodispdate($file->createdon); ?></li>
 | 
				
			||||||
	<li><?php print $this->lang->line('Created by')?> <?php print htmlspecialchars($file->createdby); ?></li>
 | 
						<li><?php print $this->lang->line('Created by')?> <?php print htmlspecialchars($file->createdby); ?></li>
 | 
				
			||||||
@ -626,7 +626,7 @@ $this->load->view (
 | 
				
			|||||||
<div id='file_show_files' class='collapsible-box'>
 | 
					<div id='file_show_files' class='collapsible-box'>
 | 
				
			||||||
	<div id='file_show_files_header' class='collapsible-box-header'><?php print $this->lang->line('Files')?></div>
 | 
						<div id='file_show_files_header' class='collapsible-box-header'><?php print $this->lang->line('Files')?></div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<div id='file_show_files_body'>
 | 
						<div id='file_show_files_body' class='codepot-metadata-collapsible-body'>
 | 
				
			||||||
	<?php if (isset($login['id']) && $login['id'] != ''): ?>
 | 
						<?php if (isset($login['id']) && $login['id'] != ''): ?>
 | 
				
			||||||
	<div>
 | 
						<div>
 | 
				
			||||||
		<a id="file_show_add_file_button" href='#'><?php print $this->lang->line('Add')?></a>
 | 
							<a id="file_show_add_file_button" href='#'><?php print $this->lang->line('Add')?></a>
 | 
				
			||||||
 | 
				
			|||||||
@ -927,7 +927,7 @@ function print_issue_state ($con, $issue, $old, $issue_type_array, $issue_status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if ($old == NULL || $issue->type != $old->type)
 | 
						if ($old == NULL || $issue->type != $old->type)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		printf ('<li class="issue-type-%s">', $issue->type);
 | 
							printf ('<li class="codepot-issue-type-%s">', $issue->type);
 | 
				
			||||||
		print $con->lang->line('Type');
 | 
							print $con->lang->line('Type');
 | 
				
			||||||
		print ': '; 
 | 
							print ': '; 
 | 
				
			||||||
		print htmlspecialchars($type);
 | 
							print htmlspecialchars($type);
 | 
				
			||||||
@ -936,7 +936,7 @@ function print_issue_state ($con, $issue, $old, $issue_type_array, $issue_status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if ($old == NULL || $issue->status != $old->status)
 | 
						if ($old == NULL || $issue->status != $old->status)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		printf ('<li class="issue-status-%s">', $issue->status);
 | 
							printf ('<li class="codepot-issue-status-%s">', $issue->status);
 | 
				
			||||||
		print $con->lang->line('Status');
 | 
							print $con->lang->line('Status');
 | 
				
			||||||
		print ': '; 
 | 
							print ': '; 
 | 
				
			||||||
		print htmlspecialchars($status);
 | 
							print htmlspecialchars($status);
 | 
				
			||||||
@ -945,7 +945,7 @@ function print_issue_state ($con, $issue, $old, $issue_type_array, $issue_status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if ($old == NULL || $issue->priority != $old->priority)
 | 
						if ($old == NULL || $issue->priority != $old->priority)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		printf ('<li class="issue-priority-%s">', $issue->priority);
 | 
							printf ('<li class="codepot-issue-priority-%s">', $issue->priority);
 | 
				
			||||||
		print $con->lang->line('Priority');
 | 
							print $con->lang->line('Priority');
 | 
				
			||||||
		print ': '; 
 | 
							print ': '; 
 | 
				
			||||||
		print htmlspecialchars($priority);
 | 
							print htmlspecialchars($priority);
 | 
				
			||||||
@ -954,7 +954,7 @@ function print_issue_state ($con, $issue, $old, $issue_type_array, $issue_status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if ($old == NULL || $issue->owner != $old->owner)
 | 
						if ($old == NULL || $issue->owner != $old->owner)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		print '<li class="issue-owner">';
 | 
							print '<li class="codepot-issue-owner">';
 | 
				
			||||||
		if ($issue->owner != '')
 | 
							if ($issue->owner != '')
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			print $con->lang->line('Owner');
 | 
								print $con->lang->line('Owner');
 | 
				
			||||||
@ -994,20 +994,31 @@ function print_issue_state ($con, $issue, $old, $issue_type_array, $issue_status
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<div id='issue_show_state' class='collapsible-box'>
 | 
					<div id='issue_show_state' class='collapsible-box'>
 | 
				
			||||||
	<div id='issue_show_metadata_header' class='collapsible-box-header'><?php print $this->lang->line('State')?></div>
 | 
						<div id='issue_show_metadata_header' class='collapsible-box-header'><?php print $this->lang->line('State')?></div>
 | 
				
			||||||
	<div id='issue_show_metadata_body'>
 | 
						<div id='issue_show_metadata_body' class='codepot-metadata-collapsible-body'>
 | 
				
			||||||
		<ul id='issue_show_metadata_list' class='codepot-issue-horizontal-list'>
 | 
							<ul id='issue_show_metadata_list' class='codepot-horizontal-list'>
 | 
				
			||||||
			<li><?php print $this->lang->line('Created on')?> <?php print codepot_dbdatetodispdate($issue->createdon); ?></li>
 | 
								<li><?php print $this->lang->line('Created on')?> <?php print codepot_dbdatetodispdate($issue->createdon); ?></li>
 | 
				
			||||||
			<li><?php print $this->lang->line('Created by')?> <?php print htmlspecialchars($issue->createdby); ?></li>
 | 
								<li><?php print $this->lang->line('Created by')?> <?php print htmlspecialchars($issue->createdby); ?></li>
 | 
				
			||||||
			<li><?php print $this->lang->line('Last updated on')?> <?php print codepot_dbdatetodispdate($issue->updatedon); ?></li>
 | 
								<li><?php print $this->lang->line('Last updated on')?> <?php print codepot_dbdatetodispdate($issue->updatedon); ?></li>
 | 
				
			||||||
			<li><?php print $this->lang->line('Last updated by')?> <?php print htmlspecialchars($issue->updatedby); ?></li>
 | 
								<li><?php print $this->lang->line('Last updated by')?> <?php print htmlspecialchars($issue->updatedby); ?></li>
 | 
				
			||||||
		</ul>
 | 
							</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<ul id='issue_show_state_list' class='codepot-issue-horizontal-list'>
 | 
							<ul id='issue_show_state_list' class='codepot-horizontal-list'>
 | 
				
			||||||
			<?php
 | 
								<?php
 | 
				
			||||||
			print_issue_state ($this, $issue, NULL, $issue_type_array, $issue_status_array, $issue_priority_array);
 | 
								print_issue_state ($this, $issue, NULL, $issue_type_array, $issue_status_array, $issue_priority_array);
 | 
				
			||||||
			?>
 | 
								?>
 | 
				
			||||||
		</ul>
 | 
							</ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							<?php
 | 
				
			||||||
 | 
								if (!empty($related_code_revisions))
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									print '<ul id="issue_show_coderev_list" class="codepot-horizontal-list">';
 | 
				
			||||||
 | 
									foreach ($related_code_revisions as $r)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									print '</ul>';
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							?>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<div style='clear: both'></div>
 | 
							<div style='clear: both'></div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
@ -1088,7 +1099,7 @@ function print_issue_state ($con, $issue, $old, $issue_type_array, $issue_status
 | 
				
			|||||||
			print '<div style="clear: both;"></div>';
 | 
								print '<div style="clear: both;"></div>';
 | 
				
			||||||
		print '</div>';
 | 
							print '</div>';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		print '<ul id="issue_show_change_start_list" class="codepot-issue-horizontal-list">';
 | 
							print '<ul id="issue_show_change_start_list" class="codepot-horizontal-list">';
 | 
				
			||||||
			print_issue_state ($this, $new, NULL, $issue_type_array, $issue_status_array, $issue_priority_array);
 | 
								print_issue_state ($this, $new, NULL, $issue_type_array, $issue_status_array, $issue_priority_array);
 | 
				
			||||||
		print '</ul>';
 | 
							print '</ul>';
 | 
				
			||||||
		print '<div style="clear: both;"></div>';
 | 
							print '<div style="clear: both;"></div>';
 | 
				
			||||||
@ -1118,7 +1129,7 @@ function print_issue_state ($con, $issue, $old, $issue_type_array, $issue_status
 | 
				
			|||||||
		print '<div style="clear: both;"></div>';
 | 
							print '<div style="clear: both;"></div>';
 | 
				
			||||||
		print '</div>';
 | 
							print '</div>';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		print '<ul class="codepot-issue-horizontal-list">';
 | 
							print '<ul class="codepot-horizontal-list">';
 | 
				
			||||||
		print_issue_state ($this, $new, $old, $issue_type_array, $issue_status_array, $issue_priority_array);
 | 
							print_issue_state ($this, $new, $old, $issue_type_array, $issue_status_array, $issue_priority_array);
 | 
				
			||||||
		print '</ul>';
 | 
							print '</ul>';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -549,7 +549,7 @@ $this->load->view (
 | 
				
			|||||||
		<?php print $this->lang->line('WIKI_ATTACHMENTS')?>
 | 
							<?php print $this->lang->line('WIKI_ATTACHMENTS')?>
 | 
				
			||||||
		<a href='#' id='wiki_edit_add_files_button'><?php print $this->lang->line('New')?></a>
 | 
							<a href='#' id='wiki_edit_add_files_button'><?php print $this->lang->line('New')?></a>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div id='wiki_edit_files_body'>
 | 
						<div id='wiki_edit_files_body' class='codepot-metadata-collapsible-body'>
 | 
				
			||||||
		<input type='file' id='wiki_edit_add_files' name='wiki_add_files' multiple='' autocomplete='off' style='color: transparent; visibility: hidden; display: none;' />
 | 
							<input type='file' id='wiki_edit_add_files' name='wiki_add_files' multiple='' autocomplete='off' style='color: transparent; visibility: hidden; display: none;' />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<ul id='wiki_edit_file_list'>
 | 
							<ul id='wiki_edit_file_list'>
 | 
				
			||||||
 | 
				
			|||||||
@ -445,6 +445,13 @@ $(function () {
 | 
				
			|||||||
					shift: false,
 | 
										shift: false,
 | 
				
			||||||
					alt: true
 | 
										alt: true
 | 
				
			||||||
				},
 | 
									},
 | 
				
			||||||
 | 
									{ // alt-k
 | 
				
			||||||
 | 
										command: 'insertOrderedList',
 | 
				
			||||||
 | 
										key: 'K',
 | 
				
			||||||
 | 
										meta: false,
 | 
				
			||||||
 | 
										shift: false,
 | 
				
			||||||
 | 
										alt: true
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
				{ // alt-p
 | 
									{ // alt-p
 | 
				
			||||||
					command: 'append-pre',
 | 
										command: 'append-pre',
 | 
				
			||||||
					key: 'P',
 | 
										key: 'P',
 | 
				
			||||||
@ -592,7 +599,7 @@ $this->load->view (
 | 
				
			|||||||
		<?php print $this->lang->line('WIKI_ATTACHMENTS')?>
 | 
							<?php print $this->lang->line('WIKI_ATTACHMENTS')?>
 | 
				
			||||||
		<a href='#' id='wiki_edit_add_files_button'><?php print $this->lang->line('New')?></a>
 | 
							<a href='#' id='wiki_edit_add_files_button'><?php print $this->lang->line('New')?></a>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div id='wiki_edit_files_body'>
 | 
						<div id='wiki_edit_files_body' class='codepot-metadata-collapsible-body'>
 | 
				
			||||||
		<input type='file' id='wiki_edit_add_files' name='wiki_add_files' multiple='' autocomplete='off' style='color: transparent; visibility: hidden; display: none;' />
 | 
							<input type='file' id='wiki_edit_add_files' name='wiki_add_files' multiple='' autocomplete='off' style='color: transparent; visibility: hidden; display: none;' />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<ul id='wiki_edit_file_list'>
 | 
							<ul id='wiki_edit_file_list'>
 | 
				
			||||||
 | 
				
			|||||||
@ -252,7 +252,7 @@ $this->load->view (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<div id='wiki_show_metadata' class='collapsible-box'>
 | 
					<div id='wiki_show_metadata' class='collapsible-box'>
 | 
				
			||||||
	<div id='wiki_show_metadata_header' class='collapsible-box-header'><?php print $this->lang->line('Metadata')?></div>
 | 
						<div id='wiki_show_metadata_header' class='collapsible-box-header'><?php print $this->lang->line('Metadata')?></div>
 | 
				
			||||||
	<div id='wiki_show_metadata_body'>
 | 
						<div id='wiki_show_metadata_body' class='codepot-metadata-collapsible-body'>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<ul id='wiki_show_metadata_list'>
 | 
							<ul id='wiki_show_metadata_list'>
 | 
				
			||||||
		<li><?php print $this->lang->line('Created on')?> <?php print codepot_dbdatetodispdate($wiki->createdon); ?></li>
 | 
							<li><?php print $this->lang->line('Created on')?> <?php print codepot_dbdatetodispdate($wiki->createdon); ?></li>
 | 
				
			||||||
 | 
				
			|||||||
@ -78,17 +78,6 @@
 | 
				
			|||||||
	float: right;
 | 
						float: right;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#code_folder_metadata_body,
 | 
					 | 
				
			||||||
#code_file_metadata_body,
 | 
					 | 
				
			||||||
#code_blame_metadata_body,
 | 
					 | 
				
			||||||
#code_revision_metadata_body,
 | 
					 | 
				
			||||||
#code_diff_metadata_body, 
 | 
					 | 
				
			||||||
#code_diff_metadata_against_body {
 | 
					 | 
				
			||||||
	background-color: #FCFCFC;
 | 
					 | 
				
			||||||
	padding: 0.2em 0.2em 0.2em 0.2em;
 | 
					 | 
				
			||||||
	margin: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#code_diff_metadata_body, 
 | 
					#code_diff_metadata_body, 
 | 
				
			||||||
#code_diff_metadata_against_body {
 | 
					#code_diff_metadata_against_body {
 | 
				
			||||||
	border: none;
 | 
						border: none;
 | 
				
			||||||
@ -240,14 +229,28 @@
 | 
				
			|||||||
	line-height: 1.2em;
 | 
						line-height: 1.2em;
 | 
				
			||||||
	padding: 0.2em 0.2em 0.2em 0.2em;
 | 
						padding: 0.2em 0.2em 0.2em 0.2em;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/*
 | 
					
 | 
				
			||||||
#code_revision_result_files_table,
 | 
					#code_revision_related_issue_list {
 | 
				
			||||||
#code_revision_result_properties_table {
 | 
						padding-top: 0.3em;
 | 
				
			||||||
	padding: 0.5em 0 0.5em 0;
 | 
						border-top: 1px dashed #EAEAEA
 | 
				
			||||||
	background: inherit;
 | 
					}
 | 
				
			||||||
	line-height: 1.5em;
 | 
					
 | 
				
			||||||
 | 
					#code_revision_related_issue_list li {
 | 
				
			||||||
 | 
						margin-top: 0.1em;
 | 
				
			||||||
 | 
						margin-bottom: 0.1em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#code_revision_metadata_text a,
 | 
				
			||||||
 | 
					#code_revision_related_issue_list a {
 | 
				
			||||||
 | 
						padding: 0.3em;
 | 
				
			||||||
 | 
						-moz-border-radius: 3px;
 | 
				
			||||||
 | 
						-webkit-border-radius: 3px;
 | 
				
			||||||
 | 
						border-radius: 3px;
 | 
				
			||||||
 | 
						color: inherit;
 | 
				
			||||||
 | 
						filter:alpha(opacity=85); /* IE */
 | 
				
			||||||
 | 
						opacity: 0.85; /* Safari, Opera */
 | 
				
			||||||
 | 
						-moz-opacity:0.85; /* FireFox */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#code_revision_result_files_table td,
 | 
					#code_revision_result_files_table td,
 | 
				
			||||||
#code_revision_result_properties_table td {
 | 
					#code_revision_result_properties_table td {
 | 
				
			||||||
 | 
				
			|||||||
@ -600,6 +600,12 @@ pre, code, tt {
 | 
				
			|||||||
	padding-right: .2em;
 | 
						padding-right: .2em;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-metadata-collapsible-body {
 | 
				
			||||||
 | 
						background-color: #FCFCFC !important;
 | 
				
			||||||
 | 
						padding: 0.4em 0.2em 0.2em 0.2em !important;
 | 
				
			||||||
 | 
						margin: 0px !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
span.codepot-open-issue-count {
 | 
					span.codepot-open-issue-count {
 | 
				
			||||||
	-moz-border-radius: 45%;
 | 
						-moz-border-radius: 45%;
 | 
				
			||||||
	-webkit-border-radius: 45%;
 | 
						-webkit-border-radius: 45%;
 | 
				
			||||||
@ -1025,6 +1031,125 @@ pre.codepot-line-numbered span.codepot-line-number-clear {
 | 
				
			|||||||
	border-radius: 3px;
 | 
						border-radius: 3px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* === list === */
 | 
				
			||||||
 | 
					ul.codepot-horizontal-list {
 | 
				
			||||||
 | 
						clear: both;
 | 
				
			||||||
 | 
						padding: 0;
 | 
				
			||||||
 | 
						margin: 0;
 | 
				
			||||||
 | 
						list-style: outside none none !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ul.codepot-horizontal-list li {
 | 
				
			||||||
 | 
						padding: 0.2em 0.2em 0.2em 0.2em;
 | 
				
			||||||
 | 
						margin: 0 0.2em 0 0.2em;
 | 
				
			||||||
 | 
						float: left;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* === common issue class === */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-type-defect {
 | 
				
			||||||
 | 
						background-color: #D9534F;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-type-request {
 | 
				
			||||||
 | 
						background-color: #44AD8E;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-type-enhancement {
 | 
				
			||||||
 | 
						background-color: #558FAD;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-type-feature {
 | 
				
			||||||
 | 
						background-color: #5577BC;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-type-other {
 | 
				
			||||||
 | 
						background-color: #4E8BCA;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-status-new {
 | 
				
			||||||
 | 
						background-color: #44AD8E;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-status-accepted {
 | 
				
			||||||
 | 
						background-color: #44AD8E;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-status-rejected {
 | 
				
			||||||
 | 
						background-color: #AD448E;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-status-started {
 | 
				
			||||||
 | 
						background-color: #44ADAD;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-status-stalled {
 | 
				
			||||||
 | 
						background-color: #ADAD8E;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-status-testing {
 | 
				
			||||||
 | 
						background-color: #44ADBB;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-status-resolved {
 | 
				
			||||||
 | 
						background-color: #34AD56;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-status-worked-around {
 | 
				
			||||||
 | 
						background-color: #65AD67;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-status-other {
 | 
				
			||||||
 | 
						background-color: #888888;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-type-other {
 | 
				
			||||||
 | 
						background-color: #4E8BCA;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-priority-critical {
 | 
				
			||||||
 | 
						background-color: #D9534F;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-priority-high {
 | 
				
			||||||
 | 
						background-color: #B9534F;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-priority-medium {
 | 
				
			||||||
 | 
						background-color: #99534F;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-priority-low {
 | 
				
			||||||
 | 
						background-color: #EEE39E;
 | 
				
			||||||
 | 
						color: #FFFFFF !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-priority-other {
 | 
				
			||||||
 | 
						background-color: #FFF39E;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.codepot-issue-owner {
 | 
				
			||||||
 | 
						background-color: #FFF39E;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
/* === footer === */
 | 
					/* === footer === */
 | 
				
			||||||
.codepot-footer-pusher {
 | 
					.codepot-footer-pusher {
 | 
				
			||||||
	clear: both;
 | 
						clear: both;
 | 
				
			||||||
 | 
				
			|||||||
@ -22,13 +22,6 @@
 | 
				
			|||||||
	white-space: nowrap;
 | 
						white-space: nowrap;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#file_show_metadata_body,
 | 
					 | 
				
			||||||
#file_show_files_body {
 | 
					 | 
				
			||||||
	background-color: #FCFCFC;
 | 
					 | 
				
			||||||
	margin: 0 !important;
 | 
					 | 
				
			||||||
	padding: 0.5em 0.5em 0.5em 0.5em !important;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#file_show_metadata_list {
 | 
					#file_show_metadata_list {
 | 
				
			||||||
	padding: 0 !important;
 | 
						padding: 0 !important;
 | 
				
			||||||
	margin: 0 0 0.5em 0 !important;
 | 
						margin: 0 0 0.5em 0 !important;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,18 +1,6 @@
 | 
				
			|||||||
ul.codepot-issue-horizontal-list {
 | 
					 | 
				
			||||||
	clear: both;
 | 
					 | 
				
			||||||
	padding: 0;
 | 
					 | 
				
			||||||
	margin: 0;
 | 
					 | 
				
			||||||
	list-style: outside none none !important;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
ul.codepot-issue-horizontal-list li {
 | 
					.codepot-issue-start ul.codepot-horizontal-list,
 | 
				
			||||||
	padding: 0.2em 0.2em 0.2em 0.2em;
 | 
					.codepot-issue-change ul.codepot-horizontal-list {
 | 
				
			||||||
	margin: 0 0.2em 0 0.2em;
 | 
					 | 
				
			||||||
	float: left;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.codepot-issue-start ul.codepot-issue-horizontal-list,
 | 
					 | 
				
			||||||
.codepot-issue-change ul.codepot-issue-horizontal-list {
 | 
					 | 
				
			||||||
	padding: 0.3em 0 0.3em 0;
 | 
						padding: 0.3em 0 0.3em 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -65,111 +53,6 @@ textarea.codepot-issue-edit-comment {
 | 
				
			|||||||
	font-size: 0.9em;
 | 
						font-size: 0.9em;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
li.issue-type-defect {
 | 
					 | 
				
			||||||
	background-color: #D9534F;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-type-request {
 | 
					 | 
				
			||||||
	background-color: #44AD8E;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-type-enhancement {
 | 
					 | 
				
			||||||
	background-color: #558FAD;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-type-feature {
 | 
					 | 
				
			||||||
	background-color: #5577BC;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-type-other {
 | 
					 | 
				
			||||||
	background-color: #4E8BCA;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-status-new {
 | 
					 | 
				
			||||||
	background-color: #44AD8E;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-status-accepted {
 | 
					 | 
				
			||||||
	background-color: #44AD8E;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-status-rejected {
 | 
					 | 
				
			||||||
	background-color: #AD448E;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-status-started {
 | 
					 | 
				
			||||||
	background-color: #44ADAD;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-status-stalled {
 | 
					 | 
				
			||||||
	background-color: #ADAD8E;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-status-testing {
 | 
					 | 
				
			||||||
	background-color: #44ADBB;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-status-resolved {
 | 
					 | 
				
			||||||
	background-color: #34AD56;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-status-worked-around {
 | 
					 | 
				
			||||||
	background-color: #65AD67;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-status-other {
 | 
					 | 
				
			||||||
	background-color: #888888;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-type-other {
 | 
					 | 
				
			||||||
	background-color: #4E8BCA;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-priority-critical {
 | 
					 | 
				
			||||||
	background-color: #D9534F;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-priority-high {
 | 
					 | 
				
			||||||
	background-color: #B9534F;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-priority-medium {
 | 
					 | 
				
			||||||
	background-color: #99534F;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-priority-low {
 | 
					 | 
				
			||||||
	background-color: #EEE39E;
 | 
					 | 
				
			||||||
	color: #FFFFFF;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-priority-other {
 | 
					 | 
				
			||||||
	background-color: #FFF39E;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
li.issue-owner {
 | 
					 | 
				
			||||||
	background-color: #FFF39E;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*---------------------------------------------
 | 
					/*---------------------------------------------
 | 
				
			||||||
 * issue home
 | 
					 * issue home
 | 
				
			||||||
 *---------------------------------------------*/
 | 
					 *---------------------------------------------*/
 | 
				
			||||||
@ -246,13 +129,15 @@ li.issue-owner {
 | 
				
			|||||||
/*---------------------------------------------
 | 
					/*---------------------------------------------
 | 
				
			||||||
 * issue show
 | 
					 * issue show
 | 
				
			||||||
 *---------------------------------------------*/
 | 
					 *---------------------------------------------*/
 | 
				
			||||||
#issue_show_metadata_body {
 | 
					#issue_show_metadata_list li {
 | 
				
			||||||
	background-color: #FCFCFC;
 | 
						margin-top: 0.1em;
 | 
				
			||||||
	padding: 1em 1em;
 | 
						margin-bottom: 0.2em;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#issue_show_state_list {
 | 
					#issue_show_state_list,
 | 
				
			||||||
	padding-top: 0.2em;
 | 
					#issue_show_coderev_list {
 | 
				
			||||||
 | 
						padding-top: 0.3em;
 | 
				
			||||||
 | 
						border-top: 1px dashed #EAEAEA
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#issue_show_metadata_list li {
 | 
					#issue_show_metadata_list li {
 | 
				
			||||||
 | 
				
			|||||||
@ -46,13 +46,6 @@
 | 
				
			|||||||
	column-gap: 2em;
 | 
						column-gap: 2em;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#wiki_show_metadata_body,
 | 
					 | 
				
			||||||
#wiki_edit_files_body {
 | 
					 | 
				
			||||||
	background-color: #FCFCFC;
 | 
					 | 
				
			||||||
	margin: 0 !important;
 | 
					 | 
				
			||||||
	padding: 0.5em 0.5em 0.5em 0.5em !important;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
#wiki_show_file_list a,
 | 
					#wiki_show_file_list a,
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user