Sindbad~EG File Manager
<?php
# MantisBT - A PHP based bugtracking system
# MantisBT is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# MantisBT is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with MantisBT. If not, see <http://www.gnu.org/licenses/>.
/**
* Timeline event class for status change of issues.
* @copyright Copyright 2014 MantisBT Team - mantisbt-dev@lists.sourceforge.net
* @link http://www.mantisbt.org
* @package MantisBT
*/
/**
* Timeline event class for status change of issues.
*
* @package MantisBT
* @subpackage classes
*/
class IssueStatusChangeTimelineEvent extends TimelineEvent {
private $issue_id;
private $old_status;
private $new_status;
private $type;
/**
* Status change types to be displayed in Timeline
* IGNORED = not displayed
*/
const IGNORED = 0;
const RESOLVED = 1;
const CLOSED = 2;
const REOPENED = 3;
/**
* @param integer $p_timestamp Timestamp representing the time the event occurred.
* @param integer $p_user_id An user identifier.
* @param integer $p_issue_id A issue identifier.
* @param integer $p_old_status Old status value of issue.
* @param integer $p_new_status New status value of issue.
*/
public function __construct( $p_timestamp, $p_user_id, $p_issue_id, $p_old_status, $p_new_status ) {
parent::__construct( $p_timestamp, $p_user_id );
$this->issue_id = $p_issue_id;
$this->old_status = $p_old_status;
$this->new_status = $p_new_status;
$this->type = $this->change_type();
}
/**
* Return the type of status change
* @return int One of the status change constants defined above
*/
private function change_type() {
$t_resolved = config_get( 'bug_resolved_status_threshold' );
$t_closed = config_get( 'bug_closed_status_threshold' );
if( $this->old_status < $t_closed && $this->new_status >= $t_closed ) {
return IssueStatusChangeTimelineEvent::CLOSED;
} else if( $this->old_status < $t_resolved && $this->new_status >= $t_resolved ) {
return IssueStatusChangeTimelineEvent::RESOLVED;
} else if( $this->old_status >= $t_resolved && $this->new_status < $t_resolved ) {
return IssueStatusChangeTimelineEvent::REOPENED;
} else {
return IssueStatusChangeTimelineEvent::IGNORED;
}
}
/**
* Whether to skip this timeline event.
* This normally implements access checks for the event.
* @return boolean
*/
public function skip() {
return $this->type == IssueStatusChangeTimelineEvent::IGNORED;
}
/**
* Returns html string to display
* @return string
*/
public function html() {
switch( $this->type ) {
case IssueStatusChangeTimelineEvent::RESOLVED:
$t_html = $this->html_start( 'fa-thumbs-o-up' );
$t_string = sprintf(
lang_get( 'timeline_issue_resolved' ),
user_get_name( $this->user_id ),
string_get_bug_view_link( $this->issue_id )
);
break;
case IssueStatusChangeTimelineEvent::CLOSED:
$t_html = $this->html_start( 'fa-power-off' );
$t_string = sprintf(
lang_get( 'timeline_issue_closed' ),
user_get_name( $this->user_id ),
string_get_bug_view_link( $this->issue_id )
);
break;
case IssueStatusChangeTimelineEvent::REOPENED:
$t_html = $this->html_start( 'fa-refresh' );
$t_string = sprintf(
lang_get( 'timeline_issue_reopened' ),
user_get_name( $this->user_id ),
string_get_bug_view_link( $this->issue_id )
);
break;
case IssueStatusChangeTimelineEvent::IGNORED:
return '';
default:
# Unknown status change type
trigger_error( ERROR_GENERIC, ERROR );
return '';
}
$t_html .= '<div class="action">' . $t_string . '</div>';
$t_html .= $this->html_end();
return $t_html;
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists