Added the ability to upload pictures in the editor.

This commit is contained in:
2024-07-26 22:04:39 +05:00
parent 4d36821ecc
commit b33362a235
34 changed files with 2007 additions and 40 deletions

View File

@@ -0,0 +1,4 @@
@pushOnce('scripts')
@include('_tinymce')
@include('_prism')
@endpushonce

View File

@@ -1,6 +1,11 @@
@csrf
<x-volt.forms.input :title="__('validation.attributes.title')" name="title" type="text" :value="$content->title" required autofocus />
<x-volt.forms.textarea-wysiwyg :title="__('validation.attributes.description')" name="description" :value="$content->description" />
<x-volt.forms.textarea-wysiwyg
:title="__('validation.attributes.description')"
name="description"
:value="$content->description"
:storageUpload="new \App\Dto\View\Volt\Form\WysiwygStorageUpload(inputName: 'storage', morph: \App\Enums\Morph::ProjectContent)"
/>
@canany(['create', 'update'], $content)
<button class="btn btn-primary" type="submit">{{ __('Save') }}</button>

View File

@@ -1,15 +1,22 @@
@csrf
<x-volt.forms.checkbox :title="__('validation.attributes.is_public')" name="is_public" checkboxValue="1" notCheckedValue="0" :userValue="(string) $documentation->is_public" />
<x-volt.forms.input :title="__('validation.attributes.slug')" allowed-characters="a-z0-9.-_" name="slug" type="text" :value="$documentation->slug" required autofocus />
<x-volt.forms.input :title="__('validation.attributes.sort')" name="sort" type="number" :value="$documentation->sort" required />
<x-volt.forms.select :title="__('validation.attributes.category_id')" name="category_id" :list="$categories" :value="(string) $documentation->category?->id">
<x-volt.forms.checkbox :title="__('validation.attributes.is_public')" name="is_public" checkboxValue="1"
notCheckedValue="0" :userValue="(string) $documentation->is_public"/>
<x-volt.forms.input :title="__('validation.attributes.slug')" allowed-characters="a-z0-9.-_" name="slug" type="text"
:value="$documentation->slug" required autofocus/>
<x-volt.forms.input :title="__('validation.attributes.sort')" name="sort" type="number" :value="$documentation->sort"
required/>
<x-volt.forms.select :title="__('validation.attributes.category_id')" name="category_id" :list="$categories"
:value="(string) $documentation->category?->id">
<option value=""></option>
</x-volt.forms.select>
<nav>
<div class="nav nav-tabs mb-4" id="nav-language-tab" role="tablist">
@foreach($project->languages as $index => $language)
<a class="nav-item nav-link @if($index === 0) active @endif" id="language-{{ $language->id }}-tab" data-bs-toggle="tab" href="#language-{{ $language->id }}" role="tab" aria-controls="language-{{ $language->id }}" aria-selected="{{ $index ? 'false' : 'true' }}">{{ $language->title }}</a>
<a class="nav-item nav-link @if($index === 0) active @endif" id="language-{{ $language->id }}-tab"
data-bs-toggle="tab" href="#language-{{ $language->id }}" role="tab"
aria-controls="language-{{ $language->id }}"
aria-selected="{{ $index ? 'false' : 'true' }}">{{ $language->title }}</a>
@endforeach
</div>
</nav>
@@ -18,10 +25,22 @@
@php
$content = $documentation->contents->firstWhere('language_id', $language->id);
@endphp
<div class="tab-pane fade @if($index === 0) show active @endif" id="language-{{ $language->id }}" role="tabpanel" aria-labelledby="language-{{ $language->id }}-tab">
<x-volt.forms.checkbox :title="__('Edit')" :name="'content-enable-' . $language->id" :user-value="($index === 0) ? 1 : 0" class="content-enable" checkbox-value="1" notCheckedValue="0"/>
<x-volt.forms.input :title="__('validation.attributes.title')" :name="'content[' . $language->id . '][title]'" type="text" class="language-content" :disabled="$index !== 0" :value="$content?->title ?? ''" required />
<x-volt.forms.textarea-wysiwyg :title="__('validation.attributes.content')" :name="'content[' . $language->id . '][content]'" class="language-content" :value="$content?->content" :disabled="$index !== 0" />
<div class="tab-pane fade @if($index === 0) show active @endif" id="language-{{ $language->id }}"
role="tabpanel" aria-labelledby="language-{{ $language->id }}-tab">
<x-volt.forms.checkbox :title="__('Edit')" :name="'content-enable-' . $language->id"
:user-value="($index === 0) ? 1 : 0" class="content-enable" checkbox-value="1"
notCheckedValue="0"/>
<x-volt.forms.input :title="__('validation.attributes.title')"
:name="'content[' . $language->id . '][title]'" type="text" class="language-content"
:disabled="$index !== 0" :value="$content?->title ?? ''" required/>
<x-volt.forms.textarea-wysiwyg
:title="__('validation.attributes.content')"
:storageUpload="new \App\Dto\View\Volt\Form\WysiwygStorageUpload(inputName: 'content[' . $language->id . ']', morph: \App\Enums\Morph::DocumentationContent)"
:name="'content[' . $language->id . '][content]'"
class="language-content"
:value="$content?->content"
:disabled="$index !== 0"
/>
</div>
@endforeach
</div>