Skip to content
Code-Schnipsel Gruppen Projekte
Area.js 27 KiB
Newer Older
  • Learn to ignore specific revisions
  • Henning Leutz's avatar
    Henning Leutz committed
    
    
    /**
     * Area edit control for the site object
     *
    
    Henning Leutz's avatar
    Henning Leutz committed
     * @module package/quiqqer/bricks/bin/Site/Area
    
     * @author www.pcsg.de (Henning Leutz)
    
     *
     * @require qui/QUI
     * @require qui/controls/Control
     * @require qui/controls/buttons/Button
     * @require qui/controls/windows/Popup
     * @require qui/controls/windows/Confirm
     * @require qui/controls/elements/List
     * @require Locale
     * @require Ajax
     * @require package/quiqqer/bricks/bin/Sortables
     * @require css!package/quiqqer/bricks/bin/Site/Area.css
    
    Henning Leutz's avatar
    Henning Leutz committed
    define('package/quiqqer/bricks/bin/Site/Area', [
    
    
        'qui/QUI',
        'qui/controls/Control',
        'qui/controls/buttons/Button',
    
    Henning Leutz's avatar
    Henning Leutz committed
        'qui/controls/windows/Popup',
    
    Henning Leutz's avatar
    Henning Leutz committed
        'qui/controls/windows/Confirm',
    
    Henning Leutz's avatar
    Henning Leutz committed
        'qui/controls/elements/List',
    
    Henning Leutz's avatar
    Henning Leutz committed
        'package/quiqqer/bricks/bin/Sortables',
    
    Henning Leutz's avatar
    Henning Leutz committed
        'css!package/quiqqer/bricks/bin/Site/Area.css'
    
    ], function(QUI, QUIControl, QUIButton, QUIPopup, QUIConfirm, QUIList, QUILocale, QUIAjax, Sortables)
    
    Henning Leutz's avatar
    Henning Leutz committed
        var lg = 'quiqqer/bricks';
    
    
    
        return new Class({
    
            Extends : QUIControl,
    
    Henning Leutz's avatar
    Henning Leutz committed
            Type    : 'package/quiqqer/bricks/bin/Site/Area',
    
    Henning Leutz's avatar
    Henning Leutz committed
                'openBrickDialog',
    
    Henning Leutz's avatar
    Henning Leutz committed
                'openBrickSettingDialog',
    
                'openSettingsDialog',
    
    Henning Leutz's avatar
    Henning Leutz committed
                'createNewBrick',
    
                '$onInject'
            ],
    
            options : {
                name        : '',
                description : '',
                title       : {},
    
                Site        : false,
                deactivate  : false
    
            },
    
            initialize: function (options)
            {
                this.parent( options );
    
    
    Henning Leutz's avatar
    Henning Leutz committed
                this.$availableBricks = [];
    
    Henning Leutz's avatar
    Henning Leutz committed
                this.$brickIds        = [];
    
    Henning Leutz's avatar
    Henning Leutz committed
                this.$brickData       = [];
    
    Henning Leutz's avatar
    Henning Leutz committed
                this.$AddButton      = false;
                this.$SettingsButton = false;
                this.$SortableButton = false;
                this.$MoreButton     = false;
    
    
                this.$Title       = false;
    
    Henning Leutz's avatar
    Henning Leutz committed
                this.$List        = false;
                this.$FXExtraBtns = false;
    
    Henning Leutz's avatar
    Henning Leutz committed
    
    
                this.addEvents({
                    onInject : this.$onInject
                });
            },
    
            /**
             * Return the domnode element
    
    Henning Leutz's avatar
    Henning Leutz committed
             * @return {HTMLElement}
    
    Henning Leutz's avatar
    Henning Leutz committed
                var self  = this,
                    title = this.getAttribute( 'title' );
    
    
                this.$Elm = new Element('div', {
    
    Henning Leutz's avatar
    Henning Leutz committed
                    'class' : 'quiqqer-bricks-site-category-area',
                    html    : '<div class="quiqqer-bricks-site-category-area-title">'+
    
                                  QUILocale.get( title.group, title.var ) +
    
    Henning Leutz's avatar
    Henning Leutz committed
                              '   <div class="quiqqer-bricks-site-category-area-buttons"></div>' +
    
    Henning Leutz's avatar
    Henning Leutz committed
                              '</div><ul class="quiqqer-bricks-site-category-area-list"></ul>',
    
                    'data-name' : this.getAttribute( 'name' )
                });
    
    
    Henning Leutz's avatar
    Henning Leutz committed
                // Elements
    
                var Buttons = this.$Elm.getElement(
    
    Henning Leutz's avatar
    Henning Leutz committed
                    '.quiqqer-bricks-site-category-area-buttons'
    
    Henning Leutz's avatar
    Henning Leutz committed
                    'class' : 'quiqqer-bricks-site-category-area-extraButtons'
                });
    
    
                this.$Title = this.$Elm.getElement(
                    '.quiqqer-bricks-site-category-area-title'
                );
    
    Henning Leutz's avatar
    Henning Leutz committed
    
    
                this.$FXExtraBtns = moofx( this.$ExtraBtns );
    
    Henning Leutz's avatar
    Henning Leutz committed
    
                this.$List = this.$Elm.getElement(
                    '.quiqqer-bricks-site-category-area-list'
                );
    
                // buttons
    
                this.$AddButton = new QUIButton({
    
    Henning Leutz's avatar
    Henning Leutz committed
                    text      : QUILocale.get( lg, 'site.area.button.add' ),
    
                    textimage : 'icon-plus',
                    disable   : true,
                    events    : {
    
    Henning Leutz's avatar
    Henning Leutz committed
                        onClick : this.openBrickDialog
    
    Henning Leutz's avatar
    Henning Leutz committed
    
                this.$MoreButton = new QUIButton({
                    title  : QUILocale.get( lg, 'site.area.button.area.more.openIt' ),
                    icon   : 'icon-caret-left',
                    events :
                    {
                        onClick : function(Btn)
                        {
                            if ( Btn.getAttribute( 'icon' ) == 'icon-caret-left' )
                            {
                                self.openButtons();
                                return;
                            }
    
                            self.closeButtons();
                        }
                    },
                    styles : {
                        marginLeft : 5
                    }
                }).inject( Buttons );
    
                // extra buttons
    
                this.$SettingsButton = new QUIButton({
                    title  : QUILocale.get( lg, 'site.area.button.area.settings' ),
                    icon   : 'icon-gears',
                    events : {
                        onClick : this.openSettingsDialog
                    },
                    styles : {
                        marginLeft : 10
                    }
    
    Henning Leutz's avatar
    Henning Leutz committed
    
                this.$SortableButton = new QUIButton({
                    title  : QUILocale.get( lg, 'site.area.button.area.sort' ),
                    icon   : 'icon-sort',
                    events :
                    {
                        onClick : function(Btn)
                        {
                            if ( Btn.isActive() )
                            {
                                Btn.setNormal();
                                self.unsortable();
                                return;
                            }
    
                            Btn.setActive();
                            self.sortable();
                        }
                    },
                    styles : {
                        marginLeft : 5
                    }
    
    Henning Leutz's avatar
    Henning Leutz committed
    
    
                return this.$Elm;
            },
    
            /**
             * event : on inject
             */
            $onInject : function()
            {
                var self    = this,
    
                    Site    = this.getAttribute( 'Site' ),
    
                var Loader = new Element('div', {
                    'class' : 'quiqqer-bricks-site-category-area-loader',
                    html : '<span class="icon-spinner icon-spin fa fa-spinner fa-spin"></span>',
                    styles : {
                        margin : 5
                    }
                }).inject(this.$Elm);
    
                this.$List.setStyles({
                    position : 'absolute',
                    opacity  : 0
                });
    
    
    Henning Leutz's avatar
    Henning Leutz committed
                QUIAjax.get('package_quiqqer_bricks_ajax_project_getBricks', function(bricks)
    
    Henning Leutz's avatar
    Henning Leutz committed
                    self.$availableBricks = bricks;
    
    Henning Leutz's avatar
    Henning Leutz committed
                    self.$brickIds.each(function(brickId) {
    
                        self.addBrickById(brickId);
    
                    var promises = [];
    
    
    Henning Leutz's avatar
    Henning Leutz committed
                    self.$brickData.each(function(brickData) {
    
                        promises.push(self.addBrick(brickData));
    
    Henning Leutz's avatar
    Henning Leutz committed
                    });
    
    
                    if (promises.length) {
    
                        Promise.resolve(promises).then(function() {
    
                            var size      = self.$List.getComputedSize(),
                                titleSize = self.$Title.getComputedSize();
    
                            moofx(self.$Elm).animate({
                                height : size.height + titleSize.height
                            }, {
                                duration : 250,
                                equation : 'cubic-bezier(.42,.4,.46,1.29)',
                                callback : function() {
                                    self.$List.setStyle('position', null);
    
                                    moofx(self.$List).animate({
                                        opacity : 1
                                    }, {
                                        duration : 250,
                                        equation : 'ease-out'
                                    });
                                }
                            });
    
                            Loader.destroy();
                        });
    
                        return;
                    }
    
                    Loader.destroy();
    
    
    Henning Leutz's avatar
    Henning Leutz committed
                    'package' : 'quiqqer/bricks',
    
    Henning Leutz's avatar
    Henning Leutz committed
                    project   : Project.encode(),
                    area      : this.getAttribute( 'name' )
    
             * Activate the area
    
            activate : function()
    
                this.setAttribute( 'deactivate', false );
                this.getElm().removeClass( 'quiqqer-bricks-site-category-area-deactivate' );
    
    Henning Leutz's avatar
    Henning Leutz committed
    
    
                this.$AddButton.enable();
            },
    
    Henning Leutz's avatar
    Henning Leutz committed
    
    
            /**
             * Deactivate the area
             */
            deactivate : function()
            {
                var self = this,
                    data = this.getData();
    
    
                if (data.length && !("deactivate" in data[ 0 ]))
    
    Henning Leutz's avatar
    Henning Leutz committed
                {
    
                    new QUIConfirm({
                        title : QUILocale.get( lg, 'site.area.window.deactivate.title' ),
                        text  : QUILocale.get( lg, 'site.area.window.deactivate.text' ),
                        information : QUILocale.get( lg, 'site.area.window.deactivate.information' ),
                        events :
                        {
                            onSubmit : function()
                            {
                                self.clear();
                                self.setAttribute( 'deactivate', true );
                                self.deactivate();
                            }
                        }
                    }).open();
    
                    return;
    
    Henning Leutz's avatar
    Henning Leutz committed
                }
    
    
                this.setAttribute( 'deactivate', true );
    
                this.$AddButton.disable();
                this.getElm().addClass( 'quiqqer-bricks-site-category-area-deactivate' );
    
    Henning Leutz's avatar
    Henning Leutz committed
            },
    
            /**
             * Add a brick by its brick data
    
    Henning Leutz's avatar
    Henning Leutz committed
             * @param {Object} brickData - { brickId:1, inheritance:1 }
    
             * @return Promise
    
    Henning Leutz's avatar
    Henning Leutz committed
             */
            addBrick : function(brickData)
            {
    
                return new Promise(function(reslove, reject) {
    
                    if ("deactivate" in brickData)
                    {
                        this.clear();
                        this.setAttribute( 'deactivate', true );
                        this.deactivate();
    
                        reslove();
                        return;
                    }
    
    Henning Leutz's avatar
    Henning Leutz committed
    
    
    
                    if (!this.$loaded)
                    {
                        this.$brickData.push( brickData );
                        reslove();
                        return;
                    }
    
    Henning Leutz's avatar
    Henning Leutz committed
    
    
                    var BrickNode = this.addBrickById( brickData.brickId );
    
    Henning Leutz's avatar
    Henning Leutz committed
    
    
                    if (!BrickNode) {
                        reject();
                        return;
                    }
    
    Henning Leutz's avatar
    Henning Leutz committed
    
    
                    var Select = BrickNode.getElement( 'select' );
    
                    Select.set('data-inheritance', 0);
    
                    if ("inheritance" in brickData) {
                        Select.set( 'data-inheritance', brickData.inheritance );
                    }
    
                }.bind(this));
    
    Henning Leutz's avatar
    Henning Leutz committed
             * Add a brick by its ID
    
    Henning Leutz's avatar
    Henning Leutz committed
             * @param {Number} brickId
             * @return {HTMLElement|Boolean} Brick-Node
    
    Henning Leutz's avatar
    Henning Leutz committed
            addBrickById : function(brickId)
    
                if (!this.$loaded)
    
                    this.$brickIds.push(brickId);
    
    Henning Leutz's avatar
    Henning Leutz committed
                    return false;
    
    Henning Leutz's avatar
    Henning Leutz committed
                var found = this.$availableBricks.filter(function(Item) {
                    return Item.id === brickId;
    
                if (!found.length) {
    
    Henning Leutz's avatar
    Henning Leutz committed
                    return false;
    
    Henning Leutz's avatar
    Henning Leutz committed
                var BrickNode = this.createNewBrick();
    
    
                BrickNode.getElement('select').set('value', brickId);
    
    Henning Leutz's avatar
    Henning Leutz committed
    
                return BrickNode;
    
            /**
             * Removes all bricks in the area
             */
            clear : function()
            {
                this.getElm().getElements( '.quiqqer-bricks-site-category-area-brick' ).destroy();
            },
    
    
    Henning Leutz's avatar
    Henning Leutz committed
             * Add a new brick to the area
    
    Henning Leutz's avatar
    Henning Leutz committed
            createNewBrick : function()
    
    Henning Leutz's avatar
    Henning Leutz committed
                var self = this;
    
    
    Henning Leutz's avatar
    Henning Leutz committed
                var Elm = new Element('li', {
    
    Henning Leutz's avatar
    Henning Leutz committed
                    'class' : 'quiqqer-bricks-site-category-area-brick',
    
    Henning Leutz's avatar
    Henning Leutz committed
                Elm.inject( this.$List );
    
                Select = Elm.getElement( 'select' );
    
                new QUIButton({
    
    Henning Leutz's avatar
    Henning Leutz committed
                    title  : QUILocale.get( lg, 'site.area.button.delete' ),
    
    Henning Leutz's avatar
    Henning Leutz committed
                    icon   : 'icon-remove',
    
    Henning Leutz's avatar
    Henning Leutz committed
                            self.openBrickDeleteDialog( Elm );
    
    Henning Leutz's avatar
    Henning Leutz committed
                new QUIButton({
    
    Henning Leutz's avatar
    Henning Leutz committed
                    title  : QUILocale.get( lg, 'site.area.button.settings' ),
    
    Henning Leutz's avatar
    Henning Leutz committed
                    icon   : 'icon-gear',
                    events :
                    {
                        onClick : function(Btn)
                        {
                            var Elm    = Btn.getElm(),
                                Parent = Elm.getParent( '.quiqqer-bricks-site-category-area-brick' ),
                                Select = Parent.getElement( 'select' );
    
                            self.openBrickSettingDialog( Select );
                        }
                    }
                }).inject( Elm );
    
    
                for (i = 0, len = this.$availableBricks.length; i < len; i++)
    
    Henning Leutz's avatar
    Henning Leutz committed
                        html  : this.$availableBricks[ i ].title,
                        value : this.$availableBricks[ i ].id
    
            /**
             * Return the brick list
             * @returns {Array}
             */
            getData : function()
            {
    
                if (this.getAttribute('deactivate'))
    
                {
                    return [{
                        deactivate : 1
                    }];
                }
    
                var data   = [],
                    bricks = this.$Elm.getElements( 'select' );
    
    
                for (var i = 0, len = bricks.length; i < len; i++)
    
                {
                    data.push({
                        brickId     : bricks[ i ].value,
                        inheritance : bricks[ i ].get( 'data-inheritance' ) == 1 ? 1 : 0
                    });
                }
    
                return data;
            },
    
    
    Henning Leutz's avatar
    Henning Leutz committed
            /**
             * sort methods
             */
    
            /**
             * Switch the sortable on
             */
            sortable : function()
            {
                var Elm      = this.getElm(),
                    elements = Elm.getElements(
                        '.quiqqer-bricks-site-category-area-brick'
                    );
    
                elements.each(function(Brick)
                {
                    var i, len, buttons, Button;
    
                    buttons = Brick.getElements( '.qui-button' );
    
                    for ( i = 0, len = buttons.length; i < len; i++ )
                    {
                        Button = QUI.Controls.getById( buttons[ i ].get( 'data-quiid' ) );
    
                        if ( Button ) {
                            Button.setDisable();
                        }
                    }
    
                    var Select = Brick.getElement( 'select' ),
                        Option = Select.getElement( 'option[value="'+ Select.value +'"]' );
    
                    new Element('div', {
                        'class' : 'quiqqer-bricks-site-category-area-placeholder',
                        html    : Option.get( 'html' )
                    }).inject( Brick );
                });
    
                Elm.getElements( 'select' ).set( 'disabled', true );
    
    
                new Sortables( this.$List, {
                    revert: {
                        duration: 500,
                        transition: 'elastic:out'
                    },
                    clone : function(event)
                    {
                        var Target = event.target;
    
                        if ( Target.nodeName != 'LI' ) {
                            Target = Target.getParent( 'li' );
                        }
    
                        var size = Target.getSize(),
                            pos  = Target.getPosition( Target.getParent('ul') );
    
                        return new Element('div', {
                            styles : {
                                background : 'rgba(0,0,0,0.5)',
                                height     : size.y,
                                top        : pos.y,
                                width      : size.x,
                                zIndex     : 1000
                            }
                        });
                    },
    
                    onStart : function(element)
                    {
                        var Ul = element.getParent( 'ul' );
    
                        element.addClass( 'quiqqer-bricks-site-category-area-dd-active' );
    
                        Ul.setStyles({
                            height   : Ul.getSize().y,
                            overflow : 'hidden',
                            width    : Ul.getSize().x
                        });
                    },
    
                    onComplete : function(element)
                    {
                        var Ul = element.getParent( 'ul' );
    
                        element.removeClass( 'quiqqer-bricks-site-category-area-dd-active' );
    
                        Ul.setStyles({
                            height   : null,
                            overflow : null,
                            width    : null
                        });
                    }
                });
            },
    
            /**
             * Switch the sortable off
             */
            unsortable : function()
            {
                var Elm      = this.getElm(),
                    elements = Elm.getElements(
                        '.quiqqer-bricks-site-category-area-brick'
                    );
    
                Elm.getElements( 'select' ).set( 'disabled', false );
                Elm.getElements( '.quiqqer-bricks-site-category-area-placeholder').destroy();
    
                elements.each(function(Brick)
                {
                    var i, len, buttons, Button;
    
                    buttons = Brick.getElements( '.qui-button' );
    
                    for ( i = 0, len = buttons.length; i < len; i++ )
                    {
                        Button = QUI.Controls.getById( buttons[ i ].get( 'data-quiid' ) );
    
                        if ( Button ) {
                            Button.setEnable();
                        }
                    }
                });
            },
    
            /**
             * Opens the extra settings buttons
             *
    
    Henning Leutz's avatar
    Henning Leutz committed
             */
            openButtons : function(callback)
            {
                var self = this;
    
                this.$AddButton.hide();
    
                self.$FXExtraBtns.style({
                    borderLeft : '2px solid #cccfd5',
    
    Henning Leutz's avatar
    Henning Leutz committed
                });
    
    
                var width = this.$ExtraBtns.getChildren().map(function(Elm)
                {
                    var width = Elm.getSize().x;
    
                    width = width + Elm.getStyle( 'margin-left' ).toInt();
                    width = width + Elm.getStyle( 'margin-right' ).toInt();
    
                    return width;
                }).sum();
    
                // i dont know why i need 2 px more -.-"
                width = width + 2;
    
    
    Henning Leutz's avatar
    Henning Leutz committed
                this.$FXExtraBtns.animate({
                    opacity    : 1,
    
    Henning Leutz's avatar
    Henning Leutz committed
                    marginLeft : 10
                }, {
    
    Henning Leutz's avatar
    Henning Leutz committed
                    callback : function()
                    {
                        self.$MoreButton.setAttribute( 'icon', 'icon-caret-right' );
    
                        self.$FXExtraBtns.style({
                            overflow : null
                        });
    
                        if ( typeof callback === 'function' ) {
                            callback();
                        }
                    }
                });
            },
    
            /**
             * Close the extra settings buttons
             *
             * * @param {Function} callback
             */
            closeButtons : function( callback )
            {
                var self = this;
    
                this.$FXExtraBtns.style({
                    overflow   : 'hidden',
                    borderLeft : null,
                    marginLeft : 0
                });
    
                this.$FXExtraBtns.animate({
                    opacity  : 0,
                    width    : 0
                }, {
                    callback : function()
                    {
                        self.$MoreButton.setAttribute( 'icon', 'icon-caret-left' );
                        self.$AddButton.show();
    
    
                        if ( typeof callback === 'function' ) {
                            callback();
                        }
                    }
                });
            },
    
    
    Henning Leutz's avatar
    Henning Leutz committed
            /**
             * dialogs
             */
    
    
    Henning Leutz's avatar
    Henning Leutz committed
            /**
             * Opens the brick add dialog
             */
            openBrickDialog : function()
            {
                if ( !this.$availableBricks.length ) {
                    return;
                }
    
                var self = this;
    
                new QUIPopup({
    
    Henning Leutz's avatar
    Henning Leutz committed
                    title     : QUILocale.get( lg, 'site.area.window.add' ),
    
    Henning Leutz's avatar
    Henning Leutz committed
                    icon      : 'icon-th',
                    maxWidth  : 500,
                    maxHeight : 600,
                    autoclose : false,
                    events    :
                    {
                        onOpen : function(Win)
                        {
                            var items   = [],
                                Content = Win.getContent(),
    
                                List = new QUIList({
                                    events :
                                    {
                                        onClick : function(List, data)
                                        {
                                            self.addBrickById( data.brickId );
                                            Win.close();
                                        }
                                    }
                                });
    
                            List.inject( Content );
    
                            for ( var i = 0, len = self.$availableBricks.length; i < len; i++ )
                            {
                                items.push({
                                    brickId : self.$availableBricks[ i ].id,
                                    icon    : 'icon-th',
                                    title   : self.$availableBricks[ i ].title,
                                    text    : self.$availableBricks[ i ].description
                                });
                            }
    
                            List.addItems( items );
                        }
                    }
                }).open();
    
    Henning Leutz's avatar
    Henning Leutz committed
            },
    
    
    Henning Leutz's avatar
    Henning Leutz committed
            /**
             * Opens the brick deletion dialog
             *
             * @param {HTMLElement} BrickElement - Element of the Brick
             */
            openBrickDeleteDialog : function(BrickElement)
            {
                new QUIConfirm({
    
    Henning Leutz's avatar
    Henning Leutz committed
                    title : QUILocale.get( lg, 'site.area.window.delete.title' ),
    
    Henning Leutz's avatar
    Henning Leutz committed
                    icon  : 'icon-remove',
    
    Henning Leutz's avatar
    Henning Leutz committed
                    text  : QUILocale.get( lg, 'site.area.window.delete.text' ),
                    information : QUILocale.get( lg, 'site.area.window.delete.information' ),
    
    Henning Leutz's avatar
    Henning Leutz committed
                    maxHeight   : 300,
    
                    maxWidth    : 450,
    
    Henning Leutz's avatar
    Henning Leutz committed
                    events :
                    {
                        onSubmit : function() {
                            BrickElement.destroy();
                        }
                    }
                }).open();
            },
    
    
    Henning Leutz's avatar
    Henning Leutz committed
            /**
             * Opens the brick settings dialog
             *
             * @param {HTMLElement} Select
             */
            openBrickSettingDialog : function(Select)
            {
                new QUIConfirm({
    
                    title     : QUILocale.get(lg, 'site.area.window.settings.title'),
    
    Henning Leutz's avatar
    Henning Leutz committed
                    icon      : 'icon-gear',
    
                    texticon  : false,
    
                    maxWidth  : 600,
                    maxHeight : 400,
    
    Henning Leutz's avatar
    Henning Leutz committed
                    autoclose : false,
    
                    ok_button : {
                        text      : QUILocale.get('quiqqer/system', 'save'),
                        textimage : 'icon-save fa fa-save'
                    },
                    cancel_button : {
                        text      : QUILocale.get('quiqqer/system', 'cancel'),
                        textimage : 'icon-remove fa fa-remove'
                    },
                    events :
    
    Henning Leutz's avatar
    Henning Leutz committed
                    {
                        onOpen : function(Win)
                        {
    
                            require([
                                'package/quiqqer/bricks/bin/Site/BrickEdit'
                            ], function(BrickEdit) {
    
    
                                Win.Edit = new BrickEdit({
                                    brickId : Select.value,
                                    styles : {
                                        height : Win.getContent().getSize().y
                                    }
    
                                }).inject(Win.getContent());
                            });
    
                            /*
    
    Henning Leutz's avatar
    Henning Leutz committed
                            var Content = Win.getContent();
    
                            Content.set(
                                'html',
    
                                '<form>' +
                                '    <label>' +
                                '        <input type="checkbox" name="inheritance" />' +
    
    Henning Leutz's avatar
    Henning Leutz committed
                                         QUILocale.get( lg, 'site.area.window.settings.setting.inheritance' ) +
    
    Henning Leutz's avatar
    Henning Leutz committed
                                '    </label>' +
                                '</form>'
                            );
    
    
                            var Form = Win.getContent().getElement( 'form' ),
    
    Henning Leutz's avatar
    Henning Leutz committed
                                elms = Form.elements;
    
                            elms.inheritance.checked = Select.get( 'data-inheritance' ).toInt();
    
    Henning Leutz's avatar
    Henning Leutz committed
                        },
    
                        onSubmit : function(Win)
                        {
    
                            console.log(Win.Edit);
    
    Henning Leutz's avatar
    Henning Leutz committed
    
    
    
    //                        var Form = Win.getContent().getElement( 'form' );
    //
    //                        Select.set({
    //                            'data-inheritance' : Form.elements.inheritance.checked ? 1 : 0
    //                        });
    //
    //                        Win.close();
    
    Henning Leutz's avatar
    Henning Leutz committed
                        }
                    }
                }).open();
    
            },
    
            /**
             * Opens the
             */
            openSettingsDialog : function()
            {
                var self = this;
    
                new QUIConfirm({
                    title     : QUILocale.get(lg, 'area.window.settings.title'),
                    icon      : 'icon-gear',
    
                    maxWidth  : 450,
    
                    maxHeight : 300,
                    autoclose : false,
                    events    :
                    {
                        onOpen: function (Win)
                        {
                            var Content = Win.getContent();
    
                            Content.set(
                                'html',
    
                                '<form>' +
                                '    <label>' +
                                '        <input type="checkbox" name="deactivate" />' +
                                         QUILocale.get( lg, 'area.window.settings.deactivate' ) +
                                '    </label>' +
                                '</form>'
                            );
    
                            var Form = Win.getContent().getElement( 'form' ),
                                elms = Form.elements;
    
                            elms.deactivate.checked = self.getAttribute( 'deactivate' );
                        },
    
                        onSubmit : function(Win)
                        {
                            var Form = Win.getContent().getElement( 'form' );
    
                            Win.close();
    
                            if ( Form.elements.deactivate.checked )
                            {
                                self.deactivate();
                            } else
                            {
                                self.activate();
                            }
                        }
                    }
                }).open();