cms/app-client/app/components/visu-chrono-year.js
author ymh <ymh.work@gmail.com>
Tue, 08 Nov 2016 11:18:02 +0100
changeset 398 a5bd0f6082f3
parent 394 48458e099b05
child 424 feb0d3e0fef9
permissions -rw-r--r--
css corrections + transcript
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
393
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
import Ember from 'ember';
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
import _ from 'lodash/lodash';
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
export default Ember.Component.extend({
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
    colors: Ember.inject.service(),
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
    filter: Ember.inject.service(),
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
    tagName: 'li',
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
    classNameBindings: ['isDisabled:disabled', 'isDark:light-color', 'isHighlighted:highlighted'],
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
    attributeBindings: ['style', 'title', 'id'],
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    isDisabled: Ember.computed('range', 'year', 'count', function() {
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
        let year = parseInt(this.get('year'));
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
        let count = this.get('count');
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
        return (!_.inRange(year, this.get('range')[0], this.get('range')[1]+1)) || count === 0;
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    }),
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    isHighlighted: Ember.computed('filter.dateList.[]', function() {
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        return _.contains(this.get('filter.dateList'), this.get('year'));
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    }),
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    isDark: Ember.computed('backgroundColor', 'isDisabled', function() {
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
        let backgroundColor = this.get('backgroundColor');
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
        if(this.get('isDisabled')) {
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
            return false;
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
        }
394
48458e099b05 make dynamic filters for all route and do some code pruning and cleaning
ymh <ymh.work@gmail.com>
parents: 393
diff changeset
    27
        return this.get('colors').getPerceptiveLuminance(backgroundColor) >= 0.5;
393
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
    }),
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
    backgroundColor: Ember.computed('count', 'maxCount', 'minCount', function() {
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
        return this.get('colors').shadeLinear(this.get('count'), this.get('minCount'), this.get('maxCount'));
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
    }),
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    style: Ember.computed('backgroundColor', 'isDisabled', 'isHighlighted', function() {
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        let backgroundColor = this.get('backgroundColor');
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
        if(this.get('isDisabled') || this.get('isHighlighted')) {
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
          return null;
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
        }
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
        return Ember.String.htmlSafe(`background-color: ${backgroundColor};`);
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
    }),
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
    id: Ember.computed.alias('year'),
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
    count: Ember.computed('datestats.[]', function() {
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
        let year = this.get('year');
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
        let count = this.get('datestats').get(`${year}`);
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        return count?count:0;
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
    }),
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
    title: Ember.computed('count', 'isDsabled', function() {
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
        if(this.get('isDisabled')) {
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
            return null;
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
        }
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
        let year = this.get('year');
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
        let count = this.get('count');
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
        return `${year} (${count})`;
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
    }),
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
    year: null,
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
    datestats: null,
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
    range: null,
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
    maxCount: null,
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
    minCount: null,
5ef3bfef0bff add colors to visu chrono
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
});