Skip to content
Code-Schnipsel Gruppen Projekte
Area.js 3,04 KiB
Newer Older
  • Learn to ignore specific revisions
  • Henning Leutz's avatar
    Henning Leutz committed
    /**
    
    Henning Leutz's avatar
    Henning Leutz committed
     * BrickAreas Control
     * Edit and change the areas for the brick
    
    Henning Leutz's avatar
    Henning Leutz committed
     *
    
    Henning Leutz's avatar
    Henning Leutz committed
     * @module package/quiqqer/bricks/bin/BrickAreas
    
    Henning Leutz's avatar
    Henning Leutz committed
     * @author www.pcsg.de (Henning Leutz)
     *
     * @event onLoaded [ this ]
     */
    
    Henning Leutz's avatar
    Henning Leutz committed
    define('package/quiqqer/bricks/bin/Area', [
    
    Henning Leutz's avatar
    Henning Leutz committed
    
        'qui/QUI',
        'qui/controls/Control',
        'qui/controls/buttons/Button',
    
    Henning Leutz's avatar
    Henning Leutz committed
        'package/quiqqer/bricks/bin/AreaWindow',
    
    Henning Leutz's avatar
    Henning Leutz committed
        'Ajax',
        'Locale',
    
    
    Henning Leutz's avatar
    Henning Leutz committed
        'css!package/quiqqer/bricks/bin/Area.css'
    
    Henning Leutz's avatar
    Henning Leutz committed
    
    
    Henning Leutz's avatar
    Henning Leutz committed
    ], function (QUI, QUIControl) {
    
    Henning Leutz's avatar
    Henning Leutz committed
        "use strict";
    
        return new Class({
    
    
    Henning Leutz's avatar
    Henning Leutz committed
            Extends: QUIControl,
            Type   : 'package/quiqqer/bricks/bin/Area',
    
    Henning Leutz's avatar
    Henning Leutz committed
    
    
    Henning Leutz's avatar
    Henning Leutz committed
            Binds: [
    
    Henning Leutz's avatar
    Henning Leutz committed
                'toggle'
            ],
    
    
    Henning Leutz's avatar
    Henning Leutz committed
            options: {
                area       : false,
                title      : false,
                description: false
    
    Henning Leutz's avatar
    Henning Leutz committed
            },
    
    
    Henning Leutz's avatar
    Henning Leutz committed
            initialize: function (options) {
    
    Henning Leutz's avatar
    Henning Leutz committed
                this.parent(options);
    
    Henning Leutz's avatar
    Henning Leutz committed
    
                this.$Title    = false;
                this.$Desc     = false;
                this.$selected = false;
            },
    
            /**
             * Return the HTML Node Element
             *
             * @return {HTMLElement}
             */
    
    Henning Leutz's avatar
    Henning Leutz committed
            create: function () {
    
    Henning Leutz's avatar
    Henning Leutz committed
                this.$Elm = new Element('div', {
    
    Henning Leutz's avatar
    Henning Leutz committed
                    'class': 'quiqqer-bricks-area smooth',
                    html   : '<div class="quiqqer-bricks-area-icon">' +
    
                    '<span class="fa fa-list-alt"></span>' +
                    '</div>' +
                    '<div class="quiqqer-bricks-area-content">' +
                    '<div class="quiqqer-bricks-area-content-title"></div>' +
                    '<div class="quiqqer-bricks-area-content-description"></div>' +
                    '</div>',
    
    Henning Leutz's avatar
    Henning Leutz committed
                    events : {
    
    Henning Leutz's avatar
    Henning Leutz committed
                        click: this.toggle
    
    Henning Leutz's avatar
    Henning Leutz committed
                    }
                });
    
    
    Henning Leutz's avatar
    Henning Leutz committed
                this.$Title = this.$Elm.getElement('.quiqqer-bricks-area-content-title');
                this.$Desc  = this.$Elm.getElement('.quiqqer-bricks-area-content-description');
    
    Henning Leutz's avatar
    Henning Leutz committed
    
    
    Henning Leutz's avatar
    Henning Leutz committed
                if (this.getAttribute('area')) {
                    this.$Elm.set('data-area', this.getAttribute('area'));
    
    Henning Leutz's avatar
    Henning Leutz committed
                }
    
    
    Henning Leutz's avatar
    Henning Leutz committed
                if (this.getAttribute('title')) {
                    this.$Title.set('html', this.getAttribute('title'));
    
    Henning Leutz's avatar
    Henning Leutz committed
                }
    
    
    Henning Leutz's avatar
    Henning Leutz committed
                if (this.getAttribute('description')) {
                    this.$Desc.set('html', this.getAttribute('description'));
    
    Henning Leutz's avatar
    Henning Leutz committed
                }
    
    
                return this.$Elm;
            },
    
            /**
             * toggle the select status
             */
    
    Henning Leutz's avatar
    Henning Leutz committed
            toggle: function () {
                if (this.$selected) {
    
    Henning Leutz's avatar
    Henning Leutz committed
                    this.unselect();
                    return;
                }
    
                this.select();
            },
    
            /**
             * Select the area
             */
    
    Henning Leutz's avatar
    Henning Leutz committed
            select: function () {
    
    Henning Leutz's avatar
    Henning Leutz committed
                if (this.$selected) {
    
    Henning Leutz's avatar
    Henning Leutz committed
                    return;
                }
    
                this.$selected = true;
    
    Henning Leutz's avatar
    Henning Leutz committed
                this.$Elm.addClass('quiqqer-bricks-area-selected');
    
    Henning Leutz's avatar
    Henning Leutz committed
            },
    
            /**
             * Unselect the area
             */
    
    Henning Leutz's avatar
    Henning Leutz committed
            unselect: function () {
    
    Henning Leutz's avatar
    Henning Leutz committed
                if (this.$selected === false) {
    
    Henning Leutz's avatar
    Henning Leutz committed
                    return;
                }
    
                this.$selected = false;
    
    Henning Leutz's avatar
    Henning Leutz committed
                this.$Elm.removeClass('quiqqer-bricks-area-selected');
    
    Henning Leutz's avatar
    Henning Leutz committed
            }
        });
    });