src/js/serializers/PlatformSerializer.js
branchnew-model
changeset 858 ad1ffe0c0955
parent 856 41c574c807d1
child 860 7fd843e0dc4e
equal deleted inserted replaced
856:41c574c807d1 858:ad1ffe0c0955
     8         var _types = [
     8         var _types = [
     9             {
     9             {
    10                 serialized_name : "medias",
    10                 serialized_name : "medias",
    11                 model_name : "media",
    11                 model_name : "media",
    12                 deserializer : function(_data) {
    12                 deserializer : function(_data) {
    13                     var _res = new IriSP.Model.Media(_data.id, _data);
    13                     var _res = new IriSP.Model.Media(_data.id, _container);
    14                     _res.url = _data.href;
    14                     _res.url = _data.href;
    15                     _res.title = _data.meta["dc:title"];
    15                     _res.title = _data.meta["dc:title"];
    16                     _res.description = _data.meta["dc:description"];
    16                     _res.description = _data.meta["dc:description"];
    17                     _res.setDuration(_data.meta["dc:duration"]);
    17                     _res.setDuration(_data.meta["dc:duration"]);
    18                     return _res;        
    18                     return _res;        
    19                 }
    19                 }
    20             },
    20             },
    21             {
    21             {
       
    22                 serialized_name : "tags",
       
    23                 model_name : "tag",
       
    24                 deserializer : function(_data) {
       
    25                     var _res = new IriSP.Model.Tag(_data.id, _container);
       
    26                     _res.title = _data["dc:title"];
       
    27                     return _res;        
       
    28                 }
       
    29             },
       
    30             {
    22                 serialized_name : "annotation-types",
    31                 serialized_name : "annotation-types",
    23                 model_name : "annotationType",
    32                 model_name : "annotationType",
    24                 deserializer : function(_data) {
    33                 deserializer : function(_data) {
    25                     var _res = new IriSP.Model.AnnotationType(_data.id, _data);
    34                     var _res = new IriSP.Model.AnnotationType(_data.id, _container);
    26                     _res.title = _data["dc:title"];
    35                     _res.title = _data["dc:title"];
    27                     _res.description = _data["dc:description"];
    36                     _res.description = _data["dc:description"];
    28                     return _res;        
    37                     return _res;        
    29                 }
    38                 }
    30             },
    39             },
    31             {
    40             {
    32                 serialized_name : "annotations",
    41                 serialized_name : "annotations",
    33                 model_name : "annotation",
    42                 model_name : "annotation",
    34                 deserializer : function(_data) {
    43                 deserializer : function(_data) {
    35                     var _res = new IriSP.Model.Annotation(_data.id, _data);
    44                     var _res = new IriSP.Model.Annotation(_data.id, _container);
    36                     _res.title = _data.content.title;
    45                     _res.title = _data.content.title;
    37                     _res.description = _data.content.description;
    46                     _res.description = _data.content.description;
    38                     _res.setMedia(_data.media, _container);
    47                     _res.setMedia(_data.media, _container);
    39                     _res.setAnnotationType(_data.meta["id-ref"], _container);
    48                     _res.setAnnotationType(_data.meta["id-ref"]);
       
    49                     _res.setTags(IriSP._(_data.tags).pluck("id-ref"));
    40                     _res.setBegin(_data.begin);
    50                     _res.setBegin(_data.begin);
    41                     _res.setEnd(_data.end);
    51                     _res.setEnd(_data.end);
    42                     return _res;
    52                     return _res;
    43                 }
    53                 }
    44             }
    54             }
    45         ];
    55         ];
    46         
    56         
    47         IriSP._(_types).each(function(_type) {
    57         IriSP._(_types).each(function(_type) {
    48             if (typeof _data[_type.serialized_name] !== "undefined") {
    58             if (typeof _data[_type.serialized_name] !== "undefined") {
    49                 var _list = new IriSP.Model.List();
    59                 var _list = new IriSP.Model.List(_container.directory);
    50                 IriSP._(_data[_type.serialized_name]).each(function(_el) {
    60                 IriSP._(_data[_type.serialized_name]).each(function(_el) {
    51                     _list.addElement(_type.deserializer(_el));
    61                     _list.addElement(_type.deserializer(_el));
    52                 });
    62                 });
    53                 _container.addList(_type.model_name, _list);
    63                 _container.addList(_type.model_name, _list);
    54             }
    64             }
    55         });
    65         });
    56         
    66         
    57         if (typeof _data.meta !== "undefined" && typeof _data.meta.main_media !== "undefined" && typeof _data.meta.main_media["id-ref"] !== "undefined") {
    67         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"]);
    68             _container.setCurrentMediaId(_data.meta.main_media["id-ref"]);
    59         }
    69         }
    60         _container.setDefaultCurrentMedia();
    70         _container.setDefaultCurrentMedia();
    61     }
    71     }
    62 }
    72 }