You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
374 lines
11 KiB
374 lines
11 KiB
<%@LANGUAGE = Javascript%>
|
|
|
|
<!--#INCLUDE FILE='Global_DBUtils.asp' -->
|
|
<!--#include file='global_serverutils.asp'-->
|
|
|
|
<%
|
|
Response.Buffer = false
|
|
var Alias = Request.QueryString("Alias")
|
|
%>
|
|
|
|
<head>
|
|
<link rel="stylesheet" TYPE="text/css" HREF="/main.css">
|
|
<link rel="stylesheet" TYPE="text/css" HREF="/CustomStyles.css">
|
|
</head>
|
|
|
|
|
|
<body bgcolor='#ffffff' topmargin='0' leftmargin='0' marginheight='0' marginwidth='0' tabindex='0'>
|
|
|
|
<OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"
|
|
HEIGHT=0 WIDTH=0 ID="rdsSaveQuery"
|
|
OnDataSetComplete="RefreshLeftNav()">
|
|
<PARAM NAME="URL" VALUE="" >
|
|
</OBJECT>
|
|
|
|
<!--OnDataSetComplete="CreateDeliveryTypesDropDown()"-->
|
|
<table>
|
|
<tr>
|
|
<td>
|
|
<p class='clsPTitle'>Custom Query Designer</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
<SCRIPT LANGUAGE="Javascript">
|
|
<%
|
|
Response.Write("CompareOperators = { \n" )
|
|
|
|
for( op in CompareOperators )
|
|
{
|
|
Response.Write( op + " : { \t\tText:\"" + CompareOperators[op].Text + "\"\t,\t\tSign:\"" + CompareOperators[op].Sign + "\" },\n" )
|
|
}
|
|
Response.Write( "NONE : { Text: \"\", Sign:\"\" }\n}" )
|
|
|
|
%>
|
|
|
|
|
|
|
|
function RemoveClause( TableName, ClauseToRemove )
|
|
{
|
|
var I; //standard loop counter
|
|
|
|
eval( "document.all." + TableName + ClauseToRemove+".style.display='none'" ) ;
|
|
eval( "document.all." + TableName + "sField"+ClauseToRemove+".selectedIndex=0" ) ;
|
|
eval( "document.all." + TableName + "tbSearchValue"+ClauseToRemove+".value=''" ) ;
|
|
|
|
ClearCompareField( TableName, ClauseToRemove );
|
|
}
|
|
|
|
|
|
function AddClause( TableName )
|
|
{
|
|
|
|
for ( var i=1 ; i< 9 ; i++ )
|
|
{
|
|
if ( eval( "document.all." + TableName + i+".style.display") == 'none' )
|
|
{
|
|
eval( "document.all." + TableName + i+".style.display='block'" ) ;
|
|
return;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
function ClearCompareField( TableName, iFieldNumber )
|
|
{
|
|
|
|
var lenCompareOptions = new Number( eval("document.all." + TableName + "sCompare"+iFieldNumber+".options.length" ) )
|
|
|
|
//alert ( lenCompareOptions )
|
|
|
|
for ( var i=0 ; i <= lenCompareOptions ; i++ )
|
|
{
|
|
eval("document.all." + TableName + "sCompare"+iFieldNumber+".options.remove(0)");
|
|
|
|
eval("document.all." + TableName +"tbSearchValue"+iFieldNumber+".style.visibility='hidden'");
|
|
}
|
|
}
|
|
|
|
|
|
function FillInCompareField( TableName, iFieldNumber, fieldname )
|
|
{
|
|
var field //the field we are workikng on
|
|
|
|
//make sure the comparison field has nothing in it
|
|
if ( eval("document.all." + TableName + "sCompare"+iFieldNumber+".length == 0" ) )
|
|
{
|
|
for ( field in CompareOperators )
|
|
{
|
|
var Element=document.createElement("OPTION");
|
|
Element.text=CompareOperators[field].Text;
|
|
Element.value=CompareOperators[field].Sign ;
|
|
|
|
eval("document.all." + TableName + "sCompare"+iFieldNumber+".add( Element )" );
|
|
eval("document.all." + TableName + "tbSearchValue"+iFieldNumber+".style.visibility='visible'");
|
|
}
|
|
}
|
|
|
|
ClearValueTB ( TableName, iFieldNumber )
|
|
}
|
|
|
|
|
|
function ValidateCompare ( TableName, cIndex, CompareValue )
|
|
{
|
|
if ( CompareValue == "IS NOT NULL" | CompareValue == "IS NULL" )
|
|
{
|
|
eval("document.all." + TableName + "tbSearchValue"+cIndex+".style.visibility='hidden'");
|
|
eval("document.all." + TableName + "tbSearchValue"+cIndex+".value=''");
|
|
}
|
|
else
|
|
{
|
|
eval("document.all." + TableName + "tbSearchValue"+cIndex+".style.visibility='visible'");
|
|
eval("document.all." + TableName + "tbSearchValue"+cIndex+".value=''");
|
|
}
|
|
|
|
}
|
|
|
|
function ClearValueTB ( TableName, cIndex )
|
|
{
|
|
eval("document.all." + TableName + "tbSearchValue" + cIndex + ".value=\"\"" )
|
|
}
|
|
|
|
|
|
function ShowAdvQuery ()
|
|
{
|
|
document.all.divAdvancedQuery.style.display='block'
|
|
document.all.divTheQuery.style.display='none'
|
|
}
|
|
|
|
function VerifySaveQuery()
|
|
{
|
|
if( document.all.tbDescription.value == "" )
|
|
alert("You must enter a description in order to save this query! " )
|
|
else
|
|
{
|
|
document.all.SaveQuery.value="1"
|
|
document.all.submit()
|
|
}
|
|
|
|
}
|
|
|
|
function VerifySearchData ( TableName, svValue, field )
|
|
{
|
|
|
|
var fieldVal = eval( "document.all." + TableName + "sField" + field + ".selectedIndex" )
|
|
|
|
var fieldType = new String( eval( TableName + "Fields[" + fieldVal + "].ValType" ) )
|
|
var fieldName = new String( eval( TableName + "Fields[" + fieldVal + "].Text" ) )
|
|
|
|
if ( fieldType == "Number" )
|
|
{
|
|
if ( isNaN( svValue ) )
|
|
{
|
|
alert("This field requires a number as input: " + fieldName )
|
|
return false
|
|
}
|
|
}
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
function VerifyCorrectDataTypes()
|
|
{
|
|
for ( var i=1 ; i < 9 ; i++ )
|
|
{
|
|
var field = eval( "document.all.sField" + i + ".value" )
|
|
alert( field )
|
|
}
|
|
|
|
}
|
|
|
|
function SaveQuery( TableName, Page, Params )
|
|
{
|
|
|
|
var Description = eval( "document.all." + TableName + "SaveDescription.value" )
|
|
var Param1 = eval( "document.all." + TableName + "Top.value" )
|
|
var Param2 = encodeURIComponent(BuildWhereClause( TableName ) )
|
|
var Param3 = eval( "document.all." + TableName + "OrderBy.value")
|
|
var Param4 = eval("document.all." + TableName + "SortDirection.value")
|
|
|
|
if ( String(Params) == "undefined" || String(Params) == "" )
|
|
Params=""
|
|
else
|
|
Params += "&"
|
|
|
|
//alert ( Page + "?" + Params + "SP=CUSTOM&Param1=" + Param1 + "&Param2=" + Param2 + "&Param3=" + Param3 + "&Param4=" + Param4)
|
|
|
|
var FinalParam= Page + "?" + Params + "SP=CUSTOM&Param1=" + Param1 + "&Param2=" + Param2 + "&Param3=" + Param3 + "&Param4=" + Param4
|
|
|
|
var URL = "Global_GetRS.asp?SP=DBGPortal_SaveCustomQuery&DBConn=CRASHDB3&Param0=<%=GetShortUserAlias()%>&Param1=" + Description + "&Param2=" + escape( FinalParam )
|
|
|
|
//alert( URL )
|
|
|
|
|
|
|
|
rdsSaveQuery.URL = URL
|
|
rdsSaveQuery.Refresh()
|
|
|
|
//try and update the left nav
|
|
|
|
alert("Your query has been saved! You can run your saved query from the left nav under the heading 'Custom Queries'." )
|
|
}
|
|
|
|
function RefreshLeftNav()
|
|
{
|
|
try
|
|
{
|
|
window.parent.parent.frames("SepLeftNav").window.location.reload()
|
|
}
|
|
catch( err )
|
|
{
|
|
alert("Could not update the left nav bar. Please refresh your left nav by right clicking anywhere within the left nav and clicking refresh.")
|
|
}
|
|
}
|
|
|
|
|
|
function ExecuteQuery( TableName, NewWindow, Page, Params )
|
|
{
|
|
var Param1 = eval( "document.all." + TableName + "Top.value" )
|
|
var Param2 = encodeURIComponent(BuildWhereClause( TableName ) )
|
|
var Param3 = eval( "document.all." + TableName + "OrderBy.value")
|
|
var Param4 = eval("document.all." + TableName + "SortDirection.value")
|
|
|
|
|
|
if ( String(Params) == "undefined" || String(Params) == "" )
|
|
Params=""
|
|
else
|
|
Params += "&"
|
|
|
|
|
|
if ( NewWindow )
|
|
window.open( Page + "?" + Params + "SP=CUSTOM&Param1=" + Param1 + "&Param2=" + Param2 + "&Param3=" + Param3 + "&Param4=" + Param4)
|
|
else
|
|
window.navigate( Page + "?" + Params + "SP=CUSTOM&Param1=" + Param1 + "&Param2=" + Param2 + "&Param3=" + Param3 + "&Param4=" + Param4)
|
|
|
|
}
|
|
|
|
function CreateCrashQuery( TableName, NewWindow )
|
|
{
|
|
|
|
//var QueryEnd=new String()
|
|
//var Query = new String()
|
|
//var WhereClause = new String()
|
|
|
|
//var Param1 = eval( "document.all." + TableName + "Top.value" )
|
|
//var Param3 = eval( "document.all." + TableName + "OrderBy.value")
|
|
//var Param4 = eval("document.all." + TableName + "SortDirection.value")
|
|
|
|
//Query = "SELECT TOP " + eval( "document.all." + TableName + "Top.value")
|
|
//Query += " Path, BuildNo, EntryDate, IncidentID, Email, Description, Comments, Repro, TrackID, iBucket from dbgportal_crashdata "
|
|
|
|
//QueryEnd = " order by " + eval( "document.all." + TableName + "OrderBy.value") + " " + eval("document.all." + TableName + "SortDirection.value")
|
|
|
|
//var WhereClause = BuildWhereClause( TableName )
|
|
//var Query = encodeURIComponent( Query + " " + WhereClause + QueryEnd )
|
|
|
|
//if ( NewWindow )
|
|
//window.open( "DBGPortal_DisplayCrashQuery.asp?SP=CUSTOM&Param1=" + eval( "document.all." + TableName + "Top.value") + "&Param2=" + WhereClause + "&Param3=" + Param3 + "&Param4=" + Param4)
|
|
//else
|
|
//window.navigate( "DBGPortal_DisplayCrashQuery.asp?SP=CUSTOM&Param1=" + eval( "document.all." + TableName + "Top.value" ) + "&Param2=" + WhereClause + "&Param3=" + Param3 + "&Param4=" + Param4)
|
|
}
|
|
|
|
|
|
function CreateAdvancedQuery( TableName, NewWindow )
|
|
{
|
|
|
|
//eval( "document.all." + TableName + "Top.value" )
|
|
|
|
/*var Query = "SELECT TOP " + eval( "document.all." + TableName + "Top.value") + " BTI.iBucket, BTI.BucketID, FollowUP, [Crash Count], BugID, SolutionID FROM "
|
|
Query += "(SELECT TOP 100 PERCENT sBucket, Count(sBucket) as [Crash Count] FROM CrashInstances "
|
|
Query += "GROUP BY sBucket "
|
|
Query += "ORDER BY [Crash Count] DESC) as one "
|
|
Query += "INNER JOIN BucketToInt as BTI on sBucket=BTI.iBucket "
|
|
Query += "LEFT JOIN FollowUPIds as F on BTI.iFollowUP = F.iFollowUP "
|
|
Query += "LEFT JOIN Solutions.dbo.Solvedbuckets as SOL on BTI.BucketId = SOL.strBucket "
|
|
Query += "LEFT JOIN RaidBugs as R on BTI.iBucket = R.iBucket "
|
|
*/
|
|
|
|
//var Query = "SELECT TOP " + eval( "document.all." + TableName + "Top.value") + " iBucket, BucketID, FollowUP, CrashCount, BugID, SolutionID FROM "
|
|
//Query += "DBGPortal_BucketData "
|
|
|
|
//var QueryEnd = " order by " + eval( "document.all." + TableName + "OrderBy.value") + " " + eval("document.all." + TableName + "SortDirection.value" )
|
|
//var WhereClause = BuildWhereClause( TableName )
|
|
|
|
///var Query = encodeURIComponent( Query + " " + WhereClause + QueryEnd )
|
|
|
|
//if ( NewWindow )
|
|
//window.open( "DBGPortal_DisplayQuery.asp?SP=CUSTOM&CustomQuery=" + Query + "&Platform=&QueryType=&Param1=" + Top + "&Param2=" + WhereClause )
|
|
//else
|
|
//window.navigate( "DBGPortal_DisplayQuery.asp?SP=CUSTOM&CustomQuery=" + Query + "&Platform=&QueryType=&Param1=" + eval( "document.all." + TableName + "Top.value" ) + "&Param2=" + WhereClause )
|
|
|
|
|
|
}
|
|
|
|
function BuildWhereClause( TableName )
|
|
{
|
|
var WhereClause = ""
|
|
|
|
for ( var i=1 ; i < 9 ; i++ )
|
|
{
|
|
var conjuction = eval ("document.all." + TableName + "sConjunction" + i + ".value" )
|
|
var field = eval( "document.all." + TableName + "sField" + i + ".value" )
|
|
var UserValue = eval("document.all." + TableName + "tbSearchValue" + i + ".value" )
|
|
|
|
if ( eval( "document.all." + TableName + "sCompare" + i + ".value" ) == "CONTAINS" )
|
|
{
|
|
var op = "LIKE '%" + UserValue + "%'"
|
|
UserValue = ""
|
|
}
|
|
else if ( eval( "document.all." + TableName + "sCompare" + i + ".value" ) == "DNCONTAINS" )
|
|
{
|
|
var op = "NOT LIKE '%" + UserValue + "%'"
|
|
UserValue = ""
|
|
}
|
|
else
|
|
{
|
|
var op = eval( "document.all." + TableName + "sCompare" + i + ".value" )
|
|
}
|
|
|
|
|
|
if ( UserValue != "" )
|
|
{
|
|
if( !VerifySearchData( TableName, UserValue, i ) )
|
|
return false
|
|
|
|
UserValue = "'" + UserValue + "'"
|
|
}
|
|
|
|
if ( field != "" )
|
|
{
|
|
if ( WhereClause != "" )
|
|
WhereClause += conjuction + " " + field + " " + op + " " + UserValue + " "
|
|
else
|
|
WhereClause = "WHERE " + field + " " + op + " " + UserValue + " "
|
|
}
|
|
}
|
|
|
|
return WhereClause
|
|
|
|
}
|
|
|
|
|
|
|
|
</SCRIPT>
|
|
|
|
<%
|
|
|
|
//CreateQueryBuilder( "AdvancedQuery", "ExecuteQuery", SearchFields, "Search Bucket Data:" , "DBGPortal_DisplayQuery.asp" )
|
|
//CreateQueryBuilder( "AdvancedCrashQuery", "ExecuteQuery", CrashSearchFields, "Search Crash Data: ", "DBGPortal_DisplayCrashQuery.ASP" )
|
|
%>
|
|
|
|
|
|
|
|
|
|
<%
|
|
|
|
|
|
CreateQueryBuilder( "AdvancedQuery", "ExecuteQuery", "SaveQuery", SearchFields, "Search Bucket Data:" , "DBGPortal_DisplayQuery.asp", "Param0=BUCKETDATA" )
|
|
CreateQueryBuilder( "AdvancedCrashQuery", "ExecuteQuery", "SaveQuery", CrashSearchFields, "Search Crash Data: ", "DBGPortal_DisplayQuery.ASP", "Param0=CRASHDATA" )
|
|
|
|
|
|
%>
|