integration/js/ldt-serializer.js
changeset 92 14b9fc4a4a3d
parent 52 f4c3171cd051
child 96 7cbaa8d0a7a6
equal deleted inserted replaced
91:e6c653f9960c 92:14b9fc4a4a3d
    76                 var _res = new IriSP.Model.Tag(_data.id, _source);
    76                 var _res = new IriSP.Model.Tag(_data.id, _source);
    77                 _res.title = _data.meta["dc:title"];
    77                 _res.title = _data.meta["dc:title"];
    78                 return _res;        
    78                 return _res;        
    79             },
    79             },
    80             serializer : function(_data, _source, _dest) {
    80             serializer : function(_data, _source, _dest) {
       
    81                 if (_source.regenerateTags && !_data.regenerated) {
       
    82                     return;
       
    83                 }
    81                 var _res = {
    84                 var _res = {
    82                     id : _data.id,
    85                     id : _data.id,
    83                     meta : {
    86                     meta : {
    84                         "dc:title": _data.title || "",
    87                         "dc:title": _data.title || "",
    85                         "dc:description": _data.description || "",
    88                         "dc:description": _data.description || "",
   177                         "dc:created" : IriSP.Model.dateToIso(_data.created || _source.created),
   180                         "dc:created" : IriSP.Model.dateToIso(_data.created || _source.created),
   178                         "dc:modified" : IriSP.Model.dateToIso(_data.modified || _source.modified),
   181                         "dc:modified" : IriSP.Model.dateToIso(_data.modified || _source.modified),
   179                         "dc:creator" : _data.creator || _source.creator,
   182                         "dc:creator" : _data.creator || _source.creator,
   180                         "dc:contributor" : _data.contributor || _source.contributor || _data.creator || _source.creator,
   183                         "dc:contributor" : _data.contributor || _source.contributor || _data.creator || _source.creator,
   181 //                        project : _source.projectId
   184 //                        project : _source.projectId
   182                     },
   185                     }
   183                     tags : IriSP._(_data.tag.id).map(function(_id) {
   186                 }
       
   187                 if (_source.regenerateTags) {
       
   188                     _res.tags = IriSP._(_data.keywords).map(function(_kw) {
       
   189                         return {
       
   190                             "id-ref": _source.__keywords[_kw.toLowerCase()].id
       
   191                         } 
       
   192                     });
       
   193                 } else {
       
   194                     _res.tags = IriSP._(_data.tag.id).map(function(_id) {
   184                        return {
   195                        return {
   185                            "id-ref" : _id
   196                            "id-ref" : _id
   186                        } 
   197                        } 
   187                     })
   198                     });
   188                 }
   199                 }
   189                 _res.content.title = _data.title || _res.content.title || "";
   200                 _res.content.title = _data.title || _res.content.title || "";
   190                 _dest.annotations.push(_res);
   201                 _dest.annotations.push(_res);
   191             }
   202             }
   192         },
   203         },
   246                 medias: [],
   257                 medias: [],
   247                 tags: [],
   258                 tags: [],
   248                 annotations: []
   259                 annotations: []
   249             },
   260             },
   250             _this = this;
   261             _this = this;
       
   262         if (_source.regenerateTags) {
       
   263             _source.__keywords = {};
       
   264             _source.getAnnotations().forEach(function(a) {
       
   265                 IriSP._(a.keywords).each(function(kw) {
       
   266                     var lkw = kw.toLowerCase();
       
   267                     if (typeof _source.__keywords[lkw] === "undefined") {
       
   268                         _source.__keywords[lkw] = {
       
   269                             id: IriSP.Model.getUID(),
       
   270                             title: kw,
       
   271                             regenerated: true
       
   272                         }
       
   273                     }
       
   274                 });
       
   275             });
       
   276             IriSP._(_source.__keywords).each(function(kw) {
       
   277                 _this.types.tag.serializer(kw, _source, _res);
       
   278             })
       
   279         }
   251         _source.forEach(function(_list, _typename) {
   280         _source.forEach(function(_list, _typename) {
   252             if (typeof _this.types[_typename] !== "undefined") {
   281             if (typeof _this.types[_typename] !== "undefined") {
   253                 _list.forEach(function(_el) {
   282                 _list.forEach(function(_el) {
   254                     _this.types[_typename].serializer(_el, _source, _res);
   283                     _this.types[_typename].serializer(_el, _source, _res);
   255                 });
   284                 });
   285         
   314         
   286         if (typeof _data.meta !== "undefined") {
   315         if (typeof _data.meta !== "undefined") {
   287             _source.projectId = _data.meta.id;
   316             _source.projectId = _data.meta.id;
   288             _source.title = _data.meta["dc:title"] || _data.meta.title || "";
   317             _source.title = _data.meta["dc:title"] || _data.meta.title || "";
   289             _source.description = _data.meta["dc:description"] || _data.meta.description || "";
   318             _source.description = _data.meta["dc:description"] || _data.meta.description || "";
       
   319             _source.creator = _data.meta["dc:creator"] || _data.meta.creator || "";
       
   320             _source.contributor = _data.meta["dc:contributor"] || _data.meta.contributor || _source.creator;
       
   321             _source.created = IriSP.Model.isoToDate(_data.meta["dc:created"] || _data.meta.created);
   290         }
   322         }
   291         
   323         
   292         if (typeof _data.meta !== "undefined" && typeof _data.meta.main_media !== "undefined" && typeof _data.meta.main_media["id-ref"] !== "undefined") {
   324         if (typeof _data.meta !== "undefined" && typeof _data.meta.main_media !== "undefined" && typeof _data.meta.main_media["id-ref"] !== "undefined") {
   293             _source.currentMedia = _source.getElement(_data.meta.main_media["id-ref"]);
   325             _source.currentMedia = _source.getElement(_data.meta.main_media["id-ref"]);
   294         }
   326         }