feature(rest) mv rest from dom

This commit is contained in:
coderaiser 2014-03-13 04:45:36 -04:00
parent dbaef834a7
commit 6a502612b8
3 changed files with 146 additions and 124 deletions

View file

@ -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',

View file

@ -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
}

129
lib/client/rest.js Normal file
View file

@ -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);