Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
bugzilla
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
bugzilla
Commits
3e3a8e74
Commit
3e3a8e74
authored
Oct 25, 2017
by
Дмитрий Никулин
Committed by
Vitaly Lipatov
Nov 13, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Delete backup copies of templates
parent
4541ab49
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
0 additions
and
1925 deletions
+0
-1925
create.html.tmpl~
template/ru/default/bug/create/create.html.tmpl~
+0
-671
edit.html.tmpl~
template/ru/default/bug/edit.html.tmpl~
+0
-1254
No files found.
template/ru/default/bug/create/create.html.tmpl~
deleted
100644 → 0
View file @
4541ab49
[%# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
#%]
[% title = BLOCK %]Регистрация [% terms.Bug %]: [% product.name FILTER html %][% END %]
[% use_qa_contact = Param("useqacontact") %]
[% PROCESS global/header.html.tmpl
title = title
generate_api_token = 1
yui = [ 'autocomplete', 'calendar', 'datatable', 'button' ]
style_urls = ['skins/standard/bug.css']
javascript_urls = [ "js/attachment.js", "js/util.js",
"js/field.js", "js/TUI.js", "js/bug.js" ]
onload = "set_assign_to($use_qa_contact); hideElementById('attachment_true');
showElementById('attachment_false'); showElementById('btn_no_attachment');"
%]
<script type="text/javascript">
<!--
var initialowners = new Array([% product.components.size %]);
var last_initialowner;
var initialccs = new Array([% product.components.size %]);
var components = new Array([% product.components.size %]);
var comp_desc = new Array([% product.components.size %]);
var flags = new Array([% product.components.size %]);
[% IF Param("useqacontact") %]
var initialqacontacts = new Array([% product.components.size %]);
var last_initialqacontact;
[% END %]
[% count = 0 %]
[%- FOREACH c = product.components %]
[% NEXT IF NOT c.is_active %]
components[[% count %]] = "[% c.name FILTER js %]";
comp_desc[[% count %]] = "[% c.description FILTER html_light FILTER js %]";
initialowners[[% count %]] = "[% c.default_assignee.login FILTER js %]";
[% flag_list = [] %]
[% FOREACH f = c.flag_types.bug %]
[% NEXT UNLESS f.is_active %]
[% flag_list.push(f.id) %]
[% END %]
[% FOREACH f = c.flag_types.attachment %]
[% NEXT UNLESS f.is_active %]
[% flag_list.push(f.id) %]
[% END %]
flags[[% count %]] = [[% flag_list.join(",") FILTER js %]];
[% IF Param("useqacontact") %]
initialqacontacts[[% count %]] = "[% c.default_qa_contact.login FILTER js %]";
[% END %]
[% SET initial_cc_list = [] %]
[% FOREACH cc_user = c.initial_cc %]
[% initial_cc_list.push(cc_user.login) %]
[% END %]
initialccs[[% count %]] = "[% initial_cc_list.join(', ') FILTER js %]";
[% count = count + 1 %]
[%- END %]
var status_comment_required = new Array();
[% FOREACH status = bug_status %]
status_comment_required['[% status.name FILTER js %]'] =
[% status.comment_required_on_change_from() ? 'true' : 'false' %]
[% END %]
TUI_alternates['expert_fields'] = 'Показать дополнительные поля';
// Hide the Advanced Fields by default, unless the user has a cookie
// that specifies otherwise.
TUI_hide_default('expert_fields');
// Also hide the "Paste text as attachment" textarea by default.
TUI_hide_default('attachment_text_field');
-->
</script>
<form name="Create" id="Create" method="post" action="post_bug.cgi"
class="enter_bug_form" enctype="multipart/form-data"
onsubmit="return validateEnterBug(this)">
<input type="hidden" name="product" value="[% product.name FILTER html %]">
<input type="hidden" name="token" value="[% token FILTER html %]">
<table>
<tbody>
<tr>
<td colspan="4">
[%# Migration note: The following file corresponds to the old Param
# 'entryheaderhtml'
#%]
[% PROCESS 'bug/create/user-message.html.tmpl' %]
</td>
</tr>
<tr>
<td colspan="2">
<a id="expert_fields_controller" class="controller bz_default_hidden"
href="javascript:TUI_toggle_class('expert_fields')">Скрыть
дополнительные поля</a>
[%# Show the link if the browser supports JS %]
<script type="text/javascript">
YAHOO.util.Dom.removeClass('expert_fields_controller',
'bz_default_hidden');
</script>
</td>
<td colspan="2">
(<span class="required_star">*</span> =
<span class="required_explanation">Необходимое поле</span>)
</td>
</tr>
<tr>
[% INCLUDE bug/field.html.tmpl
bug = default, field = bug_fields.product, editable = 0,
value = product.name %]
[% INCLUDE bug/field.html.tmpl
bug = default, field = bug_fields.reporter, editable = 0,
value = user.login %]
</tr>
[%# We can't use the select block in these two cases for various reasons. %]
<tr>
[% component_desc_url = BLOCK -%]
describecomponents.cgi?product=[% product.name FILTER uri %]
[% END %]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.component editable = 1
desc_url = component_desc_url
%]
<td id="field_container_component">
<select name="component" id="component" onchange="set_assign_to([% Param("useqacontact") %]);"
size="7" aria-required="true" class="required">
[%# Build the lists of assignees and QA contacts if "usemenuforusers" is enabled. %]
[% IF Param("usemenuforusers") %]
[% assignees_list = user.get_userlist.clone %]
[% qa_contacts_list = user.get_userlist.clone %]
[% END %]
[%- FOREACH c = product.components %]
[% NEXT IF NOT c.is_active %]
<option value="[% c.name FILTER html %]"
id="v[% c.id FILTER html %]_component"
[% IF c.name.lower == default.component_.lower %]
[%# This is for bug/field.html.tmpl, for visibility-related
# controls. %]
[% default.component_id = c.id %]
selected="selected"
[% END %]>
[% c.name FILTER html -%]
</option>
[% IF Param("usemenuforusers") %]
[% INCLUDE build_userlist default_user = c.default_assignee,
userlist = assignees_list %]
[% INCLUDE build_userlist default_user = c.default_qa_contact,
userlist = qa_contacts_list %]
[% END %]
[%- END %]
</select>
<script type="text/javascript">
<!--
[%+ INCLUDE "bug/field-events.js.tmpl"
field = bug_fields.component, product = product %]
//-->
</script>
</td>
<td colspan="2" id="comp_desc_container">
[%# Enclose the fieldset in a nested table so that its width changes based
# on the length on the component description. %]
<table>
<tr>
<td>
<fieldset>
<legend>Описание компонента</legend>
<div id="comp_desc" class="comment">Выберите компонент для просмотра описания.</div>
</fieldset>
</td>
</tr>
</table>
</td>
</tr>
<tr>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.version editable = 1 rowspan = 4
%]
<td rowspan="4">
<select name="version" id="version" size="5" aria-required="true"
class="required">
[%- FOREACH v = version %]
[% NEXT IF NOT v.is_active %]
<option value="[% v.name FILTER html %]"
[% ' selected="selected"' IF v.name == default.version %]>[% v.name FILTER html -%]
</option>
[%- END %]
</select>
</td>
[% INCLUDE bug/field.html.tmpl
bug = default, field = bug_fields.bug_severity, editable = 1,
value = default.bug_severity %]
</tr>
<tr class="expert_fields">
[% IF Param('letsubmitterchoosepriority') %]
[% INCLUDE bug/field.html.tmpl
bug = default, field = bug_fields.priority, editable = 1,
value = default.priority %]
[% ELSE %]
<td colspan="2"> </td>
[% END %]
</tr>
<tr>
[% INCLUDE bug/field.html.tmpl
bug = default, field = bug_fields.rep_platform, editable = 1,
value = default.rep_platform %]
</tr>
<tr>
[% INCLUDE bug/field.html.tmpl
bug = default, field = bug_fields.op_sys, editable = 1,
value = default.op_sys %]
</tr>
[% IF (!Param('defaultplatform') || !Param('defaultopsys')) && !cloned_bug_id %]
<tr>
<td colspan="2" class="expert_fields"> </td>
<td> </td>
<td id="os_guess_note" class="comment">
<div>Ваша
[% IF Param('defaultplatform') %]
операционная система определена автоматически. Проверьте это значение
[% ELSIF Param('defaultopsys') %]
платформа определена автоматически. Проверьте это значение
[% ELSE %]
операционная система и платформа определены автоматически. Проверьте эти значения
[% END %]
и при необходимости внесите исправления.</div>
</td>
</tr>
[% END %]
</tbody>
<tbody class="expert_fields">
<tr>
[% IF Param('usetargetmilestone') && Param('letsubmitterchoosemilestone') %]
[% INCLUDE select field = bug_fields.target_milestone %]
[% ELSE %]
<td colspan="2"> </td>
[% END %]
<td colspan="2"> </td>
</tr>
</tbody>
<tbody class="expert_fields">
<tr>
<td colspan="4"> </td>
</tr>
<tr>
[% INCLUDE bug/field.html.tmpl
bug = default, field = bug_fields.bug_status,
editable = (bug_status.size > 1), value = default.bug_status
override_legal_values = bug_status %]
<td> </td>
[%# Calculate the number of rows we can use for flags %]
[% num_rows = 6 + (Param("useqacontact") ? 1 : 0) +
(user.is_timetracker ? 3 : 0)
%]
<td rowspan="[% num_rows FILTER html %]">
[% IF product.flag_types.bug.size > 0 %]
[% display_flag_headers = 0 %]
[% any_flags_requesteeble = 0 %]
[% FOREACH flag_type = product.flag_types.bug %]
[% NEXT UNLESS flag_type.is_active %]
[% display_flag_headers = 1 %]
[% SET any_flags_requesteeble = 1 IF flag_type.is_requestable && flag_type.is_requesteeble %]
[% END %]
[% IF display_flag_headers %]
[% PROCESS "flag/list.html.tmpl" flag_types = product.flag_types.bug
any_flags_requesteeble = any_flags_requesteeble
flag_table_id = "bug_flags"
%]
[% END %]
[% END %]
</td>
</tr>
<tr>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.assigned_to editable = 1
%]
<td colspan="2">
[% INCLUDE global/userselect.html.tmpl
id => "assigned_to"
name => "assigned_to"
value => assigned_to
disabled => assigned_to_disabled
size => 30
emptyok => 1
custom_userlist => assignees_list
%]
<noscript>(По умолчанию — ответственный исполнитель компонента)</noscript>
</td>
</tr>
[% IF Param("useqacontact") %]
<tr>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.qa_contact editable = 1
%]
<td colspan="2">
[% INCLUDE global/userselect.html.tmpl
id => "qa_contact"
name => "qa_contact"
value => qa_contact
disabled => qa_contact_disabled
size => 30
emptyok => 1
custom_userlist => qa_contacts_list
%]
<noscript>(По умолчанию — ответственный за приемку компонента)</noscript>
</td>
</tr>
[% END %]
<tr>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.cc editable = 1
%]
<td colspan="2">
[% INCLUDE global/userselect.html.tmpl
id => "cc"
name => "cc"
value => cc
disabled => cc_disabled
size => 30
multiple => 5
%]
</td>
</tr>
<tr>
<th>[% field_descs.cc FILTER html %] по умолчанию:</th>
<td colspan="2">
<div id="initial_cc">
</div>
</td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
[% IF user.is_timetracker %]
<tr>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.estimated_time editable = 1
%]
<td colspan="2">
<input name="estimated_time" size="6" maxlength="6" value="[% estimated_time FILTER html %]">
</td>
</tr>
<tr>
[% INCLUDE bug/field.html.tmpl
bug = default, field = bug_fields.deadline, value = deadline,
editable = 1, value_span = 2 %]
</tr>
<tr>
<td colspan="3"> </td>
</tr>
[% END %]
<tr>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.alias editable = 1
%]
<td colspan="2">
<input name="alias" size="20" value="[% alias FILTER html %]">
</td>
</tr>
<tr>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.bug_file_loc editable = 1
%]
<td colspan="3" class="field_value">
<input name="bug_file_loc" id="bug_file_loc" class="text_input"
size="40" value="[% bug_file_loc FILTER html %]">
</td>
</tr>
</tbody>
<tbody>
[% USE Bugzilla %]
[% FOREACH field = Bugzilla.active_custom_fields %]
[% NEXT UNLESS field.enter_bug %]
[% SET value = ${field.name}.defined ? ${field.name} : "" %]
<tr [% 'class="expert_fields"' IF !field.is_mandatory %]>
[% INCLUDE bug/field.html.tmpl
bug = default, field = field, value = value, editable = 1,
value_span = 3 %]
</tr>
[% END %]
</tbody>
<tbody>
<tr>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.short_desc editable = 1
%]
<td colspan="3" class="field_value">
<input name="short_desc" size="70" value="[% short_desc FILTER html %]"
maxlength="255" spellcheck="true" aria-required="true"
class="required text_input" id="short_desc">
</td>
</tr>
[% IF feature_enabled('jsonrpc') AND !cloned_bug_id
AND user.settings.possible_duplicates.value == 'on' %]
<tr id="possible_duplicates_container" class="bz_default_hidden">
<th>Возможные<br>дубликаты:</th>
<td colspan="3">
<div id="possible_duplicates"></div>
<script type="text/javascript">
var dt_columns = [
{ key: "id", label: "[% field_descs.bug_id FILTER js %]",
formatter: YAHOO.bugzilla.dupTable.formatBugLink },
{ key: "summary",
label: "[% field_descs.short_desc FILTER js %]",
formatter: "text" },
{ key: "status",
label: "[% field_descs.bug_status FILTER js %]",
formatter: YAHOO.bugzilla.dupTable.formatStatus },
{ key: "update_token", label: '',
formatter: YAHOO.bugzilla.dupTable.formatCcButton }
];
YAHOO.bugzilla.dupTable.addCcMessage = "Add Me to the CC List";
YAHOO.bugzilla.dupTable.init({
container: 'possible_duplicates',
columns: dt_columns,
product_name: '[% product.name FILTER js %]',
summary_field: 'short_desc',
options: {
MSG_LOADING: 'Поиск возможных дубликатов...',
MSG_EMPTY: 'Возможные дубликаты не найдены.',
SUMMARY: 'Возможные дубликаты'
}
});
</script>
</td>
</tr>
[% END %]
<tr>
<th>Описание:</th>
<td colspan="3">
[% defaultcontent = BLOCK %]
[% IF cloned_bug_id %]
+++ Данная [% terms.bug %] создана размножением [% terms.Bug %] #[% cloned_bug_id %] +++
[% END %]
[%-# We are within a BLOCK. The comment will be correctly HTML-escaped
# by global/textarea.html.tmpl. So we must not escape the comment here. %]
[% comment FILTER none %]
[%- END %]
[% INCLUDE bug/comment.html.tmpl
minrows = 10
maxrows = 25
cols = constants.COMMENT_COLS
defaultcontent = defaultcontent
%]
<br>
</td>
</tr>
[% IF user.is_insider %]
<tr class="expert_fields">
<th> </th>
<td colspan="3">
<input type="checkbox" id="comment_is_private" name="comment_is_private"
[% ' checked="checked"' IF comment_is_private %]
onClick="updateCommentTagControl(this, 'comment')">
<label for="comment_is_private">
Сделать описание и все новые приложения конфиденциальными (видимыми
только членам <strong>[% Param('insidergroup') FILTER html %]</strong> группы)
</label>
</td>
</tr>
<script>
updateCommentTagControl(document.getElementById('comment_is_private'), 'comment');
</script>
[% END %]
[% IF Param("maxattachmentsize") || Param("maxlocalattachment") %]
<tr>
<th>Приложение:</th>
<td colspan="3">
<div id="attachment_false" class="bz_default_hidden">
<input type="button" value="Добавить приложение" onClick="handleWantsAttachment(true)">
</div>
<div id="attachment_true">
<input type="button" id="btn_no_attachment" value="Не добавлять приложение"
class="bz_default_hidden" onClick="handleWantsAttachment(false)">
<fieldset>
<legend>Добавить приложение</legend>
<table class="attachment_entry">
[% PROCESS attachment/createformcontents.html.tmpl
flag_types = product.flag_types.attachment
any_flags_requesteeble = 1
flag_table_id ="attachment_flags" %]
</table>
</fieldset>
</div>
</td>
</tr>
[% END %]
</tbody>
<tbody class="expert_fields">
[% IF use_keywords %]
<tr>
[% INCLUDE bug/field.html.tmpl
bug = default, field = bug_fields.keywords, editable = 1,
value = keywords, possible_values = all_keywords,
desc_url = "describekeywords.cgi", value_span = 3
%]
</tr>
[% END %]
[% IF user.in_group('editbugs', product.id) %]
<tr>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.dependson editable = 1
%]
<td colspan="3">
<input name="dependson" accesskey="d" value="[% dependson FILTER html %]">
</td>
</tr>
<tr>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.blocked editable = 1
%]
<td colspan="3">
<input name="blocked" accesskey="b" value="[% blocked FILTER html %]">
</td>
</tr>
[% END %]
[% IF Param('use_see_also') %]
<tr>
[% INCLUDE bug/field.html.tmpl
bug = default
field = bug_fields.see_also
editable = 1
value = see_also
%]
</tr>
[% END %]
</tbody>
<tbody class="expert_fields">
[% IF product.groups_available.size %]
<tr>
<th> </th>
<td colspan="3">
<br>
<strong>
[%+ terms.bug %] доступна только членам следующих групп::
</strong>
<br>
<span class="bz_info">
(Снятие всех отметок делает [% terms.bug %] общедоступной.)
</span>
<br>
<br>
<!-- Checkboxes -->
<input type="hidden" name="defined_groups" value="1">
[% FOREACH group = product.groups_available %]
<input type="checkbox" id="group_[% group.id FILTER html %]"
name="groups" value="[% group.name FILTER html %]"
[% ' checked="checked"' IF default.groups.contains(group.name)
OR group.is_default %]>
<label for="group_[% group.id FILTER html %]">
[%- group.description FILTER html_light %]</label><br>
[% END %]
</td>
</tr>
[% END %]
</tbody>
<tbody>
[%# Form controls for entering additional data about the bug being created. %]
[% Hook.process("form") %]
<tr>
<th> </th>
<td colspan="3">
<input type="submit" id="commit" value="Зарегистрировать [% terms.bug_acc %]">
<input type="submit" name="maketemplate" id="maketemplate"
value="Сохранить в качестве образца"
onclick="bz_no_validate_enter_bug=true" class="expert_fields">
</td>
</tr>
</tbody>
</table>
<input type="hidden" name="form_name" value="enter_bug">
</form>
[%# Links or content with more information about the bug being created. %]
[% Hook.process("end") %]
[% PROCESS global/footer.html.tmpl %]
[%############################################################################%]
[%# Block for SELECT fields #%]
[%############################################################################%]
[% BLOCK select %]
[% INCLUDE "bug/field-label.html.tmpl"
field = field editable = 1
%]
<td>
<select name="[% field.name FILTER html %]"
id="[% field.name FILTER html %]">
[%- FOREACH x = ${field.name} %]
[% NEXT IF NOT x.is_active %]
<option value="[% x.name FILTER html %]"
[% " selected=\"selected\"" IF x.name == default.${field.name} %]>
[% display_value(field.name, x.name) FILTER html %]
</option>
[% END %]
</select>
</td>
[% END %]
[% BLOCK build_userlist %]
[% user_found = 0 %]
[% default_login = default_user.login %]
[% RETURN UNLESS default_login %]
[% FOREACH user = userlist %]
[% IF user.login == default_login %]
[% user_found = 1 %]
[% LAST %]
[% END %]
[% END %]
[% userlist.push({login => default_login,
identity => default_user.identity,
visible => 1})
UNLESS user_found %]
[% END %]
template/ru/default/bug/edit.html.tmpl~
deleted
100644 → 0
View file @
4541ab49
[%# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
#%]
[% PROCESS bug/time.html.tmpl %]
[% IF Param('comment_taggers_group') %]
[% IF user.can_tag_comments %]
<div id="bz_ctag_div" class="bz_default_hidden">
<a href="javascript:void(0)" onclick="YAHOO.bugzilla.commentTagging.hideInput()">x</a>
<div>
<input id="bz_ctag_add" size="10" placeholder="add tag"
maxlength="[% constants.MAX_COMMENT_TAG_LENGTH FILTER html %]">
<span id="bz_ctag_autocomp"></span>
</div>
</div>
<div id="bz_ctag_error" class="bz_default_hidden">
<a href="javascript:void(0)" onclick="YAHOO.bugzilla.commentTagging.hideError()">x</a>
<span id="bz_ctag_error_msg"></span>
</div>
[% END %]
[% IF user.id %]
<script type="text/javascript">
YAHOO.bugzilla.commentTagging.init([% user.can_tag_comments ? 'true' : 'false' %]);
YAHOO.bugzilla.commentTagging.min_len = [% constants.MIN_COMMENT_TAG_LENGTH FILTER js %];
YAHOO.bugzilla.commentTagging.max_len = [% constants.MAX_COMMENT_TAG_LENGTH FILTER js %];
YAHOO.bugzilla.commentTagging.label = 'Comment Tags:';
YAHOO.bugzilla.commentTagging.min_len_error =
'Comment tags must be at least
[%~ " " _ constants.MIN_COMMENT_TAG_LENGTH FILTER js %] characters.';
YAHOO.bugzilla.commentTagging.max_len_error =
'Comment tags cannot be longer than
[%~ " " _ constants.MAX_COMMENT_TAG_LENGTH FILTER js %] characters.';
</script>
[% END %]
[% END %]
<script type="text/javascript">
<!--
[% IF user.is_timetracker %]
var bz_remaining_time = [% bug.remaining_time %];
[% END %]
[% IF user.id %]
/* Index all classifications so we can keep track of the classification
* for the selected product, which could control field visibility.
*/
var all_classifications = new Array([% bug.choices.product.size %]);
[%- FOREACH product = bug.choices.product %]
all_classifications['[% product.name FILTER js %]'] = '
[%- product.classification.name FILTER js %]';
[%- END %]
[% END %]
//-->
</script>
<form name="changeform" id="changeform" method="post" action="process_bug.cgi">
<input type="hidden" name="delta_ts" value="[% bug.delta_ts %]">
<input type="hidden" name="id" value="[% bug.bug_id %]">
<input type="hidden" name="token" value="[% issue_hash_token([bug.id, bug.delta_ts]) FILTER html %]">
[% PROCESS section_title %]
<table class="edit_form">
<tr>
[%# 1st Column %]
<td id="bz_show_bug_column_1" class="bz_show_bug_column">
<table>
[%# *** ID, product, component, status, resolution, Hardware, and OS *** %]
[% PROCESS section_status %]
[% PROCESS section_spacer %]
[% PROCESS section_aliases %]
[% PROCESS section_spacer %]
[% PROCESS section_details1 %]
[% PROCESS section_spacer %]
[%# *** severity, priority, version, milestone, and deadline *** %]
[% PROCESS section_details2 %]
[%# *** assigned to and qa contact *** %]
[% PROCESS section_people %]
[% PROCESS section_spacer %]
[% PROCESS section_url_keyword_whiteboard %]
[% PROCESS section_spacer %]
[%# *** Dependencies and duplicates *** %]
[% PROCESS section_duplicates %]
[% PROCESS section_dependson_blocks %]
</table>
</td>
<td>
<div class="bz_column_spacer"> </div>
</td>
[%# 2nd Column %]
<td id="bz_show_bug_column_2" class="bz_show_bug_column">
<table>
[%# *** Reported and modified dates *** %]
[% PROCESS section_dates %]
[% PROCESS section_cclist %]
[% PROCESS section_bug_ignored %]
[% PROCESS section_spacer %]
[% PROCESS section_see_also %]
[% PROCESS section_customfields %]
[% PROCESS section_spacer %]
[% Hook.process("after_custom_fields") %]
[% PROCESS section_flags %]
</table>
</td>
</tr>
<tr>
<td colspan="3">
<hr id="bz_top_half_spacer">
</td>
</tr>
</table>
<table id="bz_big_form_parts">
<tr>
<td>
[% IF user.is_timetracker %]
[% PROCESS section_timetracking %]
[% END %]
[%# *** Attachments *** %]
[% PROCESS attachment/list.html.tmpl
attachments = bug.attachments
bugid = bug.bug_id
num_attachment_flag_types = bug.num_attachment_flag_types
show_attachment_flags = bug.show_attachment_flags
%]
[% IF user.settings.comment_box_position.value == 'before_comments' %]
[% PROCESS comment_box %]
[% END %]
</td>
<td>
[% PROCESS section_restrict_visibility %]
</td>
</tr></table>
[%# *** Additional Comments *** %]
<div id="comments">
[% PROCESS bug/comments.html.tmpl
comments = bug.comments
mode = user.id ? "edit" : "show"
%]
</div>
[% IF user.settings.comment_box_position.value == 'after_comments' %]
<hr>
[% PROCESS comment_box %]
[% END %]
</form>
[%############################################################################%]
[%# Block for the Title (alias and short desc) #%]
[%############################################################################%]
[% BLOCK section_title %]
[%# That's the main table, which contains all editable fields. %]
<div class="bz_short_desc_container edit_form">
[% PROCESS commit_button id="_top"%]
<a href="show_bug.cgi?id=[% bug.bug_id %]">
[%-# %]<b>[% terms.Bug %] [% bug.bug_id FILTER html %]</b>
[%-# %]</a> <span id="summary_container" class="bz_default_hidden">
[% IF bug.alias.size > 0 %]
(<span id="alias_nonedit_display">[% bug.alias.join(', ') FILTER html %]</span>)
[% END %]
- <span id="short_desc_nonedit_display">[% bug.short_desc FILTER quoteUrls(bug) %]</span>
[% can_edit_short_desc = bug.check_can_change_field('short_desc', 0, 1) %]
[% IF can_edit_short_desc %]
<small>(<a href="#" id="summary_edit_action">edit</a>)</small>
[% END %]
</span>
<div id="summary_input">
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.short_desc
editable = can_edit_short_desc
accesskey = "s"
tag_name = 'span'
%]
[% PROCESS input inputname => "short_desc" size => "80"
maxlength => 255 spellcheck => "true" no_td => 1 %]
</div>
</div>
<script type="text/javascript">
hideEditableField('summary_container',
'summary_input',
'summary_edit_action',
'short_desc',
'[% bug.short_desc FILTER js %]' );
</script>
[% END %]
[%############################################################################%]
[%# Block for the first table in the "Details" section #%]
[%############################################################################%]
[% BLOCK section_details1 %]
[%#############%]
[%# PRODUCT #%]
[%#############%]
<tr>
[% INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.product, value = bug.product
override_legal_values = bug.choices.product
desc_url = "describecomponents.cgi"
editable = bug.check_can_change_field('product', 0, 1)
%]
</tr>
[%# Classification is here so that it can be used in value controllers
# and visibility controllers. It comes after product because
# it uses some javascript that depends on the existence of the
# product field.
#%]
<tr class="bz_default_hidden">
[% INCLUDE bug/field.html.tmpl
bug = bug field = bug_fields.classification
override_legal_values = bug.choices.classification
value = bug.classification
editable = bug.check_can_change_field('product', 0, 1) %]
</tr>
[%###############%]
[%# Component #%]
[%###############%]
<tr>
[% INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.component, value = bug.component
override_legal_values = bug.choices.component
desc_url = "describecomponents.cgi?product=$bug.product"
editable = bug.check_can_change_field('component', 0, 1)
%]
</tr>
<tr>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.version
editable = bug.check_can_change_field('version', 0, 1) %]
[% PROCESS select selname => "version" %]
</tr>
[%############%]
[%# PLATFORM #%]
[%############%]
<tr>
[% can_edit_rep_platform = bug.check_can_change_field('rep_platform', 0, 1) %]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.rep_platform,
editable = can_edit_rep_platform,
accesskey = "h" %]
<td class="field_value">
[% INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.rep_platform,
no_tds = 1, value = bug.rep_platform
editable = can_edit_rep_platform %]
[%+ INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.op_sys,
no_tds = 1, value = bug.op_sys
editable = bug.check_can_change_field('op_sys', 0, 1) %]
</td>
</tr>
[% END %]
[%############################################################################%]
[%# Block for the status section #%]
[%############################################################################%]
[% BLOCK section_status %]
<tr>
<th class="field_label">
<a href="page.cgi?id=fields.html#bug_status">Состояние</a>:
</th>
<td id="bz_field_status">
<span id="static_bug_status">
[% display_value("bug_status", bug.bug_status) FILTER html %]
[% IF bug.resolution %]
[%+ display_value("resolution", bug.resolution) FILTER html %]
[% IF bug.dup_id %]
of [% "${terms.bug} ${bug.dup_id}" FILTER bug_link(bug.dup_id) FILTER none %]
[% END %]
[% END %]
[% IF bug.user.canedit || bug.user.isreporter %]
(<a href="#add_comment"
onclick="window.setTimeout(function() { document.getElementById('bug_status').focus(); }, 10)">изменить</a>)
[% END %]
</span>
</td>
</tr>
[% END %]
[%############################################################################%]
[%# Block for the second table in the "Details" section #%]
[%############################################################################%]
[% BLOCK section_details2 %]
[%###############################################################%]
[%# Importance (priority and severity) #%]
[%###############################################################%]
<tr>
<th class="field_label">
[% can_edit_priority = bug.check_can_change_field('priority', 0, 1) %]
<label [% IF can_edit_priority %]for="priority"[% END %] accesskey="i">
<a href="page.cgi?id=fields.html#importance"><u>В</u>ажность</a></label>:
</th>
<td>
[% INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.priority,
no_tds = 1, value = bug.priority
editable = can_edit_priority %]
[%+ INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.bug_severity,
no_tds = 1, value = bug.bug_severity
editable = bug.check_can_change_field('bug_severity', 0, 1) %]
[% Hook.process('after_importance', 'bug/edit.html.tmpl') %]
</td>
</tr>
[% IF Param("usetargetmilestone") && bug.target_milestone %]
<tr>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.target_milestone
editable = bug.check_can_change_field('target_milestone', 0, 1)
%]
[% PROCESS select selname = "target_milestone" %]
</tr>
[% END %]
[% IF Param("timetrackinggroup") && bug.deadline %]
<tr>
<th class="field_label">
<a href="page.cgi?id=fields.html#deadline">Срок</a>:
</th>
<td>[% bug.deadline FILTER html %]</td>
</tr>
[% END %]
[% END %]
[%############################################################################%]
[%# Block for the table in the "People" section #%]
[%############################################################################%]
[% BLOCK section_people %]
<tr>
[% can_edit_assigned_to = bug.check_can_change_field("assigned_to", 0, 1) %]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.assigned_to
editable = can_edit_assigned_to
%]
<td>
[% IF can_edit_assigned_to %]
<div id="bz_assignee_edit_container" class="bz_default_hidden">
<span>
[% INCLUDE global/user.html.tmpl who = bug.assigned_to %]
(<a href="#" id="bz_assignee_edit_action">изменить</a>)
[% IF bug.assigned_to.id != user.id %]
(<a title="Взять исполнение на себя"
href="#" id="bz_assignee_take_action">взять на себя</a>)
[% END %]
</span>
</div>
<div id="bz_assignee_input">
[% INCLUDE global/userselect.html.tmpl
id => "assigned_to"
name => "assigned_to"
value => bug.assigned_to.login
classes => ["bz_userfield"]
size => 30
%]
<br>
<input type="checkbox" id="set_default_assignee" name="set_default_assignee" value="1">
<label id="set_default_assignee_label" for="set_default_assignee">Reset Assignee to default</label>
</div>
<script type="text/javascript">
hideEditableField('bz_assignee_edit_container',
'bz_assignee_input',
'bz_assignee_edit_action',
'assigned_to',
'[% bug.assigned_to.login FILTER js %]' );
hideEditableField('bz_assignee_edit_container',
'bz_assignee_input',
'bz_assignee_take_action',
'assigned_to',
'[% bug.assigned_to.login FILTER js %]',
'[% user.login FILTER js %]' );
initDefaultCheckbox('assignee');
</script>
[% ELSE %]
[% INCLUDE global/user.html.tmpl who = bug.assigned_to %]
[% END %]
</td>
</tr>
[% IF Param('useqacontact') %]
<tr>
[% can_edit_qa_contact = bug.check_can_change_field("qa_contact", 0, 1) %]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.qa_contact
editable = can_edit_qa_contact
accesskey = "q"
%]
<td>
[% IF can_edit_qa_contact %]
<div id="bz_qa_contact_edit_container" class="bz_default_hidden">
<span>
[% INCLUDE global/user.html.tmpl who = bug.qa_contact %]
(<a href="#" id="bz_qa_contact_edit_action">изменить</a>)
[% IF bug.qa_contact.id != user.id %]
(<a title="Взять приемку на себя"
href="#" id="bz_qa_contact_take_action">взять на себя</a>)
[% END %]
</span>
</div>
<div id="bz_qa_contact_input">
[% INCLUDE global/userselect.html.tmpl
id => "qa_contact"
name => "qa_contact"
value => bug.qa_contact.login
size => 30
classes => ["bz_userfield"]
emptyok => 1
%]
<br>
<input type="checkbox" id="set_default_qa_contact" name="set_default_qa_contact" value="1">
<label for="set_default_qa_contact" id="set_default_qa_contact_label">Вернуть ответственному за приемку по умолчанию</label>
</div>
<script type="text/javascript">
hideEditableField('bz_qa_contact_edit_container',
'bz_qa_contact_input',
'bz_qa_contact_edit_action',
'qa_contact',
'[% bug.qa_contact.login FILTER js %]');
hideEditableField('bz_qa_contact_edit_container',
'bz_qa_contact_input',
'bz_qa_contact_take_action',
'qa_contact',
'[% bug.qa_contact.login FILTER js %]',
'[% user.login FILTER js %]');
initDefaultCheckbox('qa_contact');
</script>
[% ELSE %]
[% INCLUDE global/user.html.tmpl who = bug.qa_contact %]
[% END %]
</td>
</tr>
[% END %]
<script type="text/javascript">
assignToDefaultOnChange(['product', 'component'],
'[% bug.component_obj.default_assignee.login FILTER js %]',
'[% bug.component_obj.default_qa_contact.login FILTER js %]');
</script>
[% END %]
[%############################################################################%]
[%# Block for URL Keyword and Whiteboard #%]
[%############################################################################%]
[% BLOCK section_url_keyword_whiteboard %]
<tr>
[% can_edit_bug_file_loc = bug.check_can_change_field("bug_file_loc", 0, 1) %]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.bug_file_loc
editable = can_edit_bug_file_loc
accesskey = "u"
%]
<td>
[% IF can_edit_bug_file_loc %]
<span id="bz_url_edit_container" class="bz_default_hidden">
[% IF is_safe_url(bug.bug_file_loc) %]
<a href="[% bug.bug_file_loc FILTER html %]" target="_blank"
rel="noreferrer" title="[% bug.bug_file_loc FILTER html %]">
[% bug.bug_file_loc FILTER truncate(40) FILTER html %]</a>
[% ELSE %]
[% bug.bug_file_loc FILTER html %]
[% END %]
(<a href="#" id="bz_url_edit_action">изменить</a>)</span>
[% END %]
<span id="bz_url_input_area">
[% url_output = INCLUDE input no_td = 1 inputname = "bug_file_loc" size = 40 %]
[% IF NOT bug.check_can_change_field("bug_file_loc", 0, 1)
AND is_safe_url(bug.bug_file_loc) %]
<a href="[% bug.bug_file_loc FILTER html %]"
rel="noreferrer">[% url_output FILTER none %]</a>
[% ELSE %]
[% url_output FILTER none %]
[% END %]
</span>
[% IF bug.check_can_change_field("bug_file_loc", 0, 1) %]
<script type="text/javascript">
hideEditableField('bz_url_edit_container',
'bz_url_input_area',
'bz_url_edit_action',
'bug_file_loc',
"[% bug.bug_file_loc FILTER js %]");
</script>
[% END %]
</td>
</tr>
[% IF Param('usestatuswhiteboard') %]
<tr>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.status_whiteboard
editable = bug.check_can_change_field("status_whiteboard", 0, 1)
accesskey = "w"
%]
[% INCLUDE input inputname = "status_whiteboard" size = 40 %]
</tr>
[% END %]
[% IF use_keywords %]
<tr>
[% INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.keywords, value = bug.keywords
editable = bug.check_can_change_field("keywords", 0, 1),
desc_url = "describekeywords.cgi", possible_values = all_keywords
%]
</tr>
[% END %]
[% IF user.id %]
<tr>
[% INCLUDE bug/field.html.tmpl
bug = bug, field = bug_fields.tag, value = bug.tags.join(", "),
editable = 1, possible_values = user.tags.keys
%]
</tr>
[% END %]
[% END %]
[%############################################################################%]
[%# Block for Duplicates #%]
[%############################################################################%]
[% BLOCK section_duplicates %]
[% RETURN UNLESS bug.duplicates.size %]
<tr>
<th class="field_label">
<label>Duplicates ([% bug.duplicates.size %])</label>:
</th>
<td class="field_value">
<span id="duplicates">
[% FOREACH dupe = bug.duplicates %]
[% INCLUDE bug/link.html.tmpl bug = dupe, link_text = dupe.id, use_alias = 1 %][% " " %]
[% END %]
</span>
(<a href="buglist.cgi?bug_id=[% bug.duplicate_ids.join(",") FILTER html %]">
[%-%]показать как список [% terms.bug %]</a>)
</td>
</tr>
[% END %]
[%############################################################################%]
[%# Block for Depends On / Blocks #%]
[%############################################################################%]
[% BLOCK section_dependson_blocks %]
<tr>
[% INCLUDE dependencies
field = bug_fields.dependson deps = bug.depends_on_obj %]
</tr>
<tr>
[% INCLUDE dependencies
field = bug_fields.blocked deps = bug.blocks_obj %]
</tr>
[% IF bug.dependson.size || bug.blocked.size %]
<tr>
<th> </th>
<td id="show_dependency_tree_or_graph">
Показать <a href="showdependencytree.cgi?id=[% bug.bug_id %]&hide_resolved=1">дерево</a>
[% IF Param('webdotbase') %]
/ <a href="showdependencygraph.cgi?id=[% bug.bug_id %]">диаграмму</a>
[% END %] зависимостей
</td>
</tr>
[% END %]
[% END %]
[%############################################################################%]
[%# Block for Restricting Visibility #%]
[%############################################################################%]
[% BLOCK section_restrict_visibility %]
[% RETURN UNLESS bug.groups.size %]
<div class="bz_group_visibility_section">
[% inallgroups = 1 %]
[% inagroup = 0 %]
[% emitted_description = 0 %]
[% FOREACH group = bug.groups %]
[% SET inallgroups = 0 IF NOT group.ingroup %]
[% SET inagroup = 1 IF group.ison %]
[% NEXT IF group.mandatory %]
[% IF NOT emitted_description %]
[% emitted_description = 1 %]
<div id="bz_restrict_group_visibility_help">
<b>Только пользователи, входящие
[%+ IF Param('or_groups') %]
хотя бы в одну из выбранных групп,
[% ELSE %]
во все выбранные группы,
[% END %]
могут просматривать эту [% terms.bug_acc %]:</b>
<p class="instructions">
Если не выбрана ни одна группа, то [% terms.bug %] доступна всем пользователям.
</p>
</div>
[% END %]
[% IF group.ingroup %]
<input type="hidden" name="defined_groups"
value="[% group.name FILTER html %]">
[% END %]
<input type="checkbox" value="[% group.name FILTER html %]"
name="groups" id="group_[% group.bit %]"
[% ' checked="checked"' IF group.ison %]
[% ' disabled="disabled"' IF NOT group.ingroup %]>
<label for="group_[% group.bit %]">
[%- group.description FILTER html_light %]</label>
<br>
[% END %]
[% IF emitted_description %]
[% IF NOT inallgroups %]
<p class="instructions">Только члены группы могут управлять видимостью
[% terms.abug %] для этой группы.</p>
[% END %]
[% END %]
[% IF inagroup %]
<div id="bz_enable_role_visibility_help">
<b>Пользователям выбранных ролей [% terms.bug %] видима всегда:</b>
</div>
<div id="bz_enable_role_visibility">
<div>
[% user_can_edit_accessible =
bug.check_can_change_field("reporter_accessible", 0, 1)
%]
[% IF user_can_edit_accessible %]
<input type="hidden" name="defined_reporter_accessible" value="1">
[% END %]
<input type="checkbox" value="1"
name="reporter_accessible" id="reporter_accessible"
[% " checked" IF bug.reporter_accessible %]
[% " disabled=\"disabled\"" UNLESS user_can_edit_accessible %]>
<label for="reporter_accessible">Инициатор</label>
</div>
<div>
[% user_can_edit_accessible =
bug.check_can_change_field("cclist_accessible", 0, 1)
%]
[% IF user_can_edit_accessible %]
<input type="hidden" name="defined_cclist_accessible" value="1">
[% END %]
<input type="checkbox" value="1"
name="cclist_accessible" id="cclist_accessible"
[% " checked" IF bug.cclist_accessible %]
[% " disabled=\"disabled\"" UNLESS user_can_edit_accessible %]>
<label for="cclist_accessible">Подписчики</label>
</div>
<p class="instructions">
Исполнитель
[% IF (Param('useqacontact')) %]
и ответственный за приемку
[% END %]
всегда имеют доступ к [% terms.abug %]. Данная настройка действует
если видимость [% terms.bug %] ограничена некоторой группой.
</p>
</div>
[% END %]
</div> [%# bz_group_visibility_section %]
[% END %]
[%############################################################################%]
[%# Block for Dates #%]
[%############################################################################%]
[% BLOCK section_dates %]
<tr>
<th class="field_label">
Зарегистрирована:
</th>
<td>
[% bug.creation_ts FILTER time("%Y-%m-%d %H:%M %Z") %] пользователем [% INCLUDE global/user.html.tmpl who = bug.reporter %]
</td>
</tr>
<tr>
<th class="field_label">
Изменена:
</th>
<td>
[% bug.delta_ts FILTER time("%Y-%m-%d %H:%M %Z") %]
(<a href="show_activity.cgi?id=[% bug.bug_id %]">[%# terms.Bug %]История изменений</a>)
</td>
</tr>
[% END %]
[%############################################################################%]
[%# Block for CC LIST #%]
[%############################################################################%]
[% BLOCK section_cclist %]
<tr>
<th class="field_label">
<label [% IF user.id %]for="newcc"[% END %] accesskey="a">
Подписчики::
</label>
</th>
<td>
[% IF user.id %]
[% IF NOT bug.cc.contains(user.login) %]
<input type="checkbox" id="addselfcc" name="addselfcc"
[% " checked=\"checked\""
IF user.settings.state_addselfcc.value == 'always'
|| (!bug.user.has_any_role
&& user.settings.state_addselfcc.value == 'cc_unless_role') %]>
<label for="addselfcc">Добавить себя</label>
<br>
[% END %]
[% END %]
[% bug.cc.size FILTER html %]
[% IF bug.cc.size == 1 %]
пользователь
[% ELSE %]
пользователей
[% END %]
[% IF user.id %]
[% IF bug.cc.contains( user.email ) %]
(включая себя)
[% END %]
[% END %]
[% IF user.id || bug.cc.size %]
<span id="cc_edit_area_showhide_container" class="bz_default_hidden">
(<a href="#" id="cc_edit_area_showhide">[% IF user.id %]изменить[% ELSE %]показать[% END %]</a>)
</span>
[% END %]
<div id="cc_edit_area">
<br>
[% IF user.id %]
<div>
<div><label for="cc"><b>Подписать</b></label></div>
[% INCLUDE global/userselect.html.tmpl
id => "newcc"
name => "newcc"
value => ""
size => 30
classes => ["bz_userfield"]
multiple => 5
%]
</div>
[% END %]
[% IF bug.cc.size %]
<select id="cc" multiple="multiple" size="5" [% 'name="cc"' IF bug.user.canedit %]>
[% FOREACH c = bug.cc %]
<option value="[% c FILTER email FILTER html %]">
[% c FILTER email FILTER html %]</option>
[% END %]
</select>
[% IF user.id && !bug.user.canedit %]
<input type="hidden" name="cc" value="[% user.login FILTER email FILTER html %]">
[% END %]
[% IF user.id AND (bug.user.canedit OR bug.cc.contains(user.login)) %]
<br>
<input type="checkbox" id="removecc" name="removecc">
<label for="removecc">
[% IF bug.user.canedit %]
Отменить подписку выбранных пользователей
[% ELSE %]
Отменить мою подписку
[% END %]
</label>
<br>
[% END %]
[% END %]
</div>
[% IF user.id || bug.cc.size %]
<script type="text/javascript">
hideEditableField( 'cc_edit_area_showhide_container',
'cc_edit_area',
'cc_edit_area_showhide',
'',
'');
</script>
[% END %]
</td>
</tr>
[% END %]
[%############################################################################%]
[%# Block for Bug Ignored #%]
[%############################################################################%]
[% BLOCK section_bug_ignored %]
[% IF user.id %]
<tr>
<th class="field_label">
<label for="bug_ignored" title="Ignore all email for this [% terms.bug %]">
Игнорировать [% terms.bug_acc %]:
</label>
</th>
<td>
<input type="hidden" name="defined_bug_ignored" value="1">
<span title="Вы по прежнему будете получать уведомления о запросах согласования по этой ошибке.">
<input type="checkbox" name="bug_ignored" id="bug_ignored" value="1"
[% ' checked="checked"' IF user.is_bug_ignored(bug.id) %]>
(не присылать мне уведомления по этой [% terms.bug_dat %])
</span>
</td>
</tr>
[% END %]
[% END %]
[%############################################################################%]
[%# Block for See Also #%]
[%############################################################################%]
[% BLOCK section_see_also %]
[% IF Param('use_see_also') || bug.see_also.size %]
<tr>
[% INCLUDE bug/field.html.tmpl
field = bug_fields.see_also
value = bug.see_also
editable = bug.check_can_change_field('see_also', 0, 1)
%]
</tr>
[% END %]
[% END %]
[% BLOCK section_aliases %]
<tr>
[% INCLUDE "bug/field-label.html.tmpl" field = bug_fields.alias %]
<td>
[% IF bug.alias.size %]
[% bug.alias.join(', ') FILTER html %]
[% ELSE %]
None
[% END %]
[% IF bug.check_can_change_field('alias', 0, 1) %]
<span id="alias_edit_area_showhide_container" class="bz_default_hidden">
(<a href="#" id="alias_edit_area_showhide">edit</a>)
</span>
<br>
<div id="alias_edit_area">
<div>
<label for="newalias" class="field_label">Add</label>
<br>
<input name="newalias" id="newalias" size="20">
</div>
[% IF bug.alias.size %]
<select id="alias" name="alias" multiple="multiple" size="5">
[% FOREACH a = bug.alias %]
<option value="[% a FILTER html %]">[% a FILTER html %]</option>
[% END %]
</select>
<br>
<input type="checkbox" id="removealias" name="removealias">
<label for="removealias">Remove selected aliases</label>
[% END %]
</div>
<script type="text/javascript">
hideEditableField( 'alias_edit_area_showhide_container',
'alias_edit_area',
'alias_edit_area_showhide',
'',
'');
</script>
[% END %]
</td>
</tr>
[% END %]
[%############################################################################%]
[%# Block for FLAGS #%]
[%############################################################################%]
[% BLOCK section_flags %]
[%# *** Flags *** %]
[% show_bug_flags = 0 %]
[% bug_flags_set = 0 %]
[% show_more_flags = 0 %]
[% FOREACH type = bug.flag_types %]
[% IF type.flags.size || (user.id && type.is_active && user.can_request_flag(type)) %]
[% show_bug_flags = 1 %]
[% END %]
[% IF user.id && type.is_active && (!type.flags.size || type.is_multiplicable) %]
[% show_more_flags = 1 %]
[% END %]
[% IF type.flags.size %]
[% bug_flags_set = 1 %]
[% END %]
[% LAST IF show_bug_flags && show_more_flags && bug_flags_set %]
[% END %]
[% IF show_bug_flags %]
<tr>
<th class="field_label">
<label>Согласования:</label>
</th>
<td>
[% IF bug.flag_types.size %]
[% PROCESS "flag/list.html.tmpl" flag_no_header = 1
flag_types = bug.flag_types
any_flags_requesteeble = bug.any_flags_requesteeble %]
[% END %]
[% IF show_more_flags %]
<span id="bz_flags_more_container" class="bz_default_hidden">
[% IF !bug_flags_set %]<em>Ещё не установлены</em>[% END %]
(<a href="#" id="bz_flags_more_action">[% IF !bug_flags_set %]послать на[% ELSE %]добавить[% END %] согласование</a>)
</span>
<script type="text/javascript">
YAHOO.util.Dom.removeClass('bz_flags_more_container', 'bz_default_hidden');
var table = YAHOO.util.Dom.get("flags");
var rows = YAHOO.util.Dom.getElementsByClassName('bz_flag_type', 'tbody', table);
for (var i = 0; i < rows.length; i++) {
YAHOO.util.Dom.addClass(rows[i], 'bz_default_hidden');
}
YAHOO.util.Event.addListener('bz_flags_more_action', 'click', function (e) {
YAHOO.util.Dom.addClass('bz_flags_more_container', 'bz_default_hidden');
for (var i = 0; i < rows.length; i++) {
YAHOO.util.Dom.removeClass(rows[i], 'bz_default_hidden');
}
YAHOO.util.Event.preventDefault(e);
});
</script>
[% END %]
</td>
</tr>
[% END %]
[% END %]
[%############################################################################%]
[%# Block for Custom Fields #%]
[%############################################################################%]
[% BLOCK section_customfields %]
[%# *** Custom Fields *** %]
[% USE Bugzilla %]
[% FOREACH field = Bugzilla.active_custom_fields %]
<tr>
[%# Use PROCESS instead of INCLUDE, because extra_field_item is defined
# in the template and must be returned back. INCLUDE cannot do that. %]
[% PROCESS bug/field.html.tmpl value = bug.${field.name}
editable = bug.check_can_change_field(field.name, 0, 1) %]
</tr>
[% IF extra_field_item %]
<tr>
<th class="field_label">[% extra_field_item.header FILTER none %]</th>
<td>[% extra_field_item.data FILTER none %]</td>
</tr>
[% END %]
[% END %]
[% END %]
[%############################################################################%]
[%# Block for Section Spacer #%]
[%############################################################################%]
[% BLOCK section_spacer %]
<tr>
<td colspan="2" class="bz_section_spacer"></td>
</tr>
[% END %]
[%############################################################################%]
[%# Block for dependencies #%]
[%############################################################################%]
[% BLOCK dependencies %]
[% INCLUDE "bug/field-label.html.tmpl" %]
<td>
<span id="[% field.name FILTER html %]_input_area">
[% IF bug.check_can_change_field(field.name, 0, 1) %]
<input name="[% field.name FILTER html %]"
id="[% field.name FILTER html %]" class="text_input"
value="[% bug.${field.name}.join(', ') FILTER html %]">
[% END %]
</span>
[% FOREACH dep_bug = deps %]
[% INCLUDE bug/link.html.tmpl bug = dep_bug, link_text = dep_bug.id, use_alias = 1 %][% " " %]
[% END %]
[% IF bug.check_can_change_field(field.name, 0, 1) %]
<span id="[% field.name FILTER html %]_edit_container"
class="edit_me bz_default_hidden">
(<a href="#" id="[% field.name FILTER html %]_edit_action">изменить</a>)
</span>
<script type="text/javascript">
hideEditableField('[% field.name FILTER js %]_edit_container',
'[% field.name FILTER js %]_input_area',
'[% field.name FILTER js %]_edit_action',
'[% field.name FILTER js %]',
'[% bug.${field.name}.join(', ') FILTER js %]');
</script>
[% END %]
</td>
[% END %]
[%############################################################################%]
[%# Block for Time Tracking Group #%]
[%############################################################################%]
[% BLOCK section_timetracking %]
<table class="bz_time_tracking_table">
<tr>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.estimated_time, editable = 1
%]
<th>
Текущая оценка:
</th>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.work_time, editable = 1
%]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.remaining_time, editable = 1
%]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.percentage_complete
%]
<th>
Отклонение:
</th>
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.deadline, editable = 1
%]
</tr>
<tr>
<td>
<input name="estimated_time" id="estimated_time"
value="[% PROCESS formattimeunit
time_unit=bug.estimated_time %]"
size="6" maxlength="6">
</td>
<td>
[% PROCESS formattimeunit
time_unit=(bug.actual_time + bug.remaining_time) %]
</td>
<td>
[% PROCESS formattimeunit time_unit=bug.actual_time %] +
<input name="work_time" id="work_time"
value="0" size="3" maxlength="6"
onchange="adjustRemainingTime();">
</td>
<td>
<input name="remaining_time" id="remaining_time"
value="[% PROCESS formattimeunit
time_unit=bug.remaining_time %]"
size="6" maxlength="6" onchange="updateRemainingTime();">
</td>
<td>
[% PROCESS calculatepercentage act=bug.actual_time
rem=bug.remaining_time %]
</td>
<td>
[% PROCESS formattimeunit time_unit=bug.estimated_time - (bug.actual_time + bug.remaining_time) %]
</td>
<td>
[% INCLUDE bug/field.html.tmpl
field = bug_fields.deadline, value = bug.deadline, no_tds = 1
editable = bug.check_can_change_field('deadline', 0, 1) %]
</td>
</tr>
<tr>
<td colspan="7" class="bz_summarize_time">
<a href="summarize_time.cgi?id=[% bug.bug_id %]&do_depends=1">
Анализ трудозатрат (с учетом зависимостей [% terms.bugs_gen %],
блокирующих эту [% terms.bug_acc %])</a>
</td>
</tr>
</table>
[% END %]
[%############################################################################%]
[%# Block for the Additional Comments box #%]
[%############################################################################%]
[% BLOCK comment_box %]
<div id="add_comment" class="bz_section_additional_comments">
[% IF user.id %]
<label for="comment" accesskey="c"><b>Дополнительные
<u>К</u>омментарии</b></label>:
[% IF user.is_insider && bug.check_can_change_field('longdesc', 0, 1) %]
<input type="checkbox" name="comment_is_private" value="1"
id="newcommentprivacy"
onClick="updateCommentTagControl(this, 'comment')">
<label for="newcommentprivacy">
Сделать комментарий конфиденциальным (только для членов группы
<strong>[% Param('insidergroup') FILTER html %]</strong>)
</label>
[% END %]
<!-- This table keeps the submit button aligned with the box. -->
<table><tr><td>
[% IF bug.check_can_change_field('longdesc', 0, 1) %]
[% INCLUDE bug/comment.html.tmpl
minrows = 10
maxrows = 25
cols = constants.COMMENT_COLS
%]
[% IF user.is_insider %]
<script>
updateCommentTagControl(document.getElementById('newcommentprivacy'), 'comment');
</script>
[% END %]
[% Hook.process("after_comment_textarea", 'bug/edit.html.tmpl') %]
[% ELSE %]
Вам не разрешено добавлять дополнительные комментарии в эту [% terms.bug %].
[% END %]
<br>
[% PROCESS commit_button id=""%]
[% Hook.process("after_comment_commit_button", 'bug/edit.html.tmpl') %]
<table id="bug_status_bottom" class="status">
<tr>
<th class="field_label">
<a href="page.cgi?id=fields.html#bug_status">Состояние</a>:
</th>
<td>
[% PROCESS bug/knob.html.tmpl %]
</td>
</tr>
</table>
</td></tr></table>
[%# For logged-out users %]
[% ELSE %]
<table>
<tr>
<td>
<fieldset>
<legend>Внимание</legend>
Вы должны
<a href="show_bug.cgi?id=
[%- bug.bug_id %]&GoAheadAndLogIn=1">войти в систему</a>
для добавления комментариев и внесения изменений в эту [% terms.bug %].
</fieldset>
</td>
</tr>
</table>
[% END %]
</div>
[% END %]
[%############################################################################%]
[%# Block for SELECT fields #%]
[%############################################################################%]
[% BLOCK select %]
<td>
[% IF bug.check_can_change_field(selname, 0, 1)
AND bug.choices.${selname}.size > 1 %]
<input type="hidden" id="[% selname %]_dirty">
<select id="[% selname %]" name="[% selname %]">
[% FOREACH x = bug.choices.${selname} %]
<option value="[% x.name FILTER html %]"
[% " selected" IF x.name == bug.${selname} %]>
[%- x.name FILTER html %]
</option>
[% END %]
</select>
[% ELSE %]
[% bug.${selname} FILTER html %]
[% END %]
</td>
[% END %]
[%############################################################################%]
[%# Block for INPUT fields #%]
[%############################################################################%]
[% BLOCK input %]
[% IF no_td != 1 %]
<td[% " colspan=\"$colspan\"" IF colspan %]>
[% END %]
[% val = value ? value : bug.$inputname %]
[% IF bug.check_can_change_field(inputname, 0, 1) %]
<input id="[% inputname %]" name="[% inputname %]" class="text_input"
value="[% val FILTER html %]"[% " size=\"$size\"" IF size %]
[% " maxlength=\"$maxlength\"" IF maxlength %]
[% " spellcheck=\"$spellcheck\"" IF spellcheck %]>
[% ELSE %]
[% IF size && val.length > size %]
<span title="[% val FILTER html %]">
[% val FILTER truncate(size) FILTER html %]
</span>
[% ELSE %]
[% val FILTER html %]
[% END %]
[% END %]
[% IF no_td != 1 %]
</td>
[% END %]
[% no_td = 0 %]
[% maxlength = 0 %]
[% colspan = 0 %]
[% size = 0 %]
[% value = undef %]
[% spellcheck = undef %]
[% END %]
[% BLOCK commit_button %]
[% IF user.id %]
<div class="knob-buttons">
<input type="submit" value="Сохранить"
id="commit[% id FILTER css_class_quote %]">
</div>
[% END %]
[% END %]
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment