|
|
@@ -13,37 +13,51 @@ wn.module = { |
|
|
|
if(wn[module_name]) return; |
|
|
|
wn.module.load(module_name, callback); |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
load: function(module_name, callback) { |
|
|
|
// if loaded in local and recent |
|
|
|
alert('checking in local') |
|
|
|
if(wn.module.in_local(module_name)) { |
|
|
|
if(callback) callback(); |
|
|
|
return; |
|
|
|
} |
|
|
|
alert('loading from server') |
|
|
|
wn.module.get_from_server(module_name,callback ) |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
get_from_server : function(module_name, callback) { |
|
|
|
|
|
|
|
var req = $.ajax({ |
|
|
|
url: 'js/' + module_name.replace(/./g, "/"), |
|
|
|
datatype:'script', |
|
|
|
success: wn.module.accept |
|
|
|
}); |
|
|
|
req.module_name = module_name; |
|
|
|
req.callback = callback; |
|
|
|
req = $.ajax({ |
|
|
|
url: 'cgi-bin/getjsfile.cgi?module=' + module_name, // TODO use getjsfile.cgi, replace not reqd |
|
|
|
datatype:'text', |
|
|
|
success: [wn.module.accept,callback] |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
in_local: function(module_name) { |
|
|
|
var m = localStorage.getItem(module_name); |
|
|
|
if(m && m.timestamp == wn.timestamps[module_name]) { |
|
|
|
// check if module in local and recent |
|
|
|
var m = JSON.parse(localStorage.getItem(module_name)); |
|
|
|
alert('in_local' + m.timestamp) |
|
|
|
if( m && m.timestamp == wn.timestamps[module_name]) { |
|
|
|
eval(m.code); |
|
|
|
return true; |
|
|
|
} |
|
|
|
return false |
|
|
|
}, |
|
|
|
|
|
|
|
accept: function(data, status, req) { |
|
|
|
var m = { |
|
|
|
timestamp: wn.timestamps[req.module_name], |
|
|
|
code: data, |
|
|
|
accept: function(data, status, jqXHR) { |
|
|
|
|
|
|
|
data = JSON.parse(data) |
|
|
|
for (var codename in data) |
|
|
|
{ |
|
|
|
localStorage.setItem(codename, JSON.stringify({ |
|
|
|
|
|
|
|
timestamp : wn.timestamps[codename], |
|
|
|
code : data[codename] |
|
|
|
|
|
|
|
})) |
|
|
|
eval(data[codename]) |
|
|
|
} |
|
|
|
localStorage.setItem(req.module_name, m); |
|
|
|
if(req.callback) req.callback(); |
|
|
|
} |
|
|
|
} |