require_api('utility_api.php');
# Check if project documentation feature is enabled.
if (OFF == config_get('enable_project_documentation') || !file_is_uploading_enabled() || !file_allow_project_upload()) {
    access_denied();
}
$f_file_id = gpc_get_int('file_id');
$c_file_id = db_prepare_int($f_file_id);
$t_project_id = file_get_field($f_file_id, 'project_id', 'project');
access_ensure_project_level(config_get('upload_project_file_threshold'), $t_project_id);
$t_proj_file_table = db_get_table('project_file');
$query = "SELECT *\n\t\tFROM {$t_proj_file_table}\n\t\tWHERE id=" . db_param();
$result = db_query_bound($query, array($c_file_id));
$row = db_fetch_array($result);
extract($row, EXTR_PREFIX_ALL, 'v');
$v_title = string_attribute($v_title);
$v_description = string_textarea($v_description);
$t_max_file_size = (int) min(ini_get_number('upload_max_filesize'), ini_get_number('post_max_size'), config_get('max_file_size'));
html_page_top();
?>

<br />
<div>
<form method="post" enctype="multipart/form-data" action="proj_doc_update.php">
<?php 
echo form_security_field('proj_doc_update');
?>
<table class="width75" cellspacing="1">
<tr>
	<td class="form-title">
		<input type="hidden" name="file_id" value="<?php 
echo $f_file_id;
}
?>

<!-- Description -->
<tr <?php 
echo helper_alternate_class();
?>
>
	<th class="category">
		<?php 
echo lang_get('description');
?>
	</th>
	<td>
		<textarea name="description" cols="60" rows="5"><?php 
echo string_textarea($row['description']);
?>
</textarea>
	</td>
</tr>

<?php 
event_signal('EVENT_MANAGE_PROJECT_UPDATE_FORM', array($f_project_id));
?>

<!-- Submit Button -->
<tr>
	<td>&nbsp;</td>
	<td>
		<input type="submit" class="button" value="<?php 
echo lang_get('update_project_button');
<!-- Description -->
<tr <?php 
echo helper_alternate_class();
?>
>
	<td class="category"><?php 
echo lang_get('tag_description');
?>
</td>
	<td colspan="4">
		<textarea name="description" <?php 
echo helper_get_tab_index();
?>
 cols="80" rows="6"><?php 
echo string_textarea($t_description);
?>
</textarea>
	</td>
</tr>

<!-- Submit Button -->
<tr>
	<td class="center" colspan="6">
		<input <?php 
echo helper_get_tab_index();
?>
 type="submit" class="button" value="<?php 
