cms/app-client/app/models/document.js
changeset 242 523ca6e73353
parent 229 744379451219
child 243 0f29cc270f9e
equal deleted inserted replaced
241:da3c6ba8a80b 242:523ca6e73353
     6 
     6 
     7     uri: DS.attr('string'),
     7     uri: DS.attr('string'),
     8     issued: DS.attr('date'),
     8     issued: DS.attr('date'),
     9     title: DS.attr('string'),
     9     title: DS.attr('string'),
    10     language: DS.attr('string'),
    10     language: DS.attr('string'),
       
    11     publisher: DS.attr('string'),
       
    12 
       
    13     publishers: DS.attr({ defaultValue: function() { return []; } }),
       
    14     contributors: DS.attr({ defaultValue: function() { return []; } }),
       
    15     geoInfo: DS.attr({ defaultValue: function() { return {}; } }),
       
    16     mediaArray: DS.attr({ defaultValue: function() { return []; } }),
       
    17 
    11     duration_ms: DS.attr('number', {
    18     duration_ms: DS.attr('number', {
    12         defaultValue: function() {
    19         defaultValue: function() {
    13             var self = this;
    20             var self = this;
    14             var duration = 0;
    21             var duration = 0;
    15             Object.keys(this.get('mediaArray')).forEach(function(key) {
    22             Object.keys(this.get('mediaArray')).forEach(function(key) {
    18                 }
    25                 }
    19             });
    26             });
    20             return duration;
    27             return duration;
    21         }
    28         }
    22     }),
    29     }),
    23     publisher: DS.attr('string'),
       
    24     publishers: DS.attr({ defaultValue: function() { return []; } }),
       
    25     contributors: DS.attr({ defaultValue: function() { return []; } }),
       
    26     geoInfo: DS.attr({ defaultValue: function() { return {}; } }),
       
    27     mediaArray: DS.attr({ defaultValue: function() { return []; } }),
       
    28 
    30 
    29     mediaList: Ember.computed('mediaArray', function() {
    31     media: Ember.computed('mediaArray', function() {
    30         var res = [];
    32         var array = [];
    31         var mp3 = null;
    33         var mp3 = null;
    32         _.forEach(this.get('mediaArray'), function(m) {
    34         _.forEach(this.get('mediaArray'), function(media) {
    33             if(m.format === 'audio/mpeg') {
    35             var index = array.findIndex(element => element.format === media.format);
    34                 mp3 = m;
    36             if(index > -1) {
    35             } else if(m.format.startsWith('audio/')) {
    37                 if (media.master) {
    36                 res.push(m);
    38                     array.splice(index, 1, media);
       
    39                 }
       
    40             } else {
       
    41                 array.push(media);
    37             }
    42             }
    38         });
    43         });
    39         if(mp3) {
    44         return array;
    40             res.unshift(mp3);
    45     }),
    41         }
    46 
    42         return res;
    47     video: Ember.computed('media', function() {
       
    48         return this.get('media').findIndex(element => element.format.match(new RegExp('^video/'))) > -1;
    43     }),
    49     }),
    44 
    50 
    45     duration: Ember.computed('duration_ms', function() {
    51     duration: Ember.computed('duration_ms', function() {
    46         return this.get('duration_ms')/1000;
    52         return this.get('duration_ms')/1000;
    47     }),
    53     }),