diff --git a/client/ext/filesystem/filesystem.js b/client/ext/filesystem/filesystem.js index 8179a9a557b..583eda66934 100644 --- a/client/ext/filesystem/filesystem.js +++ b/client/ext/filesystem/filesystem.js @@ -291,8 +291,15 @@ return ext.register("ext/filesystem/filesystem", { return; var path = node.getAttribute("path"); - fs.readFile(path, function(data, state, extra) { - if (state != apf.SUCCESS) { + + var callback = function(data, state, extra) { + if (state == apf.OFFLINE) { + ide.addEventListener("afteronline", function(e) { + fs.readFile(path, callback); + ide.removeEventListener("afteronline", arguments.callee); + }); + } + else if (state != apf.SUCCESS) { if (extra.status == 404) { ide.dispatchEvent("filenotfound", { node : node, @@ -303,9 +310,11 @@ return ext.register("ext/filesystem/filesystem", { } else { doc.setValue(data); - ide.dispatchEvent("afteropenfile", {doc: doc, node: node}); + ide.dispatchEvent("afteropenfile", {doc: doc, node: node}); } - }); + }; + + fs.readFile(path, callback); }); ide.addEventListener("reload", function(e) { diff --git a/client/ext/openfiles/openfiles.js b/client/ext/openfiles/openfiles.js index f37d163e760..27b4665460b 100644 --- a/client/ext/openfiles/openfiles.js +++ b/client/ext/openfiles/openfiles.js @@ -16,7 +16,6 @@ return ext.register("ext/openfiles/openfiles", { alone : true, type : ext.GENERAL, markup : markup, - offline : false, hook : function(){ panels.register(this); diff --git a/client/style/images/sync.png b/client/style/images/sync.png new file mode 100644 index 00000000000..153d7b85bdc Binary files /dev/null and b/client/style/images/sync.png differ diff --git a/client/style/skins.xml b/client/style/skins.xml index ee2316dc82f..b39b5a6b57b 100644 --- a/client/style/skins.xml +++ b/client/style/skins.xml @@ -1,5 +1,30 @@ + + + + + +
+ +
+
+
+
+ + + + + +
+ +
+
+
+
\ No newline at end of file