diff --git a/html/auth.html b/html/auth.html
index 5390efe7..aa23df2b 100644
--- a/html/auth.html
+++ b/html/auth.html
@@ -7,8 +7,8 @@
"use strict";
if(window.opener){
- var lGitHub = window.opener.CloudCommander.Github;
- lGitHub.init(lGitHub.getUserData, window.location.search);
+ var lGitHub = window.opener.CloudCommander.GitHub;
+ lGitHub.autorize(lGitHub.callback, window.location.search);
window.close();
}
diff --git a/lib/client/dom.js b/lib/client/dom.js
index c27351c6..ce665c6a 100644
--- a/lib/client/dom.js
+++ b/lib/client/dom.js
@@ -1084,7 +1084,9 @@ var CloudCommander, Util, DOM, CloudFunc;
',personalbar=0,toolbar=0' +
',scrollbars=1,resizable=1';
- window.open(pUrl, 'Cloud Commander Auth', lOptions);
+ var lWind = window.open(pUrl, 'Cloud Commander Auth', lOptions);
+ if(!lWind)
+ Util.log('Pupup blocked!');
};
/**
diff --git a/lib/client/menu.js b/lib/client/menu.js
index b1ee40ba..62fdd3c4 100644
--- a/lib/client/menu.js
+++ b/lib/client/menu.js
@@ -57,26 +57,53 @@ var CloudCommander, Util, DOM, $;
*/
function getUploadToItem(pObjectName){
var lObj = {};
- lObj.name = pObjectName;
-
- lObj.callback = function(key, opt){
- getCurrentData(function(pParams){
- var lObject = cloudcmd[pObjectName];
-
- if('init' in lObject)
- lObject.uploadFile(pParams);
- else
- Util.exec(lObject, function(){
- cloudcmd[pObjectName].uploadFile(pParams);
- });
- });
-
- Util.log('Uploading to ' + pObjectName+ '...');
- };
+ if( Util.isArray(pObjectName) ){
+
+ var n = pObjectName.length;
+ for(var i = 0; i < n; i++){
+ var lStr = pObjectName[i];
+ lObj[lStr] = getUploadToItem( lStr );
+ }
+ }
+ else if( Util.isString(pObjectName) ){
+ lObj.name = pObjectName;
+
+ lObj.callback = function(key, opt){
+ getCurrentData(function(pParams){
+ var lObject = cloudcmd[pObjectName];
+
+ if('init' in lObject)
+ lObject.uploadFile(pParams);
+ else
+ Util.exec(lObject, function(){
+ cloudcmd[pObjectName].uploadFile(pParams);
+ });
+ });
+
+ Util.log('Uploading to ' + pObjectName+ '...');
+ };
+ }
return lObj;
}
+ /**
+ * get menu item
+ */
+ function getItem(pName, pCallBack){
+ var lRet = {
+ name : pName
+ };
+
+ if(Util.isFunction(pCallBack) )
+ lRet.callback = pCallBack;
+
+ else if (Util.isObject(pCallBack))
+ lRet.items = pCallBack;
+
+ return lRet;
+ }
+
/**
* function return configureation for menu
*/
@@ -94,68 +121,40 @@ var CloudCommander, Util, DOM, $;
// define the elements of the menu
items: {
- view: {
- name : 'View',
- callback : function(key, opt){
- showEditor(true);
- }
- },
-
- edit: {
- name : 'Edit',
- callback : function(key, opt){
- showEditor();
- }
- },
-
- delete: {
- name: 'Delete',
- callback: function(key, opt){
- DOM.promptRemoveCurrent();
- }
- },
-
- upload: {
- name: 'Upload to',
- items: {
- 'GitHub' : getUploadToItem('GitHub'),
- 'GDrive' : getUploadToItem('GDrive'),
- 'DropBox' : getUploadToItem('DropBox')
- }
- },
-
- download: {
- name: 'Download',
- callback: function(key, opt){
- DOM.Images.showLoad();
+ 'View' : getItem( 'View', Util.retExec(showEditor, true) ),
+ 'Edit' : getItem( 'Edit', Util.retExec(showEditor) ),
+ 'Delete' : getItem( 'Delete', Util.retExec(DOM.promptRemoveCurrent) ),
+ 'Upload to' : getItem( 'Upload to',
+ getUploadToItem( ['GitHub', 'GDrive', 'DropBox'] ) ),
+ 'Download' : getItem( 'Download', function(key, opt){
+ DOM.Images.showLoad();
+
+ var lPath = DOM.getCurrentPath(),
+ lId = DOM.getIdBySrc(lPath);
+
+ Util.log('downloading file ' + lPath +'...');
+
+ lPath = lPath + '?download';
+
+ if(!DOM.getById(lId)){
+ var lDownload = DOM.anyload({
+ name : 'iframe',
+ async : false,
+ className : 'hidden',
+ src : lPath,
+ func : Util.retFunc(DOM.Images.hideLoad)
+ });
- var lPath = DOM.getCurrentPath(),
- lId = DOM.getIdBySrc(lPath);
-
- Util.log('downloading file ' + lPath +'...');
-
- lPath = lPath + '?download';
-
- if(!DOM.getById(lId)){
- var lDownload = DOM.anyload({
- name : 'iframe',
- async : false,
- className : 'hidden',
- src : lPath,
- func : Util.retFunc(DOM.Images.hideLoad)
- });
-
- DOM.Images.hideLoad();
- setTimeout(function() {
- document.body.removeChild(lDownload);
- }, 10000);
- }
- else
- DOM.Images.showError({
- responseText: 'Error: You trying to' +
- 'download same file to often'});
+ DOM.Images.hideLoad();
+ setTimeout(function() {
+ document.body.removeChild(lDownload);
+ }, 10000);
}
- }
+ else
+ DOM.Images.showError({
+ responseText: 'Error: You trying to' +
+ 'download same file to often'});
+ })
}
};
}
diff --git a/lib/client/storage/_github.js b/lib/client/storage/_github.js
index 9bd5292c..47e7e24a 100644
--- a/lib/client/storage/_github.js
+++ b/lib/client/storage/_github.js
@@ -13,7 +13,7 @@ var CloudCommander, Util, DOM, $, Github, cb;
GitHub_ID,
GithubLocal,
User,
- GithubStore = {};
+ GitHubStore = {};
/* temporary callback function for work with github */
cb = function (err, data){ console.log(err || data);};
@@ -52,10 +52,10 @@ var CloudCommander, Util, DOM, $, Github, cb;
}
- GithubStore.init = function(pCallBack, pCode){
+ GitHubStore.autorize = function(pCallBack, pCode){
var lToken = Cache.get('token');
if(lToken){
- GithubStore.Login(lToken);
+ GitHubStore.Login(lToken);
Util.exec(pCallBack);
}
else{
@@ -67,7 +67,7 @@ var CloudCommander, Util, DOM, $, Github, cb;
if(pData && pData.token){
lToken = pData.token;
- GithubStore.Login(lToken);
+ GitHubStore.Login(lToken);
Cache.set('token', lToken);
Util.exec(pCallBack);
}
@@ -90,7 +90,7 @@ var CloudCommander, Util, DOM, $, Github, cb;
}
};
- GithubStore.getUserData = function(pCallBack){
+ GitHubStore.getUserData = function(pCallBack){
var lName,
lShowUserInfo = function(pError, pData){
@@ -109,7 +109,7 @@ var CloudCommander, Util, DOM, $, Github, cb;
}
/* PUBLIC FUNCTIONS */
- GithubStore.basicLogin = function(pUser, pPasswd){
+ GitHubStore.basicLogin = function(pUser, pPasswd){
GithubLocal = new Github({
username: pUser,
password: pPasswd,
@@ -117,7 +117,7 @@ var CloudCommander, Util, DOM, $, Github, cb;
});
};
- GithubStore.Login = function(pToken){
+ GitHubStore.Login = function(pToken){
Github = GithubLocal = new Github({
token : pToken,
auth : 'oauth'
@@ -129,7 +129,7 @@ var CloudCommander, Util, DOM, $, Github, cb;
/**
* function creates gist
*/
- cloudcmd.GitHub.uploadFile = function(pParams, pCallBack){
+ GitHubStore.uploadFile = function(pParams, pCallBack){
var lContent = pParams.data,
lName = pParams.name;
@@ -165,17 +165,22 @@ var CloudCommander, Util, DOM, $, Github, cb;
return lContent;
};
- cloudcmd.GitHub.init = function(pCallBack){
+ GitHubStore.init = function(pCallBack){
Util.loadOnLoad([
Util.retExec(pCallBack),
- GithubStore.getUserData,
- GithubStore.init,
+ GitHubStore.getUserData,
+ GitHubStore.autorize,
setConfig,
load
]);
- cloudcmd.GitHub.init = null;
+ GitHubStore.callback = function(){
+ Util.loadOnLoad([
+ Util.retExec(pCallBack),
+ GitHubStore.getUserData,
+ ]);
+ };
};
- cloudcmd.Github = GithubStore;
+ cloudcmd.GitHub = GitHubStore;
})();