cms/app-client/app/models/document.js
changeset 242 523ca6e73353
parent 229 744379451219
child 243 0f29cc270f9e
--- 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() {