Adds folderstatus extension for aai mode. Updates default options for upcoming release.

This commit is contained in:
Lars Jung 2012-10-14 18:32:25 +02:00
parent 57d6ef9520
commit 138fc4d43c
6 changed files with 84 additions and 59 deletions

View file

@ -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);
};

View 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();
});

View file

@ -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 {

View file

@ -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);

View file

@ -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)