|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /*
-
- Modules
-
- wn.module.$import('forms') will load wn.forms, if loaded will return nothing
-
- timestamps will be loaded with the window in wn.timestamps
-
- */
- wn.module = {
- //
- $import: function(module_name, callback) {
- 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) {
-
- 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) {
- // 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, 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])
- }
- }
- }
|