initial commit

This commit is contained in:
Debian
2026-06-03 04:18:36 +07:00
commit a5569ce2a0
220 changed files with 30797 additions and 0 deletions
@@ -0,0 +1,8 @@
<div class="favorite-list-item">
@if($user)
<div data-id="{{ $user->id }}" data-action="0" class="avatar av-m"
style="background-image: url('{{ Chatify::getUserWithAvatar($user)->avatar }}');">
</div>
<p>{{ strlen($user->name) > 5 ? substr($user->name,0,6).'..' : $user->name }}</p>
@endif
</div>
@@ -0,0 +1,17 @@
<script src="https://js.pusher.com/7.2.0/pusher.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@joeattardi/emoji-button@3.0.3/dist/index.min.js"></script>
<script >
// Gloabl Chatify variables from PHP to JS
window.chatify = {
name: "{{ config('chatify.name') }}",
sounds: {!! json_encode(config('chatify.sounds')) !!},
allowedImages: {!! json_encode(config('chatify.attachments.allowed_images')) !!},
allowedFiles: {!! json_encode(config('chatify.attachments.allowed_files')) !!},
maxUploadSize: {{ Chatify::getMaxUploadSize() }},
pusher: {!! json_encode(config('chatify.pusher')) !!},
pusherAuthEndpoint: '{{route("pusher.auth")}}'
};
window.chatify.allAllowedExtensions = chatify.allowedImages.concat(chatify.allowedFiles);
</script>
<script src="{{ asset('js/chatify/utils.js') }}"></script>
<script src="{{ asset('js/chatify/code.js') }}"></script>
@@ -0,0 +1,30 @@
<title>{{ config('chatify.name') }}</title>
{{-- Meta tags --}}
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="id" content="{{ $id }}">
<meta name="messenger-color" content="{{ $messengerColor }}">
<meta name="messenger-theme" content="{{ $dark_mode }}">
<meta name="csrf-token" content="{{ csrf_token() }}">
<meta name="url" content="{{ url('').'/'.config('chatify.routes.prefix') }}" data-user="{{ Auth::user()->id }}">
{{-- scripts --}}
<script
src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="{{ asset('js/chatify/font.awesome.min.js') }}"></script>
<script src="{{ asset('js/chatify/autosize.js') }}"></script>
<script src="{{ asset('js/app.js') }}"></script>
<script src='https://unpkg.com/nprogress@0.2.0/nprogress.js'></script>
{{-- styles --}}
<link rel='stylesheet' href='https://unpkg.com/nprogress@0.2.0/nprogress.css'/>
<link href="{{ asset('css/chatify/style.css') }}" rel="stylesheet" />
<link href="{{ asset('css/chatify/'.$dark_mode.'.mode.css') }}" rel="stylesheet" />
<link href="{{ asset('css/app.css') }}" rel="stylesheet" />
{{-- Setting messenger primary color to css --}}
<style>
:root {
--primary-color: {{ $messengerColor }};
}
</style>
@@ -0,0 +1,11 @@
{{-- user info and avatar --}}
<div class="avatar av-l chatify-d-flex"></div>
<p class="info-name">{{ config('chatify.name') }}</p>
<div class="messenger-infoView-btns">
<a href="#" class="danger delete-conversation">Delete Conversation</a>
</div>
{{-- shared photos --}}
<div class="messenger-infoView-shared">
<p class="messenger-title"><span>Shared Photos</span></p>
<div class="shared-photos-list"></div>
</div>
@@ -0,0 +1,90 @@
{{-- -------------------- Saved Messages -------------------- --}}
@if($get == 'saved')
<table class="messenger-list-item" data-contact="{{ Auth::user()->id }}">
<tr data-action="0">
{{-- Avatar side --}}
<td>
<div class="saved-messages avatar av-m">
<span class="far fa-bookmark"></span>
</div>
</td>
{{-- center side --}}
<td>
<p data-id="{{ Auth::user()->id }}" data-type="user">Saved Messages <span>You</span></p>
<span>Save messages secretly</span>
</td>
</tr>
</table>
@endif
{{-- -------------------- Contact list -------------------- --}}
@if($get == 'users' && !!$lastMessage)
<?php
$lastMessageBody = mb_convert_encoding($lastMessage->body, 'UTF-8', 'UTF-8');
$lastMessageBody = strlen($lastMessageBody) > 30 ? mb_substr($lastMessageBody, 0, 30, 'UTF-8').'..' : $lastMessageBody;
?>
<table class="messenger-list-item" data-contact="{{ $user->id }}">
<tr data-action="0">
{{-- Avatar side --}}
<td style="position: relative">
@if($user->active_status)
<span class="activeStatus"></span>
@endif
<div class="avatar av-m"
style="background-image: url('{{ $user->avatar }}');">
</div>
</td>
{{-- center side --}}
<td>
<p data-id="{{ $user->id }}" data-type="user">
{{ strlen($user->name) > 12 ? trim(substr($user->name,0,12)).'..' : $user->name }}
<span class="contact-item-time" data-time="{{$lastMessage->created_at}}">{{ $lastMessage->timeAgo }}</span></p>
<span>
{{-- Last Message user indicator --}}
{!!
$lastMessage->from_id == Auth::user()->id
? '<span class="lastMessageIndicator">You :</span>'
: ''
!!}
{{-- Last message body --}}
@if($lastMessage->attachment == null)
{!!
$lastMessageBody
!!}
@else
<span class="fas fa-file"></span> Attachment
@endif
</span>
{{-- New messages counter --}}
{!! $unseenCounter > 0 ? "<b>".$unseenCounter."</b>" : '' !!}
</td>
</tr>
</table>
@endif
{{-- -------------------- Search Item -------------------- --}}
@if($get == 'search_item')
<table class="messenger-list-item" data-contact="{{ $user->id }}">
<tr data-action="0">
{{-- Avatar side --}}
<td>
<div class="avatar av-m"
style="background-image: url('{{ $user->avatar }}');">
</div>
</td>
{{-- center side --}}
<td>
<p data-id="{{ $user->id }}" data-type="user">
{{ strlen($user->name) > 12 ? trim(substr($user->name,0,12)).'..' : $user->name }}
</td>
</tr>
</table>
@endif
{{-- -------------------- Shared photos Item -------------------- --}}
@if($get == 'sharedPhoto')
<div class="shared-photo chat-image" style="background-image: url('{{ $image }}')"></div>
@endif
@@ -0,0 +1,39 @@
<?php
$seenIcon = (!!$seen ? 'check-double' : 'check');
$timeAndSeen = "<span data-time='$created_at' class='message-time'>
".($isSender ? "<span class='fas fa-$seenIcon' seen'></span>" : '' )." <span class='time'>$timeAgo</span>
</span>";
?>
<div class="message-card @if($isSender) mc-sender @endif" data-id="{{ $id }}">
{{-- Delete Message Button --}}
@if ($isSender)
<div class="actions">
<i class="fas fa-trash delete-btn" data-id="{{ $id }}"></i>
</div>
@endif
{{-- Card --}}
<div class="message-card-content">
@if (@$attachment->type != 'image' || $message)
<div class="message">
{!! ($message == null && $attachment != null && @$attachment->type != 'file') ? $attachment->title : nl2br($message) !!}
{!! $timeAndSeen !!}
{{-- If attachment is a file --}}
@if(@$attachment->type == 'file')
<a href="{{ route(config('chatify.attachments.download_route_name'), ['fileName'=>$attachment->file]) }}" class="file-download">
<span class="fas fa-file"></span> {{$attachment->title}}</a>
@endif
</div>
@endif
@if(@$attachment->type == 'image')
<div class="image-wrapper" style="text-align: {{$isSender ? 'end' : 'start'}}">
<div class="image-file chat-image" style="background-image: url('{{ Chatify::getAttachmentUrl($attachment->file) }}')">
<div>{{ $attachment->title }}</div>
</div>
<div style="margin-bottom:5px">
{!! $timeAndSeen !!}
</div>
</div>
@endif
</div>
</div>
@@ -0,0 +1,73 @@
{{-- ---------------------- Image modal box ---------------------- --}}
<div id="imageModalBox" class="imageModal">
<span class="imageModal-close">&times;</span>
<img class="imageModal-content" id="imageModalBoxSrc">
</div>
{{-- ---------------------- Delete Modal ---------------------- --}}
<div class="app-modal" data-name="delete">
<div class="app-modal-container">
<div class="app-modal-card" data-name="delete" data-modal='0'>
<div class="app-modal-header">Are you sure you want to delete this?</div>
<div class="app-modal-body">You can not undo this action</div>
<div class="app-modal-footer">
<a href="javascript:void(0)" class="app-btn cancel">Cancel</a>
<a href="javascript:void(0)" class="app-btn a-btn-danger delete">Delete</a>
</div>
</div>
</div>
</div>
{{-- ---------------------- Alert Modal ---------------------- --}}
<div class="app-modal" data-name="alert">
<div class="app-modal-container">
<div class="app-modal-card" data-name="alert" data-modal='0'>
<div class="app-modal-header"></div>
<div class="app-modal-body"></div>
<div class="app-modal-footer">
<a href="javascript:void(0)" class="app-btn cancel">Cancel</a>
</div>
</div>
</div>
</div>
{{-- ---------------------- Settings Modal ---------------------- --}}
<div class="app-modal" data-name="settings">
<div class="app-modal-container">
<div class="app-modal-card" data-name="settings" data-modal='0'>
<form id="update-settings" action="{{ route('avatar.update') }}" enctype="multipart/form-data" method="POST">
@csrf
{{-- <div class="app-modal-header">Update your profile settings</div> --}}
<div class="app-modal-body">
{{-- Udate profile avatar --}}
<div class="avatar av-l upload-avatar-preview chatify-d-flex"
style="background-image: url('{{ Chatify::getUserWithAvatar(Auth::user())->avatar }}');"
></div>
<p class="upload-avatar-details"></p>
<label class="app-btn a-btn-primary update" style="background-color:{{$messengerColor}}">
Upload New
<input class="upload-avatar chatify-d-none" accept="image/*" name="avatar" type="file" />
</label>
{{-- Dark/Light Mode --}}
<p class="divider"></p>
<p class="app-modal-header">Dark Mode <span class="
{{ Auth::user()->dark_mode > 0 ? 'fas' : 'far' }} fa-moon dark-mode-switch"
data-mode="{{ Auth::user()->dark_mode > 0 ? 1 : 0 }}"></span></p>
{{-- change messenger color --}}
<p class="divider"></p>
{{-- <p class="app-modal-header">Change {{ config('chatify.name') }} Color</p> --}}
<div class="update-messengerColor">
@foreach (config('chatify.colors') as $color)
<span style="background-color: {{ $color}}" data-color="{{$color}}" class="color-btn"></span>
@if (($loop->index + 1) % 5 == 0)
<br/>
@endif
@endforeach
</div>
</div>
<div class="app-modal-footer">
<a href="javascript:void(0)" class="app-btn cancel">Cancel</a>
<input type="submit" class="app-btn a-btn-success update" value="Save Changes" />
</div>
</form>
</div>
</div>
</div>
@@ -0,0 +1,9 @@
<div class="messenger-sendCard">
<form id="message-form" method="POST" action="{{ route('send.message') }}" enctype="multipart/form-data">
@csrf
<label><span class="fas fa-plus-circle"></span><input disabled='disabled' type="file" class="upload-attachment" name="file" accept=".{{implode(', .',config('chatify.attachments.allowed_images'))}}, .{{implode(', .',config('chatify.attachments.allowed_files'))}}" /></label>
<button class="emoji-button"></span><span class="fas fa-smile"></button>
<textarea readonly='readonly' name="message" class="m-send app-scroll" placeholder="Type a message.."></textarea>
<button disabled='disabled' class="send-button"><span class="fas fa-paper-plane"></span></button>
</form>
</div>