server/src/main/webapp/static/js/full-json.js
author ymh <ymh.work@gmail.com>
Tue, 25 Dec 2012 21:29:11 +0100
changeset 47 267d67791e05
permissions -rw-r--r--
first stabilization of editing a renkan. No collaborative capacities yet.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
/* Saves the Full JSON at each modification */
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
Rkns.jsonIO = function(_renkan, _opts) {
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
    var _proj = _renkan.project;
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
    if (typeof _opts.http_method == "undefined") {
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
        _opts.http_method = 'PUT';
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
    }
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
    var _load = function() {
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
        Rkns.$.getJSON(_opts.url, function(_data) {
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
            _proj.set(_data);
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
            _renkan.renderer.autoScale();
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
        });
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    }
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    var _save = function() {
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
        var _data = _proj.toJSON();
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
        Rkns.$.ajax({
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
            type: _opts.http_method,
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
            url: _opts.url,
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
            contentType: "application/json",
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
            data: JSON.stringify(_data),
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
            success: function(data, textStatus, jqXHR) {
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
            }
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
        });
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    }
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    var _thrSave = Rkns._.throttle(
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        function() {
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
            setTimeout(_save, 100)
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        }, 1000);
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
    _load();
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
    _proj.on("add:nodes add:edges add:users", function(_model) {
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
        _model.on("change remove", function(_model) {
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
            _thrSave();
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        });
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
        _thrSave();
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
    });
267d67791e05 first stabilization of editing a renkan.
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
}