Moved from "app/src" to "app/application".
Otherwise phpstorm doesn't understand the paths correctly. He thinks that this is not a complete application, but a package. And when creating a class, the namespace indicates “app” with a small letter, but should be “App”.
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
<div class="form-check">
|
||||
@if(!is_null($notCheckedValue))
|
||||
<input type="hidden" name="{{ $name }}" value="{{ $notCheckedValue }}">
|
||||
@endif
|
||||
<input class="form-check-input @error($requestName) is-invalid @enderror" name="{{ $name }}" type="checkbox" value="{{ $checkboxValue }}" @checked($checkboxValue === $userValue) id="form-checkbox-{{ $requestName }}">
|
||||
<label class="form-check-label" for="form-checkbox-{{ $requestName }}">
|
||||
{{ $title }}
|
||||
</label>
|
||||
@error($name)
|
||||
<span class="invalid-feedback d-block">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
@@ -0,0 +1,4 @@
|
||||
<input name="{{ $name }}" value="{{ $value }}" type="hidden" {{ $attributes }} />
|
||||
@error($requestName)
|
||||
<span class="invalid-feedback" style="display: block;">{{ $message }}</span>
|
||||
@enderror
|
@@ -0,0 +1,11 @@
|
||||
<div class="mb-4">
|
||||
<label for="form-input-{{ $requestName }}">{{ $title }}
|
||||
@if(!empty($example))
|
||||
<span class="label__example">({{ __('example:') }} {!! $example !!})</span>
|
||||
@endif
|
||||
</label>
|
||||
<input id="form-input-{{ $requestName }}" class="form-control @error($requestName) is-invalid @enderror" name="{{ $name }}" type="{{ $type }}" @if($type !== 'password') value="{{ $value }}" @endif {{ $attributes }}>
|
||||
@error($requestName)
|
||||
<span class="invalid-feedback">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
@@ -0,0 +1,94 @@
|
||||
<hr>
|
||||
<div class="mb-4">
|
||||
<label>{{ __('Languages') }}</label>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-centered table-nowrap mb-0 rounded table-languages">
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th class="border-0 rounded-start">{{ __('validation.attributes.title') }}</th>
|
||||
<th class="border-0">{{ __('validation.attributes.code') }}</th>
|
||||
<th class="border-0">{{ __('validation.attributes.sort') }}</th>
|
||||
<th class="border-0">{{ __('validation.attributes.is_default') }}</th>
|
||||
<th class="border-0 rounded-end"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($value as $index => $lang)
|
||||
<tr class="item-language">
|
||||
@include('components.volt.forms.languages.language', ['index' => $index, 'name' => $name, 'lang' => $lang])
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
<input type="hidden" class="language-number" name="{{ $name . '[language-number]' }}" value="{{ old($name . '.language-number', count($value)) }}">
|
||||
<button class="btn btn-outline-primary add-language" type="button">+ {{ __('Add language') }}</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@pushOnce('scripts')
|
||||
<script>
|
||||
(function() {
|
||||
function languagesEventListener(tableLanguage) {
|
||||
let languageIndex = tableLanguage.querySelector('input.language-number'),
|
||||
addBlock = tableLanguage.querySelector('tbody');
|
||||
tableLanguage.querySelector('button.add-language').addEventListener('click', (e) => {
|
||||
++languageIndex.value;
|
||||
axios.post('{{ route('admin.new-language') }}', {
|
||||
_token: document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
|
||||
name: '{{ $name }}',
|
||||
index: Number(languageIndex.value),
|
||||
})
|
||||
.then(response => {
|
||||
let container = document.createElement("tr");
|
||||
container.classList = 'item-language';
|
||||
container.innerHTML = response.data.html;
|
||||
let button = container.querySelector('button.delete');
|
||||
addEventButtonDelete(button, tableLanguage);
|
||||
addBlock.append(container);
|
||||
languagesHideShowButtonDelete(tableLanguage);
|
||||
})
|
||||
.catch(error => {
|
||||
let container = document.createElement("div");
|
||||
container.classList = 'alert alert-danger';
|
||||
container.setAttribute('role', 'alert');
|
||||
container.innerHTML = `{{ __('There was an error adding a language') }}<button type="button" class="btn-close alert__close" data-bs-dismiss="alert"></button>`;
|
||||
e.target.after(container);
|
||||
});
|
||||
});
|
||||
languagesHideShowButtonDelete(tableLanguage, tableLanguage);
|
||||
let buttonsDelete = tableLanguage.querySelectorAll('button.delete');
|
||||
if (buttonsDelete.length > 0) {
|
||||
buttonsDelete.forEach(addEventButtonDelete, tableLanguage);
|
||||
}
|
||||
}
|
||||
|
||||
function addEventButtonDelete(button, tableLanguage) {
|
||||
button.addEventListener('click', (e) => {
|
||||
e.target.parentElement.parentElement.remove();
|
||||
languagesHideShowButtonDelete(tableLanguage);
|
||||
});
|
||||
}
|
||||
|
||||
function languagesHideShowButtonDelete(tableLanguage) {
|
||||
let buttons = tableLanguage.querySelectorAll('button.delete'),
|
||||
display = 'inline-block';
|
||||
if (buttons.length === 1) {
|
||||
display = 'none';
|
||||
}
|
||||
buttons.forEach(function (button) {
|
||||
button.style.display = display;
|
||||
});
|
||||
}
|
||||
|
||||
let languages = document.querySelectorAll('.table-languages');
|
||||
if (languages.length > 0) {
|
||||
languages.forEach(languagesEventListener);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
@endPushOnce
|
@@ -0,0 +1,4 @@
|
||||
<input class="form-control @error(\App\Helpers\Helpers::formatAttributeNameToRequestName($name)) is-invalid @enderror" name="{{ $name }}" type="{{ $type }}" value="{{ $value }}" required>
|
||||
@error(\App\Helpers\Helpers::formatAttributeNameToRequestName($name))
|
||||
<span class="invalid-feedback">{{ $message }}</span>
|
||||
@enderror
|
@@ -0,0 +1,34 @@
|
||||
<td>
|
||||
@if(isset($lang['id']))
|
||||
<input type="hidden" name="{{ $name . '[items][' .$index . '][id]' }}" value="{{ $lang['id'] }}">
|
||||
@endif
|
||||
@include('components.volt.forms.languages.input', [
|
||||
'value' => $lang['title'],
|
||||
'name' => $name . '[items][' .$index . '][title]',
|
||||
'type' => 'text',
|
||||
])
|
||||
</td>
|
||||
<td>
|
||||
@include('components.volt.forms.languages.input', [
|
||||
'value' => $lang['code'],
|
||||
'name' => $name . '[items][' . $index . '][code]',
|
||||
'type' => 'text',
|
||||
])
|
||||
</td>
|
||||
<td>
|
||||
@include('components.volt.forms.languages.input', [
|
||||
'value' => $lang['sort'],
|
||||
'name' => $name . '[items][' . $index . '][sort]',
|
||||
'type' => 'number',
|
||||
])
|
||||
</td>
|
||||
<td class="align-middle">
|
||||
@include('components.volt.forms.languages.radio', [
|
||||
'value' => $index,
|
||||
'checked' => $lang['is_default'],
|
||||
'name' => $name . '[default]',
|
||||
])
|
||||
</td>
|
||||
<td>
|
||||
<button class="btn btn-danger delete" type="button">X</button>
|
||||
</td>
|
@@ -0,0 +1,4 @@
|
||||
<input class="form-check-input @error(\App\Helpers\Helpers::formatAttributeNameToRequestName($name)) is-invalid @enderror" type="radio" @checked($checked) name="{{ $name }}" value="{{ $value }}">
|
||||
@error(\App\Helpers\Helpers::formatAttributeNameToRequestName($name))
|
||||
<span class="invalid-feedback">{{ $message }}</span>
|
||||
@enderror
|
@@ -0,0 +1,16 @@
|
||||
<div class="mb-4">
|
||||
<div class="h5 pb-3">{{ $title }}</div>
|
||||
@error($requestName)
|
||||
<span class="invalid-feedback d-block pb-3">{{ $message }}</span>
|
||||
@enderror
|
||||
<div class="row">
|
||||
@foreach($list as $elementValue => $elementTitle)
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="{{ $name }}" value="{{ $elementValue }}" @checked(array_search($elementValue, $value) !== false) id="form-checkbox-{{ $requestName }}-{{ $loop->index }}">
|
||||
<label class="form-check-label" for="form-checkbox-{{ $requestName }}-{{ $loop->index }}">
|
||||
{{ $elementTitle }}
|
||||
</label>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,24 @@
|
||||
<div class="pt-3">
|
||||
<div class="h5 pb-3">{{ $title }}</div>
|
||||
@error($requestName)
|
||||
<span class="invalid-feedback d-block pb-3">{{ $message }}</span>
|
||||
@enderror
|
||||
@foreach($permissions as $mainPermission)
|
||||
<div class="row ps-3">
|
||||
<div class="mb-3">
|
||||
<span class="h6 fw-bold">{{ $mainPermission->getTitle() }}</span>
|
||||
</div>
|
||||
<ul>
|
||||
@foreach($mainPermission->getPermissions() as $keyPermission => $permission)
|
||||
<li class="form-check">
|
||||
<input class="form-check-input" type="checkbox" value="{{ $mainPermission->formatValue($keyPermission) }}" name="{{ $name }}" @checked($role->is_admin || $value->search($mainPermission->formatValue($keyPermission)) !== false) @disabled($role->is_admin) id="form-permission-{{ $requestName }}-{{ $mainPermission->name }}-{{ $keyPermission }}">
|
||||
<label class="form-check-label" for="form-permission-{{ $requestName }}-{{ $mainPermission->name }}-{{ $keyPermission }}">
|
||||
{{ $permission }}
|
||||
</label>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
<hr>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
@@ -0,0 +1,12 @@
|
||||
<div class="mb-4">
|
||||
<label for="form-select-{{ $requestName }}">{{ $title }}</label>
|
||||
<select id="form-select-{{ $requestName }}" aria-label="{{ $title }}" class="form-select @error($requestName) is-invalid @enderror" name="{{ $name }}" {{ $attributes }}>
|
||||
{{ $slot }}
|
||||
@foreach($list as $elementKey => $elementValue)
|
||||
<option value="{{ $elementKey }}" @selected((string) $elementKey === (string) $value)>{{ $elementValue }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
@error($requestName)
|
||||
<span class="invalid-feedback">{{ $message }}</span>
|
||||
@enderror
|
||||
</div>
|
@@ -0,0 +1,32 @@
|
||||
<div class="upload-image mt-3 mb-4 rounded border border-1 p-3" data-morph="{{ $morph->value }}" data-storage-type="{{ $storageType->value }}" data-accepted-files="{{
|
||||
$acceptedFiles->map(function (string $name) {
|
||||
return '.' . $name;
|
||||
})->implode(',')
|
||||
}}">
|
||||
<label>{{ $title }}</label>
|
||||
<div>
|
||||
<div class="mb-3 add-image" @if(\is_null($storage?->id)) style="display: none;" @endif>
|
||||
<div class="position-relative d-inline-block">
|
||||
<img class="img-fluid" src="{{ $storage->url ?? '' }}">
|
||||
<button class="btn btn-danger m-0 add-image__remove position-absolute top-0 end-0" type="button">X</button>
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-outline-primary upload-image__button" type="button">{{ __('Select images') }} ({{ $acceptedFiles->implode(', ') }})</button>
|
||||
<div class="progress-wrapper" style="display: none">
|
||||
<div class="progress-info">
|
||||
<div class="progress-label">
|
||||
<span class="text-success">{{ __('loading') }}</span>
|
||||
</div>
|
||||
<div class="progress-percentage">
|
||||
<span class="upload-image__progressbar-text">0%</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progress-bar bg-success" role="progressbar" style="width: 0%;" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<span class="invalid-feedback upload-image__error"></span>
|
||||
<x-volt.forms.input-type-hidden :name="$name . '[file]'" class="save" :value="$storage->id ?? ''" />
|
||||
<x-volt.forms.input-type-hidden :name="$name . '[delete]'" class="delete" value="0" />
|
||||
</div>
|
Reference in New Issue
Block a user