⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 search.aspx

📁 Bug管理系统
💻 ASPX
📖 第 1 页 / 共 2 页
字号:
{
	var from; 
	var to; 
	var option;
	
	from = document.getElementById(from_id);
	to = document.getElementById(to_id);
	
	option = document.createElement('option');
	option.value = -1;
	option.text = "[do not update]";
	try {
		to.add(option, null); // standards compliant; doesn't work in IE
	}
	catch(ex) {
		to.add(option); // IE only
	}	

	for (var i = 0; i < from.options.length; i++)
	{
		option = document.createElement('option');
		option.value = from.options[i].value;
		option.text = from.options[i].text;
		try {
			to.add(option, null); // standards compliant; doesn't work in IE
		}
		catch(ex) {
			to.add(option); // IE only
		}	
	}

}

function load_massedit_selects()
{

	load_one_massedit_select ("project","mass_project");
	load_one_massedit_select ("category","mass_category");
	load_one_massedit_select ("priority","mass_priority");
	load_one_massedit_select ("assigned_to","mass_assigned_to");
	load_one_massedit_select ("status","mass_status");
}

<% } %>

function build_where(where, clause)
{
	if (clause == "") return where;

	var sql = "";

	if (where == "")
	{
		sql = "where ";
		sql += clause;
	}
	else
	{
		sql = where;
		sql += "and ";
		sql += clause;
	}

	return sql;
}


///////////////////////////////////////////////////////////////////////
function build_clause_from_options(options, column_name)
{

	var clause = ""
	for (i=0; i < options.length; i++)
	{
		if (options[i].selected)
		{
			if (clause == "")
			{
				clause = " " + column_name + " in (";
			}
			else
			{
				clause += ",";
			}

			clause += options[i].value;
		}
	}
	if (clause != "") clause += ")\n";

	return clause;
}


