cms/app-client/app/models/document.js
author Chloe Laisne <chloe.laisne@gmail.com>
Mon, 04 Jul 2016 11:15:25 +0200
changeset 217 989b9c36b849
parent 210 08ad36c693b1
child 220 2145b80776a3
permissions -rw-r--r--
Toolbar and Notice component styles

import DS from 'ember-data';
import Ember from 'ember';
import _ from 'lodash/lodash';

export default DS.Model.extend({

    uri: DS.attr('string'),
    issued: DS.attr('date'),
    title: DS.attr('string'),
    language: DS.attr('string'),
    publishers: DS.attr({ defaultValue: function() { return []; } }),
    contributors: DS.attr({ defaultValue: function() { return []; } }),
    geoInfo: DS.attr({ defaultValue: function() { return {}; } }),
    mediaArray: DS.attr({ defaultValue: function() { return []; } }),

    mediaList: Ember.computed('mediaArray', function() {
        var res = [];
        var mp3 = null;
        _.forEach(this.get('mediaArray'), function(m) {
            if(m.format === 'audio/mpeg') {
                mp3 = m;
            } else if(m.format.startsWith('audio/')) {
                res.push(m);
            }
        });
        if(mp3) {
            res.unshift(mp3);
        }
        return res;
    }),

    duration: Ember.computed('mediaArray', function() {
        var self = this;
        var duration = 0;
        Object.keys(this.get('mediaArray')).forEach(function(key) {
            if (!duration && self.get('mediaArray')[key].extent_ms) {
                duration = self.get('mediaArray')[key].extent_ms;
            };
        });
        return duration / 1000;
    })

});