--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/client/js/json-serializer.js Wed Jul 25 19:36:31 2012 +0200
@@ -0,0 +1,42 @@
+Rkns.Serializers.BasicJson = Rkns.Utils.inherit(Rkns.Serializers._Base);
+
+Rkns.Serializers.BasicJson.prototype._init = function() {
+ this.load(this._project._opts.url);
+}
+
+Rkns.Serializers.BasicJson.prototype.load = function(_url) {
+ var _this = this;
+ Rkns.$.getJSON(_url, function(_data) {
+ _this.deserialize(_data);
+ _this.handleCallbacks();
+ });
+}
+
+Rkns.Serializers.BasicJson.prototype.deserialize = function(_serializedData) {
+ if (typeof _serializedData === "string") {
+ _serializedData = JSON.parse(_serializedData);
+ }
+ var _proj = this._project;
+ _proj.title = _serializedData.title || "(untitled project)";
+ if (typeof _serializedData.users === "object" && _serializedData.users) {
+ _proj.users.addElements(
+ Rkns._(_serializedData.users).map(function(_userData) {
+ return new Rkns.Model.User(_proj, _userData);
+ })
+ );
+ }
+ if (typeof _serializedData.nodes === "object" && _serializedData.nodes) {
+ _proj.nodes.addElements(
+ Rkns._(_serializedData.nodes).map(function(_nodeData) {
+ return new Rkns.Model.Node(_proj, _nodeData);
+ })
+ );
+ }
+ if (typeof _serializedData.edges === "object" && _serializedData.edges) {
+ _proj.edges.addElements(
+ Rkns._(_serializedData.edges).map(function(_edgeData) {
+ return new Rkns.Model.Edge(_proj, _edgeData);
+ })
+ );
+ }
+}