cms/app-client/app/components/playlist-component.js
author Chloe Laisne <chloe.laisne@gmail.com>
Sun, 02 Oct 2016 21:43:05 +0200
changeset 317 e653de66f252
parent 301 29b425234094
child 336 f076ddd29e13
permissions -rw-r--r--
Remove document filtering in playlist
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
196
7550cb541901 Filter as a service
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
     1
import Ember from 'ember';
7550cb541901 Filter as a service
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
     2
7550cb541901 Filter as a service
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
     3
export default Ember.Component.extend({
7550cb541901 Filter as a service
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
     4
209
35cb7200bb0a Separate playlist and player component with player service as bridge
Chloe Laisne <chloe.laisne@gmail.com>
parents: 201
diff changeset
     5
    classNames: ['playlist-component'],
200
a441c40f9c5e Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents: 196
diff changeset
     6
209
35cb7200bb0a Separate playlist and player component with player service as bridge
Chloe Laisne <chloe.laisne@gmail.com>
parents: 201
diff changeset
     7
    filter: Ember.inject.service(),
35cb7200bb0a Separate playlist and player component with player service as bridge
Chloe Laisne <chloe.laisne@gmail.com>
parents: 201
diff changeset
     8
    player: Ember.inject.service(),
200
a441c40f9c5e Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents: 196
diff changeset
     9
209
35cb7200bb0a Separate playlist and player component with player service as bridge
Chloe Laisne <chloe.laisne@gmail.com>
parents: 201
diff changeset
    10
    documents: Ember.computed('model', 'filter.location', 'filter.language', 'filter.discourse', 'filter.date', 'filter.theme', function() {
317
e653de66f252 Remove document filtering in playlist
Chloe Laisne <chloe.laisne@gmail.com>
parents: 301
diff changeset
    11
        return this.get('model');
200
a441c40f9c5e Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents: 196
diff changeset
    12
    }),
a441c40f9c5e Fix playlist filtering
Chloe Laisne <chloe.laisne@gmail.com>
parents: 196
diff changeset
    13
215
82878d132784 Play/Pause/Reset events from player/playlist-components
Chloe Laisne <chloe.laisne@gmail.com>
parents: 212
diff changeset
    14
    documentsLoaded: Ember.observer('documents', function() {
82878d132784 Play/Pause/Reset events from player/playlist-components
Chloe Laisne <chloe.laisne@gmail.com>
parents: 212
diff changeset
    15
        this.get('player').set('items', this.get('documents').map(function(document) {
82878d132784 Play/Pause/Reset events from player/playlist-components
Chloe Laisne <chloe.laisne@gmail.com>
parents: 212
diff changeset
    16
            return document.get('id');
82878d132784 Play/Pause/Reset events from player/playlist-components
Chloe Laisne <chloe.laisne@gmail.com>
parents: 212
diff changeset
    17
        }));
240
aa101458cd4e Player forward and backward
Chloe Laisne <chloe.laisne@gmail.com>
parents: 233
diff changeset
    18
        if(this.get('player').get('items').length && this.get('player').get('playing') === false) {
216
c174124d1849 /discours and /chrono design changes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 215
diff changeset
    19
            this.get('player').set('item', this.get('player').get('items')[0]);    
c174124d1849 /discours and /chrono design changes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 215
diff changeset
    20
        }
215
82878d132784 Play/Pause/Reset events from player/playlist-components
Chloe Laisne <chloe.laisne@gmail.com>
parents: 212
diff changeset
    21
    }).on('init'),
82878d132784 Play/Pause/Reset events from player/playlist-components
Chloe Laisne <chloe.laisne@gmail.com>
parents: 212
diff changeset
    22
82878d132784 Play/Pause/Reset events from player/playlist-components
Chloe Laisne <chloe.laisne@gmail.com>
parents: 212
diff changeset
    23
    init: function() {
82878d132784 Play/Pause/Reset events from player/playlist-components
Chloe Laisne <chloe.laisne@gmail.com>
parents: 212
diff changeset
    24
        this._super(...arguments);
82878d132784 Play/Pause/Reset events from player/playlist-components
Chloe Laisne <chloe.laisne@gmail.com>
parents: 212
diff changeset
    25
    },
82878d132784 Play/Pause/Reset events from player/playlist-components
Chloe Laisne <chloe.laisne@gmail.com>
parents: 212
diff changeset
    26
209
35cb7200bb0a Separate playlist and player component with player service as bridge
Chloe Laisne <chloe.laisne@gmail.com>
parents: 201
diff changeset
    27
    didRender: function() {
35cb7200bb0a Separate playlist and player component with player service as bridge
Chloe Laisne <chloe.laisne@gmail.com>
parents: 201
diff changeset
    28
        this._super(...arguments);
35cb7200bb0a Separate playlist and player component with player service as bridge
Chloe Laisne <chloe.laisne@gmail.com>
parents: 201
diff changeset
    29
        this.$().find('ul').height(Ember.$('.corpus-app-wrapper').outerHeight() - (Ember.$('.filter-component').outerHeight() + this.$().find('h2').outerHeight()));
35cb7200bb0a Separate playlist and player component with player service as bridge
Chloe Laisne <chloe.laisne@gmail.com>
parents: 201
diff changeset
    30
    },
35cb7200bb0a Separate playlist and player component with player service as bridge
Chloe Laisne <chloe.laisne@gmail.com>
parents: 201
diff changeset
    31
35cb7200bb0a Separate playlist and player component with player service as bridge
Chloe Laisne <chloe.laisne@gmail.com>
parents: 201
diff changeset
    32
    actions: {
35cb7200bb0a Separate playlist and player component with player service as bridge
Chloe Laisne <chloe.laisne@gmail.com>
parents: 201
diff changeset
    33
252
ba4fd614582a Load player with selected row
Chloe Laisne <chloe.laisne@gmail.com>
parents: 251
diff changeset
    34
        select: function(id) {
ba4fd614582a Load player with selected row
Chloe Laisne <chloe.laisne@gmail.com>
parents: 251
diff changeset
    35
            this.get('player').select(id);
ba4fd614582a Load player with selected row
Chloe Laisne <chloe.laisne@gmail.com>
parents: 251
diff changeset
    36
        },
ba4fd614582a Load player with selected row
Chloe Laisne <chloe.laisne@gmail.com>
parents: 251
diff changeset
    37
249
e4204b1a579a Quickfix micro-cuts
Chloe Laisne <chloe.laisne@gmail.com>
parents: 240
diff changeset
    38
        play: function(id) {
e4204b1a579a Quickfix micro-cuts
Chloe Laisne <chloe.laisne@gmail.com>
parents: 240
diff changeset
    39
            this.get('player').play(id);
e4204b1a579a Quickfix micro-cuts
Chloe Laisne <chloe.laisne@gmail.com>
parents: 240
diff changeset
    40
        },
e4204b1a579a Quickfix micro-cuts
Chloe Laisne <chloe.laisne@gmail.com>
parents: 240
diff changeset
    41
257
eba9edbd8f46 Add title to annotation
Chloe Laisne <chloe.laisne@gmail.com>
parents: 254
diff changeset
    42
        pause: function() {
249
e4204b1a579a Quickfix micro-cuts
Chloe Laisne <chloe.laisne@gmail.com>
parents: 240
diff changeset
    43
            this.get('player').pause();
227
5c9250f55f4b Basic notice logic from query parameters
Chloe Laisne <chloe.laisne@gmail.com>
parents: 216
diff changeset
    44
        },
5c9250f55f4b Basic notice logic from query parameters
Chloe Laisne <chloe.laisne@gmail.com>
parents: 216
diff changeset
    45
301
29b425234094 Transcript icon in tool container + Toggle transcript action on click
Chloe Laisne <chloe.laisne@gmail.com>
parents: 257
diff changeset
    46
        displayTranscript: function() {
29b425234094 Transcript icon in tool container + Toggle transcript action on click
Chloe Laisne <chloe.laisne@gmail.com>
parents: 257
diff changeset
    47
            this.get('player').displayAdditionalInformation('transcript');
29b425234094 Transcript icon in tool container + Toggle transcript action on click
Chloe Laisne <chloe.laisne@gmail.com>
parents: 257
diff changeset
    48
        },
29b425234094 Transcript icon in tool container + Toggle transcript action on click
Chloe Laisne <chloe.laisne@gmail.com>
parents: 257
diff changeset
    49
227
5c9250f55f4b Basic notice logic from query parameters
Chloe Laisne <chloe.laisne@gmail.com>
parents: 216
diff changeset
    50
        displayNotice: function(id) {
5c9250f55f4b Basic notice logic from query parameters
Chloe Laisne <chloe.laisne@gmail.com>
parents: 216
diff changeset
    51
            if(this.get('player').get('item') === id) {
254
a7cf2887e993 Hide/Show video CSS
Chloe Laisne <chloe.laisne@gmail.com>
parents: 252
diff changeset
    52
                this.get('player').displayMetadata('notice');
227
5c9250f55f4b Basic notice logic from query parameters
Chloe Laisne <chloe.laisne@gmail.com>
parents: 216
diff changeset
    53
            } else {
5c9250f55f4b Basic notice logic from query parameters
Chloe Laisne <chloe.laisne@gmail.com>
parents: 216
diff changeset
    54
                if(this.get('notice') !== id) {
5c9250f55f4b Basic notice logic from query parameters
Chloe Laisne <chloe.laisne@gmail.com>
parents: 216
diff changeset
    55
                    this.set('notice', id);
5c9250f55f4b Basic notice logic from query parameters
Chloe Laisne <chloe.laisne@gmail.com>
parents: 216
diff changeset
    56
                } else {
5c9250f55f4b Basic notice logic from query parameters
Chloe Laisne <chloe.laisne@gmail.com>
parents: 216
diff changeset
    57
                    this.set('notice', null);
5c9250f55f4b Basic notice logic from query parameters
Chloe Laisne <chloe.laisne@gmail.com>
parents: 216
diff changeset
    58
                }
5c9250f55f4b Basic notice logic from query parameters
Chloe Laisne <chloe.laisne@gmail.com>
parents: 216
diff changeset
    59
            }
5c9250f55f4b Basic notice logic from query parameters
Chloe Laisne <chloe.laisne@gmail.com>
parents: 216
diff changeset
    60
209
35cb7200bb0a Separate playlist and player component with player service as bridge
Chloe Laisne <chloe.laisne@gmail.com>
parents: 201
diff changeset
    61
        }
35cb7200bb0a Separate playlist and player component with player service as bridge
Chloe Laisne <chloe.laisne@gmail.com>
parents: 201
diff changeset
    62
35cb7200bb0a Separate playlist and player component with player service as bridge
Chloe Laisne <chloe.laisne@gmail.com>
parents: 201
diff changeset
    63
    }
196
7550cb541901 Filter as a service
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
    64
7550cb541901 Filter as a service
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
    65
});