Example #1
0
 /**
  * Convert a timestamp to a DateTime string
  * @param integer $p_timestamp Integer value to format as date time string.
  * @return string
  */
 static function newDateTimeString($p_timestamp)
 {
     if ($p_timestamp == null || date_is_null($p_timestamp)) {
         return null;
     }
     return date('c', (int) $p_timestamp);
 }
Example #2
0
 static function newDateTimeString($p_timestamp)
 {
     if ($p_timestamp == null || date_is_null($p_timestamp)) {
         return null;
     } else {
         if (function_exists('timestamp_to_iso8601')) {
             return timestamp_to_iso8601($p_timestamp, false);
         } else {
             return date('c', (int) $p_timestamp);
         }
     }
 }
Example #3
0
/**
 * Print header for the specified project version.
 * @param array $p_version_row Array containing project version data.
 * @return void
 */
function print_version_header(array $p_version_row)
{
    $t_project_id = $p_version_row['project_id'];
    $t_version_id = $p_version_row['id'];
    $t_version_name = $p_version_row['version'];
    $t_project_name = project_get_field($t_project_id, 'name');
    $t_release_title = '<a href="roadmap_page.php?project_id=' . $t_project_id . '">' . string_display_line($t_project_name) . '</a> - <a href="roadmap_page.php?version_id=' . $t_version_id . '">' . string_display_line($t_version_name) . '</a>';
    $t_version_timestamp = $p_version_row['date_order'];
    if (config_get('show_roadmap_dates') && !date_is_null($t_version_timestamp)) {
        $t_scheduled_release_date = ' (' . lang_get('scheduled_release') . ' ' . string_display_line(date(config_get('short_date_format'), $t_version_timestamp)) . ')';
    } else {
        $t_scheduled_release_date = '';
    }
    echo '<tt>';
    echo '<br />', $t_release_title, $t_scheduled_release_date, lang_get('word_separator');
    print_bracket_link('view_all_set.php?type=1&temporary=y&' . FILTER_PROPERTY_PROJECT_ID . '=' . $t_project_id . '&' . filter_encode_field_and_value(FILTER_PROPERTY_TARGET_VERSION, $t_version_name), lang_get('view_bugs_link'));
    echo '<br />';
    $t_release_title_without_hyperlinks = $t_project_name . ' - ' . $t_version_name . $t_scheduled_release_date;
    echo utf8_str_pad('', utf8_strlen($t_release_title_without_hyperlinks), '='), '<br />';
}
Example #4
0
/**
 * Get due date for a given bug
 * @param BugData $p_bug A BugData object.
 * @return soapval the value to be encoded as the due date
 */
function mci_issue_get_due_date(BugData $p_bug)
{
    $t_value = null;
    if (access_has_bug_level(config_get('due_date_view_threshold'), $p_bug->id) && !date_is_null($p_bug->due_date)) {
        $t_value = $p_bug->due_date;
    }
    return SoapObjectsFactory::newDateTimeVar($t_value);
}
?>
" />
	</td>
</tr>
<tr <?php 
echo helper_alternate_class();
?>
>
	<td class="category">
		<?php 
echo lang_get('date_order');
?>
	</td>
	<td>
		<input type="text" id="date_order" name="date_order" size="32" value="<?php 
echo date_is_null($t_version->date_order) ? '' : string_attribute(date(config_get('calendar_date_format'), $t_version->date_order));
?>
" />
		<?php 
date_print_calendar();
date_finish_calendar('date_order', 'trigger');
?>
	</td>
</tr>
<tr <?php 
echo helper_alternate_class();
?>
>
	<td class="category">
		<?php 
echo lang_get('description');
/**
 * Check if a given bug is overdue
 * @param int p_bug_id integer representing bug id
 * @return bool true if bug is overdue, false otherwise
 * @access public
 * @uses database_api.php
 */
