diff -r 03e8815a012d -r 18b9be54174d client/js/dataloader.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/client/js/dataloader.js Tue Jun 02 16:42:02 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);