initial import
[offlinemoodle.git] / offlinemoodle.js
blob411f3853a0ec7169daf5e760767bd890021aae92
1 var DB_NAME = "mdl_offline_db";
3 function ajaxget(id, page) {
4 alert('ajaxget ' + id + ' ' + page);
5 var pagecontent = fetchpage(id, page);
6 document.write(pagecontent);
7 document.close();
10 function ajxget(url, formname) {
11 alert('ajxget: ' + url + ' ' + formname);
12 var frm = document.getElementById(formname);
13 var id = frm.id.value;
14 var pageid = frm.pageid.value;
15 var page = eval(pageid);
16 if (frm.jumpto) {
17 var jumpto = eval(frm.jumpto.value);
18 if (jumpto == -1) {
19 page = page + 1;
20 } else if (jumpto > 0) {
21 page = jumpto;
24 alert('ajxget: formname ' + formname + ' id ' + id + ' pageid ' + pageid + ' jumpto ' + jumpto);
25 // get nextpage
26 var nextpage = getnextpage(page);
27 if( !frm.answerid) {
28 ajaxget(id, nextpage);
29 } else {
30 ajxget2(formname, frm, id, pageid, page);
34 function ajxget2(formname, frm, id, pageid, page) {
35 var answervalue = 0;
36 var answertxt = "";
37 var responsetxt = "";
38 var jumpto, nextpage;
39 for (var i=0;i<frm.answerid.length;i++) {
40 if(frm.answerid[i].checked) {
41 answervalue = frm.answerid[i].value;
44 // get info from db
45 var db = google.gears.factory.create('beta.database', '1.0')
46 db.open(DB_NAME);
47 if(db) {
48 // get answer info for this page
49 var rs = db.execute( "select jumpto, answer, response from mdl_lesson_answers where id =" + answervalue);
50 while (rs.isValidRow()) {
51 jumpto = rs.field(0);
52 answertxt = rs.field(1);
53 responsetxt = rs.field(2);
54 rs.next();
56 rs.close();
57 db.close();
58 } else {
59 alert("db not found");
61 if(jumpto<0) {
62 page = page + 1;
63 } else if (jumpto > 0) {
64 page = jumpto;
66 // get nextpage
67 var nextpage = getnextpage(page);
68 // now create a response and write to document
69 var content = "</div><em>Your answer</em> : <p>";
70 content = content + answertxt;
71 content = content + "</p><div class='response ";
72 if (jumpto == -1) {
73 content = content + "correct";
74 page = nextpage;
75 } else {
76 content = content + "incorrect";
78 content = content + "'><p>"
79 content = content + responsetxt;
80 content = content + "</p></div>";
81 content = content + "<p style='text-align:center' onclick='ajaxget(" + id + ', ' + page + ' )' + "'>Continue</p>";
82 var pagecontent = fetchpage(id,pageid);
83 var txt = pagecontent;
84 var start = txt.indexOf('<form id="answerform"');
85 var end = txt.indexOf('</form>',start);
86 var newtxt = txt.substr(0,start) + content + txt.substring(end+7,txt.length);
87 document.write(newtxt);
88 document.close();
91 function getnextpage(page) {
92 // get info from db
93 var nextpage = page;
94 var db = google.gears.factory.create('beta.database', '1.0');
95 db.open(DB_NAME);
96 if(db) {
97 var nextpage = page;
98 rs = db.execute("select nextpageid from mdl_lesson_pages where id =" + page);
99 if (rs.isValidRow()) {
100 nextpage = rs.field(0);
101 } else {
102 alert('row ' + page + ' not found in mdl_lesson_pages');
104 rs.close();
105 if(nextpage > 0) {
106 rs = db.execute("select jumpto, answer, response from mdl_lesson_answers where pageid =" + nextpage);
107 if (rs.isValidRow()) {
108 if (!(rs.field(1).length > 0 || rs.field(2).length > 0)) {
109 var nextpageid = rs.field(0);
110 if(nextpageid == -1) {
111 nextpage = nextpage + 1;
112 } else {
113 nextpage = nextpageid;
116 alert('end of branch returning to: ' + nextpage);
118 rs.close();
120 db.close();
121 } else {
122 alert("db not found");
124 return(nextpage);
127 function fetchpage(id,page) {
128 if (page > 0) {
129 var target = "view.php?id=" + id + "&pageid=" + page
130 } else {
131 var target = "http://tony-desktop/moodle/course/view.php?id=" + id + "&pageid=1";
133 var req = new XMLHttpRequest();
134 req.open("GET", target, false);
135 req.send(null);
136 if(req.status == 200) {
137 return(req.responseText);