client/js/dataloader.js
changeset 444 19f0b7803aed
child 458 423bdf56d103
child 471 e0c7be5dc02c
equal deleted inserted replaced
443:4c7ab16e5845 444:19f0b7803aed
       
     1 (function(root) {
       
     2 
       
     3     "use strict";
       
     4 
       
     5     var DataLoader = root.Rkns.DataLoader = {
       
     6         converters: {
       
     7             from1to2: function(data) {
       
     8 
       
     9                 //TODO: implement
       
    10 
       
    11                 return data;
       
    12             }
       
    13         }
       
    14     };
       
    15 
       
    16 
       
    17     DataLoader.Loader = function(project, options) {
       
    18         this.project = project;
       
    19         this.dataConverters = _.defaults(options.converters || {}, DataLoader.converters);
       
    20     };
       
    21 
       
    22 
       
    23     DataLoader.Loader.prototype.convert = function(data) {
       
    24         var schemaVersionFrom = this.project.getSchemaVersion(data);
       
    25         var schemaVersionTo = this.project.getSchemaVersion();
       
    26 
       
    27         if (schemaVersionFrom !== schemaVersionTo) {
       
    28             var converterName = "from" + schemaVersionFrom + "to" + schemaVersionTo;
       
    29             if (typeof this.dataConverters[converterName] === 'function') {
       
    30                 data = this.dataConverters[converterName](data);
       
    31             }
       
    32         }
       
    33         return data;
       
    34     };
       
    35 
       
    36     DataLoader.Loader.prototype.load = function(data) {
       
    37         console.log(data);
       
    38         this.project.set(this.convert(data), {
       
    39             validate: true
       
    40         });
       
    41     };
       
    42 
       
    43 })(window);