From 9e3888561590bcb462ef6bd6f9e322f75cb5f179 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 26 May 2014 07:51:59 -0400 Subject: [PATCH] feature(listeners) add onPathElementClick --- lib/client/listeners.js | 70 ++++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 36 deletions(-) diff --git a/lib/client/listeners.js b/lib/client/listeners.js index 69929e51..f2fff48a 100644 --- a/lib/client/listeners.js +++ b/lib/client/listeners.js @@ -13,8 +13,8 @@ var Util, DOM, CloudCmd; EventsFiles = { 'mousedown' : Util.exec.with(execIfNotUL, setCurrentFileByEvent), 'contextmenu' : onContextMenu, - 'dragstart' : Util.exec.with(execIfNotUL, onDragStart), 'click' : onClick, + 'dragstart' : Util.exec.with(execIfNotUL, onDragStart), 'dblclick' : Util.exec.with(execIfNotUL, onDblClick), 'touchstart' : Util.exec.with(execIfNotUL, onTouch) }; @@ -81,34 +81,42 @@ var Util, DOM, CloudCmd; this.setOnPanel = function(panelId) { var panel = DOM.getById(panelId), filesElement = DOM.getByDataName('js-files', panel), - pathElement = DOM.getByDataName('js-path', panel), - pathLinks = DOM.getByDataName('js-links', pathElement), - clearStorage = DOM.getByDataName('js-clear-storage', pathElement), - refresh = DOM.getByDataName('js-refresh', pathElement), - loadDir = function(params, event) { - CloudCmd.loadDir(params); - event.preventDefault(); - }; + pathElement = DOM.getByDataName('js-path', panel); /* ставим загрузку гифа на клик*/ - Events.addClick(onRefreshClick, refresh); - Events.addClick(Storage.clear, clearStorage); - - Util.forEach(pathLinks.children, function(ai) { - var url = CloudCmd.HOST, - link = Util.rmStr(ai.href, url), - load = Util.exec.with(loadDir, { - path : link, - isRefresh : false, - panel : panel - }); - - Events.addClick(load, ai); - }); - + Events.addClick(onPathElementClick, pathElement); Events.add(EventsFiles, filesElement); }; + function onPathElementClick(event) { + var link, href, url, + element = event.target, + attr = element.getAttribute('data-name'); + + switch (attr) { + case 'js-clear-storage': + Storage.clear(); + break; + + case 'js-refresh': + CloudCmd.refresh(); + event.preventDefault(); + break; + + case 'js-path-link': + url = CloudCmd.HOST; + href = element.href; + link = Util.rmStr(href, url); + + CloudCmd.loadDir({ + path : link, + isRefresh : false + }); + + event.preventDefault(); + } + } + function mousemove() { DOM.Events.add('mousemove', function(event) { var position = CloudCmd.MousePosition, @@ -212,11 +220,6 @@ var Util, DOM, CloudCmd; link); } - function onRefreshClick(event) { - CloudCmd.refresh(); - event.preventDefault(); - } - function getLIElement(element) { if (element) while (element.tagName !== 'LI') @@ -226,13 +229,8 @@ var Util, DOM, CloudCmd; } function getULElement(element) { - var tag = element.tagName; - - if (tag !== 'UL') - do { - element = element.parentElement; - tag = element.tagName; - } while(tag !== 'UL'); + while (element.tagName !== 'UL') + element = element.parentElement; return element; }