Files
wticreatorstudio/Modules/Chat/Resources/views/index.blade.php
T
2024-02-12 22:54:20 -05:00

346 lines
20 KiB
PHP

@chat
@if (in_array($user->role->type, ['superadmin', 'admin', 'staff']))
@adminChatVars
@else
@userChatVars
@endif
@extends($layout)
@section('title')
{{ __('chat::messages.conversations') }}
@endsection
@if ($is_admin)
@section('styles')
@else
@push('styles')
@endif
<meta name="csrf-token" content="@php echo csrf_token(); @endphp" />
<link rel="stylesheet" href="{{ asset('Modules/Chat/Resources/assets/css/bootstrap.min.css') }}">
<link rel="stylesheet" href="{{ asset(asset_path('backend/vendors/font_awesome/css/all.min.css')) }}" />
<link rel="stylesheet" href="{{ asset(asset_path('backend/vendors/css/fnt.min.css')) }}" />
@livewireStyles
@routes
<link rel="stylesheet" href="{{ asset('Modules/Chat/Resources/assets/css/emojionearea.min.css') }}">
<link rel="stylesheet" href="{{ asset('Modules/Chat/Resources/assets/css/dropzone.css') }}">
<link rel="stylesheet" href="{{ asset('Modules/Chat/Resources/assets/css/yBox.min.css') }}">
<link rel="stylesheet" href="{{ asset('Modules/Chat/Resources/assets/css/video-js.css') }}">
<link rel="stylesheet" href="{{ asset('Modules/Chat/Resources/assets/css/new-conversation.css') }}">
<link rel="stylesheet" href="{{ asset('Modules/Chat/Resources/assets/css/style.css') }}">
<link rel="stylesheet" href="{{ asset('Modules/Chat/Resources/assets/css/custom-style.css') }}">
<link rel="stylesheet" href="{{ asset('Modules/Chat/Resources/assets/icheck/skins/all.css') }}">
<style>
ol, ul {
padding-left: 0;
}
</style>
@if ($is_admin)
@endsection
@else
@endpush
@endif
@section($container)
<audio id="notificationSound">
<source src="{{ getNotificationSound() ? getNotificationSound() : ''}}" type="audio/mp3">
</audio>
<div class="page-container">
<div class="chat-container chat">
<div class="chat__inner">
<!-- left section of chat area (chat person selection area) -->
<div class="chat__people-wrapper chat__people-wrapper--responsive">
<div class="chat__people-wrapper-header">
<span class="h3 mb-0">{{ __('chat::messages.conversations') }}</span>
<div class="d-flex chat__people-wrapper-btn-group ms-1">
<i class="nav-icon fa fa-bars align-top chat__people-wrapper-bar"></i>
@if($enableGroupSetting == 1 && permissionCheck('can_add_group'))
@if(Auth::user()->role->type == 'admin')
<div
class="chat__people-wrapper-button btn-create-group me-2 d-flex align-items-center"
data-bs-toggle="modal"
data-bs-target="#createNewGroup">
<i class="nav-icon group-icon color-green remove-tooltip" data-bs-toggle="tooltip"
data-bs-placement="bottom"
title="{{ __('chat::messages.create_new_group') }}"><img
src="{{asset('Modules/Chat/Resources/assets/icons/group.png')}}" width="33" height="33"></i>
</div>
@elseif($membersCanAddGroup == 1)
<div
class="chat__people-wrapper-button btn-create-group me-2 d-flex align-items-center"
data-bs-toggle="modal"
data-bs-target="#createNewGroup">
<i class="nav-icon group-icon color-green remove-tooltip" data-bs-toggle="tooltip"
data-bs-placement="bottom"
title="{{ __('chat::messages.create_new_group') }}"><img
src="{{asset('Modules/Chat/Resources/assets/icons/group.png')}}" width="33" height="33"></i>
</div>
@endif
@endif
@if (permissionCheck('can_start_conversation'))
<div class="chat__people-wrapper-button d-flex align-items-center" data-bs-toggle="modal"
data-bs-target="#addNewChat">
<i class="nav-icon remove-tooltip" data-bs-toggle="tooltip" data-bs-placement="bottom"
title="{{ __('chat::messages.new_conversation') }}"><img
src="{{asset('Modules/Chat/Resources/assets/icons/bubble-chat.png')}}" width="30" height="30"></i>
</div>
@endif
<i class="nav-icon fa fa-times align-top chat__people-close-bar d-sm-none d-block align-self-center ms-2"></i>
</div>
</div>
<div class="chat__search-wrapper">
<div class="chat__search clearfix chat__search--responsive">
<i class="fa fa-search"></i>
<input type="search" placeholder="{{ __('chat::messages.search') }}" class="chat__search-input"
id="searchUserInput">
<i class="fa fa-search d-lg-none chat__search-responsive-icon"></i>
</div>
</div>
<ul class="nav nav-tabs chat__tab-nav mb-1 border-bottom-0" id="chatTabs">
<li class="nav-item">
<a data-bs-toggle="tab" id="activeChatTab" class="nav-link active login-group__sub-title" href="#chatPeopleBody">{{__('chat::messages.chats.active_chat')}}</a>
</li>
<li class="nav-item">
<a data-bs-toggle="tab" id="archiveChatTab" class="nav-link login-group__sub-title" href="#archivePeopleBody">{{__('chat::messages.chats.archive_chat')}}</a>
</li>
</ul>
<div class="tab-content chat__tab-content">
<div class="chat__people-body tab-pane fade in active show" id="chatPeopleBody">
<div id="infyLoader" class="infy-loader chat__people-body-loader">
@include('chat::partials.infy-loader')
</div>
<div class="text-center no-conversation" style="display: none">
<div class="chat__no-conversation">
<div class="text-center"><i class="fa fa-2x fa-commenting-o" aria-hidden="true"></i></div>
{{ __('chat::messages.no_conversation_found') }}
</div>
</div>
<div class="text-center no-conversation-yet" style="display: none">
<div class="chat__no-conversation">
<div class="text-center"><i class="fa fa-2x fa-commenting-o" aria-hidden="true"></i></div>
{{ __('chat::messages.no_conversation_added_yet') }}
</div>
</div>
<div id="loadMoreConversationBtn" style="display: none">
<a href="javascript:void(0)" class="load-more-conversation">Load More</a>
</div>
</div>
<div class="chat__people-body tab-pane fade in active" id="archivePeopleBody">
<div class="text-center no-archive-conversation">
<div class="chat__no-archive-conversation">
<div class="text-center"><i class="fa fa-2x fa-commenting-o" aria-hidden="true"></i></div>
{{ __('chat::messages.no_conversation_found') }}
</div>
</div>
<div class="text-center no-archive-conversation-yet">
<div class="chat__no-archive-conversation">
<div class="text-center"><i class="fa fa-2x fa-commenting-o" aria-hidden="true"></i></div>
{{ __('chat::messages.no_conversation_added_yet') }}
</div>
</div>
<div id="loadMoreArchiverConversationBtn" style="display: none">
<a href="javascript:void(0)" class="load-more-archive-conversation">{{__('chat::messages.chats.load_more')}}</a>
</div>
</div>
</div>
</div>
<!--/ left section of chat area -->
<!-- right section of chat area (chat conversation area)-->
<div class="chat__area-wrapper ms-lg-3">
@include('chat::chat.no-chat')
</div>
<!--/ right section of chat area-->
<!-- profile section (chat profile section)-->
@include('chat::chat.chat_profile')
@include('chat::chat.msg_info')
<!--/ profile section -->
</div>
</div>
<!-- Modal -->
<div id="addNewChat" class="modal fade" role="dialog" tabindex="-1">
<div class="modal-dialog modal-dialog-centered conversation-modal">
<!-- Modal content-->
<div class="modal-content modal-new-conversation">
<div class="modal-header border-0">
<h5 class="modal-title">
<i class="ti-user"></i>{{__('chat::messages.group.new_conversations')}} @if($enableGroupSetting == 1) / {{__('chat::messages.group.groups')}} @endif</h5>
<button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
&times;
</button>
</div>
<div class="modal-body">
<nav class="nav nav-pills flex-wrap" id="myTab" role="tablist">
<a class="nav-item nav-link active" id="nav-my-contacts-tab" data-bs-toggle="tab"
href="#nav-my-contacts" role="tab" aria-controls="nav-my-contacts-tab"
aria-expanded="true"> <i class="ti-user"></i>{{ __('chat::messages.my_contacts') }}
</a>
<a class="nav-item nav-link wrap-text" id="nav-users-tab" data-bs-toggle="tab"
href="#nav-users" role="tab" aria-controls="nav-users" aria-expanded="true">
<i class="ti-user"></i>{{ __('chat::messages.new_conversation') }}
</a>
@if($enableGroupSetting == 1)
<a class="nav-item nav-link" id="nav-groups-tab" data-bs-toggle="tab" href="#nav-groups"
role="tab" aria-controls="nav-groups">{{ __('chat::messages.group.groups') }}</a>
@endif
<a class="nav-item nav-link" id="nav-blocked-users-tab" data-bs-toggle="tab"
href="#nav-blocked-users" role="tab"
aria-controls="nav-blocked-users">{{ __('chat::messages.blocked_users') }}</a>
</nav>
<div class="tab-content search-any-member mt-3" id="nav-tabContent">
<div class="tab-pane fade show active" id="nav-my-contacts" role="tabpanel"
aria-labelledby="nav-my-contacts-tab">
@livewire('chat::my-contacts-search', ['myContactIds' => $myContactIds, 'blockUserIds' => $blockUserIds])
</div>
<div class="tab-pane fade" id="nav-users" role="tabpanel" aria-labelledby="nav-users-tab">
@livewire('chat::search-users', ['myContactIds' => $myContactIds, 'blockUserIds' => $blockUserIds])
</div>
@if($enableGroupSetting == 1)
<div class="tab-pane fade" id="nav-groups" role="tabpanel" aria-labelledby="nav-groups-tab">
@livewire('chat::group-search')
</div>
@endif
<div class="tab-pane fade show" id="nav-blocked-users" role="tabpanel"
aria-labelledby="nav-blocked-users-tab">
@livewire('chat::blocked-user-search', ['blockedByMeUserIds' => $blockedByMeUserIds])
</div>
</div>
</div>
</div>
</div>
</div>
@include('chat::chat.group_modals')
@include('chat::chat.edit_group_modals')
@include('chat::chat.report_user_modal')
</div>
@include('chat::chat.templates.conversation-template')
@include('chat::chat.templates.message')
@include('chat::chat.templates.no-messages-yet')
@include('chat::chat.templates.no-conversation')
@include('chat::chat.templates.group_details')
@include('chat::chat.templates.user_details')
@include('chat::chat.templates.group_listing')
@include('chat::chat.templates.group_members')
@include('chat::chat.templates.single_group_member')
@include('chat::chat.group_members_modal')
@include('chat::chat.templates.blocked_users_list')
@include('chat::chat.templates.add_chat_users_list')
@include('chat::chat.templates.badge_message_template')
@include('chat::chat.templates.member_options')
@include('chat::chat.templates.single_message')
@include('chat::chat.templates.contact_template')
@include('chat::chat.templates.conversations_list')
@include('chat::chat.templates.common_templates')
@include('chat::chat.templates.my_contacts_listing')
@include('chat::chat.templates.conversation-request')
@include('chat::chat.copyImageModal')
@endsection
@push('scripts')
<script src="{{ asset('Modules/Chat/Resources/assets/messages.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/bootstrap.bundle.min.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/coreui.min.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/jquery.toast.min.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/sweetalert2.all.min.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/moment.min.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/moment-timezone.min.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/icheck/icheck.min.js') }}"></script>
<script src="https://www.jsviews.com/download/jsviews.min.js"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/emojionearea.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/emojione.min.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/sw.js') }}"></script>
<script>
if (!navigator.serviceWorker.controller) {
navigator.serviceWorker.register("sw.js").then(function (reg) {
console.log("Service worker has been registered for scope: " + reg.scope);
});
}
</script>
<script>
let currentLocale = "{{ Config::get('app.locale') }}"
Lang.setLocale(currentLocale)
let pusherKey = '{{ config('broadcasting.connections.pusher.key') }}'
let pusherCluster = '{{ config('broadcasting.connections.pusher.options.cluster') }}'
let messageDeleteTime = '{{ config('configurable.delete_message_time') }}'
let baseURL = '{{ url('/') }}'
let conversationsURL = '{{ route('conversations') }}'
let notifications = JSON.parse(JSON.stringify({!! json_encode(getNotifications()) !!}))
let loggedInUserId = '{{ getLoggedInUserId() }}'
let loggedInUserStatus = '{!! getLoggedInUser()->userStatus !!}'
if (loggedInUserStatus != '') {
loggedInUserStatus = JSON.parse(JSON.stringify({!! getLoggedInUser()->userStatus !!}))
}
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content'),
},
});
(function ($) {
$.fn.button = function (action) {
if (action === 'loading' && this.data('loading-text')) {
this.data('original-text', this.html()).html(this.data('loading-text')).prop('disabled', true)
}
if (action === 'reset' && this.data('original-text')) {
this.html(this.data('original-text')).prop('disabled', false);
}
};
}(jQuery));
$(document).ready(function () {
$('.alert').delay(4000).slideUp(300);
});
</script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/app.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/custom.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/notification.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/set_user_status.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/set-user-on-off.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/profile.js') }}"></script>
@livewireScripts
<script src="{{ asset('Modules/Chat/Resources/assets/js/dropzone.min.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/directive.min.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/yBox.min.js') }}"></script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/video.min.js') }}"></script>
<!--custom js-->
<script>
let userURL = '{{url('users')}}/'
let userListURL = '{{url('users-list')}}' // not use in anywhere
let chatSelected = false
let csrfToken = '{{csrf_token()}}'
let authUserName = '{{ getLoggedInUser()->name }}'
let authImgURL = '{{ getLoggedInUser()->photo}}'
let deleteConversationUrl = '{{url('conversations')}}/'
let getUsers = '{{url('get-users')}}' //not used in anywhere
let appName = '{{ getAppName() }}'
let conversationId = '{{ $conversationId }}'
let enableGroupSetting = '{{ isGroupChatEnabled() }}'
let authRole = "{{ Auth::user()->role_name }}"
/** Icons URL */
let pdfURL = '{{ asset('Modules/Chat/Resources/assets/icons/pdf.png') }}'
let xlsURL = '{{ asset('Modules/Chat/Resources/assets/icons/xls.png') }}'
let textURL = '{{ asset('Modules/Chat/Resources/assets/icons/text.png') }}';
let docsURL = '{{ asset('Modules/Chat/Resources/assets/icons/docs.png') }}'
let videoURL = '{{ asset('Modules/Chat/Resources/assets/icons/video.png') }}'
let youtubeURL = '{{ asset('Modules/Chat/Resources/assets/icons/youtube.png') }}'
let audioURL = '{{ asset('Modules/Chat/Resources/assets/icons/audio.png') }}'
let zipURL = '{{ asset('Modules/Chat/Resources/assets/icons/zip.png') }}'
let isUTCTimezone = '{{(config('app.timezone') == 'UTC') ? 1 :0 }}'
let timeZone = '{{config('app.timezone')}}'
let blockedUsersListObj = JSON.parse('{!! json_encode($blockUserIds) !!}')
let myContactIdsObj = JSON.parse('{!! json_encode($myContactIds) !!}')
let groupMembers = []
let checkShowNameChat = "{{ checkShowNameChat() }}"
</script>
<script src="{{ asset('Modules/Chat/Resources/assets/js/chat.js') }}"></script>
@endpush