diff -r 2edab45f0e90 -r 62da43e72e30 src/js/serializers/JSONSerializer.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/js/serializers/JSONSerializer.js Thu Oct 20 15:59:28 2011 +0200 @@ -0,0 +1,38 @@ + +IriSP.JSONSerializer = function(DataLoader, url) { + IriSP.Serializer.call(this, DataLoader, url); +}; + +IriSP.JSONSerializer.prototype = IriSP.Serializer; + +IriSP.JSONSerializer.prototype.serialize = function(data) { + return JSON.stringify(data); +}; + +IriSP.JSONSerializer.prototype.deserialize = function(data) { + return JSON.parse(data); +}; + +IriSP.JSONSerializer.prototype.sync = function(callback) { + /* we don't have to do much because jQuery handles json for us */ + + /* a wrapper to get a closure because we lose this in callbacks */ + var wrapper = function(obj) { + return function(data) { + obj._data = data; + // sort the data too + obj._data["annotations"].sort(function(a, b) + { var a_begin = +a.begin; + var b_begin = +b.begin; + return a_begin - b_begin; + }); + callback(data); + } + }; + + this._DataLoader.get(this._url, wrapper(this)); +}; + +IriSP.JSONSerializer.prototype.currentMedia = function() { + return this._data.medias[0]; /* FIXME: don't hardcode it */ +};