diff --git a/lib/client.js b/lib/client.js index a0c20d5d..c8d94990 100644 --- a/lib/client.js +++ b/lib/client.js @@ -289,22 +289,22 @@ function initKeysPanel(pCallBack){ var lKeysPanel = {}, lFuncs =[ - null, - null, /* f1 */ - null, /* f2 */ - CloudCmd.Viewer, /* f3 */ - CloudCmd.Editor, /* f4 */ - null, /* f5 */ - null, /* f6 */ - null, /* f7 */ - DOM.promptRemoveCurrent,/* f8 */ - ]; + null, + null, /* f1 */ + null, /* f2 */ + CloudCmd.Viewer, /* f3 */ + CloudCmd.Editor, /* f4 */ + null, /* f5 */ + null, /* f6 */ + null, /* f7 */ + DOM.promptRemoveCurrent,/* f8 */ + ]; for(var i = 1; i <= 8; i++){ var lButton = 'f' + i, lEl = DOM.getById('f' + i); - lEl.onclick = lFuncs[i]; + DOM.addClickListener(lFuncs[i], lEl); lKeysPanel[lButton] = lEl; } @@ -411,8 +411,8 @@ CloudCmd.getModules = function(pCallBack){ CloudCmd._changeLinks = function(pPanelID){ /* назначаем кнопку очистить кэш и показываем её */ var lClearcache = DOM.getById('clear-cache'); - lClearcache.onclick = DOM.Cache.clear; - + DOM.addListener('click', DOM.Cache.clear, lClearcache); + /* меняем ссылки на ajax-запросы */ var lPanel = DOM.getById(pPanelID), a = lPanel.getElementsByTagName('a'), @@ -491,45 +491,41 @@ CloudCmd._changeLinks = function(pPanelID){ for(var i = 0, n = a.length; i < n ; i++){ /* убираем адрес хоста*/ - var link = a[i].href.replace(lUrl,''); + var ai = a[i], + link = ai.href.replace(lUrl, ''), + lNEADREFRESH = i === lREFRESHICON, + lLoadDir = CloudCmd._loadDir(link, lNEADREFRESH); /* ставим загрузку гифа на клик*/ - if(i === lREFRESHICON){ - a[i].onclick = CloudCmd._loadDir(link, true); - - a[i].parentElement.onclick = a[i].onclick; + if(lNEADREFRESH){ + DOM.addClickListener( lLoadDir, ai ); + DOM.addClickListener( lLoadDir, ai.parentElement ); } /* устанавливаем обработчики на строку * на двойное нажатие на левую кнопку мышки */ else{ - var lLi = a[i].parentElement.parentElement; + var lLi = ai.parentElement.parentElement; /* if we in path changing onclick events */ - if (lLi.className === 'path') { - a[i].onclick = CloudCmd._loadDir(link); - } + if (lLi.className === 'path') + DOM.addClickListener( lLoadDir, ai ); else { - lLi.onclick = Util.retFalse; - lLi.onmousedown = lSetCurrentFile_f; - a[i].ondragstart = lOnDragStart_f; - + DOM.addClickListener( Util.retFalse, lLi); + DOM.addListener('mousedown', lSetCurrentFile_f, lLi); + DOM.addListener('ondragstart', lOnDragStart_f, ai); /* if right button clicked menu will * loads and shows */ - lLi.oncontextmenu = lOnContextMenu_f; + DOM.addListener('contextmenu', lOnContextMenu_f, lLi); /* если ссылка на папку, а не файл */ - if(a[i].target !== '_blank'){ - lLi.ondblclick = CloudCmd._loadDir(link); - - DOM.addListener('touchend', - CloudCmd._loadDir(link), - lLi - ); + if(ai.target !== '_blank'){ + DOM.addListener('dblclick', lLoadDir, lLi); + DOM.addListener('touchend', lLoadDir, lLi); } - lLi.id = (a[i].title ? a[i].title : a[i].textContent) + + lLi.id = (ai.title ? ai.title : ai.textContent) + '(' + pPanelID + ')'; } } diff --git a/lib/client/dom.js b/lib/client/dom.js index f1559716..d445a96c 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -153,6 +153,15 @@ var CloudCommander, Util, return DOM.addListener('keydown', pListener, pElement, pUseCapture); }; + /** + * safe add event click listener + * @param pListener + * @param pUseCapture + */ + DOM.addClickListener = function(pListener, pElement, pUseCapture){ + return DOM.addListener('click', pListener, pElement, pUseCapture); + }; + /** * load file countent thrue ajax */ diff --git a/lib/server/ischanged.js b/lib/server/ischanged.js index 883c54b9..1b752838 100644 --- a/lib/server/ischanged.js +++ b/lib/server/ischanged.js @@ -9,13 +9,13 @@ Util = main.util, /* object contains hashes of files*/ - CHANGESNAME = DIR + 'changes', + CHANGESNAME = DIR + 'json/changes', CHANGES_JSON = CHANGESNAME + '.json', Times = main.require(CHANGESNAME) || [], - TimesChanged; + GTimesChanged; - function isFileChanged(pFileName, pLastFile_b, pCallBack){ + exports.isFileChanged = function(pFileName, pLastFile_b, pCallBack){ var lReadedTime; var i, n = Times.length; @@ -42,20 +42,20 @@ }; lTimeChanged = - TimesChanged = true; + GTimesChanged = true; } - if(pLastFile_b && TimesChanged) + if(pLastFile_b && GTimesChanged) writeFile(CHANGES_JSON, Util.stringifyJSON(Times)); } else{ Util.log(pError); - lTimeChanged = false; + lTimeChanged = true; } Util.exec(pCallBack, lTimeChanged); }); - } + }; /* * Функция записывает файла @@ -72,6 +72,6 @@ } isFileChanged(DIR + 'manifest.yml', true, function(pData){ - console.log(pData) + console.log(pData); }); })(); \ No newline at end of file