Initial commit

Signed-off-by: Luke Tainton <luke@tainton.uk>
This commit is contained in:
Luke Tainton
2020-02-26 12:23:50 +00:00
commit 39782c53ef
500 changed files with 141257 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
{
"name": "HESK"
}

View 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&amp;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>

View File

@@ -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>

View 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>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View 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>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,3 @@
<?php
/* Check if this is a valid include */
if (!defined('IN_SCRIPT')) {die('Invalid attempt');}

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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>

View 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
View 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)}

View 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

File diff suppressed because one or more lines are too long

View 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);
}
});
}

View 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)}})}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View 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

View 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>

View 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&amp;id=<?php echo $article['id']; ?>" class="link">
<?php echo $hesklang['yes_title_case']; ?>
</a>
<span>|</span>
<a href="knowledgebase.php?rating=1&amp;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>

View 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>

View 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>

View 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;
}

View 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>
';
}
}

View 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
}

View 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>';
}

View 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>

View 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
}

View 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'].'&amp;s=2&amp;Refresh='.rand(10000,99999).'&amp;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'].'&amp;s=3&amp;Refresh='.rand(10000,99999).'&amp;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&amp;id=<?php echo $reply['id']; ?>&amp;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&amp;id=<?php echo $reply['id']; ?>&amp;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; ?>&amp;track=<?php echo $trackingId.$hesk_settings['e_query']; ?>">
<?php echo $att_name; ?>
</a>
</div>
<?php
}
return true;
}

View File

@@ -0,0 +1,124 @@
<?php
global $hesk_settings, $hesklang;
/**
* @var array $tickets
* @var boolean $showStaffOnlyFields
*/
// 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>
<head>
<title><?php echo $hesk_settings['hesk_title']; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $hesklang['ENCODING']; ?>">
<style type="text/css">
body, table, td, p {
color: black;
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: <?php echo $hesk_settings['print_font_size']; ?>px;
word-wrap: break-word;
word-break: break-word;
}
table {
border-collapse: collapse;
}
hr {
border: 0;
color: #9e9e9e;
background-color: #9e9e9e;
height: 1px;
width: 100%;
text-align: left;
}
</style>
</head>
<body onload="window.print()">
<?php foreach ($tickets as $ticket): ?>
<table border="0">
<tr>
<td><?php echo $hesklang['subject']; ?>:</td>
<td><b><?php echo $ticket['subject']; ?></b></td>
</tr>
<tr>
<td><?php echo $hesklang['trackID']; ?>:</td>
<td><?php echo $ticket['trackid']; ?></td>
</tr>
<tr>
<td><?php echo $hesklang['ticket_status']; ?>:</td>
<td><?php echo $ticket['status']; ?></td>
</tr>
<tr>
<td><?php echo $hesklang['created_on']; ?>:</td>
<td><?php echo $ticket['dt']; ?></td>
</tr>
<tr>
<td><?php echo $hesklang['last_update']; ?>:</td>
<td><?php echo $ticket['lastchange']; ?></td>
</tr>
<?php if ($ticket['owner'] != ''): ?>
<tr>
<td><?php echo $hesklang['taso3']; ?></td>
<td><?php echo $ticket['owner']; ?></td>
</tr>
<?php endif; ?>
<tr>
<td><?php echo $hesklang['last_replier']; ?>:</td>
<td><?php echo $ticket['repliername']; ?></td>
</tr>
<tr>
<td><?php echo $hesklang['category']; ?>:</td>
<td><?php echo $ticket['categoryName']; ?></td>
</tr>
<?php if ($showStaffOnlyFields): ?>
<tr>
<td><?php echo $hesklang['ts']; ?>:</td>
<td><?php echo $ticket['time_worked']; ?></td>
</tr>
<tr>
<td><?php echo $hesklang['ip']; ?>:</td>
<td><?php echo $ticket['ip']; ?></td>
</tr>
<tr>
<td><?php echo $hesklang['email']; ?>:</td>
<td><?php echo $ticket['email']; ?></td>
</tr>
<?php endif; ?>
<tr>
<td><?php echo $hesklang['name']; ?>:</td>
<td><?php echo $ticket['name']; ?></td>
</tr>
<?php foreach ($ticket['custom_fields'] as $customField): ?>
<tr>
<td><?php echo $customField['name']; ?></td>
<td><?php echo $customField['value']; ?></td>
</tr>
<?php endforeach; ?>
</table>
<?php if ($ticket['message'] != ''): ?>
<p><?php echo $ticket['message']; ?></p>
<?php endif; ?>
<?php foreach ($ticket['replies'] as $reply): ?>
<table border="0">
<tr>
<td><?php echo $hesklang['date']; ?>:</td>
<td><?php echo $reply['dt']; ?></td>
</tr>
<tr>
<td><?php echo $hesklang['name']; ?>:</td>
<td><?php echo $reply['name']; ?></td>
</tr>
</table>
<p><?php echo $reply['message']; ?></p>
<?php endforeach; ?>
<div style="page-break-after: always;"><?php echo $hesklang['end_ticket']; ?></div>
<?php endforeach; ?>
</body>
</html>