0byt3m1n1
Path:
/
data
/
applications
/
aps.bak
/
osticket
/
1.6.r0-1
/
standard
/
htdocs
/
include
/
staff
/
[
Home
]
File: preference.inc.php
<?php if(!defined('OSTADMININC') || !$thisuser->isadmin()) die('Access Denied'); //Get the config info. $config=($errors && $_POST)?Format::input($_POST):Format::htmlchars($cfg->getConfig()); //Basic checks for warnings... $warn=array(); if($config['allow_attachments'] && !$config['upload_dir']) { $errors['allow_attachments']='You need to setup upload dir.'; }else{ if(!$config['allow_attachments'] && $config['allow_email_attachments']) $warn['allow_email_attachments']='*Attachments Disabled.'; if(!$config['allow_attachments'] && ($config['allow_online_attachments'] or $config['allow_online_attachments_onlogin'])) $warn['allow_online_attachments']='<br>*Attachments Disabled.'; } if(!$errors['enable_captcha'] && $config['enable_captcha'] && !extension_loaded('gd')) $errors['enable_captcha']='GD required for captcha to work'; //Not showing err on post to avoid alarming the user...after an update. if(!$errors['err'] &&!$msg && $warn ) $errors['err']='Possible errors detected, please check the warnings below'; $gmtime=Misc::gmtime(); $depts= db_query('SELECT dept_id,dept_name FROM '.DEPT_TABLE.' WHERE ispublic=1'); $templates=db_query('SELECT tpl_id,name FROM '.EMAIL_TEMPLATE_TABLE.' WHERE cfg_id='.db_input($cfg->getId())); ?> <div class="msg">System Preferences and Settings (v<?=$config['ostversion']?>)</div> <table width="100%" border="0" cellspacing=0 cellpadding=0> <form action="admin.php?t=pref" method="post"> <input type="hidden" name="t" value="pref"> <tr><td> <table width="100%" border="0" cellspacing=0 cellpadding=2 class="tform"> <tr class="header" ><td colspan=2>General Settings</td></tr> <tr class="subheader"> <td colspan=2">Offline mode will disable client interface and <b>only</b> allow <b>super admins</b> to login to Staff Control Panel</td> </tr> <tr><th><b>Helpdesk Status</b></th> <td> <input type="radio" name="isonline" value="1" <?=$config['isonline']?'checked':''?> /><b>Online</b> (Active) <input type="radio" name="isonline" value="0" <?=!$config['isonline']?'checked':''?> /><b>Offline</b> (Disabled) <font class="warn"> <?=$config['isoffline']?'osTicket offline':''?></font> </td> </tr> <tr><th>Helpdesk URL:</th> <td> <input type="text" size="40" name="helpdesk_url" value="<?=$config['helpdesk_url']?>"> <font class="error">* <?=$errors['helpdesk_url']?></font></td> </tr> <tr><th>Helpdesk Name/Title:</th> <td><input type="text" size="40" name="helpdesk_title" value="<?=$config['helpdesk_title']?>"> </td> </tr> <tr><th>Default Email Templates:</th> <td> <select name="default_template_id"> <option value=0>Select Default Template</option> <? while (list($id,$name) = db_fetch_row($templates)){ $selected = ($config['default_template_id']==$id)?'SELECTED':''; ?> <option value="<?=$id?>"<?=$selected?>><?=$name?></option> <? }?> </select> <font class="error">* <?=$errors['default_template_id']?></font> </td> </tr> <tr><th>Default Department:</th> <td> <select name="default_dept_id"> <option value=0>Select Default Dept</option> <? while (list($id,$name) = db_fetch_row($depts)){ $selected = ($config['default_dept_id']==$id)?'SELECTED':''; ?> <option value="<?=$id?>"<?=$selected?>><?=$name?> Dept</option> <? }?> </select> <font class="error">* <?=$errors['default_dept_id']?></font> </td> </tr> <tr><th>Default Page Size:</th> <td> <select name="max_page_size"> <? $pagelimit=$config['max_page_size']; for ($i = 5; $i <= 50; $i += 5) { ?> <option <?=$config['max_page_size'] == $i ? 'SELECTED':''?> value="<?=$i?>"><?=$i?></option> <? }?> </select> </td> </tr> <tr><th>System Log Level:</th> <td> <select name="log_level"> <option value=0 <?=$config['log_level'] == 0 ? 'selected="selected"':''?>>None (Disable Logger)</option> <option value=3 <?=$config['log_level'] == 3 ? 'selected="selected"':''?>> DEBUG</option> <option value=2 <?=$config['log_level'] == 2 ? 'selected="selected"':''?>> WARN</option> <option value=1 <?=$config['log_level'] == 1 ? 'selected="selected"':''?>> ERROR</option> </select> Purge logs after <select name="log_graceperiod"> <option value=0 selected> None (Disable)</option> <? for ($i = 1; $i <=12; $i++) { ?> <option <?=$config['log_graceperiod'] == $i ? 'SELECTED':''?> value="<?=$i?>"><?=$i?> <?=($i>1)?'Months':'Month'?></option> <? }?> </select> </td> </tr> <tr><th>Staff Excessive Logins:</th> <td> <select name="staff_max_logins"> <?php for ($i = 1; $i <= 10; $i++) { echo sprintf('<option value="%d" %s>%d</option>',$i,(($config['staff_max_logins']==$i)?'selected="selected"':''),$i); } ?> </select> attempt(s) allowed before a <select name="staff_login_timeout"> <?php for ($i = 1; $i <= 10; $i++) { echo sprintf('<option value="%d" %s>%d</option>',$i,(($config['staff_login_timeout']==$i)?'selected="selected"':''),$i); } ?> </select> min. timeout (penalty in minutes) </td> </tr> <tr><th>Staff Session Timeout:</th> <td> <input type="text" name="staff_session_timeout" size=6 value="<?=$config['staff_session_timeout']?>"> (<i>Staff's max Idle time in minutes. Enter 0 to disable timeout</i>) </td> </tr> <tr><th>Bind Staff Session to IP:</th> <td> <input type="checkbox" name="staff_ip_binding" <?=$config['staff_ip_binding']?'checked':''?>> Bind staff's session to login IP. </td> </tr> <tr><th>Client Excessive Logins:</th> <td> <select name="client_max_logins"> <?php for ($i = 1; $i <= 10; $i++) { echo sprintf('<option value="%d" %s>%d</option>',$i,(($config['client_max_logins']==$i)?'selected="selected"':''),$i); } ?> </select> attempt(s) allowed before a <select name="client_login_timeout"> <?php for ($i = 1; $i <= 10; $i++) { echo sprintf('<option value="%d" %s>%d</option>',$i,(($config['client_login_timeout']==$i)?'selected="selected"':''),$i); } ?> </select> min. timeout (penalty in minutes) </td> </tr> <tr><th>Client Session Timeout:</th> <td> <input type="text" name="client_session_timeout" size=6 value="<?=$config['client_session_timeout']?>"> (<i>Client's max Idle time in minutes. Enter 0 to disable timeout</i>) </td> </tr> <tr><th>Clickable URLs:</th> <td> <input type="checkbox" name="clickable_urls" <?=$config['clickable_urls']?'checked':''?>> Make URLs clickable </td> </tr> <tr><th>Enable Auto Cron:</th> <td> <input type="checkbox" name="enable_auto_cron" <?=$config['enable_auto_cron']?'checked':''?>> Enable cron call on staff's activity </td> </tr> </table> <table width="100%" border="0" cellspacing=0 cellpadding=2 class="tform"> <tr class="header"><td colspan=2>Date & Time</td></tr> <tr class="subheader"> <td colspan=2>Please refer to <a href="http://php.net/date" target="_blank">PHP Manual</a> for supported parameters.</td> </tr> <tr><th>Time Format:</th> <td> <input type="text" name="time_format" value="<?=$config['time_format']?>"> <font class="error">* <?=$errors['time_format']?></font> <i><?=Format::date($config['time_format'],$gmtime,$config['timezone_offset'],$config['enable_daylight_saving'])?></i></td> </tr> <tr><th>Date Format:</th> <td><input type="text" name="date_format" value="<?=$config['date_format']?>"> <font class="error">* <?=$errors['date_format']?></font> <i><?=Format::date($config['date_format'],$gmtime,$config['timezone_offset'],$config['enable_daylight_saving'])?></i> </td> </tr> <tr><th>Date & Time Format:</th> <td><input type="text" name="datetime_format" value="<?=$config['datetime_format']?>"> <font class="error">* <?=$errors['datetime_format']?></font> <i><?=Format::date($config['datetime_format'],$gmtime,$config['timezone_offset'],$config['enable_daylight_saving'])?></i> </td> </tr> <tr><th>Day, Date & Time Format:</th> <td><input type="text" name="daydatetime_format" value="<?=$config['daydatetime_format']?>"> <font class="error">* <?=$errors['daydatetime_format']?></font> <i><?=Format::date($config['daydatetime_format'],$gmtime,$config['timezone_offset'],$config['enable_daylight_saving'])?></i> </td> </tr> <tr><th>Default Timezone:</th> <td> <select name="timezone_offset"> <? $gmoffset = date("Z") / 3600; //Server's offset. echo"<option value=\"$gmoffset\">Server Time (GMT $gmoffset:00)</option>"; //Default if all fails. $timezones= db_query('SELECT offset,timezone FROM '.TIMEZONE_TABLE); while (list($offset,$tz) = db_fetch_row($timezones)){ $selected = ($config['timezone_offset'] ==$offset) ?'SELECTED':''; $tag=($offset)?"GMT $offset ($tz)":" GMT ($tz)"; ?> <option value="<?=$offset?>"<?=$selected?>><?=$tag?></option> <? }?> </select> </td> </tr> <tr> <th>Daylight Saving:</th> <td> <input type="checkbox" name="enable_daylight_saving" <?=$config['enable_daylight_saving'] ? 'checked': ''?>>Observe daylight savings </td> </tr> </table> <table width="100%" border="0" cellspacing=0 cellpadding=2 class="tform"> <tr class="header"><td colspan=2>Ticket Options & Settings</td></tr> <tr class="subheader"><td colspan=2>If enabled ticket lock get auto-renewed on form activity.</td></tr> <tr><th valign="top">Ticket IDs:</th> <td> <input type="radio" name="random_ticket_ids" value="0" <?=!$config['random_ticket_ids']?'checked':''?> /> Sequential <input type="radio" name="random_ticket_ids" value="1" <?=$config['random_ticket_ids']?'checked':''?> />Random (recommended) </td> </tr> <tr><th valign="top">Ticket Priority:</th> <td> <select name="default_priority_id"> <? $priorities= db_query('SELECT priority_id,priority_desc FROM '.TICKET_PRIORITY_TABLE); while (list($id,$tag) = db_fetch_row($priorities)){ ?> <option value="<?=$id?>"<?=($config['default_priority_id']==$id)?'selected':''?>><?=$tag?></option> <? }?> </select> Default priority<br/> <input type="checkbox" name="allow_priority_change" <?=$config['allow_priority_change'] ?'checked':''?>> Allow user to overwrite/set priority (new web tickets)<br/> <input type="checkbox" name="use_email_priority" <?=$config['use_email_priority'] ?'checked':''?> > Use email priority when available (new emailed tickets) </td> </tr> <tr><th>Maximum <b>Open</b> Tickets:</th> <td> <input type="text" name="max_open_tickets" size=4 value="<?=$config['max_open_tickets']?>"> per email. (<i>Helps with spam and flood control. Enter 0 for unlimited</i>) </td> </tr> <tr><th>Auto-Lock Time:</td> <td> <input type="text" name="autolock_minutes" size=4 value="<?=$config['autolock_minutes']?>"> <font class="error"><?=$errors['autolock_minutes']?></font> (<i>Minutes to lock a ticket on activity. Enter 0 to disable locking</i>) </td> </tr> <tr><th>Ticket Grace Period:</th> <td> <input type="text" name="overdue_grace_period" size=4 value="<?=$config['overdue_grace_period']?>"> (<i>Hours before ticket is marked overdue. Enter 0 to disable aging.</i>) </td> </tr> <tr><th>Reopened Tickets:</th> <td> <input type="checkbox" name="auto_assign_reopened_tickets" <?=$config['auto_assign_reopened_tickets'] ? 'checked': ''?>> Auto-assign reopened tickets to last respondent 'available'. (<i> 3 months limit</i>) </td> </tr> <tr><th>Assigned Tickets:</th> <td> <input type="checkbox" name="show_assigned_tickets" <?=$config['show_assigned_tickets']?'checked':''?>> Show assigned tickets on open queue. </td> </tr> <tr><th>Answered Tickets:</th> <td> <input type="checkbox" name="show_answered_tickets" <?=$config['show_answered_tickets']?'checked':''?>> Show answered tickets on open queue. </td> </tr> <tr><th>Ticket Activity Log:</th> <td> <input type="checkbox" name="log_ticket_activity" <?=$config['log_ticket_activity']?'checked':''?>> Log ticket's activity as internal notes. </td> </tr> <tr><th>Staff Identity:</th> <td> <input type="checkbox" name="hide_staff_name" <?=$config['hide_staff_name']?'checked':''?>> Hide staff's name on responses. </td> </tr> <tr><th>Human Verification:</th> <td> <?php if($config['enable_captcha'] && !$errors['enable_captcha']) {?> <img src="../captcha.php" border="0" align="left"> <?}?> <input type="checkbox" name="enable_captcha" <?=$config['enable_captcha']?'checked':''?>> Enable captcha on new web tickets. <font class="error"> <?=$errors['enable_captcha']?></font><br/> </td> </tr> </table> <table width="100%" border="0" cellspacing=0 cellpadding=2 class="tform"> <tr class="header"><td colspan=2 >Email Settings</td></tr> <tr class="subheader"><td colspan=2>Note that global settings can be disabled at dept/email level.</td></tr> <tr><th valign="top"><br><b>Incoming Emails</b>:</th> <td><i>For mail fetcher (POP/IMAP) to work you must set a cron job or simply enable auto-cron</i><br/> <input type="checkbox" name="enable_mail_fetch" value=1 <?=$config['enable_mail_fetch']? 'checked': ''?> > Enable POP/IMAP email fetch (<i>Global setting which can be disabled at email level</i>) <br/> <input type="checkbox" name="enable_email_piping" value=1 <?=$config['enable_email_piping']? 'checked': ''?> > Enable email piping (<i>You pipe we accept policy</i>)<br/> <input type="checkbox" name="strip_quoted_reply" <?=$config['strip_quoted_reply'] ? 'checked':''?>> Strip quoted reply (<i>depends on the tag below</i>)<br/> <input type="text" name="reply_separator" value="<?=$config['reply_separator']?>"> Reply Separator Tag <font class="error"> <?=$errors['reply_separator']?></font> </td> </tr> <tr><th valign="top"><br><b>Outgoing Emails</b>:</th> <td> <i><b>Default Email:</b> Only applies to outgoing emails with no SMTP settings.</i><br/> <select name="default_smtp_id" onChange="document.getElementById('overwrite').style.display=(this.options[this.selectedIndex].value>0)?'block':'none';"> <option value=0>Select One</option> <option value=0 selected="selected">None: Use PHP mail function</option> <? $emails=db_query('SELECT email_id,email,name,smtp_host FROM '.EMAIL_TABLE.' WHERE smtp_active=1'); if($emails && db_num_rows($emails)) { while (list($id,$email,$name,$host) = db_fetch_row($emails)){ $email=$name?"$name <$email>":$email; $email=sprintf('%s (%s)',$email,$host); ?> <option value="<?=$id?>"<?=($config['default_smtp_id']==$id)?'selected="selected"':''?>><?=$email?></option> <? } }?> </select> <font class="error"> <?=$errors['default_smtp_id']?></font><br/> <span id="overwrite" style="display:<?=($config['default_smtp_id']?'display':'none')?>"> <input type="checkbox" name="spoof_default_smtp" <?=$config['spoof_default_smtp'] ? 'checked':''?>> Allow spoofing (No Overwrite). <font class="error"> <?=$errors['spoof_default_smtp']?></font><br/> </span> </td> </tr> <tr><th>Default System Email:</th> <td> <select name="default_email_id"> <option value=0 disabled>Select One</option> <? $emails=db_query('SELECT email_id,email,name FROM '.EMAIL_TABLE); while (list($id,$email,$name) = db_fetch_row($emails)){ $email=$name?"$name <$email>":$email; ?> <option value="<?=$id?>"<?=($config['default_email_id']==$id)?'selected':''?>><?=$email?></option> <? }?> </select> <font class="error">* <?=$errors['default_email_id']?></font></td> </tr> <tr><th valign="top">Default Alert Email:</th> <td> <select name="alert_email_id"> <option value=0 disabled>Select One</option> <option value=0 selected="selected">Use Default System Email (above)</option> <? $emails=db_query('SELECT email_id,email,name FROM '.EMAIL_TABLE.' WHERE email_id != '.db_input($config['default_email_id'])); while (list($id,$email,$name) = db_fetch_row($emails)){ $email=$name?"$name <$email>":$email; ?> <option value="<?=$id?>"<?=($config['alert_email_id']==$id)?'selected':''?>><?=$email?></option> <? }?> </select> <font class="error">* <?=$errors['alert_email_id']?></font> <br/><i>Used to send out alerts and notices to staff.</i> </td> </tr> <tr><th>System Admin Email Address:</th> <td> <input type="text" size=25 name="admin_email" value="<?=$config['admin_email']?>"> <font class="error">* <?=$errors['admin_email']?></font></td> </tr> </table> <table width="100%" border="0" cellspacing=0 cellpadding=2 class="tform"> <tr class="header"><td colspan=2>Autoresponders (Global Setting)</td></tr> <tr class="subheader"><td colspan=2">This is global setting which can be disabled at department level.</td></tr> <tr><th valign="top">New Ticket:</th> <td><i>Autoresponse includes the ticket ID required to check status of the ticket</i><br> <input type="radio" name="ticket_autoresponder" value="1" <?=$config['ticket_autoresponder']?'checked':''?> />Enable <input type="radio" name="ticket_autoresponder" value="0" <?=!$config['ticket_autoresponder']?'checked':''?> />Disable </td> </tr> <tr><th valign="top">New Ticket by Staff:</th> <td><i>Notice sent when staff creates a ticket on behalf of the user (Staff can disable)</i><br> <input type="radio" name="ticket_notice_active" value="1" <?=$config['ticket_notice_active']?'checked':''?> />Enable <input type="radio" name="ticket_notice_active" value="0" <?=!$config['ticket_notice_active']?'checked':''?> />Disable </td> </tr> <tr><th valign="top">New Message:</th> <td><i>Message appended to an existing ticket confirmation</i><br> <input type="radio" name="message_autoresponder" value="1" <?=$config['message_autoresponder']?'checked':''?> />Enable <input type="radio" name="message_autoresponder" value="0" <?=!$config['message_autoresponder']?'checked':''?> />Disable </td> </tr> <tr><th valign="top">Overlimit notice:</th> <td><i>Ticket denied notice sent <b>only once</b> on limit violation to the user.</i><br/> <input type="radio" name="overlimit_notice_active" value="1" <?=$config['overlimit_notice_active']?'checked':''?> />Enable <input type="radio" name="overlimit_notice_active" value="0" <?=!$config['overlimit_notice_active']?'checked':''?> />Disable <br><i><b>Note:</b> Admin gets alerts on ALL denials by default.</i><br> </td> </tr> </table> <table width="100%" border="0" cellspacing=0 cellpadding=2 class="tform"> <tr class="header"><td colspan=2> Alerts & Notices</td></tr> <tr class="subheader"><td colspan=2> Notices sent to user use 'No Reply Email' whereas alerts to staff use 'Alert Email' set above as FROM address respectively.</td> </tr> <tr><th valign="top">New Ticket Alert:</th> <td> <input type="radio" name="ticket_alert_active" value="1" <?=$config['ticket_alert_active']?'checked':''?> />Enable <input type="radio" name="ticket_alert_active" value="0" <?=!$config['ticket_alert_active']?'checked':''?> />Disable <br><i>Select recipients</i> <font class="error"> <?=$errors['ticket_alert_active']?></font><br> <input type="checkbox" name="ticket_alert_admin" <?=$config['ticket_alert_admin']?'checked':''?>> Admin Email <input type="checkbox" name="ticket_alert_dept_manager" <?=$config['ticket_alert_dept_manager']?'checked':''?>> Department Manager <input type="checkbox" name="ticket_alert_dept_members" <?=$config['ticket_alert_dept_members']?'checked':''?>> Department Members (spammy) </td> </tr> <tr><th valign="top">New Message Alert:</th> <td> <input type="radio" name="message_alert_active" value="1" <?=$config['message_alert_active']?'checked':''?> />Enable <input type="radio" name="message_alert_active" value="0" <?=!$config['message_alert_active']?'checked':''?> />Disable <br><i>Select recipients</i> <font class="error"> <?=$errors['message_alert_active']?></font><br> <input type="checkbox" name="message_alert_laststaff" <?=$config['message_alert_laststaff']?'checked':''?>> Last Respondent <input type="checkbox" name="message_alert_assigned" <?=$config['message_alert_assigned']?'checked':''?>> Assigned Staff <input type="checkbox" name="message_alert_dept_manager" <?=$config['message_alert_dept_manager']?'checked':''?>> Department Manager (spammy) </td> </tr> <tr><th valign="top">New Internal Note Alert:</th> <td> <input type="radio" name="note_alert_active" value="1" <?=$config['note_alert_active']?'checked':''?> />Enable <input type="radio" name="note_alert_active" value="0" <?=!$config['note_alert_active']?'checked':''?> />Disable <br><i>Select recipients</i> <font class="error"> <?=$errors['note_alert_active']?></font><br> <input type="checkbox" name="note_alert_laststaff" <?=$config['note_alert_laststaff']?'checked':''?>> Last Respondent <input type="checkbox" name="note_alert_assigned" <?=$config['note_alert_assigned']?'checked':''?>> Assigned Staff <input type="checkbox" name="note_alert_dept_manager" <?=$config['note_alert_dept_manager']?'checked':''?>> Department Manager (spammy) </td> </tr> <tr><th valign="top">Overdue Ticket Alert:</th> <td> <input type="radio" name="overdue_alert_active" value="1" <?=$config['overdue_alert_active']?'checked':''?> />Enable <input type="radio" name="overdue_alert_active" value="0" <?=!$config['overdue_alert_active']?'checked':''?> />Disable <br><i>Admin Email gets an alert by default. Select additional recipients below</i> <font class="error"> <?=$errors['overdue_alert_active']?></font><br> <input type="checkbox" name="overdue_alert_assigned" <?=$config['overdue_alert_assigned']?'checked':''?>> Assigned Staff <input type="checkbox" name="overdue_alert_dept_manager" <?=$config['overdue_alert_dept_manager']?'checked':''?>> Department Manager <input type="checkbox" name="overdue_alert_dept_members" <?=$config['overdue_alert_dept_members']?'checked':''?>> Department Members (spammy) </td> </tr> <tr><th valign="top">System Errors:</th> <td><i>Enabled errors are sent to admin email set above</i><br> <input type="checkbox" name="send_sys_errors" <?=$config['send_sys_errors']?'checked':'checked'?> disabled>System Errors <input type="checkbox" name="send_sql_errors" <?=$config['send_sql_errors']?'checked':''?>>SQL errors <input type="checkbox" name="send_login_errors" <?=$config['send_login_errors']?'checked':''?>>Excessive Login attempts </td> </tr> </table> </td></tr> <tr> <td style="padding:10px 0 10px 240px;"> <input class="button" type="submit" name="submit" value="Save Changes"> <input class="button" type="reset" name="reset" value="Reset Changes"> </td> </tr> </form> </table>