mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 10:45:47 +00:00
111 lines
3.3 KiB
JavaScript
111 lines
3.3 KiB
JavaScript
var CloudCommander, Util, DOM, Dropbox, cb, Client;
|
|
/* module for work with github */
|
|
|
|
(function(CloudCmd, Util, DOM){
|
|
'use strict';
|
|
|
|
var DropBoxStore = {};
|
|
|
|
/* temporary callback function for work with github */
|
|
cb = function (err, data){ Util.log(err || data);};
|
|
|
|
/* PRIVATE FUNCTIONS */
|
|
|
|
/**
|
|
* function loads dropbox.js
|
|
*/
|
|
function load(pCallBack){
|
|
console.time('dropbox load');
|
|
|
|
var lSrc = 'http://cdnjs.cloudflare.com/ajax/libs/dropbox.js/0.8.1/dropbox.min.js',
|
|
lLocal = CloudCmd.LIBDIRCLIENT + 'storage/dropbox/lib/dropbox.min.js',
|
|
lOnload = function(){
|
|
console.timeEnd('dropbox load');
|
|
DOM.Images.hideLoad();
|
|
|
|
Util.exec(pCallBack);
|
|
};
|
|
|
|
DOM.jsload(lSrc, {
|
|
onload : lOnload,
|
|
error : DOM.retJSLoad(lLocal, lOnload)
|
|
});
|
|
|
|
}
|
|
|
|
function getUserData(pCallBack){
|
|
Client.getUserInfo(function(pError, pData){
|
|
var lHello = 'Hello ' + pData.name + ' :)!',
|
|
lMsg = pError ? pError : lHello;
|
|
|
|
Util.log(lMsg);
|
|
});
|
|
|
|
Util.exec(pCallBack);
|
|
}
|
|
/**
|
|
* function logins on dropbox
|
|
*
|
|
* @param pData = {key, secret}
|
|
*/
|
|
DropBoxStore.login = function(pCallBack){
|
|
CloudCmd.getModules(function(pModules){
|
|
var lStorage = Util.findObjByNameInArr(pModules, 'storage'),
|
|
lDropBox = Util.findObjByNameInArr(lStorage.data, 'DropBox'),
|
|
lDropBoxKey = lDropBox && lDropBox.data.encodedKey;
|
|
|
|
Client = new Dropbox.Client({
|
|
key: lDropBoxKey
|
|
});
|
|
|
|
//Client.authDriver(new Dropbox.Drivers.Redirect({rememberUser: true}));
|
|
|
|
var lURL = CloudCmd.HOST + '/html/auth/dropbox.html';
|
|
Client.authDriver(new Dropbox.Drivers.Popup({
|
|
receiverUrl: lURL, noFragment: true
|
|
}));
|
|
|
|
Client.authenticate(function(pError, pClient) {
|
|
Util.log(pError);
|
|
Client = pClient;
|
|
Util.exec(pCallBack);
|
|
});
|
|
|
|
});
|
|
|
|
};
|
|
/**
|
|
* upload file to DropBox
|
|
*/
|
|
DropBoxStore.uploadFile = function(pParams, pCallBack){
|
|
var lContent = pParams.data,
|
|
lName = pParams.name;
|
|
|
|
if(lContent){
|
|
DOM.Images.showLoad();
|
|
if(!lName)
|
|
lName = Util.getDate();
|
|
|
|
Client.writeFile(lName, lContent, function(pError, pData){
|
|
DOM.Images.hideLoad();
|
|
Util.log(pError || pData);
|
|
Util.exec(pCallBack);
|
|
});
|
|
}
|
|
|
|
return lContent;
|
|
};
|
|
|
|
DropBoxStore.init = function(pCallBack){
|
|
Util.loadOnLoad([
|
|
Util.retExec(pCallBack),
|
|
getUserData,
|
|
DropBoxStore.login,
|
|
load
|
|
]);
|
|
|
|
CloudCmd.DropBox.init = null;
|
|
};
|
|
|
|
CloudCmd.DropBox = DropBoxStore;
|
|
})(CloudCommander, Util, DOM);
|