mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 10:45:47 +00:00
added ability create folders
This commit is contained in:
parent
80e559c9e4
commit
07d93be012
8 changed files with 130 additions and 130 deletions
|
|
@ -1,3 +1,10 @@
|
|||
2012.03.*, Version 0.2.0
|
||||
|
||||
* Added alerting about errors.
|
||||
|
||||
* Removed addListener for DOM.
|
||||
|
||||
|
||||
2012.03.01, Version 0.1.9
|
||||
|
||||
* Changed the way of getting github application id
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
"api_url" : "/api/v1",
|
||||
"appcache" : false,
|
||||
"minification" : {
|
||||
"js" : true,
|
||||
"js" : false,
|
||||
"css" : true,
|
||||
"html" : true,
|
||||
"img" : true
|
||||
},
|
||||
"cache" : true,
|
||||
"cache" : false,
|
||||
"logs" : false,
|
||||
"show_keys_panel" : true,
|
||||
"server" : true,
|
||||
|
|
|
|||
|
|
@ -286,7 +286,7 @@ function initKeysPanel(pCallBack){
|
|||
CloudCmd.Editor, /* f4 */
|
||||
null, /* f5 */
|
||||
null, /* f6 */
|
||||
null, /* f7 */
|
||||
DOM.promptNewFolder, /* f7 */
|
||||
DOM.promptDeleteCurrent,/* f8 */
|
||||
];
|
||||
|
||||
|
|
@ -470,49 +470,52 @@ CloudCmd._changeLinks = function(pPanelID){
|
|||
DOM.setCurrentFile(pElement);
|
||||
},
|
||||
|
||||
lUrl = CloudCmd.HOST;
|
||||
lUrl = CloudCmd.HOST,
|
||||
lLoadDirOnce = CloudCmd._loadDir();
|
||||
|
||||
var lLoadDirOnce = CloudCmd._loadDir(),
|
||||
/* номер ссылки иконки обновления страницы */
|
||||
lREFRESHICON = 0;
|
||||
for(var i = 0, n = a.length; i < n ; i++){
|
||||
/* убираем адрес хоста*/
|
||||
var ai = a[i],
|
||||
link = ai.href.replace(lUrl, ''),
|
||||
lNEADREFRESH = i === lREFRESHICON,
|
||||
lLoadDir = CloudCmd._loadDir(link, lNEADREFRESH);
|
||||
(function(a){
|
||||
var a0 = a[0],
|
||||
lParent = a0.parentElement,
|
||||
lNEEDREFRESH = true,
|
||||
lLink = Util.removeStr(a0.href, lUrl);
|
||||
|
||||
CloudCmd.refresh = CloudCmd._loadDir(lLink, lNEEDREFRESH);
|
||||
|
||||
/* ставим загрузку гифа на клик*/
|
||||
if(lNEADREFRESH)
|
||||
DOM.addClickListener( lLoadDir, ai.parentElement );
|
||||
DOM.addClickListener( CloudCmd.refresh, lParent );
|
||||
})(a);
|
||||
|
||||
/* start from 1 cous 0 is a path and it's setted up */
|
||||
for(var i = 1, n = a.length; i < n ; i++){
|
||||
/* убираем адрес хоста*/
|
||||
var ai = a[i],
|
||||
lLink = Util.removeStr(ai.href, lUrl),
|
||||
lLoadDir = CloudCmd._loadDir(lLink),
|
||||
/* устанавливаем обработчики на строку
|
||||
* на двойное нажатие на левую кнопку мышки */
|
||||
lLi = ai.parentElement.parentElement;
|
||||
|
||||
/* if we in path - set click event */
|
||||
if (lLi.className === 'path')
|
||||
DOM.addClickListener( lLoadDir, ai );
|
||||
else {
|
||||
DOM.addClickListener( DOM.preventDefault, lLi);
|
||||
DOM.addListener('mousedown', lSetCurrentFile_f, lLi);
|
||||
DOM.addListener('dragstart', lOnDragStart_f, ai);
|
||||
/* if right button clicked menu will
|
||||
* loads and shows
|
||||
*/
|
||||
DOM.addListener('contextmenu', lOnContextMenu_f, lLi);
|
||||
|
||||
/* устанавливаем обработчики на строку
|
||||
* на двойное нажатие на левую кнопку мышки */
|
||||
else{
|
||||
var lLi = ai.parentElement.parentElement;
|
||||
|
||||
/* if we in path changing onclick events */
|
||||
if (lLi.className === 'path')
|
||||
DOM.addClickListener( lLoadDir, ai );
|
||||
else {
|
||||
DOM.addClickListener( DOM.preventDefault, lLi);
|
||||
DOM.addListener('mousedown', lSetCurrentFile_f, lLi);
|
||||
DOM.addListener('dragstart', lOnDragStart_f, ai);
|
||||
/* if right button clicked menu will
|
||||
* loads and shows
|
||||
*/
|
||||
DOM.addListener('contextmenu', lOnContextMenu_f, lLi);
|
||||
|
||||
/* если ссылка на папку, а не файл */
|
||||
if(ai.target !== '_blank'){
|
||||
DOM.addListener('dblclick', lLoadDirOnce, lLi);
|
||||
DOM.addListener('touchend', lLoadDirOnce, lLi);
|
||||
}
|
||||
|
||||
lLi.id = (ai.title ? ai.title : ai.textContent) +
|
||||
'(' + pPanelID + ')';
|
||||
/* если ссылка на папку, а не файл */
|
||||
if(ai.target !== '_blank'){
|
||||
DOM.addListener('dblclick', lLoadDirOnce, lLi);
|
||||
DOM.addListener('touchend', lLoadDirOnce, lLi);
|
||||
}
|
||||
}
|
||||
|
||||
lLi.id = (ai.title ? ai.title : ai.textContent) +
|
||||
'(' + pPanelID + ')';
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ var CloudCommander, Util,
|
|||
/* private members */
|
||||
var /* название css-класа текущего файла*/
|
||||
CURRENT_FILE = 'current-file',
|
||||
Listeners = [],
|
||||
XMLHTTP,
|
||||
Title,
|
||||
|
||||
|
|
@ -115,18 +114,6 @@ var CloudCommander, Util,
|
|||
|
||||
DOM.RESTfull = new RESTfull();
|
||||
|
||||
function removeListenerFromList(pElement){
|
||||
var lRet;
|
||||
|
||||
for(var i = 0, n = Listeners.length; i < n; i++){
|
||||
if(Listeners[i].element === pElement){
|
||||
Listeners[i] = null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return lRet;
|
||||
}
|
||||
|
||||
/**
|
||||
* private function thet unset currentfile
|
||||
|
|
@ -184,18 +171,12 @@ var CloudCommander, Util,
|
|||
var lRet = this,
|
||||
lElement = (pElement || window);
|
||||
|
||||
if( lElement.addEventListener){
|
||||
if( lElement.addEventListener)
|
||||
lElement.addEventListener(
|
||||
pType,
|
||||
pListener,
|
||||
pUseCapture
|
||||
);
|
||||
|
||||
Listeners.push({
|
||||
element : lElement,
|
||||
callback: pListener
|
||||
});
|
||||
}
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
|
@ -275,23 +256,6 @@ var CloudCommander, Util,
|
|||
return DOM.addListener('error', pListener, pElement, pUseCapture);
|
||||
};
|
||||
|
||||
/**
|
||||
* getListener for element
|
||||
*
|
||||
* @param pElement
|
||||
*/
|
||||
DOM.getListener = function(pElement){
|
||||
var lRet;
|
||||
|
||||
for(var i = 0, n = Listeners.length; i < n; i++){
|
||||
if(Listeners[i].element === pElement){
|
||||
lRet = Listeners[i].callback;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return lRet;
|
||||
};
|
||||
|
||||
/**
|
||||
* load file countent thrue ajax
|
||||
|
|
@ -438,6 +402,24 @@ var CloudCommander, Util,
|
|||
|
||||
DOM.Cache = new DOM.Cache();
|
||||
|
||||
/**
|
||||
* create new folder
|
||||
*
|
||||
* @pCurrentFile
|
||||
*/
|
||||
DOM.promptNewFolder = function(){
|
||||
var lName = DOM.getCurrentName(),
|
||||
lDir = DOM.getCurrentDirPath();
|
||||
|
||||
if(lName === '..')
|
||||
lName = '';
|
||||
|
||||
lName = prompt("New directory", lName);
|
||||
|
||||
if(lName)
|
||||
DOM.RESTfull.save(lDir + lName + '?dir', null, CloudCommander.refresh);
|
||||
};
|
||||
|
||||
/**
|
||||
* delete currentfile, prompt before it
|
||||
*
|
||||
|
|
@ -912,6 +894,7 @@ var CloudCommander, Util,
|
|||
DOM.hide(lLoadingImage);
|
||||
|
||||
Util.log(lText);
|
||||
alert(lText);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
|
||||
var CloudCommander, Util, DOM, CodeMirror;
|
||||
/* object contains editors CodeMirror */
|
||||
(function(CloudCmd, Util, DOM, CloudFunc){
|
||||
(function(CloudCmd, Util, DOM){
|
||||
'use strict';
|
||||
|
||||
var KeyBinding = CloudCommander.KeyBinding,
|
||||
CodeMirrorEditor = {},
|
||||
CodeMirrorEditor = {},
|
||||
FM,
|
||||
CodeMirrorElement,
|
||||
CodeMirrorElement,
|
||||
CodeMirrorLoaded = false,
|
||||
/* indicator says CodeMirror still loads */
|
||||
Loading = false,
|
||||
|
|
@ -52,9 +52,10 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
|
|||
*/
|
||||
function initCodeMirror(pParams){
|
||||
if(!FM)
|
||||
FM = DOM.getFM();
|
||||
FM = DOM.getFM();
|
||||
|
||||
var lCSS = setCSS();
|
||||
var lCSS = setCSS(),
|
||||
lPath = DOM.getCurrentPath();
|
||||
|
||||
CodeMirrorElement = DOM.anyload({
|
||||
name : 'div',
|
||||
|
|
@ -78,7 +79,7 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
|
|||
DOM.remove(lCSS, document.head);
|
||||
},
|
||||
'Ctrl-S': function(){
|
||||
DOM.RESTfull.save(DOM.getCurrentPath(), lEditor.getValue());
|
||||
DOM.RESTfull.save(lPath, lEditor.getValue());
|
||||
}
|
||||
},
|
||||
readOnly : ReadOnly
|
||||
|
|
@ -211,4 +212,4 @@ var CloudCommander, Util, DOM, CloudFunc, CodeMirror;
|
|||
|
||||
CloudCmd.Editor.CodeMirror = CodeMirrorEditor;
|
||||
|
||||
})(CloudCommander, Util, DOM, CloudFunc);
|
||||
})(CloudCommander, Util, DOM);
|
||||
|
|
@ -34,6 +34,7 @@ var CloudCommander, Util, DOM;
|
|||
F2 : 113,
|
||||
F3 : 114,
|
||||
F4 : 115,
|
||||
F7 : 118,
|
||||
F10 : 121,
|
||||
|
||||
TRA : 192 /* Typewritten Reverse Apostrophe (`) */
|
||||
|
|
@ -119,34 +120,39 @@ var CloudCommander, Util, DOM;
|
|||
else
|
||||
DOM.promptDeleteCurrent(lCurrentFile);
|
||||
}
|
||||
else if(lKeyCode === KEY.F1){
|
||||
DOM.preventDefault(pEvent);
|
||||
}
|
||||
else if(lKeyCode === KEY.F2)
|
||||
DOM.renameCurrentFile(lCurrentFile);
|
||||
/* if f3 or shift+f3 or alt+f3 pressed */
|
||||
else if(lKeyCode === KEY.F3){
|
||||
var lEditor = CloudCmd[pEvent.shiftKey ?
|
||||
'Viewer' : 'Editor'];
|
||||
else if(lKeyCode >= KEY.F1 && lKeyCode <= KEY.F10)
|
||||
switch(lKeyCode){
|
||||
case KEY.F1:
|
||||
DOM.preventDefault(pEvent);
|
||||
break;
|
||||
|
||||
Util.exec(lEditor, true);
|
||||
case KEY.F2:
|
||||
DOM.renameCurrentFile(lCurrentFile);
|
||||
break;
|
||||
|
||||
case KEY.F3:
|
||||
var lEditor = CloudCmd[pEvent.shiftKey ?
|
||||
'Viewer' : 'Editor'];
|
||||
Util.exec(lEditor, true);
|
||||
DOM.preventDefault(pEvent);
|
||||
break;
|
||||
|
||||
DOM.preventDefault(pEvent);
|
||||
}
|
||||
|
||||
/* if f4 pressed */
|
||||
else if(lKeyCode === KEY.F4) {
|
||||
DOM.Images.showLoad();
|
||||
|
||||
Util.exec(CloudCmd.Editor);
|
||||
case KEY.F4:
|
||||
DOM.Images.showLoad();
|
||||
Util.exec(CloudCmd.Editor);
|
||||
DOM.preventDefault(pEvent);
|
||||
break;
|
||||
|
||||
DOM.preventDefault(pEvent);
|
||||
}
|
||||
else if(lKeyCode === KEY.F10 && pEvent.shiftKey){
|
||||
Util.exec(CloudCmd.Menu);
|
||||
|
||||
DOM.preventDefault(pEvent);
|
||||
}
|
||||
case KEY.F7:
|
||||
DOM.promptNewFolder();
|
||||
break;
|
||||
|
||||
case KEY.F10:
|
||||
if(pEvent.shiftKey){
|
||||
Util.exec(CloudCmd.Menu);
|
||||
DOM.preventDefault(pEvent);
|
||||
}
|
||||
}
|
||||
|
||||
else if (lKeyCode === KEY.TRA){
|
||||
DOM.Images.showLoad({top: true});
|
||||
|
|
@ -239,21 +245,9 @@ var CloudCommander, Util, DOM;
|
|||
console.log('<ctrl>+r pressed\n' +
|
||||
'reloading page...\n' +
|
||||
'press <alt>+q to remove all key-handlers');
|
||||
|
||||
/* Программно нажимаем на кнопку перезагрузки
|
||||
* содержимого каталога
|
||||
*/
|
||||
var lRefreshIcon = DOM.getRefreshButton();
|
||||
if(lRefreshIcon){
|
||||
/* если нашли элемент нажимаем него
|
||||
* а если не можем - нажимаем на
|
||||
* ссылку, на которую повешен eventHandler
|
||||
* onclick
|
||||
*/
|
||||
Util.exec( DOM.getListener(lRefreshIcon) );
|
||||
|
||||
CloudCmd.refresh();
|
||||
DOM.preventDefault(pEvent);
|
||||
}
|
||||
}
|
||||
|
||||
/* если нажали <ctrl>+d чистим кэш */
|
||||
|
|
|
|||
|
|
@ -91,11 +91,15 @@ var CloudCommander, Util, DOM, CloudFunc, $;
|
|||
name : pName
|
||||
};
|
||||
|
||||
if(Util.isFunction(pCallBack) )
|
||||
lRet.callback = pCallBack;
|
||||
if( Util.isFunction(pCallBack) )
|
||||
lRet.callback = pCallBack;
|
||||
|
||||
else if (Util.isObject(pCallBack))
|
||||
lRet.items = pCallBack;
|
||||
else if ( Util.isObject(pCallBack) ){
|
||||
if(pCallBack.name)
|
||||
lRet.items = pCallBack;
|
||||
else
|
||||
lRet.items = getAllItems(pCallBack);
|
||||
}
|
||||
|
||||
return lRet;
|
||||
}
|
||||
|
|
@ -164,7 +168,7 @@ var CloudCommander, Util, DOM, CloudFunc, $;
|
|||
'Rename' : function(){
|
||||
setTimeout( Util.retExec(DOM.renameCurrentFile), 100);
|
||||
},
|
||||
'Delete' : Util.retExec(DOM.promptDeleteCurrent),
|
||||
'Delete' : Util.retExec(DOM.promptDeleteCurrent)
|
||||
};
|
||||
|
||||
if(UploadToItemNames.length)
|
||||
|
|
@ -172,6 +176,14 @@ var CloudCommander, Util, DOM, CloudFunc, $;
|
|||
|
||||
lMenuItems.Download = Util.retExec(downloadFromMenu);
|
||||
|
||||
lMenuItems.New = {
|
||||
'File' : function(){
|
||||
Util.log('New->File');
|
||||
},
|
||||
|
||||
'Dir' : DOM.promptNewFolder
|
||||
};
|
||||
|
||||
lRet = {
|
||||
// define which elements trigger this menu
|
||||
selector: 'li',
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "cloudcmd",
|
||||
"version": "0.1.9",
|
||||
"version": "0.2.0",
|
||||
"author": "coderaiser <mnemonic.enemy@gmail.com> (https://github.com/coderaiser)",
|
||||
"description": "User friendly cloud file manager.",
|
||||
"homepage": "https://github.com/coderaiser/cloudcmd",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue