--- a/cms/app-client/app/models/document.js Sun Jul 17 14:41:03 2016 +0200
+++ b/cms/app-client/app/models/document.js Sun Jul 17 22:17:24 2016 +0200
@@ -8,6 +8,13 @@
issued: DS.attr('date'),
title: DS.attr('string'),
language: DS.attr('string'),
+ publisher: 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 []; } }),
+
duration_ms: DS.attr('number', {
defaultValue: function() {
var self = this;
@@ -20,26 +27,25 @@
return duration;
}
}),
- publisher: 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 = [];
+ media: Ember.computed('mediaArray', function() {
+ var array = [];
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);
+ _.forEach(this.get('mediaArray'), function(media) {
+ var index = array.findIndex(element => element.format === media.format);
+ if(index > -1) {
+ if (media.master) {
+ array.splice(index, 1, media);
+ }
+ } else {
+ array.push(media);
}
});
- if(mp3) {
- res.unshift(mp3);
- }
- return res;
+ return array;
+ }),
+
+ video: Ember.computed('media', function() {
+ return this.get('media').findIndex(element => element.format.match(new RegExp('^video/'))) > -1;
}),
duration: Ember.computed('duration_ms', function() {