|
|
@ -630,255 +630,287 @@ if ($ticket['email'] != '') {
|
|
|
|
require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|
|
|
require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|
|
|
?>
|
|
|
|
?>
|
|
|
|
<section class="content">
|
|
|
|
<section class="content">
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
/* This will handle error, success and notice messages */
|
|
|
|
|
|
|
|
hesk_handle_messages();
|
|
|
|
|
|
|
|
?>
|
|
|
|
<h1><?php echo $hesklang['ticket_details']; ?></h1>
|
|
|
|
<h1><?php echo $hesklang['ticket_details']; ?></h1>
|
|
|
|
<h2><?php echo $trackingID; ?></h2>
|
|
|
|
<h2>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$tmp = '';
|
|
|
|
|
|
|
|
if ($hesk_settings['sequential']) {
|
|
|
|
|
|
|
|
$tmp = ' (' . $hesklang['seqid'] . ': ' . $ticket['id'] . ')';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo $trackingID . $tmp; ?>
|
|
|
|
|
|
|
|
</h2>
|
|
|
|
<div class="box">
|
|
|
|
<div class="box">
|
|
|
|
<div class="box-header">
|
|
|
|
<div class="box-header">
|
|
|
|
<h1 class="box-title">
|
|
|
|
<h1 class="box-title">
|
|
|
|
<i class="fa fa-user"></i>
|
|
|
|
<i class="fa fa-user"></i>
|
|
|
|
<?php echo $ticket['name']; ?>
|
|
|
|
<?php
|
|
|
|
|
|
|
|
echo $ticket['name'];
|
|
|
|
|
|
|
|
if ($ticket['archive']) {
|
|
|
|
|
|
|
|
echo ' <span class="label label-primary"><i class="fa fa-tag"></i> ' . $hesklang['archived'] . '</span>';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($ticket['locked']) {
|
|
|
|
|
|
|
|
echo ' <span class="label label-primary"><i class="fa fa-lock"></i> ' . $hesklang['loc'] . '</span>';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|
|
|
|
</h1>
|
|
|
|
</h1>
|
|
|
|
<div class="pull-right">
|
|
|
|
<div class="pull-right">
|
|
|
|
|
|
|
|
<?php echo hesk_getAdminButtons(); ?>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="box-body">
|
|
|
|
<div class="box-body">
|
|
|
|
</div>
|
|
|
|
<div class="callout callout-info">
|
|
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
</section>
|
|
|
|
<div class="col-md-3">
|
|
|
|
<div class="row" style="padding: 20px">
|
|
|
|
<strong><?php echo $hesklang['created_colon']; ?></strong>
|
|
|
|
<div class="col-md-2">
|
|
|
|
<?php echo hesk_date($ticket['dt'], true); ?>
|
|
|
|
<div class="panel panel-default">
|
|
|
|
|
|
|
|
<div class="panel-heading"><?php echo $hesklang['information']; ?></div>
|
|
|
|
|
|
|
|
<ul class="list-group">
|
|
|
|
|
|
|
|
<li class="list-group-item">
|
|
|
|
|
|
|
|
<strong><?php echo $hesklang['trackID']; ?></strong><br/>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$tmp = '';
|
|
|
|
|
|
|
|
if ($hesk_settings['sequential']) {
|
|
|
|
|
|
|
|
$tmp = ' (' . $hesklang['seqid'] . ': ' . $ticket['id'] . ')';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo $trackingID . '<br/>' . $tmp; ?>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li class="list-group-item">
|
|
|
|
|
|
|
|
<strong><?php echo $hesklang['lgs']; ?></strong><br>
|
|
|
|
|
|
|
|
<?php echo $ticket['language'] !== NULL ? $ticket['language'] : HESK_DEFAULT_LANGUAGE; ?>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li class="list-group-item">
|
|
|
|
|
|
|
|
<strong><?php echo $hesklang['replies']; ?></strong><br/>
|
|
|
|
|
|
|
|
<?php echo $ticket['replies']; ?>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li class="list-group-item">
|
|
|
|
|
|
|
|
<strong><?php echo $hesklang['owner']; ?></strong><br/>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
echo isset($admins[$ticket['owner']]) ? $admins[$ticket['owner']] :
|
|
|
|
|
|
|
|
($can_assign_self ? $hesklang['unas'] . ' — <a href="assign_owner.php?track=' . $trackingID . '&owner=' . $_SESSION['id'] . '&token=' . hesk_token_echo(0) . '">' . $hesklang['asss'] . '</a>' : $hesklang['unas']);
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li class="list-group-item">
|
|
|
|
|
|
|
|
<strong><?php echo $hesklang['created_on']; ?></strong><br>
|
|
|
|
|
|
|
|
<?php echo hesk_date($ticket['dt'], true); ?>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li class="list-group-item">
|
|
|
|
|
|
|
|
<strong><?php echo $hesklang['last_update']; ?></strong><br>
|
|
|
|
|
|
|
|
<?php echo hesk_date($ticket['lastchange'], true); ?>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li class="list-group-item">
|
|
|
|
|
|
|
|
<strong><?php echo $hesklang['due_date']; ?></strong><br>
|
|
|
|
|
|
|
|
<div id="readonly-due-date">
|
|
|
|
|
|
|
|
<span id="due-date">
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
$due_date = $hesklang['none'];
|
|
|
|
|
|
|
|
if ($ticket['due_date'] != null) {
|
|
|
|
|
|
|
|
$due_date = hesk_date($ticket['due_date'], false, true, false);
|
|
|
|
|
|
|
|
$due_date = date('Y-m-d', $due_date);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
echo $due_date;
|
|
|
|
|
|
|
|
?></span><!--<span id="overdue">
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
/*if ($due_date < $current_date) {
|
|
|
|
|
|
|
|
echo ' <i class="fa fa-exclamation-triangle dark-orange" data-toggle="tooltip" title="Ticket overdue!"></i>';
|
|
|
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
</span>-->
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
<button id="due-date-button" class="btn btn-default btn-sm"><?php echo $hesklang['chg']; ?></button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div id="editable-due-date" style="display: none">
|
|
|
|
<div class="col-md-3">
|
|
|
|
<div class="form-group">
|
|
|
|
<strong><?php echo $hesklang['updated_colon']; ?></strong>
|
|
|
|
<input type="text" class="form-control datepicker" name="due-date" value="<?php echo $due_date == $hesklang['none'] ? '' : $due_date; ?>">
|
|
|
|
<?php echo hesk_date($ticket['lastchange'], true); ?>
|
|
|
|
<p class="help-block"><?php echo $hesklang['clear_for_no_due_date']; ?></p>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="btn-group">
|
|
|
|
|
|
|
|
<button id="submit" class="btn btn-primary"><?php echo $hesklang['save']; ?></button>
|
|
|
|
|
|
|
|
<button id="cancel" class="btn btn-default"><?php echo $hesklang['cancel']; ?></button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</li>
|
|
|
|
<?php if ($ticket['language'] !== NULL): ?>
|
|
|
|
<li class="list-group-item">
|
|
|
|
<div class="col-md-3">
|
|
|
|
<strong><?php echo $hesklang['last_replier']; ?></strong><br>
|
|
|
|
<strong><?php echo $hesklang['language_colon']; ?></strong>
|
|
|
|
<?php echo $ticket['repliername']; ?>
|
|
|
|
<?php echo $ticket['language']; ?>
|
|
|
|
</li>
|
|
|
|
</div>
|
|
|
|
<?php
|
|
|
|
<div class="col-md-3">
|
|
|
|
if ($hesk_settings['time_worked']) {
|
|
|
|
<strong><?php echo $hesklang['last_replier_colon']; ?></strong>
|
|
|
|
?>
|
|
|
|
<?php echo $ticket['repliername']; ?>
|
|
|
|
<li class="list-group-item">
|
|
|
|
</div>
|
|
|
|
<strong><?php echo $hesklang['ts']; ?></strong><br/>
|
|
|
|
<?php endif; ?>
|
|
|
|
<?php
|
|
|
|
</div>
|
|
|
|
if ($can_reply || $can_edit)
|
|
|
|
</div>
|
|
|
|
{
|
|
|
|
<div class="row">
|
|
|
|
?>
|
|
|
|
<div class="col-md-6">
|
|
|
|
<a href="Javascript:void(0)" onclick="Javascript:hesk_toggleLayerDisplay('modifytime')"><?php echo $ticket['time_worked']; ?></a>
|
|
|
|
<table class="table table-striped">
|
|
|
|
|
|
|
|
<tbody>
|
|
|
|
<?php $t = hesk_getHHMMSS($ticket['time_worked']); ?>
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<td><b><?php echo $hesklang['email']; ?></b></td>
|
|
|
|
<div id="modifytime" style="display:none">
|
|
|
|
<td>
|
|
|
|
<br />
|
|
|
|
<a href="mailto:<?php echo $ticket['email']; ?>"><?php echo $ticket['email']; ?></a>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
<form data-toggle="validator" class="form-horizontal" method="post" action="admin_ticket.php" style="margin:0px; padding:0px;">
|
|
|
|
if ($can_ban_emails && !empty($ticket['email'])) {
|
|
|
|
<div class="form-group">
|
|
|
|
if ($email_id = hesk_isBannedEmail($ticket['email'])) {
|
|
|
|
<label for="h" class="col-sm-4 control-label"><?php echo $hesklang['hh']; ?></label>
|
|
|
|
if ($can_unban_emails) {
|
|
|
|
<div class="col-sm-8">
|
|
|
|
echo '<a href="banned_emails.php?a=unban&track=' . $trackingID . '&id=' . intval($email_id) . '&token=' . hesk_token_echo(0) . '">
|
|
|
|
<input type="text" name="h" value="<?php echo $t[0]; ?>" size="3"
|
|
|
|
<i class="fa fa-ban icon-link red gray-on-hover" data-toggle="tooltip" data-placement="top" data-original-title="' . $hesklang['eisban'] . ' ' . $hesklang['click_unban'] . '"></i>
|
|
|
|
data-error="<?php echo htmlspecialchars($hesklang['this_field_is_required']); ?>"
|
|
|
|
</a> ';
|
|
|
|
placeholder="<?php echo htmlspecialchars($hesklang['hh']); ?>"
|
|
|
|
} else {
|
|
|
|
class="form-control input-sm" required>
|
|
|
|
echo '<i class="fa fa-ban icon-link red" data-toggle="tooltip" data-placement="top" data-original-title="' . $hesklang['eisban'] . '"></i>';
|
|
|
|
</div>
|
|
|
|
}
|
|
|
|
<div class="col-sm-12 text-right">
|
|
|
|
} else {
|
|
|
|
<div class="help-block with-errors"></div>
|
|
|
|
echo '<a href="banned_emails.php?a=ban&track=' . $trackingID . '&email=' . urlencode($ticket['email']) . '&token=' . hesk_token_echo(0) . '">
|
|
|
|
</div>
|
|
|
|
<i class="fa fa-ban icon-link gray red-on-hover" data-toggle="tooltip" data-placement="top" data-original-title="' . $hesklang['savebanemail'] . '"></i>
|
|
|
|
</div>
|
|
|
|
</a> ';
|
|
|
|
<div class="form-group input-group-sm">
|
|
|
|
}
|
|
|
|
<label for="m" class="col-sm-4 control-label"><?php echo $hesklang['mm']; ?></label>
|
|
|
|
}
|
|
|
|
<div class="col-sm-8">
|
|
|
|
?>
|
|
|
|
<input type="text" name="m" value="<?php echo $t[1]; ?>" size="3"
|
|
|
|
</td>
|
|
|
|
data-error="<?php echo htmlspecialchars($hesklang['this_field_is_required']); ?>"
|
|
|
|
</tr>
|
|
|
|
placeholder="<?php echo htmlspecialchars($hesklang['mm']); ?>"
|
|
|
|
<?php if ($hesk_settings['time_worked']): ?>
|
|
|
|
class="form-control input-sm" required>
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<td><b><?php echo $hesklang['ts']; ?></b></td>
|
|
|
|
|
|
|
|
<td>
|
|
|
|
|
|
|
|
<span class="click-to-edit" onclick="Javascript:hesk_toggleLayerDisplay('modifytime')"
|
|
|
|
|
|
|
|
data-toggle="tooltip" title="<?php echo $hesklang['click_to_edit']; ?>">
|
|
|
|
|
|
|
|
<?php echo $ticket['time_worked']; ?>
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
if ($can_reply || $can_edit)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
?><?php $t = hesk_getHHMMSS($ticket['time_worked']); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div id="modifytime" style="display:none">
|
|
|
|
|
|
|
|
<form data-toggle="validator" class="form-horizontal" method="post" action="admin_ticket.php" style="margin:0px; padding:0px;">
|
|
|
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
|
|
|
<label for="h" class="col-sm-4 control-label"><?php echo $hesklang['hh']; ?></label>
|
|
|
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
|
|
|
<input type="text" name="h" value="<?php echo $t[0]; ?>" size="3"
|
|
|
|
|
|
|
|
data-error="<?php echo htmlspecialchars($hesklang['this_field_is_required']); ?>"
|
|
|
|
|
|
|
|
placeholder="<?php echo htmlspecialchars($hesklang['hh']); ?>"
|
|
|
|
|
|
|
|
class="form-control input-sm" required>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-sm-12 text-right">
|
|
|
|
|
|
|
|
<div class="help-block with-errors"></div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="col-sm-12 text-right">
|
|
|
|
<div class="form-group input-group-sm">
|
|
|
|
<div class="help-block with-errors"></div>
|
|
|
|
<label for="m" class="col-sm-4 control-label"><?php echo $hesklang['mm']; ?></label>
|
|
|
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
|
|
|
<input type="text" name="m" value="<?php echo $t[1]; ?>" size="3"
|
|
|
|
|
|
|
|
data-error="<?php echo htmlspecialchars($hesklang['this_field_is_required']); ?>"
|
|
|
|
|
|
|
|
placeholder="<?php echo htmlspecialchars($hesklang['mm']); ?>"
|
|
|
|
|
|
|
|
class="form-control input-sm" required>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-sm-12 text-right">
|
|
|
|
|
|
|
|
<div class="help-block with-errors"></div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="form-group input-group-sm">
|
|
|
|
<div class="form-group input-group-sm">
|
|
|
|
<label for="s" class="col-sm-4 control-label"><?php echo $hesklang['ss']; ?></label>
|
|
|
|
<label for="s" class="col-sm-4 control-label"><?php echo $hesklang['ss']; ?></label>
|
|
|
|
<div class="col-sm-8">
|
|
|
|
<div class="col-sm-8">
|
|
|
|
<input type="text" name="s" value="<?php echo $t[2]; ?>" size="3"
|
|
|
|
<input type="text" name="s" value="<?php echo $t[2]; ?>" size="3"
|
|
|
|
data-error="<?php echo htmlspecialchars($hesklang['this_field_is_required']); ?>"
|
|
|
|
data-error="<?php echo htmlspecialchars($hesklang['this_field_is_required']); ?>"
|
|
|
|
placeholder="<?php echo htmlspecialchars($hesklang['ss']); ?>"
|
|
|
|
placeholder="<?php echo htmlspecialchars($hesklang['ss']); ?>"
|
|
|
|
class="form-control input-sm" required>
|
|
|
|
class="form-control input-sm" required>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-sm-12 text-right">
|
|
|
|
|
|
|
|
<div class="help-block with-errors"></div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="col-sm-12 text-right">
|
|
|
|
<div class="text-right">
|
|
|
|
<div class="help-block with-errors"></div>
|
|
|
|
<div class="btn-group btn-group-sm text-right">
|
|
|
|
|
|
|
|
<input class="btn btn-primary" type="submit" value="<?php echo $hesklang['save']; ?>" />
|
|
|
|
|
|
|
|
<a class="btn btn-default" href="Javascript:void(0)" onclick="Javascript:hesk_toggleLayerDisplay('modifytime')"><?php echo $hesklang['cancel']; ?></a>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<input type="hidden" name="track" value="<?php echo $trackingID; ?>" />
|
|
|
|
<div class="text-right">
|
|
|
|
<input type="hidden" name="token" value="<?php hesk_token_echo(); ?>" />
|
|
|
|
<div class="btn-group btn-group-sm text-right">
|
|
|
|
</form>
|
|
|
|
<input class="btn btn-primary" type="submit" value="<?php echo $hesklang['save']; ?>" />
|
|
|
|
</div>
|
|
|
|
<a class="btn btn-default" href="Javascript:void(0)" onclick="Javascript:hesk_toggleLayerDisplay('modifytime')"><?php echo $hesklang['cancel']; ?></a>
|
|
|
|
<?php
|
|
|
|
</div>
|
|
|
|
}
|
|
|
|
</div>
|
|
|
|
?>
|
|
|
|
<input type="hidden" name="track" value="<?php echo $trackingID; ?>" />
|
|
|
|
</td>
|
|
|
|
<input type="hidden" name="token" value="<?php hesk_token_echo(); ?>" />
|
|
|
|
</tr>
|
|
|
|
</form>
|
|
|
|
<?php endif; ?>
|
|
|
|
</div>
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<td><strong><?php echo $hesklang['linked_tickets']; ?></strong></td>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<?php
|
|
|
|
<?php
|
|
|
|
}
|
|
|
|
if ($ticket['parent'] != null) {
|
|
|
|
else
|
|
|
|
//-- Get the tracking ID of the parent
|
|
|
|
{
|
|
|
|
$parentRs = hesk_dbQuery('SELECT `trackid` FROM `' . hesk_dbEscape($hesk_settings['db_pfix']) . 'tickets`
|
|
|
|
echo $ticket['time_worked'];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<?php } // End if time_worked ?>
|
|
|
|
|
|
|
|
<li class="list-group-item">
|
|
|
|
|
|
|
|
<strong><?php echo $hesklang['linked_tickets']; ?></strong>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p><?php
|
|
|
|
|
|
|
|
if ($ticket['parent'] != null) {
|
|
|
|
|
|
|
|
//-- Get the tracking ID of the parent
|
|
|
|
|
|
|
|
$parentRs = hesk_dbQuery('SELECT `trackid` FROM `' . hesk_dbEscape($hesk_settings['db_pfix']) . 'tickets`
|
|
|
|
|
|
|
|
WHERE `ID` = ' . hesk_dbEscape($ticket['parent']));
|
|
|
|
WHERE `ID` = ' . hesk_dbEscape($ticket['parent']));
|
|
|
|
$parent = hesk_dbFetchAssoc($parentRs);
|
|
|
|
$parent = hesk_dbFetchAssoc($parentRs);
|
|
|
|
echo '<a href="admin_ticket.php?track=' . $trackingID . '&Refresh=' . mt_rand(10000, 99999) . '&deleteParent=true">
|
|
|
|
echo '<a href="admin_ticket.php?track=' . $trackingID . '&Refresh=' . mt_rand(10000, 99999) . '&deleteParent=true">
|
|
|
|
<i class="fa fa-times-circle" data-toggle="tooltip" data-placement="top" title="' . $hesklang['delete_relationship'] . '"></i></a>';
|
|
|
|
<i class="fa fa-times-circle" data-toggle="tooltip" data-placement="top" title="' . $hesklang['delete_relationship'] . '"></i></a>';
|
|
|
|
echo ' <a href="admin_ticket.php?track=' . $parent['trackid'] . '&Refresh=' . mt_rand(10000, 99999) . '">' . $parent['trackid'] . '</a>';
|
|
|
|
echo ' <a href="admin_ticket.php?track=' . $parent['trackid'] . '&Refresh=' . mt_rand(10000, 99999) . '">' . $parent['trackid'] . '</a>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//-- Check if any tickets have a parent set to this tracking ID
|
|
|
|
//-- Check if any tickets have a parent set to this tracking ID
|
|
|
|
$hasRows = false;
|
|
|
|
$hasRows = false;
|
|
|
|
$childrenRS = hesk_dbQuery('SELECT * FROM `' . hesk_dbEscape($hesk_settings['db_pfix']) . 'tickets`
|
|
|
|
$childrenRS = hesk_dbQuery('SELECT * FROM `' . hesk_dbEscape($hesk_settings['db_pfix']) . 'tickets`
|
|
|
|
WHERE `parent` = ' . hesk_dbEscape($ticket['id']));
|
|
|
|
WHERE `parent` = ' . hesk_dbEscape($ticket['id']));
|
|
|
|
while ($row = hesk_dbFetchAssoc($childrenRS)) {
|
|
|
|
while ($row = hesk_dbFetchAssoc($childrenRS)) {
|
|
|
|
$hasRows = true;
|
|
|
|
$hasRows = true;
|
|
|
|
echo '<a href="admin_ticket.php?track=' . $trackingID . '&Refresh=' . mt_rand(10000, 99999) . '&deleteChild=' . $row['id'] . '">
|
|
|
|
echo '<a href="admin_ticket.php?track=' . $trackingID . '&Refresh=' . mt_rand(10000, 99999) . '&deleteChild=' . $row['id'] . '">
|
|
|
|
<i class="fa fa-times-circle font-icon red" data-toggle="tooltip" data-placement="top" title="' . $hesklang['unlink'] . '"></i></a>';
|
|
|
|
<i class="fa fa-times-circle font-icon red" data-toggle="tooltip" data-placement="top" title="' . $hesklang['unlink'] . '"></i></a>';
|
|
|
|
echo ' <a href="admin_ticket.php?track=' . $row['trackid'] . '&Refresh=' . mt_rand(10000, 99999) . '">' . $row['trackid'] . '</a>';
|
|
|
|
echo ' <a href="admin_ticket.php?track=' . $row['trackid'] . '&Refresh=' . mt_rand(10000, 99999) . '">' . $row['trackid'] . '</a>';
|
|
|
|
echo '<br>';
|
|
|
|
echo '<br>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!$hasRows && $ticket['parent'] == null) {
|
|
|
|
if (!$hasRows && $ticket['parent'] == null) {
|
|
|
|
echo $hesklang['none'];
|
|
|
|
echo $hesklang['none'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
?></p>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
if ($can_reply || $can_edit) {
|
|
|
|
if ($can_reply || $can_edit) {
|
|
|
|
?>
|
|
|
|
?>
|
|
|
|
<div id="addChildText">
|
|
|
|
<div id="addChildText">
|
|
|
|
<?php echo '<a href="javascript:void(0)" onclick="toggleChildrenForm(true)"><i class="fa fa-plus-circle"></i> ' . $hesklang['add_ticket'] . '</a>'; ?>
|
|
|
|
<p><?php echo '<a class="btn btn-default btn-sm" href="javascript:void(0)" onclick="toggleChildrenForm(true)">' . $hesklang['add_ticket'] . '</a>'; ?></p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div id="childrenForm" style="display: none">
|
|
|
|
<div id="childrenForm" style="display: none">
|
|
|
|
<form action="admin_ticket.php" method="post" data-toggle="validator">
|
|
|
|
<form action="admin_ticket.php" method="post" data-toggle="validator">
|
|
|
|
<div class="form-group">
|
|
|
|
<div class="form-group">
|
|
|
|
<label for="childTrackingId" class="control-label">
|
|
|
|
<label for="childTrackingId" class="control-label">
|
|
|
|
<?php echo $hesklang['trackID']; ?>
|
|
|
|
<?php echo $hesklang['trackID']; ?>
|
|
|
|
</label>
|
|
|
|
</label>
|
|
|
|
<input type="text" name="childTrackingId" class="form-control input-sm"
|
|
|
|
<input type="text" name="childTrackingId" class="form-control input-sm"
|
|
|
|
placeholder="<?php echo htmlspecialchars($hesklang['trackID']); ?>"
|
|
|
|
placeholder="<?php echo htmlspecialchars($hesklang['trackID']); ?>"
|
|
|
|
data-error="<?php echo htmlspecialchars($hesklang['this_field_is_required']); ?>"
|
|
|
|
data-error="<?php echo htmlspecialchars($hesklang['this_field_is_required']); ?>"
|
|
|
|
required>
|
|
|
|
required>
|
|
|
|
<div class="help-block with-errors"></div>
|
|
|
|
<div class="help-block with-errors"></div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="btn-group">
|
|
|
|
|
|
|
|
<input type="submit" class="btn btn-primary btn-sm"
|
|
|
|
|
|
|
|
value="<?php echo $hesklang['save']; ?>">
|
|
|
|
|
|
|
|
<a class="btn btn-default btn-sm" href="javascript:void(0)"
|
|
|
|
|
|
|
|
onclick="toggleChildrenForm(false)">
|
|
|
|
|
|
|
|
<?php echo $hesklang['cancel']; ?>
|
|
|
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<input type="hidden" name="track" value="<?php echo $trackingID; ?>"/>
|
|
|
|
|
|
|
|
<input type="hidden" name="token" value="<?php hesk_token_echo(); ?>"/>
|
|
|
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<?php } ?>
|
|
|
|
|
|
|
|
</td>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
</tbody>
|
|
|
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="col-md-6">
|
|
|
|
|
|
|
|
<table class="table table-striped">
|
|
|
|
|
|
|
|
<tbody>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<td><strong><?php echo $hesklang['due_date']; ?></strong></td>
|
|
|
|
|
|
|
|
<td>
|
|
|
|
|
|
|
|
<div id="readonly-due-date">
|
|
|
|
|
|
|
|
<span id="due-date" data-toggle="tooltip" title="<?php echo $hesklang['click_to_edit']; ?>">
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
$due_date = $hesklang['none'];
|
|
|
|
|
|
|
|
if ($ticket['due_date'] != null) {
|
|
|
|
|
|
|
|
$due_date = hesk_date($ticket['due_date'], false, true, false);
|
|
|
|
|
|
|
|
$due_date = date('Y-m-d', $due_date);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
echo $due_date;
|
|
|
|
|
|
|
|
?></span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="btn-group">
|
|
|
|
<div id="editable-due-date" style="display: none">
|
|
|
|
<input type="submit" class="btn btn-primary btn-sm"
|
|
|
|
<div class="form-group">
|
|
|
|
value="<?php echo $hesklang['save']; ?>">
|
|
|
|
<input title="due-date" type="text" class="form-control datepicker" name="due-date" value="<?php echo $due_date == $hesklang['none'] ? '' : $due_date; ?>">
|
|
|
|
<a class="btn btn-default btn-sm" href="javascript:void(0)"
|
|
|
|
<p class="help-block"><?php echo $hesklang['clear_for_no_due_date']; ?></p>
|
|
|
|
onclick="toggleChildrenForm(false)">
|
|
|
|
</div>
|
|
|
|
<?php echo $hesklang['cancel']; ?>
|
|
|
|
<div class="btn-group">
|
|
|
|
</a>
|
|
|
|
<button id="submit" class="btn btn-primary"><?php echo $hesklang['save']; ?></button>
|
|
|
|
|
|
|
|
<button id="cancel" class="btn btn-default"><?php echo $hesklang['cancel']; ?></button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<input type="hidden" name="track" value="<?php echo $trackingID; ?>"/>
|
|
|
|
</td>
|
|
|
|
<input type="hidden" name="token" value="<?php hesk_token_echo(); ?>"/>
|
|
|
|
</tr>
|
|
|
|
</form>
|
|
|
|
<tr>
|
|
|
|
</div>
|
|
|
|
<td><strong><?php echo $hesklang['replies']; ?></strong></td>
|
|
|
|
<?php } ?>
|
|
|
|
<td><?php echo $ticket['replies']; ?></td>
|
|
|
|
</li>
|
|
|
|
</tr>
|
|
|
|
<?php if ($recentTickets !== NULL): ?>
|
|
|
|
<tr>
|
|
|
|
<li class="list-group-item">
|
|
|
|
<td><strong><?php echo $hesklang['recent_tickets']; ?></strong></td>
|
|
|
|
<strong><?php echo $hesklang['recent_tickets']; ?></strong>
|
|
|
|
<td>
|
|
|
|
<?php foreach ($recentTickets as $recentTicket): ?>
|
|
|
|
<?php if ($recentTickets === NULL): ?>
|
|
|
|
<p style="margin: 0">
|
|
|
|
<p style="margin: 0"><?php echo $hesklang['none']; ?></p>
|
|
|
|
<i class="fa fa-circle" data-toggle="tooltip" data-placement="top"
|
|
|
|
<?php
|
|
|
|
style="color: <?php echo $recentTicket['statusColor']; ?>"
|
|
|
|
else:
|
|
|
|
title="<?php echo sprintf($hesklang['current_status_colon'], $recentTicket['statusText']); ?>"></i>
|
|
|
|
foreach ($recentTickets as $recentTicket):
|
|
|
|
<?php echo '<a href="admin_ticket.php?track=' . $recentTicket['trackid'] . '&Refresh=' . mt_rand(10000, 99999) . '">' . $recentTicket['trackid'] . '</a>'; ?>
|
|
|
|
?>
|
|
|
|
</p>
|
|
|
|
<p style="margin: 0">
|
|
|
|
<?php endforeach; ?>
|
|
|
|
<i class="fa fa-circle" data-toggle="tooltip" data-placement="top"
|
|
|
|
</li>
|
|
|
|
style="color: <?php echo $recentTicket['statusColor']; ?>"
|
|
|
|
<?php endif; ?>
|
|
|
|
title="<?php echo sprintf($hesklang['current_status_colon'], $recentTicket['statusText']); ?>"></i>
|
|
|
|
</ul>
|
|
|
|
<?php echo '<a href="admin_ticket.php?track=' . $recentTicket['trackid'] . '&Refresh=' . mt_rand(10000, 99999) . '">' . $recentTicket['trackid'] . '</a>'; ?>
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
endforeach;
|
|
|
|
|
|
|
|
endif;
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
</td>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
</tbody>
|
|
|
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<div class="row" style="padding: 20px">
|
|
|
|
|
|
|
|
<div class="col-md-2">
|
|
|
|
|
|
|
|
</div>
|
|
|
|
<div class="col-md-10">
|
|
|
|
<div class="col-md-10">
|
|
|
|
<?php
|
|
|
|
<?php
|
|
|
|
/* This will handle error, success and notice messages */
|
|
|
|
|
|
|
|
hesk_handle_messages();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Do we need or have any canned responses? */
|
|
|
|
/* Do we need or have any canned responses? */
|
|
|
|
$can_options = hesk_printCanned();
|
|
|
|
$can_options = hesk_printCanned();
|
|
|
|
|
|
|
|
|
|
|
|
echo hesk_getAdminButtons();
|
|
|
|
|
|
|
|
?>
|
|
|
|
?>
|
|
|
|
<div class="blankSpace"></div>
|
|
|
|
<div class="blankSpace"></div>
|
|
|
|
<!-- BEGIN TICKET HEAD -->
|
|
|
|
<!-- BEGIN TICKET HEAD -->
|
|
|
@ -887,155 +919,6 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|
|
|
<div class="col-md-12">
|
|
|
|
<div class="col-md-12">
|
|
|
|
<h3>
|
|
|
|
<h3>
|
|
|
|
<?php
|
|
|
|
<?php
|
|
|
|
if ($ticket['archive']) {
|
|
|
|
|
|
|
|
echo '<span class="fa fa-tag"></span> ';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($ticket['locked']) {
|
|
|
|
|
|
|
|
echo '<span class="fa fa-lock"></span> ';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($modsForHesk_settings['display_user_agent_information']
|
|
|
|
|
|
|
|
&& $ticket['user_agent'] !== NULL
|
|
|
|
|
|
|
|
&& $ticket['screen_resolution_height'] !== NULL
|
|
|
|
|
|
|
|
&& $ticket['screen_resolution_height'] != 0
|
|
|
|
|
|
|
|
&& $ticket['screen_resolution_width'] !== NULL
|
|
|
|
|
|
|
|
&& $ticket['screen_resolution_width'] != 0
|
|
|
|
|
|
|
|
):
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
<span data-toggle="modal" data-target="#user-agent-modal" style="cursor: pointer">
|
|
|
|
|
|
|
|
<i class="fa fa-desktop" data-toggle="tooltip"
|
|
|
|
|
|
|
|
title="<?php echo htmlspecialchars($hesklang['click_for_device_information']); ?>"></i>
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<div id="user-agent-modal" class="modal fade" tabindex="-1" role="dialog"
|
|
|
|
|
|
|
|
aria-hidden="true">
|
|
|
|
|
|
|
|
<div class="modal-dialog modal-lg">
|
|
|
|
|
|
|
|
<div class="modal-content">
|
|
|
|
|
|
|
|
<div class="modal-header">
|
|
|
|
|
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
|
|
|
|
|
|
<span aria-hidden="true">×</span>
|
|
|
|
|
|
|
|
</button>
|
|
|
|
|
|
|
|
<h4><?php echo $hesklang['device_information']; ?></h4>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="modal-body">
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
|
|
var userAgent = platform.parse('<?php echo addslashes($ticket['user_agent']); ?>');
|
|
|
|
|
|
|
|
console.log(userAgent);
|
|
|
|
|
|
|
|
var screenResWidth = <?php echo intval($ticket['screen_resolution_width']); ?>;
|
|
|
|
|
|
|
|
var screenResHeight = <?php echo intval($ticket['screen_resolution_height']); ?>;
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<table class="table table-striped">
|
|
|
|
|
|
|
|
<tbody>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<td><strong><?php echo $hesklang['operating_system']; ?></strong>
|
|
|
|
|
|
|
|
</td>
|
|
|
|
|
|
|
|
<td id="operating-system"> </td>
|
|
|
|
|
|
|
|
<script>$('#operating-system').html(userAgent.os.toString());</script>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<td><strong><?php echo $hesklang['browser']; ?></strong></td>
|
|
|
|
|
|
|
|
<td id="browser"> </td>
|
|
|
|
|
|
|
|
<script>$('#browser').html(userAgent.name + ' ' + userAgent.version);</script>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<td><strong><?php echo $hesklang['screen_resolution']; ?></strong>
|
|
|
|
|
|
|
|
</td>
|
|
|
|
|
|
|
|
<td id="screen-resolution"> </td>
|
|
|
|
|
|
|
|
<script>$('#screen-resolution').html(screenResWidth + ' x ' + screenResHeight);</script>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
</tbody>
|
|
|
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($modsForHesk_settings['request_location']) {
|
|
|
|
|
|
|
|
$locationText = '';
|
|
|
|
|
|
|
|
$iconColor = '';
|
|
|
|
|
|
|
|
$hasLocation = true;
|
|
|
|
|
|
|
|
if (strpos($ticket['latitude'], 'E') === false) {
|
|
|
|
|
|
|
|
$locationText = $hesklang['click_for_map'];
|
|
|
|
|
|
|
|
$iconColor = 'inherit';
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
$hasLocation = false;
|
|
|
|
|
|
|
|
$locationText = $hesklang['location_unavailable'];
|
|
|
|
|
|
|
|
$iconColor = '#ccc';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
<span data-toggle="modal" data-target=".map-modal" style="cursor: pointer">
|
|
|
|
|
|
|
|
<i class="fa fa-map-marker" data-toggle="tooltip" title="<?php echo $locationText; ?>"
|
|
|
|
|
|
|
|
style="color: <?php echo $iconColor; ?>"></i>
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<div id="map-modal" class="modal fade map-modal" tabindex="-1" role="dialog"
|
|
|
|
|
|
|
|
aria-labelledby="myLargeModalLabel" aria-hidden="true">
|
|
|
|
|
|
|
|
<div class="modal-dialog modal-lg">
|
|
|
|
|
|
|
|
<div class="modal-content">
|
|
|
|
|
|
|
|
<div class="modal-header">
|
|
|
|
|
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
|
|
|
|
|
|
<span aria-hidden="true">×</span>
|
|
|
|
|
|
|
|
</button>
|
|
|
|
|
|
|
|
<h4><?php echo $hesklang['users_location']; ?></h4>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="modal-body">
|
|
|
|
|
|
|
|
<?php if ($hasLocation): ?>
|
|
|
|
|
|
|
|
<div id="map" style="height: 500px"></div><br>
|
|
|
|
|
|
|
|
<address id="friendly-location" style="font-size: 13px"></address>
|
|
|
|
|
|
|
|
<p id="save-for-address"
|
|
|
|
|
|
|
|
style="font-size: 13px;display:none"><?php echo $hesklang['save_to_see_updated_address']; ?></p>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
|
|
getFriendlyLocation(<?php echo $ticket['latitude']; ?>,
|
|
|
|
|
|
|
|
<?php echo $ticket['longitude']; ?>);
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<div class="row">
|
|
|
|
|
|
|
|
<form action="admin_ticket.php" method="post" role="form">
|
|
|
|
|
|
|
|
<input type="hidden" name="track"
|
|
|
|
|
|
|
|
value="<?php echo $trackingID; ?>">
|
|
|
|
|
|
|
|
<input type="hidden" name="token"
|
|
|
|
|
|
|
|
value="<?php hesk_token_echo(); ?>">
|
|
|
|
|
|
|
|
<input type="hidden" name="latitude" id="latitude"
|
|
|
|
|
|
|
|
value="<?php echo $ticket['latitude']; ?>">
|
|
|
|
|
|
|
|
<input type="hidden" name="longitude" id="longitude"
|
|
|
|
|
|
|
|
value="<?php echo $ticket['longitude']; ?>">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="btn-group" style="display:none" id="save-group">
|
|
|
|
|
|
|
|
<input type="submit" class="btn btn-success"
|
|
|
|
|
|
|
|
value="<?php echo $hesklang['save_location']; ?>">
|
|
|
|
|
|
|
|
<button class="btn btn-default" data-dismiss="modal"
|
|
|
|
|
|
|
|
onclick="closeAndReset(<?php echo $ticket['latitude']; ?>, <?php echo $ticket['longitude']; ?>)">
|
|
|
|
|
|
|
|
<?php echo $hesklang['close_modal_without_saving']; ?>
|
|
|
|
|
|
|
|
</button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<button id="close-button" class="btn btn-default"
|
|
|
|
|
|
|
|
data-dismiss="modal"><?php echo $hesklang['close_modal']; ?></button>
|
|
|
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
$errorCode = explode('-', $ticket['latitude']);
|
|
|
|
|
|
|
|
$key = 'location_unavailable_' . $errorCode[1];
|
|
|
|
|
|
|
|
echo '<h5>' . $hesklang[$key] . '</h5>';
|
|
|
|
|
|
|
|
endif;
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
// Only output JavaScript if we have coordinates
|
|
|
|
|
|
|
|
if (strpos($ticket['latitude'], 'E') === false):
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
|
|
var latitude = '';
|
|
|
|
|
|
|
|
latitude = <?php echo $ticket['latitude'] != '' ? $ticket['latitude'] : -1; ?>;
|
|
|
|
|
|
|
|
var longitude = '';
|
|
|
|
|
|
|
|
longitude = <?php echo $ticket['longitude'] != '' ? $ticket['longitude'] : -1; ?>;
|
|
|
|
|
|
|
|
initializeMapForStaff(latitude, longitude, "<?php echo $hesklang['users_location']; ?>");
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
endif;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
echo $ticket['subject'];
|
|
|
|
echo $ticket['subject'];
|
|
|
|
?></h3>
|
|
|
|
?></h3>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@ -1359,23 +1242,7 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|
|
|
<div class="col-md-3 col-xs-12">
|
|
|
|
<div class="col-md-3 col-xs-12">
|
|
|
|
<div class="ticketName"><?php echo $ticket['name']; ?></div>
|
|
|
|
<div class="ticketName"><?php echo $ticket['name']; ?></div>
|
|
|
|
<div class="ticketEmail">
|
|
|
|
<div class="ticketEmail">
|
|
|
|
<?php
|
|
|
|
<!-- TODO -->
|
|
|
|
if ($can_ban_emails && !empty($ticket['email'])) {
|
|
|
|
|
|
|
|
if ($email_id = hesk_isBannedEmail($ticket['email'])) {
|
|
|
|
|
|
|
|
if ($can_unban_emails) {
|
|
|
|
|
|
|
|
echo '<a href="banned_emails.php?a=unban&track=' . $trackingID . '&id=' . intval($email_id) . '&token=' . hesk_token_echo(0) . '">
|
|
|
|
|
|
|
|
<i class="fa fa-ban" style="font-size:16px;color:red" data-toggle="tooltip" data-placement="top" data-original-title="' . $hesklang['eisban'] . ' ' . $hesklang['click_unban'] . '"></i>
|
|
|
|
|
|
|
|
</a> ';
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
echo '<i class="fa fa-ban" style="font-size:16px;color:red" data-toggle="tooltip" data-placement="top" data-original-title="' . $hesklang['eisban'] . '"></i>';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
echo '<a href="banned_emails.php?a=ban&track=' . $trackingID . '&email=' . urlencode($ticket['email']) . '&token=' . hesk_token_echo(0) . '">
|
|
|
|
|
|
|
|
<i class="fa fa-ban" style="font-size:16px;color:grey" data-toggle="tooltip" data-placement="top" data-original-title="' . $hesklang['savebanemail'] . '"></i>
|
|
|
|
|
|
|
|
</a> ';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
?><a href="mailto:<?php echo $ticket['email']; ?>"><?php echo $ticket['email']; ?></a>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="ticketEmail"><?php echo $hesklang['ip']; ?>:
|
|
|
|
<div class="ticketEmail"><?php echo $hesklang['ip']; ?>:
|
|
|
|
<?php
|
|
|
|
<?php
|
|
|
@ -1538,7 +1405,7 @@ require_once(HESK_PATH . 'inc/footer.inc.php');
|
|
|
|
|
|
|
|
|
|
|
|
function hesk_getAdminButtons($reply = 0, $white = 1)
|
|
|
|
function hesk_getAdminButtons($reply = 0, $white = 1)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
global $hesk_settings, $hesklang, $ticket, $reply, $trackingID, $can_edit, $can_archive, $can_delete, $isManager;
|
|
|
|
global $hesk_settings, $hesklang, $modsForHesk_settings, $ticket, $reply, $trackingID, $can_edit, $can_archive, $can_delete, $isManager;
|
|
|
|
|
|
|
|
|
|
|
|
$options = '';
|
|
|
|
$options = '';
|
|
|
|
|
|
|
|
|
|
|
@ -1546,69 +1413,174 @@ function hesk_getAdminButtons($reply = 0, $white = 1)
|
|
|
|
if ($can_edit) {
|
|
|
|
if ($can_edit) {
|
|
|
|
$tmp = $reply ? '&reply=' . $reply['id'] : '';
|
|
|
|
$tmp = $reply ? '&reply=' . $reply['id'] : '';
|
|
|
|
$mgr = $isManager ? '&isManager=true' : '';
|
|
|
|
$mgr = $isManager ? '&isManager=true' : '';
|
|
|
|
$options .= '<a class="btn btn-default" href="edit_post.php?track=' . $trackingID . $tmp . $mgr . '"><i class="fa fa-pencil"></i> ' . $hesklang['edit'] . '</a> ';
|
|
|
|
$options .= '<a class="btn btn-default" href="edit_post.php?track=' . $trackingID . $tmp . $mgr . '"><i class="fa fa-pencil orange"></i> ' . $hesklang['edit'] . '</a> ';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Print ticket button */
|
|
|
|
|
|
|
|
$options .= '<a class="btn btn-default" href="../print.php?track=' . $trackingID . '"><i class="fa fa-print"></i> ' . $hesklang['printer_friendly'] . '</a> ';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Delete ticket */
|
|
|
|
|
|
|
|
if ($can_delete) {
|
|
|
|
|
|
|
|
if ($reply) {
|
|
|
|
|
|
|
|
$url = 'admin_ticket.php';
|
|
|
|
|
|
|
|
$tmp = 'delete_post=' . $reply['id'];
|
|
|
|
|
|
|
|
$txt = $hesklang['delt'];
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
$url = 'delete_tickets.php';
|
|
|
|
|
|
|
|
$tmp = 'delete_ticket=1';
|
|
|
|
|
|
|
|
$txt = $hesklang['dele'];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$options .= '<a class="btn btn-default" href="' . $url . '?track=' . $trackingID . '&' . $tmp . '&Refresh=' . mt_rand(10000, 99999) . '&token=' . hesk_token_echo(0) . '" onclick="return hesk_confirmExecute(\'' . hesk_makeJsString($txt) . '?\');"><i class="fa fa-times red"></i> ' . $txt . '</a> ';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$dropdown = '
|
|
|
|
$dropdown = '
|
|
|
|
<div class="btn-group">
|
|
|
|
<div class="btn-group">
|
|
|
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
|
|
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
|
|
|
More <span class="caret"></span>
|
|
|
|
<i class="fa fa-ellipsis-h"></i> ' . hesk_htmlspecialchars($hesklang['more']) . ' <span class="caret"></span>
|
|
|
|
</button>
|
|
|
|
</button>
|
|
|
|
<ul class="dropdown-menu">
|
|
|
|
<ul class="dropdown-menu pull-right">';
|
|
|
|
<li><a href="#">Action</a></li>
|
|
|
|
|
|
|
|
<li><a href="#">Another action</a></li>
|
|
|
|
// Location and UA
|
|
|
|
<li><a href="#">Something else here</a></li>
|
|
|
|
$has_location_or_user_agent = false;
|
|
|
|
<li role="separator" class="divider"></li>
|
|
|
|
|
|
|
|
<li><a href="#">Separated link</a></li>
|
|
|
|
if ($modsForHesk_settings['display_user_agent_information']
|
|
|
|
</ul>
|
|
|
|
&& $ticket['user_agent'] !== NULL
|
|
|
|
</div>';
|
|
|
|
&& $ticket['screen_resolution_height'] !== NULL
|
|
|
|
|
|
|
|
&& $ticket['screen_resolution_height'] != 0
|
|
|
|
|
|
|
|
&& $ticket['screen_resolution_width'] !== NULL
|
|
|
|
|
|
|
|
&& $ticket['screen_resolution_width'] != 0
|
|
|
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
$has_location_or_user_agent = true;
|
|
|
|
|
|
|
|
$dropdown .=
|
|
|
|
|
|
|
|
'<li><a href="javascript:;" data-toggle="modal" data-target="#user-agent-modal"><i class="fa fa-desktop fa-fw"></i> ' . $hesklang['device_information'] . '</a></li>';
|
|
|
|
|
|
|
|
buildUserAgentModal($ticket['user_agent'], $ticket['screen_resolution_width'], $ticket['screen_resolution_height']);
|
|
|
|
|
|
|
|
} else if ($modsForHesk_settings['display_user_agent_information']) {
|
|
|
|
|
|
|
|
$has_location_or_user_agent = true;
|
|
|
|
|
|
|
|
$dropdown .=
|
|
|
|
|
|
|
|
'<li><span href="javascript:;" class="linkless-dropdown gray"><i class="fa fa-desktop fa-fw"></i> ' . $hesklang['no_device_information'] . '</span></li>';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
if ($modsForHesk_settings['request_location']) {
|
|
|
|
|
|
|
|
$hasLocation = true;
|
|
|
|
|
|
|
|
$has_location_or_user_agent = true;
|
|
|
|
|
|
|
|
if (strpos($ticket['latitude'], 'E') === false) {
|
|
|
|
|
|
|
|
$locationText = $hesklang['click_for_map'];
|
|
|
|
|
|
|
|
$iconColor = '';
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
$hasLocation = false;
|
|
|
|
|
|
|
|
$locationText = $hesklang['location_unavailable'];
|
|
|
|
|
|
|
|
$iconColor = 'class="grey"';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$dropdown .= '<li><a href="javascript:;" data-toggle="modal" data-target=".map-modal" ' . $iconColor . '><i class="fa fa-map-marker fa-fw"></i> ' . $locationText . ' </a></li>';
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
<div id="map-modal" class="modal fade map-modal" tabindex="-1" role="dialog"
|
|
|
|
|
|
|
|
aria-labelledby="myLargeModalLabel" aria-hidden="true">
|
|
|
|
|
|
|
|
<div class="modal-dialog modal-lg">
|
|
|
|
|
|
|
|
<div class="modal-content">
|
|
|
|
|
|
|
|
<div class="modal-header">
|
|
|
|
|
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
|
|
|
|
|
|
<span aria-hidden="true">×</span>
|
|
|
|
|
|
|
|
</button>
|
|
|
|
|
|
|
|
<h4><?php echo $hesklang['users_location']; ?></h4>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="modal-body">
|
|
|
|
|
|
|
|
<?php if ($hasLocation): ?>
|
|
|
|
|
|
|
|
<div id="map" style="height: 500px"></div><br>
|
|
|
|
|
|
|
|
<address id="friendly-location" style="font-size: 13px"></address>
|
|
|
|
|
|
|
|
<p id="save-for-address"
|
|
|
|
|
|
|
|
style="font-size: 13px;display:none"><?php echo $hesklang['save_to_see_updated_address']; ?></p>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
|
|
getFriendlyLocation(<?php echo $ticket['latitude']; ?>,
|
|
|
|
|
|
|
|
<?php echo $ticket['longitude']; ?>);
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<div class="row">
|
|
|
|
|
|
|
|
<form action="admin_ticket.php" method="post" role="form">
|
|
|
|
|
|
|
|
<input type="hidden" name="track"
|
|
|
|
|
|
|
|
value="<?php echo $trackingID; ?>">
|
|
|
|
|
|
|
|
<input type="hidden" name="token"
|
|
|
|
|
|
|
|
value="<?php hesk_token_echo(); ?>">
|
|
|
|
|
|
|
|
<input type="hidden" name="latitude" id="latitude"
|
|
|
|
|
|
|
|
value="<?php echo $ticket['latitude']; ?>">
|
|
|
|
|
|
|
|
<input type="hidden" name="longitude" id="longitude"
|
|
|
|
|
|
|
|
value="<?php echo $ticket['longitude']; ?>">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="col-sm-12">
|
|
|
|
|
|
|
|
<div class="btn-group" style="display:none" id="save-group">
|
|
|
|
|
|
|
|
<input type="submit" class="btn btn-success"
|
|
|
|
|
|
|
|
value="<?php echo $hesklang['save_location']; ?>">
|
|
|
|
|
|
|
|
<button class="btn btn-default" data-dismiss="modal"
|
|
|
|
|
|
|
|
onclick="closeAndReset(<?php echo $ticket['latitude']; ?>, <?php echo $ticket['longitude']; ?>)">
|
|
|
|
|
|
|
|
<?php echo $hesklang['close_modal_without_saving']; ?>
|
|
|
|
|
|
|
|
</button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="btn-group">
|
|
|
|
|
|
|
|
<button id="close-button" class="btn btn-default"
|
|
|
|
|
|
|
|
data-dismiss="modal"><?php echo $hesklang['close_modal']; ?></button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
$errorCode = explode('-', $ticket['latitude']);
|
|
|
|
|
|
|
|
$key = 'location_unavailable_' . $errorCode[1];
|
|
|
|
|
|
|
|
echo '<h5>' . $hesklang[$key] . '</h5>';
|
|
|
|
|
|
|
|
endif;
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
$options .= $dropdown;
|
|
|
|
<?php
|
|
|
|
|
|
|
|
// Only output JavaScript if we have coordinates
|
|
|
|
|
|
|
|
if (strpos($ticket['latitude'], 'E') === false):
|
|
|
|
|
|
|
|
?>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
|
|
var latitude = '';
|
|
|
|
|
|
|
|
latitude = <?php echo $ticket['latitude'] != '' ? $ticket['latitude'] : -1; ?>;
|
|
|
|
|
|
|
|
var longitude = '';
|
|
|
|
|
|
|
|
longitude = <?php echo $ticket['longitude'] != '' ? $ticket['longitude'] : -1; ?>;
|
|
|
|
|
|
|
|
initializeMapForStaff(latitude, longitude, "<?php echo $hesklang['users_location']; ?>");
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
endif;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// If there is device info enabled or location, separate them from the rest of the items in the dropdown.
|
|
|
|
|
|
|
|
if ($has_location_or_user_agent) {
|
|
|
|
|
|
|
|
$dropdown .= '<li role="separator" class="divider"></li>';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Lock ticket button */
|
|
|
|
/* Lock ticket button */
|
|
|
|
if ($can_edit) {
|
|
|
|
if ($can_edit) {
|
|
|
|
if ($ticket['locked']) {
|
|
|
|
$template = '<li><a href="lock.php?track=' . $trackingID . '&locked=%s&Refresh=' . mt_rand(10000, 99999) . '&token=' . hesk_token_echo(0) . '"><i class="fa fa-%s fa-fw"></i> %s</a></li>';
|
|
|
|
$options .= '<a class="btn btn-default" href="lock.php?track=' . $trackingID . '&locked=0&Refresh=' . mt_rand(10000, 99999) . '&token=' . hesk_token_echo(0) . '"><i class="fa fa-unlock"></i> ' . $hesklang['tul'] . '</a> ';
|
|
|
|
$dropdown .= $ticket['locked']
|
|
|
|
} else {
|
|
|
|
? sprintf($template, 0, 'unlock', $hesklang['tul'])
|
|
|
|
$options .= '<a class="btn btn-default" href="lock.php?track=' . $trackingID . '&locked=1&Refresh=' . mt_rand(10000, 99999) . '&token=' . hesk_token_echo(0) . '"><i class="fa fa-lock"></i> ' . $hesklang['tlo'] . '</a> ';
|
|
|
|
: sprintf($template, 1, 'lock', $hesklang['tlo']);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Tag ticket button */
|
|
|
|
/* Tag ticket button */
|
|
|
|
if ($can_archive) {
|
|
|
|
if ($can_archive) {
|
|
|
|
if ($ticket['archive']) {
|
|
|
|
$template = '<li><a href="archive.php?track=' . $trackingID . '&archived=%s&Refresh=' . mt_rand(10000, 99999) . '&token=' . hesk_token_echo(0) . '"><i class="fa fa-tag fa-fw"></i> %s</a></li>';
|
|
|
|
$options .= '<a class="btn btn-default" href="archive.php?track=' . $trackingID . '&archived=0&Refresh=' . mt_rand(10000, 99999) . '&token=' . hesk_token_echo(0) . '"><i class="fa fa-tag"></i>' . $hesklang['remove_archive'] . '</a> ';
|
|
|
|
|
|
|
|
} else {
|
|
|
|
$dropdown .= $ticket['archive']
|
|
|
|
$options .= '<a class="btn btn-default" href="archive.php?track=' . $trackingID . '&archived=1&Refresh=' . mt_rand(10000, 99999) . '&token=' . hesk_token_echo(0) . '"><i class="fa fa-tag"></i> ' . $hesklang['add_archive'] . '</a> ';
|
|
|
|
? sprintf($template, 0, $hesklang['remove_archive'])
|
|
|
|
}
|
|
|
|
: sprintf($template, 1, $hesklang['add_archive']);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Import to knowledgebase button */
|
|
|
|
/* Import to knowledgebase button */
|
|
|
|
if ($hesk_settings['kb_enable'] && hesk_checkPermission('can_man_kb', 0)) {
|
|
|
|
if ($hesk_settings['kb_enable'] && hesk_checkPermission('can_man_kb', 0)) {
|
|
|
|
$options .= '<a class="btn btn-default" href="manage_knowledgebase.php?a=import_article&track=' . $trackingID . '"><i class="fa fa-lightbulb-o"></i> ' . $hesklang['import_kb'] . '</a> ';
|
|
|
|
$dropdown .= '<li><a href="manage_knowledgebase.php?a=import_article&track=' . $trackingID . '"><i class="fa fa-lightbulb-o fa-fw"></i> ' . $hesklang['import_kb'] . '</a></li>';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Print ticket button */
|
|
|
|
|
|
|
|
$options .= '<a class="btn btn-default" href="../print.php?track=' . $trackingID . '"><i class="fa fa-print"></i> ' . $hesklang['printer_friendly'] . '</a> ';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$dropdown .= '</ul></div> ';
|
|
|
|
|
|
|
|
$options .= $dropdown;
|
|
|
|
/* Delete ticket */
|
|
|
|
|
|
|
|
if ($can_delete) {
|
|
|
|
|
|
|
|
if ($reply) {
|
|
|
|
|
|
|
|
$url = 'admin_ticket.php';
|
|
|
|
|
|
|
|
$tmp = 'delete_post=' . $reply['id'];
|
|
|
|
|
|
|
|
$txt = $hesklang['delt'];
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
$url = 'delete_tickets.php';
|
|
|
|
|
|
|
|
$tmp = 'delete_ticket=1';
|
|
|
|
|
|
|
|
$txt = $hesklang['dele'];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$options .= '<a class="btn btn-default" href="' . $url . '?track=' . $trackingID . '&' . $tmp . '&Refresh=' . mt_rand(10000, 99999) . '&token=' . hesk_token_echo(0) . '" onclick="return hesk_confirmExecute(\'' . hesk_makeJsString($txt) . '?\');"><i class="fa fa-ban"></i> ' . $txt . '</a> ';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Return generated HTML */
|
|
|
|
/* Return generated HTML */
|
|
|
|
$options .= '</div>';
|
|
|
|
|
|
|
|
return $options;
|
|
|
|
return $options;
|
|
|
|
|
|
|
|
|
|
|
|
} // END hesk_getAdminButtons()
|
|
|
|
} // END hesk_getAdminButtons()
|
|
|
@ -2094,4 +2066,52 @@ function hesk_printCanned()
|
|
|
|
return $can_options;
|
|
|
|
return $can_options;
|
|
|
|
|
|
|
|
|
|
|
|
} // End hesk_printCanned()
|
|
|
|
} // End hesk_printCanned()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function buildUserAgentModal($user_agent, $width, $height) {
|
|
|
|
|
|
|
|
global $hesklang;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo '
|
|
|
|
|
|
|
|
<div id="user-agent-modal" class="modal fade" tabindex="-1" role="dialog"
|
|
|
|
|
|
|
|
aria-hidden="true">
|
|
|
|
|
|
|
|
<div class="modal-dialog modal-lg">
|
|
|
|
|
|
|
|
<div class="modal-content">
|
|
|
|
|
|
|
|
<div class="modal-header">
|
|
|
|
|
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
|
|
|
|
|
|
<span aria-hidden="true">×</span>
|
|
|
|
|
|
|
|
</button>
|
|
|
|
|
|
|
|
<h4>' . $hesklang['device_information'] . '</h4>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="modal-body">
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
|
|
var userAgent = platform.parse(\'' . addslashes($user_agent) . '\');
|
|
|
|
|
|
|
|
console.log(userAgent);
|
|
|
|
|
|
|
|
var screenResWidth = ' . intval($width) . ';
|
|
|
|
|
|
|
|
var screenResHeight = ' . intval($height) . ';
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<table class="table table-striped">
|
|
|
|
|
|
|
|
<tbody>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<td><strong>' . $hesklang['operating_system'] . '</strong>
|
|
|
|
|
|
|
|
</td>
|
|
|
|
|
|
|
|
<td id="operating-system"> </td>
|
|
|
|
|
|
|
|
<script>$(\'#operating-system\').html(userAgent.os.toString());</script>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<td><strong>' . $hesklang['browser'] . '</strong></td>
|
|
|
|
|
|
|
|
<td id="browser"> </td>
|
|
|
|
|
|
|
|
<script>$(\'#browser\').html(userAgent.name + \' \' + userAgent.version);</script>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<td><strong>' . $hesklang['screen_resolution'] . '</strong>
|
|
|
|
|
|
|
|
</td>
|
|
|
|
|
|
|
|
<td id="screen-resolution"> </td>
|
|
|
|
|
|
|
|
<script>$(\'#screen-resolution\').html(screenResWidth + \' x \' + screenResHeight);</script>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
</tbody>
|
|
|
|
|
|
|
|
</table>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>';
|
|
|
|
|
|
|
|
}
|
|
|
|
?>
|
|
|
|
?>
|
|
|
|