src/js/serializers/PlatformSerializer.js
branchnew-model
changeset 856 41c574c807d1
child 858 ad1ffe0c0955
equal deleted inserted replaced
854:29f28a9f236f 856:41c574c807d1
       
     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 }