@extends('layouts/contentLayoutMaster') @section('title', __('locale.menu.Send Using File')) @section('vendor-style') <!-- vendor css files --> <link rel="stylesheet" href="{{ asset(mix('vendors/css/forms/select/select2.min.css')) }}"> <link rel="stylesheet" href="{{ asset(mix('vendors/css/pickers/flatpickr/flatpickr.min.css')) }}"> @endsection @section('page-style') <link rel="stylesheet" href="{{ asset(mix('css/base/plugins/forms/pickers/form-flat-pickr.css')) }}"> <style> .customized_select2 .select2-selection--multiple { border-left: 0; border-radius: 0 4px 4px 0; min-height: 2.75rem !important; } .customized_select2 .select2-selection--single, .input_sender_id { border-left: 0; border-radius: 0 4px 4px 0; min-height: 2.75rem !important; } </style> @endsection @section('content') <!-- Basic Vertical form layout section start --> <section id="basic-vertical-layouts campaign_builder"> <div class="row match-height"> <div class="col-md-8 col-12"> <div class="card"> <div class="card-content"> <div class="card-body"> <form class="form form-vertical" action="{{ route('customer.voice.import') }}" method="post" enctype="multipart/form-data"> @csrf <div class="row"> <div class="col-12"> <div class="mb-1"> <p class="text-uppercase">{{ __('locale.labels.sample_file') }}</p> <a href="{{route('sample.file')}}" class="btn btn-primary px-1 py-1 waves-effect waves-light btn-md fw-bold"> <i data-feather="file-text"></i> {{ __('locale.labels.download_sample_file') }} </a> </div> </div> <div class="col-12"> <div class="mb-1"> <label for="name" class="required form-label">{{ __('locale.labels.name') }}</label> <input type="text" id="name" class="form-control @error('name') is-invalid @enderror" value="{{ old('name') }}" name="name" required placeholder="{{__('locale.labels.required')}}" autofocus> @error('name') <p><small class="text-danger">{{ $message }}</small></p> @enderror </div> </div> <div class="col-12"> <div class="mb-1"> <label for="sending_server" class="form-label required">{{ __('locale.labels.sending_server') }}</label> <select class="select2 form-select" name="sending_server"> @foreach($sending_server as $server) <option value="{{$server->id}}"> {{ $server->name }}</option> @endforeach </select> @error('sending_server') <p><small class="text-danger">{{ $message }}</small></p> @enderror </div> </div> @if(auth()->user()->customer->getOption('sender_id_verification') == 'yes') <div class="col-12"> <p class="text-uppercase">{{ __('locale.labels.originator') }}</p> </div> @can('view_sender_id') <div class="col-md-6 col-12 customized_select2"> <div class="mb-1"> <label for="sender_id" class="form-label">{{ __('locale.labels.sender_id') }}</label> <div class="input-group"> <div class="input-group-text"> <div class="form-check"> <input type="radio" class="form-check-input sender_id" name="originator" checked value="sender_id" id="sender_id_check"/> <label class="form-check-label" for="sender_id_check"></label> </div> </div> <div style="width: 17rem"> <select class="form-select select2" id="sender_id" name="sender_id[]"> @foreach($sender_ids as $sender_id) <option value="{{$sender_id->sender_id}}"> {{ $sender_id->sender_id }} </option> @endforeach </select> </div> </div> </div> </div> @endcan @else @can('view_numbers') <div class="col-md-6 col-12 customized_select2"> <div class="mb-1"> <label for="sender_id" class="form-label">{{ __('locale.labels.sender_id') }}</label> <div class="input-group"> <div class="input-group-text"> <div class="form-check"> <input type="radio" class="form-check-input sender_id" name="originator" checked value="sender_id" id="sender_id_check"/> <label class="form-check-label" for="sender_id_check"></label> </div> </div> <div style="width: 17rem"> <input type="text" id="sender_id" class="form-control input_sender_id @error('sender_id') is-invalid @enderror" name="sender_id[]"> </div> </div> </div> </div> @else <div class="col-12"> <div class="mb-1"> <label for="sender_id" class="form-label">{{__('locale.labels.sender_id')}}</label> <input type="text" id="sender_id" class="form-control @error('sender_id') is-invalid @enderror" name="sender_id[]"> @error('sender_id') <p><small class="text-danger">{{ $message }}</small></p> @enderror </div> </div> @endcan @endif @can('view_numbers') <div class="col-md-6 col-12 customized_select2"> <div class="mb-1"> <label for="phone_number" class="form-label">{{ __('locale.menu.Phone Numbers') }}</label> <div class="input-group"> <div class="input-group-text"> <div class="form-check"> <input type="radio" class="form-check-input phone_number" value="phone_number" name="originator" id="phone_number_check"/> <label class="form-check-label" for="phone_number_check"></label> </div> </div> <div style="width: 17rem"> <select class="form-select select2" disabled id="phone_number" name="phone_number[]" multiple> @foreach($phone_numbers as $number) <option value="{{ $number->number }}"> {{ $number->number }} </option> @endforeach </select> </div> </div> </div> </div> @endcan <div class="col-12"> <div class="mb-1"> <label for="import_file" class="form-label">{{ __('locale.labels.import_file') }}</label> <div class="us-file-zone us-clickable"> <input type="file" name="import_file" class="us-file upload-file" id="import_file" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"> <div class="us-file-message">{{__('locale.filezone.click_here_to_upload')}}</div> <div class="us-file-footer"> {!! __('locale.campaigns.import_file_description') !!} {!! __('locale.contacts.only_supported_file') !!} </div> </div> @error('import_file') <div class="text-danger"> {{ $message }} </div> @enderror </div> </div> <div class="col-12"> <div class="mb-1"> <div class="form-check form-check-inline"> <input type="checkbox" checked value="true" class="form-check-input" name="header"> <label class="form-check-label">{{ __('locale.filezone.file_contains_header_row') }}?</label> </div> </div> </div> <div class="col-md-6 col-12"> <div class="mb-1"> <label class="required form-label" for="language">{{ __('locale.labels.language') }}</label> <select class="form-select select2" id="language" name="language" required> @foreach(\App\Helpers\Helper::voice_regions() as $key => $value) <option value="{{$key}}" {{ $key == 'en-GB' ? 'selected': null }}> {{ $value }} </option> @endforeach </select> </div> </div> <div class="col-md-6 col-12"> <div class="mb-1"> <label class="required form-label" for="gender">{{ __('locale.labels.gender') }}</label> <select class="form-select" id="gender" name="gender"> <option value="male"> {{ __('locale.labels.male') }}</option> <option value="female"> {{ __('locale.labels.female') }}</option> </select> </div> </div> <div class="col-12"> <div class="mb-1"> <div class="form-check form-check-inline"> <input type="checkbox" class="form-check-input schedule" value="true" name="schedule" {{ old('schedule') == true ? "checked" : null }}> <label class="form-check-label">{{__('locale.campaigns.schedule_campaign')}}?</label> </div> </div> </div> </div> <div class="row schedule_time"> <div class="col-md-6"> <div class="mb-1"> <label for="schedule_date" class="form-label">{{ __('locale.labels.date') }}</label> <input type="text" id="schedule_date" name="schedule_date" class="form-control schedule_date" placeholder="YYYY-MM-DD"/> @error('schedule_date') <p><small class="text-danger">{{ $message }}</small></p> @enderror </div> </div> <div class="col-md-6"> <div class="mb-1"> <label for="time" class="form-label">{{ __('locale.labels.time') }}</label> <input type="text" id="time" class="form-control flatpickr-time text-start" name="schedule_time" placeholder="HH:MM"/> @error('schedule_time') <p><small class="text-danger">{{ $message }}</small></p> @enderror </div> </div> <div class="col-12"> <div class="mb-1"> <label for="timezone" class="form-label">{{__('locale.labels.timezone')}}</label> <select class="form-select select2" id="timezone" name="timezone"> @foreach(\App\Library\Tool::allTimeZones() as $timezone) <option value="{{$timezone['zone']}}" {{ Auth::user()->timezone == $timezone['zone'] ? 'selected': null }}> {{ $timezone['text'] }}</option> @endforeach </select> @error('timezone') <p><small class="text-danger">{{ $message }}</small></p> @enderror </div> </div> </div> <div class="row"> <div class="col-12"> <input type="hidden" value="voice" name="sms_type" id="sms_type"> <input type="hidden" value="{{$plan_id}}" name="plan_id"> <button type="submit" class="btn btn-primary mt-1 mb-1"><i data-feather="send"></i> {{ __('locale.buttons.send') }} </button> </div> </div> </form> </div> </div> </div> </div> </div> </section> <!-- // Basic Vertical form layout section end --> @endsection @section('vendor-script') <!-- vendor files --> <script src="{{ asset(mix('vendors/js/forms/select/select2.full.min.js')) }}"></script> <script src="{{ asset(mix('vendors/js/pickers/flatpickr/flatpickr.min.js')) }}"></script> <script src="{{ asset(mix('js/scripts/dom-rules.js')) }}"></script> @endsection @section('page-script') <script> $(document).ready(function () { $("body").on("change", ".upload-file", function (e) { if ($(this).val() !== '') { $('.us-file-message').addClass('us-file-message-done'); } else { $('.us-file-message').removeClass('us-file-message-done'); } }); $('.schedule_date').flatpickr({ minDate: "today", dateFormat: "Y-m-d", defaultDate: "{{ date('Y-m-d') }}", }); $('.flatpickr-time').flatpickr({ enableTime: true, noCalendar: true, dateFormat: "H:i", defaultDate: "{{ date('H:i') }}", }); $(".sender_id").on("click", function () { $("#sender_id").prop("disabled", !this.checked); $("#phone_number").prop("disabled", this.checked); }); $(".phone_number").on("click", function () { $("#phone_number").prop("disabled", !this.checked); $("#sender_id").prop("disabled", this.checked); }); let schedule = $('.schedule'), scheduleTime = $(".schedule_time"); if (schedule.prop('checked') === true) { scheduleTime.show(); } else { scheduleTime.hide(); } schedule.change(function () { scheduleTime.fadeToggle(); }); $(".select2").each(function () { let $this = $(this); $this.wrap('<div class="position-relative"></div>'); $this.select2({ // the following code is used to disable x-scrollbar when click in select input and // take 100% width in responsive also dropdownAutoWidth: true, width: '100%', dropdownParent: $this.parent() }); }); let firstInvalid = $('form').find('.is-invalid').eq(0); if (firstInvalid.length) { $('body, html').stop(true, true).animate({ 'scrollTop': firstInvalid.offset().top - 200 + 'px' }, 200); } }); </script> @endsection