View file ProForum/Files/application/resources/views/admin/users/notification_all.blade.php

File size: 5.18Kb
@extends('admin.layouts.app')
@section('panel')
@include('admin.components.tabs.user')
<div class="row">
    <div class="col-xl-12">
        <div class="card">
            <form action="" class="notify-form">
                @csrf
                <div class="card-body">
                    <div class="row">
                        <div class="col-md-12">
                            <div class="form-group">
                                <label class="fw-bold">@lang('Subject') </label>
                                <input type="text" class="form-control" placeholder="@lang('Email subject')"
                                    name="subject" required />
                            </div>
                        </div>
                        <div class="col-md-12">
                            <div class="form-group">
                                <label class="fw-bold">@lang('Message') </label>
                                <textarea name="message" rows="10" class="form-control trumEdit"></textarea>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="card-footer text-end">
                    <button type="submit" class="btn btn-global btn--primary me-2">@lang('Send')</button>
                </div>
            </form>
        </div>
    </div>
</div>



<div class="modal fade" data-bs-backdrop="static" id="notificationSending">
    <div class="modal-dialog modal-lg modal-dialog-centered">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">@lang('Notification Sending')</h5>
            </div>
            <div class="modal-body">
                <h4 class="text--danger text-center">@lang('Don\'t close or refresh the window till finish')</h4>
                <div class="mail-wrapper">
                    <div class="mail-icon world-icon"><i class="las la-globe"></i></div>
                    <div class='mailsent'>
                        <div class='envelope'>
                            <i class='line line1'></i>
                            <i class='line line2'></i>
                            <i class='line line3'></i>
                            <i class="icon fa fa-envelope"></i>
                        </div>
                    </div>
                    <div class="mail-icon mail-icon"><i class="las la-envelope-open-text"></i></div>
                </div>
                <div class="mt-3">
                    <div class="progress">
                        <div class="progress-bar" style="width: 0%"></div>
                    </div>
                    <p>@lang('Email sent') <span class="sent">0</span> @lang('users out of') {{ $users }} @lang('users')
                    </p>
                </div>
            </div>
        </div>
    </div>
</div>

@endsection

@push('breadcrumb-plugins')
<span class="text--primary">@lang('Notification will send via ') @if($general->en) <span
        class="badge badge--warning">@lang('Email')</span> @endif @if($general->sn) <span
        class="badge badge--warning">@lang('SMS')</span> @endif</span>
@endpush


@push('script')
<script>
    (function ($) {
        "use strict"
        $('.notify-form').on('submit', function (e) {
            e.preventDefault();
            $('.progress-bar').css('width', `0%`);
            $('.progress-bar').text(`0%`);
            $('.sent').text(0);
            $('#notificationSending').modal('show');
            postMail($(this), 0);
        });

        function postMail(form, skip) {

            var _token = form.find('[name=_token]').val();
            var subject = form.find('[name=subject]').val();
            var message = form.find('.trumEdit').html();

            $.post("{{ route('admin.users.notification.all.send') }}", {
                "subject": subject,
                "_token": _token,
                "skip": skip,
                "message": message
            }, function (response) {
                if (response.error) {
                    response.error.forEach(error => {
                        notify('error', error)
                        $('.sent').text(response.total_sent);
                    });
                } else {
                    var rest = {{ $users }
                } - response.total_sent;
                var sentPercent = response.total_sent / {{ $users }
            } * 100;
            if (sentPercent > 100) {
                sentPercent = 100;
            }
            sentPercent = sentPercent.toFixed(0)
            $('.progress-bar').css('width', `${sentPercent}%`);
            $('.progress-bar').text(`${sentPercent}%`);
            $('.sent').text(response.total_sent);
            if (rest == 0) {
                setTimeout(() => {
                    $('#notificationSending').modal('hide');
                    form.find('[name=subject]').val('');
                    form.find('.trumEdit').html('<span></span>');
                    notify('success', 'Mail sent to all users successfully')
                }, 3000);
                return false;
            }
            setTimeout(() => {
                postMail(form, response.total_sent);
            }, 1000);
        }
    });
        }

    }) (jQuery);
</script>
@endpush