echo lang_get('tag_update_button');
?>
" />
Exemple #4
0
$t_show_os_version = $t_show_profiles && in_array('os_version', $t_fields);
$t_show_versions = version_should_show_product_version($t_bug->project_id);
$t_show_product_version = $t_show_versions && in_array('product_version', $t_fields);
$t_show_product_build = $t_show_versions && in_array('product_build', $t_fields) && config_get('enable_product_build') == ON;
$t_product_build_attribute = $t_show_product_build ? string_attribute($t_bug->build) : '';
$t_show_target_version = $t_show_versions && in_array('target_version', $t_fields) && access_has_bug_level(config_get('roadmap_update_threshold'), $t_bug_id);
$t_show_fixed_in_version = $t_show_versions && in_array('fixed_in_version', $t_fields);
$t_show_due_date = in_array('due_date', $t_fields) && access_has_bug_level(config_get('due_date_view_threshold'), $t_bug_id);
$t_show_summary = in_array('summary', $t_fields);
$t_summary_attribute = $t_show_summary ? string_attribute($t_bug->summary) : '';
$t_show_description = in_array('description', $t_fields);
$t_description_textarea = $t_show_description ? string_textarea($t_bug->description) : '';
$t_show_additional_information = in_array('additional_info', $t_fields);
$t_additional_information_textarea = $t_show_additional_information ? string_textarea($t_bug->additional_information) : '';
$t_show_steps_to_reproduce = in_array('steps_to_reproduce', $t_fields);
$t_steps_to_reproduce_textarea = $t_show_steps_to_reproduce ? string_textarea($t_bug->steps_to_reproduce) : '';
if (NO_USER == $t_bug->handler_id) {
    $t_handler_name = '';
} else {
    $t_handler_name = string_display_line(user_get_name($t_bug->handler_id));
}
$t_can_change_view_state = $t_show_view_state && access_has_project_level(config_get('change_view_status_threshold'));
if ($t_show_product_version) {
    $t_product_version_released_mask = VERSION_RELEASED;
    if (access_has_project_level(config_get('report_issues_for_unreleased_versions_threshold'))) {
        $t_product_version_released_mask = VERSION_ALL;
    }
}
$t_formatted_bug_id = $t_show_id ? bug_format_id($f_bug_id) : '';
$t_project_name = $t_show_project ? string_display_line(project_get_name($t_bug->project_id)) : '';
if ($t_show_due_date) {
<!-- Description -->
<tr <?php 
echo helper_alternate_class();
?>
>
	<td class="category"><?php 
echo lang_get('tag_description');
?>
</td>
	<td colspan="4">
		<textarea name="description" <?php 
echo helper_get_tab_index();
?>
 cols="80" rows="6"><?php 
echo string_textarea($t_tag_row['description']);
?>
</textarea>
	</td>
</tr>

<!-- Submit Button -->
<tr>
	<td class="center" colspan="6">
		<input <?php 
echo helper_get_tab_index();
?>
 type="submit" class="button" value="<?php 
echo lang_get('tag_update_button');
?>
" />
Exemple #6
0
html_page_top1();
if (OFF == plugin_config_get('worklog_view_window')) {
    html_page_top2();
}
?>

<?php 
access_ensure_project_level(DEVELOPER);
$f_id = gpc_get_int('f_id');
# Retrieve faq item data and prefix with v_
$row = worklog_select_query($f_id);
if ($row) {
    extract($row, EXTR_PREFIX_ALL, "v");
}
$v_subject = string_attribute($v_subject);
$v_content = string_textarea($v_content);
?>

<?php 
# Edit faq Form BEGIN
?>
<p>
<div align="center">
<form method="post" action="<?php 
global $g_worklog_update;
echo $g_worklog_update;
?>
">
<input type="hidden" name="f_id" value="<?php 
echo $v_id;
?>
Exemple #7
0
html_page_top1();
if (OFF == plugin_config_get('faq_view_window')) {
    html_page_top2();
}
?>

<?php 
access_ensure_project_level(DEVELOPER);
$f_id = gpc_get_int('f_id');
# Retrieve faq item data and prefix with v_
$row = faq_select_query($f_id);
if ($row) {
    extract($row, EXTR_PREFIX_ALL, "v");
}
$v_question = string_attribute($v_question);
$v_answere = string_textarea($v_answere);
?>

<?php 
# Edit faq Form BEGIN
?>
<p>
<div align="center">
<form method="post" action="<?php 
global $g_faq_update;
echo $g_faq_update;
?>
">
<input type="hidden" name="f_id" value="<?php 
echo $v_id;
?>
	<td>
		<input type="text" name="os" size="32" maxlength="32" value="<?php echo string_attribute( $v_os ) ?>" />
	</td>
</tr>
<tr class="row-1">
	<th class="category">
		<span class="required">*</span><?php echo lang_get( 'os_version' ) ?>
	</th>
	<td>
		<input type="text" name="os_build" size="16" maxlength="16" value="<?php echo string_attribute( $v_os_build ) ?>" />
	</td>
</tr>
<tr class="row-2">
	<th class="category">
		<?php echo lang_get( 'additional_description' ) ?>
	</th>
	<td>
		<textarea name="description" cols="60" rows="8"><?php echo string_textarea( $v_description ) ?></textarea>
	</td>
</tr>
<tr>
	<td class="center" colspan="2">
		<input type="submit" class="button" value="<?php echo lang_get( 'update_profile_button' ) ?>" />
	</td>
</tr>
</table>
</form>
</div>
<?php
html_page_bottom();
function ERP_output_config_option($p_name, $p_type, $p_def_value = NULL, $p_function_name = NULL, $p_function_parameter = NULL)
{
    // $p_def_value has special purposes when it contains certain values. See below
    if ($p_def_value === NULL && !is_blank($p_name) && !in_array($p_type, array('empty', 'header', 'submit'), TRUE)) {
        $t_value = plugin_config_get($p_name);
    } elseif (is_array($p_def_value) && (!in_array($p_type, array('dropdown_multiselect', 'dropdown_multiselect_any', 'custom'), TRUE) || in_array($p_type, array('dropdown_multiselect', 'dropdown_multiselect_any', 'custom'), TRUE) && (count($p_def_value) === 0 || array_values($p_def_value) !== $p_def_value))) {
        $t_value = isset($p_def_value[$p_name]) ? $p_def_value[$p_name] : NULL;
    } else {
        $t_value = $p_def_value;
    }
    // incase we are used from within another plugin, we need to modify its name
    if (plugin_get_current() !== 'EmailReporting') {
        $t_input_name = 'plugin_content[' . plugin_get_current() . '][' . $p_name . ']';
    } else {
        $t_input_name = $p_name;
    }
    $t_input_name = string_attribute($t_input_name);
    if (strcasecmp($t_input_name, 'username') === 0 || strcasecmp($t_input_name, 'password') === 0) {
        trigger_error(plugin_lang_get('input_name_not_allowed'), ERROR);
    }
    $t_function_name = 'ERP_custom_function_' . $p_function_name;
    switch ($p_type) {
        case 'empty':
        case 'header':
            echo '
<tr>
	<td class="form-title" ' . (is_blank($t_value) ? 'width="100%" colspan="3"' : 'width="60%"') . '>
		' . (!is_blank($p_name) ? ($p_type === 'header' ? plugin_lang_get('plugin_title') . ': ' : NULL) . plugin_lang_get($p_name) : '&nbsp;') . '
	</td>';
            if (!is_blank($t_value)) {
                echo '<td class="right" width="40%" colspan="2"><a href="' . plugin_page($t_value) . '">' . plugin_lang_get($t_value) . '</a></td>';
            }
            echo '</tr>';
            break;
        case 'hidden':
            echo '<input type="hidden" name="' . $t_input_name . '" value="' . string_attribute($t_value) . '"/>';
            break;
        case 'radio_buttons':
            echo '<tr ' . helper_alternate_class() . '><td class="center" width="100%" colspan="3">';
            if (function_exists($t_function_name)) {
                $t_function_name($t_input_name, $t_value, $p_function_parameter);
            } else {
                echo '<span class="negative">' . plugin_lang_get('function_not_found', 'EmailReporting') . ': ' . $t_function_name . '</span>';
            }
            echo '</td></tr>';
            break;
        case 'submit':
            echo '<tr><td class="center" width="100%" colspan="3"><input ' . helper_get_tab_index() . ' type="submit" class="button" value="' . plugin_lang_get($p_name) . '" /></td></tr>';
            break;
        case 'boolean':
        case 'directory_string':
        case 'disabled':
        case 'integer':
        case 'string':
        case 'string_multiline':
        case 'string_multiline_array':
        case 'string_password':
        case 'dropdown':
        case 'dropdown_any':
        case 'dropdown_multiselect':
        case 'dropdown_multiselect_any':
            echo '<tr ' . helper_alternate_class() . '><td class="category" width="60%">';
            ERP_print_documentation_link($p_name);
            echo '</td>';
            switch ($p_type) {
                case 'boolean':
                    echo '<td class="center" width="20%"><label><input ' . helper_get_tab_index() . ' type="radio" name="' . $t_input_name . '" value="' . ON . '" ';
                    check_checked((int) $t_value, ON);
                    echo '/>' . lang_get('yes') . '</label></td>';
                    echo '<td class="center" width="20%"><label><input ' . helper_get_tab_index() . ' type="radio" name="' . $t_input_name . '" value="' . OFF . '" ';
                    // NULL can also be interpreted as 0. But in this case NULL means no option chosen
                    if ($t_value !== NULL) {
                        check_checked((int) $t_value, OFF);
                    }
                    echo '/>' . lang_get('no') . '</label></td>';
                    break;
                case 'directory_string':
                    $t_dir = $t_value;
                    if (is_dir($t_dir)) {
                        $t_result_is_dir_color = 'positive';
                        $t_result_is_dir_text = plugin_lang_get('directory_exists', 'EmailReporting');
                        if (is_writable($t_dir)) {
                            $t_result_is_writable_color = 'positive';
                            $t_result_is_writable_text = plugin_lang_get('directory_writable', 'EmailReporting');
                        } else {
                            $t_result_is_writable_color = 'negative';
                            $t_result_is_writable_text = plugin_lang_get('directory_unwritable', 'EmailReporting');
                        }
                    } else {
                        $t_result_is_dir_color = 'negative';
                        $t_result_is_dir_text = plugin_lang_get('directory_unavailable', 'EmailReporting');
                        $t_result_is_writable_color = NULL;
                        $t_result_is_writable_text = NULL;
                    }
                    echo '
	<td class="center" width="20%">
		<input ' . helper_get_tab_index() . ' type="text" size="30" maxlength="200" name="' . $t_input_name . '" value="' . string_attribute($t_dir) . '"/>
	</td>
	<td class="center" width="20%">
		<span class="' . $t_result_is_dir_color . '">' . $t_result_is_dir_text . '</span><br /><span class="' . $t_result_is_writable_color . '">' . $t_result_is_writable_text . '</span>
	</td>';
                    break;
                case 'disabled':
                    echo '<td class="center" width="40%" colspan="2">' . plugin_lang_get('disabled');
                    ERP_output_config_option($t_input_name, 'hidden', $t_value);
                    echo '</td>';
                    break;
                case 'integer':
                case 'string':
                    echo '<td class="center" width="40%" colspan="2"><input ' . helper_get_tab_index() . ' type="text" size="50" maxlength="100" name="' . $t_input_name . '" value="' . string_attribute($t_value) . '"/></td>';
                    break;
                case 'string_multiline':
                case 'string_multiline_array':
                    echo '<td class="center" width="40%" colspan="2"><textarea ' . helper_get_tab_index() . ' cols="40" rows="6" name="' . $t_input_name . '">';
                    if (is_array($t_value)) {
                        if ($p_type === 'string_multiline_array') {
                            $t_string_array = var_export($t_value, TRUE);
                            $t_string_array = array_map('trim', explode("\n", $t_string_array));
                            // remove the array opening and closing character
                            array_shift($t_string_array);
                            array_pop($t_string_array);
                            $t_string_array = implode("\n", $t_string_array);
                        } else {
                            $t_string_array = implode("\n", $t_value);
                        }
                        echo string_textarea($t_string_array);
                    } else {
                        echo string_textarea($t_value);
                    }
                    echo '</textarea></td>';
                    break;
                case 'string_password':
                    echo '<td class="center" width="40%" colspan="2"><input ' . helper_get_tab_index() . ' type="password" size="50" maxlength="50" name="' . $t_input_name . '" value="' . string_attribute(base64_decode($t_value)) . '"/></td>';
                    break;
                case 'dropdown':
                case 'dropdown_any':
                case 'dropdown_multiselect':
                case 'dropdown_multiselect_any':
                    echo '<td class="center" width="40%" colspan="2"><select ' . helper_get_tab_index() . ' name="' . $t_input_name . (in_array($p_type, array('dropdown_multiselect', 'dropdown_multiselect_any'), TRUE) ? '[]" multiple size="6' : NULL) . '">';
                    if (function_exists($t_function_name)) {
                        if (in_array($p_type, array('dropdown_any', 'dropdown_multiselect_any'), TRUE)) {
                            echo '<option value="' . META_FILTER_ANY . '"';
                            check_selected((array) $t_value, META_FILTER_ANY);
                            echo '>[' . lang_get('any') . ']</option>';
                        }
                        $t_function_name($t_value, $p_function_parameter);
                    } else {
                        echo '<option class="negative">' . plugin_lang_get('function_not_found', 'EmailReporting') . ': ' . $t_function_name . '</option>';
                    }
                    echo '</select></td>';
                    break;
                default:
                    echo '<tr><td colspan="3">' . plugin_lang_get('unknown_setting', 'EmailReporting') . $p_name . ' -> level 2</td></tr>';
            }
            echo '</tr>';
            break;
        case 'custom':
            if (function_exists($t_function_name)) {
                $t_function_name($p_name, $t_value, $p_function_parameter);
            } else {
                echo '<option class="negative">' . plugin_lang_get('function_not_found', 'EmailReporting') . ': ' . $t_function_name . '</option>';
            }
            break;
        default:
            echo '<tr><td colspan="3">' . plugin_lang_get('unknown_setting', 'EmailReporting') . $p_name . ' -> level 1</td></tr>';
    }
}
<tr class="spacer"><td></td><td></td><td></td></tr>
<?php 
}
?>

