mirror of
https://github.com/lrsjng/h5ai.git
synced 2025-05-25 12:34:47 -04:00
Adds new events. Adds autoupdate extension.
This commit is contained in:
parent
4245f2019e
commit
da438f2f0b
10 changed files with 195 additions and 12 deletions
|
@ -1,5 +1,5 @@
|
|||
|
||||
modulejs.define('model/entry', ['_', 'core/types', 'core/ajax'], function (_, types, ajax) {
|
||||
modulejs.define('model/entry', ['_', 'core/types', 'core/ajax', 'core/event'], function (_, types, ajax, event) {
|
||||
|
||||
var doc = document,
|
||||
domain = doc.domain,
|
||||
|
@ -111,24 +111,62 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/ajax'], function (_, ty
|
|||
|
||||
absHref = forceEncoding(absHref || location);
|
||||
|
||||
var created = !cache[absHref],
|
||||
changed = false;
|
||||
|
||||
var self = cache[absHref] || new Entry(absHref);
|
||||
|
||||
if (_.isNumber(time)) {
|
||||
if (self.time !== time) {
|
||||
changed = true;
|
||||
}
|
||||
self.time = time;
|
||||
}
|
||||
if (_.isNumber(size)) {
|
||||
if (self.size !== size) {
|
||||
changed = true;
|
||||
}
|
||||
self.size = size;
|
||||
}
|
||||
if (status) {
|
||||
if (self.status !== status) {
|
||||
changed = true;
|
||||
}
|
||||
self.status = status;
|
||||
}
|
||||
if (isContentFetched) {
|
||||
self.isContentFetched = true;
|
||||
}
|
||||
|
||||
if (created) {
|
||||
event.pub('entry.created', self);
|
||||
} else if (changed) {
|
||||
event.pub('entry.changed', self);
|
||||
}
|
||||
|
||||
return self;
|
||||
},
|
||||
|
||||
removeEntry = function (absHref) {
|
||||
|
||||
absHref = forceEncoding(absHref || location);
|
||||
|
||||
var self = cache[absHref];
|
||||
|
||||
if (self) {
|
||||
delete cache[absHref];
|
||||
if (self.parent) {
|
||||
delete self.parent.content[self.absHref];
|
||||
}
|
||||
_.each(self.content, function (entry) {
|
||||
|
||||
removeEntry(entry.absHref);
|
||||
});
|
||||
|
||||
event.pub('entry.removed', self);
|
||||
}
|
||||
},
|
||||
|
||||
fetchStatus = function (absHref, callback) {
|
||||
|
||||
var self = getEntry(absHref);
|
||||
|
@ -202,6 +240,11 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/ajax'], function (_, ty
|
|||
return this.absHref === location;
|
||||
},
|
||||
|
||||
isInCurrentFolder: function () {
|
||||
|
||||
return !!this.parent && this.parent.isCurrentFolder();
|
||||
},
|
||||
|
||||
isDomain: function () {
|
||||
|
||||
return this.absHref === '/';
|
||||
|
@ -276,9 +319,8 @@ modulejs.define('model/entry', ['_', 'core/types', 'core/ajax'], function (_, ty
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
return {
|
||||
get: getEntry
|
||||
return window.ENTRY = {
|
||||
get: getEntry,
|
||||
remove: removeEntry
|
||||
};
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue