<%@LANGUAGE="JSCRIPT"%> <% // // Dynamic tree loading // // 17-Feb-2008 rbd Initial edit // 18-Feb-2008 rbd Cache database conn in Session (ugly but OK for this) // 19-Feb-2008 rbd Update Project icons in tree per disabled/enabled // 23-Dec-20008 rbd New DB caching hack // Response.ContentType = "text/xml"; Response.ExpiresAbsolute = new Date("Jan 1, 2000").getVarDate(); // Expire even with clocdk offsets Response.AddHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); Response.Clear(); // Assure clean start Response.Write("\r\n"); var level = ""; var sid = "0"; var id; if(Request.Form("id") != undefined) { sid = Request.Form("id").item; level = sid.substr(0, 1); id = sid.substr(1); } Response.Write("\r\n"); var DB = Session("SDB"); // See index.asp if(DB == undefined) { var DBR = new ActiveXObject("ACP.DBRelay"); DB = DBR.GetDB(Session); DBR = null; } if(level === "") { // Only at top level! Response.Write("\r\n"); Response.Write("\r\n"); //Response.Write("\r\n"); Response.Write("\r\n"); } var icon; switch(level) { case "": var eR = new Enumerator(DB.Projects); for(;!eR.atEnd(); eR.moveNext()) { var R = eR.item(); // // Here is where we filter the visible things by user // if(User.IsAdministrator || R.User.Name == User.Name) { Response.Write(" 0) ? "1" : "0") + "\" "); if(R.Disabled) Response.Write("im0=\"FolderClosedDisabled.gif\" im1=\"FolderOpenDisabled.gif\" im2=\"FolderClosedDisabled.gif\" />\r\n"); else Response.Write("im0=\"FolderClosed.gif\" im1=\"FolderOpen.gif\" im2=\"FolderClosed.gif\" />\r\n"); } } break; case "R": var eP = new Enumerator(DB.Project(id).Plans); for(;!eP.atEnd(); eP.moveNext()) { var P = eP.item(); Response.Write(" 0) ? "1" : "0") + "\" "); switch(P.Status) { case 0: // Pending icon = "tree_pending.gif"; break; case 1: // Deferred icon = "tree_deferred.gif"; break; case 2: // Running icon = "tree_active.gif"; break; case 3: // Completed icon = "tree_done.gif"; break; case 4: // Failed icon = "tree_failed.gif"; break; case 5: // Disabled icon = "tree_disabled.gif"; break; default: // ?ERROR? icon = "leaf.gif"; break; } Response.Write("im0=\"" + icon + "\" im1=\"" + icon + "\" im2=\"" + icon + "\" />\r\n"); } break; case "P": var eO = new Enumerator(DB.Plan(id).Observations); for(;!eO.atEnd(); eO.moveNext()) { var O = eO.item(); Response.Write(" 0) ? "1" : "0") + "\" "); switch(O.Status) { case 0: // Pending icon = "tree_pending.gif"; break; case 1: // Running icon = "tree_active.gif"; break; case 2: // Completed icon = "tree_done.gif"; break; case 3: // Failed icon = "tree_failed.gif"; break; case 4: // Vetoed icon = "tree_deferred.gif"; break; case 5: // Disabled icon = "tree_disabled.gif"; break; default: // ?ERROR? icon = "leaf.gif"; break; } Response.Write("im0=\"" + icon + "\" im1=\"" + icon + "\" im2=\"" + icon + "\" />\r\n"); } break; case "O": var eI = new Enumerator(DB.Observation(id).Images); for(;!eI.atEnd(); eI.moveNext()) { var I = eI.item(); Response.Write("\r\n"); } break; default: break; } Response.Write("\r\n"); %>