/lenasys/0.1

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/0.1
1 by Henrik G.
First seed of Lenasys ... Needs to be Organized Further
1
<html>
2
<head>
3
		<style>
4
					table {border: 1px dotted gray; padding: 1em;}
5
		</style>
6
7
		<script language="javascript" src="../jquery/jquery-1.8.2.min.js"></script>
8
9
		<script language="javascript">
10
11
			// We keep the resultset in a variable if we want to redraw dynamically
12
			// Size is updated through separate ajax call.
13
		
14
			var resultset;
15
			var isvalid=false;
16
			var size=0;
17
		
18
			function bookPosition(position)
19
			{
20
				var rebate=0;
21
				var resource=document.getElementById("resourceID").value;
22
				var bookingdate=document.getElementById("date").value;
23
				var customer=document.getElementById("userID").value;
24
				var company=document.getElementById("type").value;
25
26
27
      			$.ajax({
28
				    	    type: 'POST',
29
				    	    url: '../booking/makebooking_XML.php',
30
				    	    data: {
31
				    	        	type: company,
32
				    	        	resourceID: resource,
33
				    	        	date: bookingdate,
34
				    	        	customerID: customer,
35
				    	        	rebate: rebate,
36
				    	        	status: "2", // 2 = "Real" booking.
37
				    	        	position: position,
38
				    	    },
39
				    	    success:  bookingmade,
40
				    	    error: errormsg		
41
				   });
42
			}
43
44
			// Handle errors.
45
			function errormsg(jqXHR,textStatus,errorThrown) {
46
			    alert(jqXHR.responseText);
47
			}
48
		
49
			function bookingmade(returnedData)
50
			{
51
					alert('booked!');
52
					processinputbox();
53
			}
54
		
55
			function drawResult()
56
			{
57
				// Use size from initial ajax call
58
				// Generate Table including booking Javascript calls
59
				var output="<table border='1'>";
60
				output+="<tr>";
61
				var matchedbooking,matched;
62
				for(i = 0; i < size; i++) {
63
					matched=false;
64
					for (j = 0; j < resultset.childNodes.length; j++) {
65
						if(resultset.childNodes.item(j).nodeName=="booking"){
66
							var booking=resultset.childNodes.item(j);
67
							if(i==booking.attributes['position'].nodeValue){
68
								matchedbooking=booking;
69
								matched=true;
70
							}
71
						}
72
					}	
73
				
74
					if(matched){
75
						output+="<td bgcolor='#ffeedd'>&nbsp;&nbsp;</td>";
76
					}else{
77
						output+="<td bgcolor='#ffffff' onclick='bookPosition("+i+")' style='cursor:pointer;'>&nbsp;&nbsp;</td>";
78
					}
79
					if(i%4==3) output+="</tr><tr>";	
80
				}
81
			
82
				output+="</tr>";
83
				output+="</table>"
84
				var div=document.getElementById('OutputDiv');
85
				div.innerHTML=output;
86
			}
87
88
			function ResultBooking(returnedData)
89
			{
90
				// An XML DOM document is returned from AJAX
91
				resultset=returnedData.childNodes[0];
92
				isvalid=true;
93
			
94
				drawResult();		
95
			}				
96
97
			function ResultSize(returnedData)
98
			{
99
				// An XML DOM document is returned from AJAX
100
				var resultsetsize=returnedData.childNodes[0];
101
			
102
				// Iterate over all nodes in root node (i.e. customers)
103
				for (i = 0; i < resultsetsize.childNodes.length; i++) {
104
					if(resultsetsize.childNodes.item(i).nodeName=="resource"){
105
						var resource=resultsetsize.childNodes.item(i);
106
						size=resource.attributes['size'].nodeValue;
107
					}
108
				}
109
			}		
110
		
111
			function processinputbox()
112
			{
113
				resource=document.getElementById("resourceID").value;
114
				bookingdate=document.getElementById("date").value;
115
116
      			$.ajax({
117
				        type: 'POST',
118
				        url: '../booking/getresourcesize_XML.php',
119
				        data: {	resourceID: resource},
120
				        success:  ResultSize
121
				    });
122
123
      			$.ajax({
124
					        type: 'POST',
125
					        url: '../booking/getbookings_XML.php',
126
					        data: {
127
					        	resourceID: resource,
128
					        	date: bookingdate
129
					        },
130
					        success:  ResultBooking
131
				    });
132
			}		
133
		</script>
134
</head>
135
<body>
136
137
<form name='searchbookings'>
138
		userID:<br><input type='text' name='userID' id='userID' onchange="processinputbox()" onkeyup="processinputbox()"><br>
139
		resourceID:<br><input type='text' name='resourceID' id='resourceID' onchange="processinputbox()" onkeyup="processinputbox()"><br>
140
		company:<br><input type='text' name='type' id='type' onchange="processinputbox()" onkeyup="processinputbox()"><br>
141
		date:<br><input type='text' name='date' id='date' onchange="processinputbox()" onkeyup="processinputbox()"><br>
142
</form>
143
<br>
144
<div id="OutputDiv">
145
<br>
146
147
</body>
148
</html>