function bug_is_overdue($p_bug_id)
{
    $t_due_date = bug_get_field($p_bug_id, 'due_date');
    if (!date_is_null($t_due_date)) {
        $t_now = db_now();
        if ($t_now > $t_due_date) {
            if (!bug_is_resolved($p_bug_id)) {
                return true;
            }
        }
    }
    return false;
}
Example #7
0
/**
 *
 * @param BugData $bug
 * @return soapval the value to be encoded as the due date
 */
function mci_issue_get_due_date( $p_bug ) {
	if ( access_has_bug_level( config_get( 'due_date_view_threshold' ), $p_bug->id )  && !date_is_null( $p_bug->due_date ) ) {
		return new soapval( 'due_date', 'xsd:dateTime', timestamp_to_iso8601( $p_bug->due_date ) );
	} else {
		return new soapval( 'due_date','xsd:dateTime', null );
	}

}
print_manage_menu( 'manage_proj_ver_edit_page.php' ); ?>

<div id="manage-proj-version-update-div" class="form-container">
	<form id="manage-proj-version-update-form" method="post" action="manage_proj_ver_update.php">
		<fieldset>
			<legend><span><?php echo lang_get( 'edit_project_version_title' ) ?></span></legend>
			<?php echo form_security_field( 'manage_proj_ver_update' ) ?>
			<input type="hidden" name="version_id" value="<?php echo string_attribute( $t_version->id ) ?>" />
			<div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>">
				<label for="proj-version-new-version"><span><?php echo lang_get( 'version' ) ?></span></label>
				<span class="input"><input type="text" id="proj-version-new-version" name="new_version" size="32" maxlength="64" value="<?php echo string_attribute( $t_version->version ) ?>" /></span>
				<span class="label-style"></span>
			</div>
			<div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>">
				<label for="proj-version-date-order"><span><?php echo lang_get( 'date_order' ) ?></span></label>
				<span class="input"><input type="text" id="proj-version-date-order" name="date_order" class="datetime" size="32" value="<?php echo (date_is_null( $t_version->date_order ) ? '' : string_attribute( date( config_get( 'calendar_date_format' ), $t_version->date_order ) ) ) ?>" /></span>
				<span class="label-style"></span>
			</div>
			<div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>">
				<label for="proj-version-description"><span><?php echo lang_get( 'description' ) ?></span></label>
				<span class="textarea"><textarea id="proj-version-description" name="description" cols="60" rows="5"><?php echo string_attribute( $t_version->description ) ?></textarea></span>
				<span class="label-style"></span>
			</div>
			<div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>">
				<label for="proj-version-released"><span><?php echo lang_get( 'released' ) ?></span></label>
				<span class="checkbox"><input type="checkbox" id="proj-version-released" name="released" <?php check_checked( $t_version->released, VERSION_RELEASED ); ?> /></span>
				<span class="label-style"></span>
			</div>
			<div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>">
				<label for="proj-version-obsolete"><span><?php echo lang_get( 'obsolete' ) ?></span></label>
				<span class="checkbox"><input type="checkbox" id="proj-version-obsolete" name="obsolete" <?php check_checked( $t_version->obsolete, true ); ?> /></span>
		<td>
			<select <?php 
    echo helper_get_tab_index();
    ?>
 id="priority" name="priority">
				<?php 
    print_enum_string_option_list('priority', $f_priority);
    ?>
			</select>
		</td>
	</tr>
