cms/app-client/app/routes/tabs/thematiques.js
author Chloe Laisne <chloe.laisne@gmail.com>
Sun, 16 Oct 2016 22:23:31 +0530
changeset 338 4a3899b6a7ed
parent 337 2ea18460d5e3
child 394 48458e099b05
permissions -rw-r--r--
Fix notice/transcript display when adding filter from notice, switching from playlist, toolbar, and player
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
176
d1baf7ccecc8 Add `thematiques` components
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
     1
import Ember from 'ember';
d1baf7ccecc8 Add `thematiques` components
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
     2
d1baf7ccecc8 Add `thematiques` components
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
     3
export default Ember.Route.extend({
d1baf7ccecc8 Add `thematiques` components
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
     4
338
4a3899b6a7ed Fix notice/transcript display when adding filter from notice, switching from playlist, toolbar, and player
Chloe Laisne <chloe.laisne@gmail.com>
parents: 337
diff changeset
     5
    player: Ember.inject.service(),
4a3899b6a7ed Fix notice/transcript display when adding filter from notice, switching from playlist, toolbar, and player
Chloe Laisne <chloe.laisne@gmail.com>
parents: 337
diff changeset
     6
237
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
     7
    index: 0,
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
     8
    limit: 40,
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
     9
    sort: 'alphabetical',
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    10
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    11
    themes: [],
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    12
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    13
    model: Ember.observer('index', function() {
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    14
        var self = this;
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    15
        var promise = this.store.query('theme', {
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    16
            'limit': this.get('limit'),
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    17
            'index': this.get('index'),
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    18
            'sort': this.get('sort')
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    19
        });
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    20
        promise.then(function(value) {
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    21
            if (self.get('themes').length) {
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    22
                value = self.get('themes').pushObjects(value.get('content'));
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    23
            }
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    24
            self.set('themes', value);
243
0f29cc270f9e Fix firefox focus
Chloe Laisne <chloe.laisne@gmail.com>
parents: 240
diff changeset
    25
        });
237
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    26
        return promise;
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    27
    }),
236
ac6928e86d14 Adapt theme query limit and offset and sorting order in fixtures
Chloe Laisne <chloe.laisne@gmail.com>
parents: 176
diff changeset
    28
243
0f29cc270f9e Fix firefox focus
Chloe Laisne <chloe.laisne@gmail.com>
parents: 240
diff changeset
    29
    setupController: function(controller) {
237
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    30
        this._super(...arguments);
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    31
        controller.set('themes', this.get('themes'));
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    32
    },
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    33
337
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    34
    deactivate: function () {
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    35
        this.set('themes', []);
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    36
    },
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    37
338
4a3899b6a7ed Fix notice/transcript display when adding filter from notice, switching from playlist, toolbar, and player
Chloe Laisne <chloe.laisne@gmail.com>
parents: 337
diff changeset
    38
    activate: function() {
4a3899b6a7ed Fix notice/transcript display when adding filter from notice, switching from playlist, toolbar, and player
Chloe Laisne <chloe.laisne@gmail.com>
parents: 337
diff changeset
    39
        this.get('player').set('window', false);
4a3899b6a7ed Fix notice/transcript display when adding filter from notice, switching from playlist, toolbar, and player
Chloe Laisne <chloe.laisne@gmail.com>
parents: 337
diff changeset
    40
    },
4a3899b6a7ed Fix notice/transcript display when adding filter from notice, switching from playlist, toolbar, and player
Chloe Laisne <chloe.laisne@gmail.com>
parents: 337
diff changeset
    41
237
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    42
    actions: {
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    43
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    44
        setIndexQueryparams: function() {
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    45
            this.set('index', this.get('index') + 1);
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    46
        },
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    47
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    48
        setSortQueryparams: function(sort) {
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    49
            this.set('sort', sort);
337
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    50
            this.get('themes').get('content').clear();
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    51
            if(this.get('index') === 0) {
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    52
                // Force property reset to trigger request
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    53
                this.propertyWillChange('index');
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    54
                this.set('index', 0);
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    55
                this.propertyDidChange('index');
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    56
            } else {
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    57
                this.set('index', 0);
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    58
            }
237
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    59
        }
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    60
        
176
d1baf7ccecc8 Add `thematiques` components
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
    61
    }
d1baf7ccecc8 Add `thematiques` components
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
    62
d1baf7ccecc8 Add `thematiques` components
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
    63
});