/home/edulekha/crm.edulekha.com/application/views/themes/perfex/views/single_ticket.php
<?php defined('BASEPATH') or exit('No direct script access allowed'); ?>
<div class="row">
<?php if ($ticket->project_id) { ?>
<div class="col-md-12 single-ticket-project-area">
<div class="alert alert-info">
<?= _l('ticket_linked_to_project', '<a href="' . site_url('clients/project/' . $ticket->project_id) . '"><b>' . e(get_project_name_by_id($ticket->project_id)) . '</b></a>'); ?>
</div>
</div>
<?php } ?>
<?php set_ticket_open($ticket->clientread, $ticket->ticketid, false); ?>
<?= form_hidden('ticket_id', $ticket->ticketid); ?>
<div class="col-md-4 ticket-info">
<h4 class="tw-mt-0 tw-font-bold tw-text-lg tw-text-neutral-700 tw-inline-flex tw-items-center">
<?= _l('clients_single_ticket_information_heading'); ?>
</h4>
<div class="panel_s">
<div class="panel-body">
<div class="row">
<div class="col-md-12">
<h4 class="tw-font-medium tw-my-0">
#<?= e($ticket->ticketid); ?> -
<?= e($ticket->subject); ?>
</h4>
<div class="tw-divide-solid tw-divide-y tw-divide-neutral-100 tw-mt-4 [&>p:last-child]:tw-pb-0">
<p class="tw-py-2.5 tw-mb-0 tw-text-neutral-500">
<?= _l('clients_ticket_single_department', '<span class="tw-font-medium tw-text-neutral-700">' . e($ticket->department_name) . '</span>'); ?>
</p>
<p class="tw-py-2.5 tw-mb-0 tw-text-neutral-500">
<?= _l('clients_ticket_single_submitted', '<span class="tw-font-medium tw-text-neutral-700">' . e(_dt($ticket->date)) . '</span>'); ?>
</p>
<p class="tw-py-2.5 tw-mb-0 tw-text-neutral-500">
<?= _l('ticket_dt_submitter'); ?>:
<span class="tw-font-medium tw-text-neutral-700">
<?= e($ticket->submitter); ?>
</span>
</p>
<div class="tw-py-2">
<div class="tw-flex tw-items-center tw-space-x-2">
<span class="tw-text-neutral-500">
<?= _l('clients_ticket_single_status'); ?>
</span>
<div class="ticket-status-inline">
<span class="label tw-font-medium"
style="background:<?= e($ticket->statuscolor); ?>">
<?= e(ticket_status_translate($ticket->ticketstatusid)); ?>
<?php if (get_option('allow_customer_to_change_ticket_status') == 1) { ?>
<i
class="fa-regular fa-pen-to-square pointer toggle-change-ticket-status"></i>
</span>
<?php } ?>
</div>
<?php if (can_change_ticket_status_in_clients_area()) { ?>
<div class="ticket-status hide tw-flex-1">
<div class="input-group input-group-sm">
<select
data-none-selected-text="<?= _l('dropdown_non_selected_tex'); ?>"
id="ticket_status_single" class="form-control"
name="ticket_status_single">
<?php foreach ($ticket_statuses as $status) {
if (! can_change_ticket_status_in_clients_area($status['ticketstatusid'])) {
continue;
} ?>
<option
value="<?= e($status['ticketstatusid']); ?>"
<?php if ($status['ticketstatusid'] == $ticket->ticketstatusid) {
echo 'selected';
} ?>>
<?= e(ticket_status_translate($status['ticketstatusid'])); ?>
</option>
<?php } ?>
</select>
<span class="input-group-btn">
<button class="btn btn-default toggle-change-ticket-status"
type="button">
<i class="fa fa-remove pointer"></i>
</button>
</span>
</div>
</div>
<?php } ?>
</div>
</div>
<p class="tw-py-2.5 tw-mb-0 tw-text-neutral-500">
<?= _l('clients_ticket_single_priority', '<span class="tw-font-medium tw-text-neutral-700">' . e(ticket_priority_translate($ticket->priorityid)) . '</span>'); ?>
</p>
<?php if (get_option('services') == 1 && ! empty($ticket->service_name)) { ?>
<p class="tw-py-2.5 tw-mb-0 tw-text-neutral-500">
<?= _l('service') . ': <span class="tw-font-medium tw-text-neutral-700">' . e($ticket->service_name) . '</span>'; ?>
</p>
<?php } ?>
<?php
$custom_fields = get_custom_fields('tickets', ['show_on_client_portal' => 1]);
foreach ($custom_fields as $field) {
$cfValue = get_custom_field_value($ticket->ticketid, $field['id'], 'tickets');
if (empty($cfValue)) {
continue;
} ?>
<p class="tw-py-2.5 tw-mb-0 tw-text-neutral-500">
<?= e($field['name']); ?>:
<span
class="tw-font-medium tw-text-neutral-700"><?= $cfValue; ?></span>
</p>
<?php } ?>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-8">
<?= form_open_multipart($this->uri->uri_string(), ['id' => 'ticket-reply']); ?>
<h4 class="tw-mt-0 tw-font-bold tw-text-lg tw-text-neutral-700 tw-inline-flex tw-items-center">
<?= _l('clients_ticket_single_add_reply_heading'); ?>
</h4>
<div class="panel_s single-ticket-reply-area">
<div class="panel-body">
<div class="form-group">
<textarea name="message" class="form-control" rows="8"></textarea>
<?= form_error('message'); ?>
</div>
<div class="attachments_area">
<div class="attachments">
<div class="attachment tw-max-w-md">
<div class="form-group">
<label for="attachment"
class="control-label"><?= _l('clients_ticket_attachments'); ?></label>
<div class="input-group">
<input type="file"
extension="<?= str_replace(['.', ' '], '', get_option('ticket_attachments_file_extensions')); ?>"
filesize="<?= file_upload_max_size(); ?>"
class="form-control" name="attachments[0]"
accept="<?= get_ticket_form_accepted_mimes(); ?>">
<span class="input-group-btn">
<button class="btn btn-default add_more_attachments "
data-max="<?= get_option('maximum_allowed_ticket_attachments'); ?>"
type="button">
<i class="fa fa-plus"></i>
</button>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="panel-footer text-right">
<button class="btn btn-primary" type="submit" data-form="#ticket-reply" autocomplete="off"
data-loading-text="<?= _l('wait_text'); ?>">
<?= _l('ticket_single_add_reply'); ?>
</button>
</div>
</div>
<?= form_close(); ?>
<div
class="panel_s<?= $ticket->admin == null ? ' client-reply' : ''; ?>">
<div class="panel-heading">
<h4 class="panel-title">
<?= _l('clients_single_ticket_string'); ?>
</h4>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-3 border-right tw-font-medium">
<?php if ($ticket->admin == null || $ticket->admin == 0) { ?>
<p><?= e($ticket->submitter); ?></p>
<?php } else { ?>
<p><?= e($ticket->opened_by); ?></p>
<p class="text-muted">
<?= _l('ticket_staff_string'); ?>
</p>
<?php } ?>
</div>
<div class="col-md-9">
<?php
if (empty($ticket->admin)) {
echo process_text_content_for_display($ticket->message);
} else {
echo check_for_links($ticket->message);
}
?>
<br />
<p>-----------------------------</p>
<?php if (count($ticket->attachments) > 0) {
echo '<hr />';
foreach ($ticket->attachments as $attachment) { ?>
<?php
$path = get_upload_path_by_type('ticket') . $ticket->ticketid . '/' . $attachment['file_name'];
$is_image = is_image($path);
if ($is_image) {
echo '<div class="preview_image">';
}
?>
<a href="<?= site_url('download/file/ticket/' . $attachment['id'] . '?ticket_key=' . (get_option('disable_ticket_public_url') != '1' ? $ticket->ticketkey : '')); ?>"
class="display-block mbot5">
<i
class="<?= get_mime_class($attachment['filetype']); ?>"></i>
<?= e($attachment['file_name']); ?>
<?php if ($is_image) { ?>
<img src="<?= site_url('download/preview_image?path=' . protected_file_url_by_path($path) . '&type=' . $attachment['filetype']); ?>"
class="mtop5">
<?php } ?>
</a>
<?php if ($is_image) {
echo '</div>';
}
echo '<hr />';
}
} ?>
</div>
</div>
</div>
</div>
<?php foreach ($ticket_replies as $reply) { ?>
<div
class="panel_s<?= $reply['admin'] == null ? ' client-reply' : ''; ?>">
<div class="panel-body">
<div class="row">
<div class="col-md-3 border-right tw-font-medium">
<p><?= e($reply['submitter']); ?>
</p>
<p class="text-muted">
<?php if ($reply['admin'] !== null) {
echo _l('ticket_staff_string');
} ?>
</p>
</div>
<div class="col-md-9">
<?php
if (empty($reply['admin'])) {
echo process_text_content_for_display($reply['message']);
} else {
echo check_for_links($reply['message']);
}
?>
<br />
<p>-----------------------------</p>
<?php if (count($reply['attachments']) > 0) {
echo '<hr />';
foreach ($reply['attachments'] as $attachment) {
$path = get_upload_path_by_type('ticket') . $ticket->ticketid . '/' . $attachment['file_name'];
$is_image = is_image($path);
if ($is_image) {
echo '<div class="preview_image">';
} ?>
<a href="<?= site_url('download/file/ticket/' . $attachment['id'] . '?ticket_key=' . (get_option('disable_ticket_public_url') != '1' ? $ticket->ticketkey : '')); ?>"
class="inline-block mbot5">
<i
class="<?= get_mime_class($attachment['filetype']); ?>"></i>
<?= e($attachment['file_name']); ?>
<?php if ($is_image) { ?>
<img src="<?= site_url('download/preview_image?path=' . protected_file_url_by_path($path) . '&type=' . $attachment['filetype']); ?>"
class="mtop5">
<?php } ?>
</a>
<?php if ($is_image) {
echo '</div>';
}
echo '<hr />';
}
} ?>
</div>
</div>
</div>
<div class="panel-footer">
<span><?= e(_l('clients_single_ticket_replied', _dt($reply['date']))); ?></span>
</div>
</div>
<?php } ?>
</div>
</div>
<?php if (count($ticket_replies) > 1) { ?>
<a href="#top" id="toplink">↑</a>
<a href="#bot" id="botlink">↓</a>
<?php } ?>