<%@LANGUAGE="JSCRIPT"%><% Response.Expires = 0; // Immediate Expires: header Response.AddHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); // // Get node or attribute value via XPath. Detect and throw various XPath errors // function getValueXPath(XmlDoc, expr) { var node; try { node = XmlDoc.selectSingleNode(expr); if(expr.search(/\@\w+$/) != -1) // Parameter value return node.value; else return node.text; } catch(ex) { if(ex.message == "Object required") ex.message = "Failed to find value"; throw "XPath {" + expr + "}: " + ex.message; } } function genList() { var XmlDoc = new ActiveXObject("Msxml2.DOMDocument"); // BEWARE: http://support.microsoft.com/kb/313372 and the use of the z: prefix below. XmlDoc.setProperty("SelectionLanguage", "XPath"); XmlDoc.setProperty("SelectionNamespaces", "xmlns:z='http://www.ivoa.net/xml/VOEvent/v1.1'"); var evInPath = Server.MapPath("/VOEvent/events/rcvd"); var evOutPath = Server.MapPath("/VOEvent/events/sent"); var evImgBasePath = Server.MapPath("/VOEvent/images"); var FSO = new ActiveXObject("Scripting.FileSystemObject"); var evFiles = new Enumerator(FSO.GetFolder(evInPath).Files); var result = ""; for (; !evFiles.atEnd(); evFiles.moveNext()) { var evPath = evFiles.item(); var evID = FSO.GetBaseName(evPath); if(!FSO.FileExists(evOutPath + "\\" + evID + ".xml")) continue; // Skip uncompleted jobs! var evStrm = FSO.OpenTextFile(evPath); var evXml = evStrm.ReadAll(); evStrm.Close(); XmlDoc.loadXML(evXml); var evIvorn = getValueXPath(XmlDoc, '/z:VOEvent/@ivorn'); // Message IVORN var evDate = getValueXPath(XmlDoc, '/z:VOEvent/Who/Date').replace(/T/, " "); var nImages = FSO.GetFolder(evImgBasePath + "\\" + evID).Files.Count; result += "" + evDate + " UTC" + // encodeURIComponent(evIvorn.replace(/.*#(.*)/, "$1")) + "" + evIvorn + "" + "Data (" + nImages + " images)" } return result; } %> Followup Data at <%= Util.Prefs.SiteName %>
 
   
 
 
<%= genList() %>
Followup Data for VOEvents