diff -r 03c88ba5de2c -r 353b0881a0b9 src/js/model.js --- 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]; } } }