client/js/dataloader.js
changeset 444 19f0b7803aed
child 458 423bdf56d103
child 471 e0c7be5dc02c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/js/dataloader.js	Fri May 29 14:57:37 2015 +0200
@@ -0,0 +1,43 @@
+(function(root) {
+
+    "use strict";
+
+    var DataLoader = root.Rkns.DataLoader = {
+        converters: {
+            from1to2: function(data) {
+
+                //TODO: implement
+
+                return data;
+            }
+        }
+    };
+
+
+    DataLoader.Loader = function(project, options) {
+        this.project = project;
+        this.dataConverters = _.defaults(options.converters || {}, DataLoader.converters);
+    };
+
+
+    DataLoader.Loader.prototype.convert = function(data) {
+        var schemaVersionFrom = this.project.getSchemaVersion(data);
+        var schemaVersionTo = this.project.getSchemaVersion();
+
+        if (schemaVersionFrom !== schemaVersionTo) {
+            var converterName = "from" + schemaVersionFrom + "to" + schemaVersionTo;
+            if (typeof this.dataConverters[converterName] === 'function') {
+                data = this.dataConverters[converterName](data);
+            }
+        }
+        return data;
+    };
+
+    DataLoader.Loader.prototype.load = function(data) {
+        console.log(data);
+        this.project.set(this.convert(data), {
+            validate: true
+        });
+    };
+
+})(window);