Files
faveo/resources/views/themes/default1/client/helpdesk/ckeckticket.blade.php
Manish Verma 4752081caf v1.11.0 updates
bugfixes

Rating functionality correction

Apply fixes from StyleCI

Due date client panel correction
2021-03-16 12:11:50 +05:30

684 lines
33 KiB
PHP
Executable File

@extends('themes.default1.client.layout.client')
@section('content')
<?php
$tickets = App\Model\helpdesk\Ticket\Tickets::where('id', '=', \Crypt::decrypt($id))->first();
$thread = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', \Crypt::decrypt($id))->first();
//$user = App\User::where('id','=',$id1)->first();
?>
<!-- Main content -->
<style type="text/css">
.caret {
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-top: 4px solid;
display: inline-block;
height: 0;
margin-left: 2px;
vertical-align: middle;
width: 0;
}
.mailbox-attachments li{float:left;width:200px;border:1px solid #eee;margin-bottom:10px;margin-right:10px}
.mailbox-attachment-name{font-weight:bold;color:#666;word-break: break-word;}
.mailbox-attachment-icon,.mailbox-attachment-info,.mailbox-attachment-size{display:block}
.mailbox-attachment-info{padding:10px;background:#f4f4f4;height: auto;}
.mailbox-attachment-size{color:#999;font-size:12px}
.mailbox-attachment-icon{text-align:center;font-size:65px;color:#666;padding:20px 10px}
.mailbox-attachment-icon.has-img{padding:0}
.mailbox-attachment-icon.has-img>img{max-width:100%;height:auto}
#clearfix {display: inline-block!important;list-style-type: none!important;}
.ml40 {margin-left: -40px!important;}
</style>
<div id="content" class="site-content col-sm-12">
<article class="hentry">
<header class="entry-header">
<div class="row">
<div class="col-sm-9">
<h3 class="entry-title"><i class="fas fa-ticket-alt"> </i> {{$thread->title}}
<small> ( {{$tickets->ticket_number}} ) </small>
</h3>
</div>
<div class="col-sm-3 text-right">
@if( $common_setting->status == '1')
<div>
<button type="button" class="btn btn-light dropdown-toggle" data-toggle="dropdown">
<i class="fas fa-exchange-alt" style="color:teal;"> </i>
{!! Lang::get('lang.change_status') !!}
<span class="caret"></span>
</button>
<?php $statuses = \App\Model\helpdesk\Ticket\Ticket_Status::all(); ?>
<div class="dropdown-menu">
<a class="dropdown-item" href="#" id="open">
<i class="fas fa-folder-open" style="color:#FFD600;"> </i> {!! Lang::get('lang.open') !!}
</a>
<a class="dropdown-item" href="#" id="close">
<i class="fas fa-check" style="color:#15F109;"> </i> {!! Lang::get('lang.close') !!}
</a>
<a class="dropdown-item" href="#" id="resolved">
<i class="fas fa-check-circle " style="color:#0EF1BE;"> </i> {!! Lang::get('lang.resolved') !!}
</a>
</div>
</div>
@endif
{!! Form::close() !!}
</div>
</div>
<div class="row">
<div class="col-md-12 mb-1">
<div class="ticketratings float-right">
<table>
<tbody>
<?php $ratings = App\Model\helpdesk\Ratings\Rating::orderby('display_order')->get(); ?>
<form id="foo">
{!! csrf_field() !!}
@foreach($ratings as $rating)
@if($rating->rating_area == 'Helpdesk Area')
<?php
$rating_value = App\Model\helpdesk\Ratings\RatingRef::where('rating_id', '=', $rating->id)->where('ticket_id', '=', $tickets->id)->first();
if ($rating_value == null) {
$ratingval = '0';
} else {
$ratingval = $rating_value->rating_value;
}
?>
<tr>
<th><div class="ticketratingtitle">{!! $rating->name !!} &nbsp;</div></th>&nbsp
<td>
<?php for ($i = 1; $i <= $rating->rating_scale; $i++) { ?>
<input type="radio" class="star" id="star5" name="{!! $rating->name !!}" value="{!! $i !!}"<?php echo ($ratingval == $i) ? 'checked' : '' ?> />
<?php } ?>
</td>
</tr>
@endif
@endforeach
</form>
</tbody>
</table>
</div>
</div>
</div>
</header>
<div class="entry-content clearfix">
<div class="col-md-12 offset-md-5" id="loader" style="display:none;">
<img src="{{asset("lb-faveo/media/images/gifloader.gif")}}"><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
</div>
<div id="refresh">
<div>
<?php
$priority = App\Model\helpdesk\Ticket\Ticket_Priority::where('priority_id', '=', $tickets->priority_id)->first();
?>
<div class="alert alert-secondary">
<div class="row">
<div class="col-md-3">
<?php
$sla = $tickets->sla;
$SlaPlan = App\Model\helpdesk\Manage\Sla_plan::where('id', '=', $sla)->first();
?>
<b>{!! Lang::get('lang.sla_plan') !!}: {{$SlaPlan->grace_period}} </b>
</div>
<div class="col-md-3">
<b>{!! Lang::get('lang.created_date') !!}: </b> {{ UTC::usertimezone($tickets->created_at) }}
</div>
<div class="col-md-3">
<b>{!! Lang::get('lang.due_date') !!}: </b>
<?php
$time = $tickets->created_at;
$time = date_create($time);
date_add($time, date_interval_create_from_date_string($SlaPlan->grace_period));
echo UTC::usertimezone(date_format($time, 'Y-m-d H:i:s'));
?>
</div>
<div class="col-md-3">
<?php $response = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $tickets->id)->where('is_internal', '=', 0)->get(); ?>
@foreach($response as $last)
<?php $ResponseDate = $last->created_at; ?>
@endforeach
<b>{!! Lang::get('lang.last_response') !!}: </b> {{ UTC::usertimezone($ResponseDate)}}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<table class="table">
<tr>
<td><b>{!! Lang::get('lang.status') !!}:</b></td>
<?php $status = App\Model\helpdesk\Ticket\Ticket_Status::where('id', '=', $tickets->status)->first(); ?>
@if($status->id == 1)
<td title="{{$status->properties}}" style="color:orange">{{$status->name}}</td>
@elseif($status->id == 2)
<td title="{{$status->properties}}" style="color:green">{{$status->name}}</td>
@elseif($status->id == 3)
<td title="{{$status->properties}}" style="color:green">{{$status->name}}</td>
@endif
</tr>
<tr>
<td><b>{!! Lang::get('lang.priority') !!}:</b></td>
<?php $priority = App\Model\helpdesk\Ticket\Ticket_Priority::where('priority_id', '=', $tickets->priority_id)->first(); ?>
@if($priority->priority_id == 1)
<td title="{{$priority->priority_desc}}" style="color:green">{{$priority->priority_desc}}</td>
@elseif($priority->priority_id == 2)
<td title="{{$priority->priority_desc}}" style="color:orange">{{$priority->priority_desc}}</td>
@elseif($priority->priority_id == 3)
<td title="{{$priority->priority_desc}}" style="color:red">{{$priority->priority_desc}}</td>
@endif
</tr>
<tr>
<td><b>{!! Lang::get('lang.department') !!}:</b></td>
<?php
$help_topic = App\Model\helpdesk\Manage\Help_topic::where('id', '=', $tickets->help_topic_id)->first();
$department = App\Model\helpdesk\Agent\Department::where('id', '=', $help_topic->department)->first();
?>
<td title="{{ $department->name }}">{!! $department->name !!}</td>
</tr>
</table>
</div>
<div class="col-md-6">
<table class="table">
<tr>
<td><b>{!! Lang::get('lang.help_topic') !!}:</b></td>
<?php $help_topic = App\Model\helpdesk\Manage\Help_topic::where('id', '=', $tickets->help_topic_id)->first(); ?>
<td title="{{$help_topic->topic}}">{{$help_topic->topic}}</td>
</tr>
<tr>
<td><b>{!! Lang::get('lang.last_message') !!}:</b></td>
<td>{{ucwords($last->poster)}}</td>
</tr>
</table>
</div>
</div>
</div>
<div class="comments-area mb-0" id="comments">
<?php
$conversations = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $tickets->id)->where('is_internal', '=', 0)->paginate(10);
$ij = App\Model\helpdesk\Ticket\Ticket_Thread::where('ticket_id', '=', $tickets->id)->first();
$user = App\User::where('id', '=', $tickets->user_id)->first();
foreach ($conversations as $conversation) {
$role = $conversation->user;
$body = $conversation->thread($conversation->body);
?>
<ol class="comment-list" >
<li class="comment">
<article class="comment-body">
<footer class="comment-meta"
<?php if ($role->role == "user") { ?> style="background-color: hsla(100, 100%, 51%, 0.15)" <?php } else { ?> style="background-color:#FFFCB3" <?php } ?>
>
<div class="comment-author">
<img src="{{$role->profile_pic}}"alt="" height="50" width="50" class="avatar"
<?php if ($role->role == "user") { ?>style="box-shadow: 0 1px 3px #00FF26;" <?php } else { ?> style="box-shadow: 0 1px 3px #FFEC00;" <?php } ?>
>
@if($role->role == "user")
<b class="fn"><a href="#" rel="external" class="url">{{$role->user_name}}</a></b>
@else
<b class="fn"><a href="#" rel="external" class="url">{{$role->first_name." ".$role->last_name}}</a></b>
<div class="ticketratings float-right" style="margin-top: -12px;">
<table>
<tbody>
@foreach($ratings as $rating)
@if($rating->rating_area == 'Comment Area')
<?php
$rating_value = App\Model\helpdesk\Ratings\RatingRef::where('rating_id', '=', $rating->id)->where('thread_id', '=', $conversation->id)->first();
if ($rating_value == null) {
$ratingval = '0';
} else {
$ratingval = $rating_value->rating_value;
}
?>
<form class="foo2">
{{ csrf_field() }}
<tr>
<th><div class="ticketratingtitle">{!! $rating->name !!} &nbsp;</div></th>&nbsp;
<td>
<?php for ($i = 1; $i <= $rating->rating_scale; $i++) { ?>
<input type="radio" class="star" id="star5" name="{!! $rating->name !!},{!! $conversation->id !!}" value="{!! $i !!}"<?php echo ($ratingval == $i) ? 'checked' : '' ?> />
<?php } ?>
</td>
</tr>
</form>
@endif
@endforeach
</tbody>
</table>
</div>
@endif
</div><!-- .comment-author -->
<div class="comment-metadata">
<small class="date text-muted">
<time datetime="2013-10-23T01:50:50+00:00"><i class="fa fa-clock-o"> </i> {{ UTC::usertimezone($conversation->created_at) }}</time>
</small>
</div><!-- .comment-metadata -->
</footer><!-- .comment-meta -->
<div class="comment-content">
@if($conversation->firstContent()=='yes')
<div class="embed-responsive{{$conversation->id}} embed-responsive-16by9 "></div>
<script>
setTimeout(function(){
var $iframe="Id{{$conversation->id}}";
$('<iframe src="about:blank" id='+$iframe+' class="iframe" frameborder="0" scrolling="no" width="100%" style="height:1px"></iframe>').appendTo(".embed-responsive{{$conversation->id}}");
setTimeout(function(){
$('#'+$iframe).contents().find('body').append('<body><style>body{display:inline-block;}</style>{!!$conversation->purify(true)!!}<body>');
},100)
setTimeout(function(){
var frameid=document.getElementById($iframe);
if(parseInt($("#"+$iframe).contents().find('img').css('width'))>700){
$("#"+$iframe).contents().find('img').css('width','96%');
}
frameid.contentWindow.document.body.style.width="100%";
var iframe_height=frameid.contentWindow.document.body.scrollHeight;
frameid.style.height=iframe_height+"px";
}, 1000);
}, 0);
</script>
@else
{!! $conversation->body !!}
@endif
@if($conversation->id == $ij->id)
<?php $ticket_form_datas = App\Model\helpdesk\Ticket\Ticket_Form_Data::where('ticket_id', '=', $tickets->id)->get(); ?>
@if(isset($ticket_form_datas))
<br/>
<table class="table">
<tbody>
@foreach($ticket_form_datas as $ticket_form_data)
<tr>
<td style="width: 30%">{!! $ticket_form_data->getFieldKeyLabel() !!}</td>
<td>{!! removeUnderscore($ticket_form_data->content) !!}</td>
</tr>
@endforeach
</tbody>
</table>
@endif
@endif
</div><!-- .comment-content -->
<br/><br/>
<div class="timeline-footer">
@if(!$conversation->is_internal)
@if($conversation->user_id != null)
<?php Event::fire(new App\Events\Timeline($conversation, $role, $user)); ?>
@endif
@endif
<?php
$attachments = App\Model\helpdesk\Ticket\Ticket_attachments::where('thread_id', '=', $conversation->id)->get();
$i = 0;
foreach ($attachments as $attachment) {
if ($attachment->poster == 'ATTACHMENT') {
$i++;
}
}
if ($i > 0) {
echo "<hr style='border-top: 1px dotted #FFFFFF;margin-top:0px;margin-bottom:0px;background-color:#8B8C90;'><br><h5 class='entry-title'><b>" . $i . " </b> Attachments</h5>";
}
?>
<ul id="clearfix" class="mailbox-attachments clearfix ml40">
<?php
foreach ($attachments as $attachment) {
$size = $attachment->size;
$units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
$power = $size > 0 ? floor(log($size, 1024)) : 0;
$value = number_format($size / pow(1024, $power), 2, '.', ',') . ' ' . $units[$power];
if ($attachment->poster == 'ATTACHMENT') {
if (mime($attachment->type) == true) {
$var = '<a href="' . URL::route('image', array('image_id' => $attachment->id)) . '" target="_blank"><img style="width:200px;height:120px;" src="data:image/jpg;base64,' . $attachment->file . '"/></a>';
echo '<li><span class="mailbox-attachment-icon has-img">' . $var . '</span><div class="mailbox-attachment-info"><a class="mailbox-attachment-name">' . $attachment->name . '</a><span class="mailbox-attachment-size">' . $value . '</span></div></li>';
} else {
//$var = '<a href="' . URL::route('image', array('image_id' => $attachment->id)) . '" target="_blank"><img style="max-width:200px;height:133px;" src="data:'.$attachment->type.';base64,' . base64_encode($data) . '"/></a>';
$var = '<a style="width:200px;height:120px;text-decoration: none;" href="' . URL::route('image', array('image_id' => $attachment->id)) . '" target="_blank"><span class="mailbox-attachment-icon" style="background:#fff;height:120px;font-size:16px;">' . strtoupper($attachment->type) . '</span></a><div class="mailbox-attachment-info">' . $attachment->name . '<span class="mailbox-attachment-size">' . $value . '</span></div>';
echo '<li style="background-color:#f4f4f4;">' . $var . '</li>';
}
}
}
?>
</ul>
</div>
</article><!-- .comment-body -->
</li><!-- .comment -->
</ol>
<?php
?>
<?php }
?>
<div class="float-right" style="margin-top:-30px;margin-bottom:-30px">
<?php echo $conversations->setPath(route('check_ticket', ['id' => $id]))->render(); ?>
</div>
<br/><br/>
</div>
@if(Session::has('success1'))
<div class="alert alert-success alert-dismissable" id='formabc'>
<i class="fa fa-check-circle"></i>
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
{{Session::get('success1')}}
</div>
@endif
<!-- failure message -->
@if(Session::has('fails1'))
<div class="alert alert-danger alert-dismissable" id='formabc'>
<i class="fa fa-ban"></i>
<b>{!! Lang::get('lang.alert') !!}!</b>
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
{{Session::get('fails1')}}
</div>
@endif
<?php $id2 = Crypt::decrypt($id); ?>
<div id="respond" class="comment-respond form-border">
<h3 id="reply-title" class="comment-reply-title section-title"><i class="line"></i>{!! Lang::get('lang.leave_a_reply') !!}</h3>
@if(Auth::user())
{!! Form::open(['url'=>'post/reply/'.$id2.'#formabc']) !!}
@else
{!! Form::open(['url'=>'post-ticket-reply/'.$id.'#formabc']) !!}
@endif
<div class="row">
<div class="col-md-12">
<div class="form-group ">
<textarea class="form-control" id="reply-input" name="comment" cols="30" rows="8"></textarea>
</div>
</div>
</div>
<div class="text-right">
<button type="submit" onClick="return checkFunction();" class="btn btn-custom btn-lg">{!! Lang::get('lang.post_comment') !!}</button>
</div>
{!! Form::close() !!}
</div>
</div>
</article>
</div>
<script type="text/javascript">
function checkFunction() {
var x;
x = document.getElementById("reply-input").value;
if (x == "") {
alert("{{Lang::get('lang.reply-can-not-be-empty')}}");
return false;
};
}
$("#cc_page").on('click', '.search_r', function () {
var search_r = $('a', this).attr('id');
$.ajax({
type: "GET",
url: "../ticket/status/{{$tickets->id}}/" + search_r,
beforeSend: function () {
$("#refresh").hide();
$("#loader").show();
},
success: function (response) {
$("#refresh").load("../check_ticket/{!! $id !!} #refresh");
$("#refresh").show();
$("#loader").hide();
var message = response;
$("#alert11").show();
$('#message-success1').html(message);
setInterval(function () {
$("#alert11").hide();
}, 4000);
}
});
return false;
});
$(document).ready(function () {
var Data = $('input[name="rating"]:checked').val();
var Data2 = $('input[name="rating2"]:checked').val();
if (Data) {
$('input[name=rating]').rating('readOnly');
jQuery('.star').attr('disabled', true);
}
$('.star').change(function () {
$('#foo').submit();
$('.foo2').submit();
});
// process the form
$('#foo').submit(function (event) {
// get the form data
// there are many ways to get this data using jQuery (you can use the class or id also)
var formData = $(this).serialize();
//$('#foo').serialize();
// process the form
$.ajax({
type: 'POST', // define the type of HTTP verb we want to use (POST for our form)
url: '../rating/' +<?php echo $tickets->id ?>, // the url where we want to POST
data: formData, // our data object
dataType: 'json', // what type of data do we expect back from the server
success: function () {
}
});
// using the done promise callback
// stop the form from submitting the normal way and refreshing the page
event.preventDefault();
});
// process the form
$('.foo2').submit(function (event) {
// get the form data
// there are many ways to get this data using jQuery (you can use the class or id also)
var formData = $(this).serialize();
//$('#foo').serialize();
// process the form
$.ajax({
type: 'POST', // define the type of HTTP verb we want to use (POST for our form)
url: '../rating2/' +<?php echo $tickets->id ?>, // the url where we want to POST
data: formData, // our data object
dataType: 'json', // what type of data do we expect back from the server
success: function () {
}
});
// using the done promise callback
// stop the form from submitting the normal way and refreshing the page
event.preventDefault();
});
});
$(function() {
//Add text editor
$("textarea").summernote({
height: 300,
tabsize: 2,
toolbar: [
['style', ['bold', 'italic', 'underline', 'clear']],
['font', ['strikethrough', 'superscript', 'subscript']],
['fontsize', ['fontsize']],
['color', ['color']],
['para', ['ul', 'ol', 'paragraph']],
['height', ['height']]
]
});
});
jQuery(document).ready(function () {
// Close a ticket
$('#close').on('click', function (e) {
$.ajax({
type: "POST",
url: "../ticket/close/{{$tickets->id}}",
data:{"_token": "{{ csrf_token() }}"},
beforeSend: function () {
$("#refresh").hide();
$("#loader").show();
},
success: function (response) {
$("#refresh").load("../check_ticket/{!! $id !!} #refresh");
$("#refresh").show();
$("#loader").hide();
// $("#d1").trigger("click");
// var message = "Success! Your Ticket have been Closed";
// $("#alert11").show();
// $('#message-success1').html(message);
// setInterval(function(){
// $("#alert11").hide();
// setTimeout(function() {
// var link = document.querySelector('#load-inbox');
// if(link) {
// link.click();
// }
// }, 500);
// },2000);
}
})
return false;
});
// Resolved a ticket
$('#resolved').on('click', function (e) {
$.ajax({
type: "POST",
url: "../ticket/resolve/{{$tickets->id}}",
data:{"_token": "{{ csrf_token() }}"},
beforeSend: function () {
$("#refresh").hide();
$("#loader").show();
},
success: function (response) {
$("#refresh").load("../check_ticket/{!! $id !!} #refresh");
$("#refresh").show();
$("#loader").hide();
var message = "Success! Your Ticket have been Resolved";
$("#alert11").show();
$('#message-success1').html(message);
setInterval(function () {
$("#alert11").hide();
setTimeout(function () {
var link = document.querySelector('#load-inbox');
if (link) {
link.click();
}
}, 500);
}, 2000);
}
})
return false;
});
// Open a ticket
$('#open').on('click', function (e) {
$.ajax({
type: "POST",
url: "../ticket/open/{{$tickets->id}}",
data:{"_token": "{{ csrf_token() }}"},
beforeSend: function () {
$("#refresh").hide();
$("#loader").show();
},
success: function (response) {
$("#refresh").load("../check_ticket/{!! $id !!} #refresh");
$("#refresh").show();
$("#loader").hide();
var message = "Success! Your Ticket have been Opened";
$("#alert11").show();
$('#message-success1').html(message);
setInterval(function () {
$("#alert11").hide();
}, 4000);
}
})
return false;
});
});
</script>
@stop