|
1 if (typeof IriSP.serializers === "undefined") { |
|
2 IriSP.serializers = {} |
|
3 } |
|
4 |
|
5 IriSP.serializers.platform = { |
|
6 deSerialize : function(_data, _container) { |
|
7 |
|
8 var _types = [ |
|
9 { |
|
10 serialized_name : "medias", |
|
11 model_name : "media", |
|
12 deserializer : function(_data) { |
|
13 var _res = new IriSP.Model.Media(_data.id, _data); |
|
14 _res.url = _data.href; |
|
15 _res.title = _data.meta["dc:title"]; |
|
16 _res.description = _data.meta["dc:description"]; |
|
17 _res.setDuration(_data.meta["dc:duration"]); |
|
18 return _res; |
|
19 } |
|
20 }, |
|
21 { |
|
22 serialized_name : "annotation-types", |
|
23 model_name : "annotationType", |
|
24 deserializer : function(_data) { |
|
25 var _res = new IriSP.Model.AnnotationType(_data.id, _data); |
|
26 _res.title = _data["dc:title"]; |
|
27 _res.description = _data["dc:description"]; |
|
28 return _res; |
|
29 } |
|
30 }, |
|
31 { |
|
32 serialized_name : "annotations", |
|
33 model_name : "annotation", |
|
34 deserializer : function(_data) { |
|
35 var _res = new IriSP.Model.Annotation(_data.id, _data); |
|
36 _res.title = _data.content.title; |
|
37 _res.description = _data.content.description; |
|
38 _res.setMedia(_data.media, _container); |
|
39 _res.setAnnotationType(_data.meta["id-ref"], _container); |
|
40 _res.setBegin(_data.begin); |
|
41 _res.setEnd(_data.end); |
|
42 return _res; |
|
43 } |
|
44 } |
|
45 ]; |
|
46 |
|
47 IriSP._(_types).each(function(_type) { |
|
48 if (typeof _data[_type.serialized_name] !== "undefined") { |
|
49 var _list = new IriSP.Model.List(); |
|
50 IriSP._(_data[_type.serialized_name]).each(function(_el) { |
|
51 _list.addElement(_type.deserializer(_el)); |
|
52 }); |
|
53 _container.addList(_type.model_name, _list); |
|
54 } |
|
55 }); |
|
56 |
|
57 if (typeof _data.meta !== "undefined" && typeof _data.meta.main_media !== "undefined" && typeof _data.meta.main_media["id-ref"] !== "undefined") { |
|
58 _container.setCurrentMediaById(_data.meta.main_media["id-ref"]); |
|
59 } |
|
60 _container.setDefaultCurrentMedia(); |
|
61 } |
|
62 } |