replace the crap

This commit is contained in:
reinerj 2004-08-09 09:33:52 +00:00
parent 73624e76a1
commit 1480271b4f
3 changed files with 569 additions and 2 deletions

View File

@ -1,7 +1,7 @@
<?php
/**************************************************************************\
* phpGroupWare - Administration *
* http://www.phpgroupware.org *
* eGroupWare - Administration *
* http://www.egroupware.org *
* This file written by Joseph Engo <jengo@phpgroupware.org> *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *

View File

@ -0,0 +1,309 @@
<?php
/***************************************************************************\
* eGroupWare - uilog *
* http://www.egroupware.org *
* Written by : jerry westrick [jerry@westrick.com] *
* ------------------------------------------------- *
* 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 uilog
{
var $grants;
var $cat_id;
var $start;
var $search;
var $filter;
var $public_functions = array(
'list_log' => True
);
function uilog()
{
if ($GLOBALS['phpgw']->acl->check('error_log_access',1,'admin'))
{
$GLOBALS['phpgw']->redirect_link('/index.php');
}
$_cols = $GLOBALS['HTTP_POST_VARS']['_cols'];
$nocols = $GLOBALS['HTTP_POST_VARS']['nocols'];
$_delcol = $GLOBALS['HTTP_POST_VARS']['_delcol'];
$layout = $GLOBALS['HTTP_POST_VARS']['layout'];
$editable = $GLOBALS['HTTP_GET_VARS']['editable'];
$modifytable = $GLOBALS['HTTP_GET_VARS']['modifytable'] ? $GLOBALS['HTTP_GET_VARS']['modifytable'] : $GLOBALS['HTTP_POST_VARS']['modifytable'];
$this->bolog = CreateObject('admin.bolog',True);
$this->html = createobject('admin.html');
$this->t = CreateObject('phpgwapi.Template',$GLOBALS['phpgw']->common->get_tpl_dir('admin'));
$this->lastid = '';
$this->editmode = False;
// Handle the Edit Table Button
if (isset($editable))
{
$this->editmode = $editable;
}
// Handle return from Modify Table form...
if ($modifytable)
{
// the delete column must not be empty
if (!isset($_delcol))
{
$_delcol = array();
}
// Build New fields_inc array...
if (isset($_cols))
{
$c = array();
for ($i=0;$i<count($_cols);$i++)
{
if (!in_array($i, $_delcol))
{
$c[] = $_cols[$i];
}
}
$this->fields_inc = $c;
}
// Reset Mode to display...
$this->editmode = False;
$this->layout = $layout;
// Save the fields_inc values in Session and User Preferences...
$data = array('fields_inc'=>$this->fields_inc,'layout'=>$layout);
$GLOBALS['phpgw']->session->appsession('session_data','log',$data);
$GLOBALS['phpgw']->preferences->read_repository();
$GLOBALS['phpgw']->preferences->delete('log','fields_inc');
$GLOBALS['phpgw']->preferences->add('log','fields_inc',$this->fields_inc);
$GLOBALS['phpgw']->preferences->delete('log','layout');
$GLOBALS['phpgw']->preferences->add('log','layout',$this->layout);
$GLOBALS['phpgw']->preferences->save_repository();
}
// Make sure that $this->fields_inc is filled
if ( !isset($this->field_inc))
{
// Need to fill from Session Data...
$data = $GLOBALS['phpgw']->session->appsession('session_data','log');
if (isset($data) && isset($data['fields_inc']))
{
$this->fields_inc = $data['fields_inc'];
$this->layout = $data['layout'];
}
else
{
$GLOBALS['phpgw']->preferences->read_repository();
// Get From User Profile...
if (@$GLOBALS['phpgw_info']['user']['preferences']['log']['fields_inc'])
{
$fields_inc = $GLOBALS['phpgw_info']['user']['preferences']['log']['fields_inc'];
$this->fields_inc = $fields_inc;
$layout = $GLOBALS['phpgw_info']['user']['preferences']['log']['layout'];
$this->layout = $layout;
$GLOBALS['phpgw']->session->appsession('session_data','log',array('fields_inc'=>$fields_inc,'layout'=>$layout));
}
else
{
// Use defaults...
$this->fields_inc = array(
'log_severity',
'log_id',
'log_date_e',
'log_app',
'log_full_name',
'log_msg_seq_no',
'log_msg_date_e',
'log_msg_severity',
'log_msg_code',
'log_msg_text',
'log_msg_file',
'log_msg_line'
);
$this->layout[]= array(0,1,2,3,4,5,6,7,8,9);
$this->layout[]= array(0,1,2,3,4,5,6,7,10,11);
// Store defaults in session data...
$GLOBALS['phpgw']->session->appsession(
'session_data',
'log',
array(
'fields_inc'=>$this->fields_inc,
'layout'=>$this->layout
)
);
}
}
} // Values already filled...
reset($this->fields_inc);
while(list($cno,$cname)=each($this->fields_inc))
{
$this->column[$cname]=$cno;
}
}
function list_log()
{
if (False) // add some errors to the log...
{
// Test 1: single Error line immedeately to errorlog
// (could be type Debug, Info, Warning, or Error)
$GLOBALS['phpgw']->log->write(array('text'=>'I-TestWrite, write: %1','p1'=>'This message should appear in log','file'=>__FILE__,'line'=>__LINE__));
// Test 2: A message should appear in log even if clearstack is called
$GLOBALS['phpgw']->log->message(array('text'=>'I-TestMsg, msg: %1','p1'=>'This message should appear in log','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->error(array('text'=>'I-TestInfo, info: %1','p1'=>'This Informational should not be in log','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->clearstack();
$GLOBALS['phpgw']->log->commit(); // commit error stack to log...
// Test 3: one debug message
$GLOBALS['phpgw']->log->error(array('text'=>'D-Debug, dbg: %1','p1'=>'This debug statment should be in log','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->commit(); // commit error stack to log...
// Test 3: debug and one informational
$GLOBALS['phpgw']->log->error(array('text'=>'D-Debug, dbg: %1','p1'=>'This debug statment should be in log','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->error(array('text'=>'I-TestInfo, info: %1','p1'=>'This Informational should be in log','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->commit(); // commit error stack to log...
// Test 4: an informational and a Warning
$GLOBALS['phpgw']->log->error(array('text'=>'D-Debug, dbg: %1','p1'=>'This debug statment should be in log','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->error(array('text'=>'I-TestInfo, info: %1','p1'=>'This Informational should be in log','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->error(array('text'=>'W-TestWarn, warn: %1','p1'=>'This is a test Warning','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->commit(); // commit error stack to log...
// Test 5: and an error
$GLOBALS['phpgw']->log->error(array('text'=>'D-Debug, dbg: %1','p1'=>'This debug statment should be in log','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->error(array('text'=>'I-TestInfo, info: %1','p1'=>'This Informational should be in log','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->error(array('text'=>'W-TestWarn, warn: %1','p1'=>'This is a test Warning','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->error(array('text'=>'E-TestError, err: %1','p1'=>'This is a test Error','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->commit(); // commit error stack to log...
// Test 6: and finally a fatal...
$GLOBALS['phpgw']->log->error(array('text'=>'D-Debug, dbg: %1','p1'=>'This debug statment should be in log','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->error(array('text'=>'I-TestInfo, info: %1','p1'=>'This Informational should be in log','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->error(array('text'=>'W-TestWarn, warn: %1','p1'=>'This is a test Warning','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->error(array('text'=>'E-TestError, err: %1','p1'=>'This is a test Error','file'=>__FILE__,'line'=>__LINE__));
$GLOBALS['phpgw']->log->error(array('text'=>'F-Abend, abort: %1','p1'=>'Force abnormal termination','file'=>__FILE__,'line'=>__LINE__));
}
$this->t->set_file(array('log_list_t' => 'log.tpl'));
// -------------------------- Layout Description -------------------------------
$phycols = array('2%', '2%', '15%', '10%', '15%', '2%', '20%', '2%', '7%', '25%');
// -------------------------- end Layout Description ---------------------------
// Get list of Possible Columns
$header = $this->bolog->get_error_cols_e();
// Describe table layout...
$header['#phycols'] = $phycols;
$header['#layout'] = $this->layout;
// Set User Configured List of columns to show
$header['_cols']= $this->fields_inc;
// Set Table formating parameters
$header['#table_parms']=array('width'=>"98%", 'bgcolor'=>"#000000", 'border'=>"0");
// Set Header formating parameters
$header['#head_parms']=array('bgcolor'=>"#D3DCFF");
// Column Log_ID
$header['log_id']['#parms_hdr'] = array('align'=>"center");
$header['log_id']['#title'] = 'Id';
$header['log_id']['align'] = 'center';
// Column Log_Severity
$header['log_severity']['#parms_hdr'] = array('align'=>"center");
$header['log_severity']['#title'] = 'S';
$header['log_severity']['align'] = 'center';
// Column Trans Date
$header['log_date_e']['#title'] = 'Tans. Date';
// Column Application
$header['log_app']['#title'] = 'App.';
// Column FullName
$header['log_full_name']['#title'] = 'User';
$header['log_full_name']['align'] = 'center';
// Column log_msg_seq_no
$header['log_msg_seq_no']['#parms_hdr'] = array('align'=>"center");
$header['log_msg_seq_no']['#title'] = 'Sno';
$header['log_msg_seq_no']['align'] = 'center';
// Column log_msg_seq_no
$header['log_msg_date_e']['#title'] = 'TimeStamp';
$header['log_msg_severity']['#title'] = 'S';
$header['log_msg_severity']['align'] = 'center';
$header['log_msg_code']['#title'] = 'Code';
$header['log_msg_text']['#title'] = 'Error Msg';
$header['log_msg_file']['#title'] = 'File';
$header['log_msg_line']['#title'] = 'Line';
// Set up Grouping, Suppression...
$header['_groupby']=array('log_id'=>1);
$header['_supres']=array('log_id'=>1,'log_severity'=>1,'log_date_e'=>1,'log_app'=>1,'log_full_name'=>1);
// Hack Get All Rows
$rows = $this->bolog->get_error_e(array('orderby'=>array('log_id','log_msg_log_id')));
$norows = count($rows);
$header['_edittable']=$this->editmode;
$table = $this->html->hash_table($rows,$header,$this, 'format_row');
$this->t->set_var('event_list',$table);
$GLOBALS['phpgw_info']['flags']['app_header'] = lang('Admin').' - '.($this->editmode?lang('Edit Table format') : lang('View error log'));
if(!@is_object($GLOBALS['phpgw']->js))
{
$GLOBALS['phpgw']->js = CreateObject('phpgwapi.javascript');
}
$GLOBALS['phpgw']->js->validate_file('jscode','openwindow','admin');
$GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar();
$this->t->pfp('out','log_list_t');
// $this->set_app_langs();
}
function format_row($rno, $row)
{
switch($row['log_severity']['value'])
{
case 'D': $row['log_severity']['bgcolor'] = '#D3DCFF'; break;
case 'I': $row['log_severity']['bgcolor'] = '#C0FFC0'; break;
case 'W': $row['log_severity']['bgcolor'] = '#FFFFC0'; break;
case 'E': $row['log_severity']['bgcolor'] = '#FFC0C0'; break;
case 'F': $row['log_severity']['bgcolor'] = '#FF0909'; break;
}
switch($row['log_msg_severity']['value'])
{
case 'D': $color = '#D3DCFF'; break;
case 'I': $color = '#C0FFC0'; break;
case 'W': $color = '#FFFFC0'; break;
case 'E': $color = '#FFC0C0'; break;
case 'F': $color = '#FF0909'; break;
}
reset($this->fields_inc);
while(list($cno,$fld) = each($this->fields_inc))
{
if (substr($fld,0,7) == 'log_msg')
{
$row[$fld]['bgcolor'] = $color;
}
else
{
// $row[$cno]['bgcolor'] = $lcolor;
}
}
return $row;
}
}
?>

View File

@ -0,0 +1,258 @@
<!-- BEGIN header -->
<form method="POST" action="{action_url}">
<table align="center" width="85%" callspacing="0" style="{ border: 1px solid #000000; }">
<tr class="th">
<td colspan="2">&nbsp;<b>{title}</b></td>
</tr>
<!-- END header -->
<!-- BEGIN body -->
<tr class="row_on">
<td>{lang_Would_you_like_eGroupWare_to_check_for_a_new_version<br>when_admins_login_?}:</td>
<td>
<select name="newsettings[checkfornewversion]">
<option value="">{lang_No}</option>
<option value="True"{selected_checkfornewversion_True}>{lang_Yes}</option>
</select>
</td>
</tr>
<tr class="row_off">
<td>{lang_Timeout_for_sessions_in_seconds_(default_14400_=_4_hours)}:</td>
<td><input size="8" name="newsettings[sessions_timeout]" value="{value_sessions_timeout}"></td>
</tr>
<tr class="row_on">
<td>{lang_Timeout_for_application_session_data_in_seconds_(default_86400_=_1_day)}:</td>
<td><input size="8" name="newsettings[sessions_app_timeout]" value="{value_sessions_app_timeout}"></td>
</tr>
<tr class="row_off">
<td>{lang_Would_you_like_to_show_each_application's_upgrade_status_?}:</td><td>
<select name="newsettings[checkappversions]">
<option value="">{lang_No}</option>
<option value="Admin"{selected_checkappversions_Admin}>{lang_Admins}</option>
<option value="All"{selected_checkappversions_All}>{lang_All_Users}</option>
</select>
</td>
</tr>
<!--
<tr class="row_on">
<td>{lang_Would_you_like_eGroupWare_to_cache_the_phpgw_info_array_?}:</td>
<td>
<select name="newsettings[cache_phpgw_info]">
<option value="">{lang_No}</option>
<option value="True"{selected_cache_phpgw_info_True}>{lang_Yes}</option>
</select>
</td>
</tr>
<tr class="row_off">
<td>{lang_Maximum_entries_in_click_path_history}:</td>
<td><input size="8" name="newsettings[max_history]" value="{value_max_history}"></td>
</tr>
-->
<tr class="row_on">
<td>{lang_Would_you_like_to_automaticaly_load_new_langfiles_(at_login-time)_?}:</td>
<td>
<select name="newsettings[disable_autoload_langfiles]">
<option value="">{lang_Yes}</option>
<option value="True"{selected_disable_autoload_langfiles_True}>{lang_No}</option>
</select>
</td>
</tr>
<tr class="row_off">
<td>{lang_Should_the_login_page_include_a_language_selectbox_(useful_for_demo-sites)_?}:</td>
<td>
<select name="newsettings[login_show_language_selection]">
<option value="">{lang_No}</option>
<option value="True"{selected_login_show_language_selection_True}>{lang_Yes}</option>
</select>
</td>
</tr>
<tr class="th">
<td colspan="2">&nbsp;<b>{lang_appearance}</b></td>
</tr>
<tr class="row_on">
<td>{lang_Enter_the_title_for_your_site}:</td>
<td><input name="newsettings[site_title]" value="{value_site_title}"></td>
</tr>
<!-- This is not used / working at the moment, RalfBecker 21.03.2004
<tr class="row_off">
<td>{lang_Enter_the_background_color_for_the_site_title}:</td>
<td>#<input name="newsettings[login_bg_color_title]" value="{value_login_bg_color_title}"></td>
</tr>
<tr class="row_on">
<td>{lang_Enter_the_background_color_for_the_login_page}:</td>
<td>#<input name="newsettings[login_bg_color]" value="{value_login_bg_color}"></td>
</tr>
-->
<tr class="row_off">
<td>{lang_Enter_the_URL_or_filename_(in_phpgwapi/templates/default/images)_of_your_logo}:</td>
<td><input name="newsettings[login_logo_file]" value="{value_login_logo_file}"></td>
</tr>
<tr class="row_on">
<td>{lang_Enter_the_url_where_your_logo_should_link_to}:</td>
<td><input name="newsettings[login_logo_url]" value="{value_login_logo_url}"></td>
</tr>
<tr class="row_off">
<td>{lang_Enter_the_title_of_your_logo}:</td>
<td><input name="newsettings[login_logo_title]" value="{value_login_logo_title}"></td>
</tr>
<tr class="row_on">
<td>{lang_Show_'powered_by'_logo_on}:</td>
<td>
<select name="newsettings[showpoweredbyon]">
<option value="bottom" {selected_showpoweredbyon_bottom}>{lang_bottom}</option>
<option value="top" {selected_showpoweredbyon_top}>{lang_top}</option>
</select>
</td>
</tr>
<tr class="th">
<td colspan="2">&nbsp;<b>{lang_security}</b></td>
</tr>
<tr class="row_on">
<td>{lang_Use_cookies_to_pass_sessionid}:</td>
<td>
<select name="newsettings[usecookies]">
<option value="">{lang_No}</option>
<option value="True"{selected_usecookies_True}>{lang_Yes}</option>
</select>
</td>
</tr>
<tr class="row_off">
<td>{lang_check_ip_address_of_all_sessions}:</td>
<td>
<select name="newsettings[sessions_checkip]">
<option value="">{lang_No}</option>
<option value="True"{selected_sessions_checkip_True}>{lang_Yes}</option>
</select>
</td>
</tr>
<tr class="row_on">
<td>{lang_Deny_all_users_access_to_grant_other_users_access_to_their_entries_?}:</td>
<td>
<select name="newsettings[deny_user_grants_access]">
<option value="">{lang_No}</option>
<option value="True"{selected_deny_user_grants_access_True}>{lang_Yes}</option>
</select>
</td>
</tr>
<!--
<tr class="row_off">
<td>{lang_Default_file_system_space_per_user}/{lang_group_?}:</td>
<td>
<input type="text" name="newsettings[vfs_default_account_size_number]" size="7" value="{value_vfs_default_account_size_number}">&nbsp;&nbsp;
<select name="newsettings[vfs_default_account_size_type]">
<option value="gb"{selected_vfs_default_account_size_type_gb}>GB</option>
<option value="mb"{selected_vfs_default_account_size_type_mb}>MB</option>
<option value="kb"{selected_vfs_default_account_size_type_kb}>KB</option>
<option value="b"{selected_vfs_default_account_size_type_b}>B</option>
</select>
</td>
</tr>
-->
<tr class="row_off">
<td>{lang_How_many_days_should_entries_stay_in_the_access_log,_before_they_get_deleted_(default_90)_?}:</td>
<td>
<input name="newsettings[max_access_log_age]" value="{value_max_access_log_age}" size="5">
</td>
</tr>
<tr class="row_on">
<td>{lang_After_how_many_unsuccessful_attempts_to_login,_an_account_should_be_blocked_(default_3)_?}:</td>
<td>
<input name="newsettings[num_unsuccessful_id]" value="{value_num_unsuccessful_id}" size="5">
</td>
</tr>
<tr class="row_off">
<td>{lang_After_how_many_unsuccessful_attempts_to_login,_an_IP_should_be_blocked_(default_3)_?}:</td>
<td>
<input name="newsettings[num_unsuccessful_ip]" value="{value_num_unsuccessful_ip}" size="5">
</td>
</tr>
<tr class="row_on">
<td>{lang_How_many_minutes_should_an_account_or_IP_be_blocked_(default_30)_?}:</td>
<td>
<input name="newsettings[block_time]" value="{value_block_time}" size="5">
</td>
</tr>
<tr class="row_off">
<td>{lang_Admin_email_addresses_(comma-separated)_to_be_notified_about_the_blocking_(empty_for_no_notify)}:</td>
<td>
<input name="newsettings[admin_mails]" value="{value_admin_mails}" size="40">
</td>
</tr>
<tr class="row_on">
<td>{lang_Disable_"auto_completion"_of_the_login_form_}:</td>
<td>
<select name="newsettings[autocomplete_login]">
<option value="">{lang_No}</option>
<option value="True"{selected_autocomplete_login_True}>{lang_Yes}</option>
</select>
</td>
</tr>
<tr class="th">
<td colspan="2">&nbsp;<b>{lang_Mail_settings}</b></td>
</tr>
<tr class="row_on">
<td>{lang_Enter_your_default_mail_domain_(_From:_user@domain_)}:</td>
<td><input name="newsettings[mail_suffix]" value="{value_mail_suffix}"></td>
</tr>
<tr class="row_off">
<td>{lang_Enter_your_SMTP_server_hostname_or_IP_address}:</td>
<td><input name="newsettings[smtp_server]" value="{value_smtp_server}"></td>
</tr>
<tr class="row_on">
<td>{lang_Enter_your_SMTP_server_port}:</td>
<td><input name="newsettings[smtp_port]" value="{value_smtp_port}"></td>
</tr>
<tr class="row_off">
<td>{lang_User_for_SMTP-authentication_(leave_it_empty_if_no_auth_required)}:</td>
<td><input name="newsettings[smtp_auth_user]" value="{value_smtp_auth_user}"></td>
</tr>
<tr class="row_on">
<td>{lang_Password_for_SMTP-authentication}:</td>
<td><input name="newsettings[smtp_auth_passwd]" value="{value_smtp_auth_passwd}"></td>
</tr>
<!-- END body -->
<!-- BEGIN footer -->
<tr class="th">
<td colspan="2">
&nbsp;
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="submit" value="{lang_submit}">
<input type="submit" name="cancel" value="{lang_cancel}">
<br>
</td>
</tr>
</table>
</form>
<!-- END footer -->