Improves event system.

This commit is contained in:
Lars Jung 2012-10-25 01:37:34 +02:00
parent aded72363a
commit 34eed09537
13 changed files with 98 additions and 130 deletions

View file

@ -1,5 +1,5 @@
modulejs.define('ext/autorefresh', ['_', '$', 'core/settings', 'core/event', 'core/refresh'], function (_, $, allsettings, event, refresh) {
modulejs.define('ext/autorefresh', ['_', '$', 'core/settings', 'core/event', 'core/location'], function (_, $, allsettings, event, location) {
var settings = _.extend({
enabled: false,
@ -8,7 +8,7 @@ modulejs.define('ext/autorefresh', ['_', '$', 'core/settings', 'core/event', 'co
heartbeat = function () {
refresh();
location.refresh();
setTimeout(heartbeat, settings.interval);
},

View file

@ -14,7 +14,6 @@ modulejs.define('ext/crumb', ['_', '$', 'core/settings', 'core/resource', 'core/
pageHintTemplate = '<img class="hint" src="' + resource.image('page') + '" alt="has index page"/>',
statusHintTemplate = '<span class="hint"/>',
// updates the crumb for this single entry
update = function (entry, force) {
if (!force && entry.$crumb && entry.$crumb.data('status') === entry.status) {
@ -62,13 +61,6 @@ modulejs.define('ext/crumb', ['_', '$', 'core/settings', 'core/resource', 'core/
return $html;
},
onContentChanged = function (entry) {
if (entry.$crumb) {
update(entry, true);
}
},
onLocationChanged = function (item) {
var crumb = item.getCrumb(),
@ -101,10 +93,6 @@ modulejs.define('ext/crumb', ['_', '$', 'core/settings', 'core/resource', 'core/
return;
}
// event.sub('entry.created', onContentChanged);
// event.sub('entry.removed', onContentChanged);
event.sub('entry.changed', onContentChanged);
event.sub('location.changed', onLocationChanged);
};

View file

@ -1,5 +1,5 @@
modulejs.define('ext/delete', ['_', '$', 'core/settings', 'core/event', 'core/resource', 'core/refresh', 'core/server'], function (_, $, allsettings, event, resource, refresh, server) {
modulejs.define('ext/delete', ['_', '$', 'core/settings', 'core/event', 'core/resource', 'core/location', 'core/server'], function (_, $, allsettings, event, resource, location, server) {
var settings = _.extend({
enabled: false
@ -31,7 +31,7 @@ modulejs.define('ext/delete', ['_', '$', 'core/settings', 'core/event', 'core/re
if (!json || json.code) {
failed();
}
refresh();
location.refresh();
},
requestDeletion = function (hrefsStr) {

View file

@ -1,5 +1,5 @@
modulejs.define('ext/dropbox', ['_', '$', 'core/settings', 'core/location', 'core/refresh', 'core/server'], function (_, $, allsettings, location, refresh, server) {
modulejs.define('ext/dropbox', ['_', '$', 'core/settings', 'core/location', 'core/server'], function (_, $, allsettings, location, server) {
var settings = _.extend({
enabled: false,
@ -99,7 +99,7 @@ modulejs.define('ext/dropbox', ['_', '$', 'core/settings', 'core/location', 'cor
afterAll: function () {
refresh();
location.refresh();
},
error: function (err, file) {

View file

@ -143,8 +143,8 @@ modulejs.define('ext/sort', ['_', '$', 'core/settings', 'core/resource', 'core/e
event.preventDefault();
});
event.sub('entry.changed', onContentChanged);
event.sub('entry.created', onContentChanged);
event.sub('location.changed', onContentChanged);
event.sub('location.refreshed', onContentChanged);
};
init();

View file

@ -1,5 +1,5 @@
modulejs.define('ext/statusbar', ['_', '$', 'core/settings', 'core/format', 'core/event', 'core/location'], function (_, $, allsettings, format, event, location) {
modulejs.define('ext/statusbar', ['_', '$', 'core/settings', 'core/format', 'core/event'], function (_, $, allsettings, format, event) {
var settings = _.extend({
enabled: false
@ -37,36 +37,22 @@ modulejs.define('ext/statusbar', ['_', '$', 'core/settings', 'core/format', 'cor
var $statusbar = $(template),
$folderTotal = $statusbar.find('.folderTotal'),
$fileTotal = $statusbar.find('.fileTotal');
$fileTotal = $statusbar.find('.fileTotal'),
onLocationChanged = function (item) {
var stats = item.getStats();
$folderTotal.text(stats.folders);
$fileTotal.text(stats.files);
};
$statusDefault = $statusbar.find('.status.default');
$statusDynamic = $statusbar.find('.status.dynamic');
event.sub('location.changed', function (item) {
var stats = item.getStats();
$folderTotal.text(stats.folders);
$fileTotal.text(stats.files);
update();
});
event.sub('statusbar', update);
$('#bottombar > .center').append($statusbar);
event.sub('entry.created', function () {
var stats = location.getItem().getStats();
$folderTotal.text(stats.folders);
$fileTotal.text(stats.files);
});
event.sub('entry.removed', function () {
var stats = location.getItem().getStats();
$folderTotal.text(stats.folders);
$fileTotal.text(stats.files);
});
event.sub('statusbar', update);
event.sub('location.changed', onLocationChanged);
event.sub('location.refreshed', onLocationChanged);
event.sub('entry.mouseenter', function (entry) {

View file

@ -20,7 +20,6 @@ modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/e
magicSequence = '=h5ai=',
// updates the tree for this single entry
update = function (entry) {
var $html = $(template),
@ -223,7 +222,6 @@ modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/e
});
},
// creates the complete tree from entry down to the root
init = function () {
if (!settings.enabled) {
@ -243,14 +241,8 @@ modulejs.define('ext/tree', ['_', '$', 'core/settings', 'core/resource', 'core/e
shiftTree();
});
event.sub('location.changed', onLocationChanged);
// strong negative performance impact in aai mode
// event.sub('entry.changed', onContentChanged);
// event.sub('entry.created', onContentChanged);
// event.sub('entry.removed', onContentChanged);
event.sub('ready', adjustSpacing);
event.sub('location.changed', onLocationChanged);
$(window).on('resize', function () {