diff --git a/html/fs/index.html b/html/fs/index.html
index f4c4446d..afb13859 100644
--- a/html/fs/index.html
+++ b/html/fs/index.html
@@ -68,6 +68,7 @@
lib + 'util.js',
lib + 'cloudfunc.js',
client + 'dom.js',
+ client + 'rest.js',
client + 'loader.js',
client + 'notify.js',
client + 'storage.js',
diff --git a/lib/client/dom.js b/lib/client/dom.js
index 3cf262b0..dd234bc9 100644
--- a/lib/client/dom.js
+++ b/lib/client/dom.js
@@ -132,121 +132,6 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
};
},
- RESTfulProto = function() {
- this.delete = function(url, data, callback, query) {
- sendRequest({
- method : 'DELETE',
- url : CloudFunc.FS + url + (query || ''),
- data : data,
- callback : callback,
- imgPosition : { top: !!data }
- });
- };
-
- this.save = function(url, data, callback, query) {
- sendRequest({
- method : 'PUT',
- url : CloudFunc.FS + url + (query || ''),
- data : data,
- callback : callback,
- imgPosition : { top: true }
- });
- };
-
- this.read = function(url, callback, query) {
- sendRequest({
- method : 'GET',
- url : CloudFunc.FS + url + (query || ''),
- callback : callback
- });
- };
-
- this.cp = function(data, callback) {
- sendRequest({
- method : 'PUT',
- url : '/cp',
- data : data,
- callback : callback
- });
- };
-
- this.zip = function(data, callback) {
- sendRequest({
- method : 'PUT',
- url : '/zip',
- data : data,
- callback : callback
- });
- };
-
- this.mv = function(data, callback) {
- sendRequest({
- method : 'PUT',
- url : '/mv',
- data : data,
- callback : callback
- });
- };
-
- this.config = function(data, callback) {
- sendRequest({
- method : 'PUT',
- url : '/config',
- data : data,
- callback : callback,
- imgPosition : { top: true }
- });
- };
-
- this.markdown = function(data, callback) {
- sendRequest({
- method : 'PUT',
- url : '/markdown',
- data : data,
- callback : callback,
- imgPosition : { top: true },
- doNotLog : true
- });
- };
-
- function sendRequest(params) {
- var p = params;
-
- Images.showLoad(p.imgPosition);
-
- CloudCmd.getConfig(function(config) {
- var data,
- isString = Util.isString(p.data),
- isArrayBuffer = Util.isArrayBuffer(p.data);
-
- if (Util.isString(p.url))
- p.url = decodeURI(p.url);
-
- if (p.data && !isString && !isArrayBuffer)
- data = Util.stringifyJSON(p.data);
- else
- data = p.data;
-
- p.url = config && config.apiURL + p.url;
-
- DOM.ajax({
- method : p.method,
- url : p.url,
- data : data,
- error : Images.showError,
- success : function(data) {
- Images.hideLoad();
-
- if (!p.doNotLog)
- Util.log(data);
-
- Util.exec(p.callback, data);
- }
- });
- });
- }
- },
-
DOMTreeProto = function() {
var DOM = this;
/**
@@ -675,7 +560,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
};
function promptNew(pTypeName, pType) {
- var lName = Cmd.getCurrentName(),
+ var RESTful = DOM.RESTful,
+ lName = Cmd.getCurrentName(),
lDir = Cmd.getCurrentDirPath(),
lMsg = 'New ' + pTypeName || 'File',
lType = Util.isString(pType) ? pType : '';
@@ -694,7 +580,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
*
*/
this.zipFile = function() {
- var lName = Cmd.getCurrentName(),
+ var RESTful = DOM.RESTful,
+ lName = Cmd.getCurrentName(),
lDir = Cmd.getCurrentDirPath(),
lPath = lDir + lName,
lFiles = {
@@ -713,6 +600,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
*/
this.promptDeleteSelected = function(current) {
var ret, type, isDir, path, query, msg,
+ RESTful = DOM.RESTful,
name = '',
msgAsk = 'Do you really want to delete the ',
msgSel = 'selected ',
@@ -886,6 +774,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
*/
this.loadCurrentSize = function(callback, currentFile) {
var lRet,
+ RESTful = DOM.RESTful,
lCurrent = currentFile || this.getCurrentFile(),
lLink = this.getCurrentPath(lCurrent),
lName = this.getCurrentName(lCurrent);
@@ -906,6 +795,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
*/
this.loadCurrentHash = function(callback, currentFile) {
var lRet,
+ RESTful = DOM.RESTful,
lCurrent = currentFile || this.getCurrentFile(),
lLink = this.getCurrentPath(lCurrent),
lName = this.getCurrentName(lCurrent);
@@ -922,6 +812,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
*/
this.loadCurrentTime = function(callback, currentFile) {
var lRet,
+ RESTful = DOM.RESTful,
lCurrent = currentFile || this.getCurrentFile(),
lLink = this.getCurrentPath(lCurrent),
lName = this.getCurrentName(lCurrent);
@@ -1052,7 +943,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
* @currentFile
*/
this.saveCurrentData = function(url, data, callback, query) {
- RESTful.save(url, data, function() {
+ DOM.RESTful.save(url, data, function() {
DOM.saveDataToStorage(url, data);
}, query);
};
@@ -1621,7 +1512,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
* @currentFile
*/
this.renameCurrent = function(current) {
- var from, to, dirPath, cmp, files;
+ var from, to, dirPath, cmp, files,
+ RESTful = DOM.RESTful;
if (!Cmd.isCurrentFile(current))
current = Cmd.getCurrentFile();
@@ -1654,7 +1546,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
* @currentFile
*/
this.moveCurrent = function(current) {
- var name, from, to, cmp, files;
+ var name, from, to, cmp, files,
+ RESTful = DOM.RESTful;
if (!Cmd.isCurrentFile(current))
current = Cmd.getCurrentFile();
@@ -1693,7 +1586,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
* @param current
*/
this.copyCurrent = function(current) {
- var name, from, to, files, cmp;
+ var name, from, to, files, cmp,
+ RESTful = DOM.RESTful;
if (!Cmd.isCurrentFile(current))
current = Cmd.getCurrentFile();
@@ -1805,8 +1699,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
DOMTree = Util.extendProto(DOMTreeProto),
Events = Util.extendProto(EventsProto),
- Images = Util.extendProto(ImagesProto),
- RESTful = Util.extendProto(RESTfulProto);
+ Images = Util.extendProto(ImagesProto);
DOMProto = DOMFunc.prototype = new CmdProto();
@@ -1815,7 +1708,6 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
Util.extend(DOMProto, [
DOMTree, {
Events : Events,
- RESTful : RESTful,
Images : Images,
Dialog : Dialog
}
diff --git a/lib/client/rest.js b/lib/client/rest.js
new file mode 100644
index 00000000..93f69c45
--- /dev/null
+++ b/lib/client/rest.js
@@ -0,0 +1,129 @@
+var Util, DOM, CloudCmd;
+
+(function(Util, DOM) {
+ 'use strict';
+
+ var RESTful = Util.extendProto(RESTfulProto),
+ DOMProto = Object.getPrototypeOf(DOM);
+
+ Util.extend(DOMProto, {
+ RESTful: RESTful
+ });
+
+ function RESTfulProto() {
+ var Images = DOM.Images;
+
+ this.delete = function(url, data, callback, query) {
+ sendRequest({
+ method : 'DELETE',
+ url : CloudFunc.FS + url + (query || ''),
+ data : data,
+ callback : callback,
+ imgPosition : { top: !!data }
+ });
+ };
+
+ this.save = function(url, data, callback, query) {
+ sendRequest({
+ method : 'PUT',
+ url : CloudFunc.FS + url + (query || ''),
+ data : data,
+ callback : callback,
+ imgPosition : { top: true }
+ });
+ };
+
+ this.read = function(url, callback, query) {
+ sendRequest({
+ method : 'GET',
+ url : CloudFunc.FS + url + (query || ''),
+ callback : callback
+ });
+ };
+
+ this.cp = function(data, callback) {
+ sendRequest({
+ method : 'PUT',
+ url : '/cp',
+ data : data,
+ callback : callback
+ });
+ };
+
+ this.zip = function(data, callback) {
+ sendRequest({
+ method : 'PUT',
+ url : '/zip',
+ data : data,
+ callback : callback
+ });
+ };
+
+ this.mv = function(data, callback) {
+ sendRequest({
+ method : 'PUT',
+ url : '/mv',
+ data : data,
+ callback : callback
+ });
+ };
+
+ this.config = function(data, callback) {
+ sendRequest({
+ method : 'PUT',
+ url : '/config',
+ data : data,
+ callback : callback,
+ imgPosition : { top: true }
+ });
+ };
+
+ this.markdown = function(data, callback) {
+ sendRequest({
+ method : 'PUT',
+ url : '/markdown',
+ data : data,
+ callback : callback,
+ imgPosition : { top: true },
+ doNotLog : true
+ });
+ };
+
+ function sendRequest(params) {
+ var p = params;
+
+ Images.showLoad(p.imgPosition);
+
+ CloudCmd.getConfig(function(config) {
+ var data,
+ isString = Util.isString(p.data),
+ isArrayBuffer = Util.isArrayBuffer(p.data);
+
+ if (Util.isString(p.url))
+ p.url = decodeURI(p.url);
+
+ if (p.data && !isString && !isArrayBuffer)
+ data = Util.stringifyJSON(p.data);
+ else
+ data = p.data;
+
+ p.url = config && config.apiURL + p.url;
+
+ DOM.ajax({
+ method : p.method,
+ url : p.url,
+ data : data,
+ error : Images.showError,
+ success : function(data) {
+ Images.hideLoad();
+
+ if (!p.doNotLog)
+ Util.log(data);
+
+ Util.exec(p.callback, data);
+ }
+ });
+ });
+ }
+ }
+})(Util, DOM);