equal
deleted
inserted
replaced
1 (function() { |
1 (function() { |
2 "use strict"; |
2 "use strict"; |
3 var root = this; |
3 var root = this; |
4 |
4 |
5 var Backbone = root.Backbone; |
5 var Backbone = root.Backbone; |
6 |
6 |
7 var Models = root.Rkns.Models = {}; |
7 var Models = root.Rkns.Models = {}; |
8 |
8 |
9 |
9 |
134 color: this.get("color"), |
134 color: this.get("color"), |
135 created_by: this.get("created_by") ? this.get("created_by").get("_id") : null |
135 created_by: this.get("created_by") ? this.get("created_by").get("_id") : null |
136 }; |
136 }; |
137 } |
137 } |
138 }); |
138 }); |
|
139 |
|
140 // View |
|
141 var View = Models.View = RenkanModel.extend({ |
|
142 type: "view", |
|
143 relations: [ |
|
144 { |
|
145 type: Backbone.HasOne, |
|
146 key: "created_by", |
|
147 relatedModel: User |
|
148 } |
|
149 ], |
|
150 }); |
139 |
151 |
140 // PROJECT |
152 // PROJECT |
141 var Project = Models.Project = RenkanModel.extend({ |
153 var Project = Models.Project = RenkanModel.extend({ |
142 type: "project", |
154 type: "project", |
143 relations: [ |
155 relations: [ |
161 }, |
173 }, |
162 { |
174 { |
163 type: Backbone.HasMany, |
175 type: Backbone.HasMany, |
164 key: "edges", |
176 key: "edges", |
165 relatedModel: Edge, |
177 relatedModel: Edge, |
|
178 reverseRelation: { |
|
179 key: 'project', |
|
180 includeInJSON: '_id' |
|
181 } |
|
182 }, |
|
183 { |
|
184 type: Backbone.HasMany, |
|
185 key: "views", |
|
186 relatedModel: View, |
166 reverseRelation: { |
187 reverseRelation: { |
167 key: 'project', |
188 key: 'project', |
168 includeInJSON: '_id' |
189 includeInJSON: '_id' |
169 } |
190 } |
170 } |
191 } |
184 addEdge: function(_props, _options) { |
205 addEdge: function(_props, _options) { |
185 _props.project = this; |
206 _props.project = this; |
186 var _edge = Edge.findOrCreate(_props); |
207 var _edge = Edge.findOrCreate(_props); |
187 this.get("edges").push(_edge, _options); |
208 this.get("edges").push(_edge, _options); |
188 return _edge; |
209 return _edge; |
|
210 }, |
|
211 addView: function(_props, _options) { |
|
212 _props.project = this; |
|
213 // TODO: check if need to replace with create only |
|
214 var _view = View.findOrCreate(_props); |
|
215 // TODO: Should we remember only one view? |
|
216 this.get("views").push(_view, _options); |
|
217 return _view; |
189 }, |
218 }, |
190 removeNode: function(_model) { |
219 removeNode: function(_model) { |
191 this.get("nodes").remove(_model); |
220 this.get("nodes").remove(_model); |
192 }, |
221 }, |
193 removeEdge: function(_model) { |
222 removeEdge: function(_model) { |