added filepicker

This commit is contained in:
coderaiser 2013-03-03 14:46:08 -05:00
parent e745435813
commit 7b6371fd50
6 changed files with 209 additions and 165 deletions

View file

@ -6,6 +6,7 @@
* Added ability create folders.
* Added filepicker.
2012.03.01, Version 0.1.9

View file

@ -34,6 +34,12 @@
"data": {
"id" : "00000000440E696F"
}
},
{
"name": "FilePicker",
"data": {
"key" : "AACq5fTfzRY2E_Rw_4kyaz"
}
}
]
}

View file

@ -110,9 +110,10 @@ CloudCmd._loadDir = function(pLink, pNeedRefresh){
* @param pEvent
*/
CloudCmd._editFileName = function(pParent){
var lA = DOM.getCurrentLink(pParent);
var lA = DOM.getCurrentLink(pParent),
lName = DOM.getCurrentName();
if (lA && lA.textContent !== '..'){
if ( lName !== '..' ){
lA.contentEditable = true;
KeyBinding && KeyBinding.unSet();
@ -413,7 +414,7 @@ CloudCmd._changeLinks = function(pPanelID){
lOnContextMenu_f = function(pEvent){
var lReturn_b = true;
KeyBinding.unSet();
KeyBinding && KeyBinding.unSet();
/* getting html element
* currentTarget - DOM event

View file

@ -60,9 +60,7 @@ var CloudCommander, Util, DOM, CloudFunc, $;
}
}
else if( Util.isString(pObjectName) ){
lObj.name = pObjectName;
lObj.callback = function(key, opt){
lObj = function(key, opt){
DOM.getCurrentData(function(pParams){
var lObject = CloudCmd[pObjectName];

View file

@ -0,0 +1,38 @@
var CloudCommander, Util, DOM, $, filepicker;
/* module for work with github */
(function(CloudCmd, Util, DOM){
'use strict';
var FilePicker = function(){
this.init = function(pCallBack){
Util.loadOnLoad([
Util.retExec(pCallBack),
load
]);
};
this.uploadFile = function(pCallBack){
filepicker.pick(function(FPFile){
console.log(FPFile.url);
Util.exec(pCallBack);
});
};
function load(pCallBack){
console.time('filepicker load');
var lHTTP = "https:"===document.location.protocol? "https:" : "http:";
DOM.jsload(lHTTP + '//api.filepicker.io/v1/filepicker.js', function(){
filepicker.setKey('AACq5fTfzRY2E_Rw_4kyaz');
DOM.Images.hideLoad();
console.timeEnd('filepicker loaded');
Util.exec(pCallBack);
});
}
};
CloudCmd.FilePicker = new FilePicker();
})(CloudCommander, Util, DOM);

View file

@ -1,159 +1,159 @@
var CloudCommander, Util, DOM, $, Github, cb;
/* module for work with github */
(function(CloudCmd, Util, DOM){
"use strict";
var Cache = DOM.Cache,
GithubLocal,
User,
GitHubStore = {};
/* temporary callback function for work with github */
cb = function (err, data){ Util.log(err || data);};
/* PRIVATE FUNCTIONS */
/**
* function loads github.js
*/
function load(pCallBack){
console.time('github load');
var lDir = '/lib/client/storage/github/',
lFiles = [
lDir + 'github.js',
lDir + 'lib/base64.js',
lDir + 'lib/underscore.js'
];
DOM.anyLoadInParallel(lFiles, function(){
console.timeEnd('github load');
DOM.Images.hideLoad();
Util.exec(pCallBack);
});
}
GitHubStore.autorize = function(pCallBack, pCode){
var lToken = Cache.get('token');
if(lToken){
GitHubStore.Login(lToken);
Util.exec(pCallBack);
}
else{
var lCode = pCode || window.location.search;
if (lCode || Util.isContainStr(lCode, '?code=') )
CloudCmd.getConfig(function(pConfig){
DOM.ajax({
type : 'put',
url : pConfig && pConfig.api_url + '/auth',
data : Util.removeStr(lCode, '?code='),
success : function(pData){
if(pData && pData.token){
lToken = pData.token;
GitHubStore.Login(lToken);
Cache.set('token', lToken);
Util.exec(pCallBack);
}
else
Util.log('Worning: token not getted...');
}
});
});
else{
var lUrl = '//' + window.location.host + '/auth/github';
DOM.openWindow(lUrl);
}
}
};
GitHubStore.getUserData = function(pCallBack){
User.show(null, function(pError, pData){
if(!pError){
var lName = pData.name;
Util.log('Hello ' + lName + ' :)!');
}
else
DOM.Cache.remove('token');
});
Util.exec(pCallBack);
};
/* PUBLIC FUNCTIONS */
GitHubStore.basicLogin = function(pUser, pPasswd){
GithubLocal = new Github({
username: pUser,
password: pPasswd,
auth : 'basic'
});
};
GitHubStore.Login = function(pToken){
Github = GithubLocal = new Github({
token : pToken,
auth : 'oauth'
});
User = GithubLocal.getUser();
};
/**
* function creates gist
*/
GitHubStore.uploadFile = function(pParams, pCallBack){
var lContent = pParams.data,
lName = pParams.name;
if(lContent){
DOM.Images.showLoad();
if(!lName)
lName = Util.getDate();
var lGist = GithubLocal.getGist(),
lFiles = {},
lHost = CloudCommander.HOST,
lOptions = {
description: 'Uplouded by Cloud Commander from ' + lHost,
public: true
};
lFiles[lName] ={
content: lContent
};
lOptions.files = lFiles;
lGist.create(lOptions, function(pError, pData){
DOM.Images.hideLoad();
Util.log(pError || pData);
Util.log(pData && pData.html_url);
Util.exec(pCallBack);
});
}
return lContent;
};
GitHubStore.init = function(pCallBack){
Util.loadOnLoad([
Util.retExec(pCallBack),
GitHubStore.getUserData,
GitHubStore.autorize,
load
]);
GitHubStore.callback = function(){
Util.loadOnLoad([
Util.retExec(pCallBack),
GitHubStore.getUserData,
]);
};
};
CloudCmd.GitHub = GitHubStore;
})(CloudCommander, Util, DOM);
var CloudCommander, Util, DOM, $, Github, cb;
/* module for work with github */
(function(CloudCmd, Util, DOM){
'use strict';
var Cache = DOM.Cache,
GithubLocal,
User,
GitHubStore = {};
/* temporary callback function for work with github */
cb = function (err, data){ Util.log(err || data);};
/* PRIVATE FUNCTIONS */
/**
* function loads github.js
*/
function load(pCallBack){
console.time('github load');
var lDir = '/lib/client/storage/github/',
lFiles = [
lDir + 'github.js',
lDir + 'lib/base64.js',
lDir + 'lib/underscore.js'
];
DOM.anyLoadInParallel(lFiles, function(){
console.timeEnd('github load');
DOM.Images.hideLoad();
Util.exec(pCallBack);
});
}
GitHubStore.autorize = function(pCallBack, pCode){
var lToken = Cache.get('token');
if(lToken){
GitHubStore.Login(lToken);
Util.exec(pCallBack);
}
else{
var lCode = pCode || window.location.search;
if (lCode || Util.isContainStr(lCode, '?code=') )
CloudCmd.getConfig(function(pConfig){
DOM.ajax({
type : 'put',
url : pConfig && pConfig.api_url + '/auth',
data : Util.removeStr(lCode, '?code='),
success : function(pData){
if(pData && pData.token){
lToken = pData.token;
GitHubStore.Login(lToken);
Cache.set('token', lToken);
Util.exec(pCallBack);
}
else
Util.log('Worning: token not getted...');
}
});
});
else{
var lUrl = '//' + window.location.host + '/auth/github';
DOM.openWindow(lUrl);
}
}
};
GitHubStore.getUserData = function(pCallBack){
User.show(null, function(pError, pData){
if(!pError){
var lName = pData.name;
Util.log('Hello ' + lName + ' :)!');
}
else
DOM.Cache.remove('token');
});
Util.exec(pCallBack);
};
/* PUBLIC FUNCTIONS */
GitHubStore.basicLogin = function(pUser, pPasswd){
GithubLocal = new Github({
username: pUser,
password: pPasswd,
auth : 'basic'
});
};
GitHubStore.Login = function(pToken){
Github = GithubLocal = new Github({
token : pToken,
auth : 'oauth'
});
User = GithubLocal.getUser();
};
/**
* function creates gist
*/
GitHubStore.uploadFile = function(pParams, pCallBack){
var lContent = pParams.data,
lName = pParams.name;
if(lContent){
DOM.Images.showLoad();
if(!lName)
lName = Util.getDate();
var lGist = GithubLocal.getGist(),
lFiles = {},
lHost = CloudCommander.HOST,
lOptions = {
description: 'Uplouded by Cloud Commander from ' + lHost,
public: true
};
lFiles[lName] ={
content: lContent
};
lOptions.files = lFiles;
lGist.create(lOptions, function(pError, pData){
DOM.Images.hideLoad();
Util.log(pError || pData);
Util.log(pData && pData.html_url);
Util.exec(pCallBack);
});
}
return lContent;
};
GitHubStore.init = function(pCallBack){
Util.loadOnLoad([
Util.retExec(pCallBack),
GitHubStore.getUserData,
GitHubStore.autorize,
load
]);
GitHubStore.callback = function(){
Util.loadOnLoad([
Util.retExec(pCallBack),
GitHubStore.getUserData,
]);
};
};
CloudCmd.GitHub = GitHubStore;
})(CloudCommander, Util, DOM);