From 6a502612b8f8da2c8ece3fb81219b63436b539c1 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 13 Mar 2014 04:45:36 -0400 Subject: [PATCH] feature(rest) mv rest from dom --- html/fs/index.html | 1 + lib/client/dom.js | 140 ++++++--------------------------------------- lib/client/rest.js | 129 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 146 insertions(+), 124 deletions(-) create mode 100644 lib/client/rest.js 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);