mirror of
https://github.com/lrsjng/h5ai.git
synced 2025-06-05 17:24:20 -04:00
Adds folderstatus extension for aai mode. Updates default options for upcoming release.
This commit is contained in:
parent
57d6ef9520
commit
138fc4d43c
6 changed files with 84 additions and 59 deletions
|
@ -82,13 +82,10 @@ modulejs.define('ext/crumb', ['_', '$', 'core/settings', 'core/resource', 'core/
|
|||
_.each(crumb, function (e) {
|
||||
|
||||
$ul.append(update(e));
|
||||
|
||||
// needed by aai
|
||||
// e.fetchStatus(function (e) { update(e); });
|
||||
});
|
||||
|
||||
event.sub('entry.created', onContentChanged);
|
||||
event.sub('entry.removed', onContentChanged);
|
||||
// event.sub('entry.created', onContentChanged);
|
||||
// event.sub('entry.removed', onContentChanged);
|
||||
event.sub('entry.changed', onContentChanged);
|
||||
};
|
||||
|
||||
|
|
30
src/_h5ai/client/js/inc/ext/folderstatus.js
Normal file
30
src/_h5ai/client/js/inc/ext/folderstatus.js
Normal file
|
@ -0,0 +1,30 @@
|
|||
|
||||
modulejs.define('ext/folderstatus', ['_', '$', 'core/settings', 'core/event', 'core/entry'], function (_, $, allsettings, event, entry) {
|
||||
|
||||
var settings = _.extend({
|
||||
enabled: false,
|
||||
maxChecks: 16,
|
||||
delay: 2000
|
||||
}, allsettings.folderstatus),
|
||||
|
||||
init = function () {
|
||||
|
||||
if (!settings.enabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
event.sub('ready', function () {
|
||||
|
||||
var count = 0;
|
||||
_.each(entry.content, function (e) {
|
||||
|
||||
if (e.isFolder() && e.status === null && count <= settings.maxChecks) {
|
||||
count += 1;
|
||||
setTimeout(function () { e.fetchStatus(); }, settings.delay);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
init();
|
||||
});
|
|
@ -110,6 +110,10 @@ modulejs.define('model/entry', ['$', '_', 'core/types', 'core/event', 'core/sett
|
|||
|
||||
var self = getEntry(absHref);
|
||||
|
||||
if (!_.isFunction(callback)) {
|
||||
callback = function () {};
|
||||
}
|
||||
|
||||
if (self.status !== null) {
|
||||
callback(self);
|
||||
} else {
|
||||
|
@ -130,6 +134,10 @@ modulejs.define('model/entry', ['$', '_', 'core/types', 'core/event', 'core/sett
|
|||
|
||||
var self = getEntry(absHref);
|
||||
|
||||
if (!_.isFunction(callback)) {
|
||||
callback = function () {};
|
||||
}
|
||||
|
||||
if (self.isContentFetched) {
|
||||
callback(self);
|
||||
} else {
|
||||
|
|
|
@ -2,11 +2,8 @@
|
|||
modulejs.define('view/extended', ['_', '$', 'core/settings', 'core/resource', 'core/format', 'core/event', 'core/entry'], function (_, $, allsettings, resource, format, event, entry) {
|
||||
|
||||
var settings = _.extend({
|
||||
modes: ['details', 'icons'],
|
||||
setParentFolderLabels: false,
|
||||
binaryPrefix: false,
|
||||
maxFolders: 16,
|
||||
delay: 2000
|
||||
binaryPrefix: false
|
||||
}, allsettings.view),
|
||||
|
||||
template = '<li class="entry">' +
|
||||
|
@ -153,20 +150,6 @@ modulejs.define('view/extended', ['_', '$', 'core/settings', 'core/resource', 'c
|
|||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// needed by aai
|
||||
if (_.size(entry.content) <= settings.maxFolders) {
|
||||
|
||||
_.each(entry.content, function (e) {
|
||||
|
||||
if (e.isFolder() && e.status === null) {
|
||||
setTimeout(function () {
|
||||
e.fetchStatus(function (e) { update(e); });
|
||||
}, settings.delay);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
init(entry);
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
|
||||
modulejs.define('view/viewmode', ['_', '$', 'core/settings', 'core/resource', 'core/store'], function (_, $, allsettings, resource, store) {
|
||||
|
||||
var defaults = {
|
||||
modes: ['details', 'list', 'grid', 'icons'],
|
||||
setParentFolderLabels: false
|
||||
},
|
||||
var modes = ['details', 'list', 'grid', 'icons'],
|
||||
|
||||
settings = _.extend({}, defaults, allsettings.view),
|
||||
settings = _.extend({}, {
|
||||
modes: modes
|
||||
}, allsettings.view),
|
||||
|
||||
storekey = 'h5ai.viewmode',
|
||||
|
||||
|
@ -24,7 +23,7 @@ modulejs.define('view/viewmode', ['_', '$', 'core/settings', 'core/resource', 'c
|
|||
viewmode = _.indexOf(settings.modes, viewmode) >= 0 ? viewmode : settings.modes[0];
|
||||
store.put(storekey, viewmode);
|
||||
|
||||
_.each(defaults.modes, function (mode) {
|
||||
_.each(modes, function (mode) {
|
||||
if (mode === viewmode) {
|
||||
$('#view-' + mode).addClass('current');
|
||||
$extended.addClass('view-' + mode).show();
|
||||
|
@ -39,10 +38,10 @@ modulejs.define('view/viewmode', ['_', '$', 'core/settings', 'core/resource', 'c
|
|||
|
||||
var $navbar = $('#navbar');
|
||||
|
||||
settings.modes = _.intersection(settings.modes, defaults.modes);
|
||||
settings.modes = _.intersection(settings.modes, modes);
|
||||
|
||||
if (settings.modes.length > 1) {
|
||||
_.each(defaults.modes.reverse(), function (mode) {
|
||||
_.each(modes.reverse(), function (mode) {
|
||||
if (_.indexOf(settings.modes, mode) >= 0) {
|
||||
$(template.replace(/\[MODE\]/g, mode))
|
||||
.appendTo($navbar)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue