mirror of
https://github.com/lrsjng/h5ai.git
synced 2025-05-25 12:34:47 -04:00
Semantic changes.
This commit is contained in:
parent
9163996ac2
commit
1dea89befb
24 changed files with 243 additions and 237 deletions
|
@ -7,7 +7,7 @@
|
||||||
display: list-item;
|
display: list-item;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.entry {
|
&.item {
|
||||||
|
|
||||||
a, a:active, a:visited {
|
a, a:active, a:visited {
|
||||||
border-top: 1px solid @item-border-col-sep;
|
border-top: 1px solid @item-border-col-sep;
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.entry + .entry {
|
&.item + .item {
|
||||||
|
|
||||||
a, a:active, a:visited {
|
a, a:active, a:visited {
|
||||||
border-top: none;
|
border-top: none;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
li {
|
li {
|
||||||
|
|
||||||
&.entry {
|
&.item {
|
||||||
float: left;
|
float: left;
|
||||||
|
|
||||||
a, a:active, a:visited {
|
a, a:active, a:visited {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
li {
|
li {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
&.entry {
|
&.item {
|
||||||
float: left;
|
float: left;
|
||||||
|
|
||||||
a, a:active, a:visited {
|
a, a:active, a:visited {
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
li {
|
li {
|
||||||
|
|
||||||
&.entry {
|
&.item {
|
||||||
|
|
||||||
a, a:active, a:visited {
|
a, a:active, a:visited {
|
||||||
height: 56px;
|
height: 56px;
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.entry + .entry {
|
&.item + .item {
|
||||||
|
|
||||||
a, a:active, a:visited {
|
a, a:active, a:visited {
|
||||||
border-top: none;
|
border-top: none;
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.entry {
|
&.item {
|
||||||
|
|
||||||
a, a:active, a:visited {
|
a, a:active, a:visited {
|
||||||
display: block;
|
display: block;
|
||||||
|
|
|
@ -15,10 +15,10 @@ body {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#extended.view-details {
|
#extended.view-details {
|
||||||
.header .label, .entry .label {
|
.header .label, .item .label {
|
||||||
margin-right: 110px;
|
margin-right: 110px;
|
||||||
}
|
}
|
||||||
.header .date, .entry .date {
|
.header .date, .item .date {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,35 +69,35 @@ modulejs.define('core/location', ['_', 'modernizr', 'core/settings', 'core/event
|
||||||
|
|
||||||
getItem = function () {
|
getItem = function () {
|
||||||
|
|
||||||
return modulejs.require('model/entry').get(absHref);
|
return modulejs.require('model/item').get(absHref);
|
||||||
},
|
},
|
||||||
|
|
||||||
load = function (callback) {
|
load = function (callback) {
|
||||||
|
|
||||||
modulejs.require('core/server').request({action: 'get', entries: true, entriesHref: absHref, entriesWhat: 1}, function (json) {
|
modulejs.require('core/server').request({action: 'get', entries: true, entriesHref: absHref, entriesWhat: 1}, function (json) {
|
||||||
|
|
||||||
var Entry = modulejs.require('model/entry'),
|
var Item = modulejs.require('model/item'),
|
||||||
entry = Entry.get(absHref);
|
item = Item.get(absHref);
|
||||||
|
|
||||||
if (json) {
|
if (json) {
|
||||||
|
|
||||||
var found = {};
|
var found = {};
|
||||||
|
|
||||||
_.each(json.entries, function (jsonEntry) {
|
_.each(json.entries, function (jsonItem) {
|
||||||
|
|
||||||
var e = Entry.get(jsonEntry.absHref, jsonEntry.time, jsonEntry.size, jsonEntry.status, jsonEntry.content);
|
var e = Item.get(jsonItem.absHref, jsonItem.time, jsonItem.size, jsonItem.status, jsonItem.content);
|
||||||
found[e.absHref] = true;
|
found[e.absHref] = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
_.each(entry.content, function (e) {
|
_.each(item.content, function (e) {
|
||||||
|
|
||||||
if (!found[e.absHref]) {
|
if (!found[e.absHref]) {
|
||||||
Entry.remove(e.absHref);
|
Item.remove(e.absHref);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (_.isFunction(callback)) {
|
if (_.isFunction(callback)) {
|
||||||
callback(entry);
|
callback(item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -14,49 +14,48 @@ modulejs.define('ext/crumb', ['_', '$', 'core/settings', 'core/resource', 'core/
|
||||||
pageHintTemplate = '<img class="hint" src="' + resource.image('page') + '" alt="has index page"/>',
|
pageHintTemplate = '<img class="hint" src="' + resource.image('page') + '" alt="has index page"/>',
|
||||||
statusHintTemplate = '<span class="hint"/>',
|
statusHintTemplate = '<span class="hint"/>',
|
||||||
|
|
||||||
update = function (entry, force) {
|
update = function (item, force) {
|
||||||
|
|
||||||
if (!force && entry.$crumb && entry.$crumb.data('status') === entry.status) {
|
if (!force && item.$crumb) {
|
||||||
return entry.$crumb;
|
return item.$crumb;
|
||||||
}
|
}
|
||||||
|
|
||||||
var $html = $(template),
|
var $html = $(template),
|
||||||
$a = $html.find('a');
|
$a = $html.find('a');
|
||||||
|
|
||||||
$html
|
$html
|
||||||
.addClass(entry.isFolder() ? 'folder' : 'file')
|
.addClass(item.isFolder() ? 'folder' : 'file')
|
||||||
.data('item', entry)
|
.data('item', item);
|
||||||
.data('status', entry.status);
|
|
||||||
|
|
||||||
location.setLink($a, entry);
|
location.setLink($a, item);
|
||||||
$a.find('span').text(entry.label).end();
|
$a.find('span').text(item.label).end();
|
||||||
|
|
||||||
if (entry.isDomain()) {
|
if (item.isDomain()) {
|
||||||
$html.addClass('domain');
|
$html.addClass('domain');
|
||||||
$a.find('img').attr('src', resource.image('home'));
|
$a.find('img').attr('src', resource.image('home'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry.isRoot()) {
|
if (item.isRoot()) {
|
||||||
$html.addClass('root');
|
$html.addClass('root');
|
||||||
$a.find('img').attr('src', resource.image('home'));
|
$a.find('img').attr('src', resource.image('home'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry.isCurrentFolder()) {
|
if (item.isCurrentFolder()) {
|
||||||
$html.addClass('current');
|
$html.addClass('current');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_.isNumber(entry.status)) {
|
if (_.isNumber(item.status)) {
|
||||||
if (entry.status === 200) {
|
if (item.status === 200) {
|
||||||
$a.append($(pageHintTemplate));
|
$a.append($(pageHintTemplate));
|
||||||
} else {
|
} else {
|
||||||
$a.append($(statusHintTemplate).text('(' + entry.status + ')'));
|
$a.append($(statusHintTemplate).text('(' + item.status + ')'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry.$crumb) {
|
if (item.$crumb) {
|
||||||
entry.$crumb.replaceWith($html);
|
item.$crumb.replaceWith($html);
|
||||||
}
|
}
|
||||||
entry.$crumb = $html;
|
item.$crumb = $html;
|
||||||
|
|
||||||
return $html;
|
return $html;
|
||||||
},
|
},
|
||||||
|
|
|
@ -45,9 +45,9 @@ modulejs.define('ext/delete', ['_', '$', 'core/settings', 'core/event', 'core/re
|
||||||
|
|
||||||
selectedHrefsStr = '';
|
selectedHrefsStr = '';
|
||||||
if (entries.length) {
|
if (entries.length) {
|
||||||
selectedHrefsStr = _.map(entries, function (entry) {
|
selectedHrefsStr = _.map(entries, function (item) {
|
||||||
|
|
||||||
return entry.absHref;
|
return item.absHref;
|
||||||
}).join(':');
|
}).join(':');
|
||||||
$delete.appendTo('#navbar').show();
|
$delete.appendTo('#navbar').show();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -60,9 +60,9 @@ modulejs.define('ext/download', ['_', '$', 'core/settings', 'core/resource', 'co
|
||||||
|
|
||||||
selectedHrefsStr = '';
|
selectedHrefsStr = '';
|
||||||
if (entries.length) {
|
if (entries.length) {
|
||||||
selectedHrefsStr = _.map(entries, function (entry) {
|
selectedHrefsStr = _.map(entries, function (item) {
|
||||||
|
|
||||||
return entry.absHref;
|
return item.absHref;
|
||||||
}).join(':');
|
}).join(':');
|
||||||
$download.appendTo('#navbar').show();
|
$download.appendTo('#navbar').show();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -22,7 +22,7 @@ modulejs.define('ext/filter', ['_', '$', 'core/settings', 'core/resource'], func
|
||||||
duration = 200;
|
duration = 200;
|
||||||
|
|
||||||
if (re) {
|
if (re) {
|
||||||
$('#extended .entry').each(function () {
|
$('#items .item').each(function () {
|
||||||
|
|
||||||
var label = $(this).find('.label').text();
|
var label = $(this).find('.label').text();
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ modulejs.define('ext/filter', ['_', '$', 'core/settings', 'core/resource'], func
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
match = $('#extended .entry');
|
match = $('#items .item');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($(match).length) {
|
if ($(match).length) {
|
||||||
|
|
|
@ -55,7 +55,7 @@ modulejs.define('ext/l10n', ['_', '$', 'core/settings', 'core/langs', 'core/form
|
||||||
|
|
||||||
format.setDefaultDateFormat(currentLang.dateFormat);
|
format.setDefaultDateFormat(currentLang.dateFormat);
|
||||||
|
|
||||||
$('#extended .entry .date').each(function () {
|
$('#items .item .date').each(function () {
|
||||||
|
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
|
|
||||||
|
|
|
@ -201,32 +201,32 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/resource',
|
||||||
event.stopImmediatePropagation();
|
event.stopImmediatePropagation();
|
||||||
},
|
},
|
||||||
|
|
||||||
initEntry = function (entry) {
|
initItem = function (item) {
|
||||||
|
|
||||||
if (entry.$extended && _.indexOf(settings.types, entry.type) >= 0) {
|
if (item.$extended && _.indexOf(settings.types, item.type) >= 0) {
|
||||||
entry.$extended.find('a').on('click', function (event) {
|
item.$extended.find('a').on('click', function (event) {
|
||||||
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
var matchedEntries = _.compact(_.map($('#extended .entry'), function (entry) {
|
var matchedEntries = _.compact(_.map($('#items .item'), function (item) {
|
||||||
|
|
||||||
entry = $(entry).data('entry');
|
item = $(item).data('item');
|
||||||
return _.indexOf(settings.types, entry.type) >= 0 ? entry : null;
|
return _.indexOf(settings.types, item.type) >= 0 ? item : null;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
onEnter(matchedEntries, _.indexOf(matchedEntries, entry));
|
onEnter(matchedEntries, _.indexOf(matchedEntries, item));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onLocationChanged = function (item) {
|
onLocationChanged = function (item) {
|
||||||
|
|
||||||
_.each(item.content, initEntry);
|
_.each(item.content, initItem);
|
||||||
},
|
},
|
||||||
|
|
||||||
onLocationRefreshed = function (item, added, removed) {
|
onLocationRefreshed = function (item, added, removed) {
|
||||||
|
|
||||||
_.each(added, initEntry);
|
_.each(added, initItem);
|
||||||
},
|
},
|
||||||
|
|
||||||
init = function () {
|
init = function () {
|
||||||
|
|
|
@ -252,32 +252,32 @@ modulejs.define('ext/preview-txt', ['_', '$', 'core/settings', 'core/resource',
|
||||||
event.stopImmediatePropagation();
|
event.stopImmediatePropagation();
|
||||||
},
|
},
|
||||||
|
|
||||||
initEntry = function (entry) {
|
initItem = function (item) {
|
||||||
|
|
||||||
if (entry.$extended && _.indexOf(_.keys(settings.types), entry.type) >= 0) {
|
if (item.$extended && _.indexOf(_.keys(settings.types), item.type) >= 0) {
|
||||||
entry.$extended.find('a').on('click', function (event) {
|
item.$extended.find('a').on('click', function (event) {
|
||||||
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
var matchedEntries = _.compact(_.map($('#extended .entry'), function (entry) {
|
var matchedEntries = _.compact(_.map($('#item .item'), function (item) {
|
||||||
|
|
||||||
entry = $(entry).data('entry');
|
item = $(item).data('item');
|
||||||
return _.indexOf(_.keys(settings.types), entry.type) >= 0 ? entry : null;
|
return _.indexOf(_.keys(settings.types), item.type) >= 0 ? item : null;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
onEnter(matchedEntries, _.indexOf(matchedEntries, entry));
|
onEnter(matchedEntries, _.indexOf(matchedEntries, item));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onLocationChanged = function (item) {
|
onLocationChanged = function (item) {
|
||||||
|
|
||||||
_.each(item.content, initEntry);
|
_.each(item.content, initItem);
|
||||||
},
|
},
|
||||||
|
|
||||||
onLocationRefreshed = function (item, added, removed) {
|
onLocationRefreshed = function (item, added, removed) {
|
||||||
|
|
||||||
_.each(added, initEntry);
|
_.each(added, initItem);
|
||||||
},
|
},
|
||||||
|
|
||||||
init = function () {
|
init = function () {
|
||||||
|
|
|
@ -26,7 +26,7 @@ modulejs.define('ext/qrcode', ['_', '$', 'modernizr', 'core/settings', 'core/eve
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
update = function (entry) {
|
update = function (item) {
|
||||||
|
|
||||||
loadQrCodeExtension(function () {
|
loadQrCodeExtension(function () {
|
||||||
$qrcode.empty().qrcode({
|
$qrcode.empty().qrcode({
|
||||||
|
@ -34,21 +34,21 @@ modulejs.define('ext/qrcode', ['_', '$', 'modernizr', 'core/settings', 'core/eve
|
||||||
width: settings.size,
|
width: settings.size,
|
||||||
height: settings.size,
|
height: settings.size,
|
||||||
color: '#333',
|
color: '#333',
|
||||||
text: 'http://' + document.domain + entry.absHref
|
text: 'http://' + document.domain + item.absHref
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
onMouseenter = function (entry) {
|
onMouseenter = function (item) {
|
||||||
|
|
||||||
if (!entry.isFolder()) {
|
if (!item.isFolder()) {
|
||||||
update(entry);
|
update(item);
|
||||||
clearTimeout(hideTimeoutId);
|
clearTimeout(hideTimeoutId);
|
||||||
$qrcode.stop(true, true).fadeIn(400);
|
$qrcode.stop(true, true).fadeIn(400);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onMouseleave = function (entry) {
|
onMouseleave = function (item) {
|
||||||
|
|
||||||
hideTimeoutId = setTimeout(function () {
|
hideTimeoutId = setTimeout(function () {
|
||||||
|
|
||||||
|
@ -64,8 +64,8 @@ modulejs.define('ext/qrcode', ['_', '$', 'modernizr', 'core/settings', 'core/eve
|
||||||
|
|
||||||
$qrcode = $(template).appendTo('body');
|
$qrcode = $(template).appendTo('body');
|
||||||
|
|
||||||
event.sub('entry.mouseenter', onMouseenter);
|
event.sub('item.mouseenter', onMouseenter);
|
||||||
event.sub('entry.mouseleave', onMouseleave);
|
event.sub('item.mouseleave', onMouseleave);
|
||||||
};
|
};
|
||||||
|
|
||||||
init();
|
init();
|
||||||
|
|
|
@ -13,9 +13,9 @@ modulejs.define('ext/select', ['_', '$', 'core/settings', 'core/event'], functio
|
||||||
|
|
||||||
publish = function () {
|
publish = function () {
|
||||||
|
|
||||||
var entries = _.map($('#extended .entry.selected'), function (entryElement) {
|
var entries = _.map($('#items .item.selected'), function (itemElement) {
|
||||||
|
|
||||||
return $(entryElement).data('entry');
|
return $(itemElement).data('item');
|
||||||
});
|
});
|
||||||
|
|
||||||
event.pub('selection', entries);
|
event.pub('selection', entries);
|
||||||
|
@ -35,13 +35,13 @@ modulejs.define('ext/select', ['_', '$', 'core/settings', 'core/event'], functio
|
||||||
.show();
|
.show();
|
||||||
|
|
||||||
var selRect = $selectionRect.fracs('rect');
|
var selRect = $selectionRect.fracs('rect');
|
||||||
$('#extended .entry').removeClass('selecting').each(function () {
|
$('#items .item').removeClass('selecting').each(function () {
|
||||||
|
|
||||||
var $entry = $(this),
|
var $item = $(this),
|
||||||
rect = $entry.find('a').fracs('rect'),
|
rect = $item.find('a').fracs('rect'),
|
||||||
inter = selRect.intersection(rect);
|
inter = selRect.intersection(rect);
|
||||||
if (inter && !$entry.hasClass('folder-parent')) {
|
if (inter && !$item.hasClass('folder-parent')) {
|
||||||
$entry.addClass('selecting');
|
$item.addClass('selecting');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -50,8 +50,8 @@ modulejs.define('ext/select', ['_', '$', 'core/settings', 'core/event'], functio
|
||||||
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
$document.off('mousemove', selectionUpdate);
|
$document.off('mousemove', selectionUpdate);
|
||||||
$('#extended .entry.selecting.selected').removeClass('selecting').removeClass('selected');
|
$('#items .item.selecting.selected').removeClass('selecting').removeClass('selected');
|
||||||
$('#extended .entry.selecting').removeClass('selecting').addClass('selected');
|
$('#items .item.selecting').removeClass('selecting').addClass('selected');
|
||||||
publish();
|
publish();
|
||||||
|
|
||||||
$selectionRect
|
$selectionRect
|
||||||
|
@ -87,7 +87,7 @@ modulejs.define('ext/select', ['_', '$', 'core/settings', 'core/event'], functio
|
||||||
|
|
||||||
$(':focus').blur();
|
$(':focus').blur();
|
||||||
if (!event.ctrlKey && !event.metaKey) {
|
if (!event.ctrlKey && !event.metaKey) {
|
||||||
$('#extended .entry').removeClass('selected');
|
$('#items .item').removeClass('selected');
|
||||||
publish();
|
publish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,13 +8,13 @@ modulejs.define('ext/sort', ['_', '$', 'core/settings', 'core/resource', 'core/e
|
||||||
|
|
||||||
storekey = 'sort.order',
|
storekey = 'sort.order',
|
||||||
|
|
||||||
type = function (entry) {
|
type = function (item) {
|
||||||
|
|
||||||
var $entry = $(entry);
|
var $item = $(item);
|
||||||
|
|
||||||
if ($entry.hasClass('folder-parent')) {
|
if ($item.hasClass('folder-parent')) {
|
||||||
return 0;
|
return 0;
|
||||||
} else if ($entry.hasClass('folder')) {
|
} else if ($item.hasClass('folder')) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 2;
|
return 2;
|
||||||
|
@ -22,17 +22,17 @@ modulejs.define('ext/sort', ['_', '$', 'core/settings', 'core/resource', 'core/e
|
||||||
|
|
||||||
cmpFn = function (rev, getVal) {
|
cmpFn = function (rev, getVal) {
|
||||||
|
|
||||||
return function (entry1, entry2) {
|
return function (item1, item2) {
|
||||||
|
|
||||||
var res, val1, val2;
|
var res, val1, val2;
|
||||||
|
|
||||||
res = type(entry1) - type(entry2);
|
res = type(item1) - type(item2);
|
||||||
if (res !== 0) {
|
if (res !== 0) {
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
val1 = getVal(entry1);
|
val1 = getVal(item1);
|
||||||
val2 = getVal(entry2);
|
val2 = getVal(item2);
|
||||||
if (val1 < val2) {
|
if (val1 < val2) {
|
||||||
return rev ? 1 : -1;
|
return rev ? 1 : -1;
|
||||||
} else if (val1 > val2) {
|
} else if (val1 > val2) {
|
||||||
|
@ -42,17 +42,17 @@ modulejs.define('ext/sort', ['_', '$', 'core/settings', 'core/resource', 'core/e
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
getName = function (entry) {
|
getName = function (item) {
|
||||||
|
|
||||||
return $(entry).find('.label').text().toLowerCase();
|
return $(item).find('.label').text().toLowerCase();
|
||||||
},
|
},
|
||||||
getTime = function (entry) {
|
getTime = function (item) {
|
||||||
|
|
||||||
return $(entry).find('.date').data('time');
|
return $(item).find('.date').data('time');
|
||||||
},
|
},
|
||||||
getSize = function (entry) {
|
getSize = function (item) {
|
||||||
|
|
||||||
return $(entry).find('.size').data('bytes');
|
return $(item).find('.size').data('bytes');
|
||||||
},
|
},
|
||||||
|
|
||||||
$all, orders,
|
$all, orders,
|
||||||
|
@ -65,10 +65,10 @@ modulejs.define('ext/sort', ['_', '$', 'core/settings', 'core/resource', 'core/e
|
||||||
|
|
||||||
$all.removeClass('ascending').removeClass('descending');
|
$all.removeClass('ascending').removeClass('descending');
|
||||||
order.head.addClass(order.clas);
|
order.head.addClass(order.clas);
|
||||||
$('#extended .entry').detach().sort(order.fn).appendTo('#extended > ul');
|
$('#items .item').detach().sort(order.fn).appendTo('#items');
|
||||||
},
|
},
|
||||||
|
|
||||||
onContentChanged = function (entry) {
|
onContentChanged = function (item) {
|
||||||
|
|
||||||
sortBy(store.get(storekey) || settings.order);
|
sortBy(store.get(storekey) || settings.order);
|
||||||
},
|
},
|
||||||
|
@ -81,7 +81,7 @@ modulejs.define('ext/sort', ['_', '$', 'core/settings', 'core/resource', 'core/e
|
||||||
|
|
||||||
var $ascending = $('<img src="' + resource.image('ascending') + '" class="sort ascending" alt="ascending" />'),
|
var $ascending = $('<img src="' + resource.image('ascending') + '" class="sort ascending" alt="ascending" />'),
|
||||||
$descending = $('<img src="' + resource.image('descending') + '" class="sort descending" alt="descending" />'),
|
$descending = $('<img src="' + resource.image('descending') + '" class="sort descending" alt="descending" />'),
|
||||||
$header = $('#extended li.header'),
|
$header = $('#items li.header'),
|
||||||
$label = $header.find('a.label'),
|
$label = $header.find('a.label'),
|
||||||
$date = $header.find('a.date'),
|
$date = $header.find('a.date'),
|
||||||
$size = $header.find('a.size');
|
$size = $header.find('a.size');
|
||||||
|
|
|
@ -54,25 +54,25 @@ modulejs.define('ext/statusbar', ['_', '$', 'core/settings', 'core/format', 'cor
|
||||||
event.sub('location.changed', onLocationChanged);
|
event.sub('location.changed', onLocationChanged);
|
||||||
event.sub('location.refreshed', onLocationChanged);
|
event.sub('location.refreshed', onLocationChanged);
|
||||||
|
|
||||||
event.sub('entry.mouseenter', function (entry) {
|
event.sub('item.mouseenter', function (item) {
|
||||||
|
|
||||||
if (entry.isCurrentParentFolder()) {
|
if (item.isCurrentParentFolder()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var $span = $('<span/>').append(entry.label);
|
var $span = $('<span/>').append(item.label);
|
||||||
|
|
||||||
if (_.isNumber(entry.time)) {
|
if (_.isNumber(item.time)) {
|
||||||
$span.append(sepTemplate).append(format.formatDate(entry.time));
|
$span.append(sepTemplate).append(format.formatDate(item.time));
|
||||||
}
|
}
|
||||||
if (_.isNumber(entry.size)) {
|
if (_.isNumber(item.size)) {
|
||||||
$span.append(sepTemplate).append(format.formatSize(entry.size));
|
$span.append(sepTemplate).append(format.formatSize(item.size));
|
||||||
}
|
}
|
||||||
|
|
||||||
update($span);
|
update($span);
|
||||||
});
|
});
|
||||||
|
|
||||||
event.sub('entry.mouseleave', function (entry) {
|
event.sub('item.mouseleave', function (item) {
|
||||||
|
|
||||||
update();
|
update();
|
||||||
});
|
});
|
||||||
|
|
|
@ -25,45 +25,55 @@ modulejs.define('ext/thumbnails', ['_', 'core/settings', 'core/event', 'core/ser
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
checkEntry = function (entry) {
|
checkItem = function (item) {
|
||||||
|
|
||||||
var type = null;
|
var type = null;
|
||||||
|
|
||||||
if (_.indexOf(settings.img, entry.type) >= 0) {
|
if (_.indexOf(settings.img, item.type) >= 0) {
|
||||||
type = 'img';
|
type = 'img';
|
||||||
} else if (_.indexOf(settings.mov, entry.type) >= 0) {
|
} else if (_.indexOf(settings.mov, item.type) >= 0) {
|
||||||
type = 'mov';
|
type = 'mov';
|
||||||
} else if (_.indexOf(settings.doc, entry.type) >= 0) {
|
} else if (_.indexOf(settings.doc, item.type) >= 0) {
|
||||||
type = 'doc';
|
type = 'doc';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type) {
|
if (type) {
|
||||||
requestThumbSmall(type, entry.absHref, function (src) {
|
if (item.thumbSmall) {
|
||||||
|
item.$extended.find('.icon.small img').addClass('thumb').attr('src', item.thumbSmall);
|
||||||
|
} else {
|
||||||
|
requestThumbSmall(type, item.absHref, function (src) {
|
||||||
|
|
||||||
if (src && entry.$extended) {
|
if (src && item.$extended) {
|
||||||
entry.$extended.find('.icon.small img').addClass('thumb').attr('src', src);
|
item.thumbSmall = src;
|
||||||
|
item.$extended.find('.icon.small img').addClass('thumb').attr('src', src);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
requestThumbBig(type, entry.absHref, function (src) {
|
}
|
||||||
|
if (item.thumbBig) {
|
||||||
|
item.$extended.find('.icon.big img').addClass('thumb').attr('src', item.thumbBig);
|
||||||
|
} else {
|
||||||
|
requestThumbBig(type, item.absHref, function (src) {
|
||||||
|
|
||||||
if (src && entry.$extended) {
|
if (src && item.$extended) {
|
||||||
entry.$extended.find('.icon.big img').addClass('thumb').attr('src', src);
|
item.thumbBig = src;
|
||||||
|
item.$extended.find('.icon.big img').addClass('thumb').attr('src', src);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onLocationChanged = function (item) {
|
onLocationChanged = function (item) {
|
||||||
|
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
|
|
||||||
_.each(item.content, checkEntry);
|
_.each(item.content, checkItem);
|
||||||
}, settings.delay);
|
}, settings.delay);
|
||||||
},
|
},
|
||||||
|
|
||||||
onLocationRefreshed = function (item, added, removed) {
|
onLocationRefreshed = function (item, added, removed) {
|
||||||
|
|
||||||
_.each(added, checkEntry);
|
_.each(added, checkItem);
|
||||||
},
|
},
|
||||||
|
|
||||||
init = function () {
|
init = function () {
|
||||||
|
|
|
@ -7,7 +7,7 @@ modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/e
|
||||||
maxSubfolders: 50
|
maxSubfolders: 50
|
||||||
}, allsettings.tree),
|
}, allsettings.tree),
|
||||||
|
|
||||||
template = '<div class="entry">' +
|
template = '<div class="item">' +
|
||||||
'<span class="indicator none">' +
|
'<span class="indicator none">' +
|
||||||
'<img src="' + resource.image('tree') + '"/>' +
|
'<img src="' + resource.image('tree') + '"/>' +
|
||||||
'</span>' +
|
'</span>' +
|
||||||
|
@ -20,7 +20,7 @@ modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/e
|
||||||
|
|
||||||
magicSequence = '=h5ai=',
|
magicSequence = '=h5ai=',
|
||||||
|
|
||||||
update = function (entry) {
|
update = function (item) {
|
||||||
|
|
||||||
var $html = $(template),
|
var $html = $(template),
|
||||||
$indicator = $html.find('.indicator'),
|
$indicator = $html.find('.indicator'),
|
||||||
|
@ -29,26 +29,26 @@ modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/e
|
||||||
$label = $html.find('.label');
|
$label = $html.find('.label');
|
||||||
|
|
||||||
$html
|
$html
|
||||||
.addClass(entry.isFolder() ? 'folder' : 'file')
|
.addClass(item.isFolder() ? 'folder' : 'file')
|
||||||
.data('entry', entry)
|
.data('item', item)
|
||||||
.data('status', entry.status);
|
.data('status', item.status);
|
||||||
|
|
||||||
location.setLink($a, entry);
|
location.setLink($a, item);
|
||||||
$img.attr('src', resource.icon(entry.type));
|
$img.attr('src', resource.icon(item.type));
|
||||||
$label.text(entry.label);
|
$label.text(item.label);
|
||||||
|
|
||||||
if (entry.isFolder()) {
|
if (item.isFolder()) {
|
||||||
|
|
||||||
var subfolders = entry.getSubfolders();
|
var subfolders = item.getSubfolders();
|
||||||
|
|
||||||
// indicator
|
// indicator
|
||||||
if (!entry.status || (entry.status === magicSequence && !entry.isContentFetched) || subfolders.length) {
|
if (!item.status || (item.status === magicSequence && !item.isContentFetched) || subfolders.length) {
|
||||||
|
|
||||||
$indicator.removeClass('none');
|
$indicator.removeClass('none');
|
||||||
|
|
||||||
if (!entry.status || (entry.status === magicSequence && !entry.isContentFetched)) {
|
if (!item.status || (item.status === magicSequence && !item.isContentFetched)) {
|
||||||
$indicator.addClass('unknown');
|
$indicator.addClass('unknown');
|
||||||
} else if (entry.isContentVisible) {
|
} else if (item.isContentVisible) {
|
||||||
$indicator.addClass('open');
|
$indicator.addClass('open');
|
||||||
} else {
|
} else {
|
||||||
$indicator.addClass('close');
|
$indicator.addClass('close');
|
||||||
|
@ -56,19 +56,19 @@ modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/e
|
||||||
}
|
}
|
||||||
|
|
||||||
// is it the domain?
|
// is it the domain?
|
||||||
if (entry.isDomain()) {
|
if (item.isDomain()) {
|
||||||
$html.addClass('domain');
|
$html.addClass('domain');
|
||||||
$img.attr('src', resource.icon('folder-home'));
|
$img.attr('src', resource.icon('folder-home'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// is it the root?
|
// is it the root?
|
||||||
if (entry.isRoot()) {
|
if (item.isRoot()) {
|
||||||
$html.addClass('root');
|
$html.addClass('root');
|
||||||
$img.attr('src', resource.icon('folder-home'));
|
$img.attr('src', resource.icon('folder-home'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// is it the current folder?
|
// is it the current folder?
|
||||||
if (entry.isCurrentFolder()) {
|
if (item.isCurrentFolder()) {
|
||||||
$html.addClass('current');
|
$html.addClass('current');
|
||||||
$img.attr('src', resource.icon('folder-open'));
|
$img.attr('src', resource.icon('folder-open'));
|
||||||
}
|
}
|
||||||
|
@ -86,27 +86,27 @@ modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/e
|
||||||
if (subfolders.length > settings.maxSubfolders) {
|
if (subfolders.length > settings.maxSubfolders) {
|
||||||
$('<li class="summary">… ' + (subfolders.length - settings.maxSubfolders) + ' more subfolders</li>').appendTo($ul);
|
$('<li class="summary">… ' + (subfolders.length - settings.maxSubfolders) + ' more subfolders</li>').appendTo($ul);
|
||||||
}
|
}
|
||||||
if (!entry.isContentVisible) {
|
if (!item.isContentVisible) {
|
||||||
$ul.hide();
|
$ul.hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// reflect folder status
|
// reflect folder status
|
||||||
if (_.isNumber(entry.status)) {
|
if (_.isNumber(item.status)) {
|
||||||
if (entry.status === 200) {
|
if (item.status === 200) {
|
||||||
$img.attr('src', resource.icon('folder-page'));
|
$img.attr('src', resource.icon('folder-page'));
|
||||||
} else {
|
} else {
|
||||||
$html.addClass('error');
|
$html.addClass('error');
|
||||||
$a.append($(statusHintTemplate).text(entry.status));
|
$a.append($(statusHintTemplate).text(item.status));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (entry.$tree) {
|
if (item.$tree) {
|
||||||
entry.$tree.replaceWith($html);
|
item.$tree.replaceWith($html);
|
||||||
}
|
}
|
||||||
entry.$tree = $html;
|
item.$tree = $html;
|
||||||
|
|
||||||
return $html;
|
return $html;
|
||||||
},
|
},
|
||||||
|
@ -114,9 +114,9 @@ modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/e
|
||||||
createOnIndicatorClick = function () {
|
createOnIndicatorClick = function () {
|
||||||
|
|
||||||
var $tree = $('#tree'),
|
var $tree = $('#tree'),
|
||||||
slide = function (entry, $indicator, $content, down) {
|
slide = function (item, $indicator, $content, down) {
|
||||||
|
|
||||||
entry.isContentVisible = down;
|
item.isContentVisible = down;
|
||||||
$indicator.removeClass('open close').addClass(down ? 'open' : 'close');
|
$indicator.removeClass('open close').addClass(down ? 'open' : 'close');
|
||||||
$tree.scrollpanel('update', true);
|
$tree.scrollpanel('update', true);
|
||||||
$content[down ? 'slideDown' : 'slideUp'](function () {
|
$content[down ? 'slideDown' : 'slideUp'](function () {
|
||||||
|
@ -128,32 +128,32 @@ modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/e
|
||||||
return function () {
|
return function () {
|
||||||
|
|
||||||
var $indicator = $(this),
|
var $indicator = $(this),
|
||||||
$entry = $indicator.closest('.entry'),
|
$item = $indicator.closest('.item'),
|
||||||
entry = $entry.data('entry'),
|
item = $item.data('item'),
|
||||||
$content = $entry.find('> ul.content');
|
$content = $item.find('> ul.content');
|
||||||
|
|
||||||
if ($indicator.hasClass('unknown')) {
|
if ($indicator.hasClass('unknown')) {
|
||||||
|
|
||||||
entry.fetchContent(function (entry) {
|
item.fetchContent(function (item) {
|
||||||
|
|
||||||
entry.isContentVisible = false;
|
item.isContentVisible = false;
|
||||||
|
|
||||||
var $entry = update(entry),
|
var $item = update(item),
|
||||||
$indicator = $entry.find('> .indicator'),
|
$indicator = $item.find('> .indicator'),
|
||||||
$content = $entry.find('> ul.content');
|
$content = $item.find('> ul.content');
|
||||||
|
|
||||||
if (!$indicator.hasClass('none')) {
|
if (!$indicator.hasClass('none')) {
|
||||||
slide(entry, $indicator, $content, true);
|
slide(item, $indicator, $content, true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
} else if ($indicator.hasClass('open')) {
|
} else if ($indicator.hasClass('open')) {
|
||||||
|
|
||||||
slide(entry, $indicator, $content, false);
|
slide(item, $indicator, $content, false);
|
||||||
|
|
||||||
} else if ($indicator.hasClass('close')) {
|
} else if ($indicator.hasClass('close')) {
|
||||||
|
|
||||||
slide(entry, $indicator, $content, true);
|
slide(item, $indicator, $content, true);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
@ -171,15 +171,15 @@ modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/e
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
fetchTree = function (entry, callback) {
|
fetchTree = function (item, callback) {
|
||||||
|
|
||||||
entry.isContentVisible = true;
|
item.isContentVisible = true;
|
||||||
entry.fetchContent(function (entry) {
|
item.fetchContent(function (item) {
|
||||||
|
|
||||||
if (entry.parent) {
|
if (item.parent) {
|
||||||
fetchTree(entry.parent, callback);
|
fetchTree(item.parent, callback);
|
||||||
} else {
|
} else {
|
||||||
callback(entry);
|
callback(item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -199,13 +199,13 @@ modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/e
|
||||||
$tree.scrollpanel('update');
|
$tree.scrollpanel('update');
|
||||||
},
|
},
|
||||||
|
|
||||||
onContentChanged = function (entry) {
|
onContentChanged = function (item) {
|
||||||
|
|
||||||
while (entry.parent) {
|
while (item.parent) {
|
||||||
entry = entry.parent;
|
item = item.parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
update(entry);
|
update(item);
|
||||||
adjustSpacing();
|
adjustSpacing();
|
||||||
shiftTree(false, true);
|
shiftTree(false, true);
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings', 'core/server', 'core/location'], function (_, types, event, settings, server, location) {
|
modulejs.define('model/item', ['_', 'core/types', 'core/event', 'core/settings', 'core/server', 'core/location'], function (_, types, event, settings, server, location) {
|
||||||
|
|
||||||
|
|
||||||
var reEndsWithSlash = /\/$/,
|
var reEndsWithSlash = /\/$/,
|
||||||
|
@ -39,11 +39,9 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Cache
|
|
||||||
|
|
||||||
cache = {},
|
cache = {},
|
||||||
|
|
||||||
getEntry = function (absHref, time, size, status, isContentFetched) {
|
getItem = function (absHref, time, size, status, isContentFetched) {
|
||||||
|
|
||||||
absHref = location.forceEncoding(absHref);
|
absHref = location.forceEncoding(absHref);
|
||||||
|
|
||||||
|
@ -51,7 +49,7 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings'
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
var self = cache[absHref] || new Entry(absHref);
|
var self = cache[absHref] || new Item(absHref);
|
||||||
|
|
||||||
if (_.isNumber(time)) {
|
if (_.isNumber(time)) {
|
||||||
self.time = time;
|
self.time = time;
|
||||||
|
@ -69,7 +67,7 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings'
|
||||||
return self;
|
return self;
|
||||||
},
|
},
|
||||||
|
|
||||||
removeEntry = function (absHref) {
|
removeItem = function (absHref) {
|
||||||
|
|
||||||
absHref = location.forceEncoding(absHref);
|
absHref = location.forceEncoding(absHref);
|
||||||
|
|
||||||
|
@ -80,16 +78,16 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings'
|
||||||
if (self.parent) {
|
if (self.parent) {
|
||||||
delete self.parent.content[self.absHref];
|
delete self.parent.content[self.absHref];
|
||||||
}
|
}
|
||||||
_.each(self.content, function (entry) {
|
_.each(self.content, function (item) {
|
||||||
|
|
||||||
removeEntry(entry.absHref);
|
removeItem(item.absHref);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
fetchContent = function (absHref, callback) {
|
fetchContent = function (absHref, callback) {
|
||||||
|
|
||||||
var self = getEntry(absHref);
|
var self = getItem(absHref);
|
||||||
|
|
||||||
if (!_.isFunction(callback)) {
|
if (!_.isFunction(callback)) {
|
||||||
callback = function () {};
|
callback = function () {};
|
||||||
|
@ -101,8 +99,8 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings'
|
||||||
server.request({action: 'get', entries: true, entriesHref: self.absHref, entriesWhat: 1}, function (response) {
|
server.request({action: 'get', entries: true, entriesHref: self.absHref, entriesWhat: 1}, function (response) {
|
||||||
|
|
||||||
if (response.entries) {
|
if (response.entries) {
|
||||||
_.each(response.entries, function (entry) {
|
_.each(response.entries, function (item) {
|
||||||
getEntry(entry.absHref, entry.time, entry.size, entry.status, entry.content);
|
getItem(item.absHref, item.time, item.size, item.status, item.content);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,9 +111,7 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Entry
|
var Item = function (absHref) {
|
||||||
|
|
||||||
var Entry = function (absHref) {
|
|
||||||
|
|
||||||
var split = splitPath(absHref);
|
var split = splitPath(absHref);
|
||||||
|
|
||||||
|
@ -131,7 +127,7 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings'
|
||||||
this.content = {};
|
this.content = {};
|
||||||
|
|
||||||
if (split.parent) {
|
if (split.parent) {
|
||||||
this.parent = getEntry(split.parent);
|
this.parent = getItem(split.parent);
|
||||||
this.parent.content[this.absHref] = this;
|
this.parent.content[this.absHref] = this;
|
||||||
if (_.keys(this.parent.content).length > 1) {
|
if (_.keys(this.parent.content).length > 1) {
|
||||||
this.parent.isContentFetched = true;
|
this.parent.isContentFetched = true;
|
||||||
|
@ -139,7 +135,7 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
_.extend(Entry.prototype, {
|
_.extend(Item.prototype, {
|
||||||
|
|
||||||
isFolder: function () {
|
isFolder: function () {
|
||||||
|
|
||||||
|
@ -158,7 +154,7 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings'
|
||||||
|
|
||||||
isCurrentParentFolder: function () {
|
isCurrentParentFolder: function () {
|
||||||
|
|
||||||
return this === getEntry(location.getAbsHref()).parent;
|
return this === getItem(location.getAbsHref()).parent;
|
||||||
},
|
},
|
||||||
|
|
||||||
isDomain: function () {
|
isDomain: function () {
|
||||||
|
@ -188,12 +184,12 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings'
|
||||||
|
|
||||||
getCrumb: function () {
|
getCrumb: function () {
|
||||||
|
|
||||||
var entry = this,
|
var item = this,
|
||||||
crumb = [entry];
|
crumb = [item];
|
||||||
|
|
||||||
while (entry.parent) {
|
while (item.parent) {
|
||||||
entry = entry.parent;
|
item = item.parent;
|
||||||
crumb.unshift(entry);
|
crumb.unshift(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
return crumb;
|
return crumb;
|
||||||
|
@ -201,12 +197,12 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings'
|
||||||
|
|
||||||
getSubfolders: function () {
|
getSubfolders: function () {
|
||||||
|
|
||||||
return _.sortBy(_.filter(this.content, function (entry) {
|
return _.sortBy(_.filter(this.content, function (item) {
|
||||||
|
|
||||||
return entry.isFolder();
|
return item.isFolder();
|
||||||
}), function (entry) {
|
}), function (item) {
|
||||||
|
|
||||||
return entry.label.toLowerCase();
|
return item.label.toLowerCase();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -215,9 +211,9 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings'
|
||||||
var folders = 0,
|
var folders = 0,
|
||||||
files = 0;
|
files = 0;
|
||||||
|
|
||||||
_.each(this.content, function (entry) {
|
_.each(this.content, function (item) {
|
||||||
|
|
||||||
if (entry.isFolder()) {
|
if (item.isFolder()) {
|
||||||
folders += 1;
|
folders += 1;
|
||||||
} else {
|
} else {
|
||||||
files += 1;
|
files += 1;
|
||||||
|
@ -225,11 +221,11 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings'
|
||||||
});
|
});
|
||||||
|
|
||||||
var depth = 0,
|
var depth = 0,
|
||||||
entry = this;
|
item = this;
|
||||||
|
|
||||||
while (entry.parent) {
|
while (item.parent) {
|
||||||
depth += 1;
|
depth += 1;
|
||||||
entry = entry.parent;
|
item = item.parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
@ -241,7 +237,7 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/event', 'core/settings'
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
get: getEntry,
|
get: getItem,
|
||||||
remove: removeEntry
|
remove: removeItem
|
||||||
};
|
};
|
||||||
});
|
});
|
|
@ -6,7 +6,7 @@ modulejs.define('view/items', ['_', '$', 'core/settings', 'core/resource', 'core
|
||||||
binaryPrefix: false
|
binaryPrefix: false
|
||||||
}, allsettings.view),
|
}, allsettings.view),
|
||||||
|
|
||||||
template = '<li class="entry">' +
|
itemTemplate = '<li class="item">' +
|
||||||
'<a>' +
|
'<a>' +
|
||||||
'<span class="icon small"><img/></span>' +
|
'<span class="icon small"><img/></span>' +
|
||||||
'<span class="icon big"><img/></span>' +
|
'<span class="icon big"><img/></span>' +
|
||||||
|
@ -16,7 +16,7 @@ modulejs.define('view/items', ['_', '$', 'core/settings', 'core/resource', 'core
|
||||||
'</a>' +
|
'</a>' +
|
||||||
'</li>',
|
'</li>',
|
||||||
hintTemplate = '<span class="hint"/>',
|
hintTemplate = '<span class="hint"/>',
|
||||||
listTemplate = '<ul>' +
|
itemsTemplate = '<ul id="items">' +
|
||||||
'<li class="header">' +
|
'<li class="header">' +
|
||||||
'<a class="icon"/>' +
|
'<a class="icon"/>' +
|
||||||
'<a class="label" href="#"><span class="l10n-name"/></a>' +
|
'<a class="label" href="#"><span class="l10n-name"/></a>' +
|
||||||
|
@ -27,14 +27,14 @@ modulejs.define('view/items', ['_', '$', 'core/settings', 'core/resource', 'core
|
||||||
emptyTemplate = '<div class="empty l10n-empty"/>',
|
emptyTemplate = '<div class="empty l10n-empty"/>',
|
||||||
contentTemplate = '<div id="content"><div id="extended" class="clearfix"/></div>',
|
contentTemplate = '<div id="content"><div id="extended" class="clearfix"/></div>',
|
||||||
|
|
||||||
// updates this single entry
|
// updates this single item
|
||||||
update = function (entry, force) {
|
update = function (item, force) {
|
||||||
|
|
||||||
if (!force && entry.$extended && entry.status && entry.$extended.data('status') === entry.status) {
|
if (!force && item.$extended) {
|
||||||
return entry.$extended;
|
return item.$extended;
|
||||||
}
|
}
|
||||||
|
|
||||||
var $html = $(template),
|
var $html = $(itemTemplate),
|
||||||
$a = $html.find('a'),
|
$a = $html.find('a'),
|
||||||
$imgSmall = $html.find('.icon.small img'),
|
$imgSmall = $html.find('.icon.small img'),
|
||||||
$imgBig = $html.find('.icon.big img'),
|
$imgBig = $html.find('.icon.big img'),
|
||||||
|
@ -43,30 +43,29 @@ modulejs.define('view/items', ['_', '$', 'core/settings', 'core/resource', 'core
|
||||||
$size = $html.find('.size');
|
$size = $html.find('.size');
|
||||||
|
|
||||||
$html
|
$html
|
||||||
.addClass(entry.isFolder() ? 'folder' : 'file')
|
.addClass(item.isFolder() ? 'folder' : 'file')
|
||||||
.data('entry', entry)
|
.data('item', item);
|
||||||
.data('status', entry.status);
|
|
||||||
|
|
||||||
location.setLink($a, entry);
|
location.setLink($a, item);
|
||||||
|
|
||||||
$imgSmall.attr('src', resource.icon(entry.type)).attr('alt', entry.type);
|
$imgSmall.attr('src', resource.icon(item.type)).attr('alt', item.type);
|
||||||
$imgBig.attr('src', resource.icon(entry.type, true)).attr('alt', entry.type);
|
$imgBig.attr('src', resource.icon(item.type, true)).attr('alt', item.type);
|
||||||
$label.text(entry.label);
|
$label.text(item.label);
|
||||||
$date.data('time', entry.time).text(format.formatDate(entry.time));
|
$date.data('time', item.time).text(format.formatDate(item.time));
|
||||||
$size.data('bytes', entry.size).text(format.formatSize(entry.size));
|
$size.data('bytes', item.size).text(format.formatSize(item.size));
|
||||||
|
|
||||||
if (entry.isFolder() && _.isNumber(entry.status)) {
|
if (item.isFolder() && _.isNumber(item.status)) {
|
||||||
if (entry.status === 200) {
|
if (item.status === 200) {
|
||||||
$html.addClass('page');
|
$html.addClass('page');
|
||||||
$imgSmall.attr('src', resource.icon('folder-page'));
|
$imgSmall.attr('src', resource.icon('folder-page'));
|
||||||
$imgBig.attr('src', resource.icon('folder-page', true));
|
$imgBig.attr('src', resource.icon('folder-page', true));
|
||||||
} else {
|
} else {
|
||||||
$html.addClass('error');
|
$html.addClass('error');
|
||||||
$label.append($(hintTemplate).text(' ' + entry.status + ' '));
|
$label.append($(hintTemplate).text(' ' + item.status + ' '));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry.isCurrentParentFolder()) {
|
if (item.isCurrentParentFolder()) {
|
||||||
$imgSmall.attr('src', resource.icon('folder-parent'));
|
$imgSmall.attr('src', resource.icon('folder-parent'));
|
||||||
$imgBig.attr('src', resource.icon('folder-parent', true));
|
$imgBig.attr('src', resource.icon('folder-parent', true));
|
||||||
if (!settings.setParentFolderLabels) {
|
if (!settings.setParentFolderLabels) {
|
||||||
|
@ -75,41 +74,41 @@ modulejs.define('view/items', ['_', '$', 'core/settings', 'core/resource', 'core
|
||||||
$html.addClass('folder-parent');
|
$html.addClass('folder-parent');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry.$extended) {
|
if (item.$extended) {
|
||||||
entry.$extended.replaceWith($html);
|
item.$extended.replaceWith($html);
|
||||||
}
|
}
|
||||||
entry.$extended = $html;
|
item.$extended = $html;
|
||||||
|
|
||||||
return $html;
|
return $html;
|
||||||
},
|
},
|
||||||
|
|
||||||
onMouseenter = function () {
|
onMouseenter = function () {
|
||||||
|
|
||||||
var entry = $(this).closest('.entry').data('entry');
|
var item = $(this).closest('.item').data('item');
|
||||||
event.pub('entry.mouseenter', entry);
|
event.pub('item.mouseenter', item);
|
||||||
},
|
},
|
||||||
|
|
||||||
onMouseleave = function () {
|
onMouseleave = function () {
|
||||||
|
|
||||||
var entry = $(this).closest('.entry').data('entry');
|
var item = $(this).closest('.item').data('item');
|
||||||
event.pub('entry.mouseleave', entry);
|
event.pub('item.mouseleave', item);
|
||||||
},
|
},
|
||||||
|
|
||||||
onLocationChanged = function (item) {
|
onLocationChanged = function (item) {
|
||||||
|
|
||||||
var $extended = $('#extended'),
|
var $extended = $('#extended'),
|
||||||
$ul = $extended.find('ul'),
|
$items = $('#items'),
|
||||||
$empty = $extended.find('.empty');
|
$empty = $extended.find('.empty');
|
||||||
|
|
||||||
$ul.find('.entry').remove();
|
$items.find('.item').remove();
|
||||||
|
|
||||||
if (item.parent) {
|
if (item.parent) {
|
||||||
$ul.append(update(item.parent));
|
$items.append(update(item.parent, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
_.each(item.content, function (e) {
|
_.each(item.content, function (e) {
|
||||||
|
|
||||||
$ul.append(update(e));
|
$items.append(update(e, true));
|
||||||
});
|
});
|
||||||
|
|
||||||
if (item.isEmpty()) {
|
if (item.isEmpty()) {
|
||||||
|
@ -122,12 +121,12 @@ modulejs.define('view/items', ['_', '$', 'core/settings', 'core/resource', 'core
|
||||||
onLocationRefreshed = function (item, added, removed) {
|
onLocationRefreshed = function (item, added, removed) {
|
||||||
|
|
||||||
var $extended = $('#extended'),
|
var $extended = $('#extended'),
|
||||||
$ul = $extended.find('ul'),
|
$items = $('#items'),
|
||||||
$empty = $extended.find('.empty');
|
$empty = $extended.find('.empty');
|
||||||
|
|
||||||
_.each(added, function (item) {
|
_.each(added, function (item) {
|
||||||
|
|
||||||
update(item, true).hide().appendTo($ul).fadeIn(400);
|
update(item, true).hide().appendTo($items).fadeIn(400);
|
||||||
});
|
});
|
||||||
|
|
||||||
_.each(removed, function (item) {
|
_.each(removed, function (item) {
|
||||||
|
@ -148,16 +147,18 @@ modulejs.define('view/items', ['_', '$', 'core/settings', 'core/resource', 'core
|
||||||
|
|
||||||
var $content = $(contentTemplate),
|
var $content = $(contentTemplate),
|
||||||
$extended = $content.find('#extended'),
|
$extended = $content.find('#extended'),
|
||||||
$ul = $(listTemplate),
|
$items = $(itemsTemplate),
|
||||||
$emtpy = $(emptyTemplate).hide();
|
$emtpy = $(emptyTemplate).hide();
|
||||||
|
|
||||||
format.setDefaultMetric(settings.binaryPrefix);
|
format.setDefaultMetric(settings.binaryPrefix);
|
||||||
|
|
||||||
$extended
|
$extended
|
||||||
.append($ul)
|
.append($items)
|
||||||
.append($emtpy)
|
.append($emtpy);
|
||||||
.on('mouseenter', '.entry a', onMouseenter)
|
|
||||||
.on('mouseleave', '.entry a', onMouseleave);
|
$items
|
||||||
|
.on('mouseenter', '.item a', onMouseenter)
|
||||||
|
.on('mouseleave', '.item a', onMouseleave);
|
||||||
|
|
||||||
event.sub('location.changed', onLocationChanged);
|
event.sub('location.changed', onLocationChanged);
|
||||||
event.sub('location.refreshed', onLocationRefreshed);
|
event.sub('location.refreshed', onLocationRefreshed);
|
||||||
|
|
|
@ -20,7 +20,7 @@ modulejs.define('view/viewmode', ['_', '$', 'core/settings', 'core/resource', 'c
|
||||||
|
|
||||||
var contentWidth = $('#content').width(),
|
var contentWidth = $('#content').width(),
|
||||||
$extended = $('#extended'),
|
$extended = $('#extended'),
|
||||||
itemWidth = ($extended.hasClass('view-icons') || $extended.hasClass('view-grid')) ? ($extended.find('.entry').eq(0).width() || 1) : 1;
|
itemWidth = ($extended.hasClass('view-icons') || $extended.hasClass('view-grid')) ? ($extended.find('.item').eq(0).width() || 1) : 1;
|
||||||
|
|
||||||
$extended.width(Math.floor(contentWidth / itemWidth) * itemWidth);
|
$extended.width(Math.floor(contentWidth / itemWidth) * itemWidth);
|
||||||
},
|
},
|
||||||
|
|
|
@ -55,7 +55,7 @@ Options
|
||||||
- interval: number, update interval in milliseconds, at least 1000
|
- interval: number, update interval in milliseconds, at least 1000
|
||||||
*/
|
*/
|
||||||
"autorefresh": {
|
"autorefresh": {
|
||||||
"enabled": true,
|
"enabled": false,
|
||||||
"interval": 5000
|
"interval": 5000
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue