cms/app-client/app/components/visu-chrono.js
author Chloe Laisne <chloe.laisne@gmail.com>
Mon, 20 Jun 2016 17:04:59 +0200
changeset 195 9d083636bd99
parent 189 21b30ee23191
child 197 7b266ccf6d3d
permissions -rw-r--r--
Layout and style of the /chronologie endpoint

import Ember from 'ember';

const { getOwner } = Ember;

export default Ember.Component.extend({

    elementId: "chrono-table",

    didInsertElement: function(){
        var self = this;

        if (getOwner(self).lookup('controller:application').date !== null){
            this.highlightQuery(getOwner(self).lookup('controller:application').date);
        }

        var isMouseDown = false,
        isHighlighted;

        Ember.$("#chrono-table li").mousedown(function () {
            isMouseDown = true;
            Ember.$(this).toggleClass("highlighted");
            isHighlighted = Ember.$(this).hasClass("highlighted");
            self.sendUpdate();
            return false; // prevent text selection
        }).mouseover(function () {
            if (isMouseDown) {
                Ember.$(this).toggleClass("highlighted", isHighlighted);
                self.sendUpdate();
            }
        }).bind("selectstart", function () {
            return false;
        });

        Ember.$(document).mouseup(function () {
            isMouseDown = false;
        });
    },

    sendUpdate: function(){
        var dateQuery = [];
        Ember.$('.highlighted').map(function(index, elt) {
            dateQuery.push(parseInt(Ember.$(elt).parent().attr('id')) + parseInt(Ember.$(elt).html()));
        });
        this.sendAction('action', dateQuery);
    },

    highlightQuery: function(list){
        list.map(function(elt){
            var year = Math.floor(parseInt(elt)/10)*10;
            Ember.$("#"+year+" ."+(parseInt(elt)-year)).toggleClass("highlighted", true);
        });
    }

});