cms/app-client/app/routes/tabs/thematiques.js
author Chloe Laisne <chloe.laisne@gmail.com>
Sat, 15 Oct 2016 20:02:09 +0530
changeset 337 2ea18460d5e3
parent 299 2c16302b06f7
child 338 4a3899b6a7ed
permissions -rw-r--r--
Fix loading alphabetical/popularity sorting in themes
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
237
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
     5
    index: 0,
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
     6
    limit: 40,
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
     7
    sort: 'alphabetical',
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
     8
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
     9
    themes: [],
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
    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
    12
        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
    13
        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
    14
            '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
    15
            '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
    16
            '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
    17
        });
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    18
        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
    19
            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
    20
                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
    21
            }
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    22
            self.set('themes', value);
243
0f29cc270f9e Fix firefox focus
Chloe Laisne <chloe.laisne@gmail.com>
parents: 240
diff changeset
    23
        });
237
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    24
        return promise;
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    25
    }),
236
ac6928e86d14 Adapt theme query limit and offset and sorting order in fixtures
Chloe Laisne <chloe.laisne@gmail.com>
parents: 176
diff changeset
    26
243
0f29cc270f9e Fix firefox focus
Chloe Laisne <chloe.laisne@gmail.com>
parents: 240
diff changeset
    27
    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
    28
        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
    29
        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
    30
    },
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    31
337
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    32
    deactivate: function () {
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    33
        this.set('themes', []);
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    34
    },
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    35
237
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    36
    actions: {
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    37
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    38
        setIndexQueryparams: function() {
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    39
            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
    40
        },
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    41
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    42
        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
    43
            this.set('sort', sort);
337
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    44
            this.get('themes').get('content').clear();
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    45
            if(this.get('index') === 0) {
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    46
                // Force property reset to trigger request
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    47
                this.propertyWillChange('index');
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    48
                this.set('index', 0);
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    49
                this.propertyDidChange('index');
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    50
            } else {
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    51
                this.set('index', 0);
2ea18460d5e3 Fix loading alphabetical/popularity sorting in themes
Chloe Laisne <chloe.laisne@gmail.com>
parents: 299
diff changeset
    52
            }
237
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    53
        }
69a9f3687902 Scrolling system in thematiques: more button and append data on scroll
Chloe Laisne <chloe.laisne@gmail.com>
parents: 236
diff changeset
    54
        
176
d1baf7ccecc8 Add `thematiques` components
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
    55
    }
d1baf7ccecc8 Add `thematiques` components
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
    56
d1baf7ccecc8 Add `thematiques` components
Chloe Laisne <chloe.laisne@gmail.com>
parents:
diff changeset
    57
});