172
hesk/theme/hesk3/customer/create-ticket/category-select.php
Normal file
@@ -0,0 +1,172 @@
|
||||
<?php
|
||||
global $hesk_settings, $hesklang;
|
||||
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
|
||||
require_once(TEMPLATE_PATH . 'customer/util/alerts.php');
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title><?php echo $hesk_settings['hesk_title']; ?></title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
|
||||
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="author" content="" />
|
||||
<meta name="theme-color" content="#fff" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<link rel="stylesheet" media="all" href="<?php echo TEMPLATE_PATH; ?>customer/css/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.css" />
|
||||
|
||||
<style>
|
||||
.form-footer .btn {
|
||||
margin-top: 20px;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
|
||||
<?php include(TEMPLATE_PATH . '../../head.txt'); ?>
|
||||
</head>
|
||||
|
||||
<body class="cust-help">
|
||||
<?php include(TEMPLATE_PATH . '../../header.txt'); ?>
|
||||
<div class="wrapper">
|
||||
<main class="main">
|
||||
<header class="header">
|
||||
<div class="contr">
|
||||
<div class="header__inner">
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>" class="header__logo">
|
||||
<?php echo $hesk_settings['hesk_title']; ?>
|
||||
</a>
|
||||
<?php if ($hesk_settings['can_sel_lang']): ?>
|
||||
<div class="header__lang">
|
||||
<form method="get" action="" style="margin:0;padding:0;border:0;white-space:nowrap;">
|
||||
<div class="dropdown-select center out-close">
|
||||
<select name="language" onchange="this.form.submit()">
|
||||
<?php hesk_listLanguages(); ?>
|
||||
</select>
|
||||
</div>
|
||||
<?php foreach (hesk_getCurrentGetParameters() as $key => $value): ?>
|
||||
<input type="hidden" name="<?php echo hesk_htmlentities($key); ?>"
|
||||
value="<?php echo hesk_htmlentities($value); ?>">
|
||||
<?php endforeach; ?>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="breadcrumbs">
|
||||
<div class="contr">
|
||||
<div class="breadcrumbs__inner">
|
||||
<a href="<?php echo $hesk_settings['site_url']; ?>">
|
||||
<span><?php echo $hesk_settings['site_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>">
|
||||
<span><?php echo $hesk_settings['hesk_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<div class="last"><?php echo $hesklang['submit_ticket']; ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main__content">
|
||||
<div class="contr">
|
||||
<div style="margin-bottom: 20px;">
|
||||
<?php
|
||||
hesk3_show_messages($messages);
|
||||
?>
|
||||
</div>
|
||||
<h3 class="article__heading article__heading--form">
|
||||
<span class="ml-1"><?php echo $hesklang['select_category_text']; ?></span>
|
||||
</h3>
|
||||
<?php
|
||||
// Show dropdown or list, depending on number of categories
|
||||
if (count($hesk_settings['categories']) > $hesk_settings['cat_show_select']):
|
||||
?>
|
||||
<form action="index.php" method="get">
|
||||
<select class="form-control" name="category" id="select_category">
|
||||
<?php
|
||||
if ($hesk_settings['select_cat'])
|
||||
{
|
||||
echo '<option value="">'.$hesklang['select'].'</option>';
|
||||
}
|
||||
foreach ($hesk_settings['categories'] as $k=>$v)
|
||||
{
|
||||
echo '<option value="'.$k.'">'.$v.'</option>';
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<div class="form-footer">
|
||||
<button class="btn btn-full" type="submit"><?php echo $hesklang['c2c']; ?></button>
|
||||
<input type="hidden" name="a" value="add">
|
||||
</div>
|
||||
</form>
|
||||
<?php else: ?>
|
||||
<div class="nav">
|
||||
<?php foreach ($hesk_settings['categories'] as $k => $v): ?>
|
||||
<a href="index.php?a=add&category=<?php echo $k; ?>" class="navlink">
|
||||
<div class="icon-in-circle">
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h5 class="navlink__title"><?php echo $v; ?></h5>
|
||||
</div>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
/*******************************************************************************
|
||||
The code below handles HESK licensing and must be included in the template.
|
||||
|
||||
Removing this code is a direct violation of the HESK End User License Agreement,
|
||||
will void all support and may result in unexpected behavior.
|
||||
|
||||
To purchase a HESK license and support future HESK development please visit:
|
||||
https://www.hesk.com/buy.php
|
||||
*******************************************************************************/
|
||||
$hesk_settings['hesk_license']('Qo8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPg0KICAgIDxwIGNsY
|
||||
XNzPSJ0ZXh0LWNlbnRlciI+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5oZXNrLmNvbSIgY
|
||||
2xhc3M9ImxpbmsiPkhlbHAgRGVzayBTb2Z0d2FyZTwvYT4gPHNwYW4gY2xhc3M9ImZvbnQtd2VpZ2h0L
|
||||
WJvbGQiPkhFU0s8L3NwYW4+LCBpbiBwYXJ0bmVyc2hpcCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vd3d3L
|
||||
nN5c2FpZC5jb20vP3V0bV9zb3VyY2U9SGVzayZhbXA7dXRtX21lZGl1bT1jcGMmYW1wO3V0bV9jYW1wY
|
||||
Wlnbj1IZXNrUHJvZHVjdF9Ub19IUCIgY2xhc3M9ImxpbmsiPlN5c0FpZCBUZWNobm9sb2dpZXM8L2E+P
|
||||
C9wPg0KPC9mb290ZXI+DQo=',"\104", "347db01e129edd4b3877f70ea6fed019462ae827");
|
||||
/*******************************************************************************
|
||||
END LICENSE CODE
|
||||
*******************************************************************************/
|
||||
?>
|
||||
</main>
|
||||
</div>
|
||||
<?php include(TEMPLATE_PATH . '../../footer.txt'); ?>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery-3.4.1.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/hesk_functions.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/svg4everybody.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.scrollbar.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/selectize.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.en.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.autocomplete.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#select_category').selectize();
|
||||
});
|
||||
</script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,137 @@
|
||||
<?php
|
||||
global $hesk_settings, $hesklang;
|
||||
/**
|
||||
* @var string $trackingId
|
||||
* @var boolean $emailProvided
|
||||
*/
|
||||
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
|
||||
require_once(TEMPLATE_PATH . 'customer/util/alerts.php');
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title><?php echo $hesk_settings['hesk_title']; ?></title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
|
||||
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="author" content="" />
|
||||
<meta name="theme-color" content="#fff" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<link rel="stylesheet" media="all" href="<?php echo TEMPLATE_PATH; ?>customer/css/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.css" />
|
||||
<?php include(TEMPLATE_PATH . '../../head.txt'); ?>
|
||||
</head>
|
||||
|
||||
<body class="cust-help">
|
||||
<?php include(TEMPLATE_PATH . '../../header.txt'); ?>
|
||||
<div class="wrapper">
|
||||
<main class="main">
|
||||
<header class="header">
|
||||
<div class="contr">
|
||||
<div class="header__inner">
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>" class="header__logo">
|
||||
<?php echo $hesk_settings['hesk_title']; ?>
|
||||
</a>
|
||||
<?php if ($hesk_settings['can_sel_lang']): ?>
|
||||
<div class="header__lang">
|
||||
<form method="get" action="" style="margin:0;padding:0;border:0;white-space:nowrap;">
|
||||
<div class="dropdown-select center out-close">
|
||||
<select name="language" onchange="this.form.submit()">
|
||||
<?php hesk_listLanguages(); ?>
|
||||
</select>
|
||||
</div>
|
||||
<?php foreach (hesk_getCurrentGetParameters() as $key => $value): ?>
|
||||
<input type="hidden" name="<?php echo hesk_htmlentities($key); ?>"
|
||||
value="<?php echo hesk_htmlentities($value); ?>">
|
||||
<?php endforeach; ?>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="breadcrumbs">
|
||||
<div class="contr">
|
||||
<div class="breadcrumbs__inner">
|
||||
<a href="<?php echo $hesk_settings['site_url']; ?>">
|
||||
<span><?php echo $hesk_settings['site_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>">
|
||||
<span><?php echo $hesk_settings['hesk_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<div class="last"><?php echo $hesklang['ticket_submitted']; ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main__content">
|
||||
<div class="contr">
|
||||
<div class="main__content notice-flash">
|
||||
<div class="notification green">
|
||||
<p><b><?php echo $hesklang['ticket_submitted']; ?></b></p>
|
||||
<p>
|
||||
<?php echo $hesklang['ticket_submitted_success']; ?>: <span class="font-weight-bold"><?php echo $trackingId; ?></span>
|
||||
<br><br>
|
||||
<?php
|
||||
if (!$emailProvided) {
|
||||
echo $hesklang['write_down'];
|
||||
}
|
||||
if ($emailProvided && $hesk_settings['notify_new'] && $hesk_settings['spam_notice']) {
|
||||
echo $hesklang['spam_inbox'];
|
||||
}
|
||||
?><br><br>
|
||||
<a class="btn btn-full" ripple="ripple" href="<?php echo $hesk_settings['hesk_url']; ?>/ticket.php?track=<?php echo $trackingId ?>">
|
||||
<?php echo $hesklang['view_your_ticket']; ?>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
/*******************************************************************************
|
||||
The code below handles HESK licensing and must be included in the template.
|
||||
|
||||
Removing this code is a direct violation of the HESK End User License Agreement,
|
||||
will void all support and may result in unexpected behavior.
|
||||
|
||||
To purchase a HESK license and support future HESK development please visit:
|
||||
https://www.hesk.com/buy.php
|
||||
*******************************************************************************/
|
||||
$hesk_settings['hesk_license']('Qo8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPg0KICAgIDxwIGNsY
|
||||
XNzPSJ0ZXh0LWNlbnRlciI+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5oZXNrLmNvbSIgY
|
||||
2xhc3M9ImxpbmsiPkhlbHAgRGVzayBTb2Z0d2FyZTwvYT4gPHNwYW4gY2xhc3M9ImZvbnQtd2VpZ2h0L
|
||||
WJvbGQiPkhFU0s8L3NwYW4+LCBpbiBwYXJ0bmVyc2hpcCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vd3d3L
|
||||
nN5c2FpZC5jb20vP3V0bV9zb3VyY2U9SGVzayZhbXA7dXRtX21lZGl1bT1jcGMmYW1wO3V0bV9jYW1wY
|
||||
Wlnbj1IZXNrUHJvZHVjdF9Ub19IUCIgY2xhc3M9ImxpbmsiPlN5c0FpZCBUZWNobm9sb2dpZXM8L2E+P
|
||||
C9wPg0KPC9mb290ZXI+DQo=',"\104", "347db01e129edd4b3877f70ea6fed019462ae827");
|
||||
/*******************************************************************************
|
||||
END LICENSE CODE
|
||||
*******************************************************************************/
|
||||
?>
|
||||
</main>
|
||||
</div>
|
||||
<?php include(TEMPLATE_PATH . '../../footer.txt'); ?>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery-3.4.1.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/hesk_functions.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/svg4everybody.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.scrollbar.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/selectize.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.en.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.autocomplete.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
443
hesk/theme/hesk3/customer/create-ticket/create-ticket.php
Normal file
@@ -0,0 +1,443 @@
|
||||
<?php
|
||||
global $hesk_settings, $hesklang;
|
||||
/**
|
||||
* @var string $categoryName
|
||||
* @var int $categoryId
|
||||
* @var array $visibleCustomFieldsBeforeMessage
|
||||
* @var array $visibleCustomFieldsAfterMessage
|
||||
* @var array $customFieldsBeforeMessage
|
||||
* @var array $customFieldsAfterMessage
|
||||
*/
|
||||
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
|
||||
require_once(TEMPLATE_PATH . 'customer/util/alerts.php');
|
||||
require_once(TEMPLATE_PATH . 'customer/util/custom-fields.php');
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title><?php echo $hesk_settings['tmp_title']; ?></title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
|
||||
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="author" content="" />
|
||||
<meta name="theme-color" content="#fff" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<link rel="stylesheet" media="all" href="<?php echo TEMPLATE_PATH; ?>customer/css/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.css" />
|
||||
|
||||
<style>
|
||||
.form-footer .btn {
|
||||
margin-top: 20px;
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
<?php include(TEMPLATE_PATH . '../../head.txt'); ?>
|
||||
</head>
|
||||
<body class="cust-help">
|
||||
<?php include(TEMPLATE_PATH . '../../header.txt'); ?>
|
||||
<div class="wrapper">
|
||||
<main class="main">
|
||||
<header class="header">
|
||||
<div class="contr">
|
||||
<div class="header__inner">
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>" class="header__logo">
|
||||
<?php echo $hesk_settings['hesk_title']; ?>
|
||||
</a>
|
||||
<?php if ($hesk_settings['can_sel_lang']): ?>
|
||||
<div class="header__lang">
|
||||
<form method="get" action="" style="margin:0;padding:0;border:0;white-space:nowrap;">
|
||||
<div class="dropdown-select center out-close">
|
||||
<select name="language" onchange="this.form.submit()">
|
||||
<?php hesk_listLanguages(); ?>
|
||||
</select>
|
||||
</div>
|
||||
<?php foreach (hesk_getCurrentGetParameters() as $key => $value): ?>
|
||||
<input type="hidden" name="<?php echo hesk_htmlentities($key); ?>"
|
||||
value="<?php echo hesk_htmlentities($value); ?>">
|
||||
<?php endforeach; ?>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="breadcrumbs">
|
||||
<div class="contr">
|
||||
<div class="breadcrumbs__inner">
|
||||
<a href="<?php echo $hesk_settings['site_url']; ?>">
|
||||
<span><?php echo $hesk_settings['site_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<a href="index.php">
|
||||
<span><?php echo $hesk_settings['hesk_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<a href="index.php?a=add">
|
||||
<span><?php echo $hesklang['submit_ticket'] ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<div class="last"><?php echo $categoryName; ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main__content">
|
||||
<div class="contr">
|
||||
<div style="margin-bottom: 20px;">
|
||||
<?php
|
||||
hesk3_show_messages($messages);
|
||||
?>
|
||||
</div>
|
||||
<h3 class="article__heading article__heading--form">
|
||||
<div class="icon-in-circle">
|
||||
<svg class="icon icon-submit-ticket">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-submit-ticket"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<span class="ml-1"><?php echo $hesklang['submit_a_support_request']; ?></span>
|
||||
</h3>
|
||||
<div class="article-heading-tip">
|
||||
<span><?php echo $hesklang['req_marked_with']; ?></span>
|
||||
<span class="label required"></span>
|
||||
</div>
|
||||
<form class="form form-submit-ticket ticket-create <?php echo count($_SESSION['iserror']) ? 'invalid' : ''; ?>" method="post" action="submit_ticket.php?submit=1" name="form1" id="form1" enctype="multipart/form-data">
|
||||
<section class="form-groups">
|
||||
<div class="form-group error">
|
||||
<label class="label required"><?php echo $hesklang['name']; ?></label>
|
||||
<input type="text" name="name" class="form-control <?php if (in_array('name',$_SESSION['iserror'])) {echo 'isEerror';} ?>" maxlength="50" value="<?php if (isset($_SESSION['c_name'])) {echo stripslashes(hesk_input($_SESSION['c_name']));} ?>" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="label <?php if ($hesk_settings['require_email']) { ?>required<?php } ?>"><?php echo $hesklang['email']; ?></label>
|
||||
<input type="email"
|
||||
class="form-control <?php if (in_array('email',$_SESSION['iserror'])) {echo 'isError';} elseif (in_array('email',$_SESSION['isnotice'])) {echo 'isNotice';} ?>"
|
||||
name="email" id="email" maxlength="1000"
|
||||
value="<?php if (isset($_SESSION['c_email'])) {echo stripslashes(hesk_input($_SESSION['c_email']));} ?>" <?php if($hesk_settings['detect_typos']) { echo ' onblur="HESK_FUNCTIONS.suggestEmail(\'email\', \'email_suggestions\', 0)"'; } ?>
|
||||
<?php if ($hesk_settings['require_email']) { ?>required<?php } ?>>
|
||||
<div id="email_suggestions"></div>
|
||||
</div>
|
||||
<?php if ($hesk_settings['confirm_email']): ?>
|
||||
<div class="form-group">
|
||||
<label class="label <?php if ($hesk_settings['require_email']) { ?>required<?php } ?>"><?php echo $hesklang['confemail']; ?></label>
|
||||
<input type="email"
|
||||
class="form-control <?php if (in_array('email2',$_SESSION['iserror'])) {echo 'isError';} elseif (in_array('email2',$_SESSION['isnotice'])) {echo 'isNotice';} ?>"
|
||||
name="email" id="email" maxlength="1000"
|
||||
value="<?php if (isset($_SESSION['c_email2'])) {echo stripslashes(hesk_input($_SESSION['c_email2']));} ?>"
|
||||
<?php if ($hesk_settings['require_email']) { ?>required<?php } ?>>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</section>
|
||||
<?php if ($hesk_settings['cust_urgency']): ?>
|
||||
<section class="param">
|
||||
<span class="label required"><?php echo $hesklang['priority']; ?></span>
|
||||
<div class="dropdown-select center out-close priority">
|
||||
<select name="priority">
|
||||
<?php if ($hesk_settings['select_pri']): ?>
|
||||
<option value=""><?php echo $hesklang['select']; ?></option>
|
||||
<?php endif; ?>
|
||||
<option value="low" <?php if(isset($_SESSION['c_priority']) && $_SESSION['c_priority']=='low') {echo 'selected';} ?>>
|
||||
<?php echo $hesklang['low']; ?>
|
||||
</option>
|
||||
<option value="medium" <?php if(isset($_SESSION['c_priority']) && $_SESSION['c_priority']=='medium') {echo 'selected';} ?>>
|
||||
<?php echo $hesklang['medium']; ?>
|
||||
</option>
|
||||
<option value="high" <?php if(isset($_SESSION['c_priority']) && $_SESSION['c_priority']=='high') {echo 'selected';} ?>>
|
||||
<?php echo $hesklang['high']; ?>
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
endif;
|
||||
if (count($visibleCustomFieldsBeforeMessage) > 0):
|
||||
?>
|
||||
<div class="divider"></div>
|
||||
<?php
|
||||
endif;
|
||||
hesk3_output_custom_fields($customFieldsBeforeMessage);
|
||||
|
||||
if ($hesk_settings['require_subject'] != -1 || $hesk_settings['require_message'] != -1): ?>
|
||||
<div class="divider"></div>
|
||||
<?php if ($hesk_settings['require_subject'] != -1): ?>
|
||||
<div class="form-group">
|
||||
<label class="label <?php if ($hesk_settings['require_subject']) { ?>required<?php } ?>">
|
||||
<?php echo $hesklang['subject']; ?>
|
||||
</label>
|
||||
<input type="text" class="form-control <?php if (in_array('subject',$_SESSION['iserror'])) {echo 'isError';} ?>"
|
||||
name="subject" maxlength="70"
|
||||
value="<?php if (isset($_SESSION['c_subject'])) {echo stripslashes(hesk_input($_SESSION['c_subject']));} ?>"
|
||||
<?php if ($hesk_settings['require_subject']) { ?>required<?php } ?>>
|
||||
</div>
|
||||
<?php
|
||||
endif;
|
||||
if ($hesk_settings['require_message'] != -1): ?>
|
||||
<div class="form-group">
|
||||
<label class="label <?php if ($hesk_settings['require_message']) { ?>required<?php } ?>">
|
||||
<?php echo $hesklang['message']; ?>
|
||||
</label>
|
||||
<textarea class="form-control <?php if (in_array('message',$_SESSION['iserror'])) {echo 'isError';} ?>"
|
||||
name="message" rows="12" cols="60"
|
||||
<?php if ($hesk_settings['require_message']) { ?>required<?php } ?>><?php if (isset($_SESSION['c_message'])) {echo stripslashes(hesk_input($_SESSION['c_message']));} ?></textarea>
|
||||
<?php if (has_public_kb() && $hesk_settings['kb_recommendanswers']): ?>
|
||||
<div class="kb-suggestions" style="margin: 0 auto; width: 100%; max-width: 752px; display: none">
|
||||
<div class="alert">
|
||||
<div class="alert__inner">
|
||||
<div class="alert__head">
|
||||
<h6 class="alert__title"><?php echo $hesklang['sc']; ?>:</h6>
|
||||
</div>
|
||||
<ul id="kb-suggestion-list" class="type--list">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div id="suggested-article-hidden-inputs" style="display: none">
|
||||
<?php // Will be populated with the list sent to the create ticket logic ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php
|
||||
endif;
|
||||
endif;
|
||||
|
||||
if (count($visibleCustomFieldsAfterMessage) > 0): ?>
|
||||
<div class="divider"></div>
|
||||
<?php
|
||||
endif;
|
||||
|
||||
hesk3_output_custom_fields($customFieldsAfterMessage);
|
||||
|
||||
if ($hesk_settings['attachments']['use']):
|
||||
?>
|
||||
<div class="divider"></div>
|
||||
<section class="param param--attach">
|
||||
<span class="label"><?php echo $hesklang['attachments']; ?></span>
|
||||
<div class="attach">
|
||||
<div>
|
||||
<?php
|
||||
for ($i=1;$i<=$hesk_settings['attachments']['max_number'];$i++)
|
||||
{
|
||||
$cls = ($i == 1 && in_array('attachments',$_SESSION['iserror'])) ? ' class="isError" ' : '';
|
||||
echo '<input type="file" name="attachment['.$i.']" size="50" '.$cls.' /><br />';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<div class="attach-tooltype">
|
||||
<span><?php echo sprintf($hesklang['maximum_x_attachments'], $hesk_settings['attachments']['max_number']); ?></span>
|
||||
<a onclick="HESK_FUNCTIONS.openWindow('file_limits.php',250,500)">
|
||||
<div class="tooltype right">
|
||||
<svg class="icon icon-info">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-info"></use>
|
||||
</svg>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<div class="divider"></div>
|
||||
<?php
|
||||
endif;
|
||||
|
||||
if ($hesk_settings['question_use'] || ($hesk_settings['secimg_use'] && $hesk_settings['recaptcha_use'] !== 1)):
|
||||
?>
|
||||
<div class="captcha-block">
|
||||
<h3><?php echo $hesklang['verify_header']; ?></h3>
|
||||
|
||||
<?php if ($hesk_settings['question_use']): ?>
|
||||
<div class="form-group">
|
||||
<label class="required"><?php echo $hesk_settings['question_ask']; ?></label>
|
||||
<?php
|
||||
$value = '';
|
||||
if (isset($_SESSION['c_question']))
|
||||
{
|
||||
$value = stripslashes(hesk_input($_SESSION['c_question']));
|
||||
}
|
||||
?>
|
||||
<input type="text" class="form-control <?php echo in_array('question',$_SESSION['iserror']) ? 'isError' : ''; ?>"
|
||||
name="question" size="20" value="<?php echo $value; ?>">
|
||||
</div>
|
||||
<?php
|
||||
endif;
|
||||
|
||||
if ($hesk_settings['secimg_use'] && $hesk_settings['recaptcha_use'] != 1)
|
||||
{
|
||||
?>
|
||||
<div class="form-group">
|
||||
<?php
|
||||
// SPAM prevention verified for this session
|
||||
if (isset($_SESSION['img_verified']))
|
||||
{
|
||||
echo $hesklang['vrfy'];
|
||||
}
|
||||
// Use reCAPTCHA V2?
|
||||
elseif ($hesk_settings['recaptcha_use'] == 2)
|
||||
{
|
||||
?>
|
||||
<div class="g-recaptcha" data-sitekey="<?php echo $hesk_settings['recaptcha_public_key']; ?>"></div>
|
||||
<?php
|
||||
}
|
||||
// At least use some basic PHP generated image (better than nothing)
|
||||
else
|
||||
{
|
||||
$cls = in_array('mysecnum',$_SESSION['iserror']) ? 'isError' : '';
|
||||
?>
|
||||
<img name="secimg" src="print_sec_img.php?<?php echo rand(10000,99999); ?>" width="150" height="40" alt="<?php echo $hesklang['sec_img']; ?>" title="<?php echo $hesklang['sec_img']; ?>" style="vertical-align:text-bottom">
|
||||
<a class="btn btn-refresh" href="javascript:void(0)" onclick="javascript:document.form1.secimg.src='print_sec_img.php?'+ ( Math.floor((90000)*Math.random()) + 10000);">
|
||||
<svg class="icon icon-refresh">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-refresh"></use>
|
||||
</svg>
|
||||
</a>
|
||||
<label class="required"><?php echo $hesklang['sec_enter']; ?></label>
|
||||
<input type="text" name="mysecnum" size="20" maxlength="5" class="form-control <?php echo $cls; ?>">
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<div class="divider"></div>
|
||||
<?php
|
||||
endif;
|
||||
|
||||
if ($hesk_settings['submit_notice']):
|
||||
?>
|
||||
<div class="alert">
|
||||
<div class="alert__inner">
|
||||
<b class="font-weight-bold"><?php echo $hesklang['before_submit']; ?>:</b>
|
||||
<ul>
|
||||
<li><?php echo $hesklang['all_info_in']; ?>.</li>
|
||||
<li><?php echo $hesklang['all_error_free']; ?>.</li>
|
||||
</ul>
|
||||
<br>
|
||||
<b class="font-weight-bold"><?php echo $hesklang['we_have']; ?>:</b>
|
||||
<ul>
|
||||
<li><?php echo hesk_htmlspecialchars(hesk_getClientIP()).' '.$hesklang['recorded_ip']; ?></li>
|
||||
<li><?php echo $hesklang['recorded_time']; ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
|
||||
<div class="form-footer">
|
||||
<input type="hidden" name="token" value="<?php hesk_token_echo(); ?>">
|
||||
<input type="hidden" name="category" value="<?php echo $categoryId; ?>">
|
||||
<button type="submit" class="btn btn-full" ripple="ripple" id="recaptcha-submit">
|
||||
<?php echo $hesklang['sub_ticket']; ?>
|
||||
</button>
|
||||
<!-- Do not delete or modify the code below, it is used to detect simple SPAM bots -->
|
||||
<input type="hidden" name="hx" value="3" /><input type="hidden" name="hy" value="">
|
||||
<!-- >
|
||||
<input type="text" name="phone" value="3">
|
||||
< -->
|
||||
</div>
|
||||
<?php
|
||||
// Use Invisible reCAPTCHA?
|
||||
if ($hesk_settings['secimg_use'] && $hesk_settings['recaptcha_use'] == 1 && ! isset($_SESSION['img_verified']))
|
||||
{
|
||||
?>
|
||||
<div class="g-recaptcha" data-sitekey="<?php echo $hesk_settings['recaptcha_public_key']; ?>" data-bind="recaptcha-submit" data-callback="recaptcha_submitForm"></div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
/*******************************************************************************
|
||||
The code below handles HESK licensing and must be included in the template.
|
||||
|
||||
Removing this code is a direct violation of the HESK End User License Agreement,
|
||||
will void all support and may result in unexpected behavior.
|
||||
|
||||
To purchase a HESK license and support future HESK development please visit:
|
||||
https://www.hesk.com/buy.php
|
||||
*******************************************************************************/
|
||||
$hesk_settings['hesk_license']('Qo8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPg0KICAgIDxwIGNsY
|
||||
XNzPSJ0ZXh0LWNlbnRlciI+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5oZXNrLmNvbSIgY
|
||||
2xhc3M9ImxpbmsiPkhlbHAgRGVzayBTb2Z0d2FyZTwvYT4gPHNwYW4gY2xhc3M9ImZvbnQtd2VpZ2h0L
|
||||
WJvbGQiPkhFU0s8L3NwYW4+LCBpbiBwYXJ0bmVyc2hpcCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vd3d3L
|
||||
nN5c2FpZC5jb20vP3V0bV9zb3VyY2U9SGVzayZhbXA7dXRtX21lZGl1bT1jcGMmYW1wO3V0bV9jYW1wY
|
||||
Wlnbj1IZXNrUHJvZHVjdF9Ub19IUCIgY2xhc3M9ImxpbmsiPlN5c0FpZCBUZWNobm9sb2dpZXM8L2E+P
|
||||
C9wPg0KPC9mb290ZXI+DQo=',"\104", "347db01e129edd4b3877f70ea6fed019462ae827");
|
||||
/*******************************************************************************
|
||||
END LICENSE CODE
|
||||
*******************************************************************************/
|
||||
?>
|
||||
</main>
|
||||
<!-- end main -->
|
||||
</div>
|
||||
<?php include(TEMPLATE_PATH . '../../footer.txt'); ?>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery-3.4.1.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/hesk_functions.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/svg4everybody.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.scrollbar.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/selectize.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.en.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.autocomplete.js"></script>
|
||||
<?php
|
||||
if (defined('RECAPTCHA'))
|
||||
{
|
||||
echo '<script src="https://www.google.com/recaptcha/api.js?hl='.$hesklang['RECAPTCHA'].'" async defer></script>';
|
||||
echo '<script type="text/javascript">
|
||||
function recaptcha_submitForm() {
|
||||
document.getElementById("form1").submit();
|
||||
}
|
||||
</script>';
|
||||
}
|
||||
?>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#select_category').selectize();
|
||||
});
|
||||
</script>
|
||||
<?php if (has_public_kb() && $hesk_settings['kb_recommendanswers']): ?>
|
||||
<script type="text/javascript">
|
||||
var noArticlesFoundText = <?php echo json_encode($hesklang['nsfo']); ?>;
|
||||
|
||||
$(document).ready(function() {
|
||||
HESK_FUNCTIONS.getKbTicketSuggestions($('input[name="subject"]'),
|
||||
$('textarea[name="message"]'),
|
||||
function(data) {
|
||||
$('.kb-suggestions').show();
|
||||
var $suggestionList = $('#kb-suggestion-list');
|
||||
var $suggestedArticlesHiddenInputsList = $('#suggested-article-hidden-inputs');
|
||||
$suggestionList.html('');
|
||||
$suggestedArticlesHiddenInputsList.html('');
|
||||
var format = '<li style="margin-bottom: 5px">' +
|
||||
'<a class="link" href="knowledgebase.php?article={0}">{1}</a>' +
|
||||
'<br>' +
|
||||
'{2}' +
|
||||
'</li>';
|
||||
var hiddenInputFormat = '<input type="hidden" name="suggested[]" value="{0}">';
|
||||
var results = false;
|
||||
$.each(data, function() {
|
||||
results = true;
|
||||
$suggestionList.append(format.replace('{0}', this.id).replace('{1}', this.subject).replace('{2}', this.contentPreview));
|
||||
$suggestedArticlesHiddenInputsList.append(hiddenInputFormat.replace('{0}', this.hiddenInputValue));
|
||||
});
|
||||
|
||||
if (!results) {
|
||||
$suggestionList.append('<li>' + noArticlesFoundText + '</li>');
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
</script>
|
||||
<?php endif; ?>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
2192
hesk/theme/hesk3/customer/css/app.css
Normal file
1
hesk/theme/hesk3/customer/css/app.min.css
vendored
Normal file
116
hesk/theme/hesk3/customer/error.php
Normal file
@@ -0,0 +1,116 @@
|
||||
<?php
|
||||
global $hesk_settings, $hesklang;
|
||||
/**
|
||||
* @var string $error
|
||||
* @var boolean $showDebugWarning
|
||||
* @var string $breadcrumbLink
|
||||
*/
|
||||
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title><?php echo $hesk_settings['hesk_title']; ?></title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
|
||||
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="author" content="" />
|
||||
<meta name="theme-color" content="#fff" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<link rel="stylesheet" media="all" href="<?php echo TEMPLATE_PATH; ?>customer/css/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.css" />
|
||||
<?php include(TEMPLATE_PATH . '../../head.txt'); ?>
|
||||
</head>
|
||||
|
||||
<body class="cust-help">
|
||||
<?php include(TEMPLATE_PATH . '../../header.txt'); ?>
|
||||
<div class="wrapper">
|
||||
<main class="main">
|
||||
<header class="header">
|
||||
<div class="contr">
|
||||
<div class="header__inner">
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>" class="header__logo">
|
||||
<?php echo $hesk_settings['hesk_title']; ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="breadcrumbs">
|
||||
<div class="contr">
|
||||
<div class="breadcrumbs__inner">
|
||||
<a href="<?php echo $hesk_settings['site_url']; ?>">
|
||||
<span><?php echo $hesk_settings['site_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<a href="<?php echo $breadcrumbLink; ?>">
|
||||
<span><?php echo $hesk_settings['hesk_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<div class="last"><?php echo $hesklang['error']; ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main__content">
|
||||
<div class="contr">
|
||||
<div class="alert danger">
|
||||
<div class="alert__inner">
|
||||
<div class="alert__head">
|
||||
<svg class="icon icon-warning">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-warning"></use>
|
||||
</svg>
|
||||
<h6 class="alert__title">
|
||||
<?php echo $hesklang['error']; ?>
|
||||
</h6>
|
||||
</div>
|
||||
<p class="alert__descr">
|
||||
<?php echo $error; ?>
|
||||
</p>
|
||||
<?php if ($showDebugWarning): ?>
|
||||
<div class="alert__descr">
|
||||
<div style="color:red;font-weight:bold"><?php echo $hesklang['warn']; ?></div>
|
||||
<?php echo $hesklang['dmod']; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<p class="alert__descr text-center">
|
||||
<a class="link" href="javascript:history.go(-1)"><?php echo $hesklang['back']; ?></a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
/*******************************************************************************
|
||||
The code below handles HESK licensing and must be included in the template.
|
||||
|
||||
Removing this code is a direct violation of the HESK End User License Agreement,
|
||||
will void all support and may result in unexpected behavior.
|
||||
|
||||
To purchase a HESK license and support future HESK development please visit:
|
||||
https://www.hesk.com/buy.php
|
||||
*******************************************************************************/
|
||||
$hesk_settings['hesk_license']('Qo8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPg0KICAgIDxwIGNsY
|
||||
XNzPSJ0ZXh0LWNlbnRlciI+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5oZXNrLmNvbSIgY
|
||||
2xhc3M9ImxpbmsiPkhlbHAgRGVzayBTb2Z0d2FyZTwvYT4gPHNwYW4gY2xhc3M9ImZvbnQtd2VpZ2h0L
|
||||
WJvbGQiPkhFU0s8L3NwYW4+LCBpbiBwYXJ0bmVyc2hpcCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vd3d3L
|
||||
nN5c2FpZC5jb20vP3V0bV9zb3VyY2U9SGVzayZhbXA7dXRtX21lZGl1bT1jcGMmYW1wO3V0bV9jYW1wY
|
||||
Wlnbj1IZXNrUHJvZHVjdF9Ub19IUCIgY2xhc3M9ImxpbmsiPlN5c0FpZCBUZWNobm9sb2dpZXM8L2E+P
|
||||
C9wPg0KPC9mb290ZXI+DQo=',"\104", "347db01e129edd4b3877f70ea6fed019462ae827");
|
||||
/*******************************************************************************
|
||||
END LICENSE CODE
|
||||
*******************************************************************************/
|
||||
?>
|
||||
</main>
|
||||
</div>
|
||||
<?php include(TEMPLATE_PATH . '../../footer.txt'); ?>
|
||||
</body>
|
||||
</html>
|
||||
BIN
hesk/theme/hesk3/customer/fonts/Lato-Bold.eot
Normal file
BIN
hesk/theme/hesk3/customer/fonts/Lato-Bold.ttf
Normal file
BIN
hesk/theme/hesk3/customer/fonts/Lato-Bold.woff
Normal file
BIN
hesk/theme/hesk3/customer/fonts/Lato-Bold.woff2
Normal file
BIN
hesk/theme/hesk3/customer/fonts/Lato-Regular.eot
Normal file
BIN
hesk/theme/hesk3/customer/fonts/Lato-Regular.ttf
Normal file
BIN
hesk/theme/hesk3/customer/fonts/Lato-Regular.woff
Normal file
BIN
hesk/theme/hesk3/customer/fonts/Lato-Regular.woff2
Normal file
3
hesk/theme/hesk3/customer/header.php
Normal file
@@ -0,0 +1,3 @@
|
||||
<?php
|
||||
/* Check if this is a valid include */
|
||||
if (!defined('IN_SCRIPT')) {die('Invalid attempt');}
|
||||
3
hesk/theme/hesk3/customer/img/chevron-down.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="8" height="6" viewBox="0 0 8 6">
|
||||
<path fill="#26282A" fill-rule="evenodd" d="M4.303 5.07l3.553-3.552a.434.434 0 0 0 .128-.309A.434.434 0 0 0 7.856.9L7.595.64a.437.437 0 0 0-.618 0L3.994 3.622 1.007.635a.434.434 0 0 0-.618 0L.128.897A.434.434 0 0 0 0 1.206c0 .117.045.226.128.309L3.684 5.07a.434.434 0 0 0 .31.127.434.434 0 0 0 .31-.127z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 398 B |
3
hesk/theme/hesk3/customer/img/label-critical.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" viewBox="0 0 16 12">
|
||||
<path fill="#e64342" fill-rule="nonzero" d="M12.992 6L16 12H1.719C.769 12 0 11.232 0 10.286V1.714C0 .768.77 0 1.719 0H16l-3.008 6z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 229 B |
3
hesk/theme/hesk3/customer/img/label-high.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" viewBox="0 0 16 12">
|
||||
<path fill="#ffc200" fill-rule="nonzero" d="M12.992 6L16 12H1.719C.769 12 0 11.232 0 10.286V1.714C0 .768.77 0 1.719 0H16l-3.008 6z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 229 B |
3
hesk/theme/hesk3/customer/img/label-low.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" viewBox="0 0 16 12">
|
||||
<path fill="#959EB0" fill-rule="nonzero" d="M12.992 6L16 12H1.719C.769 12 0 11.232 0 10.286V1.714C0 .768.77 0 1.719 0H16l-3.008 6z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 229 B |
3
hesk/theme/hesk3/customer/img/label-medium.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="12" viewBox="0 0 16 12">
|
||||
<path fill="#38bc7d" fill-rule="nonzero" d="M12.992 6L16 12H1.719C.769 12 0 11.232 0 10.286V1.714C0 .768.77 0 1.719 0H16l-3.008 6z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 229 B |
5
hesk/theme/hesk3/customer/img/no-photo.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="78" height="115" viewBox="0 0 78 115">
|
||||
<g fill="#FFF" fill-rule="nonzero">
|
||||
<path d="M76.141 115H1.857A1.859 1.859 0 0 1 0 113.142V68.955c0-2.721 1.839-5.175 4.685-6.247l20.146-7.589a1.857 1.857 0 0 1 2.27.82l10.746 18.876c.33.58.966.624 1.154.624.188 0 .822-.045 1.152-.623l10.75-18.876a1.857 1.857 0 0 1 2.33-.794l20.36 8.522c2.676 1.12 4.407 3.53 4.407 6.136v43.338A1.86 1.86 0 0 1 76.141 115zm-72.427-3.715h70.57V69.804c0-1.122-.813-2.16-2.126-2.709l-18.843-7.888-9.937 17.448c-.89 1.565-2.527 2.5-4.377 2.5-1.852 0-3.49-.933-4.38-2.5l-9.965-17.497-18.661 7.03c-1.386.52-2.28 1.606-2.28 2.767v42.33zM39 52c-13.233 0-24-10.118-24-22.554v-6.892C15 10.118 25.767 0 39 0 52.23 0 63 10.118 63 22.554v6.892C63 41.883 52.231 52 39 52zm0-48.247c-11.146 0-20.212 8.435-20.212 18.8v6.893c0 10.366 9.068 18.801 20.211 18.801 11.143 0 20.213-8.435 20.213-18.8v-6.893c0-10.366-9.068-18.801-20.213-18.801z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 973 B |
162
hesk/theme/hesk3/customer/img/sprite.svg
Normal file
@@ -0,0 +1,162 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg"><symbol id="icon-01-normal-knowledge-b" viewBox="0 0 24 20">
|
||||
<g fill-rule="evenodd">
|
||||
<path d="M0-2h24v24H0z"/>
|
||||
<path fill-opacity=".5" d="M22.978 4.004H19.98V.008c-3.12 0-5.947 1.266-7.993 3.313A11.266 11.266 0 0 0 3.996.008v3.996H.999c-.55 0-.999.45-.999.999V16.99c0 .55.45 1 .999 1H9.99a1.997 1.997 0 1 0 3.996 0h8.992c.549 0 .999-.45.999-1V5.003c0-.548-.45-1-1-1zm-9.99 1.143l.413-.414a9.238 9.238 0 0 1 4.581-2.512v8.61a13.158 13.158 0 0 0-4.995 1.858V5.147zM5.993 2.221a9.231 9.231 0 0 1 4.581 2.513l.414.414v7.54a13.148 13.148 0 0 0-4.995-1.857v-8.61zm15.984 13.771H1.998v-9.99h1.998v6.679c3.12 0 5.946 1.266 7.992 3.311a11.273 11.273 0 0 1 7.993-3.311V6.002h1.997v9.99z"/>
|
||||
</g>
|
||||
</symbol><symbol id="icon-01-normal-team" viewBox="0 0 24 17">
|
||||
<path fill-opacity=".5" fill-rule="evenodd" d="M16.079 9.659a8.437 8.437 0 0 0-2.294-1.496c.311-.31.58-.663.796-1.048a2.677 2.677 0 0 0 3.768-2.44 2.677 2.677 0 0 0-3.866-2.395A4.818 4.818 0 0 0 12.91.707 4.752 4.752 0 0 1 15.41 0a4.786 4.786 0 0 1 4.78 4.78c0 1.32-.537 2.517-1.405 3.383 2.962 1.303 5.035 4.265 5.035 7.702 0 .582-.472 1.053-1.054 1.053h-5c.582 0 1.054-.471 1.054-1.053 0-.343-.021-.682-.061-1.015h2.672a6.318 6.318 0 0 0-5.352-5.191zm-4.294-1.496c2.962 1.303 5.035 4.265 5.035 7.702 0 .582-.472 1.053-1.054 1.053H1.053A1.053 1.053 0 0 1 0 15.865c0-3.437 2.073-6.399 5.034-7.702A4.766 4.766 0 0 1 3.63 4.781 4.786 4.786 0 0 1 8.409 0a4.786 4.786 0 0 1 4.782 4.78c0 1.32-.538 2.517-1.406 3.383zM8.375 2A2.677 2.677 0 0 0 5.7 4.674C5.7 6.15 6.9 7.35 8.374 7.35c1.475 0 2.675-1.2 2.675-2.675C11.049 3.2 9.849 2 8.374 2zM2.1 14.95h12.43A6.313 6.313 0 0 0 8.316 9.7 6.313 6.313 0 0 0 2.1 14.95z"/>
|
||||
</symbol><symbol id="icon-01-normal-tickets" viewBox="0 0 18 22">
|
||||
<path fill-opacity=".5" fill-rule="evenodd" d="M15 3h1a2 2 0 0 1 2 2v15a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h1a2 2 0 0 1 2-2h.996C6.748.363 7.839 0 9 0c1.16 0 2.252.363 3.004 1H13a2 2 0 0 1 2 2zM3.268 5H2v15h14V5h-1.268A2 2 0 0 1 13 6H5a2 2 0 0 1-1.732-1zm3.889-2.345l-.3.345H5v1h8V3h-1.858l-.299-.345C10.515 2.277 9.811 2 9 2c-.81 0-1.515.277-1.843.655zM5 15v-2h6v2H5zm0-4V9h8v2H5z"/>
|
||||
</symbol><symbol id="icon-actions" viewBox="0 0 16 13">
|
||||
<path d="M5.818 7.273h8.727V5.09H5.818v2.182zm-1.454 0V5.09h-2.91v2.182h2.91zm1.454-5.818v2.181h8.727V1.455H5.818zm-1.454 0h-2.91v2.181h2.91V1.455zm1.454 9.454h8.727V8.727H5.818v2.182zm-1.454 0V8.727h-2.91v2.182h2.91zM1.454 0h13.091C15.35 0 16 .651 16 1.455v9.454c0 .803-.651 1.455-1.455 1.455H1.455A1.455 1.455 0 0 1 0 10.909V1.455C0 .65.651 0 1.455 0z"/>
|
||||
</symbol><symbol id="icon-add" viewBox="0 0 16 16">
|
||||
<path d="M8.727 7.273h2.182a.727.727 0 0 1 0 1.454H8.727v2.182a.727.727 0 0 1-1.454 0V8.727H5.09a.727.727 0 1 1 0-1.454h2.182V5.09a.727.727 0 1 1 1.454 0v2.182zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zm0-1.455a6.545 6.545 0 1 0 0-13.09 6.545 6.545 0 0 0 0 13.09z"/>
|
||||
</symbol><symbol id="icon-anonymize" viewBox="0 0 14 16">
|
||||
<path fill-rule="evenodd" d="M7.045 16C2.682 14.056.5 12.117.5 10.182V2.909c0-.727.364-.727 1.455-1.454C2.072 1.376 4.546 0 7.045 0c2.179 0 4 .727 5.091 1.455 1.091.727 1.455.727 1.455 1.454.02.212 0 6.182 0 7.273 0 1.94-2.182 3.879-6.546 5.818zm5.091-5.818l.002-.906.003-1.42.002-1.23a898.03 898.03 0 0 0 0-3.448c-.24-.15-.616-.381-.813-.513-1.074-.716-2.64-1.21-4.285-1.21-1.572 0-3.615.764-4.284 1.21-.196.13-.566.359-.806.508v7.009c0 1.097 1.62 2.595 5.091 4.22 3.47-1.621 5.09-3.119 5.09-4.22zM6.318 8.426L9.44 5.304l1.029 1.028-4.15 4.151-2.697-2.696 1.029-1.029 1.667 1.668z"/>
|
||||
</symbol><symbol id="icon-assign-no" viewBox="0 0 23 24">
|
||||
<path fill-rule="evenodd" d="M5.74 12.815a6.97 6.97 0 0 1-2.342-5.532A6.983 6.983 0 0 1 10.02 0a6.983 6.983 0 0 1 6.62 7.283 6.984 6.984 0 0 1-6.62 7.283c-3.65 0-6.62 2.375-6.62 5.296a1.324 1.324 0 0 1-2.649 0c0-3.06 2.028-5.72 4.99-7.047zm4.28-10.167a4.347 4.347 0 0 0-3.972 4.635 4.347 4.347 0 0 0 3.972 4.634 4.347 4.347 0 0 0 3.972-4.634 4.347 4.347 0 0 0-3.972-4.635zm7.945 17.763l-2.926 2.926-1.873-1.873 2.926-2.926-2.926-2.926 1.873-1.873 2.926 2.926 2.926-2.926 1.872 1.873-2.926 2.926 2.926 2.926-1.872 1.873-2.926-2.926z"/>
|
||||
</symbol><symbol id="icon-assign-plus" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M11.093 13.241H8.334v-1.765h2.76V8.717h1.765v2.759h2.758v1.765H12.86V16h-1.766v-2.759zM3.827 8.544a4.647 4.647 0 0 1-1.561-3.689A4.656 4.656 0 0 1 6.679 0a4.656 4.656 0 0 1 4.414 4.855A4.656 4.656 0 0 1 6.68 9.71c-2.434 0-4.413 1.584-4.413 3.531a.883.883 0 0 1-1.766 0c0-2.04 1.352-3.813 3.327-4.697zm2.852-6.778a2.898 2.898 0 0 0-2.648 3.09 2.898 2.898 0 0 0 2.648 3.089 2.898 2.898 0 0 0 2.649-3.09 2.898 2.898 0 0 0-2.649-3.09z"/>
|
||||
</symbol><symbol id="icon-assign" viewBox="0 0 19 22">
|
||||
<path fill-rule="evenodd" d="M13.566 12.8c2.983 1.32 5.027 3.99 5.027 7.062a1.324 1.324 0 0 1-2.648 0c0-2.921-2.97-5.296-6.62-5.296a1.35 1.35 0 0 1-.056 0c-3.65 0-6.62 2.375-6.62 5.296a1.324 1.324 0 0 1-2.649 0c0-3.06 2.028-5.72 4.99-7.047a6.97 6.97 0 0 1-2.342-5.532A6.983 6.983 0 0 1 9.27 0a6.983 6.983 0 0 1 6.62 7.283 6.97 6.97 0 0 1-2.323 5.516zM9.269 2.647a4.347 4.347 0 0 0-3.972 4.635 4.347 4.347 0 0 0 3.972 4.634 4.347 4.347 0 0 0 3.972-4.634A4.347 4.347 0 0 0 9.27 2.648z"/>
|
||||
</symbol><symbol id="icon-attach" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M9.074 3.635l1.14 1.123L5.16 9.89a.669.669 0 0 0 0 .934c.24.246.642.245.88 0l5.562-5.65a2.137 2.137 0 0 0 0-2.988c-.775-.79-2.145-.773-2.905.002L2.627 8.35a3.604 3.604 0 0 0 0 5.04c1.331 1.358 3.617 1.335 4.927-.001l7.08-7.19 1.14 1.123-7.078 7.188c-1.931 1.97-5.248 2.003-7.21 0a5.204 5.204 0 0 1 0-7.282l6.07-6.162c1.379-1.406 3.78-1.437 5.188 0a3.737 3.737 0 0 1 0 5.229l-5.559 5.646a2.217 2.217 0 0 1-3.168.003 2.27 2.27 0 0 1 .001-3.175l5.056-5.134z"/>
|
||||
</symbol><symbol id="icon-back" viewBox="0 0 20 6">
|
||||
<path fill-rule="evenodd" d="M4 4v2L0 3l4-3v2h16v2H4z"/>
|
||||
</symbol><symbol id="icon-calendar" viewBox="0 0 20 20">
|
||||
<path d="M18 6V3h-2v1h-2V3H6v1H4V3H2v3h16zm0 2H2v10h16V8zm-2-7h2a2 2 0 0 1 2 2v15a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h2V0h2v1h8V0h2v1zM7 12H5v-2h2v2zm4 0H9v-2h2v2zm4 0h-2v-2h2v2zm-8 4H5v-2h2v2zm4 0H9v-2h2v2z"/>
|
||||
</symbol><symbol id="icon-categories" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M0 0v5.455h5.455V0H0zm1.818 1.818h1.818v1.818H1.818V1.818zm5.455 0v1.818H20V1.818H7.273zM0 7.273v5.455h5.455V7.271H0zM1.818 9.09h1.818v1.818H1.818V9.091zm5.455 0v1.818H20V9.091H7.273zM0 14.545V20h5.455v-5.455H0zm1.818 1.819h1.818v1.818H1.818v-1.818zm5.455 0v1.818H20v-1.818H7.273z"/>
|
||||
</symbol><symbol id="icon-chevron-down" viewBox="0 0 8 6">
|
||||
<path fill-rule="evenodd" d="M4.303 5.07l3.553-3.552a.434.434 0 0 0 .128-.309A.434.434 0 0 0 7.856.9L7.595.64a.437.437 0 0 0-.618 0L3.994 3.622 1.007.635a.434.434 0 0 0-.618 0L.128.897A.434.434 0 0 0 0 1.206c0 .117.045.226.128.309L3.684 5.07a.434.434 0 0 0 .31.127.434.434 0 0 0 .31-.127z"/>
|
||||
</symbol><symbol id="icon-chevron-left" viewBox="0 0 20 20">
|
||||
<title>
|
||||
chevron-thin-left
|
||||
</title>
|
||||
<path d="M13.891 17.418c.268.272.268.709 0 .979s-.701.271-.969 0l-7.83-7.908a.697.697 0 0 1 0-.979l7.83-7.908c.268-.27.701-.27.969 0s.268.709 0 .979L6.75 10l7.141 7.418z"/>
|
||||
</symbol><symbol id="icon-chevron-right" viewBox="0 0 20 20">
|
||||
<title>
|
||||
chevron-thin-right
|
||||
</title>
|
||||
<path d="M13.25 10L6.109 2.58a.697.697 0 0 1 0-.979.68.68 0 0 1 .969 0l7.83 7.908a.697.697 0 0 1 0 .979l-7.83 7.908c-.268.271-.701.27-.969 0s-.268-.707 0-.979L13.25 10z"/>
|
||||
</symbol><symbol id="icon-close-mobile" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M1.414 15.414L0 14l6.293-6.293L0 1.414 1.414 0l6.293 6.293L14 0l1.414 1.414-6.293 6.293L15.414 14 14 15.414 7.707 9.121z"/>
|
||||
</symbol><symbol id="icon-close" viewBox="0 0 6 6">
|
||||
<path fill-rule="evenodd" d="M5.828 4.996L3.833 3l1.995-1.996a.589.589 0 0 0-.832-.832L3 2.167 1.004.172a.589.589 0 0 0-.832.832L2.167 3 .172 4.996a.589.589 0 0 0 .832.832L3 3.833l1.996 1.995a.589.589 0 0 0 .832-.832z"/>
|
||||
</symbol><symbol id="icon-cross" viewBox="0 0 6 6">
|
||||
<path d="M3.938 2.91l1.667 1.667a.727.727 0 0 1-1.028 1.028L2.909 3.938 1.242 5.605A.727.727 0 0 1 .213 4.577l1.668-1.668L.213 1.242A.727.727 0 1 1 1.242.213l1.667 1.668L4.577.213a.727.727 0 0 1 1.028 1.029L3.938 2.909z"/>
|
||||
</symbol><symbol id="icon-delete" viewBox="0 0 15 16">
|
||||
<path fill-rule="evenodd" d="M3.636 2.182v-.727C3.636.65 4.288 0 5.091 0h4.364c.803 0 1.454.651 1.454 1.455v.727h2.182c.803 0 1.454.651 1.454 1.454v1.455c0 .803-.65 1.454-1.454 1.454h-.058l-.67 8c0 .804-.65 1.455-1.454 1.455H3.636c-.803 0-1.454-.651-1.452-1.394l-.671-8.06h-.058A1.455 1.455 0 0 1 0 5.09V3.636c0-.803.651-1.454 1.455-1.454h2.181zm0 1.454H1.455v1.455H13.09V3.636H3.636zm-.664 2.91l.664 8h7.273l.003-.06.661-7.94H2.972zm6.483-4.364v-.727H5.09v.727h4.364z"/>
|
||||
</symbol><symbol id="icon-dismiss" viewBox="0 0 16 16">
|
||||
<path d="M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zm0-1.455a6.545 6.545 0 1 0 0-13.09 6.545 6.545 0 0 0 0 13.09zm0-7.574L9.543 5.43a.727.727 0 0 1 1.028 1.028L9.03 8l1.542 1.543a.727.727 0 1 1-1.028 1.028L8 9.03l-1.543 1.54A.727.727 0 1 1 5.43 9.543L6.97 8 5.43 6.457A.727.727 0 0 1 6.457 5.43L8 6.97z"/>
|
||||
</symbol><symbol id="icon-document" viewBox="0 0 20 24">
|
||||
<path d="M13.793 0l6.093 6.094v15.724A2.182 2.182 0 0 1 17.705 24H2.432A2.182 2.182 0 0 1 .25 21.818V2.182C.25.977 1.227 0 2.432 0h11.36zm-2.634 2.181H2.432v19.637h15.273l-.001-13.091h-4.363a2.182 2.182 0 0 1-2.182-2.182V2.181zm1.091 13.092v2.182H5.705v-2.182h6.545zm2.182-4.364v2.182H5.705v-2.182h8.727zM13.34 2.632v3.913h3.912L13.34 2.632z"/>
|
||||
</symbol><symbol id="icon-down" viewBox="0 0 8 6">
|
||||
<path fill-rule="evenodd" d="M4.303 5.07l3.553-3.552a.434.434 0 0 0 .128-.309A.434.434 0 0 0 7.856.9L7.595.64a.437.437 0 0 0-.618 0L3.994 3.622 1.007.635a.434.434 0 0 0-.618 0L.128.897A.434.434 0 0 0 0 1.206c0 .117.045.226.128.309L3.684 5.07a.434.434 0 0 0 .31.127.434.434 0 0 0 .31-.127z"/>
|
||||
</symbol><symbol id="icon-edit-ticket" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M10.242 3.556L5.357 8.44c-.324.286-.525.687-.557 1.054v1.708l1.651.002c.428-.03.825-.23 1.145-.595l4.85-4.85-2.204-2.203zm1.131-1.131l2.204 2.203.715-.715a.37.37 0 0 0 0-.522l-1.683-1.683a.365.365 0 0 0-.518 0l-.718.717zM16 8.8v5.6a1.6 1.6 0 0 1-1.6 1.6H1.6A1.6 1.6 0 0 1 0 14.4V1.6A1.6 1.6 0 0 1 1.6 0h5.6v1.6H1.6v12.8h12.8V8.8H16zM12.35 0c.524 0 1.026.21 1.392.579l1.681 1.68a1.97 1.97 0 0 1 0 2.786l-6.657 6.654c-.559.645-1.35 1.04-2.258 1.103H3.2v-.8l.003-2.572A3.238 3.238 0 0 1 4.26 7.275L10.956.58c.37-.371.87-.58 1.394-.58z"/>
|
||||
</symbol><symbol id="icon-edit" viewBox="0 0 16 16">
|
||||
<path d="M8.727 1.756L1.455 9.029v1.88h1.88l7.273-7.273-1.88-1.88zM9.242.213l2.909 2.91a.727.727 0 0 1 0 1.028l-8 8a.727.727 0 0 1-.515.213H.727A.727.727 0 0 1 0 11.636V8.727c0-.193.077-.378.213-.514l8-8a.727.727 0 0 1 1.029 0zM.8 16c-.442 0-.8-.326-.8-.727 0-.402.358-.728.8-.728h14.4c.442 0 .8.326.8.728 0 .401-.358.727-.8.727H.8z"/>
|
||||
</symbol><symbol id="icon-export" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M16 11.2v3.2a1.6 1.6 0 0 1-1.6 1.6H1.6A1.6 1.6 0 0 1 0 14.4v-3.2h1.6v3.2h12.8v-3.2H16zm-8.512-.015L4.229 7.927a.817.817 0 0 1 1.155-1.155l1.872 1.872V.817a.817.817 0 0 1 1.633 0v7.827l1.873-1.872a.817.817 0 0 1 1.155 1.155l-3.26 3.258a.814.814 0 0 1-1.17 0z"/>
|
||||
</symbol><symbol id="icon-eye-close" viewBox="0 0 16 12">
|
||||
<path fill-rule="evenodd" d="M.07 5.702c.094-.188.27-.5.526-.897.424-.657.925-1.313 1.501-1.928C3.774 1.088 5.747 0 8 0c2.253 0 4.226 1.088 5.903 2.877a13.596 13.596 0 0 1 2.027 2.825.667.667 0 0 1 0 .596c-.094.188-.27.5-.526.897a13.661 13.661 0 0 1-1.501 1.928C12.226 10.912 10.253 12 8 12c-2.253 0-4.226-1.088-5.903-2.877a13.661 13.661 0 0 1-1.5-1.928 9.934 9.934 0 0 1-.527-.897.667.667 0 0 1 0-.596zm1.646.77c.383.593.836 1.187 1.354 1.739 1.447 1.544 3.1 2.456 4.93 2.456 1.83 0 3.483-.912 4.93-2.456A12.342 12.342 0 0 0 14.573 6a12.342 12.342 0 0 0-1.643-2.21C11.483 2.244 9.83 1.332 8 1.332c-1.83 0-3.483.912-4.93 2.456A12.342 12.342 0 0 0 1.427 6c.084.145.18.303.29.472zM8 8.667a2.667 2.667 0 1 1 0-5.334 2.667 2.667 0 0 1 0 5.334zm0-1.334a1.333 1.333 0 1 0 0-2.666 1.333 1.333 0 0 0 0 2.666z"/>
|
||||
</symbol><symbol id="icon-eye-open" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M4.187 3.13C5.351 2.407 6.623 2 8 2c2.253 0 4.226 1.088 5.903 2.877a13.596 13.596 0 0 1 2.027 2.825.667.667 0 0 1 0 .596c-.094.188-.27.5-.526.897a13.661 13.661 0 0 1-1.501 1.928 11.81 11.81 0 0 1-.877.846L16 14.943 14.943 16l-3.13-3.13C10.649 13.593 9.377 14 8 14c-2.253 0-4.226-1.088-5.903-2.877a13.661 13.661 0 0 1-1.5-1.928 9.934 9.934 0 0 1-.527-.897.667.667 0 0 1 0-.596c.094-.188.27-.5.526-.897.424-.657.925-1.313 1.501-1.928.284-.303.576-.585.877-.846L0 1.057 1.057 0l3.13 3.13zm.975.975l1.556 1.556a2.667 2.667 0 0 1 3.62 3.62l1.742 1.742c.29-.246.574-.518.85-.812A12.342 12.342 0 0 0 14.573 8a12.342 12.342 0 0 0-1.643-2.21C11.483 4.244 9.83 3.332 8 3.332c-1 0-1.948.273-2.838.772zm2.585 2.586L9.31 8.253A1.333 1.333 0 0 0 7.747 6.69zm3.091 5.204l-1.556-1.556a2.667 2.667 0 0 1-3.62-3.62L3.92 4.976c-.29.246-.574.518-.85.812A12.342 12.342 0 0 0 1.427 8a12.342 12.342 0 0 0 1.643 2.21c1.447 1.545 3.1 2.457 4.93 2.457 1 0 1.948-.273 2.838-.772zM8.253 9.309L6.69 7.747A1.333 1.333 0 0 0 8.253 9.31z"/>
|
||||
</symbol><symbol id="icon-filters" viewBox="0 0 16 16">
|
||||
<path d="M9.237 8.404l4.2-4.584H2.563l4.2 4.584h2.474zM8.8 9.932H7.2v3.863l1.6-.573v-3.29zm-7.2-7.64h12.8v-.764H1.6v.764zm4 7.163L0 3.343V1.528C0 .684.716 0 1.6 0h12.8c.884 0 1.6.684 1.6 1.528v1.815l-5.6 6.112v4.826L5.6 16V9.455z"/>
|
||||
</symbol><symbol id="icon-folder" viewBox="0 0 22 18">
|
||||
<path d="M8 0c1.12 0 1.833.475 2.549 1.379.048.06.261.337.313.402.158.195.19.219.14.219H18a2 2 0 0 1 2 2v1a2 2 0 0 1 2 2l-.024.217-1.98 8.91A2 2 0 0 1 18 18H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h6zm11.976 7H4.036a4.6 4.6 0 0 0-.06.217L2.024 16H18l.024-.217L19.976 7zM8 2H2v4.89l.03-.13C2.31 5.621 2.832 5 4 5h14V4h-7.005c-.719-.004-1.186-.34-1.69-.963-.069-.086-.29-.373-.323-.416C8.607 2.15 8.384 2 8 2z" fill-rule="evenodd"/>
|
||||
</symbol><symbol id="icon-info" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M8 14.5a6.5 6.5 0 1 0 0-13 6.5 6.5 0 0 0 0 13zM8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zm1-4H7V7h2v5zM7.997 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"/>
|
||||
</symbol><symbol id="icon-inquiries" viewBox="0 0 40 40">
|
||||
<path fill-rule="evenodd" d="M39.275 4.563l-4.687 2.344-1.049-2.096 4.688-2.344 1.048 2.096zm-1.048 18.752l-4.688-2.344 1.048-2.096 4.688 2.344-1.048 2.096zm-2.993-11.596H40v2.344h-4.766v-2.344zM1.774 2.467l4.687 2.344-1.048 2.096L.726 4.564l1.048-2.097zm0 20.847l-1.05-2.096 4.688-2.344L6.46 20.97l-4.688 2.344zM0 11.719h4.766v2.344H0v-2.344zm16.484 25.937h7.032V40h-7.032v-2.344zm16.407-24.765c0 4.846-2.736 9.266-7.032 11.465v3.769h2.344v2.344H25.86v4.843H14.141V30.47h-2.344v-2.344h2.344v-3.769c-4.296-2.199-7.032-6.619-7.032-11.465C7.11 5.783 12.892 0 20 0s12.89 5.783 12.89 12.89zm-9.375 20.078v-2.5h-7.032v2.5h7.032zm-4.688-17.735c0 .646.526 1.172 1.172 1.172.646 0 1.172-.526 1.172-1.172a1.173 1.173 0 0 0-2.344 0zm2.344 12.891h2.344v-5.274l.7-.308c3.846-1.688 6.33-5.477 6.33-9.652 0-5.816-4.73-10.547-10.546-10.547-5.815 0-10.547 4.731-10.547 10.547 0 4.175 2.485 7.964 6.33 9.652l.701.308v5.274h2.344v-9.576a3.521 3.521 0 0 1-2.344-3.315A3.52 3.52 0 0 1 20 11.72a3.52 3.52 0 0 1 3.516 3.515c0 1.528-.98 2.83-2.344 3.315v9.576z"/>
|
||||
</symbol><symbol id="icon-knowledge" viewBox="0 0 24 20">
|
||||
<path fill-rule="evenodd" d="M22.978 4.004H19.98V.008c-3.12 0-5.947 1.266-7.993 3.313A11.266 11.266 0 0 0 3.996.008v3.996H.999c-.55 0-.999.45-.999.999V16.99c0 .55.45 1 .999 1H9.99a1.997 1.997 0 1 0 3.996 0h8.992c.549 0 .999-.45.999-1V5.003c0-.548-.45-1-1-1zm-9.99 1.143l.413-.414a9.238 9.238 0 0 1 4.581-2.512v8.61a13.158 13.158 0 0 0-4.995 1.858V5.147zM5.993 2.221a9.231 9.231 0 0 1 4.581 2.513l.414.414v7.54a13.148 13.148 0 0 0-4.995-1.857v-8.61zm15.984 13.771H1.998v-9.99h1.998v6.679c3.12 0 5.946 1.266 7.992 3.311a11.273 11.273 0 0 1 7.993-3.311V6.002h1.997v9.99z"/>
|
||||
</symbol><symbol id="icon-label" viewBox="0 0 16 12">
|
||||
<path d="M12.992 6L16 12H1.719C.769 12 0 11.232 0 10.286V1.714C0 .768.77 0 1.719 0H16l-3.008 6z"/>
|
||||
</symbol><symbol id="icon-lock" viewBox="0 0 14 16">
|
||||
<path fill-rule="evenodd" d="M3 6.4V4a4 4 0 1 1 8 0v2.4h.8c.855 0 1.6.621 1.6 1.467v6.666c0 .846-.745 1.467-1.6 1.467H2.2c-.855 0-1.6-.621-1.6-1.467V7.867C.6 7.02 1.345 6.4 2.2 6.4H3zm1.6 0h4.8V4a2.4 2.4 0 1 0-4.8 0v2.4zM2.2 8v6.4h9.6V8H2.2zm5 4.4a1 1 0 1 1 0-2 1 1 0 0 1 0 2z"/>
|
||||
</symbol><symbol id="icon-log-out" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M4.864 16H1.621A1.61 1.61 0 0 1 0 14.4V1.6C0 .716.726 0 1.621 0h3.243v1.6H1.621v12.8h3.243V16zm10.813-7.691l-3.259 3.302a.809.809 0 0 1-1.145-.01.835.835 0 0 1-.01-1.16l1.873-1.897H5.308a.822.822 0 0 1-.817-.828c0-.457.366-.827.817-.827h7.828L11.263 4.99a.835.835 0 0 1 .01-1.16.809.809 0 0 1 1.145-.01l3.259 3.302a.83.83 0 0 1 .247.593.83.83 0 0 1-.247.593z"/>
|
||||
</symbol><symbol id="icon-mail-small" viewBox="0 0 16 14">
|
||||
<path fill-rule="evenodd" d="M14.545 3.787V2.055H1.455v1.732L8 7.06l6.545-3.273zm0 1.626L8 8.686 1.455 5.413v6.823h13.09V5.413zM1.455.6h13.09C15.35.6 16 1.251 16 2.055v10.181c0 .804-.651 1.455-1.455 1.455H1.455A1.455 1.455 0 0 1 0 12.236V2.055C0 1.25.651.6 1.455.6z"/>
|
||||
</symbol><symbol id="icon-mail" viewBox="0 0 22 18">
|
||||
<path fill-rule="evenodd" d="M20 4.382V2H2v2.382l9 4.5 9-4.5zm0 2.237l-9 4.5-9-4.5V16h18V6.619zM2 0h18a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2z"/>
|
||||
</symbol><symbol id="icon-menu-mobile" viewBox="0 0 16 14">
|
||||
<path fill-rule="evenodd" d="M16 12v2H0v-2h16zm0-6v2H0V6h16zm0-6v2H0V0h16z"/>
|
||||
</symbol><symbol id="icon-menu" viewBox="0 0 20 14">
|
||||
<path fill-rule="evenodd" d="M4 8v2L0 7l4-3v2h16v2H4zm16 4v2H6v-2h14zm0-12v2H6V0h14z"/>
|
||||
</symbol><symbol id="icon-merge" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M10.967 10.667v3.81c0 .877-.646 1.523-1.524 1.523h-7.62C.947 16 .3 15.354.3 14.476V6.857c0-.878.646-1.524 1.524-1.524H5.11v-3.81C5.11.647 5.755 0 6.633 0h7.62c.877 0 1.523.646 1.523 1.524v7.619c0 .878-.646 1.524-1.524 1.524h-3.285zm-1.524 0h-2.81c-.878 0-1.523-.646-1.523-1.524V6.857H1.824v7.62h7.619v-3.81zm1.524-1.524h3.285v-7.62H6.633v3.81h2.81c.878 0 1.524.646 1.524 1.524v2.286zm-1.524 0V6.857h-2.81v2.286h2.81z"/>
|
||||
</symbol><symbol id="icon-move-to" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M11.227 1.756v2.608h2.608l-2.608-2.608zm2.909 4.062h-2.909a1.454 1.454 0 0 1-1.454-1.454V1.455H1.955v13.091h12.181V5.818zM1.955 0h9.573l4.063 4.063v10.483c0 .803-.652 1.454-1.455 1.454H1.955A1.454 1.454 0 0 1 .5 14.546V1.455C.5.652 1.151 0 1.955 0zm7.366 9.831H4.32a.335.335 0 0 1-.334-.334v-.786c0-.184.15-.334.334-.334h5.001l-.941-.941 1.029-1.028 2.342 2.342a.5.5 0 0 1 0 .708L9.409 11.8 8.38 10.772l.941-.941z"/>
|
||||
</symbol><symbol id="icon-no-photo" viewBox="0 0 78 115">
|
||||
<path d="M76.141 115H1.857A1.859 1.859 0 0 1 0 113.142V68.955c0-2.721 1.839-5.175 4.685-6.247l20.146-7.589a1.857 1.857 0 0 1 2.27.82l10.746 18.876c.33.58.966.624 1.154.624.188 0 .822-.045 1.152-.623l10.75-18.876a1.857 1.857 0 0 1 2.33-.794l20.36 8.522c2.676 1.12 4.407 3.53 4.407 6.136v43.338A1.86 1.86 0 0 1 76.141 115zm-72.427-3.715h70.57V69.804c0-1.122-.813-2.16-2.126-2.709l-18.843-7.888-9.937 17.448c-.89 1.565-2.527 2.5-4.377 2.5-1.852 0-3.49-.933-4.38-2.5l-9.965-17.497-18.661 7.03c-1.386.52-2.28 1.606-2.28 2.767v42.33zM39 52c-13.233 0-24-10.118-24-22.554v-6.892C15 10.118 25.767 0 39 0c13.23 0 24 10.118 24 22.554v6.892C63 41.883 52.231 52 39 52zm0-48.247c-11.146 0-20.212 8.435-20.212 18.8v6.893c0 10.366 9.068 18.801 20.211 18.801 11.143 0 20.213-8.435 20.213-18.8v-6.893c0-10.366-9.068-18.801-20.213-18.801z"/>
|
||||
</symbol><symbol id="icon-note" viewBox="0 0 16 16">
|
||||
<path d="M14.4 10.4V1.6H1.6v12.8h8.8V12a1.6 1.6 0 0 1 1.6-1.6h2.4zm-.331 1.6H12v2.069L14.069 12zM1.6 16A1.6 1.6 0 0 1 0 14.4V1.6A1.6 1.6 0 0 1 1.6 0h12.8A1.6 1.6 0 0 1 16 1.6v10.731L12.331 16H1.6zM4 12v-1.6h4.8V12H4zm0-3.2V7.2h8v1.6H4zm0-3.2V4h8v1.6H4z" fill-rule="evenodd"/>
|
||||
</symbol><symbol id="icon-notes-2" viewBox="0 0 16 16">
|
||||
<g fill-rule="evenodd">
|
||||
<path d="M0 0h16v16H0z"/>
|
||||
<path d="M14.4 10.4V1.6H1.6v12.8h8.8V12a1.6 1.6 0 0 1 1.6-1.6h2.4zm-.331 1.6H12v2.069L14.069 12zM1.6 16A1.6 1.6 0 0 1 0 14.4V1.6A1.6 1.6 0 0 1 1.6 0h12.8A1.6 1.6 0 0 1 16 1.6v10.731L12.331 16H1.6zM4 12v-1.6h4.8V12H4zm0-3.2V7.2h8v1.6H4zm0-3.2V4h8v1.6H4z"/>
|
||||
</g>
|
||||
</symbol><symbol id="icon-notification" viewBox="0 0 20 22">
|
||||
<path fill-rule="evenodd" d="M8.135 1.276a2 2 0 0 1 3.73.002C14.762 2.123 17 4.94 17 9c0 2.625.532 4.102 1.515 5.177.244.266 1.101 1.038 1.197 1.135l.288.292v3.41h-6.126a3.941 3.941 0 0 1-1.786 2.409 4.008 4.008 0 0 1-4.176 0c-1.042-.636-1.618-1.347-1.824-2.409H0v-3.41l.288-.292c.104-.105.956-.87 1.198-1.133C2.469 13.11 3 11.634 3 9c0-4.07 2.235-6.882 5.135-7.724zm.044 17.738c.14.263.382.461.775.701.642.392 1.45.392 2.092 0 .297-.181.53-.421.69-.7H8.18zM18 16.452c-.298-.275-.75-.695-.96-.925C15.706 14.07 15 12.107 15 9c0-3.769-2.34-5.988-5-5.988C7.333 3.012 5 5.22 5 9c0 3.118-.706 5.08-2.042 6.533-.21.228-.662.648-.958.92v.561h16v-.562z"/>
|
||||
</symbol><symbol id="icon-pause" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M8 16A8 8 0 1 1 8 0a8 8 0 0 1 0 16zm0-1.455a6.545 6.545 0 1 0 0-13.09 6.545 6.545 0 0 0 0 13.09zM5.818 4.364h1.455v7.272H5.818V4.364zm2.91 0h1.454v7.272H8.727V4.364z"/>
|
||||
</symbol><symbol id="icon-pin" viewBox="0 0 10 16">
|
||||
<path fill-rule="evenodd" d="M8 8V1.6h.8V0h-8v1.6h.8V8L0 9.6v1.6h4.16V16h1.28v-4.8H9.6V9.6L8 8zM2.24 9.6l.96-.96V1.6h3.2v7.04l.96.96H2.24z"/>
|
||||
</symbol><symbol id="icon-print" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M3.2 13.6H1.6A1.6 1.6 0 0 1 0 12V5.6A1.6 1.6 0 0 1 1.6 4h1.6V0h9.6v4h1.6A1.6 1.6 0 0 1 16 5.6V12a1.6 1.6 0 0 1-1.6 1.6h-1.6V16H3.2v-2.4zm0-1.6v-1.6h9.6V12h1.6V5.6H1.6V12h1.6zm1.6-8h6.4V1.6H4.8V4zm6.4 8H4.8v2.4h6.4V12zm1.6-5.6a.8.8 0 1 1 0 1.6.8.8 0 0 1 0-1.6z"/>
|
||||
</symbol><symbol id="icon-priority" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M3.498 15.396L.239 12.137a.817.817 0 0 1 1.155-1.155l1.872 1.873V5.027a.817.817 0 0 1 1.634 0v7.828l1.872-1.873a.817.817 0 0 1 1.155 1.155l-3.26 3.259a.814.814 0 0 1-1.169 0zM10.796.246a.814.814 0 0 1 1.17 0l3.258 3.26A.817.817 0 0 1 14.07 4.66l-1.873-1.872v7.828a.817.817 0 0 1-1.633 0V2.788L8.692 4.66a.817.817 0 0 1-1.155-1.154l3.259-3.26z"/>
|
||||
</symbol><symbol id="icon-refresh" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" d="M12.646 4C11.557 2.463 9.915 1.6 8 1.6A6.4 6.4 0 0 0 1.6 8H0a8 8 0 0 1 8-8c2.243 0 4.22.946 5.6 2.616V0h1.6v5.6H9.6V4h3.046zm-9.292 8C4.443 13.537 6.085 14.4 8 14.4A6.4 6.4 0 0 0 14.4 8H16a8 8 0 0 1-8 8c-2.243 0-4.22-.946-5.6-2.616V16H.8v-5.6h5.6V12H3.354z"/>
|
||||
</symbol><symbol id="icon-reports" viewBox="0 0 22 18">
|
||||
<path fill-rule="evenodd" d="M2 0h18a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2zm0 2v14h18V2H2zm6 12H6V8h2v6zm4 0h-2V4h2v10zm4 0h-2V7h2v7z"/>
|
||||
</symbol><symbol id="icon-search-type-knowledge" viewBox="0 0 24 20">
|
||||
<path d="M22.978 4.004H19.98V.008c-3.12 0-5.947 1.266-7.993 3.313A11.266 11.266 0 0 0 3.996.008v3.996H.999c-.55 0-.999.45-.999.999V16.99c0 .55.45 1 .999 1H9.99a1.997 1.997 0 1 0 3.996 0h8.992c.549 0 .999-.45.999-1V5.003c0-.548-.45-1-1-1zm-9.99 1.143l.413-.414a9.238 9.238 0 0 1 4.581-2.512v8.61a13.158 13.158 0 0 0-4.995 1.858V5.147zM5.993 2.221a9.231 9.231 0 0 1 4.581 2.513l.414.414v7.54a13.148 13.148 0 0 0-4.995-1.857v-8.61zm15.984 13.771H1.998v-9.99h1.998v6.679c3.12 0 5.946 1.266 7.992 3.311a11.273 11.273 0 0 1 7.993-3.311V6.002h1.997v9.99z" fill-rule="evenodd"/>
|
||||
</symbol><symbol id="icon-search-type-team" viewBox="0 0 24 17">
|
||||
<path fill-rule="evenodd" d="M16.079 9.659a8.437 8.437 0 0 0-2.294-1.496c.311-.31.58-.663.796-1.048a2.677 2.677 0 0 0 3.768-2.44 2.677 2.677 0 0 0-3.866-2.395A4.818 4.818 0 0 0 12.91.707 4.752 4.752 0 0 1 15.41 0a4.786 4.786 0 0 1 4.78 4.78c0 1.32-.537 2.517-1.405 3.383 2.962 1.303 5.035 4.265 5.035 7.702 0 .582-.472 1.053-1.054 1.053h-5c.582 0 1.054-.471 1.054-1.053 0-.343-.021-.682-.061-1.015h2.672a6.318 6.318 0 0 0-5.352-5.191zm-4.294-1.496c2.962 1.303 5.035 4.265 5.035 7.702 0 .582-.472 1.053-1.054 1.053H1.053A1.053 1.053 0 0 1 0 15.865c0-3.437 2.073-6.399 5.034-7.702A4.766 4.766 0 0 1 3.63 4.781 4.786 4.786 0 0 1 8.409 0a4.786 4.786 0 0 1 4.782 4.78c0 1.32-.538 2.517-1.406 3.383zM8.375 2A2.677 2.677 0 0 0 5.7 4.674C5.7 6.15 6.9 7.35 8.374 7.35c1.475 0 2.675-1.2 2.675-2.675C11.049 3.2 9.849 2 8.374 2zM2.1 14.95h12.43A6.313 6.313 0 0 0 8.316 9.7 6.313 6.313 0 0 0 2.1 14.95z"/>
|
||||
</symbol><symbol id="icon-search-type-templates" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M17.852 8l1.356.753c1.056.587 1.056 1.907 0 2.494L17.852 12l1.356.753c1.056.587 1.056 1.907 0 2.494l-8.051 4.473c-.673.373-1.641.373-2.314 0l-8.05-4.473c-1.057-.587-1.057-1.907 0-2.494L2.147 12l-1.356-.753c-1.056-.587-1.056-1.907 0-2.494L2.148 8 .792 7.247C-.264 6.66-.264 5.34.792 4.753L8.843.28c.673-.373 1.641-.373 2.314 0l8.05 4.473c1.057.587 1.057 1.907 0 2.494L17.853 8zm-2.059 1.144l-4.636 2.576c-.673.373-1.641.373-2.314 0L4.207 9.144 2.667 10l7.148 3.971a.616.616 0 0 0 .37 0L17.334 10l-1.541-.856zm0 4l-4.636 2.576c-.673.373-1.641.373-2.314 0l-4.636-2.576-1.54.856 7.148 3.971a.616.616 0 0 0 .37 0L17.334 14l-1.541-.856zM10.185 2.029a.616.616 0 0 0-.37 0L2.666 6l7.149 3.971a.616.616 0 0 0 .37 0L17.334 6l-7.149-3.971z"/>
|
||||
</symbol><symbol id="icon-search-type-tickets" viewBox="0 0 18 22">
|
||||
<path fill-rule="evenodd" d="M15 3h1a2 2 0 0 1 2 2v15a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h1a2 2 0 0 1 2-2h.996C6.748.363 7.839 0 9 0c1.16 0 2.252.363 3.004 1H13a2 2 0 0 1 2 2zM3.268 5H2v15h14V5h-1.268A2 2 0 0 1 13 6H5a2 2 0 0 1-1.732-1zm3.889-2.345l-.3.345H5v1h8V3h-1.858l-.299-.345C10.515 2.277 9.811 2 9 2c-.81 0-1.515.277-1.843.655zM5 15v-2h6v2H5zm0-4V9h8v2H5z"/>
|
||||
</symbol><symbol id="icon-search" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M14.32 12.906l5.387 5.387-1.414 1.414-5.387-5.387a8 8 0 1 1 1.414-1.414zM8 14A6 6 0 1 0 8 2a6 6 0 0 0 0 12z"/>
|
||||
</symbol><symbol id="icon-select" viewBox="0 0 6 12">
|
||||
<path d="M3 12l3-4H0zM3 0l3 4H0z" fill-rule="evenodd"/>
|
||||
</symbol><symbol id="icon-settings" viewBox="0 0 22 22">
|
||||
<path fill-rule="evenodd" d="M19.873 17.68l-2.217 2.217-2.838-.79-.811.334L12.55 22H9.415l-1.449-2.567-.81-.34-2.838.781-2.216-2.216.79-2.838-.334-.811L0 12.55V9.415l2.568-1.449.34-.81-.781-2.838 2.215-2.215 2.838.791.81-.334L9.446 0h3.136l1.449 2.568.81.34 2.837-.781 2.22 2.215-.792 2.839.335.81L22 9.447v3.136l-2.567 1.448-.34.813.78 2.837zm-2.892-2.972l.872-2.082L20 11.414v-.804l-2.147-1.22-.859-2.083.662-2.375-.569-.568-2.383.655-2.08-.872L11.413 2h-.804L9.39 4.147l-2.083.859-2.376-.663-.566.566.655 2.383-.872 2.08L2 10.583v.805l2.145 1.222.859 2.083-.662 2.376.567.567 2.383-.655 2.08.872 1.21 2.146h.805l1.222-2.145 2.083-.859 2.376.662.568-.568-.655-2.381zM11 15a4 4 0 1 1 0-8 4 4 0 0 1 0 8zm0-2a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/>
|
||||
</symbol><symbol id="icon-star-filled" viewBox="0 0 84 15">
|
||||
<path d="M8 12.438L3.056 15 4 9.573 0 5.729l5.528-.791L8 0l2.472 4.938L16 5.729l-4 3.844.944 5.427zm17 0L20.056 15 21 9.573l-4-3.844 5.528-.791L25 0l2.472 4.938L33 5.729l-4 3.844.944 5.427zm17 0L37.056 15 38 9.573l-4-3.844 5.528-.791L42 0l2.472 4.938L50 5.729l-4 3.844.944 5.427zm17 0L54.056 15 55 9.573l-4-3.844 5.528-.791L59 0l2.472 4.938L67 5.729l-4 3.844.944 5.427zm17 0L71.056 15 72 9.573l-4-3.844 5.528-.791L76 0l2.472 4.938L84 5.729l-4 3.844.944 5.427z" fill-rule="evenodd"/>
|
||||
</symbol><symbol id="icon-star-half" viewBox="0 0 16 15">
|
||||
<g fill-rule="evenodd">
|
||||
<path d="M8 0l2.472 4.938L16 5.729l-4 3.844.944 5.427L8 12.438 3.056 15 4 9.573 0 5.729l5.528-.791L8 0zm0 3.057L6.44 6.174l-3.491.5 2.525 2.427-.596 3.426L8 10.91l3.122 1.618-.596-3.426 2.525-2.427-3.49-.5L8 3.057z"/>
|
||||
<path d="M8 12.438L3.056 15 4 9.573 0 5.729l5.528-.791L8 0z"/>
|
||||
</g>
|
||||
</symbol><symbol id="icon-star-stroke" viewBox="0 0 84 15">
|
||||
<path d="M76 12.438L71.056 15 72 9.573l-4-3.844 5.528-.791L76 0l2.472 4.938L84 5.729l-4 3.844.944 5.427L76 12.438zm0-1.529l3.122 1.618-.596-3.426 2.525-2.427-3.49-.5L76 3.057l-1.56 3.117-3.491.5 2.525 2.427-.596 3.426L76 10.91zm-17 1.529L54.056 15 55 9.573l-4-3.844 5.528-.791L59 0l2.472 4.938L67 5.729l-4 3.844.944 5.427L59 12.438zm0-1.529l3.122 1.618-.596-3.426 2.525-2.427-3.49-.5L59 3.057l-1.56 3.117-3.491.5 2.525 2.427-.596 3.426L59 10.91zm-17 1.529L37.056 15 38 9.573l-4-3.844 5.528-.791L42 0l2.472 4.938L50 5.729l-4 3.844.944 5.427L42 12.438zm0-1.529l3.122 1.618-.596-3.426 2.525-2.427-3.49-.5L42 3.057l-1.56 3.117-3.491.5 2.525 2.427-.596 3.426L42 10.91zm-17 1.529L20.056 15 21 9.573l-4-3.844 5.528-.791L25 0l2.472 4.938L33 5.729l-4 3.844.944 5.427L25 12.438zm0-1.529l3.122 1.618-.596-3.426 2.525-2.427-3.49-.5L25 3.057l-1.56 3.117-3.491.5 2.525 2.427-.596 3.426L25 10.91zM8 12.438L3.056 15 4 9.573 0 5.729l5.528-.791L8 0l2.472 4.938L16 5.729l-4 3.844.944 5.427L8 12.438zm0-1.529l3.122 1.618-.596-3.426 2.525-2.427-3.49-.5L8 3.057 6.44 6.174l-3.491.5 2.525 2.427-.596 3.426L8 10.91z" fill-rule="evenodd"/>
|
||||
</symbol><symbol id="icon-status" viewBox="0 0 14 16">
|
||||
<path fill-rule="evenodd" d="M1.527 14.545V0h1.455v.727h10.272l-2.18 4.364 2.181 4.364H2.982v5.09h.727V16H.8v-1.455h.727zM2.982 8h7.92L9.447 5.091l1.454-2.91h-7.92V8z"/>
|
||||
</symbol><symbol id="icon-submit-ticket" viewBox="0 0 19 23">
|
||||
<path d="M12.508.5l5.628 5.628v14.524a2.015 2.015 0 0 1-2.015 2.015H2.015A2.015 2.015 0 0 1 0 20.652V2.515C0 1.402.902.5 2.015.5h10.493zm-2.433 2.015h-8.06v18.137h14.106V8.56h-4.03a2.015 2.015 0 0 1-2.015-2.015l-.001-4.03zm0 7.053v3.023h3.023v2.015h-3.022v3.023H8.06v-3.023H5.038v-2.015H8.06V9.568h2.015zm2.015-6.636v3.613h3.614L12.09 2.932z"/>
|
||||
</symbol><symbol id="icon-support" viewBox="0 0 40 40">
|
||||
<path fill-rule="evenodd" d="M25.014 22.049h2.159v5.224h-2.159V22.05zm1.08-.42c-.793 0-1.3-.478-1.3-1.099 0-.62.507-1.098 1.3-1.098.792 0 1.299.44 1.299 1.06 0 .66-.507 1.137-1.3 1.137zM13.825 9.705c.745 0 1.26.487 1.26 1.127 0 .63-.515 1.146-1.26 1.146s-1.261-.516-1.261-1.146c0-.64.516-1.127 1.26-1.127zm-.392-2.913c-.41 0-.793.248-.993.65l-1.7-.85c.487-.918 1.451-1.548 2.98-1.548 1.499 0 2.617.63 2.617 1.824 0 1.461-1.529 1.72-1.529 2.455h-1.967c0-1.156 1.232-1.5 1.232-2.082 0-.296-.286-.449-.64-.449zm14.498 6.928H40v19.335h-4.312V40l-7.857-6.945H12.068V19.423L4.312 26.28v-6.946H0V0h27.932v13.72zm-16.65 3.27h.786v-3.27h13.52V2.344H2.344V16.99h4.312v4.088l4.625-4.088zm26.374 13.721V16.064H14.412v14.647H28.72l4.625 4.089v-4.09h4.312z"/>
|
||||
</symbol><symbol id="icon-tag" viewBox="0 0 16 12">
|
||||
<path fill-rule="evenodd" d="M5.238.3h9.327C15.358.3 16 .942 16 1.735v8.61c0 .792-.642 1.434-1.435 1.434H5.238c-.362 0-.525-.134-.858-.49a7.035 7.035 0 0 1-.41-.486L0 6.04l.383-.459 3.551-4.258a5.836 5.836 0 0 1 .475-.584C4.686.45 4.891.3 5.24.3zm.108 1.541a5.826 5.826 0 0 0-.274.353L1.868 6.04 5.09 9.908a6.324 6.324 0 0 0 .37.436h9.104v-8.61H5.441c-.029.032-.061.067-.095.107zm3.32 4.546L11.753 3.3l1.017 1.017-4.104 4.104L6 5.755l1.017-1.017 1.649 1.65z"/>
|
||||
</symbol><symbol id="icon-team" viewBox="0 0 24 17">
|
||||
<path fill-rule="evenodd" d="M16.079 9.659a8.437 8.437 0 0 0-2.294-1.496c.311-.31.58-.663.796-1.048a2.677 2.677 0 0 0 3.768-2.44 2.677 2.677 0 0 0-3.866-2.395A4.818 4.818 0 0 0 12.91.707 4.752 4.752 0 0 1 15.41 0a4.786 4.786 0 0 1 4.78 4.78c0 1.32-.537 2.517-1.405 3.383 2.962 1.303 5.035 4.265 5.035 7.702 0 .582-.472 1.053-1.054 1.053h-5c.582 0 1.054-.471 1.054-1.053 0-.343-.021-.682-.061-1.015h2.672a6.318 6.318 0 0 0-5.352-5.191zm-4.294-1.496c2.962 1.303 5.035 4.265 5.035 7.702 0 .582-.472 1.053-1.054 1.053H1.053A1.053 1.053 0 0 1 0 15.865c0-3.437 2.073-6.399 5.034-7.702A4.766 4.766 0 0 1 3.63 4.781 4.786 4.786 0 0 1 8.409 0a4.786 4.786 0 0 1 4.782 4.78c0 1.32-.538 2.517-1.406 3.383zM8.375 2A2.677 2.677 0 0 0 5.7 4.674C5.7 6.15 6.9 7.35 8.374 7.35c1.475 0 2.675-1.2 2.675-2.675C11.049 3.2 9.849 2 8.374 2zM2.1 14.95h12.43A6.313 6.313 0 0 0 8.316 9.7 6.313 6.313 0 0 0 2.1 14.95z"/>
|
||||
</symbol><symbol id="icon-templates" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd" d="M17.852 8l1.356.753c1.056.587 1.056 1.907 0 2.494L17.852 12l1.356.753c1.056.587 1.056 1.907 0 2.494l-8.051 4.473c-.673.373-1.641.373-2.314 0l-8.05-4.473c-1.057-.587-1.057-1.907 0-2.494L2.147 12l-1.356-.753c-1.056-.587-1.056-1.907 0-2.494L2.148 8 .792 7.247C-.264 6.66-.264 5.34.792 4.753L8.843.28c.673-.373 1.641-.373 2.314 0l8.05 4.473c1.057.587 1.057 1.907 0 2.494L17.853 8zm-2.059 1.144l-4.636 2.576c-.673.373-1.641.373-2.314 0L4.207 9.144 2.667 10l7.148 3.971a.616.616 0 0 0 .37 0L17.334 10l-1.541-.856zm0 4l-4.636 2.576c-.673.373-1.641.373-2.314 0l-4.636-2.576-1.54.856 7.148 3.971a.616.616 0 0 0 .37 0L17.334 14l-1.541-.856zM10.185 2.029a.616.616 0 0 0-.37 0L2.666 6l7.149 3.971a.616.616 0 0 0 .37 0L17.334 6l-7.149-3.971z"/>
|
||||
</symbol><symbol id="icon-tick" viewBox="0 0 11 8">
|
||||
<path fill-rule="evenodd" d="M9.043 0L3.246 5.128 1.623 3.692 0 5.128 3.246 8l7.42-6.564z"/>
|
||||
</symbol><symbol id="icon-tickets" viewBox="0 0 18 22">
|
||||
<path fill-rule="evenodd" d="M15 3h1a2 2 0 0 1 2 2v15a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h1a2 2 0 0 1 2-2h.996C6.748.363 7.839 0 9 0c1.16 0 2.252.363 3.004 1H13a2 2 0 0 1 2 2zM3.268 5H2v15h14V5h-1.268A2 2 0 0 1 13 6H5a2 2 0 0 1-1.732-1zm3.889-2.345l-.3.345H5v1h8V3h-1.858l-.299-.345C10.515 2.277 9.811 2 9 2c-.81 0-1.515.277-1.843.655zM5 15v-2h6v2H5zm0-4V9h8v2H5z"/>
|
||||
</symbol><symbol id="icon-tools" viewBox="0 0 22 22">
|
||||
<path fill-rule="evenodd" d="M19.566 13.369a.856.856 0 0 0-.607-.254h-.002a.856.856 0 0 0-.607.252l-2.09 2.097a.86.86 0 0 0 .001 1.216.856.856 0 0 0 1.213-.001l1.481-1.487.799.806c.664.668.665 1.755.003 2.424l-1.339 1.351a1.701 1.701 0 0 1-1.214.509h-.003c-.459 0-.89-.18-1.213-.504l-3.782-3.785 8.481-8.48A4.376 4.376 0 0 0 21.974 4.4c0-1.176-.457-2.28-1.287-3.112A4.358 4.358 0 0 0 17.582 0a4.359 4.359 0 0 0-3.106 1.29l-3.483 3.489-3.754-3.766A3.404 3.404 0 0 0 4.812.003h-.003A3.4 3.4 0 0 0 2.384 1.01L1.026 2.37a3.445 3.445 0 0 0 0 4.86l3.762 3.766L2.2 13.588a.857.857 0 0 0-.22.377l-1.928 6.94a.86.86 0 0 0 1.06 1.057l6.744-1.919a.853.853 0 0 0 .547-.249l2.588-2.587 3.783 3.786A3.403 3.403 0 0 0 17.2 22h.007a3.403 3.403 0 0 0 2.429-1.016l1.338-1.352a3.449 3.449 0 0 0-.004-4.845l-1.404-1.418zm-5.348-9.391l3.784 3.792-1.232 1.232-3.784-3.79 1.232-1.234zm3.364-2.26c.715 0 1.387.28 1.893.786a2.67 2.67 0 0 1 .784 1.897c0 .716-.279 1.39-.784 1.896l-.259.26-3.786-3.794.259-.259a2.657 2.657 0 0 1 1.893-.786zM2.239 6.015a1.723 1.723 0 0 1 0-2.43l1.358-1.36a1.702 1.702 0 0 1 1.212-.504h.002c.458 0 .89.18 1.214.506l.814.818-1.508 1.511a.86.86 0 0 0 .606 1.467c.22 0 .44-.084.607-.252l1.507-1.51L9.78 5.993 6 9.781 2.24 6.015zm-.124 13.876l1.136-4.088 2.919 2.934-4.055 1.154zm5.7-1.934l-3.769-3.788 7.728-7.742 3.782 3.79-7.741 7.74z"/>
|
||||
</symbol><symbol id="icon-warning" viewBox="0 0 486.463 486.463">
|
||||
<path d="M243.225 333.382c-13.6 0-25 11.4-25 25s11.4 25 25 25c13.1 0 25-11.4 24.4-24.4.6-14.3-10.7-25.6-24.4-25.6z"/>
|
||||
<path d="M474.625 421.982c15.7-27.1 15.8-59.4.2-86.4l-156.6-271.2c-15.5-27.3-43.5-43.5-74.9-43.5s-59.4 16.3-74.9 43.4l-156.8 271.5c-15.6 27.3-15.5 59.8.3 86.9 15.6 26.8 43.5 42.9 74.7 42.9h312.8c31.3 0 59.4-16.3 75.2-43.6zm-34-19.6c-8.7 15-24.1 23.9-41.3 23.9h-312.8c-17 0-32.3-8.7-40.8-23.4-8.6-14.9-8.7-32.7-.1-47.7l156.8-271.4c8.5-14.9 23.7-23.7 40.9-23.7 17.1 0 32.4 8.9 40.9 23.8l156.7 271.4c8.4 14.6 8.3 32.2-.3 47.1z"/>
|
||||
<path d="M237.025 157.882c-11.9 3.4-19.3 14.2-19.3 27.3.6 7.9 1.1 15.9 1.7 23.8 1.7 30.1 3.4 59.6 5.1 89.7.6 10.2 8.5 17.6 18.7 17.6s18.2-7.9 18.7-18.2c0-6.2 0-11.9.6-18.2 1.1-19.3 2.3-38.6 3.4-57.9.6-12.5 1.7-25 2.3-37.5 0-4.5-.6-8.5-2.3-12.5-5.1-11.2-17-16.9-28.9-14.1z"/>
|
||||
</symbol></svg>
|
||||
|
After Width: | Height: | Size: 35 KiB |
280
hesk/theme/hesk3/customer/index.php
Normal file
@@ -0,0 +1,280 @@
|
||||
<?php
|
||||
global $hesk_settings, $hesklang;
|
||||
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
|
||||
/**
|
||||
* @var array $top_articles
|
||||
* @var array $latest_articles
|
||||
* @var array $service_messages
|
||||
*/
|
||||
|
||||
$service_message_type_to_class = array(
|
||||
'0' => 'none',
|
||||
'1' => 'success',
|
||||
'2' => '', // Info has no CSS class
|
||||
'3' => 'warning',
|
||||
'4' => 'danger'
|
||||
);
|
||||
|
||||
require_once(TEMPLATE_PATH . 'customer/util/alerts.php');
|
||||
require_once(TEMPLATE_PATH . 'customer/util/kb-search.php');
|
||||
require_once(TEMPLATE_PATH . 'customer/util/rating.php');
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title><?php echo $hesk_settings['hesk_title']; ?></title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
|
||||
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="author" content="" />
|
||||
<meta name="theme-color" content="#fff" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<link rel="stylesheet" media="all" href="<?php echo TEMPLATE_PATH; ?>customer/css/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.css" />
|
||||
|
||||
<style>
|
||||
<?php outputSearchStyling(); ?>
|
||||
</style>
|
||||
<?php include(TEMPLATE_PATH . '../../head.txt'); ?>
|
||||
</head>
|
||||
|
||||
<body class="cust-help">
|
||||
<?php include(TEMPLATE_PATH . '../../header.txt'); ?>
|
||||
<div class="wrapper">
|
||||
<main class="main">
|
||||
<header class="header">
|
||||
<div class="contr">
|
||||
<div class="header__inner">
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>" class="header__logo">
|
||||
<?php echo $hesk_settings['hesk_title']; ?>
|
||||
</a>
|
||||
<?php if ($hesk_settings['can_sel_lang']): ?>
|
||||
<div class="header__lang">
|
||||
<form method="get" action="" style="margin:0;padding:0;border:0;white-space:nowrap;">
|
||||
<div class="dropdown-select center out-close">
|
||||
<select name="language" onchange="this.form.submit()">
|
||||
<?php hesk_listLanguages(); ?>
|
||||
</select>
|
||||
</div>
|
||||
<?php foreach (hesk_getCurrentGetParameters() as $key => $value): ?>
|
||||
<input type="hidden" name="<?php echo hesk_htmlentities($key); ?>"
|
||||
value="<?php echo hesk_htmlentities($value); ?>">
|
||||
<?php endforeach; ?>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="breadcrumbs">
|
||||
<div class="contr">
|
||||
<div class="breadcrumbs__inner">
|
||||
<a href="<?php echo $hesk_settings['site_url']; ?>">
|
||||
<span><?php echo $hesk_settings['site_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<div class="last"><?php echo $hesk_settings['hesk_title']; ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main__content">
|
||||
<div class="contr">
|
||||
<div class="help-search">
|
||||
<h2 class="search__title"><?php echo $hesklang['how_can_we_help']; ?></h2>
|
||||
<?php displayKbSearch(); ?>
|
||||
</div>
|
||||
<?php hesk3_show_messages($service_messages); ?>
|
||||
<div class="nav">
|
||||
<a href="index.php?a=add" class="navlink">
|
||||
<div class="icon-in-circle">
|
||||
<svg class="icon icon-submit-ticket">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-submit-ticket"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h5 class="navlink__title"><?php echo $hesklang['submit_ticket']; ?></h5>
|
||||
<div class="navlink__descr"><?php echo $hesklang['open_ticket']; ?></div>
|
||||
</div>
|
||||
</a>
|
||||
<a href="ticket.php" class="navlink">
|
||||
<div class="icon-in-circle">
|
||||
<svg class="icon icon-document">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-document"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h5 class="navlink__title"><?php echo $hesklang['view_existing_tickets']; ?></h5>
|
||||
<div class="navlink__descr"><?php echo $hesklang['vet']; ?></div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<?php if ($hesk_settings['kb_enable']): ?>
|
||||
<article class="article">
|
||||
<h3 class="article__heading">
|
||||
<a href="knowledgebase.php">
|
||||
<div class="icon-in-circle">
|
||||
<svg class="icon icon-knowledge">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-knowledge"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<span><?php echo $hesklang['kb_text']; ?></span>
|
||||
</a>
|
||||
</h3>
|
||||
<div class="tabbed__head">
|
||||
<ul class="tabbed__head_tabs">
|
||||
<?php
|
||||
if (count($top_articles) > 0):
|
||||
?>
|
||||
<li class="current" data-link="tab1">
|
||||
<span><?php echo $hesklang['popart']; ?></span>
|
||||
</li>
|
||||
<?php
|
||||
endif;
|
||||
if (count($latest_articles) > 0):
|
||||
?>
|
||||
<li data-link="tab2">
|
||||
<span><?php echo $hesklang['latart']; ?></span>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabbed__tabs">
|
||||
<?php if (count($top_articles) > 0): ?>
|
||||
<div class="tabbed__tabs_tab is-visible" data-tab="tab1">
|
||||
<?php foreach ($top_articles as $article): ?>
|
||||
<a href="knowledgebase.php?article=<?php echo $article['id']; ?>" class="preview">
|
||||
<div class="icon-in-circle">
|
||||
<svg class="icon icon-knowledge">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-knowledge"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="preview__text">
|
||||
<h5 class="preview__title"><?php echo $article['subject'] ?></h5>
|
||||
<p>
|
||||
<span class="lightgrey"><?php echo $hesklang['kb_cat']; ?>:</span>
|
||||
<span class="ml-1"><?php echo $article['category']; ?></span>
|
||||
</p>
|
||||
<p class="navlink__descr">
|
||||
<?php echo $article['content_preview']; ?>
|
||||
</p>
|
||||
</div>
|
||||
<div class="rate">
|
||||
<?php
|
||||
if ($hesk_settings['kb_rating']) {
|
||||
echo hesk3_get_customer_rating($article['rating']);
|
||||
}
|
||||
|
||||
if ($hesk_settings['kb_views'] && $hesk_settings['kb_rating']):
|
||||
?>
|
||||
<span class="lightgrey">(<?php echo $article['views']; ?>)</span>
|
||||
<?php elseif ($hesk_settings['kb_views']): ?>
|
||||
<span class="lightgrey">
|
||||
<?php echo $hesklang['views'] ?>:
|
||||
<?php echo $article['views']; ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php
|
||||
endif;
|
||||
if (count($latest_articles) > 0):
|
||||
?>
|
||||
<div class="tabbed__tabs_tab <?php echo count($top_articles) === 0 ? 'is-visible' : ''; ?>" data-tab="tab2">
|
||||
<?php foreach ($latest_articles as $article): ?>
|
||||
<a href="knowledgebase.php?article=<?php echo $article['id']; ?>" class="preview">
|
||||
<div class="icon-in-circle">
|
||||
<svg class="icon icon-knowledge">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-knowledge"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="preview__text">
|
||||
<h5 class="preview__title"><?php echo $article['subject'] ?></h5>
|
||||
<p>
|
||||
<span class="lightgrey"><?php echo $hesklang['kb_cat']; ?>:</span>
|
||||
<span class="ml-1"><?php echo $article['category']; ?></span>
|
||||
</p>
|
||||
<p class="navlink__descr">
|
||||
<?php echo $article['content_preview']; ?>
|
||||
</p>
|
||||
</div>
|
||||
<div class="rate">
|
||||
<?php
|
||||
if ($hesk_settings['kb_rating']) {
|
||||
echo hesk3_get_customer_rating($article['rating']);
|
||||
}
|
||||
if ($hesk_settings['kb_views'] && $hesk_settings['kb_rating']): ?>
|
||||
<span class="lightgrey">(<?php echo $article['views']; ?>)</span>
|
||||
<?php elseif ($hesk_settings['kb_views']): ?>
|
||||
<span class="lightgrey">
|
||||
<?php echo $hesklang['views'] ?>:
|
||||
<?php echo $article['views']; ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="article__footer">
|
||||
<a href="knowledgebase.php" class="btn btn--blue-border" ripple="ripple"><?php echo $hesklang['viewkb']; ?></a>
|
||||
</div>
|
||||
</article>
|
||||
<?php
|
||||
endif;
|
||||
if ($hesk_settings['alink']):
|
||||
?>
|
||||
<div class="article__footer">
|
||||
<a href="<?php echo $hesk_settings['admin_dir']; ?>/" class="link"><?php echo $hesklang['ap']; ?></a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
/*******************************************************************************
|
||||
The code below handles HESK licensing and must be included in the template.
|
||||
|
||||
Removing this code is a direct violation of the HESK End User License Agreement,
|
||||
will void all support and may result in unexpected behavior.
|
||||
|
||||
To purchase a HESK license and support future HESK development please visit:
|
||||
https://www.hesk.com/buy.php
|
||||
*******************************************************************************/
|
||||
$hesk_settings['hesk_license']('Qo8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPg0KICAgIDxwIGNsY
|
||||
XNzPSJ0ZXh0LWNlbnRlciI+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5oZXNrLmNvbSIgY
|
||||
2xhc3M9ImxpbmsiPkhlbHAgRGVzayBTb2Z0d2FyZTwvYT4gPHNwYW4gY2xhc3M9ImZvbnQtd2VpZ2h0L
|
||||
WJvbGQiPkhFU0s8L3NwYW4+LCBpbiBwYXJ0bmVyc2hpcCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vd3d3L
|
||||
nN5c2FpZC5jb20vP3V0bV9zb3VyY2U9SGVzayZhbXA7dXRtX21lZGl1bT1jcGMmYW1wO3V0bV9jYW1wY
|
||||
Wlnbj1IZXNrUHJvZHVjdF9Ub19IUCIgY2xhc3M9ImxpbmsiPlN5c0FpZCBUZWNobm9sb2dpZXM8L2E+P
|
||||
C9wPg0KPC9mb290ZXI+DQo=',"\104", "347db01e129edd4b3877f70ea6fed019462ae827");
|
||||
/*******************************************************************************
|
||||
END LICENSE CODE
|
||||
*******************************************************************************/
|
||||
?>
|
||||
</main>
|
||||
</div>
|
||||
<?php include(TEMPLATE_PATH . '../../footer.txt'); ?>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery-3.4.1.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/hesk_functions.js"></script>
|
||||
<?php outputSearchJavascript(); ?>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/svg4everybody.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.scrollbar.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/selectize.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.en.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.autocomplete.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
545
hesk/theme/hesk3/customer/js/app.js
Normal file
@@ -0,0 +1,545 @@
|
||||
/*eslint-disable */
|
||||
$(document).ready(function() {
|
||||
svg4everybody();
|
||||
|
||||
// button ripple
|
||||
//$('[ripple]').append('<div class="ripple--container"></div>');
|
||||
var cleanUp,
|
||||
debounce,
|
||||
i,
|
||||
len,
|
||||
ripple,
|
||||
rippleContainer,
|
||||
ripples,
|
||||
showRipple,
|
||||
outClose;
|
||||
|
||||
debounce = function(func, delay) {
|
||||
var inDebounce;
|
||||
inDebounce = undefined;
|
||||
return function() {
|
||||
var args, context;
|
||||
context = this;
|
||||
args = arguments;
|
||||
clearTimeout(inDebounce);
|
||||
return (inDebounce = setTimeout(function() {
|
||||
return func.apply(context, args);
|
||||
}, delay));
|
||||
};
|
||||
};
|
||||
|
||||
showRipple = function(e) {
|
||||
var pos, ripple, rippler, size, style, x, y;
|
||||
ripple = this;
|
||||
rippler = document.createElement("span");
|
||||
size = ripple.offsetWidth;
|
||||
pos = ripple.getBoundingClientRect();
|
||||
x = e.offsetX - size / 2;
|
||||
y = e.offsetY - size / 2;
|
||||
style =
|
||||
"top:" +
|
||||
y +
|
||||
"px; left: " +
|
||||
x +
|
||||
"px; height: " +
|
||||
size +
|
||||
"px; width: " +
|
||||
size +
|
||||
"px;";
|
||||
ripple.rippleContainer.appendChild(rippler);
|
||||
return rippler.setAttribute("style", style);
|
||||
};
|
||||
|
||||
cleanUp = function() {
|
||||
while (this.rippleContainer.firstChild) {
|
||||
this.rippleContainer.removeChild(this.rippleContainer.firstChild);
|
||||
}
|
||||
};
|
||||
|
||||
outClose = function(time) {
|
||||
time = time ? time : 150;
|
||||
// header notification
|
||||
$(".profile__item--notification")
|
||||
.removeClass("active")
|
||||
.find(".notification-list")
|
||||
.slideUp(time);
|
||||
|
||||
// profile menu
|
||||
$(".profile__user")
|
||||
.removeClass("active")
|
||||
.find(".profile__menu")
|
||||
.slideUp(time);
|
||||
|
||||
$(".dropdown, .dropdown-select").removeClass("active");
|
||||
$(".dropdown-list").slideUp(time, function() {
|
||||
$(this)
|
||||
.find(".assign--buttons")
|
||||
.show();
|
||||
$(this)
|
||||
.find(".assign--list")
|
||||
.hide();
|
||||
});
|
||||
$(".form__search_type").slideUp(150);
|
||||
$(".form__search_results").slideUp(150);
|
||||
};
|
||||
|
||||
dropdownSelectRender = function(el) {
|
||||
var select = $(el).find("select");
|
||||
var options = [];
|
||||
var value;
|
||||
select.find("option").each(function(i, el) {
|
||||
options.push({
|
||||
val: $(el).val(),
|
||||
text: $(el).text(),
|
||||
selected: $(el).is(":selected")
|
||||
});
|
||||
if ($(el).is(":selected")) {
|
||||
value = $(el).text();
|
||||
}
|
||||
});
|
||||
var template =
|
||||
'<div class="label"><span>' +
|
||||
value +
|
||||
'</span><svg class="icon icon-chevron-down"><use xlink:href="./img/sprite.svg#icon-chevron-down"></use></svg></div><ul class="dropdown-list">';
|
||||
for (var i in options) {
|
||||
if (options[i].selected) $(el).attr("data-value", options[i].val);
|
||||
template +=
|
||||
'<li data-option="' +
|
||||
options[i].val +
|
||||
'"' +
|
||||
(options[i].selected ? ' class="selected"' : "") +
|
||||
">" +
|
||||
options[i].text +
|
||||
"</li>";
|
||||
}
|
||||
template += "</ul></div>";
|
||||
$(el).append(template);
|
||||
};
|
||||
|
||||
ripples = document.querySelectorAll("[ripple]");
|
||||
|
||||
for (i = 0, len = ripples.length; i < len; i++) {
|
||||
ripple = ripples[i];
|
||||
rippleContainer = document.createElement("div");
|
||||
rippleContainer.className = "ripple--container";
|
||||
ripple.addEventListener("mousedown", showRipple);
|
||||
ripple.addEventListener("mouseup", debounce(cleanUp, 10000));
|
||||
ripple.rippleContainer = rippleContainer;
|
||||
ripple.appendChild(rippleContainer);
|
||||
}
|
||||
|
||||
$('.checkbox-custom input[type="checkbox"]').change(function(e) {
|
||||
if ($(e.target).is(":checked")) {
|
||||
$(e.target)
|
||||
.closest(".checkbox-custom")
|
||||
.addClass("checked");
|
||||
} else {
|
||||
$(e.target)
|
||||
.closest(".checkbox-custom")
|
||||
.removeClass("checked");
|
||||
}
|
||||
});
|
||||
|
||||
// Custom select
|
||||
var x, i, j, selElmnt, a, b, c;
|
||||
/*look for any elements with the class "select-custom":*/
|
||||
x = document.getElementsByClassName("select-custom");
|
||||
for (i = 0; i < x.length; i++) {
|
||||
selElmnt = x[i].getElementsByTagName("select")[0];
|
||||
/*for each element, create a new DIV that will act as the selected item:*/
|
||||
a = document.createElement("DIV");
|
||||
a.setAttribute("class", "select-selected");
|
||||
a.dataset.value = selElmnt[0].value;
|
||||
a.innerHTML = selElmnt.options[selElmnt.selectedIndex].innerHTML;
|
||||
x[i].insertBefore(a, selElmnt);
|
||||
// x[i].insertBefore(a, x[i].firstChild);
|
||||
|
||||
/*for each element, create a new DIV that will contain the option list:*/
|
||||
b = document.createElement("DIV");
|
||||
b.setAttribute("class", "select-items select-hide");
|
||||
for (j = 1; j < selElmnt.length; j++) {
|
||||
/*for each option in the original select element,
|
||||
create a new DIV that will act as an option item:*/
|
||||
c = document.createElement("DIV");
|
||||
c.innerHTML = selElmnt.options[j].innerHTML;
|
||||
c.addEventListener("click", function(e) {
|
||||
/*when an item is clicked, update the original select box,
|
||||
and the selected item:*/
|
||||
var y, i, k, s, h;
|
||||
s = this.parentNode.parentNode.getElementsByTagName("select")[0];
|
||||
h = this.parentNode.previousSibling;
|
||||
for (i = 0; i < s.length; i++) {
|
||||
if (s.options[i].innerHTML == this.innerHTML) {
|
||||
s.selectedIndex = i;
|
||||
h.innerHTML = this.innerHTML;
|
||||
y = this.parentNode.getElementsByClassName("same-as-selected");
|
||||
for (k = 0; k < y.length; k++) {
|
||||
y[k].removeAttribute("class");
|
||||
}
|
||||
this.setAttribute("class", "same-as-selected");
|
||||
h.dataset.value = s.options[i].getAttribute("value");
|
||||
break;
|
||||
}
|
||||
}
|
||||
h.click();
|
||||
});
|
||||
b.appendChild(c);
|
||||
}
|
||||
x[i].insertBefore(b, selElmnt);
|
||||
a.addEventListener("click", function(e) {
|
||||
/*when the select box is clicked, close any other select boxes,
|
||||
and open/close the current select box:*/
|
||||
e.stopPropagation();
|
||||
closeAllSelect(this);
|
||||
this.nextSibling.classList.toggle("select-hide");
|
||||
this.classList.toggle("select-arrow-active");
|
||||
});
|
||||
}
|
||||
|
||||
function closeAllSelect(elmnt) {
|
||||
/*a function that will close all select boxes in the document,
|
||||
except the current select box:*/
|
||||
var x,
|
||||
y,
|
||||
i,
|
||||
arrNo = [];
|
||||
x = document.getElementsByClassName("select-items");
|
||||
y = document.getElementsByClassName("select-selected");
|
||||
for (i = 0; i < y.length; i++) {
|
||||
if (elmnt == y[i]) {
|
||||
arrNo.push(i);
|
||||
} else {
|
||||
y[i].classList.remove("select-arrow-active");
|
||||
}
|
||||
}
|
||||
for (i = 0; i < x.length; i++) {
|
||||
if (arrNo.indexOf(i)) {
|
||||
x[i].classList.add("select-hide");
|
||||
}
|
||||
}
|
||||
|
||||
if (!$(elmnt.target).closest(".out-close").length) outClose();
|
||||
if ($(elmnt.target).closest(".dropdown").length) return;
|
||||
|
||||
event.stopPropagation();
|
||||
}
|
||||
|
||||
/*if the user clicks anywhere outside the select box, then close all select boxes:*/
|
||||
var documentClick = true;
|
||||
$(document).click(closeAllSelect);
|
||||
$(document).on("touchend", "body", function(e) {
|
||||
if (documentClick) {
|
||||
$(document).unbind("click");
|
||||
documentClick = false;
|
||||
}
|
||||
closeAllSelect(e);
|
||||
});
|
||||
|
||||
/* ===========================================================
|
||||
FORM VALIDATION
|
||||
============================================================*/
|
||||
$("#formNeedValidation").submit(function(e) {
|
||||
console.log("object");
|
||||
$(".form-group.required .form-control").each(function(index) {
|
||||
var value = $.trim($(this).val()).length;
|
||||
if (!value) {
|
||||
$(this)
|
||||
.closest(".form-group")
|
||||
.addClass("error");
|
||||
$(this)
|
||||
.closest(".form")
|
||||
.addClass("invalid");
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$("#formNeedValidation input").keyup(function(e) {
|
||||
if ($(e.target).val()) {
|
||||
$(e.target).css({ borderColor: "#d4d6e3" });
|
||||
$(e.target)
|
||||
.closest(".form-group")
|
||||
.removeClass("error");
|
||||
}
|
||||
});
|
||||
|
||||
/* ===========================================================
|
||||
Dropdown & dropdown selects
|
||||
============================================================*/
|
||||
|
||||
$(".dropdown-select").each(function(i, el) {
|
||||
dropdownSelectRender(el);
|
||||
});
|
||||
|
||||
$("body").on("click", ".dropdown > label", function(e) {
|
||||
if (
|
||||
$(e.currentTarget)
|
||||
.closest(".dropdown")
|
||||
.hasClass("active")
|
||||
) {
|
||||
$(e.currentTarget)
|
||||
.closest(".dropdown")
|
||||
.removeClass("active")
|
||||
.find(".dropdown-list")
|
||||
.slideUp(150);
|
||||
} else {
|
||||
$(".dropdown").removeClass("active");
|
||||
$(".dropdown-list").slideUp(150);
|
||||
$(e.currentTarget)
|
||||
.closest(".dropdown")
|
||||
.addClass("active")
|
||||
.find(".dropdown-list")
|
||||
.slideDown(150);
|
||||
}
|
||||
});
|
||||
$("body").on("click", ".dropdown-list > li", function(e) {
|
||||
if ($(e.currentTarget).hasClass("noclose")) return;
|
||||
$(e.currentTarget)
|
||||
.closest(".dropdown")
|
||||
.removeClass("active")
|
||||
.find(".dropdown-list")
|
||||
.slideUp(150);
|
||||
});
|
||||
$("body").on("click", ".dropdown-select .label", function(e) {
|
||||
if (
|
||||
$(e.currentTarget)
|
||||
.closest(".dropdown-select")
|
||||
.hasClass("active")
|
||||
) {
|
||||
$(e.currentTarget)
|
||||
.closest(".dropdown-select")
|
||||
.removeClass("active")
|
||||
.find(".dropdown-list")
|
||||
.slideUp(150);
|
||||
} else {
|
||||
$(".dropdown-select").removeClass("active");
|
||||
$(".dropdown-list").slideUp(150);
|
||||
$(e.currentTarget)
|
||||
.closest(".dropdown-select")
|
||||
.addClass("active")
|
||||
.find(".dropdown-list")
|
||||
.slideDown(150);
|
||||
}
|
||||
});
|
||||
$("body").on("click", ".dropdown-list > li", function(e) {
|
||||
if ($(e.currentTarget).hasClass("noclose")) return;
|
||||
$(e.currentTarget)
|
||||
.closest(".dropdown")
|
||||
.removeClass("active")
|
||||
.find(".dropdown-list")
|
||||
.slideUp(150);
|
||||
});
|
||||
$("body").on("click", ".dropdown-select .dropdown-list li", function(e) {
|
||||
var text, value;
|
||||
value = $(e.currentTarget).attr("data-option");
|
||||
if (
|
||||
$(e.currentTarget)
|
||||
.closest(".dropdown-select")
|
||||
.hasClass("submit-us")
|
||||
) {
|
||||
text = value.length
|
||||
? "Submit as " + $(e.currentTarget).text()
|
||||
: $(e.currentTarget).text();
|
||||
text =
|
||||
text
|
||||
.toLowerCase()
|
||||
.charAt(0)
|
||||
.toUpperCase() + text.toLowerCase().substr(1);
|
||||
} else {
|
||||
text = $(e.currentTarget).text();
|
||||
}
|
||||
$(e.currentTarget)
|
||||
.closest(".dropdown-list")
|
||||
.find("li")
|
||||
.removeClass("selected");
|
||||
$(e.currentTarget).addClass("selected");
|
||||
$(e.currentTarget)
|
||||
.closest(".dropdown-select")
|
||||
.attr("data-value", value)
|
||||
.find(".label span")
|
||||
.text(text);
|
||||
$(e.currentTarget)
|
||||
.closest(".dropdown-select")
|
||||
.removeClass("active");
|
||||
$(e.currentTarget)
|
||||
.closest(".dropdown-list")
|
||||
.slideUp(150);
|
||||
$(e.currentTarget)
|
||||
.closest(".dropdown-select")
|
||||
.find('select option[value="' + value + '"]')
|
||||
.prop("selected", true);
|
||||
$(e.currentTarget).closest('.dropdown-select').find('select').trigger('change');
|
||||
});
|
||||
|
||||
// End Dropdown & dropdown selects
|
||||
|
||||
/* ===========================================================
|
||||
Ticket details
|
||||
============================================================*/
|
||||
$(".ticket__replies_link").click(function(e) {
|
||||
if ($(e.currentTarget).hasClass("visible")) {
|
||||
$(e.currentTarget).removeClass("visible");
|
||||
$(".ticket__replies_list").slideUp(150);
|
||||
} else {
|
||||
$(".ticket__replies_list").slideDown(150);
|
||||
$(e.currentTarget).addClass("visible");
|
||||
}
|
||||
});
|
||||
|
||||
// Ticket upload file
|
||||
var ticketFiles = [];
|
||||
$('.block--attach input[type="file"]').change(function(e) {
|
||||
for (i = 0; i < e.target.files.length; i++) {
|
||||
ticketFiles.push(e.target.files[i]);
|
||||
var extension =
|
||||
"." +
|
||||
e.target.files[i].name.split(".")[
|
||||
e.target.files[i].name.split(".").length - 1
|
||||
];
|
||||
var name = "";
|
||||
for (n = 0; n < e.target.files[i].name.split(".").length; n++) {
|
||||
if (n < e.target.files[i].name.split(".").length - 1) {
|
||||
name += e.target.files[i].name.split(".")[n];
|
||||
}
|
||||
}
|
||||
if (name.length > 16)
|
||||
name =
|
||||
name.slice(0, 10) + "..." + name.slice(name.length - 8, name.length);
|
||||
var label =
|
||||
"<div><span>" +
|
||||
name +
|
||||
extension +
|
||||
'</span><i><svg class="icon icon-close"><use xlink:href="./img/sprite.svg#icon-close"></use></svg></i></div>';
|
||||
$(".block--attach-list").append(label);
|
||||
$(".block--attach-list div").each(function(i, el) {
|
||||
$(el).attr("data-i", i);
|
||||
});
|
||||
}
|
||||
});
|
||||
$("body").on("click", ".block--attach-list div i", function(e) {
|
||||
var i = Number(
|
||||
$(e.target)
|
||||
.closest("div")
|
||||
.attr("data-i")
|
||||
);
|
||||
ticketFiles.splice(i, 1);
|
||||
$(e.currentTarget)
|
||||
.closest("div")
|
||||
.slideUp(150, function() {
|
||||
$(e.currentTarget)
|
||||
.closest("div")
|
||||
.remove();
|
||||
$(".block--attach-list div").each(function(i, el) {
|
||||
$(el).attr("data-i", i);
|
||||
});
|
||||
});
|
||||
console.log(ticketFiles);
|
||||
});
|
||||
|
||||
$(".accordion-title").click(function(e) {
|
||||
if (
|
||||
$(e.currentTarget)
|
||||
.closest(".accordion")
|
||||
.hasClass("visible")
|
||||
) {
|
||||
$(e.currentTarget)
|
||||
.closest(".accordion")
|
||||
.find(".accordion-body")
|
||||
.slideUp(150);
|
||||
$(e.currentTarget)
|
||||
.closest(".accordion")
|
||||
.removeClass("visible");
|
||||
} else {
|
||||
$(e.currentTarget)
|
||||
.closest(".accordion")
|
||||
.find(".accordion-body")
|
||||
.slideDown(150);
|
||||
$(e.currentTarget)
|
||||
.closest(".accordion")
|
||||
.addClass("visible");
|
||||
}
|
||||
});
|
||||
|
||||
/* ===========================================================
|
||||
Create ticket
|
||||
============================================================*/
|
||||
$(".datepicker").datepicker({
|
||||
language: "en",
|
||||
position: "right bottom",
|
||||
autoClose: true,
|
||||
onSelect: function(formattedDate, date, inst) {
|
||||
if (formattedDate.length) {
|
||||
inst.$el
|
||||
.parent()
|
||||
.parent()
|
||||
.find('.calendar--value').fadeIn(150).find('span').text(formattedDate);
|
||||
}
|
||||
},
|
||||
onHide: function(inst, animationCompleted) {
|
||||
$(".ticket-create .param.calendar button").removeClass("active");
|
||||
}
|
||||
});
|
||||
$(".ticket-create .param.calendar button").click(function(e) {
|
||||
$(this).addClass("active");
|
||||
$(this).parent().find('.datepicker')
|
||||
.data("datepicker")
|
||||
.show();
|
||||
});
|
||||
$(".ticket-create .param.calendar .close").click(function(e) {
|
||||
$(this).parent().parent()
|
||||
.find('.calendar--button')
|
||||
.find('.datepicker')
|
||||
.data("datepicker")
|
||||
.clear();
|
||||
$(".ticket-create .param.calendar .calendar--value").fadeOut(
|
||||
150,
|
||||
function() {
|
||||
$(this)
|
||||
.find("span")
|
||||
.text("");
|
||||
}
|
||||
);
|
||||
});
|
||||
$('[data-action="create-ticket"]').click(function(e) {
|
||||
$("body").addClass("noscroll");
|
||||
$(".right-bar.ticket-create").fadeIn(150);
|
||||
});
|
||||
|
||||
/* ===========================================================
|
||||
Tooltyps
|
||||
============================================================*/
|
||||
$("body").on("mouseenter", ".tooltype", function(e) {
|
||||
$(this)
|
||||
.find(".tooltype__content")
|
||||
.fadeIn(150);
|
||||
});
|
||||
$("body").on("mouseleave", ".tooltype", function(e) {
|
||||
$(this)
|
||||
.find(".tooltype__content")
|
||||
.fadeOut(150);
|
||||
});
|
||||
/* ===========================================================
|
||||
start Customer help
|
||||
============================================================*/
|
||||
$(".tabbed__head_tabs li").click(function(e) {
|
||||
var target = $(this).attr("data-link");
|
||||
$(".tabbed__head_tabs li").removeClass("current");
|
||||
$(this).addClass("current");
|
||||
$(".tabbed__tabs .tabbed__tabs_tab").removeClass("is-visible");
|
||||
$(".tabbed__tabs [data-tab=" + target + "]").addClass("is-visible");
|
||||
});
|
||||
$(".btn-toggler").click(function(e) {
|
||||
$(this)
|
||||
.closest(".params--block")
|
||||
.find(".accordion-body")
|
||||
.slideToggle();
|
||||
$(this).toggleClass("is-opened");
|
||||
});
|
||||
|
||||
// Never allow typing in dropdowns
|
||||
$('.selectize-input input').prop('disabled', 'disabled');
|
||||
});
|
||||
|
||||
window.onload = function() {
|
||||
$("#loader").fadeOut(150);
|
||||
};
|
||||
14
hesk/theme/hesk3/customer/js/app.min.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
$(document).ready(function(){svg4everybody();var cleanUp,debounce,i,len,ripple,rippleContainer,ripples,showRipple,outClose;debounce=function(func,delay){var inDebounce;inDebounce=undefined;return function(){var args,context;context=this;args=arguments;clearTimeout(inDebounce);return(inDebounce=setTimeout(function(){return func.apply(context,args)},delay))}};showRipple=function(e){var pos,ripple,rippler,size,style,x,y;ripple=this;rippler=document.createElement("span");size=ripple.offsetWidth;pos=ripple.getBoundingClientRect();x=e.offsetX-size/2;y=e.offsetY-size/2;style="top:"+y+"px; left: "+x+"px; height: "+size+"px; width: "+size+"px;";ripple.rippleContainer.appendChild(rippler);return rippler.setAttribute("style",style)};cleanUp=function(){while(this.rippleContainer.firstChild){this.rippleContainer.removeChild(this.rippleContainer.firstChild)}};outClose=function(time){time=time?time:150;$(".profile__item--notification").removeClass("active").find(".notification-list").slideUp(time);$(".profile__user").removeClass("active").find(".profile__menu").slideUp(time);$(".dropdown, .dropdown-select").removeClass("active");$(".dropdown-list").slideUp(time,function(){$(this).find(".assign--buttons").show();$(this).find(".assign--list").hide()});$(".form__search_type").slideUp(150);$(".form__search_results").slideUp(150)};dropdownSelectRender=function(el){var select=$(el).find("select");var options=[];var value;select.find("option").each(function(i,el){options.push({val:$(el).val(),text:$(el).text(),selected:$(el).is(":selected")});if($(el).is(":selected")){value=$(el).text()}});var template='<div class="label"><span>'+value+'</span><svg class="icon icon-chevron-down"><use xlink:href="./img/sprite.svg#icon-chevron-down"></use></svg></div><ul class="dropdown-list">';for(var i in options){if(options[i].selected)$(el).attr("data-value",options[i].val);template+='<li data-option="'+options[i].val+'"'+(options[i].selected?' class="selected"':"")+">"+options[i].text+"</li>"}
|
||||
template+="</ul></div>";$(el).append(template)};ripples=document.querySelectorAll("[ripple]");for(i=0,len=ripples.length;i<len;i++){ripple=ripples[i];rippleContainer=document.createElement("div");rippleContainer.className="ripple--container";ripple.addEventListener("mousedown",showRipple);ripple.addEventListener("mouseup",debounce(cleanUp,10000));ripple.rippleContainer=rippleContainer;ripple.appendChild(rippleContainer)}
|
||||
$('.checkbox-custom input[type="checkbox"]').change(function(e){if($(e.target).is(":checked")){$(e.target).closest(".checkbox-custom").addClass("checked")}else{$(e.target).closest(".checkbox-custom").removeClass("checked")}});var x,i,j,selElmnt,a,b,c;x=document.getElementsByClassName("select-custom");for(i=0;i<x.length;i++){selElmnt=x[i].getElementsByTagName("select")[0];a=document.createElement("DIV");a.setAttribute("class","select-selected");a.dataset.value=selElmnt[0].value;a.innerHTML=selElmnt.options[selElmnt.selectedIndex].innerHTML;x[i].insertBefore(a,selElmnt);b=document.createElement("DIV");b.setAttribute("class","select-items select-hide");for(j=1;j<selElmnt.length;j++){c=document.createElement("DIV");c.innerHTML=selElmnt.options[j].innerHTML;c.addEventListener("click",function(e){var y,i,k,s,h;s=this.parentNode.parentNode.getElementsByTagName("select")[0];h=this.parentNode.previousSibling;for(i=0;i<s.length;i++){if(s.options[i].innerHTML==this.innerHTML){s.selectedIndex=i;h.innerHTML=this.innerHTML;y=this.parentNode.getElementsByClassName("same-as-selected");for(k=0;k<y.length;k++){y[k].removeAttribute("class")}
|
||||
this.setAttribute("class","same-as-selected");h.dataset.value=s.options[i].getAttribute("value");break}}
|
||||
h.click()});b.appendChild(c)}
|
||||
x[i].insertBefore(b,selElmnt);a.addEventListener("click",function(e){e.stopPropagation();closeAllSelect(this);this.nextSibling.classList.toggle("select-hide");this.classList.toggle("select-arrow-active")})}
|
||||
function closeAllSelect(elmnt){var x,y,i,arrNo=[];x=document.getElementsByClassName("select-items");y=document.getElementsByClassName("select-selected");for(i=0;i<y.length;i++){if(elmnt==y[i]){arrNo.push(i)}else{y[i].classList.remove("select-arrow-active")}}
|
||||
for(i=0;i<x.length;i++){if(arrNo.indexOf(i)){x[i].classList.add("select-hide")}}
|
||||
if(!$(elmnt.target).closest(".out-close").length)outClose();if($(elmnt.target).closest(".dropdown").length)return;event.stopPropagation()}
|
||||
var documentClick=!0;$(document).click(closeAllSelect);$(document).on("touchend","body",function(e){if(documentClick){$(document).unbind("click");documentClick=!1}
|
||||
closeAllSelect(e)});$("#formNeedValidation").submit(function(e){console.log("object");$(".form-group.required .form-control").each(function(index){var value=$.trim($(this).val()).length;if(!value){$(this).closest(".form-group").addClass("error");$(this).closest(".form").addClass("invalid");e.preventDefault()}})});$("#formNeedValidation input").keyup(function(e){if($(e.target).val()){$(e.target).css({borderColor:"#d4d6e3"});$(e.target).closest(".form-group").removeClass("error")}});$(".dropdown-select").each(function(i,el){dropdownSelectRender(el)});$("body").on("click",".dropdown > label",function(e){if($(e.currentTarget).closest(".dropdown").hasClass("active")){$(e.currentTarget).closest(".dropdown").removeClass("active").find(".dropdown-list").slideUp(150)}else{$(".dropdown").removeClass("active");$(".dropdown-list").slideUp(150);$(e.currentTarget).closest(".dropdown").addClass("active").find(".dropdown-list").slideDown(150)}});$("body").on("click",".dropdown-list > li",function(e){if($(e.currentTarget).hasClass("noclose"))return;$(e.currentTarget).closest(".dropdown").removeClass("active").find(".dropdown-list").slideUp(150)});$("body").on("click",".dropdown-select .label",function(e){if($(e.currentTarget).closest(".dropdown-select").hasClass("active")){$(e.currentTarget).closest(".dropdown-select").removeClass("active").find(".dropdown-list").slideUp(150)}else{$(".dropdown-select").removeClass("active");$(".dropdown-list").slideUp(150);$(e.currentTarget).closest(".dropdown-select").addClass("active").find(".dropdown-list").slideDown(150)}});$("body").on("click",".dropdown-list > li",function(e){if($(e.currentTarget).hasClass("noclose"))return;$(e.currentTarget).closest(".dropdown").removeClass("active").find(".dropdown-list").slideUp(150)});$("body").on("click",".dropdown-select .dropdown-list li",function(e){var text,value;value=$(e.currentTarget).attr("data-option");if($(e.currentTarget).closest(".dropdown-select").hasClass("submit-us")){text=value.length?"Submit as "+$(e.currentTarget).text():$(e.currentTarget).text();text=text.toLowerCase().charAt(0).toUpperCase()+text.toLowerCase().substr(1)}else{text=$(e.currentTarget).text()}
|
||||
$(e.currentTarget).closest(".dropdown-list").find("li").removeClass("selected");$(e.currentTarget).addClass("selected");$(e.currentTarget).closest(".dropdown-select").attr("data-value",value).find(".label span").text(text);$(e.currentTarget).closest(".dropdown-select").removeClass("active");$(e.currentTarget).closest(".dropdown-list").slideUp(150);$(e.currentTarget).closest(".dropdown-select").find('select option[value="'+value+'"]').prop("selected",!0);$(e.currentTarget).closest('.dropdown-select').find('select').trigger('change')});$(".ticket__replies_link").click(function(e){if($(e.currentTarget).hasClass("visible")){$(e.currentTarget).removeClass("visible");$(".ticket__replies_list").slideUp(150)}else{$(".ticket__replies_list").slideDown(150);$(e.currentTarget).addClass("visible")}});var ticketFiles=[];$('.block--attach input[type="file"]').change(function(e){for(i=0;i<e.target.files.length;i++){ticketFiles.push(e.target.files[i]);var extension="."+e.target.files[i].name.split(".")[e.target.files[i].name.split(".").length-1];var name="";for(n=0;n<e.target.files[i].name.split(".").length;n++){if(n<e.target.files[i].name.split(".").length-1){name+=e.target.files[i].name.split(".")[n]}}
|
||||
if(name.length>16)
|
||||
name=name.slice(0,10)+"..."+name.slice(name.length-8,name.length);var label="<div><span>"+name+extension+'</span><i><svg class="icon icon-close"><use xlink:href="./img/sprite.svg#icon-close"></use></svg></i></div>';$(".block--attach-list").append(label);$(".block--attach-list div").each(function(i,el){$(el).attr("data-i",i)})}});$("body").on("click",".block--attach-list div i",function(e){var i=Number($(e.target).closest("div").attr("data-i"));ticketFiles.splice(i,1);$(e.currentTarget).closest("div").slideUp(150,function(){$(e.currentTarget).closest("div").remove();$(".block--attach-list div").each(function(i,el){$(el).attr("data-i",i)})});console.log(ticketFiles)});$(".accordion-title").click(function(e){if($(e.currentTarget).closest(".accordion").hasClass("visible")){$(e.currentTarget).closest(".accordion").find(".accordion-body").slideUp(150);$(e.currentTarget).closest(".accordion").removeClass("visible")}else{$(e.currentTarget).closest(".accordion").find(".accordion-body").slideDown(150);$(e.currentTarget).closest(".accordion").addClass("visible")}});$(".datepicker").datepicker({language:"en",position:"right bottom",autoClose:!0,onSelect:function(formattedDate,date,inst){if(formattedDate.length){inst.$el.parent().parent().find('.calendar--value').fadeIn(150).find('span').text(formattedDate)}},onHide:function(inst,animationCompleted){$(".ticket-create .param.calendar button").removeClass("active")}});$(".ticket-create .param.calendar button").click(function(e){$(this).addClass("active");$(this).parent().find('.datepicker').data("datepicker").show()});$(".ticket-create .param.calendar .close").click(function(e){$(this).parent().parent().find('.calendar--button').find('.datepicker').data("datepicker").clear();$(".ticket-create .param.calendar .calendar--value").fadeOut(150,function(){$(this).find("span").text("")})});$('[data-action="create-ticket"]').click(function(e){$("body").addClass("noscroll");$(".right-bar.ticket-create").fadeIn(150)});$("body").on("mouseenter",".tooltype",function(e){$(this).find(".tooltype__content").fadeIn(150)});$("body").on("mouseleave",".tooltype",function(e){$(this).find(".tooltype__content").fadeOut(150)});$(".tabbed__head_tabs li").click(function(e){var target=$(this).attr("data-link");$(".tabbed__head_tabs li").removeClass("current");$(this).addClass("current");$(".tabbed__tabs .tabbed__tabs_tab").removeClass("is-visible");$(".tabbed__tabs [data-tab="+target+"]").addClass("is-visible")});$(".btn-toggler").click(function(e){$(this).closest(".params--block").find(".accordion-body").slideToggle();$(this).toggleClass("is-opened")});$('.selectize-input input').prop('disabled','disabled')});window.onload=function(){$("#loader").fadeOut(150)}
|
||||
13
hesk/theme/hesk3/customer/js/datepicker.en.js
Normal file
@@ -0,0 +1,13 @@
|
||||
;(function ($) { $.fn.datepicker.language['en'] = {
|
||||
days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
||||
daysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||
daysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
|
||||
months: ['January','February','March','April','May','June', 'July','August','September','October','November','December'],
|
||||
monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
||||
today: 'Today',
|
||||
clear: 'Clear',
|
||||
dateFormat: 'mm/dd/yyyy',
|
||||
timeFormat: 'hh:ii aa',
|
||||
firstDay: 1
|
||||
}; })(jQuery);
|
||||
//# sourceMappingURL=datepicker.en.js.map
|
||||
3
hesk/theme/hesk3/customer/js/datepicker.min.js
vendored
Normal file
165
hesk/theme/hesk3/customer/js/hesk_functions.js
Normal file
@@ -0,0 +1,165 @@
|
||||
var HESK_FUNCTIONS;
|
||||
if (!HESK_FUNCTIONS) {
|
||||
HESK_FUNCTIONS = {};
|
||||
}
|
||||
|
||||
var heskKBfailed = false;
|
||||
var heskKBquery = '';
|
||||
HESK_FUNCTIONS.getKbSearchSuggestions = function($input, callback) {
|
||||
var d = document.form1;
|
||||
var s = $input.val();
|
||||
|
||||
if (s !== '' && (heskKBquery !== s || heskKBfailed === true) )
|
||||
{
|
||||
var params = "q=" + encodeURIComponent(s);
|
||||
heskKBquery = s;
|
||||
|
||||
$.ajax({
|
||||
url: 'suggest_articles.php',
|
||||
method: 'POST',
|
||||
dataType: 'json',
|
||||
contentType: 'application/x-www-form-urlencoded',
|
||||
data: params,
|
||||
success: function(data) {
|
||||
heskKBfailed = false;
|
||||
callback(data);
|
||||
},
|
||||
error: function(jqXHR, status, err) {
|
||||
console.error(err);
|
||||
heskKBfailed = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
setTimeout(function() { HESK_FUNCTIONS.getKbSearchSuggestions($input, callback); }, 2000);
|
||||
};
|
||||
|
||||
HESK_FUNCTIONS.getKbTicketSuggestions = function($subject, $message, callback) {
|
||||
var d = document.form1;
|
||||
var s = $subject.val();
|
||||
var m = $message.val();
|
||||
var query = s + " " + m;
|
||||
|
||||
if (s !== '' && m !== '' && (heskKBquery !== query || heskKBfailed === true) )
|
||||
{
|
||||
var params = "q=" + encodeURIComponent(query);
|
||||
heskKBquery = query;
|
||||
|
||||
$.ajax({
|
||||
url: 'suggest_articles.php',
|
||||
method: 'POST',
|
||||
dataType: 'json',
|
||||
contentType: 'application/x-www-form-urlencoded',
|
||||
data: params,
|
||||
success: function(data) {
|
||||
heskKBfailed = false;
|
||||
callback(data);
|
||||
},
|
||||
error: function(jqXHR, status, err) {
|
||||
console.error(err);
|
||||
heskKBfailed = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
setTimeout(function() { HESK_FUNCTIONS.getKbTicketSuggestions($subject, $message, callback); }, 2000);
|
||||
};
|
||||
|
||||
HESK_FUNCTIONS.openWindow = function(PAGE,HGT,WDT) {
|
||||
var heskWin = window.open(PAGE,"Hesk_window","height="+HGT+",width="+WDT+",menubar=0,location=0,toolbar=0,status=0,resizable=1,scrollbars=1");
|
||||
heskWin.focus();
|
||||
};
|
||||
|
||||
HESK_FUNCTIONS.suggestEmail = function(emailField, displayDiv, isAdmin, allowMultiple) {
|
||||
var email = document.getElementById(emailField).value;
|
||||
var element = document.getElementById(displayDiv);
|
||||
var path = isAdmin ? '../suggest_email.php' : 'suggest_email.php';
|
||||
|
||||
if (email !== '') {
|
||||
var params = "e=" + encodeURIComponent(email) + "&ef=" + encodeURIComponent(emailField) + "&dd=" + encodeURIComponent(displayDiv);
|
||||
|
||||
if (allowMultiple) {
|
||||
params += "&am=1";
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
{0}: Div ID
|
||||
{1}: Suggestion message (i.e. "Did you mean hesk@example.com?")
|
||||
{2}: Original email
|
||||
{3}: Suggested email (pre-escaped)
|
||||
{4}: "Yes, fix it"
|
||||
{5}: "No, leave it"
|
||||
*/
|
||||
var responseFormat =
|
||||
'<div class="alert warning" id="{0}" style="display: block">' +
|
||||
'<div class="alert__inner">' +
|
||||
'<p>' +
|
||||
'<p>{1}</p>' +
|
||||
'<a class="link" href="javascript:" onclick="HESK_FUNCTIONS.applyEmailSuggestion(\'{0}\', \'' + emailField + '\', \'{2}\', \'{3}\')">' +
|
||||
'{4}' +
|
||||
'</a> | ' +
|
||||
'<a class="link" href="javascript:void(0);" onclick="document.getElementById(\'{0}\').style.display=\'none\';">' +
|
||||
'{5}' +
|
||||
'</a>' +
|
||||
'</p>' +
|
||||
'</div>' +
|
||||
'</div>';
|
||||
|
||||
$.ajax({
|
||||
url: path,
|
||||
method: 'POST',
|
||||
dataType: 'json',
|
||||
contentType: 'application/x-www-form-urlencoded',
|
||||
data: params,
|
||||
success: function(data) {
|
||||
var $displayDiv = $('#' + displayDiv);
|
||||
$displayDiv.html('');
|
||||
if (!data.length) {
|
||||
$displayDiv.hide();
|
||||
} else {
|
||||
$displayDiv.show();
|
||||
}
|
||||
$.each(data, function() {
|
||||
$displayDiv.append(responseFormat
|
||||
.replace(/\{0}/g, this.id)
|
||||
.replace(/\{1}/g, this.suggestText)
|
||||
.replace(/\{2}/g, this.originalAddress)
|
||||
.replace(/\{3}/g, this.formattedSuggestedEmail)
|
||||
.replace(/\{4}/g, this.yesResponseText)
|
||||
.replace(/\{5}/g, this.noResponseText));
|
||||
});
|
||||
},
|
||||
error: function(jqXHR, status, err) {
|
||||
console.error(err);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
HESK_FUNCTIONS.applyEmailSuggestion = function(emailTypoId, emailField, originalEmail, formattedSuggestedEmail) {
|
||||
var eml = document.getElementById(emailField).value;
|
||||
var regex = new RegExp(originalEmail, "gi");
|
||||
document.getElementById(emailField).value = eml.replace(regex, formattedSuggestedEmail);
|
||||
document.getElementById(emailTypoId).style.display = 'none';
|
||||
};
|
||||
|
||||
HESK_FUNCTIONS.rate = function(url, elementId) {
|
||||
if (url.length === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var element = document.getElementById(elementId);
|
||||
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: 'GET',
|
||||
dataType: 'text',
|
||||
success: function(resp) {
|
||||
element.innerHTML = resp;
|
||||
},
|
||||
error: function(jqXHR, statusText, err) {
|
||||
console.error(err);
|
||||
}
|
||||
});
|
||||
}
|
||||
9
hesk/theme/hesk3/customer/js/hesk_functions.min.js
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
var HESK_FUNCTIONS;if(!HESK_FUNCTIONS){HESK_FUNCTIONS={}}
|
||||
var heskKBfailed=!1;var heskKBquery='';HESK_FUNCTIONS.getKbSearchSuggestions=function($input,callback){var d=document.form1;var s=$input.val();if(s!==''&&(heskKBquery!==s||heskKBfailed===!0))
|
||||
{var params="q="+encodeURIComponent(s);heskKBquery=s;$.ajax({url:'suggest_articles.php',method:'POST',dataType:'json',contentType:'application/x-www-form-urlencoded',data:params,success:function(data){heskKBfailed=!1;callback(data)},error:function(jqXHR,status,err){console.error(err);heskKBfailed=!0}})}
|
||||
setTimeout(function(){HESK_FUNCTIONS.getKbSearchSuggestions($input,callback)},2000)};HESK_FUNCTIONS.getKbTicketSuggestions=function($subject,$message,callback){var d=document.form1;var s=$subject.val();var m=$message.val();var query=s+" "+m;if(s!==''&&m!==''&&(heskKBquery!==query||heskKBfailed===!0))
|
||||
{var params="q="+encodeURIComponent(query);heskKBquery=query;$.ajax({url:'suggest_articles.php',method:'POST',dataType:'json',contentType:'application/x-www-form-urlencoded',data:params,success:function(data){heskKBfailed=!1;callback(data)},error:function(jqXHR,status,err){console.error(err);heskKBfailed=!0}})}
|
||||
setTimeout(function(){HESK_FUNCTIONS.getKbTicketSuggestions($subject,$message,callback)},2000)};HESK_FUNCTIONS.openWindow=function(PAGE,HGT,WDT){var heskWin=window.open(PAGE,"Hesk_window","height="+HGT+",width="+WDT+",menubar=0,location=0,toolbar=0,status=0,resizable=1,scrollbars=1");heskWin.focus()};HESK_FUNCTIONS.suggestEmail=function(emailField,displayDiv,isAdmin,allowMultiple){var email=document.getElementById(emailField).value;var element=document.getElementById(displayDiv);var path=isAdmin?'../suggest_email.php':'suggest_email.php';if(email!==''){var params="e="+encodeURIComponent(email)+"&ef="+encodeURIComponent(emailField)+"&dd="+encodeURIComponent(displayDiv);if(allowMultiple){params+="&am=1"}
|
||||
var responseFormat='<div class="alert warning" id="{0}" style="display: block">'+'<div class="alert__inner">'+'<p>'+'<p>{1}</p>'+'<a class="link" href="javascript:" onclick="HESK_FUNCTIONS.applyEmailSuggestion(\'{0}\', \''+emailField+'\', \'{2}\', \'{3}\')">'+'{4}'+'</a> | '+'<a class="link" href="javascript:void(0);" onclick="document.getElementById(\'{0}\').style.display=\'none\';">'+'{5}'+'</a>'+'</p>'+'</div>'+'</div>';$.ajax({url:path,method:'POST',dataType:'json',contentType:'application/x-www-form-urlencoded',data:params,success:function(data){var $displayDiv=$('#'+displayDiv);$displayDiv.html('');if(!data.length){$displayDiv.hide()}else{$displayDiv.show()}
|
||||
$.each(data,function(){$displayDiv.append(responseFormat.replace(/\{0}/g,this.id).replace(/\{1}/g,this.suggestText).replace(/\{2}/g,this.originalAddress).replace(/\{3}/g,this.formattedSuggestedEmail).replace(/\{4}/g,this.yesResponseText).replace(/\{5}/g,this.noResponseText))})},error:function(jqXHR,status,err){console.error(err)}})}};HESK_FUNCTIONS.applyEmailSuggestion=function(emailTypoId,emailField,originalEmail,formattedSuggestedEmail){var eml=document.getElementById(emailField).value;var regex=new RegExp(originalEmail,"gi");document.getElementById(emailField).value=eml.replace(regex,formattedSuggestedEmail);document.getElementById(emailTypoId).style.display='none'};HESK_FUNCTIONS.rate=function(url,elementId){if(url.length===0){return!1}
|
||||
var element=document.getElementById(elementId);$.ajax({url:url,method:'GET',dataType:'text',success:function(resp){element.innerHTML=resp},error:function(jqXHR,statusText,err){console.error(err)}})}
|
||||
4
hesk/theme/hesk3/customer/js/jquery-3.4.1.min.js
vendored
Normal file
1177
hesk/theme/hesk3/customer/js/jquery.autocomplete.js
Normal file
17
hesk/theme/hesk3/customer/js/jquery.scrollbar.min.js
vendored
Normal file
3892
hesk/theme/hesk3/customer/js/selectize.js
Normal file
5
hesk/theme/hesk3/customer/js/selectize.min.js
vendored
Normal file
2
hesk/theme/hesk3/customer/js/svg4everybody.min.js
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
!function(a,b){"function"==typeof define&&define.amd?define([],function(){return a.svg4everybody=b()}):"object"==typeof module&&module.exports?module.exports=b():a.svg4everybody=b()}(this,function(){function a(a,b,c){if(c){var d=document.createDocumentFragment(),e=!b.hasAttribute("viewBox")&&c.getAttribute("viewBox");e&&b.setAttribute("viewBox",e);for(var f=c.cloneNode(!0);f.childNodes.length;)d.appendChild(f.firstChild);a.appendChild(d)}}function b(b){b.onreadystatechange=function(){if(4===b.readyState){var c=b._cachedDocument;c||(c=b._cachedDocument=document.implementation.createHTMLDocument(""),c.body.innerHTML=b.responseText,b._cachedTarget={}),b._embeds.splice(0).map(function(d){var e=b._cachedTarget[d.id];e||(e=b._cachedTarget[d.id]=c.getElementById(d.id)),a(d.parent,d.svg,e)})}},b.onreadystatechange()}function c(c){function e(){for(var c=0;c<o.length;){var h=o[c],i=h.parentNode,j=d(i),k=h.getAttribute("xlink:href")||h.getAttribute("href");if(!k&&g.attributeName&&(k=h.getAttribute(g.attributeName)),j&&k){if(f)if(!g.validate||g.validate(k,j,h)){i.removeChild(h);var l=k.split("#"),q=l.shift(),r=l.join("#");if(q.length){var s=m[q];s||(s=m[q]=new XMLHttpRequest,s.open("GET",q),s.send(),s._embeds=[]),s._embeds.push({parent:i,svg:j,id:r}),b(s)}else a(i,j,document.getElementById(r))}else++c,++p}else++c}(!o.length||o.length-p>0)&&n(e,67)}var f,g=Object(c),h=/\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/,i=/\bAppleWebKit\/(\d+)\b/,j=/\bEdge\/12\.(\d+)\b/,k=/\bEdge\/.(\d+)\b/,l=window.top!==window.self;f="polyfill"in g?g.polyfill:h.test(navigator.userAgent)||(navigator.userAgent.match(j)||[])[1]<10547||(navigator.userAgent.match(i)||[])[1]<537||k.test(navigator.userAgent)&&l;var m={},n=window.requestAnimationFrame||setTimeout,o=document.getElementsByTagName("use"),p=0;f&&e()}function d(a){for(var b=a;"svg"!==b.nodeName.toLowerCase()&&(b=b.parentNode););return b}return c});
|
||||
//# sourceMappingURL=svg4everybody.min.js.map
|
||||
170
hesk/theme/hesk3/customer/knowledgebase/search-results.php
Normal file
@@ -0,0 +1,170 @@
|
||||
<?php
|
||||
global $hesk_settings, $hesklang;
|
||||
/**
|
||||
* @var array $articles
|
||||
*/
|
||||
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
|
||||
require_once(TEMPLATE_PATH . 'customer/util/kb-search.php');
|
||||
require_once(TEMPLATE_PATH . 'customer/util/rating.php');
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title><?php echo $hesk_settings['tmp_title']; ?></title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
|
||||
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="author" content="" />
|
||||
<meta name="theme-color" content="#fff" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<link rel="stylesheet" media="all" href="<?php echo TEMPLATE_PATH; ?>customer/css/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.css" />
|
||||
|
||||
<style>
|
||||
<?php outputSearchStyling(); ?>
|
||||
</style>
|
||||
<?php include(TEMPLATE_PATH . '../../head.txt'); ?>
|
||||
</head>
|
||||
|
||||
<body class="cust-help">
|
||||
<?php include(TEMPLATE_PATH . '../../header.txt'); ?>
|
||||
<div class="wrapper">
|
||||
<main class="main">
|
||||
<header class="header">
|
||||
<div class="contr">
|
||||
<div class="header__inner">
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>" class="header__logo">
|
||||
<?php echo $hesk_settings['hesk_title']; ?>
|
||||
</a>
|
||||
<?php if ($hesk_settings['can_sel_lang']): ?>
|
||||
<div class="header__lang">
|
||||
<form method="get" action="" style="margin:0;padding:0;border:0;white-space:nowrap;">
|
||||
<div class="dropdown-select center out-close">
|
||||
<select name="language" onchange="this.form.submit()">
|
||||
<?php hesk_listLanguages(); ?>
|
||||
</select>
|
||||
</div>
|
||||
<?php foreach (hesk_getCurrentGetParameters() as $key => $value): ?>
|
||||
<input type="hidden" name="<?php echo hesk_htmlentities($key); ?>"
|
||||
value="<?php echo hesk_htmlentities($value); ?>">
|
||||
<?php endforeach; ?>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="breadcrumbs">
|
||||
<div class="contr">
|
||||
<div class="breadcrumbs__inner">
|
||||
<a href="<?php echo $hesk_settings['site_url']; ?>">
|
||||
<span><?php echo $hesk_settings['site_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>">
|
||||
<span><?php echo $hesk_settings['hesk_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<a href="knowledgebase.php">
|
||||
<span><?php echo $hesklang['kb_text']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<div class="last"><?php echo $hesklang['sr']; ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main__content">
|
||||
<div class="contr">
|
||||
<div class="help-search">
|
||||
<h2 class="search__title"><?php echo $hesklang['how_can_we_help']; ?></h2>
|
||||
<?php displayKbSearch(); ?>
|
||||
</div>
|
||||
<article class="article">
|
||||
<div class="block__head">
|
||||
<div class="icon-in-circle">
|
||||
<svg class="icon icon-knowledge">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-knowledge"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="h-3 ml-1 text-center"><?php echo $hesklang['sr']; ?></h3>
|
||||
</div>
|
||||
<?php foreach ($articles as $article): ?>
|
||||
<a href="knowledgebase.php?article=<?php echo $article['id']; ?>" class="preview">
|
||||
<div class="icon-in-circle">
|
||||
<svg class="icon icon-knowledge">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-knowledge"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="preview__text">
|
||||
<h5 class="preview__title"><?php echo $article['subject']; ?></h5>
|
||||
<p class="navlink__descr"><?php echo $article['content_preview']; ?></p>
|
||||
</div>
|
||||
<div class="rate">
|
||||
<?php
|
||||
if ($hesk_settings['kb_rating']) {
|
||||
echo hesk3_get_customer_rating($article['rating']);
|
||||
}
|
||||
|
||||
if ($hesk_settings['kb_views'] && $hesk_settings['kb_rating']): ?>
|
||||
<span class="lightgrey">(<?php echo $article['views']; ?>)</span>
|
||||
<?php elseif ($hesk_settings['kb_views']): ?>
|
||||
<span class="lightgrey">
|
||||
<?php echo $hesklang['views'] ?>:
|
||||
<?php echo $article['views']; ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
/*******************************************************************************
|
||||
The code below handles HESK licensing and must be included in the template.
|
||||
|
||||
Removing this code is a direct violation of the HESK End User License Agreement,
|
||||
will void all support and may result in unexpected behavior.
|
||||
|
||||
To purchase a HESK license and support future HESK development please visit:
|
||||
https://www.hesk.com/buy.php
|
||||
*******************************************************************************/
|
||||
$hesk_settings['hesk_license']('Qo8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPg0KICAgIDxwIGNsY
|
||||
XNzPSJ0ZXh0LWNlbnRlciI+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5oZXNrLmNvbSIgY
|
||||
2xhc3M9ImxpbmsiPkhlbHAgRGVzayBTb2Z0d2FyZTwvYT4gPHNwYW4gY2xhc3M9ImZvbnQtd2VpZ2h0L
|
||||
WJvbGQiPkhFU0s8L3NwYW4+LCBpbiBwYXJ0bmVyc2hpcCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vd3d3L
|
||||
nN5c2FpZC5jb20vP3V0bV9zb3VyY2U9SGVzayZhbXA7dXRtX21lZGl1bT1jcGMmYW1wO3V0bV9jYW1wY
|
||||
Wlnbj1IZXNrUHJvZHVjdF9Ub19IUCIgY2xhc3M9ImxpbmsiPlN5c0FpZCBUZWNobm9sb2dpZXM8L2E+P
|
||||
C9wPg0KPC9mb290ZXI+DQo=',"\104", "347db01e129edd4b3877f70ea6fed019462ae827");
|
||||
/*******************************************************************************
|
||||
END LICENSE CODE
|
||||
*******************************************************************************/
|
||||
?>
|
||||
</main>
|
||||
</div>
|
||||
<?php include(TEMPLATE_PATH . '../../footer.txt'); ?>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery-3.4.1.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/hesk_functions.js"></script>
|
||||
<?php outputSearchJavascript(); ?>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/svg4everybody.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.scrollbar.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/selectize.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.en.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.autocomplete.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
241
hesk/theme/hesk3/customer/knowledgebase/view-article.php
Normal file
@@ -0,0 +1,241 @@
|
||||
<?php
|
||||
global $hesk_settings, $hesklang;
|
||||
/**
|
||||
* @var array $article
|
||||
* @var array $attachments
|
||||
* @var boolean $showRating
|
||||
* @var string $categoryLink
|
||||
* @var array $relatedArticles
|
||||
*/
|
||||
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
|
||||
require_once(TEMPLATE_PATH . 'customer/util/rating.php');
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title><?php echo $hesk_settings['tmp_title']; ?></title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
|
||||
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="author" content="" />
|
||||
<meta name="theme-color" content="#fff" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<link rel="stylesheet" media="all" href="<?php echo TEMPLATE_PATH; ?>customer/css/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.css" />
|
||||
<?php include(TEMPLATE_PATH . '../../head.txt'); ?>
|
||||
</head>
|
||||
|
||||
<body class="cust-help">
|
||||
<?php include(TEMPLATE_PATH . '../../header.txt'); ?>
|
||||
<div class="wrapper">
|
||||
<main class="main">
|
||||
<header class="header">
|
||||
<div class="contr">
|
||||
<div class="header__inner">
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>" class="header__logo">
|
||||
<?php echo $hesk_settings['hesk_title']; ?>
|
||||
</a>
|
||||
<?php if ($hesk_settings['can_sel_lang']): ?>
|
||||
<div class="header__lang">
|
||||
<form method="get" action="" style="margin:0;padding:0;border:0;white-space:nowrap;">
|
||||
<div class="dropdown-select center out-close">
|
||||
<select name="language" onchange="this.form.submit()">
|
||||
<?php hesk_listLanguages(); ?>
|
||||
</select>
|
||||
</div>
|
||||
<?php foreach (hesk_getCurrentGetParameters() as $key => $value): ?>
|
||||
<input type="hidden" name="<?php echo hesk_htmlentities($key); ?>"
|
||||
value="<?php echo hesk_htmlentities($value); ?>">
|
||||
<?php endforeach; ?>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="breadcrumbs">
|
||||
<div class="contr">
|
||||
<div class="breadcrumbs__inner">
|
||||
<a href="<?php echo $hesk_settings['site_url']; ?>">
|
||||
<span><?php echo $hesk_settings['site_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>">
|
||||
<span><?php echo $hesk_settings['hesk_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<a href="knowledgebase.php">
|
||||
<span><?php echo $hesklang['kb_text']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<div class="last"><?php echo $article['subject']; ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main__content">
|
||||
<div class="contr">
|
||||
<div class="ticket ticket--article">
|
||||
<div class="ticket__body">
|
||||
<article class="ticket__body_block naked">
|
||||
<h2><?php echo $article['subject']; ?></h2>
|
||||
<div class="block--description">
|
||||
<?php echo $article['content']; ?>
|
||||
</div>
|
||||
<?php foreach ($attachments as $attachment): ?>
|
||||
<div class="block--uploads">
|
||||
<svg class="icon icon-attach">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-attach"></use>
|
||||
</svg>
|
||||
<a href="download_attachment.php?kb_att=<?php echo $attachment['id']; ?>" rel="nofollow">
|
||||
<?php echo $attachment['name']; ?>
|
||||
</a>
|
||||
</div>
|
||||
<?php
|
||||
endforeach;
|
||||
if ($showRating):
|
||||
?>
|
||||
<div class="ticket__block-footer">
|
||||
<span><?php echo $hesklang['rart']; ?></span>
|
||||
<a href="knowledgebase.php?rating=5&id=<?php echo $article['id']; ?>" class="link">
|
||||
<?php echo $hesklang['yes_title_case']; ?>
|
||||
</a>
|
||||
<span>|</span>
|
||||
<a href="knowledgebase.php?rating=1&id=<?php echo $article['id']; ?>" class="link">
|
||||
<?php echo $hesklang['no_title_case']; ?>
|
||||
</a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</article>
|
||||
</div>
|
||||
<div class="ticket__params">
|
||||
<section class="params--block details">
|
||||
<h4 class="accordion-title">
|
||||
<span><?php echo $hesklang['ad']; ?></span>
|
||||
</h4>
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="title"><?php echo $hesklang['aid']; ?>:</div>
|
||||
<div class="value"><?php echo $article['id']; ?></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="title"><?php echo $hesklang['category']; ?>:</div>
|
||||
<div class="value">
|
||||
<a href="<?php echo $categoryLink; ?>" class="link">
|
||||
<?php echo $article['cat_name']; ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<?php if ($hesk_settings['kb_date']): ?>
|
||||
<div class="row">
|
||||
<div class="title"><?php echo $hesklang['dta']; ?>:</div>
|
||||
<div class="value"><?php echo hesk_date($article['dt'], true); ?></div>
|
||||
</div>
|
||||
<?php
|
||||
endif;
|
||||
if ($hesk_settings['kb_rating'] || $hesk_settings['kb_views']):
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="title">
|
||||
<?php
|
||||
if ($hesk_settings['kb_rating']) {
|
||||
echo $hesklang['rating'];
|
||||
|
||||
if ($hesk_settings['kb_views']) {
|
||||
echo ' ('.$hesklang['votes'].')';
|
||||
}
|
||||
} elseif ($hesk_settings['kb_views']) {
|
||||
echo $hesklang['views'];
|
||||
}
|
||||
?>:
|
||||
</div>
|
||||
<div class="value">
|
||||
<div class="rate">
|
||||
<?php
|
||||
if ($hesk_settings['kb_rating']) {
|
||||
echo hesk3_get_customer_rating($article['rating']);
|
||||
}
|
||||
|
||||
if ($hesk_settings['kb_views'] && $hesk_settings['kb_rating']): ?>
|
||||
<span class="lightgrey">(<?php echo $article['views']; ?>)</span>
|
||||
<?php elseif ($hesk_settings['kb_views']): ?>
|
||||
<span>
|
||||
<?php echo $article['views']; ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</section>
|
||||
<?php if (count($relatedArticles) > 0): ?>
|
||||
<section class="params--block">
|
||||
<h4 class="accordion-title">
|
||||
<span><?php echo $hesklang['relart']; ?></span>
|
||||
</h4>
|
||||
<div class="accordion-body">
|
||||
<ul class="list">
|
||||
<?php foreach ($relatedArticles as $id => $subject): ?>
|
||||
<li>
|
||||
<a href="knowledgebase.php?article=<?php echo $id; ?>">
|
||||
<?php echo $subject; ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="divider"></div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
/*******************************************************************************
|
||||
The code below handles HESK licensing and must be included in the template.
|
||||
|
||||
Removing this code is a direct violation of the HESK End User License Agreement,
|
||||
will void all support and may result in unexpected behavior.
|
||||
|
||||
To purchase a HESK license and support future HESK development please visit:
|
||||
https://www.hesk.com/buy.php
|
||||
*******************************************************************************/
|
||||
$hesk_settings['hesk_license']('Qo8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPg0KICAgIDxwIGNsY
|
||||
XNzPSJ0ZXh0LWNlbnRlciI+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5oZXNrLmNvbSIgY
|
||||
2xhc3M9ImxpbmsiPkhlbHAgRGVzayBTb2Z0d2FyZTwvYT4gPHNwYW4gY2xhc3M9ImZvbnQtd2VpZ2h0L
|
||||
WJvbGQiPkhFU0s8L3NwYW4+LCBpbiBwYXJ0bmVyc2hpcCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vd3d3L
|
||||
nN5c2FpZC5jb20vP3V0bV9zb3VyY2U9SGVzayZhbXA7dXRtX21lZGl1bT1jcGMmYW1wO3V0bV9jYW1wY
|
||||
Wlnbj1IZXNrUHJvZHVjdF9Ub19IUCIgY2xhc3M9ImxpbmsiPlN5c0FpZCBUZWNobm9sb2dpZXM8L2E+P
|
||||
C9wPg0KPC9mb290ZXI+DQo=',"\104", "347db01e129edd4b3877f70ea6fed019462ae827");
|
||||
/*******************************************************************************
|
||||
END LICENSE CODE
|
||||
*******************************************************************************/
|
||||
?>
|
||||
</main>
|
||||
</div>
|
||||
<?php include(TEMPLATE_PATH . '../../footer.txt'); ?>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery-3.4.1.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/hesk_functions.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/svg4everybody.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.scrollbar.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/selectize.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.en.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.autocomplete.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
391
hesk/theme/hesk3/customer/knowledgebase/view-category.php
Normal file
@@ -0,0 +1,391 @@
|
||||
<?php
|
||||
global $hesk_settings, $hesklang;
|
||||
/**
|
||||
* @var array $currentCategory
|
||||
* @var array $subcategories
|
||||
* @var string $subcategoriesWidth
|
||||
* @var string $parentLink
|
||||
* @var array $articlesInCategory
|
||||
* @var array $serviceMessages
|
||||
* @var boolean $noSearchResults
|
||||
* @var array $topArticles
|
||||
* @var array $latestArticles
|
||||
* @var array $latestArticles
|
||||
*/
|
||||
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
|
||||
require_once(TEMPLATE_PATH . 'customer/util/alerts.php');
|
||||
require_once(TEMPLATE_PATH . 'customer/util/kb-search.php');
|
||||
require_once(TEMPLATE_PATH . 'customer/util/rating.php');
|
||||
|
||||
$service_message_type_to_class = array(
|
||||
'0' => 'none',
|
||||
'1' => 'success',
|
||||
'2' => '', // Info has no CSS class
|
||||
'3' => 'warning',
|
||||
'4' => 'danger'
|
||||
);
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title><?php echo $hesk_settings['tmp_title']; ?></title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
|
||||
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="author" content="" />
|
||||
<meta name="theme-color" content="#fff" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<link rel="stylesheet" media="all" href="<?php echo TEMPLATE_PATH; ?>customer/css/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.css" />
|
||||
<!--suppress CssOverwrittenProperties -->
|
||||
<style>
|
||||
.topics__block {
|
||||
width: <?php echo $subcategoriesWidth; ?>;
|
||||
}
|
||||
|
||||
.content .block__head {
|
||||
margin-bottom: <?php echo $currentCategory['id'] != 1 ? '0' : '16px' ?>;
|
||||
}
|
||||
|
||||
.back-link {
|
||||
display; -ms-flexbox;
|
||||
display: flex;
|
||||
margin-bottom: 16px;
|
||||
text-align: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
-ms-flex-pack: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
<?php outputSearchStyling(); ?>
|
||||
</style>
|
||||
<?php include(TEMPLATE_PATH . '../../head.txt'); ?>
|
||||
</head>
|
||||
|
||||
<body class="cust-help">
|
||||
<?php include(TEMPLATE_PATH . '../../header.txt'); ?>
|
||||
<div class="wrapper">
|
||||
<main class="main">
|
||||
<header class="header">
|
||||
<div class="contr">
|
||||
<div class="header__inner">
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>" class="header__logo">
|
||||
<?php echo $hesk_settings['hesk_title']; ?>
|
||||
</a>
|
||||
<?php if ($hesk_settings['can_sel_lang']): ?>
|
||||
<div class="header__lang">
|
||||
<form method="get" action="" style="margin:0;padding:0;border:0;white-space:nowrap;">
|
||||
<div class="dropdown-select center out-close">
|
||||
<select name="language" onchange="this.form.submit()">
|
||||
<?php hesk_listLanguages(); ?>
|
||||
</select>
|
||||
</div>
|
||||
<?php foreach (hesk_getCurrentGetParameters() as $key => $value): ?>
|
||||
<input type="hidden" name="<?php echo hesk_htmlentities($key); ?>"
|
||||
value="<?php echo hesk_htmlentities($value); ?>">
|
||||
<?php endforeach; ?>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="breadcrumbs">
|
||||
<div class="contr">
|
||||
<div class="breadcrumbs__inner">
|
||||
<a href="<?php echo $hesk_settings['site_url']; ?>">
|
||||
<span><?php echo $hesk_settings['site_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>">
|
||||
<span><?php echo $hesk_settings['hesk_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<?php if ($currentCategory['id'] != 1): ?>
|
||||
<a href="knowledgebase.php">
|
||||
<span><?php echo $hesklang['kb_text']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<?php endif; ?>
|
||||
<div class="last"><?php echo $currentCategory['name']; ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main__content">
|
||||
<div class="contr">
|
||||
<div class="help-search">
|
||||
<h2 class="search__title"><?php echo $hesklang['how_can_we_help']; ?></h2>
|
||||
<?php displayKbSearch(); ?>
|
||||
</div>
|
||||
<?php if ($noSearchResults): ?>
|
||||
<div class="alert warning">
|
||||
<div class="alert__inner">
|
||||
<div class="alert__head">
|
||||
<svg class="icon icon-warning">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-warning"></use>
|
||||
</svg>
|
||||
<h6 class="alert__title"><?php echo $hesklang['no_results_found']; ?></h6>
|
||||
</div>
|
||||
<p class="alert__descr"><?php echo $hesklang['nosr']; ?></p>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php foreach ($serviceMessages as $service_message): ?>
|
||||
<div class="alert <?php echo $service_message_type_to_class[$service_message['style']] ?>">
|
||||
<div class="alert__inner">
|
||||
<div class="alert__head">
|
||||
<svg class="icon icon-warning">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-warning"></use>
|
||||
</svg>
|
||||
<h6 class="alert__title"><?php echo $service_message['title']; ?></h6>
|
||||
</div>
|
||||
<p class="alert__descr">
|
||||
<?php echo $service_message['message']; ?>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
<div class="content">
|
||||
<div class="block__head">
|
||||
<div class="icon-in-circle">
|
||||
<svg class="icon icon-knowledge">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-knowledge"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<h3 class="h-3 ml-1"><?php echo $currentCategory['name']; ?></h3>
|
||||
</div>
|
||||
<?php if ($currentCategory['id'] != 1): ?>
|
||||
<a class="link back-link" href="<?php echo $parentLink; ?>">
|
||||
(<?php echo $hesklang['back']; ?>)
|
||||
</a>
|
||||
<?php
|
||||
endif;
|
||||
if (count($subcategories) > 0):
|
||||
?>
|
||||
<div class="topics">
|
||||
<?php foreach ($subcategories as $subcategory): ?>
|
||||
<div class="topics__block">
|
||||
<h5 class="topics__title">
|
||||
<svg class="icon icon-knowledge">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-knowledge"></use>
|
||||
</svg>
|
||||
<span>
|
||||
<a class="link" href="knowledgebase.php?category=<?php echo $subcategory['subcategory']['id']; ?>">
|
||||
<?php echo $subcategory['subcategory']['name']; ?>
|
||||
</a>
|
||||
</span>
|
||||
</h5>
|
||||
<ul class="topics__list">
|
||||
<?php foreach ($subcategory['articles'] as $article): ?>
|
||||
<li>
|
||||
<a href="knowledgebase.php?article=<?php echo $article['id']; ?>">
|
||||
<?php echo $article['subject']; ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php
|
||||
endforeach;
|
||||
if ($subcategory['displayShowMoreLink']):
|
||||
?>
|
||||
<li class="text-bold">
|
||||
<a href="knowledgebase.php?category=<?php echo $subcategory['subcategory']['id']; ?>">
|
||||
<?php echo $hesklang['m']; ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php if (count($articlesInCategory) > 0): ?>
|
||||
<article class="article">
|
||||
<div class="block__head">
|
||||
<h3 class="h-3 text-center"><?php echo $hesklang['ac']; ?></h3>
|
||||
</div>
|
||||
<?php foreach ($articlesInCategory as $article): ?>
|
||||
<a href="knowledgebase.php?article=<?php echo $article['id']; ?>" class="preview">
|
||||
<div class="icon-in-circle">
|
||||
<svg class="icon icon-knowledge">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-knowledge"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="preview__text">
|
||||
<h5 class="preview__title"><?php echo $article['subject']; ?></h5>
|
||||
<p class="navlink__descr"><?php echo $article['content_preview']; ?></p>
|
||||
</div>
|
||||
<div class="rate">
|
||||
<?php
|
||||
if ($hesk_settings['kb_rating']) {
|
||||
echo hesk3_get_customer_rating($article['rating']);
|
||||
}
|
||||
|
||||
if ($hesk_settings['kb_views'] && $hesk_settings['kb_rating']): ?>
|
||||
<span class="lightgrey">(<?php echo $article['views']; ?>)</span>
|
||||
<?php elseif ($hesk_settings['kb_views']): ?>
|
||||
<span class="lightgrey">
|
||||
<?php echo $hesklang['views'] ?>:
|
||||
<?php echo $article['views']; ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</article>
|
||||
<?php
|
||||
endif;
|
||||
if (count($topArticles) > 0 || count($latestArticles) > 0):
|
||||
?>
|
||||
<article class="article">
|
||||
<div class="tabbed__head">
|
||||
<ul class="tabbed__head_tabs">
|
||||
<?php
|
||||
if (count($topArticles) > 0):
|
||||
?>
|
||||
<li class="current" data-link="tab1">
|
||||
<span><?php echo $hesklang['popart']; ?></span>
|
||||
</li>
|
||||
<?php
|
||||
endif;
|
||||
if (count($latestArticles) > 0):
|
||||
?>
|
||||
<li data-link="tab2">
|
||||
<span><?php echo $hesklang['latart']; ?></span>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tabbed__tabs">
|
||||
<?php if (count($topArticles) > 0): ?>
|
||||
<div class="tabbed__tabs_tab is-visible" data-tab="tab1">
|
||||
<?php foreach ($topArticles as $article): ?>
|
||||
<a href="knowledgebase.php?article=<?php echo $article['id']; ?>" class="preview">
|
||||
<div class="icon-in-circle">
|
||||
<svg class="icon icon-knowledge">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-knowledge"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="preview__text">
|
||||
<h5 class="preview__title"><?php echo $article['subject'] ?></h5>
|
||||
<p>
|
||||
<span class="lightgrey"><?php echo $hesklang['kb_cat']; ?>:</span>
|
||||
<span class="ml-1"><?php echo $article['category']; ?></span>
|
||||
</p>
|
||||
<p class="navlink__descr">
|
||||
<?php echo $article['content_preview']; ?>
|
||||
</p>
|
||||
</div>
|
||||
<div class="rate">
|
||||
<?php
|
||||
if ($hesk_settings['kb_rating']) {
|
||||
echo hesk3_get_customer_rating($article['rating']);
|
||||
}
|
||||
|
||||
if ($hesk_settings['kb_views'] && $hesk_settings['kb_rating']): ?>
|
||||
<span class="lightgrey">(<?php echo $article['views']; ?>)</span>
|
||||
<?php elseif ($hesk_settings['kb_views']): ?>
|
||||
<span class="lightgrey">
|
||||
<?php echo $hesklang['views'] ?>:
|
||||
<?php echo $article['views']; ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php
|
||||
endif;
|
||||
if (count($latestArticles) > 0):
|
||||
?>
|
||||
<div class="tabbed__tabs_tab <?php echo count($topArticles) === 0 ? 'is-visible' : ''; ?>" data-tab="tab2">
|
||||
<?php foreach ($latestArticles as $article): ?>
|
||||
<a href="knowledgebase.php?article=<?php echo $article['id']; ?>" class="preview">
|
||||
<div class="icon-in-circle">
|
||||
<svg class="icon icon-knowledge">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-knowledge"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="preview__text">
|
||||
<h5 class="preview__title"><?php echo $article['subject'] ?></h5>
|
||||
<p>
|
||||
<span class="lightgrey"><?php echo $hesklang['kb_cat']; ?>:</span>
|
||||
<span class="ml-1"><?php echo $article['category']; ?></span>
|
||||
</p>
|
||||
<p class="navlink__descr">
|
||||
<?php echo $article['content_preview']; ?>
|
||||
</p>
|
||||
</div>
|
||||
<div class="rate">
|
||||
<?php
|
||||
if ($hesk_settings['kb_rating']) {
|
||||
echo hesk3_get_customer_rating($article['rating']);
|
||||
}
|
||||
|
||||
if ($hesk_settings['kb_views'] && $hesk_settings['kb_rating']): ?>
|
||||
<span class="lightgrey">(<?php echo $article['views']; ?>)</span>
|
||||
<?php elseif ($hesk_settings['kb_views']): ?>
|
||||
<span class="lightgrey">
|
||||
<?php echo $hesklang['views'] ?>:
|
||||
<?php echo $article['views']; ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</article>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
/*******************************************************************************
|
||||
The code below handles HESK licensing and must be included in the template.
|
||||
|
||||
Removing this code is a direct violation of the HESK End User License Agreement,
|
||||
will void all support and may result in unexpected behavior.
|
||||
|
||||
To purchase a HESK license and support future HESK development please visit:
|
||||
https://www.hesk.com/buy.php
|
||||
*******************************************************************************/
|
||||
$hesk_settings['hesk_license']('Qo8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPg0KICAgIDxwIGNsY
|
||||
XNzPSJ0ZXh0LWNlbnRlciI+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5oZXNrLmNvbSIgY
|
||||
2xhc3M9ImxpbmsiPkhlbHAgRGVzayBTb2Z0d2FyZTwvYT4gPHNwYW4gY2xhc3M9ImZvbnQtd2VpZ2h0L
|
||||
WJvbGQiPkhFU0s8L3NwYW4+LCBpbiBwYXJ0bmVyc2hpcCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vd3d3L
|
||||
nN5c2FpZC5jb20vP3V0bV9zb3VyY2U9SGVzayZhbXA7dXRtX21lZGl1bT1jcGMmYW1wO3V0bV9jYW1wY
|
||||
Wlnbj1IZXNrUHJvZHVjdF9Ub19IUCIgY2xhc3M9ImxpbmsiPlN5c0FpZCBUZWNobm9sb2dpZXM8L2E+P
|
||||
C9wPg0KPC9mb290ZXI+DQo=',"\104", "347db01e129edd4b3877f70ea6fed019462ae827");
|
||||
/*******************************************************************************
|
||||
END LICENSE CODE
|
||||
*******************************************************************************/
|
||||
?>
|
||||
</main>
|
||||
</div>
|
||||
<?php include(TEMPLATE_PATH . '../../footer.txt'); ?>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery-3.4.1.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/hesk_functions.js"></script>
|
||||
<?php outputSearchJavascript(); ?>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/svg4everybody.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.scrollbar.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/selectize.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.en.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.autocomplete.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
78
hesk/theme/hesk3/customer/maintenance.php
Normal file
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
global $hesk_settings, $hesklang;
|
||||
/**
|
||||
* @var boolean $heskInstalled
|
||||
*/
|
||||
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title><?php echo $hesk_settings['hesk_title']; ?></title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
|
||||
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="author" content="" />
|
||||
<meta name="theme-color" content="#fff" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<link rel="stylesheet" media="all" href="<?php echo TEMPLATE_PATH; ?>customer/css/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.css" />
|
||||
<?php include(TEMPLATE_PATH . '../../head.txt'); ?>
|
||||
</head>
|
||||
|
||||
<body class="cust-help">
|
||||
<?php include(TEMPLATE_PATH . '../../header.txt'); ?>
|
||||
<div class="wrapper">
|
||||
<main class="main">
|
||||
<header class="header">
|
||||
<div class="contr">
|
||||
<div class="header__inner">
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>" class="header__logo">
|
||||
<?php echo $hesk_settings['hesk_title']; ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="main__content">
|
||||
<div class="contr">
|
||||
<div class="main__content notice-flash">
|
||||
<div class="notification orange">
|
||||
<p><b><?php echo $heskInstalled ? $hesklang['hni1'] : $hesklang['mm1']; ?></b></p>
|
||||
<p><?php echo $heskInstalled ? $hesklang['hni2'] : $hesklang['mm2']; ?></p>
|
||||
<p><?php echo $heskInstalled ? $hesklang['hni3'] : $hesklang['mm3']; ?></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
/*******************************************************************************
|
||||
The code below handles HESK licensing and must be included in the template.
|
||||
|
||||
Removing this code is a direct violation of the HESK End User License Agreement,
|
||||
will void all support and may result in unexpected behavior.
|
||||
|
||||
To purchase a HESK license and support future HESK development please visit:
|
||||
https://www.hesk.com/buy.php
|
||||
*******************************************************************************/
|
||||
$hesk_settings['hesk_license']('Qo8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPg0KICAgIDxwIGNsY
|
||||
XNzPSJ0ZXh0LWNlbnRlciI+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5oZXNrLmNvbSIgY
|
||||
2xhc3M9ImxpbmsiPkhlbHAgRGVzayBTb2Z0d2FyZTwvYT4gPHNwYW4gY2xhc3M9ImZvbnQtd2VpZ2h0L
|
||||
WJvbGQiPkhFU0s8L3NwYW4+LCBpbiBwYXJ0bmVyc2hpcCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vd3d3L
|
||||
nN5c2FpZC5jb20vP3V0bV9zb3VyY2U9SGVzayZhbXA7dXRtX21lZGl1bT1jcGMmYW1wO3V0bV9jYW1wY
|
||||
Wlnbj1IZXNrUHJvZHVjdF9Ub19IUCIgY2xhc3M9ImxpbmsiPlN5c0FpZCBUZWNobm9sb2dpZXM8L2E+P
|
||||
C9wPg0KPC9mb290ZXI+DQo=',"\104", "347db01e129edd4b3877f70ea6fed019462ae827");
|
||||
/*******************************************************************************
|
||||
END LICENSE CODE
|
||||
*******************************************************************************/
|
||||
?>
|
||||
</main>
|
||||
</div>
|
||||
<?php include(TEMPLATE_PATH . '../../footer.txt'); ?>
|
||||
</body>
|
||||
</html>
|
||||
25
hesk/theme/hesk3/customer/util/alerts.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
|
||||
function hesk3_show_messages($messages) {
|
||||
$style_to_class = array(
|
||||
'0' => 'white',
|
||||
'1' => 'green',
|
||||
'2' => 'blue', // Info has no CSS class
|
||||
'3' => 'orange',
|
||||
'4' => 'red'
|
||||
);
|
||||
foreach ($messages as $message):
|
||||
?>
|
||||
<div class="main__content notice-flash">
|
||||
<div class="notification <?php echo $style_to_class[$message['style']]; ?>">
|
||||
<p><b><?php echo $message['title']; ?></b></p>
|
||||
<?php echo $message['message']; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
endforeach;
|
||||
}
|
||||
183
hesk/theme/hesk3/customer/util/custom-fields.php
Normal file
@@ -0,0 +1,183 @@
|
||||
<?php
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
|
||||
function hesk3_output_custom_fields($customFields) {
|
||||
global $hesk_settings, $hesklang;
|
||||
|
||||
foreach ($customFields as $customField) {
|
||||
switch ($customField['type']) {
|
||||
case 'radio':
|
||||
?>
|
||||
<div class="form-group <?php echo $customField['iserror'] ? 'isError' : '' ?>">
|
||||
<label class="label <?php echo $customField['req'] ? 'required' : '' ?>">
|
||||
<?php echo $customField['title']; ?>
|
||||
</label>
|
||||
<?php
|
||||
$i = 0;
|
||||
foreach ($customField['value']['options'] as $option):
|
||||
?>
|
||||
<div class="radio-custom">
|
||||
<input type="radio" name="<?php echo $customField['name'] ?>"
|
||||
id="<?php echo $customField['name'].$i; ?>"
|
||||
value="<?php echo $option['value']; ?>"
|
||||
<?php echo $option['selected'] ? 'checked' : ''; ?>>
|
||||
<label for="<?php echo $customField['name'].$i; ?>">
|
||||
<?php echo $option['value']; ?>
|
||||
</label>
|
||||
</div>
|
||||
<?php
|
||||
$i++;
|
||||
endforeach; ?>
|
||||
</div>
|
||||
<?php
|
||||
break;
|
||||
case 'select':
|
||||
?>
|
||||
<section class="param blue-select">
|
||||
<span class="label <?php echo $customField['req'] ? 'required' : '' ?>"><?php echo $customField['title']; ?></span>
|
||||
<div class="dropdown-select center out-close">
|
||||
<select name="<?php echo $customField['name']; ?>">
|
||||
<?php if (!empty($customField['value']['show_select'])): ?>
|
||||
<option value=""><?php echo $hesklang['select']; ?></option>
|
||||
<?php
|
||||
endif;
|
||||
$i = 0;
|
||||
foreach ($customField['value']['options'] as $option):
|
||||
?>
|
||||
<option value="<?php echo hesk_htmlentities($option['value']); ?>" <?php echo $option['selected'] ? 'selected' : '' ?>><?php echo $option['value']; ?></option>
|
||||
<?php
|
||||
$i++;
|
||||
endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
break;
|
||||
case 'checkbox':
|
||||
?>
|
||||
<section class="param checkboxs">
|
||||
<label class="label <?php echo $customField['req'] ? 'required' : '' ?>"><?php echo $customField['title']; ?></label>
|
||||
<?php
|
||||
$i = 0;
|
||||
foreach ($customField['value']['options'] as $option):
|
||||
?>
|
||||
<div class="checkbox-custom">
|
||||
<input type="checkbox" id="<?php echo $customField['name'].$i; ?>"
|
||||
name="<?php echo $customField['name']; ?>[]" value="<?php echo $option['value']; ?>"
|
||||
<?php if ($customField['iserror']): ?>class="isError"<?php endif; ?>
|
||||
<?php echo $option['selected'] ? 'checked' : ''; ?>>
|
||||
<label for="<?php echo $customField['name'].$i; ?>"><?php echo $option['value']; ?></label>
|
||||
</div>
|
||||
<?php
|
||||
$i++;
|
||||
endforeach;
|
||||
?>
|
||||
</section>
|
||||
<?php
|
||||
break;
|
||||
case 'textarea':
|
||||
?>
|
||||
<div class="form-group">
|
||||
<label class="label <?php echo $customField['req'] ? 'required' : '' ?>"><?php echo $customField['title']; ?></label>
|
||||
<textarea name="<?php echo $customField['name']; ?>"
|
||||
rows="<?php echo intval($customField['value']['rows']); ?>"
|
||||
cols="<?php echo intval($customField['value']['cols']); ?>"
|
||||
class="form-control <?php if ($customField['iserror']): ?><?php endif; ?>"
|
||||
<?php echo $customField['req'] ? 'required' : '' ?>><?php echo $customField['original_value']; ?></textarea>
|
||||
</div>
|
||||
<?php
|
||||
break;
|
||||
case 'date':
|
||||
?>
|
||||
<section class="param calendar">
|
||||
<label class="label <?php echo $customField['req'] ? 'required' : '' ?>"><?php echo $customField['title']; ?></label>
|
||||
<div class="calendar--button">
|
||||
<button type="button">
|
||||
<svg class="icon icon-calendar">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-calendar"></use>
|
||||
</svg>
|
||||
</button>
|
||||
<input name="<?php echo $customField['name']; ?>"
|
||||
value="<?php echo $customField['original_value']; ?>"
|
||||
type="text"
|
||||
class="datepicker">
|
||||
</div>
|
||||
<div class="calendar--value" <?php if ($customField['original_value']) { ?>style="display: block"<?php } ?>>
|
||||
<span><?php echo $customField['original_value']; ?></span>
|
||||
<i class="close">
|
||||
<svg class="icon icon-close">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-close"></use>
|
||||
</svg>
|
||||
</i>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
break;
|
||||
case 'email':
|
||||
$suggest = $hesk_settings['detect_typos'] ?
|
||||
'onblur="HESK_FUNCTIONS.suggestEmail(\''.$customField['name'].'\', \''.$customField['name'].'_suggestions\', 0'.($customField['value']['multiple'] ? ',1' : '').')"' :
|
||||
'';
|
||||
?>
|
||||
<div class="form-group">
|
||||
<label class="label <?php echo $customField['req'] ? 'required' : '' ?>">
|
||||
<?php echo $customField['title']; ?>
|
||||
</label>
|
||||
<input type="email"
|
||||
id="<?php echo $customField['name']; ?>"
|
||||
class="form-control"
|
||||
value="<?php echo $customField['original_value']; ?>"
|
||||
name="<?php echo $customField['name']; ?>"
|
||||
<?php echo $customField['req'] ? 'required' : '' ?>
|
||||
<?php echo $suggest; ?>>
|
||||
<div id="<?php echo $customField['name']; ?>_suggestions"></div>
|
||||
</div>
|
||||
<?php
|
||||
break;
|
||||
case 'hidden':
|
||||
?>
|
||||
<input type="hidden"
|
||||
name="<?php echo $customField['name']; ?>"
|
||||
value="<?php echo $customField['value']['default_value']; ?>">
|
||||
<?php
|
||||
break;
|
||||
default:
|
||||
?>
|
||||
<div class="form-group">
|
||||
<label class="label <?php echo $customField['req'] ? 'required' : '' ?>">
|
||||
<?php echo $customField['title']; ?>
|
||||
</label>
|
||||
<input type="text" class="form-control <?php if ($customField['iserror']) { ?>isError<?php } ?>"
|
||||
value="<?php echo $customField['value']['default_value']; ?>"
|
||||
name="<?php echo $customField['name']; ?>"
|
||||
<?php echo $customField['req'] ? 'required' : '' ?>>
|
||||
</div>
|
||||
<?php
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function hesk3_output_custom_fields_for_display($customFields) {
|
||||
foreach ($customFields as $customField)
|
||||
{
|
||||
switch ($customField['type'])
|
||||
{
|
||||
case 'email':
|
||||
$customField['value'] = '<a href="mailto:'.$customField['value'].'">'.$customField['value'].'</a>';
|
||||
break;
|
||||
case 'date':
|
||||
$customField['value'] = hesk_custom_date_display_format($customField['value'], $customField['date_format']);
|
||||
break;
|
||||
}
|
||||
|
||||
echo '
|
||||
<div>
|
||||
<span style="color: #959eb0">'.$customField['name:'].'</span>
|
||||
<span>'.$customField['value'].'</span>
|
||||
</div>
|
||||
';
|
||||
}
|
||||
}
|
||||
91
hesk/theme/hesk3/customer/util/kb-search.php
Normal file
@@ -0,0 +1,91 @@
|
||||
<?php
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
|
||||
function displayKbSearch() {
|
||||
global $hesk_settings, $hesklang;
|
||||
|
||||
if ($hesk_settings['kb_search'] && $hesk_settings['kb_enable']): ?>
|
||||
<form action="knowledgebase.php" method="get" style="display: inline; margin: 0;" name="searchform">
|
||||
<div class="search__form">
|
||||
<div class="form-group">
|
||||
<button class="btn search__submit">
|
||||
<svg class="icon icon-search">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-search"></use>
|
||||
</svg>
|
||||
</button>
|
||||
<input id="kb_search" name="search" class="form-control" type="text" placeholder="<?php echo $hesklang['search_for_articles']; ?>">
|
||||
<?php if ($hesk_settings['kb_search'] === 1): ?>
|
||||
<button id="search-button" type="submit" class="btn btn-full"><?php echo $hesklang['search']; ?></button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="kb-suggestions" style="margin: 0 auto; width: 100%; max-width: 752px; display: none">
|
||||
<div class="alert none">
|
||||
<div class="alert__inner">
|
||||
<div class="alert__head">
|
||||
<h6 class="alert__title"><?php echo $hesklang['sc']; ?>:</h6>
|
||||
</div>
|
||||
<ul id="kb-suggestion-list" class="type--list">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<?php
|
||||
endif;
|
||||
}
|
||||
|
||||
function outputSearchStyling() {
|
||||
global $hesk_settings;
|
||||
|
||||
if (!$hesk_settings['kb_search'] || !$hesk_settings['kb_enable']) return;
|
||||
|
||||
if ($hesk_settings['kb_search'] === 1): ?>
|
||||
#kb_search {
|
||||
width: 70%;
|
||||
}
|
||||
#search-button {
|
||||
width: 30%;
|
||||
margin-left: 10px;
|
||||
height: inherit;
|
||||
}
|
||||
<?php
|
||||
endif;
|
||||
}
|
||||
|
||||
function outputSearchJavascript() {
|
||||
global $hesk_settings, $hesklang;
|
||||
|
||||
if (!$hesk_settings['kb_search'] || !$hesk_settings['kb_enable']) return;
|
||||
|
||||
?>
|
||||
<script>
|
||||
var noArticlesFoundText = <?php echo json_encode($hesklang['nsfo']); ?>;
|
||||
|
||||
$(document).ready(function() {
|
||||
HESK_FUNCTIONS.getKbSearchSuggestions($('#kb_search'), function(data) {
|
||||
$('.kb-suggestions').show();
|
||||
var $suggestionList = $('#kb-suggestion-list');
|
||||
$suggestionList.html('');
|
||||
var format = '<li style="margin-bottom: 5px">' +
|
||||
'<a class="link" href="knowledgebase.php?article={0}">{1}</a>' +
|
||||
'<br>' +
|
||||
'{2}' +
|
||||
'</li>';
|
||||
var results = false;
|
||||
$.each(data, function() {
|
||||
results = true;
|
||||
$('#kb-suggestion-list').append(format.replace('{0}', this.id).replace('{1}', this.subject).replace('{2}', this.contentPreview));
|
||||
});
|
||||
|
||||
if (!results) {
|
||||
$suggestionList.append('<li>' + noArticlesFoundText + '</li>');
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?php
|
||||
}
|
||||
21
hesk/theme/hesk3/customer/util/rating.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
|
||||
function hesk3_get_customer_rating($num) {
|
||||
$rounded_num = intval(hesk_round_to_half($num) * 10);
|
||||
|
||||
return '
|
||||
<div class="star-rate rate-'. $rounded_num .'">
|
||||
<svg class="icon icon-star-stroke">
|
||||
<use xlink:href="'. HESK_PATH .'img/sprite.svg#icon-star-stroke"></use>
|
||||
</svg>
|
||||
<div class="star-filled">
|
||||
<svg class="icon icon-star-filled">
|
||||
<use xlink:href="'. HESK_PATH .'img/sprite.svg#icon-star-filled"></use>
|
||||
</svg>
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
214
hesk/theme/hesk3/customer/view-ticket/form.php
Normal file
@@ -0,0 +1,214 @@
|
||||
<?php
|
||||
global $hesk_settings, $hesklang;
|
||||
/**
|
||||
* @var string $trackingId
|
||||
* @var string $email
|
||||
* @var boolean $rememberEmail
|
||||
* @var boolean $submittedForgotTrackingIdForm
|
||||
*/
|
||||
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
|
||||
require_once(TEMPLATE_PATH . 'customer/util/alerts.php');
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title><?php echo $hesk_settings['hesk_title']; ?></title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
|
||||
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="author" content="" />
|
||||
<meta name="theme-color" content="#fff" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<link rel="stylesheet" media="all" href="<?php echo TEMPLATE_PATH; ?>customer/css/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.css" />
|
||||
|
||||
<style>
|
||||
#forgot-tid-submit {
|
||||
width: 200px;
|
||||
}
|
||||
</style>
|
||||
<?php include(TEMPLATE_PATH . '../../head.txt'); ?>
|
||||
</head>
|
||||
|
||||
<body class="cust-help">
|
||||
<?php include(TEMPLATE_PATH . '../../header.txt'); ?>
|
||||
<div class="wrapper">
|
||||
<main class="main">
|
||||
<header class="header">
|
||||
<div class="contr">
|
||||
<div class="header__inner">
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>" class="header__logo">
|
||||
<?php echo $hesk_settings['hesk_title']; ?>
|
||||
</a>
|
||||
<?php if ($hesk_settings['can_sel_lang']): ?>
|
||||
<div class="header__lang">
|
||||
<form method="get" action="" style="margin:0;padding:0;border:0;white-space:nowrap;">
|
||||
<div class="dropdown-select center out-close">
|
||||
<select name="language" onchange="this.form.submit()">
|
||||
<?php hesk_listLanguages(); ?>
|
||||
</select>
|
||||
</div>
|
||||
<?php foreach (hesk_getCurrentGetParameters() as $key => $value): ?>
|
||||
<input type="hidden" name="<?php echo hesk_htmlentities($key); ?>"
|
||||
value="<?php echo hesk_htmlentities($value); ?>">
|
||||
<?php endforeach; ?>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="breadcrumbs">
|
||||
<div class="contr">
|
||||
<div class="breadcrumbs__inner">
|
||||
<a href="<?php echo $hesk_settings['site_url']; ?>">
|
||||
<span><?php echo $hesk_settings['site_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>">
|
||||
<span><?php echo $hesk_settings['hesk_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<div class="last"><?php echo $hesklang['view_ticket']; ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main__content">
|
||||
<div class="contr">
|
||||
<div style="margin-bottom: 20px;">
|
||||
<?php
|
||||
hesk3_show_messages($messages);
|
||||
?>
|
||||
</div>
|
||||
<h3 class="article__heading article__heading--form">
|
||||
<div class="icon-in-circle">
|
||||
<svg class="icon icon-document">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-document"></use>
|
||||
</svg>
|
||||
</div>
|
||||
<span class="ml-1"><?php echo $hesklang['view_existing']; ?></span>
|
||||
</h3>
|
||||
<form action="ticket.php" method="get" name="form2" id="formNeedValidation" class="form form-submit-ticket ticket-create" novalidate>
|
||||
<section class="form-groups centered">
|
||||
<div class="form-group required">
|
||||
<label class="label"><?php echo $hesklang['ticket_trackID']; ?></label>
|
||||
<input type="text" name="track" maxlength="20" class="form-control" value="<?php echo $trackingId; ?>" required>
|
||||
<div class="form-control__error"><?php echo $hesklang['this_field_is_required']; ?></div>
|
||||
</div>
|
||||
<?php
|
||||
$tmp = '';
|
||||
if ($hesk_settings['email_view_ticket'])
|
||||
{
|
||||
$tmp = 'document.form1.email.value=document.form2.e.value;';
|
||||
?>
|
||||
<div class="form-group required">
|
||||
<label class="label"><?php echo $hesklang['email']; ?></label>
|
||||
<input type="email" class="form-control" name="e" size="35" value="<?php echo $email; ?>" required>
|
||||
<div class="form-control__error"><?php echo $hesklang['this_field_is_required']; ?></div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="checkbox-custom">
|
||||
<input type="hidden" name="f" value="1">
|
||||
<input type="checkbox" name="r" value="Y" id="inputRememberMyEmail" <?php if ($rememberEmail) { ?>checked<?php } ?>>
|
||||
<label for="inputRememberMyEmail"><?php echo $hesklang['rem_email']; ?></label>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</section>
|
||||
<div class="form-footer">
|
||||
<button type="submit" class="btn btn-full" ripple="ripple">View Ticket</button>
|
||||
<a href="javascript:" onclick="$('#forgot').toggle()" class="link"><?php echo $hesklang['forgot_tid']; ?></a>
|
||||
</div>
|
||||
</form>
|
||||
<div id="forgot" style="display: <?php echo $submittedForgotTrackingIdForm ? 'block' : 'none'; ?>;">
|
||||
<div class="alert warning">
|
||||
<div class="alert__inner">
|
||||
<div class="alert__head">
|
||||
<svg class="icon icon-warning">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-warning"></use>
|
||||
</svg>
|
||||
<h6 class="alert__title"><?php echo $hesklang['forgot_tid'];?></h6>
|
||||
</div>
|
||||
<div class="alert__descr">
|
||||
<p><?php echo $hesklang['tid_mail']; ?></p>
|
||||
<form action="index.php" method="post" name="form1" class="form">
|
||||
<div class="form-group">
|
||||
<label class="label" style="display: none"><?php echo $hesklang['email']; ?></label>
|
||||
<input type="email" class="form-control" name="email" value="<?php echo $email; ?>">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="radio-custom">
|
||||
<input type="radio" name="open_only" id="open_only1" value="1" <?php echo $hesk_settings['open_only'] ? 'checked' : ''; ?>>
|
||||
<label for="open_only1">
|
||||
<?php echo $hesklang['oon1']; ?>
|
||||
</label>
|
||||
</div>
|
||||
<div class="radio-custom">
|
||||
<input type="radio" name="open_only" id="open_only0" value="0" <?php echo !$hesk_settings['open_only'] ? 'checked' : ''; ?>>
|
||||
<label for="open_only0">
|
||||
<?php echo $hesklang['oon2']; ?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="a" value="forgot_tid">
|
||||
<button id="forgot-tid-submit" type="submit" class="btn btn-full"><?php echo $hesklang['tid_send']; ?></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
/*******************************************************************************
|
||||
The code below handles HESK licensing and must be included in the template.
|
||||
|
||||
Removing this code is a direct violation of the HESK End User License Agreement,
|
||||
will void all support and may result in unexpected behavior.
|
||||
|
||||
To purchase a HESK license and support future HESK development please visit:
|
||||
https://www.hesk.com/buy.php
|
||||
*******************************************************************************/
|
||||
$hesk_settings['hesk_license']('Qo8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPg0KICAgIDxwIGNsY
|
||||
XNzPSJ0ZXh0LWNlbnRlciI+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5oZXNrLmNvbSIgY
|
||||
2xhc3M9ImxpbmsiPkhlbHAgRGVzayBTb2Z0d2FyZTwvYT4gPHNwYW4gY2xhc3M9ImZvbnQtd2VpZ2h0L
|
||||
WJvbGQiPkhFU0s8L3NwYW4+LCBpbiBwYXJ0bmVyc2hpcCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vd3d3L
|
||||
nN5c2FpZC5jb20vP3V0bV9zb3VyY2U9SGVzayZhbXA7dXRtX21lZGl1bT1jcGMmYW1wO3V0bV9jYW1wY
|
||||
Wlnbj1IZXNrUHJvZHVjdF9Ub19IUCIgY2xhc3M9ImxpbmsiPlN5c0FpZCBUZWNobm9sb2dpZXM8L2E+P
|
||||
C9wPg0KPC9mb290ZXI+DQo=',"\104", "347db01e129edd4b3877f70ea6fed019462ae827");
|
||||
/*******************************************************************************
|
||||
END LICENSE CODE
|
||||
*******************************************************************************/
|
||||
?>
|
||||
</main>
|
||||
</div>
|
||||
<?php include(TEMPLATE_PATH . '../../footer.txt'); ?>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery-3.4.1.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/hesk_functions.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/svg4everybody.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.scrollbar.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/selectize.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.en.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.autocomplete.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#select_category').selectize();
|
||||
});
|
||||
</script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
64
hesk/theme/hesk3/customer/view-ticket/partial/add-reply.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
|
||||
function showReplyForm($trackingId, $email, $reopen) {
|
||||
global $hesk_settings, $hesklang;
|
||||
?>
|
||||
<article class="ticket__body_block">
|
||||
<div class="text-bold"><?php echo $hesklang['add_reply']; ?></div>
|
||||
<form method="post" action="reply_ticket.php" class="form form--reply" enctype="multipart/form-data">
|
||||
<div class="form-group required">
|
||||
<label class="label"><?php echo $hesklang['message']; ?></label>
|
||||
<textarea name="message" class="form-control"><?php if (isset($_SESSION['ticket_message'])) {
|
||||
echo stripslashes(hesk_input($_SESSION['ticket_message']));
|
||||
} ?></textarea>
|
||||
</div>
|
||||
<?php
|
||||
/* attachments */
|
||||
if ($hesk_settings['attachments']['use']) {
|
||||
?>
|
||||
<section class="param param--attach">
|
||||
<span class="label"><?php echo $hesklang['attachments']; ?></span>
|
||||
<div class="attach">
|
||||
<?php
|
||||
for ($i = 1; $i <= $hesk_settings['attachments']['max_number']; $i++) {
|
||||
echo '<input type="file" name="attachment[' . $i . ']" size="50"><br>';
|
||||
}
|
||||
?>
|
||||
<div class="attach-tooltype">
|
||||
<span><?php echo sprintf($hesklang['maximum_x_attachments'], $hesk_settings['attachments']['max_number']); ?></span>
|
||||
<a onclick="HESK_FUNCTIONS.openWindow('file_limits.php',250,500)">
|
||||
<div class="tooltype right">
|
||||
<svg class="icon icon-info">
|
||||
<use
|
||||
xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-info"></use>
|
||||
</svg>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<section class="form__submit">
|
||||
<input type="hidden" name="token" value="<?php hesk_token_echo(); ?>">
|
||||
<input type="hidden" name="orig_track" value="<?php echo $trackingId; ?>">
|
||||
<button type="submit" class="btn btn-full"
|
||||
ripple="ripple"><?php echo $hesklang['submit_reply']; ?></button>
|
||||
<?php
|
||||
if ($hesk_settings['email_view_ticket']) {
|
||||
echo '<input type="hidden" name="e" value="' . $email . '">';
|
||||
}
|
||||
if ($reopen) {
|
||||
echo '<input type="hidden" name="reopen" value="1">';
|
||||
}
|
||||
?>
|
||||
</section>
|
||||
</form>
|
||||
</article>
|
||||
<?php
|
||||
}
|
||||
360
hesk/theme/hesk3/customer/view-ticket/view-ticket.php
Normal file
@@ -0,0 +1,360 @@
|
||||
<?php
|
||||
global $hesk_settings, $hesklang;
|
||||
/**
|
||||
* @var array $ticket
|
||||
* @var boolean $ticketJustReopened
|
||||
* @var string $trackingID
|
||||
* @var int $numberOfReplies
|
||||
* @var array $category
|
||||
* @var array $replies
|
||||
* @var string $email
|
||||
* @var array $customFieldsBeforeMessage
|
||||
* @var array $customFieldsAfterMessage
|
||||
*/
|
||||
|
||||
// This guard is used to ensure that users can't hit this outside of actual HESK code
|
||||
if (!defined('IN_SCRIPT')) {
|
||||
die();
|
||||
}
|
||||
|
||||
require_once(TEMPLATE_PATH . 'customer/util/alerts.php');
|
||||
require_once(TEMPLATE_PATH . 'customer/util/custom-fields.php');
|
||||
require(TEMPLATE_PATH . 'customer/view-ticket/partial/add-reply.php');
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title><?php echo $hesk_settings['hesk_title']; ?></title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
|
||||
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
<meta name="author" content="" />
|
||||
<meta name="theme-color" content="#fff" />
|
||||
<meta name="format-detection" content="telephone=no" />
|
||||
<link rel="stylesheet" media="all" href="<?php echo TEMPLATE_PATH; ?>customer/css/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.css" />
|
||||
<?php include(TEMPLATE_PATH . '../../head.txt'); ?>
|
||||
</head>
|
||||
|
||||
<body class="cust-help">
|
||||
<?php include(TEMPLATE_PATH . '../../header.txt'); ?>
|
||||
<div class="wrapper">
|
||||
<main class="main">
|
||||
<header class="header">
|
||||
<div class="contr">
|
||||
<div class="header__inner">
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>" class="header__logo">
|
||||
<?php echo $hesk_settings['hesk_title']; ?>
|
||||
</a>
|
||||
<?php if ($hesk_settings['can_sel_lang']): ?>
|
||||
<div class="header__lang">
|
||||
<form method="get" action="" style="margin:0;padding:0;border:0;white-space:nowrap;">
|
||||
<div class="dropdown-select center out-close">
|
||||
<select name="language" onchange="this.form.submit()">
|
||||
<?php hesk_listLanguages(); ?>
|
||||
</select>
|
||||
</div>
|
||||
<?php foreach (hesk_getCurrentGetParameters() as $key => $value): ?>
|
||||
<input type="hidden" name="<?php echo hesk_htmlentities($key); ?>"
|
||||
value="<?php echo hesk_htmlentities($value); ?>">
|
||||
<?php endforeach; ?>
|
||||
</form>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div class="breadcrumbs">
|
||||
<div class="contr">
|
||||
<div class="breadcrumbs__inner">
|
||||
<a href="<?php echo $hesk_settings['site_url']; ?>">
|
||||
<span><?php echo $hesk_settings['site_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<a href="<?php echo $hesk_settings['hesk_url']; ?>">
|
||||
<span><?php echo $hesk_settings['hesk_title']; ?></span>
|
||||
</a>
|
||||
<svg class="icon icon-chevron-right">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-right"></use>
|
||||
</svg>
|
||||
<div class="last"><?php echo $hesklang['your_ticket']; ?></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main__content">
|
||||
<div class="contr">
|
||||
<div style="margin-bottom: 20px;">
|
||||
<?php
|
||||
hesk3_show_messages($messages);
|
||||
?>
|
||||
</div>
|
||||
<div class="ticket">
|
||||
<div class="ticket__body">
|
||||
<?php
|
||||
// Print "Submit a reply" form?
|
||||
if (($ticket['locked'] != 1 && $ticket['status'] != 3 && $hesk_settings['reply_top'] == 1) ||
|
||||
$ticketJustReopened) {
|
||||
showReplyForm($trackingID, $email, $ticketJustReopened);
|
||||
}
|
||||
|
||||
if ($hesk_settings['new_top']) {
|
||||
displayReplies($replies, $trackingID);
|
||||
}
|
||||
?>
|
||||
<article class="ticket__body_block">
|
||||
<h3><?php echo $ticket['subject']; ?></h3>
|
||||
<div class="block--head">
|
||||
<div class="d-flex">
|
||||
<div class="contact">
|
||||
<span><?php echo $hesklang['name']; ?>:</span>
|
||||
<span><?php echo $ticket['name']; ?></span>
|
||||
</div>
|
||||
<?php if ($ticket['email'] != ''): ?>
|
||||
<div class="contact">
|
||||
<span><?php echo $hesklang['email']; ?>:</span>
|
||||
<a href="mailto:<?php echo $ticket['email']; ?>" class="link">
|
||||
<?php echo $ticket['email']; ?>
|
||||
</a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<time class="date"><?php echo hesk_date($ticket['dt'], true); ?></time>
|
||||
</div>
|
||||
<a href="print.php?track=<?php echo $ticket['trackid'].$hesk_settings['e_query']; ?>" class="btn btn-action">
|
||||
<svg class="icon icon-print">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-print"></use>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<?php
|
||||
hesk3_output_custom_fields_for_display($customFieldsBeforeMessage);
|
||||
if ($ticket['message'] != ''):
|
||||
?>
|
||||
<div class="block--description">
|
||||
<p><?php echo $ticket['message']; ?></p>
|
||||
</div>
|
||||
<?php
|
||||
endif;
|
||||
hesk3_output_custom_fields_for_display($customFieldsAfterMessage);
|
||||
listAttachments($ticket['attachments'], $trackingID);
|
||||
?>
|
||||
</article>
|
||||
<?php
|
||||
if (!$hesk_settings['new_top']) {
|
||||
displayReplies($replies, $trackingID);
|
||||
}
|
||||
|
||||
if ($ticket['locked'] != 1 && $ticket['status'] != 3 && !$hesk_settings['reply_top']) {
|
||||
showReplyForm($trackingID, $email, false);
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<div class="ticket__params">
|
||||
<section class="params--block details collapsed-on-xs">
|
||||
<h4 class="accordion-title">
|
||||
<span><?php echo $hesklang['ticket_details']; ?></span>
|
||||
<a href="ticket.php?track=<?php echo $ticket['trackid'].$hesk_settings['e_query']; ?>" class="btn link">
|
||||
<svg class="icon icon-refresh">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-refresh"></use>
|
||||
</svg>
|
||||
<span class="ml-1"><?php echo $hesklang['refresh_page']; ?></span>
|
||||
</a>
|
||||
<button class="btn btn-toggler">
|
||||
<svg class="icon icon-chevron-down">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-chevron-down"></use>
|
||||
</svg>
|
||||
</button>
|
||||
</h4>
|
||||
<div class="accordion-body">
|
||||
<div class="row">
|
||||
<div class="title"><?php echo $hesklang['trackID']; ?>:</div>
|
||||
<?php if ($hesk_settings['sequential']): ?>
|
||||
<div class="value">
|
||||
<?php echo $trackingID; ?>
|
||||
(<?php echo $hesklang['seqid']; ?>: <?php echo $ticket['id']; ?>)
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<div class="value">
|
||||
<?php echo $trackingID; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="title"><?php echo $hesklang['ticket_status']; ?>:</div>
|
||||
<?php
|
||||
if ($ticket['status'] == 3) {
|
||||
$status_action = ($ticket['locked'] != 1 && $hesk_settings['custopen']) ? ' <a class="link" href="change_status.php?track='.$trackingID.$hesk_settings['e_query'].'&s=2&Refresh='.rand(10000,99999).'&token='.hesk_token_echo(0).'">'.$hesklang['open_action'].'</a>' : '';
|
||||
} elseif ($hesk_settings['custclose']) {
|
||||
$status_action = ' <a class="link ml-1" href="change_status.php?track='.$trackingID.$hesk_settings['e_query'].'&s=3&Refresh='.rand(10000,99999).'&token='.hesk_token_echo(0).'">'.$hesklang['close_action'].'</a>';
|
||||
} else {
|
||||
$status_action = '';
|
||||
}
|
||||
?>
|
||||
<div class="value"><?php echo hesk_get_ticket_status($ticket['status'], $status_action); ?></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="title"><?php echo $hesklang['created_on']; ?>:</div>
|
||||
<div class="value"><?php echo hesk_date($ticket['dt'], true); ?></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="title"><?php echo $hesklang['last_update']; ?>:</div>
|
||||
<div class="value"><?php echo hesk_date($ticket['lastchange'], true); ?></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="title"><?php echo $hesklang['last_replier']; ?>:</div>
|
||||
<div class="value"><?php echo $ticket['repliername']; ?></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="title"><?php echo $hesklang['category']; ?>:</div>
|
||||
<div class="value"><?php echo $category['name']; ?></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="title"><?php echo $hesklang['replies']; ?>:</div>
|
||||
<div class="value"><?php echo $numberOfReplies; ?></div>
|
||||
</div>
|
||||
<?php if ($hesk_settings['cust_urgency']): ?>
|
||||
<div class="row">
|
||||
<div class="title"><?php echo $hesklang['priority']; ?>:</div>
|
||||
<?php
|
||||
$priorities = array(
|
||||
0 => 'critical',
|
||||
1 => 'high',
|
||||
2 => 'medium',
|
||||
3 => 'low'
|
||||
);
|
||||
$priorityValue = $priorities[$ticket['priority']];
|
||||
?>
|
||||
<div class="value with-label priority" data-value="<?php echo $priorityValue; ?>">
|
||||
<span><?php echo $hesklang[$priorityValue]; ?></span>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
/*******************************************************************************
|
||||
The code below handles HESK licensing and must be included in the template.
|
||||
|
||||
Removing this code is a direct violation of the HESK End User License Agreement,
|
||||
will void all support and may result in unexpected behavior.
|
||||
|
||||
To purchase a HESK license and support future HESK development please visit:
|
||||
https://www.hesk.com/buy.php
|
||||
*******************************************************************************/
|
||||
$hesk_settings['hesk_license']('Qo8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPg0KICAgIDxwIGNsY
|
||||
XNzPSJ0ZXh0LWNlbnRlciI+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5oZXNrLmNvbSIgY
|
||||
2xhc3M9ImxpbmsiPkhlbHAgRGVzayBTb2Z0d2FyZTwvYT4gPHNwYW4gY2xhc3M9ImZvbnQtd2VpZ2h0L
|
||||
WJvbGQiPkhFU0s8L3NwYW4+LCBpbiBwYXJ0bmVyc2hpcCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vd3d3L
|
||||
nN5c2FpZC5jb20vP3V0bV9zb3VyY2U9SGVzayZhbXA7dXRtX21lZGl1bT1jcGMmYW1wO3V0bV9jYW1wY
|
||||
Wlnbj1IZXNrUHJvZHVjdF9Ub19IUCIgY2xhc3M9ImxpbmsiPlN5c0FpZCBUZWNobm9sb2dpZXM8L2E+P
|
||||
C9wPg0KPC9mb290ZXI+DQo=',"\104", "347db01e129edd4b3877f70ea6fed019462ae827");
|
||||
/*******************************************************************************
|
||||
END LICENSE CODE
|
||||
*******************************************************************************/
|
||||
?>
|
||||
</main>
|
||||
</div>
|
||||
<?php include(TEMPLATE_PATH . '../../footer.txt'); ?>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery-3.4.1.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/hesk_functions.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/svg4everybody.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.scrollbar.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/selectize.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.min.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/datepicker.en.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/jquery.autocomplete.js"></script>
|
||||
<script src="<?php echo TEMPLATE_PATH; ?>customer/js/app<?php echo $hesk_settings['debug_mode'] ? '' : '.min'; ?>.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
<?php
|
||||
// Helper functions
|
||||
function displayReplies($replies, $trackingId) {
|
||||
global $hesklang, $hesk_settings;
|
||||
|
||||
foreach ($replies as $reply) {
|
||||
/* Store unread reply IDs for later */
|
||||
if ($reply['staffid'] && !$reply['read']) {
|
||||
$unread_replies[] = $reply['id'];
|
||||
}
|
||||
|
||||
$reply['dt'] = hesk_date($reply['dt'], true);
|
||||
?>
|
||||
<article class="ticket__body_block <?php if ($reply['staffid']) { ?>response<?php } ?>">
|
||||
<div class="block--head">
|
||||
<div class="d-flex">
|
||||
<div class="contact">
|
||||
<span><?php echo $hesklang['name']; ?>:</span>
|
||||
<span><?php echo $reply['name']; ?></span>
|
||||
</div>
|
||||
<time class="date"><?php echo $reply['dt']; ?></time>
|
||||
</div>
|
||||
<a href="print.php?track=<?php echo $trackingId.$hesk_settings['e_query']; ?>" class="btn btn-action">
|
||||
<svg class="icon icon-print">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-print"></use>
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<div class="block--description">
|
||||
<p><?php echo $reply['message']; ?></p>
|
||||
</div>
|
||||
<?php listAttachments($reply['attachments'], $trackingId); ?>
|
||||
<?php if ($hesk_settings['rating'] && $reply['staffid']): ?>
|
||||
<div class="ticket__block-footer">
|
||||
<?php
|
||||
if ($reply['rating'] == 1) {
|
||||
echo $hesklang['rnh'];
|
||||
} elseif ($reply['rating'] == 5) {
|
||||
echo $hesklang['rh'];
|
||||
} else { ?>
|
||||
<div id="rating<?php echo $reply['id']; ?>">
|
||||
<span><?php echo $hesklang['r']; ?></span>
|
||||
<a href="javascript:" onclick="HESK_FUNCTIONS.rate('rate.php?rating=5&id=<?php echo $reply['id']; ?>&track=<?php echo $trackingId; ?>','rating<?php echo $reply['id']; ?>')" class="link">
|
||||
<?php echo $hesklang['yes_title_case']; ?>
|
||||
</a>
|
||||
<span>|</span>
|
||||
<a href="#" onclick="HESK_FUNCTIONS.rate('rate.php?rating=1&id=<?php echo $reply['id']; ?>&track=<?php echo $trackingId; ?>','rating<?php echo $reply['id']; ?>')" class="link">
|
||||
<?php echo $hesklang['no_title_case']; ?>
|
||||
</a>
|
||||
</div>
|
||||
<?php }
|
||||
?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</article>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
|
||||
function listAttachments($attachments, $trackingId) {
|
||||
global $hesk_settings, $hesklang;
|
||||
|
||||
/* Attachments disabled or not available */
|
||||
if (!$hesk_settings['attachments']['use'] || ! strlen($attachments) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* List attachments */
|
||||
$att=explode(',',substr($attachments, 0, -1));
|
||||
foreach ($att as $myatt) {
|
||||
list($att_id, $att_name) = explode('#', $myatt);
|
||||
?>
|
||||
<div class="block--uploads">
|
||||
<svg class="icon icon-attach">
|
||||
<use xlink:href="<?php echo TEMPLATE_PATH; ?>customer/img/sprite.svg#icon-attach"></use>
|
||||
</svg>
|
||||
<a href="download_attachment.php?att_id=<?php echo $att_id; ?>&track=<?php echo $trackingId.$hesk_settings['e_query']; ?>">
|
||||
<?php echo $att_name; ?>
|
||||
</a>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||