Skip to content
Code-Schnipsel Gruppen Projekte
History.js 4,02 KiB
Newer Older
  • Learn to ignore specific revisions
  • Henning Leutz's avatar
    Henning Leutz committed
    /**
     * Cron History Panel
     *
    
     * @module package/quiqqer/cron/bin/History
    
    Henning Leutz's avatar
    Henning Leutz committed
     * @author www.pcsg.de (Henning Leutz)
    
    Henning Leutz's avatar
    Henning Leutz committed
     *
     * @require qui/QUI
     * @require qui/controls/desktop/Panel
     * @require qui/controls/windows/Confirm
     * @require qui/controls/buttons/Button
     * @require qui/controls/buttons/Seperator
     * @require controls/grid/Grid
     * @require Ajax
     * @require Locale
    
    Henning Leutz's avatar
    Henning Leutz committed
     */
    
    
    define('package/quiqqer/cron/bin/History', [
    
    Henning Leutz's avatar
    Henning Leutz committed
    
        'qui/QUI',
        'qui/controls/desktop/Panel',
        'qui/controls/windows/Confirm',
        'qui/controls/buttons/Button',
        'qui/controls/buttons/Seperator',
        'controls/grid/Grid',
        'Ajax',
        'Locale'
    
    
    Henning Leutz's avatar
    Henning Leutz committed
    ],function(QUI, QUIPanel, QUIConfirm, QUIButton, QUIButtonSeperator, Grid, Ajax, QUILocale)
    
    Henning Leutz's avatar
    Henning Leutz committed
    {
        "use strict";
    
    
    Henning Leutz's avatar
    Henning Leutz committed
        var lg = 'quiqqer/cron';
    
    
    
    Henning Leutz's avatar
    Henning Leutz committed
        return new Class({
    
            Extends : QUIPanel,
    
            Type    : 'package/quiqqer/cron/bin/History',
    
    Henning Leutz's avatar
    Henning Leutz committed
    
            Binds : [
                '$onCreate',
                '$onResize'
            ],
    
            options : {
                title : 'Cron-History',
    
                icon  : 'icon-long-arrow-right'
    
    Henning Leutz's avatar
    Henning Leutz committed
            },
    
            initialize : function(options)
            {
                this.parent( options );
    
                this.addEvents({
                    onCreate : this.$onCreate,
                    onResize : this.$onResize
                });
            },
    
            /**
             * Load the History list
             */
            loadData : function()
            {
    
                var self    = this,
                    options = this.$Grid.options;
    
                this.Loader.show();
    
    Henning Leutz's avatar
    Henning Leutz committed
    
                Ajax.get('package_quiqqer_cron_ajax_history_get', function(result)
                {
    
                    self.$Grid.setData( result );
                    self.Loader.hide();
    
    Henning Leutz's avatar
    Henning Leutz committed
                }, {
    
                    'package' : 'quiqqer/cron',
                    params    : JSON.encode({
                        perPage : options.perPage,
                        page    : options.page
                    })
    
    Henning Leutz's avatar
    Henning Leutz committed
                });
            },
    
            /**
             * event : on Create
             */
            $onCreate : function()
            {
    
                var self    = this,
                    Content = this.getContent(),
    
    Henning Leutz's avatar
    Henning Leutz committed
    
                    Container = new Element('div', {
                        'class' : 'box',
                        styles : {
    
                            width  : '100%',
    
    Henning Leutz's avatar
    Henning Leutz committed
                            height : '100%'
                        }
                    }).inject( Content );
    
    
                this.$Grid = new Grid(Container, {
                    columnModel : [{
    
    Henning Leutz's avatar
    Henning Leutz committed
                        header    : QUILocale.get('quiqqer/system', 'createdate'),
    
    Henning Leutz's avatar
    Henning Leutz committed
                        dataIndex : 'lastexec',
                        dataType  : 'date',
                        width     : 150
                    }, {
    
    Henning Leutz's avatar
    Henning Leutz committed
                        header    : QUILocale.get( lg, 'cron.id' ),
    
    Henning Leutz's avatar
    Henning Leutz committed
                        dataIndex : 'cronid',
                        dataType  : 'string',
    
    Henning Leutz's avatar
    Henning Leutz committed
                        header    : QUILocale.get( lg, 'cron.title'),
    
                        dataIndex : 'cronTitle',
                        dataType  : 'string',
                        width     : 200
    
    Henning Leutz's avatar
    Henning Leutz committed
                    }, {
    
    Henning Leutz's avatar
    Henning Leutz committed
                        header    : QUILocale.get('quiqqer/system', 'user_id'),
    
    Henning Leutz's avatar
    Henning Leutz committed
                        dataIndex : 'uid',
                        dataType  : 'string',
    
    Henning Leutz's avatar
    Henning Leutz committed
                        header    : QUILocale.get('quiqqer/system', 'username'),
    
                        dataIndex : 'username',
                        dataType  : 'string',
    
    Henning Leutz's avatar
    Henning Leutz committed
                        width     : 150
                    }],
                    pagination : true
                });
    
    
                this.$Grid.addEvents({
                    onRefresh : function() {
                        self.loadData();
                    }
                });
    
                this.$Grid.refresh();
    
    Henning Leutz's avatar
    Henning Leutz committed
            },
    
            /**
             * event : on resize
             */
            $onResize : function()
            {
                if ( !this.$Grid ) {
                    return;
                }
    
                var Content = this.getContent(),
                    size    = Content.getSize();
    
                this.$Grid.setHeight( size.y - 40 );
                this.$Grid.setWidth( size.x - 40 );
            }
    
        });