Still working on admin ticket
This commit is contained in:
parent
12aca461ad
commit
e3d2052912
@ -690,6 +690,7 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
<tbody>
|
<tbody>
|
||||||
|
<?php if ($ticket['email'] !== ''): ?>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b><?php echo $hesklang['email']; ?></b></td>
|
<td><b><?php echo $hesklang['email']; ?></b></td>
|
||||||
<td>
|
<td>
|
||||||
@ -713,7 +714,37 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
?>
|
?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<?php if ($hesk_settings['time_worked']): ?>
|
<?php endif; if ($hesk_settings['time_worked']): ?>
|
||||||
|
<tr>
|
||||||
|
<td><strong><?php echo $hesklang['ip']; ?></strong></td>
|
||||||
|
<td>
|
||||||
|
<?php
|
||||||
|
|
||||||
|
// Format IP for lookup
|
||||||
|
if ($ticket['ip'] == 'Unknown' || $ticket['ip'] == $hesklang['unknown']) {
|
||||||
|
echo $hesklang['unknown'];
|
||||||
|
} else {
|
||||||
|
echo '<a href="../ip_whois.php?ip=' . urlencode($ticket['ip']) . '">' . $ticket['ip'] . '</a>';
|
||||||
|
|
||||||
|
if ($can_ban_ips) {
|
||||||
|
if ($ip_id = hesk_isBannedIP($ticket['ip'])) {
|
||||||
|
if ($can_unban_ips) {
|
||||||
|
echo '<a href="banned_ips.php?a=unban&track=' . $trackingID . '&id=' . intval($ip_id) . '&token=' . hesk_token_echo(0) . '">
|
||||||
|
<i class="fa fa-ban red icon-link gray-on-hover" data-toggle="tooltip" data-placement="top" data-original-title="' . $hesklang['ipisban'] . ' ' . $hesklang['click_unban'] . '"></i>
|
||||||
|
</a> ';
|
||||||
|
} else {
|
||||||
|
echo '<i class="fa fa-ban icon-link red" data-toggle="tooltip" data-placement="top" data-original-title="' . $hesklang['ipisban'] . '"></i>';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo '<a href="banned_ips.php?a=ban&track=' . $trackingID . '&ip=' . urlencode($ticket['ip']) . '&token=' . hesk_token_echo(0) . '">
|
||||||
|
<i class="fa fa-ban gray icon-link red-on-hover" data-toggle="tooltip" data-placement="top" data-original-title="' . $hesklang['savebanip'] . '"></i>
|
||||||
|
</a> ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><b><?php echo $hesklang['ts']; ?></b></td>
|
<td><b><?php echo $hesklang['ts']; ?></b></td>
|
||||||
<td>
|
<td>
|
||||||
@ -903,27 +934,8 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
<div class="table-bordered status-row">
|
||||||
<div class="row" style="padding: 20px">
|
<div class="row no-margins med-low-priority">
|
||||||
<div class="col-md-2">
|
|
||||||
</div>
|
|
||||||
<div class="col-md-10">
|
|
||||||
<?php
|
|
||||||
/* Do we need or have any canned responses? */
|
|
||||||
$can_options = hesk_printCanned();
|
|
||||||
?>
|
|
||||||
<div class="blankSpace"></div>
|
|
||||||
<!-- BEGIN TICKET HEAD -->
|
|
||||||
<div class="table-bordered">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<h3>
|
|
||||||
<?php
|
|
||||||
echo $ticket['subject'];
|
|
||||||
?></h3>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row medLowPriority">
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
$priorityLanguages = array(
|
$priorityLanguages = array(
|
||||||
@ -940,14 +952,14 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
|
|
||||||
echo '<div class="ticket-cell-admin col-md-3 col-sm-12 ';
|
echo '<div class="ticket-cell-admin col-md-3 col-sm-12 ';
|
||||||
if ($ticket['priority'] == 0) {
|
if ($ticket['priority'] == 0) {
|
||||||
echo 'criticalPriority">';
|
echo 'critical-priority">';
|
||||||
} elseif ($ticket['priority'] == 1) {
|
} elseif ($ticket['priority'] == 1) {
|
||||||
echo 'highPriority">';
|
echo 'high-priority">';
|
||||||
} else {
|
} else {
|
||||||
echo 'medLowPriority">';
|
echo 'med-low-priority">';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '<p class="ticketPropertyTitle">' . $hesklang['priority'] . '</p>';
|
echo '<p class="ticket-property-title">' . $hesklang['priority'] . '</p>';
|
||||||
|
|
||||||
echo '<form style="margin-bottom:0;" id="changePriorityForm" action="priority.php" method="post">
|
echo '<form style="margin-bottom:0;" id="changePriorityForm" action="priority.php" method="post">
|
||||||
|
|
||||||
@ -968,7 +980,7 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
|
|
||||||
</div>';
|
</div>';
|
||||||
|
|
||||||
echo '<div class="col-md-3 col-sm-12 ticket-cell-admin"><p class="ticketPropertyTitle">' . $hesklang['status'] . '</p>';
|
echo '<div class="col-md-3 col-sm-12 ticket-cell-admin"><p class="ticket-property-title">' . $hesklang['status'] . '</p>';
|
||||||
$status_options = array();
|
$status_options = array();
|
||||||
$results = mfh_getAllStatuses();
|
$results = mfh_getAllStatuses();
|
||||||
foreach ($results as $row) {
|
foreach ($results as $row) {
|
||||||
@ -991,7 +1003,7 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
echo '</span>
|
echo '</span>
|
||||||
</form>
|
</form>
|
||||||
</div>';
|
</div>';
|
||||||
echo '<div class="col-md-3 col-sm-12 ticket-cell-admin"><p class="ticketPropertyTitle">' . $hesklang['owner'] . '</p>';
|
echo '<div class="col-md-3 col-sm-12 ticket-cell-admin"><p class="ticket-property-title">' . $hesklang['owner'] . '</p>';
|
||||||
|
|
||||||
if (hesk_checkPermission('can_assign_others', 0) || $isManager) {
|
if (hesk_checkPermission('can_assign_others', 0) || $isManager) {
|
||||||
echo '
|
echo '
|
||||||
@ -1009,18 +1021,18 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
}
|
}
|
||||||
echo '<option value="-1" ' . $selectedForUnassign . '> > ' . $hesklang['unas'] . ' < </option>';
|
echo '<option value="-1" ' . $selectedForUnassign . '> > ' . $hesklang['unas'] . ' < </option>';
|
||||||
echo '</select>
|
echo '</select>
|
||||||
<input type="submit" style="display: none" value="' . $hesklang['go'] . '" class="orangebutton" onmouseover="hesk_btn(this,\'orangebuttonover\');" onmouseout="hesk_btn(this,\'orangebutton\');" />
|
<input type="submit" style="display: none" value="' . $hesklang['go'] . '">
|
||||||
<input type="hidden" name="track" value="' . $trackingID . '" />
|
<input type="hidden" name="track" value="' . $trackingID . '">
|
||||||
<input type="hidden" name="token" value="' . hesk_token_echo(0) . '" />
|
<input type="hidden" name="token" value="' . hesk_token_echo(0) . '">
|
||||||
</span>';
|
</span>';
|
||||||
} else {
|
} else {
|
||||||
echo '<p class="ticketPropertyText">';
|
echo '<p class="ticket-property-text">';
|
||||||
echo isset($admins[$ticket['owner']]) ? $admins[$ticket['owner']] :
|
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']);
|
($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']);
|
||||||
echo '</p>';
|
echo '</p>';
|
||||||
}
|
}
|
||||||
echo '</form></div>';
|
echo '</form></div>';
|
||||||
echo '<div class="col-md-3 col-sm-12 ticket-cell-admin"><p class="ticketPropertyTitle">' . $hesklang['category'] . '</p>';
|
echo '<div class="col-md-3 col-sm-12 ticket-cell-admin"><p class="ticket-property-title">' . $hesklang['category'] . '</p>';
|
||||||
if ($can_change_cat) {
|
if ($can_change_cat) {
|
||||||
echo '
|
echo '
|
||||||
|
|
||||||
@ -1031,18 +1043,76 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
' . $categories_options . '
|
' . $categories_options . '
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<input type="submit" style="display: none" value="' . $hesklang['go'] . '" /><input type="hidden" name="track" value="' . $trackingID . '" />
|
<input type="submit" style="display: none" value="' . $hesklang['go'] . '">
|
||||||
<input type="hidden" name="token" value="' . hesk_token_echo(0) . '" />
|
<input type="hidden" name="track" value="' . $trackingID . '">
|
||||||
|
<input type="hidden" name="token" value="' . hesk_token_echo(0) . '">
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</form>';
|
</form>';
|
||||||
} else {
|
} else {
|
||||||
echo '<p class="ticketPropertyText">' . $category['name'] . '</p>';
|
echo '<p class="ticket-property-text">' . $category['name'] . '</p>';
|
||||||
}
|
}
|
||||||
echo '</div>';
|
echo '</div>';
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="box">
|
||||||
|
<div class="box-header with-border">
|
||||||
|
<h1 class="box-title">
|
||||||
|
<?php echo $hesklang['message']; ?>
|
||||||
|
</h1>
|
||||||
|
<div class="box-tools pull-right">
|
||||||
|
<button type="button" class="btn btn-box-tool" data-widget="collapse">
|
||||||
|
<i class="fa fa-minus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="box-body">
|
||||||
|
<?php
|
||||||
|
/* Do we need or have any canned responses? */
|
||||||
|
$can_options = hesk_printCanned();
|
||||||
|
?>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-2 text-right">
|
||||||
|
<strong><?php echo $hesklang['m_sub']; ?></strong>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-10">
|
||||||
|
<?php echo $ticket['subject']; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php foreach ($hesk_settings['custom_fields'] as $k => $v) {
|
||||||
|
if ($v['use'] && $v['place'] == 0) {
|
||||||
|
if ($modsForHesk_settings['custom_field_setting']) {
|
||||||
|
$v['name'] = $hesklang[$v['name']];
|
||||||
|
}
|
||||||
|
echo '<div class="row">';
|
||||||
|
echo '<div class="col-md-2 text-right"><strong>' . $v['name'] . ':</strong></div>';
|
||||||
|
if ($v['type'] == 'date' && !empty($ticket[$k])) {
|
||||||
|
$dt = date('Y-m-d h:i:s', $ticket[$k]);
|
||||||
|
echo '<div class="col-md-10">' . hesk_dateToString($dt, 0) . '</div>';
|
||||||
|
} else {
|
||||||
|
echo '<div class="col-md-10">' . $ticket[$k] . '</div>';
|
||||||
|
}
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<div class="row push-down-10">
|
||||||
|
<div class="col-md-2 text-right">
|
||||||
|
<strong><?php echo $hesklang['message_colon']; ?></strong>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-10">
|
||||||
|
<?php echo $ticket['subject']; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<div class="row" style="padding: 20px">
|
||||||
|
<div class="col-md-10">
|
||||||
|
|
||||||
|
<div class="blankSpace"></div>
|
||||||
|
<!-- BEGIN TICKET HEAD -->
|
||||||
<?php
|
<?php
|
||||||
$res = hesk_dbQuery("SELECT t1.*, t2.`name` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "notes` AS t1 LEFT JOIN `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` AS t2 ON t1.`who` = t2.`id` WHERE `ticket`='" . intval($ticket['id']) . "' ORDER BY t1.`id` " . ($hesk_settings['new_top'] ? 'DESC' : 'ASC'));
|
$res = hesk_dbQuery("SELECT t1.*, t2.`name` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "notes` AS t1 LEFT JOIN `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` AS t2 ON t1.`who` = t2.`id` WHERE `ticket`='" . intval($ticket['id']) . "' ORDER BY t1.`id` " . ($hesk_settings['new_top'] ? 'DESC' : 'ASC'));
|
||||||
while ($note = hesk_dbFetchAssoc($res)) {
|
while ($note = hesk_dbFetchAssoc($res)) {
|
||||||
@ -1174,39 +1244,6 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
$color = 'class="ticketMessageContainer"';
|
$color = 'class="ticketMessageContainer"';
|
||||||
?>
|
?>
|
||||||
<div class="row ticketMessageContainer">
|
<div class="row ticketMessageContainer">
|
||||||
<div class="col-md-3 col-xs-12">
|
|
||||||
<div class="ticketName"><?php echo $ticket['name']; ?></div>
|
|
||||||
<div class="ticketEmail">
|
|
||||||
<!-- TODO -->
|
|
||||||
</div>
|
|
||||||
<div class="ticketEmail"><?php echo $hesklang['ip']; ?>:
|
|
||||||
<?php
|
|
||||||
|
|
||||||
// Format IP for lookup
|
|
||||||
if ($ticket['ip'] == 'Unknown' || $ticket['ip'] == $hesklang['unknown']) {
|
|
||||||
echo $hesklang['unknown'];
|
|
||||||
} else {
|
|
||||||
if ($can_ban_ips) {
|
|
||||||
if ($ip_id = hesk_isBannedIP($ticket['ip'])) {
|
|
||||||
if ($can_unban_ips) {
|
|
||||||
echo '<a href="banned_ips.php?a=unban&track=' . $trackingID . '&id=' . intval($ip_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['ipisban'] . ' ' . $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['ipisban'] . '"></i>';
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
echo '<a href="banned_ips.php?a=ban&track=' . $trackingID . '&ip=' . urlencode($ticket['ip']) . '&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['savebanip'] . '"></i>
|
|
||||||
</a> ';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '<a href="../ip_whois.php?ip=' . urlencode($ticket['ip']) . '">' . $ticket['ip'] . '</a>';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-9 col-xs-12 pushMarginLeft">
|
<div class="col-md-9 col-xs-12 pushMarginLeft">
|
||||||
<div class="ticketMessageTop withBorder">
|
<div class="ticketMessageTop withBorder">
|
||||||
<!-- Action Buttons -->
|
<!-- Action Buttons -->
|
||||||
@ -1216,24 +1253,7 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
<p><br/><?php echo $hesklang['date']; ?>: <?php echo hesk_date($ticket['dt'], true); ?>
|
<p><br/><?php echo $hesklang['date']; ?>: <?php echo hesk_date($ticket['dt'], true); ?>
|
||||||
|
|
||||||
<!-- Custom Fields Before Message -->
|
<!-- Custom Fields Before Message -->
|
||||||
<?php
|
|
||||||
foreach ($hesk_settings['custom_fields'] as $k => $v) {
|
|
||||||
if ($v['use'] && $v['place'] == 0) {
|
|
||||||
if ($modsForHesk_settings['custom_field_setting']) {
|
|
||||||
$v['name'] = $hesklang[$v['name']];
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '<p>' . $v['name'] . ': ';
|
|
||||||
if ($v['type'] == 'date' && !empty($ticket[$k])) {
|
|
||||||
$dt = date('Y-m-d h:i:s', $ticket[$k]);
|
|
||||||
echo hesk_dateToString($dt, 0);
|
|
||||||
} else {
|
|
||||||
echo $ticket[$k];
|
|
||||||
}
|
|
||||||
echo '</p>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="ticketMessageBottom">
|
<div class="ticketMessageBottom">
|
||||||
<!-- Message -->
|
<!-- Message -->
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.red,
|
.red,
|
||||||
.important {
|
.important,
|
||||||
|
.critical-priority {
|
||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -32,6 +33,14 @@
|
|||||||
color: blue;
|
color: blue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.med-low-priority {
|
||||||
|
background-color: #8BB467;
|
||||||
|
}
|
||||||
|
|
||||||
|
.high-priority {
|
||||||
|
background-color: #ff6a00;
|
||||||
|
}
|
||||||
|
|
||||||
/* Hover colors */
|
/* Hover colors */
|
||||||
.red-on-hover:hover {
|
.red-on-hover:hover {
|
||||||
color: red;
|
color: red;
|
||||||
|
@ -25,3 +25,60 @@
|
|||||||
.dropdown-menu>li>span>.fa {
|
.dropdown-menu>li>span>.fa {
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.no-margins {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 991px) {
|
||||||
|
.ticket-cell-admin {
|
||||||
|
border-bottom: solid 1px #ddd;
|
||||||
|
border-right: 0;
|
||||||
|
padding-top: 5px;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 992px) {
|
||||||
|
.ticket-cell-admin {
|
||||||
|
border-bottom: 0;
|
||||||
|
border-right: solid 1px #ddd;
|
||||||
|
margin-top: 1px;
|
||||||
|
height: 100px;
|
||||||
|
padding-top: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ticket-property-title {
|
||||||
|
color: rgba(255, 255, 255, .75);
|
||||||
|
font-size: 11px;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 992px) {
|
||||||
|
.ticketPropertyText {
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ticketPropertyText:hover {
|
||||||
|
white-space: normal;
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ticketPropertyText {
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 1em;
|
||||||
|
color: #fff;
|
||||||
|
padding-bottom: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-row {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.push-down-10 {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
@ -40,6 +40,7 @@ $hesklang['updated_colon'] = 'Updated:';
|
|||||||
$hesklang['last_replier_colon'] = 'Last replier:';
|
$hesklang['last_replier_colon'] = 'Last replier:';
|
||||||
$hesklang['click_to_edit'] = 'Click to edit';
|
$hesklang['click_to_edit'] = 'Click to edit';
|
||||||
$hesklang['no_device_information'] = 'No device information';
|
$hesklang['no_device_information'] = 'No device information';
|
||||||
|
$hesklang['message_colon'] = 'Message:';
|
||||||
|
|
||||||
// ADDED OR MODIFIED IN Mods for HESK 2.6.0
|
// ADDED OR MODIFIED IN Mods for HESK 2.6.0
|
||||||
$hesklang['search_logs'] = 'Search Logs';
|
$hesklang['search_logs'] = 'Search Logs';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user