diff --git a/js/build.json b/js/build.json index ee822313cd..b3ba217ecf 100644 --- a/js/build.json +++ b/js/build.json @@ -2,6 +2,7 @@ "core.min.js": [ "wn/provide.js", "wn/xmlhttp.js", + "wn/versions.js", "wn/assets.js", "wn/require.js", "wn/dom.js", diff --git a/js/core.js b/js/core.js index 71c08ceb57..55a96ed6b0 100644 --- a/js/core.js +++ b/js/core.js @@ -1,3 +1,5 @@ +// find files changed since last version +wn.versions.check(); // load all critical libraries wn.require("lib/js/lib/jquery.min.js"); diff --git a/js/core.min.js b/js/core.min.js index 76a2102c76..5eaed40bb7 100644 --- a/js/core.min.js +++ b/js/core.min.js @@ -5,9 +5,14 @@ parent=parent[n];}} wn.provide('wn.settings');wn.provide('wn.ui');wn.xmlhttp={request:function(){if(window.XMLHttpRequest) return new XMLHttpRequest();else if(window.ActiveXObject) return new ActiveXObject("MsXml2.XmlHttp");},complete:function(req,callback,url){if(req.status==200||req.status==304){callback(req.responseText);}else{alert(url+' request error: '+req.statusText+' ('+req.status+')');}},get:function(url,callback,args,async){if(async===null)async=true;var req=wn.xmlhttp.request();req.onreadystatechange=function(){if(req.readyState==4){wn.xmlhttp.complete(req,callback,url)}} -req.open('GET',url,async);req.send(args?url+'?'+args:null);if(!async){wn.xmlhttp.complete(req,callback,url)}}} -wn.assets={executed_:{},exists:function(src){if('localStorage'in window&&localStorage.getItem(src)&&localStorage.getItem('[ts] '+src)==asset_timestamps_[src]) -return true},add:function(src,txt){if('localStorage'in window){localStorage.setItem(src,txt);localStorage.setItem('[ts] '+src,asset_timestamps_[src]);}},get:function(src){return localStorage.getItem(src);},extn:function(src){return src.split('.').slice(-1)[0];},html_src:function(src){if(src.indexOf('/')!=-1){var t=src.split('/').slice(0,-1);t.push('src');t=t.join('/')+'/'+a.split('/').slice(-1)[0];}else{var t='src/'+src;} +var u=args?(url+'?'+args):url;req.open('GET',u,async);req.send(null);if(!async){wn.xmlhttp.complete(req,callback,url)}}} +wn.versions={is_latest:function(){if(window._version_number==(localStorage?localStorage['_version_number']:null)){return true;} +return false;},get_diff:function(){if(!localStorage)return;wn.xmlhttp.get('index.cgi',function(txt){r=JSON.parse(txt);if(r.exc){alert(r.exc);} +wn.versions.set(r.message);},'cmd=get_diff&version_number='+localStorage['_version_number'],false);},set:function(diff){for(var i=0;i1: + print 'usage: wnf add path/to/file' + return + + vc.repo.add(sys.argv[2]) + + if cmd=='commit': + if len(sys.argv>2) and sys.argv[2]=='-a': + vc.add_all() + + vc.repo.commit() + + if cmd=='diff': + vc.repo.uncommitted() + + if cmd=='merge': + vc.setup_master() + if sys.argv[2]=='local': + vc.merge(vc.repo, vc.master) + elif sys.argv[2]=='master': + vc.merge(vc.master, vc.repo) + else: + print "usage: wnf merge local|master" + print "help: parameter (local or master) is the source" + + if cmd=='setup': + vc.repo.setup() + + vc.close() + +if __name__=='__main__': + run() \ No newline at end of file