diff -r 70c8af9b44ec -r 121a24be9da4 client/js/models.js --- a/client/js/models.js Tue Aug 21 12:46:11 2012 +0200 +++ b/client/js/models.js Tue Aug 21 16:27:26 2012 +0200 @@ -54,8 +54,16 @@ prepare: function(options) { options.color = options.color || "#666666"; return options; - } - + }, + toJSON: function() { + return { + id: this.get("id"), + title: this.get("title"), + uri: this.get("uri"), + description: this.get("description"), + color: this.get("color"), + } + }, }); // NODE @@ -71,8 +79,17 @@ this.addReference(options, "created_by", project.get("users"), options.created_by, project.current_user); options.description = options.description || ""; return options; - } - + }, + toJSON: function() { + return { + id: this.get("id"), + title: this.get("title"), + uri: this.get("uri"), + description: this.get("description"), + position: this.get("position"), + created_by: this.get("created_by").get("id") + } + }, }); // EDGE @@ -101,7 +118,18 @@ this.addReference(options, "from", project.get("nodes"), options.from); this.addReference(options, "to", project.get("nodes"), options.to); return options; - } + }, + toJSON: function() { + return { + id: this.get("id"), + title: this.get("title"), + uri: this.get("uri"), + description: this.get("description"), + from: this.get("from").get("id"), + to: this.get("to").get("id"), + created_by: this.get("created_by").get("id"), + } + }, }); // PROJECT @@ -160,6 +188,18 @@ removeEdge: function(_model) { this.get("edges").remove(_model); }, + validate: function(options) { + var _project = this; + _(options.users).each(function(_item) { + _item.project = _project; + }); + _(options.nodes).each(function(_item) { + _item.project = _project; + }); + _(options.edges).each(function(_item) { + _item.project = _project; + }); + }, // Add event handler to remove edges when a node is removed initialize: function() { var _this = this;