src/js/serializers/PlatformAnnotateSerializer.js
author veltr
Fri, 18 May 2012 18:23:51 +0200
branchnew-model
changeset 904 510ebab76fa3
child 908 f56199193fad
permissions -rw-r--r--
Work on CreateAnnotation Widget
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
904
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
     1
/* Used when Putting annotations on the platform */
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
     2
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
     3
if (typeof IriSP.serializers === "undefined") {
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
     4
    IriSP.serializers = {}
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
     5
}
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
     6
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
     7
IriSP.serializers.ldt_annotate = {
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
     8
    types :  {
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
     9
        annotation : {
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    10
            serialized_name : "annotations",
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    11
            serializer : function(_data, _source) {
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    12
                return {
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    13
                    begin: _data.begin.milliseconds,
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    14
                    end: _data.end.milliseconds,
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    15
                    content: {
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    16
                        data: _data.description
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    17
                    },
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    18
                    tags: _data.getTagTexts(),
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    19
                    media: _source.unNamespace(_data.getMedia().id),
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    20
                    title: _data.title,
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    21
                    type_title: _data.getAnnotationType().title,
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    22
                    type: _source.unNamespace(_data.getAnnotationType().id)
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    23
                }
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    24
            }
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    25
        }
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    26
    },
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    27
    serialize : function(_source) {
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    28
        var _res = {},
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    29
            _this = this;
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    30
        _source.forEach(function(_list, _typename) {
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    31
            if (typeof _this.types[_typename] !== "undefined") {
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    32
                _res[_this.types[_typename].serialized_name] = _list.map(function(_el) {
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    33
                    return _this.types[_typename].serializer(_el, _source);
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    34
                });
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    35
            }
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    36
        });
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    37
        _res.meta = {
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    38
            creator: _source.creator,
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    39
            created: _source.created
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    40
        }
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    41
        return JSON.stringify(_res);
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    42
    }
510ebab76fa3 Work on CreateAnnotation Widget
veltr
parents:
diff changeset
    43
}