<tr <?php 
echo helper_alternate_class();
?>
>
<td class="category"><?php 
echo plugin_lang_get('message');
?>
</td>
<td colspan="2"><textarea name="message" cols="80" rows="8"><?php 
echo string_textarea($t_changeset->message);
?>
</textarea></td>
</tr>

<tr>
<td class="center" colspan="3"><input type="submit" value="<?php 
echo plugin_lang_get('edit');
?>
"/></td>
</tr>

</table>
</form>

<?php 
Exemple #11
0
function bug_prepare_edit($p_bug_data)
{
    $p_bug_data->category = string_attribute($p_bug_data->category);
    $p_bug_data->date_submitted = string_attribute($p_bug_data->date_submitted);
    $p_bug_data->last_updated = string_attribute($p_bug_data->last_updated);
    $p_bug_data->os = string_attribute($p_bug_data->os);
    $p_bug_data->os_build = string_attribute($p_bug_data->os_build);
    $p_bug_data->platform = string_attribute($p_bug_data->platform);
    $p_bug_data->version = string_attribute($p_bug_data->version);
    $p_bug_data->build = string_attribute($p_bug_data->build);
    $p_bug_data->target_version = string_attribute($p_bug_data->target_version);
    $p_bug_data->fixed_in_version = string_attribute($p_bug_data->fixed_in_version);
    $p_bug_data->summary = string_attribute($p_bug_data->summary);
    $p_bug_data->sponsorship_total = string_attribute($p_bug_data->sponsorship_total);
    $p_bug_data->sticky = string_attribute($p_bug_data->sticky);
    $p_bug_data->description = string_textarea($p_bug_data->description);
    $p_bug_data->steps_to_reproduce = string_textarea($p_bug_data->steps_to_reproduce);
    $p_bug_data->additional_information = string_textarea($p_bug_data->additional_information);
    return $p_bug_data;
}
						<?php print_enum_string_option_list( 'view_state', $row['view_state']) ?>
					</select>
				</span>
				<span class="label-style"></span>
			</div>
			<?php
			if ( file_is_uploading_enabled() ) { ?>
			<div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>">
				<label for="project-file-path"><span><?php echo lang_get( 'upload_file_path' ) ?></span></label>
				<span class="input"><input type="text" id="project-file-path" name="file_path" size="50" maxlength="250" value="<?php echo string_attribute( $row['file_path'] ) ?>" /></span>
				<span class="label-style"></span>
			</div><?php
			} ?>
			<div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>">
				<label for="project-description"><span><?php echo lang_get( 'description' ) ?></span></label>
				<span class="textarea"><textarea id="project-description" name="description" cols="60" rows="5"><?php echo string_textarea( $row['description'] ) ?></textarea></span>
				<span class="label-style"></span>
			</div>

			<?php event_signal( 'EVENT_MANAGE_PROJECT_UPDATE_FORM', array( $f_project_id ) ); ?>

			<span class="submit-button"><input type="submit" class="button" value="<?php echo lang_get( 'update_project_button' ) ?>" /></span>
		</fieldset>
	</form>
