1 if (typeof IriSP.serializers === "undefined") { |
1 if (typeof IriSP.serializers === "undefined") { |
2 IriSP.serializers = {} |
2 IriSP.serializers = {} |
3 } |
3 } |
4 |
4 |
5 IriSP.serializers.platform = { |
5 IriSP.serializers.platform = { |
6 deSerialize : function(_data, _container) { |
6 types : { |
7 |
7 media : { |
8 var _types = [ |
8 serialized_name : "medias", |
9 { |
9 model_name : "media", |
10 serialized_name : "medias", |
10 deserializer : function(_data, _container) { |
11 model_name : "media", |
11 var _res = new IriSP.Model.Media(_data.id, _container); |
12 deserializer : function(_data) { |
12 _res.url = _data.href; |
13 var _res = new IriSP.Model.Media(_data.id, _container); |
13 _res.title = _data.meta["dc:title"]; |
14 _res.url = _data.href; |
14 _res.description = _data.meta["dc:description"]; |
15 _res.title = _data.meta["dc:title"]; |
15 _res.setDuration(_data.meta["dc:duration"]); |
16 _res.description = _data.meta["dc:description"]; |
16 return _res; |
17 _res.setDuration(_data.meta["dc:duration"]); |
|
18 return _res; |
|
19 } |
|
20 }, |
17 }, |
21 { |
18 serializer : function(_data, _container) { |
22 serialized_name : "tags", |
19 return { |
23 model_name : "tag", |
20 id : _container.unNamespace(_data.id), |
24 deserializer : function(_data) { |
21 href : _data.url, |
25 var _res = new IriSP.Model.Tag(_data.id, _container); |
22 meta : { |
26 _res.title = _data["dc:title"]; |
23 "dc:title" : _data.title, |
27 return _res; |
24 "dc:description" : _data.description, |
28 } |
25 "dc:duration" : _data.duration.milliseconds |
29 }, |
26 } |
30 { |
|
31 serialized_name : "annotation-types", |
|
32 model_name : "annotationType", |
|
33 deserializer : function(_data) { |
|
34 var _res = new IriSP.Model.AnnotationType(_data.id, _container); |
|
35 _res.title = _data["dc:title"]; |
|
36 _res.description = _data["dc:description"]; |
|
37 return _res; |
|
38 } |
|
39 }, |
|
40 { |
|
41 serialized_name : "annotations", |
|
42 model_name : "annotation", |
|
43 deserializer : function(_data) { |
|
44 var _res = new IriSP.Model.Annotation(_data.id, _container); |
|
45 _res.title = _data.content.title; |
|
46 _res.description = _data.content.description; |
|
47 _res.setMedia(_data.media, _container); |
|
48 _res.setAnnotationType(_data.meta["id-ref"]); |
|
49 _res.setTags(IriSP._(_data.tags).pluck("id-ref")); |
|
50 _res.setBegin(_data.begin); |
|
51 _res.setEnd(_data.end); |
|
52 return _res; |
|
53 } |
27 } |
54 } |
28 } |
55 ]; |
29 }, |
56 |
30 tag : { |
57 IriSP._(_types).each(function(_type) { |
31 serialized_name : "tags", |
|
32 model_name : "tag", |
|
33 deserializer : function(_data, _container) { |
|
34 var _res = new IriSP.Model.Tag(_data.id, _container); |
|
35 _res.title = _data.meta["dc:title"]; |
|
36 return _res; |
|
37 }, |
|
38 serializer : function(_data, _container) { |
|
39 return { |
|
40 id : _container.unNamespace(_data.id), |
|
41 meta : { |
|
42 "dc:title" : _data.title |
|
43 } |
|
44 } |
|
45 } |
|
46 }, |
|
47 annotationTypes : { |
|
48 serialized_name : "annotation-types", |
|
49 deserializer : function(_data, _container) { |
|
50 var _res = new IriSP.Model.AnnotationType(_data.id, _container); |
|
51 _res.title = _data["dc:title"]; |
|
52 _res.description = _data["dc:description"]; |
|
53 return _res; |
|
54 }, |
|
55 serializer : function(_data, _container) { |
|
56 return { |
|
57 id : _container.unNamespace(_data.id), |
|
58 "dc:title" : _data.title, |
|
59 "dc:description" : _data.description |
|
60 } |
|
61 } |
|
62 }, |
|
63 annotation : { |
|
64 serialized_name : "annotations", |
|
65 deserializer : function(_data, _container) { |
|
66 var _res = new IriSP.Model.Annotation(_data.id, _container); |
|
67 _res.title = _data.content.title; |
|
68 _res.description = _data.content.description; |
|
69 _res.created = IriSP.Model.isoToDate(_data.meta["dc:created"]); |
|
70 var _c = parseInt(_data.color).toString(16); |
|
71 while (_c.length < 6) { |
|
72 _c = '0' + _c; |
|
73 } |
|
74 _res.color = '#' + _c; |
|
75 _res.setMedia(_data.media, _container); |
|
76 _res.setAnnotationType(_data.meta["id-ref"]); |
|
77 _res.setTags(IriSP._(_data.tags).pluck("id-ref")); |
|
78 _res.setBegin(_data.begin); |
|
79 _res.setEnd(_data.end); |
|
80 return _res; |
|
81 }, |
|
82 serializer : function(_data, _container) { |
|
83 return { |
|
84 id : _container.unNamespace(_data.id), |
|
85 content : { |
|
86 title : _data.title, |
|
87 description : _data.description |
|
88 }, |
|
89 media : _container.unNamespace(_data.media.contents), |
|
90 meta : { |
|
91 "id-ref" : _container.unNamespace(_data.annotationType.contents), |
|
92 "dc:created" : IriSP.Model.dateToIso(_data.created) |
|
93 }, |
|
94 tags : _data.getTags().map(function(_el, _id) { |
|
95 return { |
|
96 "id-ref" : _container.unNamespace(_id) |
|
97 } |
|
98 }) |
|
99 } |
|
100 } |
|
101 } |
|
102 }, |
|
103 serialize : function(_container) { |
|
104 var _res = {}, |
|
105 _this = this; |
|
106 _container.each(function(_list, _typename) { |
|
107 _res[_this.types[_typename].serialized_name] = _list.map(function(_el) { |
|
108 return _this.types[_typename].serializer(_el, _container); |
|
109 }); |
|
110 }); |
|
111 return _res; |
|
112 }, |
|
113 deSerialize : function(_data, _container) { |
|
114 IriSP._(this.types).each(function(_type, _typename) { |
58 if (typeof _data[_type.serialized_name] !== "undefined") { |
115 if (typeof _data[_type.serialized_name] !== "undefined") { |
59 var _list = new IriSP.Model.List(_container.directory); |
116 var _list = new IriSP.Model.List(_container.directory); |
60 IriSP._(_data[_type.serialized_name]).each(function(_el) { |
117 IriSP._(_data[_type.serialized_name]).each(function(_el) { |
61 _list.addElement(_type.deserializer(_el)); |
118 _list.addElement(_type.deserializer(_el, _container)); |
62 }); |
119 }); |
63 _container.addList(_type.model_name, _list); |
120 _container.addList(_typename, _list); |
64 } |
121 } |
65 }); |
122 }); |
66 |
123 |
67 if (typeof _data.meta !== "undefined" && typeof _data.meta.main_media !== "undefined" && typeof _data.meta.main_media["id-ref"] !== "undefined") { |
124 if (typeof _data.meta !== "undefined" && typeof _data.meta.main_media !== "undefined" && typeof _data.meta.main_media["id-ref"] !== "undefined") { |
68 _container.setCurrentMediaId(_data.meta.main_media["id-ref"]); |
125 _container.setCurrentMediaId(_data.meta.main_media["id-ref"]); |