Nuevos cambios hechos de diseño
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{translate('Conversations')}}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table aiz-table mb-0" cellspacing="0" width="100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-breakpoints="lg">#</th>
|
||||
<th data-breakpoints="lg">{{ translate('Date') }}</th>
|
||||
<th data-breakpoints="lg">{{translate('Title')}}</th>
|
||||
<th>{{translate('Sender')}}</th>
|
||||
<th>{{translate('Receiver')}}</th>
|
||||
<th width="10%" class="text-right">{{translate('Options')}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($conversations as $key => $conversation)
|
||||
<tr>
|
||||
<td>{{$key+1}}</td>
|
||||
<td>{{ $conversation->created_at }}</td>
|
||||
<td>{{ $conversation->title }}</td>
|
||||
<td>
|
||||
@if ($conversation->sender != null)
|
||||
{{ $conversation->sender->name }}
|
||||
@if ($conversation->receiver_viewed == 0)
|
||||
<span class="badge badge-inline badge-info">{{ translate('New') }}</span>
|
||||
@endif
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ($conversation->receiver != null)
|
||||
{{ $conversation->receiver->name }}
|
||||
@if ($conversation->sender_viewed == 0)
|
||||
<span class="badge badge-inline badge-info">{{ translate('New') }}</span>
|
||||
@endif
|
||||
@endif
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<a class="btn btn-soft-primary btn-icon btn-circle btn-sm" href="{{route('conversations.admin_show', encrypt($conversation->id))}}" title="{{ translate('View') }}">
|
||||
<i class="las la-eye"></i>
|
||||
</a>
|
||||
@can('delete_product_conversations')
|
||||
<a href="#" class="btn btn-soft-danger btn-icon btn-circle btn-sm confirm-delete" data-href="{{route('conversations.destroy', encrypt($conversation->id))}}" title="{{ translate('Delete') }}">
|
||||
<i class="las la-trash"></i>
|
||||
</a>
|
||||
@endcan
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@section('modal')
|
||||
@include('modals.delete_modal')
|
||||
@endsection
|
||||
@@ -0,0 +1,52 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title">#{{ $conversation->title }} (Between @if($conversation->sender != null) {{ $conversation->sender->name }} @endif and @if($conversation->receiver != null) {{ $conversation->receiver->name }} @endif)
|
||||
</h5>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<ul class="list-group list-group-flush">
|
||||
@foreach($conversation->messages as $message)
|
||||
<li class="list-group-item px-0">
|
||||
<div class="media mb-2">
|
||||
<img class="avatar avatar-xs mr-3" @if($message->user != null) src="{{ uploaded_asset($message->user->avatar_original) }}" @endif onerror="this.onerror=null;this.src='{{ static_asset('assets/img/avatar-place.png') }}';">
|
||||
<div class="media-body">
|
||||
<h6 class="mb-0 fw-600">
|
||||
@if ($message->user != null)
|
||||
{{ $message->user->name }}
|
||||
@endif
|
||||
</h6>
|
||||
<p class="opacity-50">{{$message->created_at}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
{{ $message->message }}
|
||||
</p>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@if ($conversation->receiver != null && $conversation->receiver->user_type == 'admin' && auth()->user()->can('reply_to_product_conversations'))
|
||||
<form action="{{ route('messages.store') }}" method="POST">
|
||||
@csrf
|
||||
<input type="hidden" name="conversation_id" value="{{ $conversation->id }}">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<textarea class="form-control" rows="4" name="message" placeholder="{{ translate('Type your reply') }}" required></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="text-right">
|
||||
<button type="submit" class="btn btn-info">{{translate('Send')}}</button>
|
||||
</div>
|
||||
</form>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,55 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0 h6">{{ translate('Product Queries') }}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table aiz-table mb-0 " cellspacing="0" width="100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>{{ translate('User Name') }}</th>
|
||||
<th >{{ translate('Product Name') }}</th>
|
||||
<th data-breakpoints="lg">{{ translate('Question') }}</th>
|
||||
<th data-breakpoints="lg">{{ translate('Reply') }}</th>
|
||||
<th>{{ translate('status') }}</th>
|
||||
<th class="text-right">{{ translate('Options') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($queries as $key => $query)
|
||||
<tr>
|
||||
<td>{{ translate($key + 1) }}</td>
|
||||
<td>{{ $query->user->name ?? translate('Customer Not Found') }}</td>
|
||||
<td>{{ $query->product != null ? $query->product->getTranslation('name') : translate('Product Not Found') }}</td>
|
||||
<td>{{ Str::limit($query->question, 100) }}</td>
|
||||
<td>{{ Str::limit($query->reply, 100) }}</td>
|
||||
<td>
|
||||
<span
|
||||
class="badge badge-inline {{ $query->reply == null ? 'badge-warning' : 'badge-success' }}">
|
||||
{{ $query->reply == null ? translate('Not Replied') : translate('Replied')}}
|
||||
</span>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<a class="btn btn-soft-primary btn-icon btn-circle btn-sm"
|
||||
href="{{ route('product_query.show', encrypt($query->id)) }}"
|
||||
title="{{ translate('View') }}">
|
||||
<i class="las la-eye"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="aiz-pagination">
|
||||
{{ $queries->appends(request()->input())->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('modal')
|
||||
@include('modals.delete_modal')
|
||||
@endsection
|
||||
@@ -0,0 +1,56 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
<div class="col-lg-12">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="card-title">
|
||||
{{ $query->product != null ? $query->product->getTranslation('name') : translate('Product Not Found') }}
|
||||
</h5>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<ul class="list-group list-group-flush">
|
||||
<li class="list-group-item px-0">
|
||||
<div class="media mb-2">
|
||||
<img class="avatar avatar-xs mr-3"
|
||||
@if ($query->user != null) src="{{ uploaded_asset($query->user->avatar_original) }}" @endif
|
||||
onerror="this.onerror=null;this.src='{{ static_asset('assets/img/avatar-place.png') }}';">
|
||||
<div class="media-body">
|
||||
<h6 class="mb-0 fw-600">
|
||||
@if ($query->user != null)
|
||||
{{ $query->user->name }}
|
||||
@endif
|
||||
</h6>
|
||||
<p class="opacity-50">{{ $query->created_at->diffForHumans() }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="font-weight-bold">
|
||||
{{ strip_tags($query->question) }}
|
||||
</p>
|
||||
<p>
|
||||
{{ strip_tags($query->reply) }}
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
@if ((Auth::user()->id == $query->seller_id || Auth::user()->user_type == 'staff') && $query->reply == null && auth()->user()->can('reply_to_product_queries'))
|
||||
<form action="{{ route('product_query.reply', $query->id) }}" method="POST">
|
||||
@method('put')
|
||||
@csrf
|
||||
<input type="hidden" name="conversation_id" value="{{ $query->id }}">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<textarea class="form-control" rows="4" name="reply" placeholder="{{ translate('Type your reply') }}"
|
||||
required></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="text-right">
|
||||
<button type="submit" class="btn btn-info">{{ translate('Send') }}</button>
|
||||
</div>
|
||||
</form>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,74 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="card">
|
||||
<form class="" id="sort_support" action="" method="GET">
|
||||
<div class="card-header row gutters-5">
|
||||
<div class="col text-center text-md-left">
|
||||
<h5 class="mb-md-0 h6">{{ translate('Support Desk') }}</h5>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<div class="input-group input-group-sm">
|
||||
<input type="text" class="form-control" id="search" name="search"@isset($sort_search) value="{{ $sort_search }}" @endisset placeholder="{{ translate('Type ticket code & Enter') }}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="card-body">
|
||||
<table class="aiz-table" cellspacing="0" width="100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-breakpoints="lg">{{ translate('Ticket ID') }}</th>
|
||||
<th data-breakpoints="lg">{{ translate('Sending Date') }}</th>
|
||||
<th>{{ translate('Subject') }}</th>
|
||||
<th data-breakpoints="lg">{{ translate('User') }}</th>
|
||||
<th data-breakpoints="lg">{{ translate('Status') }}</th>
|
||||
<th data-breakpoints="lg">{{ translate('Last reply') }}</th>
|
||||
<th class="text-right">{{ translate('Options') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($tickets as $key => $ticket)
|
||||
@if ($ticket->user != null)
|
||||
<tr>
|
||||
<td>#{{ $ticket->code }}</td>
|
||||
<td>{{ $ticket->created_at }} @if($ticket->viewed == 0) <span class="badge badge-inline badge-info">{{ translate('New') }}</span> @endif</td>
|
||||
<td>{{ $ticket->subject }}</td>
|
||||
<td>{{ $ticket->user->name }}</td>
|
||||
<td>
|
||||
@if ($ticket->status == 'pending')
|
||||
<span class="badge badge-inline badge-danger">{{ translate('Pending') }}</span>
|
||||
@elseif ($ticket->status == 'open')
|
||||
<span class="badge badge-inline badge-secondary">{{ translate('Open') }}</span>
|
||||
@else
|
||||
<span class="badge badge-inline badge-success">{{ translate('Solved') }}</span>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if (count($ticket->ticketreplies) > 0)
|
||||
{{ $ticket->ticketreplies->last()->created_at }}
|
||||
@else
|
||||
{{ $ticket->created_at }}
|
||||
@endif
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<a href="{{route('support_ticket.admin_show', encrypt($ticket->id))}}" class="btn btn-soft-primary btn-icon btn-circle btn-sm" title="{{ translate('View Details') }}">
|
||||
<i class="las la-eye"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="clearfix">
|
||||
<div class="pull-right">
|
||||
{{ $tickets->appends(request()->input())->links() }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,141 @@
|
||||
@extends('backend.layouts.app')
|
||||
|
||||
@section('content')
|
||||
|
||||
<div class="col-lg-10 mx-auto">
|
||||
<div class="card">
|
||||
<div class="card-header row gutters-5">
|
||||
<div class="text-center text-md-left">
|
||||
<h5 class="mb-md-0 h5">{{ $ticket->subject }} #{{ $ticket->code }}</h5>
|
||||
<div class="mt-2">
|
||||
<span> {{ $ticket->user->name }} </span>
|
||||
<span class="ml-2"> {{ $ticket->created_at }} </span>
|
||||
<span class="badge badge-inline badge-secondary ml-2 text-capitalize">
|
||||
{{ translate(ucfirst($ticket->status)) }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
@can('reply_to_support_tickets')
|
||||
<form action="{{ route('support_ticket.admin_store') }}" method="post" id="ticket-reply-form" enctype="multipart/form-data">
|
||||
@csrf
|
||||
<input type="hidden" name="ticket_id" value="{{$ticket->id}}" required>
|
||||
<input type="hidden" name="status" value="{{ $ticket->status }}" required>
|
||||
<div class="form-group">
|
||||
<textarea class="aiz-text-editor" data-buttons='[["font", ["bold", "underline", "italic"]],["para", ["ul", "ol"]],["view", ["undo","redo"]]]' name="reply" required></textarea>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-md-12">
|
||||
<div class="input-group" data-toggle="aizuploader" data-type="image" data-multiple="true">
|
||||
<div class="input-group-prepend">
|
||||
<div class="input-group-text bg-soft-secondary font-weight-medium">{{ translate('Browse')}}</div>
|
||||
</div>
|
||||
<div class="form-control file-amount">{{ translate('Choose File') }}</div>
|
||||
<input type="hidden" name="attachments" class="selected-files">
|
||||
</div>
|
||||
<div class="file-preview box sm">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group mb-0 text-right">
|
||||
<button type="submit" class="btn btn-sm btn-dark" onclick="submit_reply('pending')">
|
||||
{{ translate('Submit as') }}
|
||||
<strong>
|
||||
<span class="text-capitalize">
|
||||
{{ translate($ticket->status) }}
|
||||
</span>
|
||||
</strong>
|
||||
</button>
|
||||
<button type="submit" class="btn btn-icon btn-sm btn-dark" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true"><i class="las la-angle-down"></i></button>
|
||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||
<a class="dropdown-item" href="#" onclick="submit_reply('open')">{{ translate('Submit as') }} <strong>{{ translate('Open') }}</strong></a>
|
||||
<a class="dropdown-item" href="#" onclick="submit_reply('solved')">{{ translate('Submit as') }} <strong>{{ translate('Solved') }}</strong></a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@endcan
|
||||
<div class="pad-top">
|
||||
<ul class="list-group list-group-flush">
|
||||
@foreach($ticket->ticketreplies as $ticketreply)
|
||||
<li class="list-group-item px-0">
|
||||
<div class="media">
|
||||
<a class="media-left" href="#">
|
||||
@if($ticketreply->user->avatar_original != null)
|
||||
<span class="avatar avatar-sm mr-3"><img src="{{ uploaded_asset($ticketreply->user->avatar_original) }}"></span>
|
||||
@else
|
||||
<span class="avatar avatar-sm mr-3"><img src="{{ static_asset('assets/img/avatar-place.png') }}"></span>
|
||||
@endif
|
||||
</a>
|
||||
<div class="media-body">
|
||||
<div class="">
|
||||
<span class="text-bold h6">{{ $ticketreply->user->name }}</span>
|
||||
<p class="text-muted text-sm fs-11">{{$ticketreply->created_at}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="">
|
||||
@php echo $ticketreply->reply; @endphp
|
||||
|
||||
<div class="mt-3">
|
||||
@foreach ((explode(",",$ticketreply->files)) as $key => $file)
|
||||
@php $file_detail = \App\Models\Upload::where('id', $file)->first(); @endphp
|
||||
@if($file_detail != null)
|
||||
<a href="{{ uploaded_asset($file) }}" download="" class="badge badge-lg badge-inline badge-light mb-1">
|
||||
<i class="las la-paperclip mr-2">{{ $file_detail->file_original_name.'.'.$file_detail->extension }}</i>
|
||||
</a>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
<li class="list-group-item px-0">
|
||||
<div class="media">
|
||||
<a class="media-left" href="#">
|
||||
@if($ticket->user->avatar_original != null)
|
||||
<span class="avatar avatar-sm m-3"><img src="{{ uploaded_asset($ticket->user->avatar_original) }}"></span>
|
||||
@else
|
||||
<span class="avatar avatar-sm m-3"><img src="{{ static_asset('assets/img/avatar-place.png') }}"></span>
|
||||
@endif
|
||||
</a>
|
||||
<div class="media-body">
|
||||
<div class="comment-header">
|
||||
<span class="text-bold h6 text-muted">{{ $ticket->user->name }}</span>
|
||||
<p class="text-muted text-sm fs-11">{{ $ticket->created_at }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
@php echo $ticket->details; @endphp
|
||||
<br>
|
||||
@foreach ((explode(",",$ticket->files)) as $key => $file)
|
||||
@php $file_detail = \App\Models\Upload::where('id', $file)->first(); @endphp
|
||||
@if($file_detail != null)
|
||||
<a href="{{ uploaded_asset($file) }}" download="" class="badge badge-lg badge-inline badge-light mb-1">
|
||||
<i class="las la-download text-muted">{{ $file_detail->file_original_name.'.'.$file_detail->extension }}</i>
|
||||
</a>
|
||||
<br>
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@section('script')
|
||||
<script type="text/javascript">
|
||||
function submit_reply(status){
|
||||
$('input[name=status]').val(status);
|
||||
if($('textarea[name=reply]').val().length > 0){
|
||||
$('#ticket-reply-form').submit();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user