minor changes

This commit is contained in:
coderaiser 2012-08-20 05:05:21 -04:00
parent 7cac5550b0
commit e090d75ecb
4 changed files with 115 additions and 117 deletions

View file

@ -14,45 +14,47 @@ var CloudClient = {
* выполняет весь функционал по
* инициализации
*/
init :function(){},
init : function(){},
keyBinding :function(){},/* функция нажатий обработки клавишь*/
keyBinded :false, /* оброботка нажатий клавишь установлена */
keyBinding : function(){},/* функция нажатий обработки клавишь*/
keyBinded : false, /* оброботка нажатий клавишь установлена */
Editor :function(){},/* function loads and shows editor */
Viewer :function(){},/* function loads and shows viewer */
Terminal :function(){},/* function loads and shows terminal*/
Menu :function(){},/* function loads and shows menu */
Editor : function(){},/* function loads and shows editor */
Viewer : function(){},/* function loads and shows viewer */
Terminal : function(){},/* function loads and shows terminal*/
Menu : function(){},/* function loads and shows menu */
_loadDir :function(){}, /* Функция привязываеться ко всем
_loadDir : function(){}, /* Функция привязываеться ко всем
* ссылкам и
* загружает содержимое каталогов */
/* ОБЬЕКТЫ */
/* Обьект для работы с кэшем */
Cache :{},
Cache : {},
/* Object contain additional system functional */
Util :{},
Util : {},
/* ПРИВАТНЫЕ ФУНКЦИИ */
/* функция загружает json-данные о файловой системе */
_ajaxLoad :function(){},
_ajaxLoad : function(){},
/* Функция генерирует JSON из html-таблицы файлов */
_getJSONfromFileTable :function(){},
_getJSONfromFileTable : function(){},
/* функция меняет ссыки на ajax-овые */
_changeLinks :function(){},
_changeLinks : function(){},
/* КОНСТАНТЫ*/
/* название css-класа текущего файла*/
CURRENT_FILE :'current-file',
LIBDIR :'/lib/',
LIBDIRCLIENT :'/lib/client/',
CURRENT_FILE : 'current-file',
LIBDIR : '/lib/',
LIBDIRCLIENT : '/lib/client/',
/* height of Cloud Commander
* seting up in init()
*/
HEIGHT :0,
MIN_ONE_PANEL_WIDTH :1155,
OLD_BROWSER :false
HEIGHT : 0,
MIN_ONE_PANEL_WIDTH : 1155,
OLD_BROWSER : false
};
/*
@ -61,24 +63,29 @@ var CloudClient = {
* работы с LocalStorage, webdb,
* indexed db etc.
*/
CloudClient.Cache={
_allowed :true, /* приватный переключатель возможности работы с кэшем */
/* функция проверяет возможно ли работать с кэшем каким-либо образом */
isAllowed :function(){},
CloudClient.Cache = {
_allowed : true, /* приватный переключатель возможности работы с кэшем */
/* функция проверяет возможно ли работать с кэшем каким-либо образом */
isAllowed : function(){},
/* Тип кэша, который доступен*/
type :{},
type : {},
/* Функция устанавливает кэш, если выбранный вид поддерживаеться браузером*/
set :function(){},
/* Функция достаёт кэш, если выбранный вид поддерживаеться браузером*/
get :function(){},
get : function(){},
/* функция чистит весь кэш для всех каталогов*/
clear :function(){}
clear : function(){}
};
/* функция проверяет поддерживаеться ли localStorage */
CloudClient.Cache.isAllowed=(function(){
if(window.localStorage &&
CloudClient.Cache.isAllowed = (function(){
if(window.localStorage &&
localStorage.setItem &&
localStorage.getItem){
CloudClient.Cache._allowed=true;

View file

@ -1,28 +0,0 @@
/* object contain poyfills of functions */
var CloudCommander;
var PolyFills = (function(){
document.head = document.getElementsByTagName("head")[0];
document.getElementsByClassName = function(pClassName){
return window.jQuery('.'+pClassName)[0];
};
/*
{name: '', src: ' ',func: '', style: '', id: '', parent: '',
async: false, inner: 'id{color:red, }, class:'', not_append: false}
*/
this.cssSet = function(pParams_o){
var lElement = '<style ';
if (pParams_o.id) lElement += 'id=' + pParams_o.id + ' ';
if (pParams_o.style) lElement += 'style=' + pParams_o.style + ' ';
if (pParams_o.className) lElement += 'class=' + pParams_o.className;
if (pParams_o.inner)lElement += '>' + pParams_o.inner;
lElement +='</style>';
return $(lElement)
.appendTo(pParams_o.parent || document.head);
},
});

View file

@ -226,17 +226,7 @@ CloudFunc._getDirPath=function(url)
do{
folders[i++]=url; url=url.substr(url,url.lastIndexOf('/'));
}while(url!=='');
/* сохраяем адрес предыдущего каталога */
/*
if(i>2){
if(folders[0].lastIndexOf('/')===folders[0].length)
LPrevDir=folders[1];
else LPrevDir=folders[2];
}else LPrevDir='/';
*/
/* ################################### */
/* Формируем ссылки на каждый каталог в пути */
var lHref='<a class=links href="';
var lTitle='" title="';
@ -247,11 +237,19 @@ CloudFunc._getDirPath=function(url)
/* путь в ссылке, который говорит
* что js отключен
*/
var lNoJS_s=CloudFunc.NOJS;
var lFS_s=CloudFunc.FS;
var lNoJS_s = CloudFunc.NOJS;
var lFS_s = CloudFunc.FS;
/* корневой каталог */
lHtmlPath=lHref+lFS_s+lNoJS_s+lTitle+'"/"'+_l+'/'+lHrefEnd;
for(i=folders.length-1;i>0;i--)
lHtmlPath = lHref +
lFS_s +
lNoJS_s +
lTitle +
'"/"' +
_l +
'/' +
lHrefEnd;
for(i = folders.length - 1; i > 0; i--)
{
var lUrl=folders[i];
var lShortName=lUrl.replace(lUrl.substr(lUrl,lUrl.lastIndexOf('/')+1),'');
@ -368,54 +366,55 @@ CloudFunc.buildFromJSON=function(pJSON,pKeyBinded)
/* путь в ссылке, который говорит
* что js отключен
*/
var lNoJS_s=CloudFunc.NOJS;
var lFS_s=CloudFunc.FS;
var lNoJS_s = CloudFunc.NOJS;
var lFS_s = CloudFunc.FS;
var lFileTable =
'<li class=path>'+
'<span class="path_icon clear-cache"' +
'id=clear-cache' +
'title="clear cache (Ctrl+D)">' +
'</span>'+
'<span class="path_icon ' + CloudFunc.REFRESHICON + '"' +
' title="refresh (Ctrl+R)">' +
'<a href="'+lFS_s+lNoJS_s+lRefreshPath+'">' +
'</a>' +
'</span>' +
'<span>' + lHtmlPath + '</span>' +
'<span class="path_icon clear-cache"' +
'id=clear-cache' +
'title="clear cache (Ctrl+D)">' +
'</span>' +
'<span class="path_icon ' + CloudFunc.REFRESHICON + '"' +
' title="refresh (Ctrl+R)">' +
'<a href="' + lFS_s + lNoJS_s + lRefreshPath + '">' +
'</a>' +
'</span>' +
'<span>' + lHtmlPath + '</span>' +
'</li>';
var fileTableTitles=['name','size','owner','mode'];
lFileTable+=CloudFunc._getFileTableHeader(fileTableTitles);
var fileTableTitles = ['name','size','owner','mode'];
lFileTable += CloudFunc._getFileTableHeader(fileTableTitles);
/* Если мы не в корне */
if(lPath!=='/'){
if(lPath !== '/'){
/* ссылка на верхний каталог*/
var lDotDot;
/* убираем последний слеш и каталог в котором мы сейчас находимся*/
lDotDot=lPath.substr(lPath,lPath.lastIndexOf('/'));
lDotDot=lDotDot.substr(lDotDot,lDotDot.lastIndexOf('/'));
lDotDot = lPath.substr(lPath,lPath.lastIndexOf('/'));
lDotDot = lDotDot.substr(lDotDot,lDotDot.lastIndexOf('/'));
/* Если предыдущий каталог корневой */
if(lDotDot==='')lDotDot='/';
if(lDotDot === '')lDotDot = '/';
/* Сохраняем путь к каталогу верхнего уровня*/
lFileTable += '<li class=current-file>'+
'<span class="mini-icon directory">' +
'</span>' +
'<span class=name>' +
'<a href="'+lFS_s+lNoJS_s +
'<a href="' + lFS_s+lNoJS_s +
lDotDot +
'">'+"..</a>" +
'">' + "..</a>" +
'</span>' +
'<span class=size>&lt;dir&gt;</span>'+
'<span class=owner>.</span>' +
'<span class=mode></span>' +
'</li>';
}
var lLength=files.length;
var lLength = files.length;
for(var i=1;i<lLength;i++){
lFileTable +='<li class>';
for(var i = 1; i < lLength; i++){
lFileTable += '<li class>';
lFileTable += '<span class="mini-icon ';
/* если папка - выводим другую иконку */
lFileTable += (files[i].size==='dir'?
'directory':'text-file') +

View file

@ -271,6 +271,17 @@ CloudServer._controller=function(pReq, pRes)
var url = require("url");
var lParsedUrl = url.parse(pReq.url);
var pathname = lParsedUrl.pathname;
/* varible contain one of queris:
* download - change content-type for
* make downloading process
* from client js
* json - /no-js/ will be removed, and
* if we will wont get directory
* content wi will set json
* query like this
* ?json
*/
var lQuery = lParsedUrl.query;
if(lQuery)
console.log('query = ' + lQuery);
@ -288,7 +299,7 @@ CloudServer._controller=function(pReq, pRes)
if (lAcceptEncoding &&
lAcceptEncoding.match(/\bgzip\b/) &&
Zlib){
CloudServer.Gzip=true;
CloudServer.Gzip = true;
}
/* путь в ссылке, который говорит
* что js отключен
@ -299,28 +310,28 @@ CloudServer._controller=function(pReq, pRes)
if(pathname!=='/favicon.ico')
{
console.log("request for " + pathname + " received...");
var lName;
/* если в пути нет информации ни о ФС,
* ни об отсутствии js,
* ни о том, что это корневой
* каталог - загружаем файлы проэкта
*/
if(pathname.indexOf(lFS_s) < 0 &&
pathname.indexOf(lNoJS_s) < 0 &&
pathname!=='/'){
if(pathname.indexOf(lFS_s) < 0 &&
pathname.indexOf(lNoJS_s) < 0 &&
pathname!=='/' &&
lQuery !=='json'){
/* если имена файлов проекта - загружаем их*/
/* убираем слеш и читаем файл с текущец директории*/
/* добавляем текующий каталог к пути */
lName='.'+pathname;
var lName = '.' + pathname;
console.log('reading '+lName);
/* сохраняем указатель на response и имя */
CloudServer.Responses[lName]=pRes;
CloudServer.Responses[lName] = pRes;
/* saving status OK for current file */
CloudServer.Statuses[lName] = 200;
CloudServer.Statuses[lName] = 200;
/* Берём значение из кэша
* сжатый файл - если gzip-поддерживаеться браузером
@ -381,20 +392,29 @@ CloudServer._controller=function(pReq, pRes)
* длиннее
*/
if(pathname.indexOf(lNoJS_s)!==lFS_s.length && pathname!=='/'){
CloudServer.NoJS=false;
}else pathname=pathname.replace(lNoJS_s,'');
if(pathname.indexOf(lNoJS_s) !== lFS_s.length &&
pathname !== '/'){
CloudServer.NoJS = false;
}else pathname = pathname.replace(lNoJS_s,'');
/* убираем индекс файловой системы */
if(pathname.indexOf(lFS_s)===0){
if(pathname.indexOf(lFS_s) === 0){
pathname = pathname.replace(lFS_s,'');
/* если посетитель только зашел на сайт
* no-js будет пустым, как и fs
*/
/* если в пути нету fs - посетитель только зашел на сайт
/* if query json setted up
* load json data, no-js false.
*/
if(lQuery === 'json'){
CloudServer.NoJS = false;
}
/* если посетитель только зашел на сайт
* no-js будет пустым, как и fs.
* Если в пути нету fs - посетитель только зашел на сайт
* загружаем его полностью.
*/
}else CloudServer.NoJS=true;
} else CloudServer.NoJS = true;
/* если в итоге путь пустой
* делаем его корневым
*/
@ -403,12 +423,12 @@ CloudServer._controller=function(pReq, pRes)
DirPath = pathname;
CloudServer.Responses[DirPath] = pRes;
CloudServer.Responses[DirPath] = pRes;
CloudServer.Statuses[DirPath] = 200;
CloudServer.Statuses[DirPath] = 200;
/* saving query of current file */
CloudServer.Queries[DirPath] = lQuery;
CloudServer.Queries[DirPath] = lQuery;
/* Проверяем с папкой ли мы имеем дело */
@ -419,16 +439,16 @@ CloudServer._controller=function(pReq, pRes)
* меняем название html-файла и
* загружаем сжатый html-файл в дальнейшем
*/
CloudServer.INDEX=(CloudServer.Minify._allowed.html?
CloudServer.INDEX = (CloudServer.Minify._allowed.html ?
'.' + CloudServer.Minify.MinFolder + 'index.min.html'
:CloudServer.INDEX);
: CloudServer.INDEX);
/*
* сохраним указатель на response
* и на статус ответа
*/
CloudServer.Responses[CloudServer.INDEX] = pRes;
CloudServer.Statuses[CloudServer.INDEX] = 200;
CloudServer.Statuses [CloudServer.INDEX] = 200;
}
}
};