client/js/full-json.js
author veltr
Fri, 14 Sep 2012 10:21:00 +0900
changeset 41 9b9aabbb83bb
parent 36 d249d36ecc37
child 62 f9019462465a
permissions -rw-r--r--
Today, I learned about the delegate function in jQuery

/* Saves the Full JSON at each modification */

Rkns.jsonIO = function(_renkan, _opts) {
    var _proj = _renkan.project;
    if (typeof _opts.http_method == "undefined") {
        _opts.http_method = 'PUT';
    }
    var _load = function() {
        Rkns.$.getJSON(_opts.url, function(_data) {
            _proj.set(_data);
            _renkan.renderer.autoScale();
        });
    }
    var _save = function() {
        var _data = _proj.toJSON();
        Rkns.$.ajax({
            type: _opts.http_method,
            url: _opts.url,
            contentType: "application/json",
            data: JSON.stringify(_data),
            success: function(data, textStatus, jqXHR) {
            }
        });
        
    }
    var _thrSave = Rkns._.throttle(
        function() {
            setTimeout(_save, 100)
        }, 1000);
    _load();
    _proj.on("add:nodes add:edges add:users", function(_model) {
        _model.on("change remove", function(_model) {
            _thrSave();
        });
        _thrSave();
    });
}