</div>

<!-- PROJECT DELETE -->
<?php
# You must have global permissions to delete projects
if ( access_has_global_level ( config_get( 'delete_project_threshold' ) ) ) { ?>
<div id="project-delete-div" class="form-container">
<?php if( $t_show_steps_to_reproduce ) { ?>
			<div class="field-container">
				<label><span><?php print_documentation_link( 'steps_to_reproduce' ) ?></span></label>
				<span class="textarea">
					<textarea <?php echo helper_get_tab_index() ?> id="steps_to_reproduce" name="steps_to_reproduce" cols="80" rows="10"><?php echo string_textarea( $f_steps_to_reproduce ) ?></textarea>
				</span>
				<span class="label-style"></span>
			</div>
<?php } ?>

<?php if( $t_show_additional_info ) { ?>
			<div class="field-container">
				<label><span><?php print_documentation_link( 'additional_information' ) ?></span></label>
				<span class="textarea">
					<textarea <?php echo helper_get_tab_index() ?> id="additional_info" name="additional_info" cols="80" rows="10"><?php echo string_textarea( $f_additional_info ) ?></textarea>
				</span>
				<span class="label-style"></span>
			</div>
<?php
	}

	$t_custom_fields_found = false;
	$t_related_custom_field_ids = custom_field_get_linked_ids( $t_project_id );

	foreach( $t_related_custom_field_ids as $t_id ) {
		$t_def = custom_field_get_definition( $t_id );
		if( ( $t_def['display_report'] || $t_def['require_report']) && custom_field_has_write_access_to_project( $t_id, $t_project_id ) ) {
			$t_custom_fields_found = true;
?>
			<div class="field-container">
Exemple #14
0
						print_user_option_list( $t_tag_row['user_id'], ALL_PROJECTS, config_get( 'tag_create_threshold' ) );
						echo '</select></span>';
					} else { ?>
						<span class="display-label"><span><?php echo lang_get( 'tag_creator' ); ?></span></span>
						<span class="display-value"><span><?php echo string_display_line( user_get_name($t_tag_row['user_id']) ); ?></span></span><?php
					} ?>
				<span class="label-style"></span>
			</div>
			<div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>">
				<span class="display-label"><span><?php echo lang_get( 'tag_created' ) ?></span></span>
				<span class="display-value"><span><?php echo date( config_get( 'normal_date_format' ), $t_tag_row['date_created'] ) ?></span></span>
				<span class="label-style"></span>
			</div>
			<div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>">
				<span class="display-label"><span><?php echo lang_get( 'tag_updated' ) ?></span></span>
				<span class="display-value"><span><?php echo date( config_get( 'normal_date_format' ), $t_tag_row['date_updated'] ) ?></span></span>
				<span class="label-style"></span>
			</div>
			<div class="field-container <?php echo helper_alternate_class_no_attribute(); ?>">
				<label for="tag-description"><span><?php echo lang_get( 'tag_description' ) ?></span></label>
				<span class="textarea"><textarea id="tag-description" name="description" <?php echo helper_get_tab_index() ?> cols="80" rows="6"><?php echo string_textarea( $t_description ) ?></textarea></span>
				<span class="label-style"></span>
			</div>
			<span class="submit-button"><input <?php echo helper_get_tab_index() ?> type="submit" class="button" value="<?php echo lang_get( 'tag_update_button' ) ?>" /></span>
		</fieldset>
	</form>
</div>

<?php
html_page_bottom();
    if (project_exists($row['project_id'])) {
        access_ensure_project_level(config_get('manage_news_threshold'), $row['project_id']);
    }
    helper_ensure_confirmed(lang_get('delete_news_sure_msg'), lang_get('delete_news_item_button'));
    news_delete($f_news_id);
    form_security_purge('news_delete');
    print_header_redirect('news_menu_page.php', true);
}
# Retrieve news item data and prefix with v_
$row = news_get_row($f_news_id);
if ($row) {
    extract($row, EXTR_PREFIX_ALL, 'v');
}
access_ensure_project_level(config_get('manage_news_threshold'), $v_project_id);
$v_headline = string_attribute($v_headline);
$v_body = string_textarea($v_body);
html_page_top(lang_get('edit_news_title'));
# Edit News Form BEGIN
?>
<br />
<div align="center">
<form method="post" action="news_update.php">
<?php 
echo form_security_field('news_update');
?>
<table class="width75" cellspacing="1">
<tr>
	<td class="form-title">
		<input type="hidden" name="news_id" value="<?php 
echo $v_id;
?>
    # in case the current project is not the same project of the bug we are viewing...
    # ... override the current project. This to avoid problems with categories and handlers lists etc.
    $g_project_override = $t_bug->project_id;
}
# Check if the current user is allowed to edit the bugnote
$t_user_id = auth_get_current_user_id();
$t_reporter_id = bugnote_get_field($f_bugnote_id, 'reporter_id');
if ($t_user_id != $t_reporter_id || OFF == config_get('bugnote_allow_user_edit_delete')) {
    access_ensure_bugnote_level(config_get('update_bugnote_threshold'), $f_bugnote_id);
}
# Check if the bug is readonly
if (bug_is_readonly($t_bug_id)) {
    error_parameters($t_bug_id);
    trigger_error(ERROR_BUG_READ_ONLY_ACTION_DENIED, ERROR);
}
$t_bugnote_text = string_textarea(bugnote_get_text($f_bugnote_id));
# No need to gather the extra information if not used
if (config_get('time_tracking_enabled') && access_has_bug_level(config_get('time_tracking_edit_threshold'), $t_bug_id)) {
    $t_time_tracking = bugnote_get_field($f_bugnote_id, "time_tracking");
    $t_time_tracking = db_minutes_to_hhmm($t_time_tracking);
}
# Determine which view page to redirect back to.
$t_redirect_url = string_get_bug_view_url($t_bug_id);
html_page_top(bug_format_summary($t_bug_id, SUMMARY_CAPTION));
?>
<br />
<div align="center">
<form method="post" action="bugnote_update.php">
<?php 
echo form_security_field('bugnote_update');
?>
<?php 
if ($t_show_additional_info) {
    ?>
	<tr>
		<th class="category">
			<label for="additional_info"><?php 
    print_documentation_link('additional_information');
    ?>
</label>
		</th>
		<td>
			<textarea <?php 
    echo helper_get_tab_index();
    ?>
 id="additional_info" name="additional_info" cols="80" rows="10"><?php 
    echo string_textarea($f_additional_info);
    ?>
</textarea>
		</td>
	</tr>
<?php 
}
$t_custom_fields_found = false;
$t_related_custom_field_ids = custom_field_get_linked_ids($t_project_id);
foreach ($t_related_custom_field_ids as $t_id) {
    $t_def = custom_field_get_definition($t_id);
    if (($t_def['display_report'] || $t_def['require_report']) && custom_field_has_write_access_to_project($t_id, $t_project_id)) {
        $t_custom_fields_found = true;
        ?>
	<tr>
		<th class="category">
echo ON == $t_remote_imports ? 'checked="checked"' : '';
?>
/></td>
</tr>

<tr <?php 
echo helper_alternate_class();
?>
>
<td class="category"><?php 
echo plugin_lang_get('remote_import_urls');
?>
</td>
<td><textarea name="import_urls" rows="8" cols="50"><?php 
foreach ($t_import_urls as $t_ip) {
    echo string_textarea($t_ip), "\n";
}
?>
</textarea></td>
</tr>

<?php 
foreach (SourceVCS::all() as $t_type => $t_vcs) {
    if ($t_vcs->configuration) {
        echo '<tr><td class="spacer"></td></tr>';
        $t_vcs->update_config_form();
    }
}
?>

<tr>