📄 edit_bug.aspx
字号:
{
sql += @",'<a href=delete_attachment.aspx?id=' + convert(varchar,ba_id)
+ '&bug_id=' + convert(varchar,ba_bug) + '>delete</a>' [delete]";
}
sql += @"from bug_attachments
inner join users on ba_uploaded_user = us_id
where ba_bug = $1
order by ba_uploaded_date";
sql = sql.Replace("$1", Convert.ToString(id));
DataSet ds = dbutil.get_dataset (sql);
if (ds.Tables[0].Rows.Count > 0)
{
Response.Write ("attachments:<br>");
SortableHtmlTable.create_from_dataset(
Response, ds, "", "", false);
}
}
</script>
<html>
<head>
<title id=title runat="server">add new</title>
<link rel="StyleSheet" href="btnet.css" type="text/css">
<script type="text/javascript" language="JavaScript" src="sortable.js"></script>
<script type="text/javascript" language="JavaScript" src="overlib_mini.js"></script>
<script type="text/javascript" language="JavaScript" src="calendar.js"></script>
<script>
var prompt = '<% Response.Write(Util.get_setting("PromptBeforeLeavingEditBugPage","0")); %>'
function add_attachment(id)
{
if (prompt == "1")
{
var result = confirm('Go to "Add Attachment" page? Changes here will not be saved.');
if (result)
{
window.document.location = "add_attachment.aspx?id=" + id;
}
}
else
{
window.document.location = "add_attachment.aspx?id=" + id;
}
}
function send_email(id)
{
if (prompt == "1")
{
var result = confirm('Go to "Send Email" page? Changes here will not be saved.');
if (result)
{
window.document.location = "send_email.aspx?bg_id=" + id;
}
}
else
{
window.document.location = "send_email.aspx?bg_id=" + id;
}
}
// for the future...
function change_project(id)
{
if (prompt == "1")
{
var result = confirm('Go to "Change Project" page? Changes here will not be saved.');
if (result)
{
window.document.location = "change_project.aspx?id=" + id;
}
}
else
{
window.document.location = "change_project.aspx?id=" + id;
}
}
</script>
</head>
<body>
<% security.write_menu(Response, Util.get_setting("PluralBugLabel","bugs")); %>
<div id="overDiv" style="position:absolute;visibility:hidden; z-index:1000;"></div>
<div class=align><table border=0><tr><td>
<% if (!security.this_adds_not_allowed) { %>
<a href=edit_bug.aspx?id=0>add new <% Response.Write(Util.get_setting("SingularBugLabel","bug")); %></a>
<% } %>
<span id="print" runat="server"> </span>
<span id="merge_bug" runat="server"> </span>
<span id="delete_bug" runat="server"> </span>
<span id="custom" runat="server"> </span>
<span id="prev_next" runat="server"> </span>
<form class=frm runat="server">
<table border=0 cellspacing=5>
<tr>
<td colspan=4 align=left>
<span class=lbl><% Response.Write(Util.capitalize_first_letter(Util.get_setting("SingularBugLabel","bug"))); %> ID: </span>
<span runat="server" class=static id="bugid"> </span>
<span id="history" runat="server"></span>
<span id="last_changed" runat="server" class=pst></span>
<span id="subscribers" runat="server"></span>
</td>
</tr>
<tr>
<td class=lbl>Short desc:</td>
<td align=left><span class=static id="static_short_desc" runat="server" style='width: 500px; display: none;'></span>
<input runat="server" type=text class=txt id="short_desc" size="80" maxlength="80"></td>
<td runat="server" class=err id="short_desc_err"> </td>
</tr>
<tr>
<td class=lbl colspan=4><span runat="server" id=reported_by> </span></td>
</tr>
<tr id="row1">
<td colspan=4 nowrap>
<span class=lbl id="project_label">Project: </span>
<span class=static id="current_project" runat="server">[no project]</span>
<span runat="server" id="change_project_label" class=lbl>
Change project:
</span>
<span class=lbl id="static_project" runat="server" style='display: none;'></span>
<asp:DropDownList id="project" runat="server"
OnSelectedIndexChanged="on_project_changed">
</asp:DropDownList>
<span class=lbl id="category_label">Category: </span>
<span class=static id="static_category" runat="server" style='display: none;'></span>
<asp:DropDownList id="category" runat="server">
</asp:DropDownList>
<span class=lbl id="priority_label">Priority: </span>
<span class=static id="static_priority" runat="server" style='display: none;'></span>
<asp:DropDownList id="priority" runat="server">
</asp:DropDownList>
</td>
</tr>
<tr id="row2">
<td colspan=4 nowrap>
<span class=lbl id="assigned_to_label">Assigned to: </span>
<span class=static id="assigned_to_username" runat="server">[not assigned]</span>
<span runat="server" id="reassign_label" class=lbl>Re-assign: </span>
<asp:DropDownList id="assigned_to" runat="server"
OnSelectedIndexChanged="on_assigned_to_changed">
</asp:DropDownList>
<span class=lbl id="status_label">Status: </span>
<span class=static id="static_status" runat="server" style='display: none;'></span>
<asp:DropDownList id="status" runat="server">
</asp:DropDownList>
<%
if (Util.get_setting("ShowUserDefinedBugAttribute","1") == "1")
{
%>
<span class=lbl id="udf_label">
<% Response.Write(Util.get_setting("UserDefinedBugAttributeName","YOUR ATTRIBUTE")); %>: </span>
<span class=static id="static_udf" runat="server" style='display: none;'></span>
<asp:DropDownList id="udf" runat="server">
</asp:DropDownList>
<%
}
%>
</td>
</tr>
<%
// Create the custom column INPUT elements
foreach (DataRow drcc in ds_custom_cols.Tables[0].Rows)
{
Response.Write ("<tr>");
Response.Write ("<td><span id=\"" + drcc["name"] + "_label\">");
Response.Write (drcc["name"]);
Response.Write (":</span><td align=left>");
//20040413 WWR - If a custom database field is over the defined character length, use a TextArea control
int minTextAreaSize = int.Parse(Util.get_setting("TextAreaThreshold","100"));
int maxTextAreaRows = int.Parse(Util.get_setting("MaxTextAreaRows","5"));
int fieldLength = int.Parse(drcc["length"].ToString());
if (permission_level == PERMISSION_READONLY
|| permission_level == PERMISSION_REPORTER)
{
Response.Write ("<span class=static>");
if (drcc["datatype"].ToString() == "datetime")
{
Response.Write (Util.format_db_date(hash_custom_cols[(string)drcc["name"]]));
}
else
{
Response.Write (hash_custom_cols[(string)drcc["name"]]);
}
Response.Write ("</span>");
}
else
{
if ( fieldLength > minTextAreaSize )
{
Response.Write ("<textarea cols=\"" + minTextAreaSize + "\" rows=\"" + (((fieldLength/minTextAreaSize)>maxTextAreaRows) ? maxTextAreaRows : (fieldLength/minTextAreaSize)) + "\" " );
Response.Write (" name=\"" + drcc["name"].ToString() + "\"");
Response.Write (" id=\"" + drcc["name"].ToString() + "\" >");
Response.Write (HttpUtility.HtmlEncode(Convert.ToString(hash_custom_cols[(string)drcc["name"]])));
Response.Write ("</textarea>");
}
else
{
Response.Write ("<input type=text ");
// match the size of the text field to the size of the database field
if (drcc["datatype"].ToString().IndexOf("char") > -1)
{
if (drcc["datatype"].ToString() == "nvarchar")
{
Response.Write (" size=" + Convert.ToString((Convert.ToInt32(drcc["length"]) / 2)));
Response.Write (" maxlength=" + Convert.ToString((Convert.ToInt32(drcc["length"]) / 2)));
}
else
{
Response.Write (" size=" + drcc["length"]);
Response.Write (" maxlength=" + drcc["length"]);
}
}
Response.Write (" name=\"" + drcc["name"].ToString() + "\"");
Response.Write (" id=\"" + drcc["name"].ToString() + "\"");
// output a date field according to the specified format
if (hash_custom_cols[(string)drcc["name"]].GetType().ToString() == "System.DateTime")
{
Response.Write (
" value=\""
+ Util.format_db_date(hash_custom_cols[(string)drcc["name"]])
+ "\"");
}
else
{
Response.Write (" value=\"");
Response.Write (
HttpUtility.HtmlEncode(
Convert.ToString(
hash_custom_cols[(string)drcc["name"]]
)
)
);
Response.Write ("\"");
}
Response.Write (">");
if (drcc["datatype"].ToString() == "datetime")
{
Response.Write("<a style=\"font-size: 8pt;\"href=\"javascript:show_calendar('_ctl0."
+ drcc["name"].ToString()
+ "',null,null,'"
+ Util.get_setting("JustDateFormat",Util.get_culture_info().DateTimeFormat.ShortDatePattern)
+ "');\">[select]</a>");
}
}
}
Response.Write ("</td></tr>");
}
// create project custom dropdowns
if (project.SelectedItem.Value != null
&& project.SelectedItem.Value != "0")
{
sql = @"select
isnull(pj_enable_custom_dropdown1,0) [pj_enable_custom_dropdown1],
isnull(pj_enable_custom_dropdown2,0) [pj_enable_custom_dropdown2],
isnull(pj_enable_custom_dropdown3,0) [pj_enable_custom_dropdown3],
isnull(pj_custom_dropdown_label1,'') [pj_custom_dropdown_label1],
isnull(pj_custom_dropdown_label2,'') [pj_custom_dropdown_label2],
isnull(pj_custom_dropdown_label3,'') [pj_custom_dropdown_label3],
isnull(pj_custom_dropdown_values1,'') [pj_custom_dropdown_values1],
isnull(pj_custom_dropdown_values2,'') [pj_custom_dropdown_values2],
isnull(pj_custom_dropdown_values3,'') [pj_custom_dropdown_values3]
from projects where pj_id = $pj";
sql = sql.Replace("$pj", project.SelectedItem.Value);
DataRow project_dr = dbutil.get_datarow(sql);
for (int i = 1; i < 4; i++)
{
if ((int)project_dr["pj_enable_custom_dropdown" + Convert.ToString(i)] == 1)
{
Response.Write ("<tr><td>");
Response.Write (project_dr["pj_custom_dropdown_label" + Convert.ToString(i)]);
Response.Write ("<td>");
if (permission_level == PERMISSION_READONLY
|| permission_level == PERMISSION_REPORTER)
{
Response.Write ("<span class=static>");
if (IsPostBack)
{
Response.Write (Request["pcd" + Convert.ToString(i)]);
}
else
{
if (id !=0)
{
Response.Write (dr["bg_project_custom_dropdown_value" + Convert.ToString(i)]);
}
}
Response.Write ("</span>");
}
else
{
// create a hidden area to carry the label
Response.Write ("<input type=hidden");
Response.Write (" name=label_pcd" + Convert.ToString(i));
Response.Write (" value=\"");
Response.Write (project_dr["pj_custom_dropdown_label" + Convert.ToString(i)]);
Response.Write ("\">");
// create a dropdown
Response.Write ("<select");
Response.Write (" name=pcd" + Convert.ToString(i) + ">");
Regex regex = new Regex("\\|");
string[] options =
regex.Split((string)project_dr["pj_custom_dropdown_values" + Convert.ToString(i)]);
string selected_value = "";
if (IsPostBack)
{
selected_value = Request["pcd" + Convert.ToString(i)];
}
else
{
// first time viewing existing
if (id != 0)
{
selected_value = (string) dr["bg_project_custom_dropdown_value" + Convert.ToString(i)];
}
}
for (int j = 0; j < options.Length; j++)
{
Response.Write ("<option value=\"" + options[j] + "\"");
//if (options[j] == selected_value)
if (HttpUtility.HtmlDecode(options[j]) == selected_value)
{
Response.Write (" selected ");
}
Response.Write (">");
Response.Write (options[j]);
}
Response.Write ("</select>");
}
}
}
}
%>
<tr>
<td colspan=4>
<script>
var enlarge_or_shrink = 'enlarge'
function toggle_size()
{
if (enlarge_or_shrink == 'enlarge')
{
document._ctl0.comment.rows += 12
enlarge_or_shrink = 'shrink'
window.document.getElementById('toggle_link').innerText = "[-]";
}
else
{
document._ctl0.comment.rows -= 12
enlarge_or_shrink = 'enlarge'
window.document.getElementById('toggle_link').innerText = "[+]";
}
}
</script>
<span class=lbl>
<font size=0>
<span id="plus_label" runat="server">
<a name=toggle_link href=javascript:toggle_size()><span id="toggle_link">[+]</span></a>
</span>
</font>
<span id="comment_label" runat="server">Comment:</span><br>
<textarea rows=4 cols=80 runat="server" class=txt id="comment"></textarea>
<br><span runat="server" class=err id="comment_err"></span>
</td>
</tr>
<tr><td colspan=4 align=left>
<span runat="server" class=err id="custom_field_msg"> </span>
<span runat="server" class=err id="msg"> </span>
</td></tr>
<tr>
<td colspan=4 align=center>
<table border=0 cellspacing=0 cellpadding=0 width=100%><tr>
<td align=center width=100%>
<input runat="server" class=btn type=submit id="sub"
value="Create or Edit" OnServerClick="on_update">
</td>
<td align=right nowrap id="subscriptions" runat="server"> </td>
</tr></table>
</td>
</tr>
</table>
<input type=hidden id="new_id" runat="server" value="0">
<input type=hidden id="prev_short_desc" runat="server">
<input type=hidden id="prev_project" runat="server">
<input type=hidden id="prev_category" runat="server">
<input type=hidden id="prev_priority" runat="server">
<input type=hidden id="prev_assigned_to" runat="server">
<input type=hidden id="prev_status" runat="server">
<input type=hidden id="prev_udf" runat="server">
<input type=hidden id="prev_pcd1" runat="server">
<input type=hidden id="prev_pcd2" runat="server">
<input type=hidden id="prev_pcd3" runat="server">
<%
// create the "Prev" fields for the custom columns so that we
// can create an audit trail of their changes.
foreach (DataRow drcc in ds_custom_cols.Tables[0].Rows)
{
Response.Write ("<input type=hidden name=\"prev_");
Response.Write (drcc["name"]);
Response.Write ("\"");
// output a date field according to the specified format
if (hash_custom_cols[(string)drcc["name"]].GetType().ToString() == "System.DateTime")
{
Response.Write (
" value=\""
+ Util.format_db_date(hash_prev_custom_cols[(string)drcc["name"]]));
}
else
{
Response.Write (" value=\"");
Response.Write (
HttpUtility.HtmlEncode(
Convert.ToString(
hash_prev_custom_cols[(string)drcc["name"]]
)
)
);
}
Response.Write ("\">\n");
}
%>
</form>
</td></tr></table>
<table border=0 cellspacing=3>
<% if (!sub.Disabled) { %>
<tr><td nowrap>
<span id="attachment" runat="server"></span>
<span id="send_email" runat="server"></span>
</td></tr>
<tr><td>
<% } %>
<%
// ATTACHMENTS
if (id != 0)
{
write_attachments();
}
%>
<br>
</td></tr>
<%
// COMMENTS
if (id != 0)
{
write_comments();
}
%>
</table>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -