From 28784ce6bd5c9a18c8017951d7647e37e6822fc8 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 24 Jan 2013 06:15:07 -0500 Subject: [PATCH] refactored --- css/style.css | 13 +++++++++-- json/config.json | 2 +- lib/client.js | 2 +- lib/client/dom.js | 50 ++++++++++++++++++++++++++++++++++++---- lib/client/keyBinding.js | 46 ++++++++++++++++++------------------ 5 files changed, 81 insertions(+), 32 deletions(-) diff --git a/css/style.css b/css/style.css index 98cd2071..f2071518 100644 --- a/css/style.css +++ b/css/style.css @@ -13,6 +13,13 @@ } */ /* символьный шрифт от гитхаба*/ +@font-face { + font-family: "GeneralFoundicons"; + src: url('http://github.com/zurb/foundation-icons/blob/master/foundation_icons_general/fonts/general_foundicons.woff?raw=true') format('woff'); + font-weight: normal; + font-style: normal; +} + @font-face { font-family: 'Fontello'; @@ -71,7 +78,8 @@ body{ width:16px; height:16px; margin-left:0.5%; - font-family: 'Octicons Regular'; + /* font-family: 'Octicons Regular'; */ + font-family: 'GeneralFoundicons'; font-size:16px; } .error::before{ @@ -79,7 +87,8 @@ body{ bottom : 4px; color:rgb(222, 41, 41); cursor:default; - content:'\f026'; + /* content:'\f026'; */ + /* content:'\f013'; */ } .loading{ position:relative; diff --git a/json/config.json b/json/config.json index 2daffa62..03f32d5e 100644 --- a/json/config.json +++ b/json/config.json @@ -4,7 +4,7 @@ "cache" : {"allowed" : false}, "minification" : { "js" : false, - "css" : true, + "css" : false, "html" : true, "img" : true }, diff --git a/lib/client.js b/lib/client.js index 0b574e82..db176008 100644 --- a/lib/client.js +++ b/lib/client.js @@ -98,7 +98,7 @@ CloudCmd._loadDir = function(pLink, pNeedRefresh){ if(lParent === '..' && lDir !== '/') CloudCmd._currentToParent(lDir); - pEvent.preventDefault(); + DOM.preventDefault(); }; }; diff --git a/lib/client/dom.js b/lib/client/dom.js index e74233b3..076bc71a 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -9,7 +9,8 @@ var CloudCommander, Util, /* private members */ var /* название css-класа текущего файла*/ - CURRENT_FILE = 'current-file', + CURRENT_FILE = 'current-file', + Listeners = [], XMLHTTP, Title, @@ -44,6 +45,19 @@ var CloudCommander, Util, Images = new Images(); + 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 */ @@ -93,14 +107,21 @@ var CloudCommander, Util, * @param pElement {document by default} */ DOM.addListener = function(pType, pListener, pElement, pUseCapture){ - var lRet = this; + var lRet = this, + lElement = (pElement || window); - (pElement || window).addEventListener( + + lElement.addEventListener( pType, pListener, pUseCapture || false ); + Listeners.push({ + element : lElement, + callback: pListener + }); + return lRet; }; @@ -158,10 +179,28 @@ var CloudCommander, Util, * @param pListener * @param pUseCapture */ - DOM.addClickListener = function(pListener, pElement, pUseCapture){ + DOM.addClickListener = function(pListener, pElement, pUseCapture){ return DOM.addListener('click', 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 */ @@ -1067,7 +1106,8 @@ var CloudCommander, Util, /** prevent default event */ DOM.preventDefault = function(pEvent){ var lRet, - lFunc = Util.bind(pEvent.preventDefault, pEvent); + lPreventDefault = pEvent && pEvent.preventDefault, + lFunc = Util.bind(lPreventDefault, pEvent); lRet = Util.exec(lFunc); diff --git a/lib/client/keyBinding.js b/lib/client/keyBinding.js index 050820b4..9bf1daff 100644 --- a/lib/client/keyBinding.js +++ b/lib/client/keyBinding.js @@ -1,15 +1,14 @@ var CloudCommander, Util, DOM; -(function(CloudCommander, Util, DOM){ +(function(CloudCmd, Util, DOM){ "use strict"; DOM.Images.hideLoad(); - var cloudcmd = CloudCommander, /* private property set or set key binding */ - keyBinded; + var keyBinded; /* Key constants*/ - cloudcmd.KEY = { + CloudCmd.KEY = { TAB : 9, ENTER : 13, ESC : 27, @@ -41,11 +40,11 @@ var CloudCommander, Util, DOM; TRA : 192 /* Typewritten Reverse Apostrophe (`) */ }; - var KEY = cloudcmd.KEY; + var KEY = CloudCmd.KEY; - cloudcmd.KeyBinding = {}; + CloudCmd.KeyBinding = {}; - var KeyBinding = cloudcmd.KeyBinding; + var KeyBinding = CloudCmd.KeyBinding; KeyBinding.get = function(){return keyBinded;}; @@ -75,14 +74,14 @@ var CloudCommander, Util, DOM; DOM.Images.showLoad({top: true}); - Util.exec(cloudcmd.Config); + Util.exec(CloudCmd.Config); } else if(lKeyCode === KEY.G && event.altKey) - Util.exec(cloudcmd.GitHub); + Util.exec(CloudCmd.GitHub); else if(lKeyCode === KEY.D && event.altKey){ - Util.exec(cloudcmd.DropBox); + Util.exec(CloudCmd.DropBox); event.preventDefault(); } @@ -121,7 +120,7 @@ var CloudCommander, Util, DOM; /* if f3 or shift+f3 or alt+f3 pressed */ else if(lKeyCode === KEY.F3){ - var lEditor = cloudcmd[event.shiftKey ? + var lEditor = CloudCmd[event.shiftKey ? 'Viewer' : 'Editor']; Util.exec(lEditor, true); @@ -133,19 +132,19 @@ var CloudCommander, Util, DOM; else if(lKeyCode === KEY.F4) { DOM.Images.showLoad(); - Util.exec(cloudcmd.Editor); + Util.exec(CloudCmd.Editor); event.preventDefault();//запрет на дальнейшее действие } else if(lKeyCode === KEY.F10 && event.shiftKey){ - Util.exec(cloudcmd.Menu); + Util.exec(CloudCmd.Menu); event.preventDefault();//запрет на дальнейшее действие } else if (lKeyCode === KEY.TRA){ DOM.Images.showLoad({top: true}); - Util.exec(cloudcmd.Terminal); + Util.exec(CloudCmd.Terminal); } /* навигация по таблице файлов*/ /* если нажали клавишу вверх*/ @@ -261,7 +260,7 @@ var CloudCommander, Util, DOM; /* если нажали Enter - открываем папку*/ else if(lKeyCode === KEY.ENTER) - Util.exec(lCurrentFile.ondblclick, true); + Util.exec(CloudCmd._loadDir()); /* если нажали +r * обновляем страницу, @@ -280,7 +279,7 @@ var CloudCommander, Util, DOM; * содержимого каталога */ var lRefreshIcon = DOM.getRefreshButton(); - if(lRefreshIcon){ + if(lRefreshIcon){ /* получаем название файла*/ var lSelectedName = DOM.getCurrentName(); @@ -289,9 +288,11 @@ var CloudCommander, Util, DOM; * ссылку, на которую повешен eventHandler * onclick */ - lRefreshIcon.onclick(); - cloudcmd._currentToParent(lSelectedName); - event.preventDefault();//запрет на дальнейшее действие + + Util.exec( DOM.getListener(lRefreshIcon) ); + CloudCmd._currentToParent(lSelectedName); + + DOM.preventDefault(); } } @@ -303,10 +304,9 @@ var CloudCommander, Util, DOM; 'press +q to remove all key-handlers'); var lClearCache = DOM.getById('clear-cache'); - if(lClearCache && lClearCache.onclick) - lClearCache.onclick(); - - event.preventDefault();//запрет на дальнейшее действие + Util.exec( DOM.getListener(lClearCache) ); + + DOM.preventDefault(); } /* если нажали +q