added function getCurrentDir to DOM module

This commit is contained in:
coderaiser 2012-12-15 05:30:25 -05:00
parent a2419276c0
commit 09ebf00dbc
4 changed files with 49 additions and 55 deletions

View file

@ -10,6 +10,8 @@ and Util.setTimeout(pFunction [, pCallBack, pTime])
* Added functions in win.js for parsing diskpart output.
* Added function getCurrentDir to DOM module.
2012.12.12, Version 0.1.8

View file

@ -22,7 +22,7 @@ var CloudClient = {
Terminal : null, /* function loads and shows terminal*/
Menu : null, /* function loads and shows menu */
GoogleAnalytics : null,
_loadDir : null, /* Функция привязываеться ко всем
* ссылкам и
* загружает содержимое каталогов */
@ -126,63 +126,28 @@ CloudClient.GoogleAnalytics = function(){
/**
* Функция привязываеться ко всем ссылкам и
* загружает содержимое каталогов
*
* @param pLink - ссылка
* @param pNeedRefresh - необходимость обязательной загрузки данных с сервера
*/
CloudClient._loadDir = function(pLink,pNeedRefresh){
/* @pElem - элемент,
* для которого нужно
* выполнить загрузку
*/
return function(pEvent){
var lRet = true;
/* показываем гиф загрузки возле пути папки сверху*/
/* ctrl+r нажата? */
CloudClient._loadDir = function(pLink, pNeedRefresh){
return function(){
/*
* показываем гиф загрузки возле пути папки сверху
* ctrl+r нажата?
*/
DOM.Images.showLoad(pNeedRefresh ? {top:true} : null);
var lPanel = DOM.getPanel(),
lCurrent = DOM.getCurrentFile(),
/* получаем имя каталога в котором находимся */
lHref = DOM.getByClass('path', lPanel);
var lParent = DOM.getCurrentLink().textContent,
lDir = DOM.getCurrentDir();
lHref = lHref[0].textContent;
lHref = CloudFunc.removeLastSlash(lHref);
var lSubstr = lHref.substr(lHref,lHref.lastIndexOf('/'));
lHref = lHref.replace(lSubstr+'/','');
/* загружаем содержимое каталога */
CloudClient._ajaxLoad(pLink, { refresh: pNeedRefresh });
/* получаем все элементы выделенной папки*/
/* при этом, если мы нажали обновить
* или <Ctrl>+R - ссылок мы ненайдём
* и заходить не будем
*/
var lA = DOM.getCurrentLink(lCurrent);
/* если нажали на ссылку на верхний каталог*/
if(lA && lA.textContent==='..' && lHref!=='/'){
/* функция устанавливает курсор на каталог
* с которого мы пришли, если мы поднялись
* в верх по файловой структуре
*/
CloudClient._currentToParent(lHref);
}
/* что бы не переходить по ссылкам
* а грузить всё ajax'ом,
* возвращаем false на событие
* onclick
*/
Util.setValue({
object : pEvent,
property: 'returnValue',
value : false
});
return lRet;
if(lParent === '..' && lDir !== '/')
CloudClient._currentToParent(lDir);
};
};
@ -211,7 +176,7 @@ CloudClient._editFileName = function(pParent){
var lA = DOM.getCurrentLink(pParent);
if (lA && lA.textContent !== '..')
lA.contentEditable = false;
KeyBinding.set();
/* backs old document.onclick
@ -453,12 +418,11 @@ CloudClient.getConfig = function(pCallBack){
CloudClient._changeLinks = function(pPanelID){
/* назначаем кнопку очистить кэш и показываем её */
var lClearcache = getById('clear-cache');
if(lClearcache)
lClearcache.onclick = DOM.Cache.clear;
/* меняем ссылки на ajax-запросы */
var lPanel = getById(pPanelID),
a = lPanel.getElementsByTagName('a'),
var lPanel = getById(pPanelID),
a = lPanel.getElementsByTagName('a'),
/* номер ссылки иконки обновления страницы */
lREFRESHICON = 0,
@ -529,7 +493,7 @@ CloudClient._changeLinks = function(pPanelID){
DOM.setCurrentFile(pElement);
},
lUrl = cloudcmd.HOST;
for(var i = 0, n = a.length; i < n ; i++)
@ -554,6 +518,7 @@ CloudClient._changeLinks = function(pPanelID){
a[i].onclick = CloudClient._loadDir(link);
}
else {
lLi.onclick = Util.retFalse;
lLi.onmousedown = lSetCurrentFile_f;
a[i].ondragstart = lOnDragStart_f;

View file

@ -741,6 +741,25 @@ var CloudCommander, Util, DOM, CloudFunc;
}
};
/**
* get current direcotory path
*/
DOM.getCurrentDir = function(){
var lRet,
lSubstr,
lPanel = DOM.getPanel(),
/* получаем имя каталога в котором находимся */
lHref = DOM.getByClass('path', lPanel);
lHref = lHref[0].textContent;
lHref = CloudFunc.removeLastSlash(lHref);
lSubstr = lHref.substr(lHref , lHref.lastIndexOf('/'));
lRet = Util.removeStr(lHref, lSubstr + '/');
return lRet;
};
/**
* unified way to get current file
*

View file

@ -257,6 +257,14 @@ var Util, exports;
return Util.exec(pCallBack, pArg);
};
};
/**
* function return false
*/
Util.retFalse = function(){
var lRet = false;
return lRet;
};
/**
* return load functions thrue callbacks one-by-one