Warning: Can't use blame annotator:
svn blame failed on branches/EInotebook/scripts/LoadEvents.js: ("Can't find a temporary directory: Internal error", 20014)

source: tmcsimulator/branches/EInotebook/scripts/LoadEvents.js @ 350

Revision 350, 4.0 KB checked in by jdalbey, 7 years ago (diff)

Add a branch EInotebook for Electronic Instructor Notebook prototype

RevLine 
1var xmlDoc;
2function loadJSON(inFile, callback)
3{
4    var xobj = new XMLHttpRequest();
5    // Assume XML unless filename ends with .json
6    if (inFile.endsWith(".json"))
7    {
8        xobj.overrideMimeType("application/json");
9    }
10    xobj.open('GET', inFile, true);
11    xobj.onreadystatechange = function()
12    {
13        if (xobj.readyState == 4 && xobj.status == "200")
14        {
15            callback(xobj.responseText);
16        }
17    };
18    // We want ajax to ignore any cached responses
19    xobj.setRequestHeader('If-Modified-Since', 'Sat, 01 Jan 2000 01:01:01 GMT')
20    xobj.send(null);
21}
22
23function parseXml(response)
24{
25        var parser = new DOMParser();
26        xmlDoc = parser.parseFromString(response,"text/xml");
27        var eventTags = xmlDoc.getElementsByTagName("SCRIPT_EVENT");
28
29        // Process each event tag
30        for (var i = 0; i < eventTags.length; i++)
31        {
32            var currEvt = eventTags[i];
33            // Process all the children of one event
34            var timeFields; var evtTime; var incidentNum; var cadProp; var telProp;
35            var proparray = new Array();
36            var evalarray = new Array();
37            for (var child = 1; child < currEvt.childNodes.length; child++)
38            {
39                if (currEvt.childNodes[child].localName != undefined)
40                {
41                    switch(currEvt.childNodes[child].localName)
42                    {
43                        case "TIME_INDEX": 
44                            timeFields = currEvt.childNodes[child].textContent.split(":"); 
45                            evtTime = new Time(Number(timeFields[0]), Number(timeFields[1]), Number(timeFields[2]));
46                            break;
47                        case "INCIDENT":
48                            incidentNum = Number(currEvt.childNodes[child].attributes["LogNum"].value); 
49                            break;
50                        case "CAD_DATA": 
51                            var caddata = parseCAD(currEvt.childNodes[child]); 
52                            if (caddata.length > 0)
53                            {
54                                cadProp = new Property("CHP CAD", caddata ); 
55                                proparray.push(cadProp);
56                            }
57                            break;
58                        case "TELEPHONE": 
59                            telProp = new Evaluation("Telephone Conversation", 
60                                     parseTelephone(currEvt.childNodes[child]) ); 
61                            evalarray.push(telProp);
62                            break;
63                    }
64                }
65            }
66            //console.log(evtTime.format(), incidentNum, proparray.length, evalarray.length);
67            if (incidentNum != undefined)
68            {
69              events.add(new Event(evtTime, incidents.get(incidentNum), new Properties(proparray), 
70                    new Evaluations(evalarray)) );
71            }
72        }
73
74}
75function parseCAD(element)
76{
77    var result = new Array();
78    var details = element.getElementsByTagName("DETAIL");
79    if (details.length > 0)
80    {
81        for (detail in details)
82        {
83            if (details[detail].textContent != undefined)
84            {               
85                result.push("Detail:");
86                result.push(details[detail].textContent);
87            }
88        }
89    }
90    return result;
91}
92function parseTelephone(element)
93{
94    var result = new Array();
95    for (var child = 1; child < element.childNodes.length; child++)
96    {
97        if (element.childNodes[child].localName != undefined)
98        {
99            if (element.childNodes[child].localName == "INSTRUCTOR")
100            {
101                result.push(element.childNodes[child].attributes["Role"].value);
102            }
103            else
104            {
105                result.push(element.childNodes[child].localName);   
106            }
107            result.push(element.childNodes[child].textContent);
108        }
109    }
110    return result;
111}
112
113// MAIN
114loadJSON("full_script.xml", parseXml)
115
116
Note: See TracBrowser for help on using the repository browser.