@extends('layouts/contentLayoutMaster') @if(isset($template)) @section('title', __('locale.templates.update_template')) @else @section('title', __('locale.templates.add_template')) @endif @section('vendor-style') <!-- vendor css files --> <link rel="stylesheet" href="{{ asset(mix('vendors/css/forms/select/select2.min.css')) }}"> @endsection @section('content') <!-- Basic Vertical form layout section start --> <section id="basic-vertical-layouts"> <div class="row match-height"> <div class="col-md-6 col-12"> <div class="card"> <div class="card-header"> <h4 class="card-title">@if(isset($template)) {{ __('locale.templates.update_template') }} @else {{ __('locale.templates.add_template') }} @endif </h4> </div> <div class="card-content"> <div class="card-body"> <form class="form form-vertical" @if(isset($template)) action="{{ route('customer.templates.update', $template->uid) }}" @else action="{{ route('customer.templates.store') }}" @endif method="post"> @if(isset($template)) {{ method_field('PUT') }} @endif @csrf <div class="form-body"> <div class="row"> <div class="col-12"> <div class="mb-1"> <label for="name" class="form-label required">{{ __('locale.labels.name') }}</label> <input type="text" id="name" class="form-control @error('name') is-invalid @enderror" value="{{ old('name', $template->name ?? null) }}" name="name" required placeholder="{{__('locale.labels.required')}}" autofocus> @error('name') <div class="invalid-feedback"> {{ $message }} </div> @enderror </div> </div> <div class="col-12"> <div class="mb-1"> <label class="form-label">{{__('locale.labels.available_tag')}}</label> <select class="form-select select2" id="available_tag"> <option value="phone">{{ __('locale.labels.phone') }}</option> <option value="first_name">{{ __('locale.labels.first_name') }}</option> <option value="last_name">{{ __('locale.labels.last_name') }}</option> <option value="email">{{ __('locale.labels.email') }}</option> <option value="username">{{ __('locale.labels.username') }}</option> <option value="company">{{ __('locale.labels.company') }}</option> <option value="address">{{ __('locale.labels.address') }}</option> <option value="birth_date">{{ __('locale.labels.birth_date') }}</option> <option value="anniversary_date">{{ __('locale.labels.anniversary_date') }}</option> @if($template_tags) @foreach($template_tags as $field) <option value="{{$field->tag}}">{{ $field->name }}</option> @endforeach @endif </select> </div> </div> <div class="col-12"> <div class="mb-1"> <label for="message" class="form-label required">{{__('locale.labels.message')}}</label> <textarea class="form-control" name="message" rows="5" id="message">{{ old('message', $template->message ?? null) }}</textarea> <small class="text-primary text-uppercase" id="remaining">160 {{ __('locale.labels.characters_remaining') }}</small> <small class="text-primary text-uppercase float-end" id="messages">1 {{ __('locale.labels.message') }} (s)</small> @error('message') <div class="invalid-feedback"> {{ $message }} </div> @enderror </div> </div> <div class="col-12"> <button type="submit" class="btn btn-primary me-1 mb-1"><i data-feather="save"></i> {{ __('locale.buttons.save') }}</button> <button type="reset" class="btn btn-outline-warning mb-1"><i data-feather="refresh-cw"></i> {{ __('locale.buttons.reset') }}</button> </div> </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> @endsection @section('page-script') <script src="{{ asset(mix('js/scripts/sms-counter.js')) }}"></script> <script> $(document).ready(function () { // Basic Select2 select $(".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 $remaining = $('#remaining'), $messages = $remaining.next(), $get_msg = $("#message"), merge_state = $('#available_tag'), firstInvalid = $('form').find('.is-invalid').eq(0); if (firstInvalid.length) { $('body, html').stop(true, true).animate({ 'scrollTop': firstInvalid.offset().top - 200 + 'px' }, 200); } function get_character() { if ($get_msg[0].value !== null) { let data = SmsCounter.count($get_msg[0].value, true); $remaining.text(data.remaining + " {!! __('locale.labels.characters_remaining') !!}"); $messages.text(data.messages + " {!! __('locale.labels.message') !!}" + '(s)'); } } merge_state.on('change', function () { const caretPos = $get_msg[0].selectionStart; const textAreaTxt = $get_msg.val(); let txtToAdd = this.value; if (txtToAdd) { txtToAdd = '{' + txtToAdd + '}'; } $get_msg.val(textAreaTxt.substring(0, caretPos) + txtToAdd + textAreaTxt.substring(caretPos)); }); $get_msg.keyup(get_character); }); </script> @endsection