31 |
31 |
32 Rkns.$ = jQuery; |
32 Rkns.$ = jQuery; |
33 |
33 |
34 Rkns._ = _; |
34 Rkns._ = _; |
35 |
35 |
36 Rkns.RemoteModels = {}; |
|
37 |
|
38 Rkns.RemoteModels._Base = function(_project, _opts) { |
|
39 if (typeof _project !== "undefined") { |
|
40 this._project = _project; |
|
41 this._callbackQueue = []; |
|
42 this._loaded = false; |
|
43 } |
|
44 } |
|
45 |
|
46 Rkns.RemoteModels._Base.prototype.fullSave |
|
47 = Rkns.RemoteModels._Base.prototype.addUser |
|
48 = Rkns.RemoteModels._Base.prototype.addNode |
|
49 = Rkns.RemoteModels._Base.prototype.addEdge |
|
50 = Rkns.RemoteModels._Base.prototype.updateNode |
|
51 = Rkns.RemoteModels._Base.prototype.updateEdge |
|
52 = Rkns.RemoteModels._Base.prototype.removeNode |
|
53 = Rkns.RemoteModels._Base.prototype.removeEdge |
|
54 = function() {} |
|
55 |
|
56 Rkns.RemoteModels._Base.prototype.deferCallback = function(_callback) { |
|
57 var _this = this; |
|
58 Rkns._.defer(function() { |
|
59 _callback.call(_this); |
|
60 }); |
|
61 } |
|
62 |
|
63 Rkns.RemoteModels._Base.prototype.handleCallbacks = function() { |
|
64 this._loaded = true; |
|
65 while (this._callbackQueue.length) { |
|
66 this.deferCallback(this._callbackQueue.splice(0,1)[0]); |
|
67 } |
|
68 } |
|
69 |
|
70 Rkns.RemoteModels._Base.prototype.onLoad = function(_callback) { |
|
71 if (this._loaded) { |
|
72 this.deferCallback(_callback); |
|
73 } else { |
|
74 this._callbackQueue.push(_callback); |
|
75 } |
|
76 } |
|
77 |
|
78 Rkns.RemoteModels._Base.prototype.save = function() {} |
|
79 |
|
80 Rkns.Bins = {} |
36 Rkns.Bins = {} |
81 |
37 |
82 Rkns.Bins._Base = function(_renkan, _opts) { |
38 Rkns.Bins._Base = function(_renkan, _opts) { |
83 if (typeof _renkan !== "undefined") { |
39 if (typeof _renkan !== "undefined") { |
84 this.renkan = _renkan; |
40 this.renkan = _renkan; |
108 _opts.container = "renkan"; |
64 _opts.container = "renkan"; |
109 } |
65 } |
110 if (typeof _opts.search !== "object" || !_opts.search) { |
66 if (typeof _opts.search !== "object" || !_opts.search) { |
111 _opts.search = []; |
67 _opts.search = []; |
112 } |
68 } |
113 this.project = new Rkns.ViewModel.Project(); |
69 this.project = new Rkns.Models.Project(); |
114 this.project.l10n = Rkns.i18n[_opts.language]; |
70 this.l10n = Rkns.i18n[_opts.language]; |
115 if (typeof _opts.user === "object") { |
71 if (typeof _opts.user_id !== "undefined") { |
116 this.current_user = this.project.addUser(_opts.user) |
72 this.current_user = _opts.user_id; |
117 } |
73 } |
118 this.$ = Rkns.$("#" + _opts.container); |
74 this.$ = Rkns.$("#" + _opts.container); |
119 this.$.html(this.template()); |
75 this.$.html(this.template()); |
120 this.remotemodel = this.project.remotemodel = new Rkns.RemoteModels[_opts.remotemodel](this.project, _opts); |
76 this.renderer = new Rkns.Renderer.Scene(this); |
121 this.renderer = this.project.renderer = new Rkns.Renderer.Scene(this.project, _opts); |
|
122 this.renderer.renkan = this; |
|
123 this.tabs = []; |
77 this.tabs = []; |
124 this.selected_bin_item = undefined; |
78 this.selected_bin_item = undefined; |
125 this.mousedown = false; |
79 this.mousedown = false; |
126 var _this = this; |
80 var _this = this; |
127 this.$.mouseup(function() { |
81 this.$.mouseup(function() { |
171 return false; |
125 return false; |
172 } |
126 } |
173 }); |
127 }); |
174 Rkns.$(window).resize(function() { |
128 Rkns.$(window).resize(function() { |
175 _this.resizeBins(); |
129 _this.resizeBins(); |
176 }) |
|
177 |
|
178 this.project.remotemodel.onLoad(function() { |
|
179 if (typeof _this.project.current_user === "undefined") { |
|
180 _this.project.current_user = _this.project.users[0]; |
|
181 } |
|
182 _this.project.renderer.draw(); |
|
183 }); |
130 }); |
184 } |
131 } |
185 |
132 |
186 Rkns.Renkan.prototype.template = Rkns._.template( |
133 Rkns.Renkan.prototype.template = Rkns._.template( |
187 '<div class="Rk-Bins">' |
134 '<div class="Rk-Bins">' |