phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] admin/inc class.uiloglevels.inc.php, NONE, 1.1.2.1


From: Chris Weiss <address@hidden>
Subject: [Phpgroupware-cvs] admin/inc class.uiloglevels.inc.php, NONE, 1.1.2.1
Date: Mon, 20 Oct 2003 13:04:07 +0000

Update of /cvsroot/phpgroupware/admin/inc
In directory subversions:/tmp/cvs-serv27837/inc

Added Files:
      Tag: Version-0_9_16-branch
        class.uiloglevels.inc.php 
Log Message:
adding files for logging classes, patch #2100


--- NEW FILE: class.uiloglevels.inc.php ---
<?php
        
/**************************************************************************\
        * phpGroupWare - Administration                                         
   *
        * http://www.phpgroupware.org                                           
   *
        * --------------------------------------------                          
   *
        *  This program is free software; you can redistribute it and/or modify 
it *
        *  under the terms of the GNU General Public License as published by 
the   *
        *  Free Software Foundation; either version 2 of the License, or (at 
your  *
        *  option) any later version.                                           
   *
        
\**************************************************************************/

        /* $Id: class.uiloglevels.inc.php,v 1.1.2.1 2003/10/20 13:04:03 cw Exp 
$ */

        class uiloglevels
        {
                var $template;
                var $select_template;
                var $public_functions = array(
                        'edit_log_levels' => True
                );

                function uiloglevels()
                {
                        
                        if 
($GLOBALS['phpgw']->acl->check('error_log_access',1,'admin'))
                        {
                                $GLOBALS['phpgw']->redirect_link('/index.php');
                        }

                        $this->template   = $GLOBALS['phpgw']->template;
                        $this->template->set_file(
                                Array(
                                        'loglevels' => 'loglevels.tpl',
                                        'log_level_select' => 
'log_level_select.tpl'
                                )
                        );
                        // foo removes the module template.  I don't understand 
Templates enough to
                        // know why I needed it.  Trial and error.
                        $this->template->set_block('loglevels','module', 
'foo'); 
                        $this->template->set_block('loglevels','module_add', 
'foo'); 
                }

                function edit_log_levels()
                {
                        if 
($GLOBALS['phpgw']->acl->check('error_log_access',1,'admin'))
                        {
                                $GLOBALS['phpgw']->redirect_link('/index.php');
                        }

                        // If log_levels have ever been set before, go ahead 
and set them.
                        // There's probably a more correct place to do this.
                        
                        if ( ! 
isset($GLOBALS['phpgw_info']['server']['log_levels'] ) ) 
                        {
                                $GLOBALS['phpgw_info']['server']['log_levels'] 
= array( 'global_level' => 'E', 'module' => array(), 'user' => array());
                        }

                        // If they've updated something, save the change.
                        $level_type = get_var('level_type',array('POST','GET'));
                    if ( $level_type )
                    {
                        $level_key = get_var('level_key',array('POST','GET'));
                        $new_level = get_var( $level_type . '_' . $level_key . 
'_select',array('POST','GET'));
                        $this->update_level($level_type, $level_key, 
$new_level);
                    }
                        else
                        {
                                $level_key = 
get_var('module_add_name_select',array('POST','GET'));
                                if ( $level_key )
                                {
                                        $this->update_level('module', 
$level_key, get_var( 'module_add_level_select',array('POST','GET')));
                                }
                                $level_key = 
get_var('user_add_name_select',array('POST','GET'));
                                if ( $level_key )
                                {
                                        $this->update_level('user', $level_key, 
get_var( 'user_add_level_select',array('POST','GET')));
                                }
                        }
                    
                        $GLOBALS['phpgw_info']['flags']['app_header'] = 
lang('Admin').' - '.lang('Edit Log Levels');
                        
                        $GLOBALS['phpgw']->common->phpgw_header();
                        echo parse_navbar();

                        $this->add_modules_list(); 
                        $this->add_users_list(); 
                                
                        $var['lang_set_levels'] = "Set Loggging Levels"; 
                        $var['lang_global_level'] = "Global logging level"; 
                        $var['lang_module_level'] = "Module Logging Levels"; 
                        $var['lang_user_level'] = "User Logging Levels"; 
                        $var['global_option'] = 
$this->create_select_box('global', '', 
$GLOBALS['phpgw_info']['server']['log_levels']['global_level']);
                        $var['th_bg'] = 
$GLOBALS['phpgw_info']['theme']['th_bg']; 
                        $var['tr_color'] = 
$GLOBALS['phpgw_info']['theme']['row_on']; 
                        $this->template->set_var($var);

                        $this->template->pfp('out','loglevels');
                }
                
                
                function add_modules_list() 
                {
                        $apps_with_logging = 
$GLOBALS['phpgw_info']['server']['log_levels']['module'];
                        $sorted_apps = array();
                        $app_add_list = array();
                        foreach ($GLOBALS['phpgw_info']['apps'] as $app => 
$app_data)
                        {
                                $sorted_apps[$app] = $app_data['title']; 
                        }       
                        
                        $add_options = '';
                        asort($sorted_apps);
                        $tr_color = $GLOBALS['phpgw_info']['theme']['row_on'];
                    foreach ( $sorted_apps as $app => $title) 
                    {
                        if ( 
isset($GLOBALS['phpgw_info']['server']['log_levels']['module'][$app]) ) 
                        {
                                        $var = array(
                                                'tr_color'              => 
$tr_color,
                                                'type'                  => 
'module',
                                                'module_name'   => $title,
                                                'module_option' => 
$this->create_select_box('module', $app, 
$GLOBALS['phpgw_info']['server']['log_levels']['module'][$app]),
                                                'remove_url'    => 
$GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiloglevels.edit_log_levels'
 . '&level_type=module&level_key='.$app),
                                                'lang_remove'   => 
lang('remove')
                                        );
                                        $this->template->set_var($var);
                                        
$this->template->fp('module_list','module',True);
                                        if ($tr_color == 
$GLOBALS['phpgw_info']['theme']['row_on'])
                                        {
                                                $tr_color = 
$GLOBALS['phpgw_info']['theme']['row_off'];
                                        }
                                        else
                                        {
                                                $tr_color = 
$GLOBALS['phpgw_info']['theme']['row_on'];
                                        }
                        }
                        else 
                        {
                                        $add_options = $add_options . '<option 
value="' . $app . '">' . $title . '</option>';
                        }
                    }   
                                
                        if ( $add_options ) 
                        {
                                $var = array(
                                        'tr_color'              => $tr_color,
                                        'type'                  => 'module',
                                        'module_add_link' => 
$GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiloglevels.edit_log_levels'),
                                        'lang_add' => lang('add'),
                                        'module_add_options'   => $add_options,
                                        'lang_fatal'    => lang('fatal'),
                                        'lang_error'    => lang('error'),
                                        'lang_warn'     => lang('warn'),
                                        'lang_info'     => lang('info'),
                                        'lang_debug'    => lang('debug'),
                                        'lang_add'      => lang('add')
                                );
                                $this->template->set_var($var);
                                
$this->template->fp('module_add_row','module_add',True);
                        }
                        
                }
                
                function add_users_list() 
                {
                        $tr_color = $GLOBALS['phpgw_info']['theme']['row_on'];
                        $accounts = 
$GLOBALS['phpgw']->accounts->get_list('accounts');
                        foreach($accounts as $account)
                        {
                                $account_lid = $account['account_lid'];
                        if ( 
isset($GLOBALS['phpgw_info']['server']['log_levels']['user'][$account_lid]) ) 
                        {
                                        $var = array(
                                                'tr_color'              => 
$tr_color,
                                                'module_name'   => $account_lid,
                                                'module_option' => 
$this->create_select_box('user', $account_lid, 
$GLOBALS['phpgw_info']['server']['log_levels']['user'][$account_lid]),
                                                'remove_url' => 
$GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiloglevels.edit_log_levels'
 . '&level_type=user&level_key='.$account_lid),
                                                'lang_remove'   => 
lang('remove')
                                        );
                                        $this->template->set_var($var);
                                        
$this->template->fp('user_list','module',True);
                                        if ($tr_color == 
$GLOBALS['phpgw_info']['theme']['row_on'])
                                        {
                                                $tr_color = 
$GLOBALS['phpgw_info']['theme']['row_off'];
                                        }
                                        else
                                        {
                                                $tr_color = 
$GLOBALS['phpgw_info']['theme']['row_on'];
                                        }
                        }
                        else 
                        {
                                        $add_options = $add_options . '<option 
value="' . $account_lid . '">' . $account_lid . '</option>';
                        }
                    }   
                                
                        if ( $add_options ) 
                        {
                                $var = array(
                                        'type'                  => 'user',
                                        'tr_color'              => $tr_color,
                                        'module_add_link' => 
$GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiloglevels.edit_log_levels'),
                                        'lang_add' => lang('add'),
                                        'module_add_options'   => $add_options,
                                        'lang_fatal'    => lang('fatal'),
                                        'lang_error'    => lang('error'),
                                        'lang_warn'     => lang('warn'),
                                        'lang_info'     => lang('info'),
                                        'lang_debug'    => lang('debug'),
                                        'lang_add'      => lang('add')
                                );
                                $this->template->set_var($var);
                                
$this->template->fp('user_add_row','module_add',True);
                        }
                }               
                
                function create_select_box($level_type, $level_key, 
$current_level)
                {
                        $select_name = $level_type . '_' . $level_key . 
'_select';

                        $var = Array(
                                                'level_type'    => $level_type,
                                                'level_key'     => $level_key,
                                                'select_link'   => 
$GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiloglevels.edit_log_levels'),
                                                'select_name'   => $select_name,
                                                'lang_fatal'    => 
lang('fatal'),
                                                'lang_error'    => 
lang('error'),
                                                'lang_warn'     => lang('warn'),
                                                'lang_info'     => lang('info'),
                                                'lang_debug'    => 
lang('debug'),
                                                'F_selected'      => '',
                                                'E_selected'      => '',
                                                'W_selected'      => '',
                                                'I_selected'      => '',
                                                'D_selected'      => ''
                                        );
                        
                        if ( $current_level ) 
                        {
                                $var[$current_level . '_selected'] = 
'selected';        
                        }
                        else 
                        {
                                $var['I_selected'] = 'selected';        
                        }
                                
                        $this->template->set_var($var);
                        return $this->template->fp('select', 
'log_level_select', True); 
                }
                
                function update_level($level_type, $level_key, $new_level)
                {
                        if ( $new_level )
                        {
                                if ( $level_type == "global" )
                                {
                                        log_info('Setting %1 log level to %2', 
$level_type, $new_level);
                                        
$GLOBALS['phpgw_info']['server']['log_levels']['global_level'] = $new_level;
                                }
                                else
                                {
                                        log_info('Setting log level for %1 %2 
to %3', $level_type, $level_key, $new_level);
                                        
$GLOBALS['phpgw_info']['server']['log_levels'][$level_type][$level_key] = 
$new_level;
                                }
                        }
                        else 
                        {
                                log_info('Removing log level for %1 %2', 
$level_type, $level_key);
                                
unset($GLOBALS['phpgw_info']['server']['log_levels'][$level_type][$level_key]);
                        }
                        
                        // save it...  It would be nice if phpgwapi.config had 
an method for just saving one setting.

                        $c = CreateObject('phpgwapi.config','phpgwapi');
                        $c->read_repository();
                        $c->value('log_levels', 
$GLOBALS['phpgw_info']['server']['log_levels']);
                        $c->save_repository();
                }
                
        }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]