# HG changeset patch # User veltr # Date 1339523060 -7200 # Node ID ec6849bbbdcc7fbf41e593442a3069e6950b0fbe # Parent ba7aab923d08db488594b8cc6442041e5a1bae6e Removed Namespacing before rewrite diff -r ba7aab923d08 -r ec6849bbbdcc src/js/model.js --- a/src/js/model.js Fri Jun 08 19:03:03 2012 +0200 +++ b/src/js/model.js Tue Jun 12 19:44:20 2012 +0200 @@ -336,14 +336,11 @@ IriSP.Model.Reference = function(_source, _idRef) { this.source = _source; + this.id = _idRef; if (typeof _idRef === "object") { this.isList = true; - this.id = IriSP._(_idRef).map(function(_id) { - return _source.getNamespaced(_id).fullname; - }); } else { this.isList = false; - this.id = _source.getNamespaced(_idRef).fullname; } this.refresh(); } @@ -384,8 +381,7 @@ _id = IriSP.Model.getUID(); } this.source = _source; - this.namespacedId = _source.getNamespaced(_id) - this.id = this.namespacedId.fullname; + this.id = _id; this.title = ""; this.description = ""; this.source.directory.addElement(this); @@ -525,7 +521,7 @@ /* */ IriSP.Model.MashedAnnotation = function(_mashup, _annotation) { - IriSP.Model.Element.call(this, _mashup.namespacedId.name + "_" + _annotation.namespacedId.name, _annotation.source); + IriSP.Model.Element.call(this, _mashup.id + "_" + _annotation.id, _annotation.source); this.elementType = 'mashedAnnotation'; this.annotation = _annotation; this.begin = new IriSP.Model.Time(_mashup.duration); @@ -629,54 +625,10 @@ }) this.callbackQueue = []; this.contents = {}; - if (typeof this.namespace === "undefined") { - this.namespace = "metadataplayer"; - } else { - if (typeof this.namespaceUrl === "undefined" && typeof this.url !== "undefined") { - var _matches = this.url.match(/(^[^?&]+|[^?&][a-zA-Z0-9_%=?]+)/g), - _url = _matches[0]; - if (_matches.length > 1) { - _matches = IriSP._(_matches.slice(1)).reject(function(_txt) { - return /\?$/.test(_txt); - }); - } - if (_matches.length > 0) { - _url += '?' + _matches.join('&'); - } - this.namespaceUrl = _url; - } - } - if (typeof this.namespaceUrl === "undefined") { - this.namespaceUrl = "http://ldt.iri.centrepompidou.fr/"; - } - this.directory.addNamespace(this.namespace, this.namespaceUrl); this.get(); } } -IriSP.Model.Source.prototype.getNamespaced = function(_id) { - var _tab = _id.split(':'); - if (_tab.length > 1) { - return { - namespace : _tab[0], - name : _tab[1], - fullname : _id - } - } else { - return { - namespace : this.namespace, - name : _id, - fullname : this.namespace + ':' + _id - } - } -} - -IriSP.Model.Source.prototype.unNamespace = function(_id) { - if (typeof _id !== "undefined") { - return _id.replace(this.namespace + ':', ''); - } -} - IriSP.Model.Source.prototype.addList = function(_listId, _contents) { if (typeof this.contents[_listId] === "undefined") { this.contents[_listId] = new IriSP.Model.List(this.directory); @@ -703,7 +655,7 @@ } IriSP.Model.Source.prototype.getElement = function(_elId) { - return this.directory.getElement(this.getNamespaced(_elId).fullname); + return this.directory.getElement(_elId); } IriSP.Model.Source.prototype.setCurrentMediaId = function(_idRef) { @@ -718,21 +670,6 @@ } } -IriSP.Model.Source.prototype.listNamespaces = function(_excludeSelf) { - var _this = this, - _nsls = [], - _excludeSelf = (typeof _excludeSelf !== "undefined" && _excludeSelf); - this.forEach(function(_list) { - IriSP._(_list).forEach(function(_el) { - var _ns = _el.id.replace(/:.*$/,''); - if (IriSP._(_nsls).indexOf(_ns) === -1 && (!_excludeSelf || _ns !== _this.namespace)) { - _nsls.push(_ns); - } - }) - }); - return _nsls; -} - IriSP.Model.Source.prototype.get = function() { this.status = IriSP.Model._SOURCE_STATUS_WAITING; this.handleCallbacks(); @@ -839,11 +776,6 @@ IriSP.Model.Directory = function() { this.remoteSources = {}; this.elements = {}; - this.namespaces = {}; -} - -IriSP.Model.Directory.prototype.addNamespace = function(_namespace, _url) { - this.namespaces[_namespace] = _url; } IriSP.Model.Directory.prototype.remoteSource = function(_properties) { diff -r ba7aab923d08 -r ec6849bbbdcc src/js/serializers/ldt.js --- a/src/js/serializers/ldt.js Fri Jun 08 19:03:03 2012 +0200 +++ b/src/js/serializers/ldt.js Tue Jun 12 19:44:20 2012 +0200 @@ -29,7 +29,7 @@ }, serializer : function(_data, _source) { return { - id : _source.unNamespace(_data.id), + id : _data.id, url : _data.video, meta : { "dc:title" : _data.title, @@ -49,7 +49,7 @@ }, serializer : function(_data, _source) { return { - id : _source.unNamespace(_data.id), + id : _data.id, meta : { "dc:title" : _data.title } @@ -66,7 +66,7 @@ }, serializer : function(_data, _source) { return { - id : _source.unNamespace(_data.id), + id : _data.id, "dc:title" : _data.title, "dc:description" : _data.description } @@ -106,7 +106,7 @@ }, serializer : function(_data, _source) { return { - id : _source.unNamespace(_data.id), + id : _data.id, begin : _data.begin.milliseconds, end : _data.end.milliseconds, content : { @@ -114,16 +114,16 @@ description : _data.description, audio : _data.audio }, - media : _source.unNamespace(_data.media.id), + media : _data.media.id, meta : { - "id-ref" : _source.unNamespace(_data.annotationType.id), + "id-ref" : _data.annotationType.id, "dc:created" : IriSP.Model.dateToIso(_data.created), "dc:creator" : _data.creator, project : _source.projectId }, tags : IriSP._(_data.tag.id).map(function(_id) { return { - "id-ref" : _source.unNamespace(_id) + "id-ref" : _id } }) } @@ -145,7 +145,7 @@ "dc:title": _data.title, "dc:description": _data.description, segments: _data.segments.map(function(_annotation) { - return _source.unNamespace(_id); + return _id; }) } } @@ -171,9 +171,9 @@ return; } IriSP._(this.types).forEach(function(_type, _typename) { - var _listdata = _data[_type.serialized_name]; + var _listdata = _data[_type.serialized_name], + _list = new IriSP.Model.List(_source.directory); if (typeof _listdata !== "undefined" && _listdata !== null) { - var _list = new IriSP.Model.List(_source.directory); if (_listdata.hasOwnProperty("length")) { var _l = _listdata.length; for (var _i = 0; _i < _l; _i++) { @@ -182,8 +182,8 @@ } else { _list.push(_type.deserializer(_listdata, _source)); } - _source.addList(_typename, _list); } + _source.addList(_typename, _list); }); if (typeof _data.meta !== "undefined") { diff -r ba7aab923d08 -r ec6849bbbdcc src/js/serializers/ldt_annotate.js --- a/src/js/serializers/ldt_annotate.js Fri Jun 08 19:03:03 2012 +0200 +++ b/src/js/serializers/ldt_annotate.js Tue Jun 12 19:44:20 2012 +0200 @@ -9,6 +9,7 @@ annotation : { serialized_name : "annotations", serializer : function(_data, _source) { + var _annType = _data.getAnnotationType(); return { begin: _data.begin.milliseconds, end: _data.end.milliseconds, @@ -17,10 +18,10 @@ audio: _data.audio }, tags: _data.getTagTexts(), - media: _source.unNamespace(_data.getMedia().id), + media: _data.getMedia().id, title: _data.title, - type_title: _data.getAnnotationType().title, - type: ( typeof _data.getAnnotationType().dont_send_id !== "undefined" && _data.getAnnotationType().dont_send_id ? "" : _source.unNamespace(_data.getAnnotationType().id) ) + type_title: _annType.title, + type: ( typeof _annType.dont_send_id !== "undefined" && _annType.dont_send_id ? "" : _annType.id ) } } } diff -r ba7aab923d08 -r ec6849bbbdcc src/js/widgets.js --- a/src/js/widgets.js Fri Jun 08 19:03:03 2012 +0200 +++ b/src/js/widgets.js Tue Jun 12 19:44:20 2012 +0200 @@ -66,7 +66,15 @@ } } - this.l10n = (typeof this.messages[IriSP.language] !== "undefined" ? this.messages[IriSP.language] : this.messages["en"]); + this.l10n = ( + typeof this.messages[IriSP.language] !== "undefined" + ? this.messages[IriSP.language] + : ( + IriSP.language.length > 2 && typeof this.messages[IriSP.language.substr(0,2)] !== "undefined" + ? this.messages[IriSP.language.substr(0,2)] + : this.messages["en"] + ) + ); }; diff -r ba7aab923d08 -r ec6849bbbdcc src/obsolete-files/model-namespaced.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/obsolete-files/model-namespaced.js Tue Jun 12 19:44:20 2012 +0200 @@ -0,0 +1,877 @@ +/* model.js is where data is stored in a standard form, whatever the serializer */ + +IriSP.Model = { + _SOURCE_STATUS_EMPTY : 0, + _SOURCE_STATUS_WAITING : 1, + _SOURCE_STATUS_READY : 2, + _ID_AUTO_INCREMENT : 0, + _ID_BASE : (function(_d) { + function pad(n){return n<10 ? '0'+n : n} + function fillrand(n) { + var _res = '' + for (var i=0; i _time; + }); + if (_list.length) { + return _list[0]; + } else { + return undefined; + } +} + +IriSP.Model.Mashup.prototype.getMediaAtTime = function(_time) { + var _annotation = this.getAnnotationAtTime(_time); + if (typeof _annotation !== "undefined") { + return _annotation.getMedia(); + } else { + return undefined; + } +} + +/* */ + +IriSP.Model.Source = function(_config) { + this.status = IriSP.Model._SOURCE_STATUS_EMPTY; + if (typeof _config !== "undefined") { + var _this = this; + IriSP._(_config).forEach(function(_v, _k) { + _this[_k] = _v; + }) + this.callbackQueue = []; + this.contents = {}; + if (typeof this.namespace === "undefined") { + this.namespace = "metadataplayer"; + } else { + if (typeof this.namespaceUrl === "undefined" && typeof this.url !== "undefined") { + var _matches = this.url.match(/(^[^?&]+|[^?&][a-zA-Z0-9_%=?]+)/g), + _url = _matches[0]; + if (_matches.length > 1) { + _matches = IriSP._(_matches.slice(1)).reject(function(_txt) { + return /\?$/.test(_txt); + }); + } + if (_matches.length > 0) { + _url += '?' + _matches.join('&'); + } + this.namespaceUrl = _url; + } + } + if (typeof this.namespaceUrl === "undefined") { + this.namespaceUrl = "http://ldt.iri.centrepompidou.fr/"; + } + this.directory.addNamespace(this.namespace, this.namespaceUrl); + this.get(); + } +} + +IriSP.Model.Source.prototype.getNamespaced = function(_id) { + var _tab = _id.split(':'); + if (_tab.length > 1) { + return { + namespace : _tab[0], + name : _tab[1], + fullname : _id + } + } else { + return { + namespace : this.namespace, + name : _id, + fullname : this.namespace + ':' + _id + } + } +} + +IriSP.Model.Source.prototype.unNamespace = function(_id) { + if (typeof _id !== "undefined") { + return _id.replace(this.namespace + ':', ''); + } +} + +IriSP.Model.Source.prototype.addList = function(_listId, _contents) { + if (typeof this.contents[_listId] === "undefined") { + this.contents[_listId] = new IriSP.Model.List(this.directory); + } + this.contents[_listId].addElements(_contents); +} + +IriSP.Model.Source.prototype.getList = function(_listId, _global) { + _global = (typeof _global !== "undefined" && _global); + if (_global || typeof this.contents[_listId] === "undefined") { + return this.directory.getGlobalList().filter(function(_e) { + return (_e.elementType === _listId); + }); + } else { + return this.contents[_listId]; + } +} + +IriSP.Model.Source.prototype.forEach = function(_callback) { + var _this = this; + IriSP._(this.contents).forEach(function(_value, _key) { + _callback.call(_this, _value, _key); + }) +} + +IriSP.Model.Source.prototype.getElement = function(_elId) { + return this.directory.getElement(this.getNamespaced(_elId).fullname); +} + +IriSP.Model.Source.prototype.setCurrentMediaId = function(_idRef) { + if (typeof _idRef !== "undefined") { + this.currentMedia = this.getElement(_idRef); + } +} + +IriSP.Model.Source.prototype.setDefaultCurrentMedia = function() { + if (typeof this.currentMedia === "undefined" && this.getMedias().length) { + this.currentMedia = this.getMedias()[0]; + } +} + +IriSP.Model.Source.prototype.listNamespaces = function(_excludeSelf) { + var _this = this, + _nsls = [], + _excludeSelf = (typeof _excludeSelf !== "undefined" && _excludeSelf); + this.forEach(function(_list) { + IriSP._(_list).forEach(function(_el) { + var _ns = _el.id.replace(/:.*$/,''); + if (IriSP._(_nsls).indexOf(_ns) === -1 && (!_excludeSelf || _ns !== _this.namespace)) { + _nsls.push(_ns); + } + }) + }); + return _nsls; +} + +IriSP.Model.Source.prototype.get = function() { + this.status = IriSP.Model._SOURCE_STATUS_WAITING; + this.handleCallbacks(); +} + +/* We defer the callbacks calls so they execute after the queue is cleared */ +IriSP.Model.Source.prototype.deferCallback = function(_callback) { + var _this = this; + IriSP._.defer(function() { + _callback.call(_this); + }); +} + +IriSP.Model.Source.prototype.handleCallbacks = function() { + this.status = IriSP.Model._SOURCE_STATUS_READY; + while (this.callbackQueue.length) { + this.deferCallback(this.callbackQueue.splice(0,1)[0]); + } +} +IriSP.Model.Source.prototype.onLoad = function(_callback) { + if (this.status === IriSP.Model._SOURCE_STATUS_READY) { + this.deferCallback(_callback); + } else { + this.callbackQueue.push(_callback); + } +} + +IriSP.Model.Source.prototype.serialize = function() { + return this.serializer.serialize(this); +} + +IriSP.Model.Source.prototype.deSerialize = function(_data) { + this.serializer.deSerialize(_data, this); +} + +IriSP.Model.Source.prototype.getAnnotations = function(_global) { + _global = (typeof _global !== "undefined" && _global); + return this.getList("annotation", _global); +} + +IriSP.Model.Source.prototype.getMedias = function(_global) { + _global = (typeof _global !== "undefined" && _global); + return this.getList("media", _global); +} + +IriSP.Model.Source.prototype.getTags = function(_global) { + _global = (typeof _global !== "undefined" && _global); + return this.getList("tag", _global); +} + +IriSP.Model.Source.prototype.getMashups = function(_global) { + _global = (typeof _global !== "undefined" && _global); + return this.getList("mashup", _global); +} + +IriSP.Model.Source.prototype.getAnnotationTypes = function(_global) { + _global = (typeof _global !== "undefined" && _global); + return this.getList("annotationType", _global); +} + +IriSP.Model.Source.prototype.getAnnotationsByTypeTitle = function(_title, _global) { + _global = (typeof _global !== "undefined" && _global); + var _res = new IriSP.Model.List(this.directory), + _annTypes = this.getAnnotationTypes(_global).searchByTitle(_title); + _annTypes.forEach(function(_annType) { + _res.addElements(_annType.getAnnotations(_global)); + }) + return _res; +} + +IriSP.Model.Source.prototype.getDuration = function() { + var _m = this.currentMedia; + if (typeof _m !== "undefined") { + return this.currentMedia.duration; + } +} + +IriSP.Model.Source.prototype.merge = function(_source) { + var _this = this; + _source.forEach(function(_value, _key) { + _this.getList(_key).addElements(_value); + }); +} + +/* */ + +IriSP.Model.RemoteSource = function(_config) { + IriSP.Model.Source.call(this, _config); +} + +IriSP.Model.RemoteSource.prototype = new IriSP.Model.Source(); + +IriSP.Model.RemoteSource.prototype.get = function() { + this.status = IriSP.Model._SOURCE_STATUS_WAITING; + var _this = this; + this.serializer.loadData(this.url, function(_result) { + _this.deSerialize(_result); + _this.handleCallbacks(); + }); +} + +/* */ + +IriSP.Model.Directory = function() { + this.remoteSources = {}; + this.elements = {}; + this.namespaces = {}; +} + +IriSP.Model.Directory.prototype.addNamespace = function(_namespace, _url) { + this.namespaces[_namespace] = _url; +} + +IriSP.Model.Directory.prototype.remoteSource = function(_properties) { + var _config = IriSP._({ directory: this }).extend(_properties); + if (typeof this.remoteSources[_properties.url] === "undefined") { + this.remoteSources[_properties.url] = new IriSP.Model.RemoteSource(_config); + } + return this.remoteSources[_properties.url]; +} + +IriSP.Model.Directory.prototype.newLocalSource = function(_properties) { + var _config = IriSP._({ directory: this }).extend(_properties), + _res = new IriSP.Model.Source(_config); + return _res; +} + +IriSP.Model.Directory.prototype.getElement = function(_id) { + return this.elements[_id]; +} + +IriSP.Model.Directory.prototype.addElement = function(_element) { + this.elements[_element.id] = _element; +} + +IriSP.Model.Directory.prototype.getGlobalList = function() { + var _res = new IriSP.Model.List(this); + _res.addIds(IriSP._(this.elements).keys()); + return _res; +} + +/* */ diff -r ba7aab923d08 -r ec6849bbbdcc src/widgets/Annotation.js --- a/src/widgets/Annotation.js Fri Jun 08 19:03:03 2012 +0200 +++ b/src/widgets/Annotation.js Tue Jun 12 19:44:20 2012 +0200 @@ -77,7 +77,7 @@ this.lastAnnotation = _annotation.id; var _url = (typeof _annotation.url !== "undefined" ? _annotation.url - : (document.location.href.replace(/#.*$/,'') + '#id=' + _annotation.namespacedId.name)); + : (document.location.href.replace(/#.*$/,'') + '#id=' + _annotation.id)); var _text = this.l10n.watching + _annotation.title + (this.site_name ? this.l10n.on_site + this.site_name : ''); var _tags = _annotation.getTagTexts(); if (_tags.length) { diff -r ba7aab923d08 -r ec6849bbbdcc src/widgets/AnnotationsList.js --- a/src/widgets/AnnotationsList.js Fri Jun 08 19:03:03 2012 +0200 +++ b/src/widgets/AnnotationsList.js Tue Jun 12 19:44:20 2012 +0200 @@ -84,7 +84,7 @@ this.lastAjaxQuery = _currentTime; _currentTime = Math.floor(1000 * _currentTime); var _url = Mustache.to_html(this.ajax_url, { - media : this.source.currentMedia.namespacedId.name, + media : this.source.currentMedia.id, begin : Math.max(0, _currentTime - this.ajax_granularity), end : Math.min(_duration.milliseconds, _currentTime + this.ajax_granularity) }); @@ -99,11 +99,11 @@ _currentTime = 0; } var _currentAnnotation = this.source.currentMedia.getAnnotationAtTime(_currentTime * 1000); - if (typeof _currentAnnotation !== "undefined" && _currentAnnotation.namespacedId.name !== this.lastMashupAnnotation) { - this.lastMashupAnnotation = _currentAnnotation.namespacedId.name; + if (typeof _currentAnnotation !== "undefined" && _currentAnnotation.id !== this.lastMashupAnnotation) { + this.lastMashupAnnotation = _currentAnnotation.id; var _currentMedia = _currentAnnotation.getMedia(), _url = Mustache.to_html(this.ajax_url, { - media : _currentMedia.namespacedId.name, + media : _currentMedia.id, begin : Math.max(0, _currentAnnotation.annotation.begin.milliseconds - this.ajax_granularity), end : Math.min(_currentMedia.duration.milliseconds, _currentAnnotation.annotation.end.milliseconds + this.ajax_granularity) }); @@ -129,9 +129,9 @@ var _currentAnnotation = this.source.currentMedia.getAnnotationAtTime(_currentTime * 1000); if (typeof _currentAnnotation !== "undefined") { _currentTime = _currentTime - _currentAnnotation.begin.getSeconds() + _currentAnnotation.annotation.begin.getSeconds(); - var _mediaId = _currentAnnotation.getMedia().namespacedId.name; + var _mediaId = _currentAnnotation.getMedia().id; _list = _list.filter(function(_annotation) { - return _annotation.getMedia().namespacedId.name === _mediaId; + return _annotation.getMedia().id === _mediaId; }); } } @@ -169,15 +169,15 @@ { project : _annotation.project, media : _annotation.media.id.replace(/^.*:/,''), - annotation : _annotation.namespacedId.name, + annotation : _annotation.id, annotationType : _annotation.annotationType.id.replace(/^.*:/,'') } ) - : '#id=' + _annotation.namespacedId.name + : '#id=' + _annotation.id ) ); var _res = { - id : _annotation.namespacedId.name, + id : _annotation.id, title : _annotation.title.replace(_annotation.description,''), description : _annotation.description, begin : _annotation.begin.toString(), diff -r ba7aab923d08 -r ec6849bbbdcc src/widgets/CreateAnnotation.js --- a/src/widgets/CreateAnnotation.js Fri Jun 08 19:03:03 2012 +0200 +++ b/src/widgets/CreateAnnotation.js Tue Jun 12 19:44:20 2012 +0200 @@ -259,6 +259,7 @@ }, error: function(_xhr, _error, _thrown) { IriSP.log("Error when sending annotation", _thrown); + _export.getAnnotations().removeElement(_annotation, true); _this.showScreen('Error'); window.setTimeout(function(){ _this.showScreen("Main") diff -r ba7aab923d08 -r ec6849bbbdcc src/widgets/MediaList.js --- a/src/widgets/MediaList.js Fri Jun 08 19:03:03 2012 +0200 +++ b/src/widgets/MediaList.js Tue Jun 12 19:44:20 2012 +0200 @@ -66,7 +66,7 @@ this.$.find('.Ldt-MediaList-Now-Description').html(_media.description); var _url = _media.url || Mustache.to_html( this.media_url_template, { - media: _media.namespacedId.name + media: _media.id }); this.$.find('.Ldt-MediaList-NowContainer a').attr("href", _url); } else { @@ -84,7 +84,7 @@ thumbnail: _media.thumbnail || _this.default_thumbnail, url: _media.url || Mustache.to_html( _this.media_url_template, { - media: _media.namespacedId.name + media: _media.id }), title: _media.title, description: _media.description diff -r ba7aab923d08 -r ec6849bbbdcc src/widgets/Mediafragment.js --- a/src/widgets/Mediafragment.js Fri Jun 08 19:03:03 2012 +0200 +++ b/src/widgets/Mediafragment.js Tue Jun 12 19:44:20 2012 +0200 @@ -65,7 +65,7 @@ } IriSP.Widgets.Mediafragment.prototype.setHashToAnnotation = function(_annotationId) { - this.setHash( 'id', this.source.unNamespace(_annotationId) ); + this.setHash( 'id', _annotationId ); } IriSP.Widgets.Mediafragment.prototype.setHashToTime = function(_time) { diff -r ba7aab923d08 -r ec6849bbbdcc src/widgets/Polemic.js --- a/src/widgets/Polemic.js Fri Jun 08 19:03:03 2012 +0200 +++ b/src/widgets/Polemic.js Tue Jun 12 19:44:20 2012 +0200 @@ -169,13 +169,13 @@ var _y = _this.height; _slice.annotations.forEach(function(_annotation) { _y -= _this.element_height; - displayElement(_x, _y, _this.defaultcolor, _annotation.namespacedId.name, _annotation.title); + displayElement(_x, _y, _this.defaultcolor, _annotation.id, _annotation.title); }); IriSP._(_slice.polemicStacks).forEach(function(_annotations, _j) { var _color = _this.polemics[_j].color; _annotations.forEach(function(_annotation) { _y -= _this.element_height; - displayElement(_x, _y, _color, _annotation.namespacedId.name, _annotation.title); + displayElement(_x, _y, _color, _annotation.id, _annotation.title); }); }); _x += _this.element_width; diff -r ba7aab923d08 -r ec6849bbbdcc src/widgets/Segments.js --- a/src/widgets/Segments.js Fri Jun 08 19:03:03 2012 +0200 +++ b/src/widgets/Segments.js Tue Jun 12 19:44:20 2012 +0200 @@ -51,7 +51,7 @@ left : Math.floor( _left ), width : Math.floor( _width ), center : Math.floor( _center ), - id : _annotation.namespacedId.name + id : _annotation.id } }) })); diff -r ba7aab923d08 -r ec6849bbbdcc test/jwplayer.htm --- a/test/jwplayer.htm Fri Jun 08 19:03:03 2012 +0200 +++ b/test/jwplayer.htm Tue Jun 12 19:44:20 2012 +0200 @@ -17,6 +17,7 @@