From 09ebf00dbc55ae1991269f39e54da191833ac7f9 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Sat, 15 Dec 2012 05:30:25 -0500 Subject: [PATCH] added function getCurrentDir to DOM module --- ChangeLog | 2 ++ lib/client.js | 75 +++++++++++++---------------------------------- lib/client/dom.js | 19 ++++++++++++ lib/util.js | 8 +++++ 4 files changed, 49 insertions(+), 55 deletions(-) diff --git a/ChangeLog b/ChangeLog index aa4d3e4d..56e1d1ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 diff --git a/lib/client.js b/lib/client.js index 427ce29f..42aee3e6 100644 --- a/lib/client.js +++ b/lib/client.js @@ -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 }); - /* получаем все элементы выделенной папки*/ - /* при этом, если мы нажали обновить - * или +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; diff --git a/lib/client/dom.js b/lib/client/dom.js index d673e5fd..6d971f9d 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -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 * diff --git a/lib/util.js b/lib/util.js index 5c8e6b16..372c28ac 100644 --- a/lib/util.js +++ b/lib/util.js @@ -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