integ/renkan/js/full-json.js
author veltr
Thu, 30 May 2013 16:08:07 +0200
changeset 73 0519097d6177
parent 50 3508fa894b90
permissions -rw-r--r--
Loop Replay
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
50
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
     1
/* Saves the Full JSON at each modification */
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
     2
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
     3
Rkns.jsonIO = function(_renkan, _opts) {
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
     4
    var _proj = _renkan.project;
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
     5
    if (typeof _opts.http_method == "undefined") {
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
     6
        _opts.http_method = 'PUT';
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
     7
    }
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
     8
    var _load = function() {
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
     9
        Rkns.$.getJSON(_opts.url, function(_data) {
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    10
            _proj.set(_data, {validate: true});
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    11
            _renkan.renderer.autoScale();
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    12
        });
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    13
    };
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    14
    var _save = function() {
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    15
        var _data = _proj.toJSON();
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    16
        if (!_renkan.read_only) {
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    17
            Rkns.$.ajax({
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    18
                type: _opts.http_method,
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    19
                url: _opts.url,
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    20
                contentType: "application/json",
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    21
                data: JSON.stringify(_data),
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    22
                success: function(data, textStatus, jqXHR) {
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    23
                }
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    24
            });
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    25
        }
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    26
        
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    27
    };
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    28
    var _thrSave = Rkns._.throttle(
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    29
        function() {
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    30
            setTimeout(_save, 100);
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    31
        }, 1000);
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    32
    _proj.on("add:nodes add:edges add:users", function(_model) {
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    33
        _model.on("change remove", function(_model) {
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    34
            _thrSave();
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    35
        });
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    36
        _thrSave();
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    37
    });
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    38
    _proj.on("change", function() {
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    39
        _thrSave();
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    40
    });
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    41
        
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    42
    _load();
3508fa894b90 First version of cinecard reading
veltr
parents:
diff changeset
    43
};