equal
deleted
inserted
replaced
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 }), |