--- a/src/js/model.js Tue Oct 02 12:44:37 2012 +0200
+++ b/src/js/model.js Tue Oct 02 18:08:05 2012 +0200
@@ -267,6 +267,14 @@
this.__events[_event].push(_callback);
}
+IriSP.Model.List.prototype.off = function(_event, _callback) {
+ if (typeof this.__events[_event] !== "undefined") {
+ this.__events[_event] = IriSP._(this.__events[_event]).reject(function(_fn) {
+ return _fn === _callback;
+ });
+ }
+}
+
IriSP.Model.List.prototype.trigger = function(_event, _data) {
var _list = this;
IriSP._(this.__events[_event]).each(function(_callback) {
@@ -421,7 +429,7 @@
var _this = this;
return this.source.getList(_elementType, _global).filter(function(_el) {
var _ref = _el[_this.elementType];
- return _ref.isOrHasId(_this.id);
+ return _ref && _ref.isOrHasId(_this.id);
});
}
@@ -432,6 +440,14 @@
this.__events[_event].push(_callback);
}
+IriSP.Model.Element.prototype.off = function(_event, _callback) {
+ if (typeof this.__events[_event] !== "undefined") {
+ this.__events[_event] = IriSP._(this.__events[_event]).reject(function(_fn) {
+ return _fn === _callback;
+ });
+ }
+}
+
IriSP.Model.Element.prototype.trigger = function(_event, _data) {
var _element = this;
IriSP._(this.__events[_event]).each(function(_callback) {
@@ -535,6 +551,7 @@
this.elementType = 'annotation';
this.begin = new IriSP.Model.Time();
this.end = new IriSP.Model.Time();
+ this.tag = new IriSP.Model.Reference(_source, []);
this.playing = false;
var _this = this;
this.on("click", function() {
@@ -733,6 +750,7 @@
IriSP.Model.Source = function(_config) {
this.status = IriSP.Model._SOURCE_STATUS_EMPTY;
+ this.elementType = "source";
if (typeof _config !== "undefined") {
var _this = this;
IriSP._(_config).forEach(function(_v, _k) {
@@ -744,6 +762,8 @@
}
}
+IriSP.Model.Source.prototype = new IriSP.Model.Element();
+
IriSP.Model.Source.prototype.addList = function(_listId, _contents) {
if (typeof this.contents[_listId] === "undefined") {
this.contents[_listId] = new IriSP.Model.List(this.directory);
@@ -860,7 +880,7 @@
} else {
var _medias = this.getMedias();
if (_medias.length) {
- _media = _medias[0];
+ this.currentMedia = _medias[0];
}
}
}