client/js/full-json.js
author ymh <ymh.work@gmail.com>
Fri, 05 Apr 2013 13:56:22 +0200
changeset 139 9929b1447f69
parent 116 07f9fc847d5d
child 160 408da84d4dc0
permissions -rw-r--r--
- Clean template code for list bin - set data-image to empty when there is no image for a resource - correct Rkns.Utils.getFullURL to handle case when the url is null or undefined - correct Rkns.Utils.getFullURL to avoid requesting the url when the url is already absolute
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20
bd58970ffd16 Refactoring to better fit the MVVM pattern
veltr
parents: 14
diff changeset
     1
/* Saves the Full JSON at each modification */
bd58970ffd16 Refactoring to better fit the MVVM pattern
veltr
parents: 14
diff changeset
     2
23
70c8af9b44ec Rebased Rendering on Backbone Model
veltr
parents: 20
diff changeset
     3
Rkns.jsonIO = function(_renkan, _opts) {
70c8af9b44ec Rebased Rendering on Backbone Model
veltr
parents: 20
diff changeset
     4
    var _proj = _renkan.project;
20
bd58970ffd16 Refactoring to better fit the MVVM pattern
veltr
parents: 14
diff changeset
     5
    if (typeof _opts.http_method == "undefined") {
bd58970ffd16 Refactoring to better fit the MVVM pattern
veltr
parents: 14
diff changeset
     6
        _opts.http_method = 'PUT';
bd58970ffd16 Refactoring to better fit the MVVM pattern
veltr
parents: 14
diff changeset
     7
    }
23
70c8af9b44ec Rebased Rendering on Backbone Model
veltr
parents: 20
diff changeset
     8
    var _load = function() {
70c8af9b44ec Rebased Rendering on Backbone Model
veltr
parents: 20
diff changeset
     9
        Rkns.$.getJSON(_opts.url, function(_data) {
105
810a1c1015df fixed the position propagation bug
veltr
parents: 67
diff changeset
    10
            _proj.set(_data, {validate: true});
116
07f9fc847d5d Autoscale is back
veltr
parents: 114
diff changeset
    11
            _renkan.renderer.autoScale();
4
f5297dde9053 Can now add nodes/edges
veltr
parents: 2
diff changeset
    12
        });
1
45cca39b00ac First rendering tests
veltr
parents:
diff changeset
    13
    }
114
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    14
    var _save = function() {
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    15
        var _data = _proj.toJSON();
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    16
        if (!_renkan.read_only) {
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    17
        	Rkns.$.ajax({
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    18
	            type: _opts.http_method,
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    19
	            url: _opts.url,
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    20
	            contentType: "application/json",
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    21
	            data: JSON.stringify(_data),
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    22
	            success: function(data, textStatus, jqXHR) {
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    23
	            }
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    24
	        });
62
f9019462465a Publishing code is now same as Editing code with renkan.read_only = true
veltr
parents: 36
diff changeset
    25
        }
114
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    26
        
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    27
    }
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    28
    var _thrSave = Rkns._.throttle(
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    29
        function() {
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    30
            setTimeout(_save, 100)
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    31
        }, 1000);
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    32
    _proj.on("add:nodes add:edges add:users", function(_model) {
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    33
        _model.on("change remove", function(_model) {
23
70c8af9b44ec Rebased Rendering on Backbone Model
veltr
parents: 20
diff changeset
    34
            _thrSave();
70c8af9b44ec Rebased Rendering on Backbone Model
veltr
parents: 20
diff changeset
    35
        });
114
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    36
        _thrSave();
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    37
    });
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    38
    _proj.on("change", function() {
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    39
        _thrSave();
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    40
    });
110f99eb417e moved options to defaults.js and improved read-only switching
veltr
parents: 105
diff changeset
    41
        
62
f9019462465a Publishing code is now same as Editing code with renkan.read_only = true
veltr
parents: 36
diff changeset
    42
    _load();
4
f5297dde9053 Can now add nodes/edges
veltr
parents: 2
diff changeset
    43
}