home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2003 October / INTERNET108.ISO / pc / software / windows / utils / tiny_firewall / tpf5.exe / Tiny Personal Firewall 5.0.msi / script.js < prev    next >
Encoding:
Text File  |  2003-05-28  |  10.0 KB  |  442 lines

  1.  
  2.  
  3.  
  4.  
  5. function OnLoad () 
  6. {
  7.   //debugger;
  8.    xmlDoc = new ActiveXObject("MSXML2.DOMDocument.4.0");
  9.    xmlDoc.async = false;
  10.    xmlDoc.validateOnParse = false;
  11.    xmlDoc.load ("emptyfiles.xml");
  12.     
  13.    //boxes.innerHTML = TransformXML2 (g_xmlDoc, "boxes.xsl", "");
  14.    boxes.innerHTML = TransformXML2SAX (xmlDoc, "boxes.xsl", "");
  15.    banner.innerHTML = TransformXML2SAX (xmlDoc, "banner.xsl", "");
  16.    
  17.    InitFields ();
  18.     
  19. }
  20.  
  21.  
  22. function InitFields () 
  23. {
  24.  
  25.      
  26.     var d = new Date();    
  27.     var strDate = new String;
  28.     var tmp = new String;
  29.     
  30.     tmp += d.getYear();
  31.     strDate += tmp + "-";
  32.     
  33.     tmp="";    tmp += d.getMonth() + 1;
  34.     if (tmp.length ==1)
  35.         tmp = "0" +tmp;
  36.     strDate +=tmp + "-";
  37.     
  38.     tmp="";tmp += d.getDate();
  39.     if (tmp.length ==1)
  40.         tmp = "0" +tmp;
  41.     strDate += tmp;
  42.     
  43.         
  44.           
  45. //    form.from.value = s;
  46. //    form.to.value =s;
  47.    dateFrom.value = strDate;
  48.    dateTo.value = strDate;
  49.  
  50. }
  51.  
  52. function TransformXML2SAX (xmlDoc, xslPath, filterPattern )
  53. {
  54.    
  55.    var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0");
  56.    xslDoc.async = false;
  57.    xslDoc.validateOnParse = false;
  58.    xslDoc.load (xslPath);
  59.  
  60.    
  61.    if (filterPattern != "") {
  62.       var tmpParamPattern = ".//*['xsl:param'=name() and @name='filterPattern']/@select"
  63.       var filterParam = xslDoc.selectSingleNode(tmpParamPattern);
  64.       filterParam.text = filterPattern;
  65.    }
  66.    
  67.    var xslt = new ActiveXObject("Msxml2.XSLTemplate.4.0");
  68.    xslt.stylesheet = xslDoc;
  69.    var xslProc = xslt.createProcessor();
  70.    
  71.    xslProc.input = xmlDoc;
  72.    
  73.     var xmlWriter = new ActiveXObject("Msxml2.MXXMLWriter.4.0");
  74.    xslProc.output = xmlWriter;
  75.    
  76.    xslProc.transform();
  77.    
  78.    return  xmlWriter.output;
  79.    
  80. }
  81.  
  82.  
  83.  
  84. function TransformXMLGroup2SAX (xmlDoc, xslPath, filterPattern )
  85. {
  86.    
  87.    var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0");
  88.    xslDoc.async = false;
  89.    xslDoc.validateOnParse = false;
  90.    xslDoc.load (xslPath);
  91.  
  92.    
  93.    if (filterPattern != "") {
  94.      var tmpParamPattern = ".//*['xsl:copy-of'=name()]/@select";
  95.       var filterParam = xslDoc.selectSingleNode(tmpParamPattern);
  96.       filterParam.text = "document(.)" + filterPattern;
  97.    }
  98.    
  99.    var xslt = new ActiveXObject("Msxml2.XSLTemplate.4.0");
  100.    xslt.stylesheet = xslDoc;
  101.    var xslProc = xslt.createProcessor();
  102.    
  103.    xslProc.input = xmlDoc;
  104.    
  105.     var xmlWriter = new ActiveXObject("Msxml2.MXXMLWriter.4.0");
  106.    xslProc.output = xmlWriter;
  107.    
  108.    xslProc.transform();
  109.    
  110.    return  xmlWriter.output;
  111.    
  112. }
  113.  
  114.  
  115. function getFilterPattern ()
  116. {
  117.    //debugger;
  118.    //alert ("ahoj" + timeTo.value);
  119.    var userFilter = "";
  120.    var domainFilter = "";
  121.    var remIpFilter = "";
  122.    var timeFilterFrom = "";
  123.    var timeFilterTo = "";
  124.    var dateFilter = "";
  125.    
  126.    var sumPattern = "";
  127.    var bAnyFilter = false;
  128.    
  129.    if (userBox.value != "") {
  130.       userFilter = "and @user =  '" + userBox.value + "' "; 
  131.       bAnyFilter = true;
  132.    }
  133.    
  134.    if (domainBox.value != "") {
  135.       domainFilter = "and @domain = '" + domainBox.value + "' "; 
  136.       bAnyFilter = true;
  137.       
  138.    }
  139.    
  140.    if (remIpBox.value != "") {
  141.       remIpFilter = "and InetDef/@remIp = '" + remIpBox.value + "' "; 
  142.       bAnyFilter = true;
  143.    }
  144.    
  145.    if (useTime.checked ) {
  146.         //var from = new String (timeFrom.value);
  147.                 // translate(substring-after(@dateTimeLast,'T'), ':','')  
  148.         timeFilterFrom = " and translate(substring-after(@dateTimeLast,'T'), ':','') >= " +
  149.          "translate('" + timeFrom.value +"', ':','')"; 
  150.          
  151.          timeFilterTo = " and translate(substring-after(@dateTimeLast,'T'), ':','') <= " +
  152.          "translate('" + timeTo.value +"', ':','')";  
  153.           bAnyFilter = true;
  154.    }
  155.   
  156.    
  157.   // var totalFilter = userFilter + domainFilter;
  158.    
  159.    if (bAnyFilter) {
  160.       sumPattern = "//Event[@module " + 
  161.       userFilter + 
  162.       domainFilter +
  163.       remIpFilter +
  164.       timeFilterFrom +
  165.       timeFilterTo +
  166.        " ]"; 
  167.    }
  168.    
  169.  
  170.    return sumPattern;
  171.    
  172. }
  173.  
  174.  
  175. function ResetBoxes ()
  176. {
  177.    if (dateFrom.value == "" || dateTo.value == "") {
  178.       InitFields ();
  179.    }
  180.     
  181.    RefreshBoxesFromGroup ();
  182.    
  183.     if (dateFrom.value == "" || dateTo.value == "") {
  184.       InitFields ();
  185.    }
  186. }
  187.  
  188. function RefreshBoxesFromGroup ()
  189. {
  190. //debugger;
  191.    var strFilter = ""; //getFilterPattern ();
  192.    
  193.     if (CheckDates())
  194.     {
  195.       
  196.         var ret ="" ;
  197.         //dFrom = new Date(Date.parse(form.from.value));
  198.         //dTo= new Date( Date.parse(form.to.value));
  199.       var strDate = new String (dateFrom.value);
  200.       dFrom = new Date( Date.parse (strDate.replace ('-',"/")));
  201.        strDate = new String (dateTo.value);
  202.        dTo = new Date(Date.parse (strDate.replace ('-',"/")));
  203.     
  204.         var d = dFrom;
  205.         var strLogDir = GetLogDir();
  206.         
  207.         //////////////////////////////////////////
  208.          var xmlDocTmp = new ActiveXObject("Msxml2.DOMDocument.4.0");
  209.          xmlDocTmp.load ("emptyfiles.xml");
  210.       //var newRoot;
  211.       //newRoot = xmlDocTmp.createElement("logs");
  212.       //xmlDocTmp.documentElement = newRoot;
  213.       
  214.         
  215.         ///////////////////////////////////
  216.         var fileCount = 0;
  217.         
  218.         while( d<=dTo)
  219.         {
  220.             for (i=1;i<1000;i++)
  221.             {
  222.                 var xml = strLogDir + GetFileName(d, i);
  223.                 
  224.                 if (CheckFile (xml) ) {
  225.                    var fileNode =  xmlDocTmp.createElement("file");
  226.                fileNode.text = xml;
  227.                xmlDocTmp.documentElement.appendChild(fileNode);
  228.               window.status = "Loading  " + fileCount + ".file ...." ;
  229.                fileCount++;
  230.                 }
  231.                 
  232.                 
  233.             }
  234.             d.setDate(d.getDate()+1);
  235.         }
  236.              //alert(xmlDocTmp.xml);
  237.                
  238.       window.status = "Parsing data ..." ;
  239.  
  240.       var xmlRet = TransformXMLGroup2SAX (xmlDocTmp, "filemaster.xsl", strFilter);
  241.  
  242.       var    xmlDoc = new ActiveXObject("MSXML2.DOMDocument.4.0");
  243.       xmlDoc.async = false;
  244.       xmlDoc.validateOnParse = false;
  245.       xmlDoc.loadXML(xmlRet);
  246.          
  247.       //resultFrame.document.body.innerHTML = TransformXML2 (g_xmlDoc, "basic.xsl", "");
  248.       window.status = "Generating boxes ..." ;
  249.  
  250.       banner.innerHTML = TransformXMLGroup2SAX (xmlDoc, "banner.xsl", "");
  251.       boxes.innerHTML = TransformXMLGroup2SAX (xmlDoc, "boxes.xsl", "");
  252.       window.status = "OK";
  253.       xmlDocTmp = null;
  254.       xmlDoc = null;
  255.     }
  256. }
  257.  
  258.  
  259.  
  260. function RefreshGroup (xslPath)
  261. {
  262.    
  263.     window.status ="Please wait ...";
  264.   
  265.   resultFrame.document.body.innerHTML = "";
  266.    
  267.   //var newDoc =  resultFrame.document.open("text/html", "replace");
  268.   
  269. //alert ("1");
  270.    var xmlDoc = new ActiveXObject("MSXML2.DOMDocument.4.0");
  271.    xmlDoc.async = false;
  272.    xmlDoc.validateOnParse = false;
  273.    
  274.    var strFilter = getFilterPattern ();
  275.     if (CheckDates())
  276.     {
  277.       
  278.         var ret ="" ;
  279.         //dFrom = new Date(Date.parse(form.from.value));
  280.         //dTo= new Date( Date.parse(form.to.value));
  281.       var strDate = new String (dateFrom.value);
  282.       dFrom = new Date( Date.parse (strDate.replace ('-',"/")));
  283.        strDate = new String (dateTo.value);
  284.        dTo = new Date(Date.parse (strDate.replace ('-',"/")));
  285.     
  286.         var d = dFrom;
  287.         var strLogDir = GetLogDir();
  288.         
  289.         //////////////////////////////////////////
  290.          var xmlDocTmp = new ActiveXObject("Msxml2.DOMDocument.4.0");
  291.          xmlDocTmp.load ("emptyfiles.xml");
  292.       
  293.       
  294.         var fileCount = 0;
  295.         ///////////////////////////////////
  296. //alert ("2");
  297.         
  298.         while( d<=dTo)
  299.         {
  300.             for (i=1;i<1000;i++)
  301.             {
  302.             
  303.                 var xml = strLogDir + GetFileName(d, i);
  304.                 
  305.                 if (CheckFile (xml) ) {
  306.                    var fileNode =  xmlDocTmp.createElement("file");
  307.                fileNode.text = xml;
  308.                xmlDocTmp.documentElement.appendChild(fileNode);
  309.                
  310.                window.status = "Loading  " + fileCount + ".file ...." ;
  311.                fileCount ++;
  312.                 }
  313.                 
  314.                 
  315.                 
  316.                 //ret += TransformXML2 (g_xmlDoc, "basic.xsl", strFilter);
  317.                 //resultFrame.document.write (TransformXML2 (g_xmlDoc, "basic.xsl", strFilter));
  318.               //alert (i);        
  319.             }
  320.             d.setDate(d.getDate()+1);
  321.         }
  322.              //alert(xmlDocTmp.xml);
  323.       window.status = "Applying filters ....";
  324.         var xmlRet = TransformXMLGroup2SAX (xmlDocTmp, "filemaster.xsl", strFilter);
  325.         xmlDoc.loadXML(xmlRet);
  326.                  
  327.       window.status = "Generating output ....";
  328.                  
  329.         var html = TransformXML2SAX  (xmlDoc, xslPath, "");
  330.         
  331.         window.status = "Rendering ....";
  332.         
  333.         var newDoc =  resultFrame.document.open("text/html", "replace");
  334.         newDoc.write (html);
  335.         newDoc.close ();
  336.         // resultFrame.document.body.innerHTML = html;
  337.         
  338.     }
  339.     window.status = "OK";
  340.      //newDoc.close ();
  341.     
  342. }
  343.  
  344.  
  345. function CheckFile(filePath)
  346. {
  347.  
  348.  
  349.    var bExist = false;
  350.    
  351.    var xmlDoc = new ActiveXObject("MSXML2.DOMDocument.4.0");
  352.    xmlDoc.async = false;
  353.    xmlDoc.validateOnParse = false;   
  354.    if (xmlDoc.load (filePath)) {
  355.    xmlDoc = null;
  356.    return true;
  357.    }else {
  358.    xmlDoc = null;
  359.    return false;
  360.    }
  361.    
  362.  
  363. }
  364.  
  365.  
  366. function CheckDates()
  367. {
  368.    var strDate = new String (dateFrom.value);
  369.    dFrom = Date.parse (strDate.replace ('-',"/"));
  370.     
  371.  
  372.     strDate = new String (dateTo.value);
  373.     dTo = Date.parse (strDate.replace ('-',"/"));
  374.  
  375.     
  376.     if (!dFrom  || !dTo)
  377.     {
  378.         alert(ERR_DATE_FORMAT);
  379.         return false;
  380.     }
  381.     if (dFrom>dTo)
  382.     {
  383.         alert(ERR_DATE_RANGE);
  384.         return false;
  385.     }
  386.     return true;
  387. }
  388.  
  389.  
  390. function GetFileName(d, i)
  391. {
  392.     var strFile = new String;
  393.     var tmp = new String;
  394.     
  395.     tmp += d.getYear();
  396.     strFile += tmp.substr(2,2);
  397.     
  398.     tmp="";    tmp += d.getMonth() + 1;
  399.     if (tmp.length ==1)
  400.         tmp = "0" +tmp;
  401.     strFile +=tmp;
  402.     
  403.     tmp="";tmp += d.getDate();
  404.     if (tmp.length ==1)
  405.         tmp = "0" +tmp;
  406.     strFile += tmp;
  407.     
  408.     var index;
  409.     if (i<10)
  410.         index = "00"+i;
  411.     else if(i<100)
  412.         index = "0"+i;
  413.     else    
  414.        index = i;
  415.        
  416.     strFile += "_"+ index + ".xml";
  417.     return strFile;
  418. }
  419.  
  420.  
  421.  
  422.  
  423. function GetLogDir()
  424. {
  425.     var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
  426.     xmlDoc.async = false;
  427.     xmlDoc.resolveExternals = false;
  428.     xmlDoc.load("logcfg.xml");
  429.     currNode = xmlDoc.selectSingleNode("//Logdir");
  430.     strDir = currNode.text;
  431.     var ch = strDir.charAt(strDir.length-1)
  432.     if (ch !='\\')
  433.         strDir+="\\";
  434.     return strDir;
  435. }
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.