client/js/json-serializer.js
changeset 1 45cca39b00ac
child 2 3360c3f7fb18
equal deleted inserted replaced
0:4b07ff5c2dd6 1:45cca39b00ac
       
     1 Rkns.Serializers.BasicJson = Rkns.Utils.inherit(Rkns.Serializers._Base);
       
     2 
       
     3 Rkns.Serializers.BasicJson.prototype._init = function() {
       
     4     this.load(this._project._opts.url);
       
     5 }
       
     6 
       
     7 Rkns.Serializers.BasicJson.prototype.load = function(_url) {
       
     8     var _this = this;
       
     9     Rkns.$.getJSON(_url, function(_data) {
       
    10         _this.deserialize(_data);
       
    11         _this.handleCallbacks();
       
    12     });
       
    13 }
       
    14 
       
    15 Rkns.Serializers.BasicJson.prototype.deserialize = function(_serializedData) {
       
    16     if (typeof _serializedData === "string") {
       
    17         _serializedData = JSON.parse(_serializedData);
       
    18     }
       
    19     var _proj = this._project;
       
    20     _proj.title = _serializedData.title || "(untitled project)";
       
    21     if (typeof _serializedData.users === "object" && _serializedData.users) {
       
    22         _proj.users.addElements(
       
    23             Rkns._(_serializedData.users).map(function(_userData) {
       
    24                 return new Rkns.Model.User(_proj, _userData);
       
    25             })
       
    26         );
       
    27     }
       
    28     if (typeof _serializedData.nodes === "object" && _serializedData.nodes) {
       
    29         _proj.nodes.addElements(
       
    30             Rkns._(_serializedData.nodes).map(function(_nodeData) {
       
    31                 return new Rkns.Model.Node(_proj, _nodeData);
       
    32             })
       
    33         );
       
    34     }
       
    35     if (typeof _serializedData.edges === "object" && _serializedData.edges) {
       
    36         _proj.edges.addElements(
       
    37             Rkns._(_serializedData.edges).map(function(_edgeData) {
       
    38                 return new Rkns.Model.Edge(_proj, _edgeData);
       
    39             })
       
    40         );
       
    41     }
       
    42 }