feature(cloudcmd) do not hide path and header when files are scrolling

This commit is contained in:
coderaiser 2013-12-05 14:51:42 +00:00
parent 8469c700a7
commit 45f59f18c2
7 changed files with 47 additions and 26 deletions

View file

@ -260,8 +260,8 @@
else {
p.name = INDEX_PATH,
lPanel = CloudFunc.buildFromJSON(pJSON, FileTemplate, PathTemplate, LinkTemplate),
lList = '<ul id=left class=panel>' + lPanel + '</ul>' +
'<ul id=right class=panel>' + lPanel + '</ul>';
lList = '<div id=left class=panel>' + lPanel + '</div>' +
'<div id=right class=panel>' + lPanel + '</div>';
main.sendResponse(p, indexProcessing({
additional : lList,

View file

@ -176,7 +176,6 @@ body {
width: 46%;
padding: 20px;
margin: 0;
overflow-y: auto;
border: 1.5px solid;
border-color: rgb(49, 123, 249);
border-color: rgba(49, 123, 249, .40);
@ -210,7 +209,10 @@ body {
width: 23%;
}
.panel, li {
.files {
overflow-y: auto;
padding: 0;
margin: 0;
list-style-type: none;
cursor: default;
}

View file

@ -84,7 +84,7 @@
Height = (Height / 100).toFixed() * 100;
style = document.createElement('style');
style.innerText = '.panel {' +
style.innerText = '.files {' +
'height:' + Height +'px;' +
'}';

View file

@ -1 +1 @@
<li class=path><span class="path-icon clear-storage" id=clear-storage title="clear storage (Ctrl+D)"></span><span class="path-icon refresh-icon" title="refresh (Ctrl+R)"><a href="{{ link }}"></a></span><span>{{ path }}</span></li>
<div class=path><span class="path-icon clear-storage" id=clear-storage title="clear storage (Ctrl+D)"></span><span class="path-icon refresh-icon" title="refresh (Ctrl+R)"><a href="{{ link }}"></a></span><span>{{ path }}</span></div>

View file

@ -255,11 +255,9 @@ var Util, DOM, CloudFunc, CloudCmd;
Util.exec(pCallBack);
/* выделяем строку с первым файлом */
var lFmHeader = DOM.getByClass('fm-header');
if (lFmHeader && lFmHeader[0]) {
var lCurrent = lFmHeader[0].nextSibling;
DOM.setCurrentFile(lCurrent);
}
var lFiles = DOM.getFiles();
if (lFiles)
DOM.setCurrentFile(lFiles[0]);
Util.exec(CloudCmd.Key);
}
@ -392,7 +390,8 @@ var Util, DOM, CloudFunc, CloudCmd;
* @param pJSON - данные о файлах
*/
function createFileTable(pJSON) {
var panel = DOM.getPanel(),
var files,
panel = DOM.getPanel(),
/* getting current element if was refresh */
lPath = DOM.getCurrentDirPath(panel),
@ -416,25 +415,26 @@ var Util, DOM, CloudFunc, CloudCmd;
panel.innerHTML = CloudFunc.buildFromJSON(pJSON, pTemplate, pPathTemplate, pLinkTemplate);
files = DOM.getFiles(panel);
/* если нажали на ссылку на верхний каталог*/
var lFound;
/* searching current file */
if (lWasRefresh_b) {
var n = panel.childNodes.length;
for(i = 2; i < n ; i++) {
var lVarCurrent = panel.childNodes[i],
var n = files.length;
for(i = 0; i < n ; i++) {
var lVarCurrent = files[i],
lVarName = DOM.getCurrentName(lVarCurrent);
lFound = lVarName === lName;
if (lFound) {
lCurrent = panel.childNodes[i];
lCurrent = files[i];
break;
}
}
}
if (!lFound) /* .. */
lCurrent = panel.childNodes[2];
lCurrent = files[0];
DOM.setCurrentFile(lCurrent);

View file

@ -1863,7 +1863,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
* @param pPanel_o = {active: true}
*/
this.getPanel = function(pActive) {
var lPanel = this.getCurrentFile().parentElement;
var lPanel = this.getCurrentFile().parentElement.parentElement;
/* if {active : false} getting passive panel */
if (pActive && !pActive.active) {
@ -1885,6 +1885,19 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog;
return lPanel;
};
this.getFiles = function() {
var files = DOM.getByClass('files')[0];
return files;
};
this.getFiles = function(element) {
var files = DOM.getByClass('files', element)[0],
ret = files.children || [];
return ret;
};
/** prevent default event */
this.preventDefault = function(pEvent) {
var lRet,

View file

@ -339,20 +339,24 @@ var Util;
lFileTable = Util.render(pPathTemplate, {
link: FS + lRefreshPath,
path: lHtmlPath
}),
lHeader = Util.render(pTemplate, {
className : 'fm-header',
type : '',
name : 'name',
size : 'size',
owner : 'owner',
mode : 'mode'
});
lFileTable += Util.render(pTemplate, {
className : 'fm-header',
type : '',
name : 'name',
size : 'size',
owner : 'owner',
mode : 'mode'
});
lHeader = Util.replaceStr(lHeader, 'li', 'div');
lFileTable += lHeader;
/* сохраняем путь */
CloudFunc.Path = lPath;
lFileTable += '<ul class="files">';
/* Если мы не в корне */
if (lPath !== '/') {
/* ссылка на верхний каталог*/
@ -413,6 +417,8 @@ var Util;
});
}
lFileTable += '</ul>';
return lFileTable;
};
}