<?php 
}
if ($t_show_due_date) {
    $t_date_to_display = '';
    if (!date_is_null($f_due_date)) {
        $t_date_to_display = date(config_get('calendar_date_format'), $f_due_date);
    }
    ?>
	<tr>
		<th class="category">
			<label for="due_date"><?php 
    print_documentation_link('due_date');
    ?>
</label>
		</th>
		<td>
			<?php 
    echo '<input ' . helper_get_tab_index() . ' type="text" id="due_date" name="due_date" class="datetime" size="20" maxlength="16" value="' . $t_date_to_display . '" />';
    ?>
		</td>
function print_date($edit_page, $version)
{
    echo '<td>';
    if ($edit_page) {
        echo '<label for="proj-version-date-order">';
        echo '<span class="input">';
        echo '<input type="text" id="proj-version-date-order" name="date_order[]" class="datetime" size="15"
                      value="' . (date_is_null($version['date_order']) ? '' : string_attribute(date(config_get('calendar_date_format'), $version['date_order']))) . '" />';
        echo '</span>';
        echo '</label>';
    } else {
        echo date_is_null($version['date_order']) ? '' : string_attribute(date(config_get('calendar_date_format'), $version['date_order']));
    }
    echo '</td>';
}
Example #11
0
/**
 * return the due date column
 * @param BugData $p_bug A BugData object.
 * @return string
 * @access public
 */
function csv_format_due_date(BugData $p_bug)
{
    static $s_date_format = null;
    if ($s_date_format === null) {
        $s_date_format = config_get('short_date_format');
    }
    $t_value = '';
    if (!date_is_null($p_bug->due_date) && access_has_bug_level(config_get('due_date_view_threshold'), $p_bug->id)) {
        $t_value = date($s_date_format, $p_bug->due_date);
    }
    return csv_escape_string($t_value);
}
/**
 * @param $version
 */
function print_version_deadline($version)
{
    echo '<td>';
    echo plugin_lang_get('versview_deadline');
    echo '</td>';
    echo '<td>';
    echo date_is_null($version->date_order) ? '' : string_attribute(date(config_get('calendar_date_format'), $version->date_order));
    echo '</td>';
}
Example #13
0
/**
 * Gets the formatted due date.
 * @param BugData $p_bug A bug object.
 * @return string The formatted due date.
 */
function excel_format_due_date(BugData $p_bug)
{
    $t_value = '';
    if (!date_is_null($p_bug->due_date) && access_has_bug_level(config_get('due_date_view_threshold'), $p_bug->id)) {
        $t_value = date(config_get('short_date_format'), $p_bug->due_date);
    }
    return excel_prepare_string($t_value);
}
 /**
  * Prints all available versions into the document head
  *
  * @param $versions
  * @param $act_version
  */
 public function print_doc_head_versions($versions, $act_version)
 {
     $specmanagement_database_api = new specmanagement_database_api();
     foreach ($versions as $version) {
         $type_string = $specmanagement_database_api->get_type_string($specmanagement_database_api->get_type_by_version($version['id']));
         if (strlen($type_string) > 0) {
             $same_version = $act_version->id == $version['id'];
             echo '<tr>';
             $this->print_doc_head_version_col($same_version, date_is_null($version['date_order']) ? '' : string_attribute(date(config_get('calendar_date_format'), $version['date_order'])));
             $this->print_doc_head_version_col($same_version, version_full_name($version['id']));
             if ($same_version) {
                 $this->print_doc_head_version_col($same_version, '');
             } else {
                 $change_button_string = '<form method="post" name="form_set_source" action="' . plugin_page('changes') . '">' . '<input type="hidden" name="version_other" value="' . $version['id'] . '" />' . '<input type="hidden" name="version_my" value="' . $act_version->id . '" />' . '<input type="submit" name="formSubmit" class="button" value="' . plugin_lang_get('head_changes') . '"/>' . '</form>';
                 $this->print_doc_head_version_col($same_version, $change_button_string);
             }
             $show_button_string = '<form method="post" name="form_set_source" action="' . plugin_page('editor') . '">' . '<input type="hidden" name="version_id" value="' . $version['id'] . '" />' . '<input type="submit" name="formSubmit" class="button" value="' . plugin_lang_get('head_view') . '"/>' . '</form>';
             $this->print_doc_head_version_col($same_version, $show_button_string);
             echo '</tr>';
         }
     }
 }
Example #15
0
$t_os = string_display_line($t_bug->os);
$t_os_version = string_display_line($t_bug->os_build);
$t_is = string_display_line($t_bug->os);
$t_status = string_display_line(get_enum_element('status', $t_bug->status));
$t_priority = string_display_line(get_enum_element('priority', $t_bug->priority));
$t_resolution = string_display_line(get_enum_element('resolution', $t_bug->resolution));
$t_product_build = string_display_line($t_bug->build);
$t_projection = string_display_line(get_enum_element('projection', $t_bug->projection));
$t_eta = string_display_line(get_enum_element('eta', $t_bug->eta));
$t_summary = string_display_line_links(bug_format_summary($f_bug_id, SUMMARY_FIELD));
$t_description = string_display_links($t_bug->description);
$t_steps_to_reproduce = string_display_links($t_bug->steps_to_reproduce);
$t_additional_information = string_display_links($t_bug->additional_information);
$t_view_state = $t_show_view_state ? get_enum_element('view_state', $t_bug->view_state) : '';
if ($t_show_due_date) {
    if (!date_is_null($t_bug->due_date)) {
        $t_due_date = date(config_get('normal_date_format'), $t_bug->due_date);
    } else {
        $t_due_date = '';
    }
}
$t_product_version = $t_show_product_version ? string_display_line(prepare_version_string($t_bug->project_id, version_get_id($t_bug->version, $t_bug->project_id))) : '';
$t_target_version = $t_show_target_version ? string_display_line(prepare_version_string($t_bug->project_id, version_get_id($t_bug->target_version, $t_bug->project_id))) : '';
$t_fixed_in_version = $t_show_fixed_in_version ? string_display_line(prepare_version_string($t_bug->project_id, version_get_id($t_bug->fixed_in_version, $t_bug->project_id))) : '';
html_page_top1(bug_format_summary($f_bug_id, SUMMARY_CAPTION));
html_head_end();
html_body_begin();
echo '<br />';
echo '<table class="width100" cellspacing="1">';
echo '<tr>';
echo '<td class="form-title" colspan="6">';
Example #16
0
    echo lang_get('actions');
    ?>
			</td>
		</tr>
<?php 
}
foreach ($t_versions as $t_version) {
    if ($t_version['project_id'] != $f_project_id) {
        $t_inherited = true;
    } else {
        $t_inherited = false;
    }
    $t_name = version_full_name($t_version['id'], $t_inherited, $f_project_id);
    $t_released = $t_version['released'];
    $t_obsolete = $t_version['obsolete'];
    if (!date_is_null($t_version['date_order'])) {
        $t_date_formatted = date(config_get('complete_date_format'), $t_version['date_order']);
    } else {
        $t_date_formatted = ' ';
    }
    ?>
<!-- Repeated Info Rows -->
		<tr <?php 
    echo helper_alternate_class();
    ?>
>
			<td>
				<?php 
    echo string_display($t_name);
    ?>
			</td>
/**
 * @param $amount_stat_columns
 * @param $print_flag
 * @param $show_zero_issues
 * @param $versions
 */
function print_tablebody($amount_stat_columns, $print_flag, $show_zero_issues, $versions)
{
    $specmanagement_database_api = new specmanagement_database_api();
    $specmanagement_print_api = new specmanagement_print_api();
    echo '<tbody>';
    for ($version_index = 0; $version_index < count($versions); $version_index++) {
        $version = $versions[$version_index];
        $version_spec_bug_ids = $specmanagement_database_api->get_version_spec_bugs($version['version']);
        if (is_null($version_spec_bug_ids) && !$show_zero_issues) {
            continue;
        }
        $version_deadline = date_is_null($version['date_order']) ? '' : string_attribute(date(config_get('calendar_date_format'), $version['date_order']));
        $timeleft = time() - $version['date_order'];
        $unsolved_bug_duration = null;
        $add_rel_duration = 0;
        $status_process = null;
        $uncertainty_bug_ids = array();
        $add_rel_uncertainty_bug_ids = array();
        $sum_duration = 0;
        $uncertainty_status_process = null;
        $unsolved_bug_finished_date = null;
        $null_issues_flag = true;
        if (!is_null($version_spec_bug_ids)) {
            $unsolveld_bug_ids = get_unsolved_issues($version_spec_bug_ids);
            $unsolved_bug_duration = $specmanagement_database_api->get_bug_array_duration($unsolveld_bug_ids);
            $rel_based_data = calculate_rel_based_data($unsolveld_bug_ids);
            $add_rel_duration = $rel_based_data[0];
            $add_rel_uncertainty_bug_ids = $rel_based_data[1];
            $sum_duration = $unsolved_bug_duration + $add_rel_duration;
            $status_process = 100 * round(1 - count($unsolveld_bug_ids) / count($version_spec_bug_ids), 2);
            $uncertainty_bug_ids = get_uncertainty_issues($unsolveld_bug_ids);
            $uncertainty_status_process = 100 * round(count($uncertainty_bug_ids) / count($version_spec_bug_ids), 2);
            $null_issues_flag = false;
        }
        $time_delay = calc_time_delay($timeleft, $sum_duration);
        $specmanagement_print_api->printRow();
        print_version($version);
        print_date($version_deadline, $time_delay[0]);
        print_issue_amount($amount_stat_columns, $print_flag, $version, $version_spec_bug_ids, $null_issues_flag);
        print_process($status_process, $null_issues_flag);
        print_duration($sum_duration, $add_rel_duration, $null_issues_flag);
        print_uncertainty($uncertainty_bug_ids, $add_rel_uncertainty_bug_ids, $uncertainty_status_process, $null_issues_flag);
        //print_information( $version, $null_issues_flag, $time_delay[1] );
        echo '</tr>';
    }
    echo '</tbody>';
}
Example #18
0
/**
 * Print column content for column overdue
 *
 * @param BugData $p_bug bug object
 * @param int $p_columns_target see COLUMNS_TARGET_* in constant_inc.php
 * @return null
 * @access public
 */
function print_column_overdue($p_bug, $p_columns_target = COLUMNS_TARGET_VIEW_PAGE)
{
    global $t_icon_path;
    echo '<td class="column-overdue">';
    if (access_has_bug_level(config_get('due_date_view_threshold'), $p_bug->id) && !date_is_null($p_bug->due_date) && bug_is_overdue($p_bug->id)) {
        $t_overdue_text = lang_get('overdue');
        $t_overdue_text_hover = $t_overdue_text . '. Due date was: ' . string_display_line(date(config_get('short_date_format'), $p_bug->due_date));
        echo '<img src="' . $t_icon_path . 'overdue.png" alt="' . $t_overdue_text . '" title="' . $t_overdue_text_hover . '" />';
    } else {
        echo '&#160;';
    }
    echo '</td>';
}
Example #19
0
/**
 * Build the bug raw data visible for specified user to be translated and sent by email to the user
 * (Filter the bug data according to user access level)
 * return array with bug data. See usage in email_format_bug_message(...)
 * @param integer $p_user_id    A user identifier.
 * @param integer $p_bug_id     A bug identifier.
 * @param string  $p_message_id A message identifier.
 * @return array
 */
function email_build_visible_bug_data($p_user_id, $p_bug_id, $p_message_id)
{
    # Override current user with user to construct bug data for.
    # This is to make sure that APIs that check against current user (e.g. relationship) work correctly.
    $t_current_user_id = current_user_set($p_user_id);
    $t_project_id = bug_get_field($p_bug_id, 'project_id');
    $t_user_access_level = user_get_access_level($p_user_id, $t_project_id);
    $t_user_bugnote_order = user_pref_get_pref($p_user_id, 'bugnote_order');
    $t_user_bugnote_limit = user_pref_get_pref($p_user_id, 'email_bugnote_limit');
    $t_row = bug_get_extended_row($p_bug_id);
    $t_bug_data = array();
    $t_bug_data['email_bug'] = $p_bug_id;
    if ($p_message_id !== 'email_notification_title_for_action_bug_deleted') {
        $t_bug_data['email_bug_view_url'] = string_get_bug_view_url_with_fqdn($p_bug_id);
    }
    if (access_compare_level($t_user_access_level, config_get('view_handler_threshold'))) {
        if (0 != $t_row['handler_id']) {
            $t_bug_data['email_handler'] = user_get_name($t_row['handler_id']);
        } else {
            $t_bug_data['email_handler'] = '';
        }
    }
    $t_bug_data['email_reporter'] = user_get_name($t_row['reporter_id']);
    $t_bug_data['email_project_id'] = $t_row['project_id'];
    $t_bug_data['email_project'] = project_get_field($t_row['project_id'], 'name');
    $t_category_name = category_full_name($t_row['category_id'], false);
    $t_bug_data['email_category'] = $t_category_name;
    $t_tag_rows = tag_bug_get_attached($p_bug_id);
    if (!empty($t_tag_rows) && access_compare_level($t_user_access_level, config_get('tag_view_threshold'))) {
        $t_bug_data['email_tag'] = '';
        foreach ($t_tag_rows as $t_tag) {
            $t_bug_data['email_tag'] .= $t_tag['name'] . ', ';
        }
        $t_bug_data['email_tag'] = trim($t_bug_data['email_tag'], ', ');
    }
    $t_bug_data['email_date_submitted'] = $t_row['date_submitted'];
    $t_bug_data['email_last_modified'] = $t_row['last_updated'];
    if (!date_is_null($t_row['due_date']) && access_compare_level($t_user_access_level, config_get('due_date_view_threshold'))) {
        $t_bug_data['email_due_date'] = date(config_get('short_date_format'), $t_row['due_date']);
    }
    $t_bug_data['email_status'] = $t_row['status'];
    $t_bug_data['email_severity'] = $t_row['severity'];
    $t_bug_data['email_priority'] = $t_row['priority'];
    $t_bug_data['email_reproducibility'] = $t_row['reproducibility'];
    $t_bug_data['email_resolution'] = $t_row['resolution'];
    $t_bug_data['email_fixed_in_version'] = $t_row['fixed_in_version'];
    if (!is_blank($t_row['target_version']) && access_compare_level($t_user_access_level, config_get('roadmap_view_threshold'))) {
        $t_bug_data['email_target_version'] = $t_row['target_version'];
    }
    $t_bug_data['email_summary'] = $t_row['summary'];
    $t_bug_data['email_description'] = $t_row['description'];
    $t_bug_data['email_additional_information'] = $t_row['additional_information'];
    $t_bug_data['email_steps_to_reproduce'] = $t_row['steps_to_reproduce'];
    $t_bug_data['set_category'] = '[' . $t_bug_data['email_project'] . '] ' . $t_category_name;
    $t_bug_data['custom_fields'] = custom_field_get_linked_fields($p_bug_id, $t_user_access_level);
    $t_bug_data['bugnotes'] = bugnote_get_all_visible_bugnotes($p_bug_id, $t_user_bugnote_order, $t_user_bugnote_limit, $p_user_id);
    # put history data
    if (ON == config_get('history_default_visible') && access_compare_level($t_user_access_level, config_get('view_history_threshold'))) {
        $t_bug_data['history'] = history_get_raw_events_array($p_bug_id, $p_user_id);
    }
    # Sponsorship Information
    if (config_get('enable_sponsorship') == ON && access_has_bug_level(config_get('view_sponsorship_total_threshold'), $p_bug_id, $p_user_id)) {
        $t_sponsorship_ids = sponsorship_get_all_ids($p_bug_id);
        $t_bug_data['sponsorship_total'] = sponsorship_get_amount($t_sponsorship_ids);
        if (access_has_bug_level(config_get('view_sponsorship_details_threshold'), $p_bug_id, $p_user_id)) {
            $t_bug_data['sponsorships'] = array();
            foreach ($t_sponsorship_ids as $t_id) {
                $t_bug_data['sponsorships'][] = sponsorship_get($t_id);
            }
        }
    }
    $t_bug_data['relations'] = relationship_get_summary_text($p_bug_id);
    current_user_set($t_current_user_id);
    return $t_bug_data;
}