<%@LANGUAGE="JSCRIPT"%> <% // // Dynamic tree loading - This runs at the server to generate the stuff // // 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-2009 rbd New DB caching hack // 14-Mar-2009 rbd Fix case error in the above // ??-???-2010 rbd Add Photometry Survey request // 22-Jan-2011 rbd Add link to Scheduler log (separate tab/window) // 06-Feb-2012 rbd GEM:296 - Enhance for creating new Projects. // 22-Jan-2014 rbd GEM:1083 No more DBRelay hack :-) // 26-Jul-2014 rbd GEM:1186 For dhtmlxTree V4, CDATA for names in newly // supported tag. // 13-Nov-2014 rbd GEM:342 Changes for Paused projects, other appearance. // 15-Nov-2014 rbd GEM:342 Additional changes, icons, Special Forms folder. // 24-Jan-2015 rbd GEM:1055 Improvements in ide/Show when running/not // 30-Jan-2015 rbd GEM:927 All requests show in grid, so change Pause/Resume // All to My for non-admins. // 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; if(sid == "0") { // Special refresh from seditproj.asp for new project level = ""; id = 0; } else { level = sid.substr(0, 1); id = sid.substr(1); } } Response.Write("\r\n"); var DB = Scheduler.Database; var icon; // // Now, with the "new xxx" nodes, they all have children (at least "new...") // switch(level) { case "": Response.Write("\r\n"); Response.Write("\r\n"); Response.Write("\r\n"); Response.Write("\r\n"); if(User.IsAdministrator) { Response.Write("\r\n"); Response.Write("\r\n"); } else { Response.Write("\r\n"); Response.Write("\r\n"); } Response.Write("\r\n"); 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 // Non-admins have access only to their requests. // if(User.IsAdministrator || R.User.Name == User.Name) { Response.Write("\r\n"); else Response.Write("im0=\"tree_run.png\" im1=\"tree_run.png\" im2=\"tree_run.png\">\r\n"); Response.Write("\r\n"); Response.Write("\r\n"); } } break; case "S": Response.Write("\r\n"); Response.Write("\r\n"); break; case "R": Response.Write("\r\n"); var eP = new Enumerator(DB.Project(id).Plans); for(;!eP.atEnd(); eP.moveNext()) { var P = eP.item(); Response.Write("\r\n"); Response.Write("\r\n"); Response.Write("\r\n"); } break; case "P": var P = DB.Plan(id); if(P.Status != 2) // 2 = Running (typ.) Response.Write("\r\n"); var eO = new Enumerator(P.Observations); for(;!eO.atEnd(); eO.moveNext()) { var O = eO.item(); Response.Write("\r\n"); Response.Write("\r\n"); Response.Write("\r\n"); } break; case "O": var O = DB.Observation(id); if(O.Plan.Status != 2) Response.Write("\r\n"); var eI = new Enumerator(O.Images); for(;!eI.atEnd(); eI.moveNext()) { var I = eI.item(); Response.Write("\r\n"); Response.Write("\r\n"); Response.Write("\r\n"); } break; default: break; } Response.Write("\r\n"); %>