Files
hesk-docker/hesk/inc/profile_functions.inc.php
Luke Tainton ac0640212a Hesk v3.2.0
2021-03-06 16:23:18 +00:00

366 lines
20 KiB
PHP

<?php
/**
*
* This file is part of HESK - PHP Help Desk Software.
*
* (c) Copyright Klemen Stirn. All rights reserved.
* https://www.hesk.com
*
* For the full copyright and license agreement information visit
* https://www.hesk.com/eula.php
*
*/
/* Check if this is a valid include */
if (!defined('IN_SCRIPT')) {die('Invalid attempt');}
function hesk_profile_tab($session_array='new',$is_profile_page=true)
{
global $hesk_settings, $hesklang, $can_reply_tickets, $can_view_tickets, $can_view_unassigned;
$show_permissions = false;
$show_preferences = false;
$steps = array($hesklang['pinfo']);
if (!$is_profile_page) {
$steps[] = $hesklang['permissions'];
$show_permissions = true;
}
$steps[] = $hesklang['sig'];
if (!$is_profile_page || $can_reply_tickets) {
$steps[] = $hesklang['pref'];
$show_preferences = true;
}
$steps[] = $hesklang['notn'];
$errors = hesk_SESSION(array($session_array, 'errors'));
$errors = is_array($errors) ? $errors : array();
?>
<!-- TABS -->
<ul class="step-bar">
<?php
$i = 1;
foreach ($steps as $step_name): ?>
<li data-link="<?php echo $i++; ?>" data-all="<?php echo count($steps); ?>">
<?php echo $step_name; ?>
</li>
<?php endforeach; ?>
</ul>
<?php
$current_step = 1;
?>
<div class="step-slider">
<div class="step-item step-<?php echo $current_step++; ?>">
<div class="form-group">
<label for="prof_name"><?php echo $hesklang['real_name']; ?></label>
<input type="text" class="form-control <?php echo in_array('name', $errors) ? 'isError' : ''; ?>" id="prof_name" name="name" maxlength="50"
value="<?php echo $_SESSION[$session_array]['name']; ?>">
</div>
<div class="form-group">
<label for="prof_email"><?php echo $hesklang['email']; ?></label>
<input type="text" class="form-control <?php echo in_array('email', $errors) ? 'isError' : ''; ?>" name="email" maxlength="255" id="prof_user"
value="<?php echo $_SESSION[$session_array]['email']; ?>">
</div>
<?php
if ( ! $is_profile_page || $_SESSION['isadmin'])
{
?>
<div class="form-group">
<label for="prof_user"><?php echo $hesklang['username']; ?></label>
<input type="text" class="form-control <?php echo in_array('user', $errors) ? 'isError' : ''; ?>" name="user" autocomplete="off" id="prof_user" maxlength="20"
value="<?php echo $_SESSION[$session_array]['user']; ?>">
</div>
<?php
}
?>
<section class="item--section">
<h4>
<?php echo $hesklang['pass']; ?>
<?php if ($is_profile_page): ?>
<span>
<?php echo $hesklang['optional']; ?>
</span>
<?php endif; ?>
</h4>
<div class="form-group">
<label for="prof_newpass"><?php echo $is_profile_page ? $hesklang['new_pass'] : $hesklang['pass']; ?></label>
<input type="password" id="prof_newpass" name="newpass" autocomplete="off" class="form-control <?php echo in_array('passwords', $errors) ? 'isError' : ''; ?>"
value="<?php echo isset($_SESSION[$session_array]['cleanpass']) ? $_SESSION[$session_array]['cleanpass'] : ''; ?>"
onkeyup="hesk_checkPassword(this.value)">
</div>
<div class="form-group">
<label for="prof_newpass2"><?php echo $hesklang['confirm_pass']; ?></label>
<input type="password" class="form-control <?php echo in_array('passwords', $errors) ? 'isError' : ''; ?>" id="prof_newpass2" name="newpass2" autocomplete="off"
value="<?php echo isset($_SESSION[$session_array]['cleanpass']) ? $_SESSION[$session_array]['cleanpass'] : ''; ?>">
</div>
<div class="form-group">
<label><?php echo $hesklang['pwdst']; ?></label>
<div style="border: 1px solid #d4d6e3; width: 100%; height: 40px">
<div id="progressBar" style="font-size: 1px; height: 38px; width: 0px; border: none;">
</div>
</div>
</div>
<?php if (!$is_profile_page && $hesk_settings['autoassign']): ?>
<div class="form-switcher">
<label class="switch-checkbox">
<input type="checkbox" name="autoassign" value="Y"
<?php if (isset($_SESSION[$session_array]['autoassign']) && !empty($_SESSION[$session_array]['autoassign'])) {echo 'checked';} ?>>
<div class="switch-checkbox__bullet">
<i>
<svg class="icon icon-close">
<use xlink:href="<?php echo HESK_PATH; ?>img/sprite.svg#icon-close"></use>
</svg>
<svg class="icon icon-tick">
<use xlink:href="<?php echo HESK_PATH; ?>img/sprite.svg#icon-tick"></use>
</svg>
</i>
</div>
<span><?php echo $hesklang['user_aa']; ?></span>
</label>
</div>
<?php endif; ?>
</section>
</div>
<?php if ($show_permissions): ?>
<div class="step-item step-<?php echo $current_step++; ?>">
<div class="form-group">
<label><?php echo $hesklang['atype']; ?></label>
<?php
/* Only administrators can create new administrator accounts */
if ($_SESSION['isadmin']) {
?>
<div class="radio-list">
<div class="radio-custom">
<input type="radio" id="prof_isadmin1" name="isadmin" value="1" onchange="hesk_toggleLayerDisplay('options')"
<?php if ($_SESSION[$session_array]['isadmin']) echo 'checked'; ?>>
<label for="prof_isadmin1">
<?php echo $hesklang['administrator']; ?>
<?php echo $hesklang['admin_can']; ?>
</label>
</div>
<div class="radio-custom">
<input type="radio" id="prof_isadmin0" name="isadmin" value="0" onchange="hesk_toggleLayerDisplay('options')"
<?php if (!$_SESSION[$session_array]['isadmin']) echo 'checked'; ?>>
<label for="prof_isadmin0">
<?php echo $hesklang['astaff']; ?>
<?php echo $hesklang['staff_can']; ?>
</label>
</div>
</div>
<?php
} else {
echo '<label>'.$hesklang['astaff'].' '.$hesklang['staff_can'] . '</label>';
}
?>
</div>
<div id="options" style="display: <?php echo ($_SESSION['isadmin'] && $_SESSION[$session_array]['isadmin']) ? 'none' : 'block'; ?>;">
<h4><?php echo $hesklang['allowed_cat']; ?></h4>
<section class="item--section">
<?php foreach ($hesk_settings['categories'] as $catid => $catname): ?>
<div class="checkbox-custom <?php echo in_array('categories', $errors) ? 'isError' : ''; ?>">
<input type="checkbox" id="prof_category_<?php echo $catid; ?>" name="categories[]" value="<?php echo $catid; ?>"
<?php if (in_array($catid,$_SESSION[$session_array]['categories'])) { echo 'checked'; } ?>>
<label for="prof_category_<?php echo $catid; ?>"><?php echo $catname; ?></label>
</div>
<?php endforeach; ?>
</section>
<h4><?php echo $hesklang['allow_feat']; ?></h4>
<section class="item--section">
<?php foreach ($hesk_settings['features'] as $k): ?>
<div class="checkbox-custom <?php echo in_array('features', $errors) ? 'isError' : ''; ?>">
<input type="checkbox" id="<?php echo $k; ?>" name="features[]" value="<?php echo $k; ?>"
<?php if (in_array($k,$_SESSION[$session_array]['features'])) { echo 'checked'; } ?>>
<label for="<?php echo $k ?>"><?php echo $hesklang[$k]; ?></label>
</div>
<?php endforeach; ?>
</section>
</div>
</div>
<?php endif; ?>
<div class="step-item step-<?php echo $current_step++; ?>">
<div class="form-group">
<label for="prof_signature"><?php echo $hesklang['signature_max']; ?></label>
<textarea class="form-control <?php echo in_array('signature', $errors) ? 'isError' : ''; ?>" name="signature" rows="10" cols="60"><?php echo $_SESSION[$session_array]['signature']; ?></textarea>
<?php echo $hesklang['sign_extra']; ?>
</div>
</div>
<?php if ($show_preferences): ?>
<div class="step-item step-<?php echo $current_step++; ?>">
<section class="item--section">
<div class="form-group">
<label><?php echo $hesklang['aftrep']; ?></label>
<div class="radio-list">
<div class="radio-custom">
<input type="radio" id="prof_afterreply0" name="afterreply" value="0" <?php if (!$_SESSION[$session_array]['afterreply']) {echo 'checked';} ?>>
<label for="prof_afterreply0">
<?php echo $hesklang['showtic']; ?>
</label>
</div>
<div class="radio-custom">
<input type="radio" id="prof_afterreply1" name="afterreply" value="1" <?php if ($_SESSION[$session_array]['afterreply'] == 1) {echo 'checked';} ?>>
<label for="prof_afterreply1">
<?php echo $hesklang['gomain']; ?>
</label>
</div>
<div class="radio-custom">
<input type="radio" id="prof_afterreply2" name="afterreply" value="2" <?php if ($_SESSION[$session_array]['afterreply'] == 2) {echo 'checked';} ?>>
<label for="prof_afterreply2">
<?php echo $hesklang['shownext']; ?>
</label>
</div>
</div>
</div>
</section>
<section class="item--section defaults-section">
<h4><?php echo $hesklang['defaults']; ?></h4>
<?php if ($hesk_settings['time_worked']): ?>
<div class="checkbox-custom">
<input type="checkbox" id="prof_autostart" name="autostart" value="1" <?php if (!empty($_SESSION[$session_array]['autostart'])) {echo 'checked';}?>>
<label for="prof_autostart"><?php echo $hesklang['autoss']; ?></label>
</div>
<?php
endif;
if (empty($_SESSION[$session_array]['autoreload'])) {
$reload_time = 30;
$sec = 'selected="selected"';
$min = '';
} else {
$reload_time = intval($_SESSION[$session_array]['autoreload']);
if ($reload_time >= 60 && $reload_time % 60 == 0) {
$reload_time = $reload_time / 60;
$sec = '';
$min = 'selected="selected"';
} else {
$sec = 'selected="selected"';
$min = '';
}
}
?>
<div class="checkbox-custom">
<input type="checkbox" id="prof_notify_customer_new" name="notify_customer_new" value="1" <?php if (!empty($_SESSION[$session_array]['notify_customer_new'])) {echo 'checked';}?>>
<label for="prof_notify_customer_new"><?php echo $hesklang['pncn']; ?></label>
</div>
<div class="checkbox-custom">
<input type="checkbox" id="prof_notify_customer_reply" name="notify_customer_reply" value="1" <?php if (!empty($_SESSION[$session_array]['notify_customer_reply'])) {echo 'checked';}?>>
<label for="prof_notify_customer_reply"><?php echo $hesklang['pncr']; ?></label>
</div>
<div class="checkbox-custom">
<input type="checkbox" id="prof_show_suggested" name="show_suggested" value="1" <?php if (!empty($_SESSION[$session_array]['show_suggested'])) {echo 'checked';}?>>
<label for="prof_show_suggested"><?php echo $hesklang['pssy']; ?></label>
</div>
<div class="check-plus-input">
<div class="checkbox-custom">
<input type="checkbox" id="prof_autoreload" name="autoreload" value="1" <?php if (!empty($_SESSION[$session_array]['autoreload'])) {echo 'checked';}?>>
<label for="prof_autoreload"><?php echo $hesklang['arpp']; ?></label>
</div>
<div class="form-group">
<input type="text" class="form-control" name="reload_time" value="<?php echo $reload_time; ?>" maxlength="5" onkeyup="this.value=this.value.replace(/[^\d]+/,'')">
</div>
<div class="form-group">
<div class="dropdown-select center out-close">
<select name="secmin">
<option value="sec" <?php echo $sec; ?>><?php echo $hesklang['seconds']; ?></option>
<option value="min" <?php echo $min; ?>><?php echo $hesklang['minutes']; ?></option>
</select>
</div>
</div>
</div>
</section>
</div>
<?php endif; ?>
<div class="step-item step-<?php echo $current_step; ?>">
<h5><?php echo $hesklang['nomw']; ?></h5>
<?php if (!$is_profile_page || $can_view_tickets) {
echo '<section class="item--section">';
if (!$is_profile_page || $can_view_unassigned) { ?>
<div class="checkbox-custom">
<input type="checkbox" id="prof_notify_new_unassigned" name="notify_new_unassigned" value="1"
<?php if (!empty($_SESSION[$session_array]['notify_new_unassigned'])) {echo 'checked';}?>>
<label for="prof_notify_new_unassigned"><?php echo $hesklang['nwts']; ?> <?php echo $hesklang['unas']; ?></label>
</div>
<?php
}
?>
<div class="checkbox-custom">
<input type="checkbox" id="prof_notify_new_my" name="notify_new_my" value="1"
<?php if (!empty($_SESSION[$session_array]['notify_new_my'])) {echo 'checked';}?>>
<label for="prof_notify_new_my"><?php echo $hesklang['nwts']; ?> <?php echo $hesklang['s_my']; ?></label>
</div>
<?php
echo '</section>';
echo '<section class="item--section">';
if (!$is_profile_page || $can_view_unassigned) { ?>
<div class="checkbox-custom">
<input type="checkbox" id="prof_notify_reply_unassigned" name="notify_reply_unassigned" value="1"
<?php if (!empty($_SESSION[$session_array]['notify_reply_unassigned'])) {echo 'checked';}?>>
<label for="prof_notify_reply_unassigned"><?php echo $hesklang['ncrt']; ?> <?php echo $hesklang['unas']; ?></label>
</div>
<?php
} ?>
<div class="checkbox-custom">
<input type="checkbox" id="prof_notify_reply_my" name="notify_reply_my" value="1"
<?php if (!empty($_SESSION[$session_array]['notify_reply_my'])) {echo 'checked';}?>>
<label for="prof_notify_reply_my"><?php echo $hesklang['ncrt']; ?> <?php echo $hesklang['s_my']; ?></label>
</div>
<?php
echo '</section>';
echo '<section class="item--section">';
if (!$is_profile_page || $can_view_unassigned) { ?>
<div class="checkbox-custom">
<input type="checkbox" id="prof_notify_overdue_unassigned" name="notify_overdue_unassigned" value="1"
<?php if (!empty($_SESSION[$session_array]['notify_overdue_unassigned'])) {echo 'checked';}?>>
<label for="prof_notify_overdue_unassigned"><?php echo $hesklang['ntoverdue']; ?> <?php echo $hesklang['unas']; ?>*</label>
</div>
<?php
}
?>
<div class="checkbox-custom">
<input type="checkbox" id="prof_notify_overdue_my" name="notify_overdue_my" value="1"
<?php if (!empty($_SESSION[$session_array]['notify_overdue_my'])) {echo 'checked';}?>>
<label for="prof_notify_overdue_my"><?php echo $hesklang['ntoverdue']; ?> <?php echo $hesklang['s_my']; ?>*</label>
</div>
<?php
echo '</section>';
?>
<section class="item--section">
<div class="checkbox-custom">
<input type="checkbox" id="prof_notify_assigned" name="notify_assigned" value="1"
<?php if (!empty($_SESSION[$session_array]['notify_assigned'])) {echo 'checked';}?>>
<label for="prof_notify_assigned"><?php echo $hesklang['ntam']; ?></label>
</div>
<div class="checkbox-custom">
<input type="checkbox" id="prof_notify_note" name="notify_note" value="1"
<?php if (!empty($_SESSION[$session_array]['notify_note'])) {echo 'checked';}?>>
<label for="prof_notify_note"><?php echo $hesklang['ntnote']; ?></label>
</div>
<?php
} ?>
<div class="checkbox-custom">
<input type="checkbox" id="prof_notify_pm" name="notify_pm" value="1"
<?php if (!empty($_SESSION[$session_array]['notify_pm'])) {echo 'checked';}?>>
<label for="prof_notify_pm"><?php echo $hesklang['npms']; ?></label>
</div>
</section>
<?php hesk_show_notice($hesklang['ovdcron'] . ' <a href="https://www.hesk.com/knowledgebase/?article=103" target="_blank">'.$hesklang['instructions'].'</a>', '*', false); ?>
</div>
</div>
<script>
hesk_checkPassword(document.form1.newpass.value);
$(document).ready(function() {
$('#can_reply_tickets').click(function() {
if($(this).prop("checked") == true) {
$('#can_view_tickets').prop("checked", true);
}
});
});
</script>
<?php
} // END hesk_profile_tab()