diff --git a/ChangeLog b/ChangeLog index aeba3f82..e61e47e9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -37,7 +37,9 @@ would be on top. * Fixed bug with saving json to localStorage, it's always writed root directory. -* Moved out set current file from cloudfunc to client.js +* Moved out set current file from cloudfunc to client.js. + +* Changed the way file table building. From now templating used. 2012.03.01, Version 0.1.9 diff --git a/lib/client.js b/lib/client.js index f82e23cf..d7928906 100644 --- a/lib/client.js +++ b/lib/client.js @@ -584,8 +584,11 @@ var Util, DOM, CloudFunc, $, KeyBinding, CloudCommander; if (lJSON){ /* переводим из текста в JSON */ lJSON = Util.parseJSON(lJSON); - CloudCmd._createFileTable(lPanel, lJSON); - CloudCmd._changeLinks(lPanel); + + CloudCmd.getFileTemplate(function(pTemplate){ + CloudCmd._createFileTable(lPanel, lJSON, pTemplate); + CloudCmd._changeLinks(lPanel); + }); } else lRet = true; @@ -600,8 +603,10 @@ var Util, DOM, CloudFunc, $, KeyBinding, CloudCommander; }, success : function(pData){ - CloudCmd._createFileTable(lPanel, pData); - CloudCmd._changeLinks(lPanel); + CloudCmd.getFileTemplate(function(pTemplate){ + CloudCmd._createFileTable(lPanel, pData, pTemplate); + CloudCmd._changeLinks(lPanel); + }); /* переводим таблицу файлов в строку, для * * сохранения в localStorage */ @@ -621,26 +626,22 @@ var Util, DOM, CloudFunc, $, KeyBinding, CloudCommander; * @param pEleme - родительский элемент * @param pJSON - данные о файлах */ - CloudCmd._createFileTable = function(pElem, pJSON){ + CloudCmd._createFileTable = function(pElem, pJSON, pTemplate){ var lElem = DOM.getById(pElem), /* getting current element if was refresh */ lPath = DOM.getByClass('path', lElem), lCurrent = DOM.getCurrentFile(), lName = DOM.getCurrentName(lName), lWasRefresh_b = lPath[0].textContent === pJSON[0].path; - - /* говорим построителю, - * что бы он в нужный момент - * выделил строку с первым файлом - */ - + + /* очищаем панель */ var i = lElem.childNodes.length; + while(i--) lElem.removeChild(lElem.lastChild); - - /* заполняем панель новыми элементами */ - lElem.innerHTML = CloudFunc.buildFromJSON(pJSON); + /* заполняем панель новыми элементами */ + lElem.innerHTML = CloudFunc.buildFromJSON(pJSON, pTemplate); var lFound; /* searching current file */ @@ -662,7 +663,6 @@ var Util, DOM, CloudFunc, $, KeyBinding, CloudCommander; lCurrent = lElem.childNodes[2]; DOM.setCurrentFile(lCurrent); - }; /** diff --git a/lib/cloudfunc.js b/lib/cloudfunc.js index 33d83f83..8c4f0ce6 100644 --- a/lib/cloudfunc.js +++ b/lib/cloudfunc.js @@ -295,7 +295,7 @@ var CloudFunc, exports, Util; * [{path:'путь',size:'dir'}, * {name:'имя',size:'размер',mode:'права доступа'}] */ - CloudFunc.buildFromJSON = function(pJSON) + CloudFunc.buildFromJSON = function(pJSON, pTemplate) { var files = pJSON, /* сохраняем путь каталога в котором мы сейчас находимся*/ @@ -348,16 +348,27 @@ var CloudFunc, exports, Util; lLink = FS + lDotDot; /* Сохраняем путь к каталогу верхнего уровня*/ - lFileTable += '