📄 bugs.aspx
字号:
<%@ Page language="C#"%>
<!--
Copyright 2002-2005 Corey Trager
Distributed under the terms of the GNU General Public License
-->
<!-- #include file = "inc.aspx" -->
<script language="C#" runat="server">
DbUtil dbutil;
Security security;
bool query_changed = false;
string qu_id_string = null;
void do_query()
{
string bug_sql = null;
if (query_changed)
{
// from drop down
qu_id_string = Request["query"];
Session["SelectedBugQuery"] = qu_id_string;
}
else
{
// from query page
qu_id_string = Request["qu_id"];
if (qu_id_string == null)
{
qu_id_string = (string) Session["SelectedBugQuery"];
}
}
if (qu_id_string != null && qu_id_string != "0")
{
// use sql specified in query string
int qu_id = Convert.ToInt32(qu_id_string);
sql = @"select qu_sql from queries where qu_id = $1";
sql = sql.Replace("$1", qu_id_string);
bug_sql = (string)dbutil.execute_scalar(sql);
if (bug_sql == null){Session.Remove("SelectedBugQuery");}
}
if (bug_sql == null)
{
// use sql associated with user
sql = @"select qu_sql from queries where qu_id in
(select us_default_query from users where us_id = $us)";
sql = sql.Replace("$us", Convert.ToString(security.this_usid));
bug_sql = (string)dbutil.execute_scalar(sql);
}
if (bug_sql == null)
{
sql = @"select qu_sql from queries where qu_default = 1";
bug_sql = (string)dbutil.execute_scalar(sql);
}
if (bug_sql == null)
{
Response.Write ("Error!. No query!<p>Missing a default query?<p>Please contact your BugTracker.NET administrator.");
Response.End();
}
// replace magic variables
bug_sql = bug_sql.Replace("$ME", Convert.ToString(security.this_usid));
bug_sql = Util.alter_sql_per_project_permissions(bug_sql,security.this_usid);
DataSet ds = dbutil.get_dataset (bug_sql);
dv = new DataView(ds.Tables[0]);
Session["bugs"] = dv;
bug_count.Text = Convert.ToString(dv.Count);
}
///////////////////////////////////////////////////////////////////////
void Page_Load(Object sender, EventArgs e)
{
Util.do_not_cache(Response);
dbutil = new DbUtil();
security = new Security();
security.check_security(dbutil, Request, Response, Security.ANY_USER_OK);
title.InnerText = Util.get_setting("AppTitle","BugTracker.NET") + " - "
+ Util.get_setting("PluralBugLabel","bugs");
// fetch the sql
// if first time
if (!IsPostBack) {
// populate drop down
sql = @"select qu_id, qu_desc
from queries
where isnull(qu_user,0) = 0
or isnull(qu_user,0) = $us
order by qu_desc";
sql = sql.Replace("$us",Convert.ToString(security.this_usid));
query.DataSource = dbutil.get_dataview(sql);
query.DataTextField = "qu_desc";
query.DataValueField = "qu_id";
query.DataBind();
query.Items.Insert(0, new ListItem("[default query]", "0"));
string qu_id_string = Request["qu_id"];
if (qu_id_string != null)
{
Session["SelectedBugQuery"] = qu_id_string;
}
else
{
qu_id_string = (string) Session["SelectedBugQuery"];
// still might be null now
}
// select drop down
if (qu_id_string != null)
{
foreach (ListItem li in query.Items)
{
if (li.Value == qu_id_string)
{
li.Selected = true;
break;
}
}
}
do_query();
}
else {
// page or sort
dv = (DataView) Session["bugs"];
if (dv == null || query_changed)
{
do_query();
}
if (action.Value == "sort") {
new_page.Value = "0";
}
}
sort_dataview();
}
///////////////////////////////////////////////////////////////////////
void Page_Unload(Object sender, EventArgs e)
{
if (dbutil != null) {dbutil.close();}
}
///////////////////////////////////////////////////////////////////////
private void on_query_changed(object sender, System.EventArgs e)
{
query_changed = true;
new_page.Value = "0";
sort.Value = "-1";
prev_sort.Value = "-1";
prev_dir.Value ="ASC";
do_query();
}
</script>
<!-- #include file = "inc_bugs.aspx" -->
<html>
<head>
<title id="title" runat="server">btnet bugs</title>
<link rel="StyleSheet" href="btnet.css" type="text/css">
</head>
<body>
<% security.write_menu(Response, Util.get_setting("PluralBugLabel","bugs")); %>
<form method="get" runat="server">
<div class=align>
<% if (!security.this_adds_not_allowed) { %>
<a href=edit_bug.aspx>add new <% Response.Write(Util.get_setting("SingularBugLabel","bug")); %></a>
<% } %>
<asp:DropDownList id="query" runat="server" AutoPostBack="true"
OnSelectedIndexChanged="on_query_changed">
</asp:DropDownList>
<a target=_blank href=print_bugs.aspx>print list</a>
<a target=_blank href=print_bugs2.aspx>print detail</a>
<a target=_blank href=print_bugs.aspx?format=excel>export to excel</a>
<p>
<%
if (dv.Table.Rows.Count > 0)
{
display_bugs();
}
else
{
Response.Write ("<p>No ");
Response.Write (Util.get_setting("PluralBugLabel","bug"));
Response.Write (" yet.<p>");
}
%>
<br><br><asp:label id="bug_count" runat="server"></asp:label> <% Response.Write(Util.get_setting("PluralBugLabel","bugs")); %> returned by query.
<!-- #include file = "inc_bugs2.aspx" -->
</div>
</form>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -