wrote code to corelate issues and code revisions.
changed the code revision view to show corelated issues
This commit is contained in:
parent
ab7156eb67
commit
fdfa5ecaa0
@ -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%;
|
||||||
@ -1015,16 +1021,135 @@ pre.codepot-line-numbered span.codepot-line-number-clear {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.codepot-committer-icon-24x24 {
|
.codepot-committer-icon-24x24 {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
margin-right: 2px;
|
margin-right: 2px;
|
||||||
|
|
||||||
-moz-border-radius: 3px;
|
-moz-border-radius: 3px;
|
||||||
-webkit-border-radius: 3px;
|
-webkit-border-radius: 3px;
|
||||||
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,
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user