source: src/django_gheat/website/static/heatmap_extensions.js@ 9216

Last change on this file since 9216 was 9216, checked in by dennisw, 15 years ago

Redid some code with help of a java.sun.com article. Should make it easier to add the filters.

A lot of crappy/old code is still there, will clean up when done.

File size: 5.7 KB
Line 
1// Base stolen from http://java.sun.com/developer/technicalArticles/J2EE/AJAX/RealtimeValidation/
2function AjaxRequest(url, callback) {
3
4 var req = init();
5 req.onreadystatechange = processRequest;
6
7 function init() {
8 if (window.XMLHttpRequest) {
9 return new XMLHttpRequest();
10 } else if (window.ActiveXObject) {
11 return new ActiveXObject("Microsoft.XMLHTTP");
12 }
13 }
14
15 function processRequest () {
16 if (req.readyState == 4) {
17 if (req.status == 200) {
18 if (callback) callback(req.responseText);
19 }
20 }
21 }
22
23 this.doGet = function() {
24 req.open("GET", url, true);
25 req.send(null);
26 }
27}
28
29// Uses zoomlevel en mouseposition to call the nodelist.py view. View returns nodes in json format which is read and printed in document element.
30function getNodeList(zoomlevel, mousepos) {
31 var url = "/website/nodelist/" + zoomlevel + "," + mousepos.lat + "," + mousepos.lon;
32 var ajax = new AjaxRequest(url, setNodeList);
33 ajax.doGet();
34}
35
36
37function setNodeList(responseText) {
38 json=eval('(' + responseText + ')');
39 var list = 'test';
40 if (json.length>0){
41 list = 'Wireless Leiden nodes on mouseposition:<br /><b>';
42 for (var i=0; i<json.length; i++){
43 list += json[i].fields.ssid + '<br />';
44 }
45 list += '</b>';
46 }
47 else{
48 list = 'No nodes to display.';
49 }
50 document.getElementById('node_list').innerHTML=list;
51}
52
53
54
55/*
56
57The following code is old, broken and for reference purposes. Will be removed when new code is done.
58The above (new) code was used instead to make everything more easy when adding new pieces.
59
60// Get filter values from django view and serve as option list
61function getFilters(){
62 var filterlist;
63 var nodelist;
64 var userlist;
65 var datasetlist;
66
67 if (window.XMLHttpRequest){
68 nodelist=new XMLHttpRequest();
69 userlist=new XMLHttpRequest();
70 datasetlist=new XMLHttpRequest();
71 }
72 else{
73 nodelist=new ActiveXObject("Microsoft.XMLHTTP");
74 userlist=new ActiveXObject("Microsoft.XMLHTTP");
75 datasetlist=new ActiveXObject("Microsoft.XMLHTTP");
76 }
77
78 var list = '<form method="get" action="">';
79
80
81 // todo: Get new options if one option is selected; every user has different datasets, make sure when user 'John' is selected, you can only choose datasets who are his.
82
83 userlist.onreadystatechange=function(){
84 if (userlist.readyState==4 && userlist.status==200){
85 userlist=eval('(' + userlist.responseText + ')');
86
87 list += '<select id="user" style="width:104px"><option></option>';
88 for (var i=0; i<userlist.length; i++){
89 list += '<option>' + userlist[i].fields.naam + '</option>';
90 }
91 list += '</select> User<br />';
92
93 document.getElementById('filter_list').innerHTML=list;
94 }
95 }
96
97
98
99
100 nodelist.onreadystatechange=function(){
101 if (nodelist.readyState==4 && nodelist.status==200){
102 nodelist=eval('(' + nodelist.responseText + ')');
103
104 list += '<select id="wlnode" style="width:104px"><option></option>';
105 for (var i=0; i<nodelist.length; i++){
106 list += '<option>' + nodelist[i].fields.ssid + '</option>';
107 }
108 list += '</select> WLnode<br />';
109
110 document.getElementById('filter_list').innerHTML=list;
111 }
112 }
113
114
115 datasetlist.onreadystatechange=function(){
116 if (datasetlist.readyState==4 && datasetlist.status==200){
117 datasetlist=eval('(' + datasetlist.responseText + ')');
118
119 list += '<select id="dataset" style="width:104px"><option></option>';
120 for (var i=0; i<datasetlist.length; i++){
121 list += '<option>' + datasetlist[i].fields.naam + '</option>';
122 }
123 list += '</select> Dataset<br />';
124
125 document.getElementById('filter_list').innerHTML=list;
126 }
127 }
128
129
130 list += '<input type="text" id="enc" name="enc" size="10"/> Encrypted<br />';
131 list += '<input type="text" id="colour" name="colour" size="10"/> Colour<br />';
132 list += '<input type="text" id="lname" name="lname" size="10"/> Layername<br />';
133 list += '<input type="button" value="Add filter" onClick="addFilter()"/>';
134 list += '</form>';
135
136
137
138
139
140 nodelist.open("GET","/website/filters/1",true);
141 nodelist.send();
142 userlist.open("GET","/website/filters/2",true);
143 userlist.send();
144 datasetlist.open("GET","/website/filters/3",true);
145 datasetlist.send();
146}
147
148
149// Some value checks, create an overlay using these values and place it on the map.
150function addFilter(){
151
152 var user = '';
153 var dataset = '';
154 var wlnode = encodeURIComponent(document.getElementById("wlnode").value);
155 var enc ='';
156 var date = '';
157 var colour = encodeURIComponent(document.getElementById("colour").value);
158 var lname = encodeURIComponent(document.getElementById("lname").value);
159
160 if (user != ''){user='&accespoint__id='+user;}
161 if (dataset != ''){dataset='&meetrondje__naam='+dataset;}
162 if (wlnode != ''){wlnode='&accespoint__ssid='+wlnode;}
163 if (enc != ''){enc='&accespoint__encryptie='+enc;}
164 if (date != ''){date='&meetrondje__datum='+date;}
165 if (colour != ''){colour='colour='+colour;}
166 else {colour = '&colour='+Math.floor(Math.random()*256)+','+Math.floor(Math.random()*256)+','+Math.floor(Math.random()*256);}
167 if (lname != ''){lname=lname;}
168 else {lname = 'Custom Filter';}
169
170 var baseurl = "/website/tile/${z}/${x},${y}.png?";
171
172 OpenLayers.Layer.OSM.Overlay = OpenLayers.Class(OpenLayers.Layer.OSM, {
173 initialize: function(name, options) {
174 var url = [
175 baseurl + colour + user + dataset + wlnode + enc + date
176 ];
177 options = OpenLayers.Util.extend({ numZoomLevels: 21 }, options);
178 var newArguments = [name, url, options];
179 OpenLayers.Layer.OSM.prototype.initialize.apply(this, newArguments);
180 },
181 CLASS_NAME: "OpenLayers.Layer.Overlay"
182 });
183
184 filterlayer = new OpenLayers.Layer.OSM.Overlay(lname, {isBaseLayer: false, visibility: true});
185 map.addLayer(filterlayer);
186}
187*/
Note: See TracBrowser for help on using the repository browser.