///////////////////////////////////////////////////////////////////////
function on_change()
{
	var frm = document.forms[1];

	var select = "select isnull(pr_background_color,'#ffffff') [color], bg_id [id],\n";
	select += "bg_short_desc [desc], pj_name [project], ct_name [category],\n";
	select += "rpt.us_username [reported by], bg_reported_date [reported on],\n";
	select += "pr_name [priority], asg.us_username [assigned to], st_name [status]";

<%
	if (show_udf)
	{
		string udf_name = Util.get_setting("UserDefinedBugAttributeName","YourAttribute");
		Response.Write ("select += \",\\nudf_name [" + udf_name + "]\"");
	}
%>


	select += "\nfrom bugs\n";
	select += "left outer join users rpt on rpt.us_id = bg_reported_user\n";
	select += "left outer join users asg on asg.us_id = bg_assigned_to_user\n";
	select += "left outer join projects on pj_id = bg_project\n";
	select += "left outer join categories on ct_id = bg_category\n";
	select += "left outer join priorities on pr_id = bg_priority\n";
	select += "left outer join statuses on st_id = bg_status\n";

<%
	if (show_udf)
	{
%>
	select += "left outer join user_defined_attribute on udf_id = bg_user_defined_attribute\n";
<%
	}
%>

	var where = "";

	var reported_by_clause = build_clause_from_options (frm.reported_by.options, "bg_reported_user");
	var assigned_to_clause = build_clause_from_options (frm.assigned_to.options, "bg_assigned_to_user");
	var project_clause = build_clause_from_options (frm.project.options, "bg_project");
	var category_clause = build_clause_from_options (frm.category.options, "bg_category");
	var priority_clause = build_clause_from_options (frm.priority.options, "bg_priority");
	var status_clause = build_clause_from_options (frm.status.options, "bg_status");
	var udf_clause = "";

<%
	if (show_udf)

	{
%>
		udf_clause = build_clause_from_options(frm.udf.options, "bg_user_defined_attribute");
<%
	}
%>



	// SQL "LIKE" uses [, %, and _ in a special way

	like_string = frm.like.value.replace(/'/gi,"''");
	like_string = like_string.replace(/\[/gi,"[[]");
	like_string = like_string.replace(/%/gi,"[%]");
	like_string = like_string.replace(/_/gi,"[_]");

	like2_string = frm.like2.value.replace(/'/gi,"''");
	like2_string = like2_string.replace(/\[/gi,"[[]");
	like2_string = like2_string.replace(/%/gi,"[%]");
	like2_string = like2_string.replace(/_/gi,"[_]");

	var desc_clause = ""
	if (frm.like.value != "") {
		desc_clause = " bg_short_desc like";
		desc_clause += " '%" + like_string + "%'\n";
	}

	var comments_clause = ""
	if (frm.like2.value != "") {
		comments_clause = " bg_id in (select bc_bug from bug_comments where bc_comment like";
		comments_clause += " '%" + like2_string + "%')\n";
	}

	var comments_since_clause = ""
	if (frm.comments_since.value != "") {
		comments_since_clause = " bg_id in (select bc_bug from bug_comments where bc_comment = '";
		comments_since_clause += frm.comments_since.value + "')\n";
	}

	var from_clause = "";
	if (frm.from_date.value != "")
	{
		from_clause = " bg_reported_date >= '" + frm.from_date.value + "'\n";
	}

	var to_clause = "";
	if (frm.to_date.value != "")
	{
		to_clause = " bg_reported_date <= '" + frm.to_date.value + " 23:59:59'\n";
	}

	var lu_from_clause = "";
	if (frm.lu_from_date.value != "")
	{
		lu_from_clause = " bg_last_updated_date >= '" + frm.lu_from_date.value + "'\n";
	}

	var lu_to_clause = "";
	if (frm.lu_to_date.value != "")
	{
		lu_to_clause = " bg_last_updated_date <= '" + frm.lu_to_date.value + " 23:59:59'\n";
	}

	where = build_where(where, reported_by_clause);
	where = build_where(where, assigned_to_clause);
	where = build_where(where, project_clause);
	where = build_where(where, category_clause);
	where = build_where(where, priority_clause);
	where = build_where(where, status_clause);
	where = build_where(where, desc_clause);
	where = build_where(where, comments_clause);
	where = build_where(where, comments_since_clause);
	where = build_where(where, from_clause);
	where = build_where(where, to_clause);
	where = build_where(where, lu_from_clause);
	where = build_where(where, lu_to_clause);
	where = build_where(where, udf_clause);

	frm.query.value = select + where + 'order by bg_id desc';

	document.getElementById("visible_sql_text").firstChild.nodeValue = frm.query.value;
}

</script>

<script>
function set_hit_submit_button() {
	document.forms[1].hit_submit_button.value = "1";
}

</script>


</head>
<body onload="on_change()">
<% security.write_menu(Response, "search"); %>
<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>

<div class=align>

<script>
var shown = true;
function showhide_form()
{
	var frm =  document.getElementById("_ctl0");
	if (shown)
	{
		frm.style.display = "none";
		shown = false;
		showhide.firstChild.nodeValue = "show form";
	}
	else
	{
		frm.style.display = "block";
		shown = true;
		showhide.firstChild.nodeValue = "hide form";
	}
}
</script>
<a style='float: right; margin-right: 150px;' href='javascript:showhide_form()' id='showhide'>hide form</a>

<% if (!security.this_adds_not_allowed) { %>
<a href=edit_bug.aspx>add new <% Response.Write(Util.get_setting("SingularBugLabel","bug")); %></a>
<% } %>

<table border=0><tr><td>

<tr><td>
<form class=frm runat="server">

<table border=0 cellpadding=8>

<tr>
<span class=smallnote>Hold down Ctrl key to select multiple items.</span>
</tr>

<tr>

<td nowrap><span class=lbl>reported by:</span><br>
<asp:ListBox Rows=4 SelectionMode="Multiple" id="reported_by" runat="server" onchange="on_change()">
</asp:ListBox>
</td>

<td nowrap><span class=lbl id="project_label">project:</span><br>
<asp:ListBox Rows=4 SelectionMode="Multiple" id="project" runat="server" onchange="on_change()">
</asp:ListBox>

<td nowrap><span class=lbl id="category_label">category:</span><br>
<asp:ListBox Rows=4 SelectionMode="Multiple" id="category" runat="server" onchange="on_change()">
</asp:ListBox>

<td nowrap><span class=lbl id="priority_label">priority:</span><br>
<asp:ListBox Rows=4 SelectionMode="Multiple" id="priority" runat="server" onchange="on_change()">
</asp:ListBox>
</td>

<td nowrap><span class=lbl id="assigned_to_label">assigned to:</span><br>
<asp:ListBox Rows=4 SelectionMode="Multiple" id="assigned_to" runat="server" onchange="on_change()">
</asp:ListBox>
</td>

<td nowrap><span class=lbl id="status_label">status:</span><br>
<asp:ListBox Rows=4 SelectionMode="Multiple" id="status" runat="server" onchange="on_change()">
</asp:ListBox>
</td>


</tr>

<tr>
<td colspan=4>
	<span class=lbl><% Response.Write(Util.capitalize_first_letter(Util.get_setting("SingularBugLabel","bug"))); %> description contains:&nbsp;</span><input type=text id="like" runat="server" onkeyup="on_change()" size=40>
</td>


<% if (show_udf)
{
%>
	<td nowrap rowspan=2><span class=lbl><% Response.Write (Util.get_setting("UserDefinedBugAttributeName","YourAttribute")); %></span><br>
	<asp:ListBox Rows=4 SelectionMode="Multiple" id="udf" runat="server" onchange="on_change()">
	</asp:ListBox>
<%
}
%>


</tr>

<tr>
<td colspan=4>
	<span class=lbl><% Response.Write(Util.capitalize_first_letter(Util.get_setting("SingularBugLabel","bug"))); %> comments contain:&nbsp;</span><input type=text id="like2" runat="server" onkeyup="on_change()" size=40>
</td>
</tr>


<tr>
<td colspan=4>
	<span class=lbl><% Response.Write(Util.capitalize_first_letter(Util.get_setting("SingularBugLabel","bug"))); %> comments since:&nbsp;</span><input type=text id="comments_since" runat="server" onkeyup="on_change()" size=10>
	<a style="font-size: 8pt;"
	href="javascript:show_calendar('_ctl0.comments_since',  null,null,'<% Response.Write(Util.get_setting("JustDateFormat",Util.get_culture_info().DateTimeFormat.ShortDatePattern)); %>');">
	[select]
	</a>
	
</td>
</tr>

<tr>
<td colspan=10>
	<span class=lbl>"Reported on" from date:&nbsp;</span>
	<input runat="server" type="text" id="from_date" maxlength=10 size=10 onchange="on_change()">
	<a style="font-size: 8pt;"
	href="javascript:show_calendar('_ctl0.from_date',  null,null,'<% Response.Write(Util.get_setting("JustDateFormat",Util.get_culture_info().DateTimeFormat.ShortDatePattern)); %>');">
	[select]
	</a>

	&nbsp;&nbsp;&nbsp;&nbsp;
	<span class=lbl>to:&nbsp;</span>
	<input runat="server" type="text" id="to_date" maxlength=10 size=10 onchange="on_change()">
	<a style="font-size: 8pt;"
	href="javascript:show_calendar('_ctl0.to_date',    null,null,'<% Response.Write(Util.get_setting("JustDateFormat",Util.get_culture_info().DateTimeFormat.ShortDatePattern)); %>');">
	[select]
	</a>
</td>
</tr>

<tr>
<td colspan=10>
	<span class=lbl>"Last updated on" from date:&nbsp;</span>
	<input runat="server" type="text" id="lu_from_date" maxlength=10 size=10 onchange="on_change()">
	<a style="font-size: 8pt;"
	href="javascript:show_calendar('_ctl0.lu_from_date',null,null,'<% Response.Write(Util.get_setting("JustDateFormat",Util.get_culture_info().DateTimeFormat.ShortDatePattern)); %>');">
	[select]
	</a>

	&nbsp;&nbsp;&nbsp;&nbsp;
	<span class=lbl>to:&nbsp;</span>
	<input runat="server" type="text" id="lu_to_date" maxlength=10 size=10 onchange="on_change()">
	<a style="font-size: 8pt;"
	href="javascript:show_calendar('_ctl0.lu_to_date',  null,null,'<% Response.Write(Util.get_setting("JustDateFormat",Util.get_culture_info().DateTimeFormat.ShortDatePattern)); %>');">
	[select]
	</a>
</td>
</tr>

<tr>
<td colspan=10 align=center>
<input type=hidden runat="server" id="hit_submit_button" value="0">
<input type=hidden runat="server" id="hit_save_query_button" value="0">
<input class=btn type=submit onclick="set_hit_submit_button()" value="Search" runat="server">
</td>
</tr>

</table>

<!-- #include file = "inc_bugs2.aspx" -->

<input type=hidden id="query" runat="server" value="">
</form>
</td></tr></table></div>

<%
if (dv == null)
{

}
else
{
	if (dv.Table.Rows.Count > 0)
	{

		Response.Write ("<a target=_blank href=print_bugs.aspx>print list</a>");
		Response.Write ("&nbsp;&nbsp;&nbsp;<a target=_blank href=print_bugs2.aspx>print detail</a>");
		Response.Write ("&nbsp;&nbsp;&nbsp;<a target=_blank href=print_bugs.aspx?format=excel>export to excel</a><br>");

		if (security.this_is_admin)
		{
			Response.Write ("<form id=massform onsubmit='return validate_mass()' method=get action=massedit.aspx>");
			display_bugs(true);
			Response.Write("<p><table class=frm><tr><td colspan=5 class=smallnote>Update or delete all checked items");
			Response.Write("<tr><td colspan=5>");
			Response.Write("<a href=javascript:select_all(true)>select all</a>&nbsp;&nbsp;&nbsp;&nbsp;");
			Response.Write("<a href=javascript:select_all(false)>deselect all</a>");
			Response.Write("<tr>");
			Response.Write("<td><span class=lbl>project:</span><br><select name=mass_project id=mass_project></select>");
			Response.Write("<td><span class=lbl>category:</span><br><select name=mass_category id=mass_category></select>");
			Response.Write("<td><span class=lbl>priority:</span><br><select name=mass_priority id=mass_priority></select>");
			Response.Write("<td><span class=lbl>assigned to:</span><br><select name=mass_assigned_to id=mass_assigned_to></select>");
			Response.Write("<td><span class=lbl>status:</span><br><select name=mass_status id=mass_status></select>");
			Response.Write("<tr><td colspan=5>OR DELETE:&nbsp;<input type=checkbox name=mass_delete>");
			Response.Write("<tr><td colspan=5 align=center><input type=submit value='Update/Delete All'>");
			Response.Write("</table></form><p><script>load_massedit_selects()</script>");
		}
		else
		{
			// no checkboxes
			display_bugs(false);
		}
		

	}
	else
	{
		Response.Write ("<p>No ");
		Response.Write (Util.get_setting("PluralBugLabel","bug"));
		Response.Write ("<p>");
	}
}
%>

<p>
<b><span id="visible_sql_label" runat="server">SQL</span></b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<script>
function on_save_query() {
	var frm = document.getElementById("save_query_form");
	frm.sql_text.value =
		//document.all.visible_sql_text.innerText;
		document.getElementById("visible_sql_text").firstChild.nodeValue

	frm.submit();
}
</script>

<% if (security.this_is_admin || Util.get_setting("AllowQueryPageForNonAdmins","1") == "1") { %>
	<a style='font-size: 12pt;' href="javascript: on_save_query()">save sql as query</a>
<% } %>

<pre style="font-family: courier new; font-size: 8pt">
<div id="visible_sql_text" runat="server">&nbsp;</div>
</pre>

<!-- form 3 -->
<form id="save_query_form" target="_blank" method="post" action="edit_query.aspx">
<input type="hidden" name="sql_text" value="">
</form>

</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -