[FEATURE] wysiwyg editor for imprint/Tos/privacy (#669)
This commit is contained in:
parent
fd8dbb10a5
commit
6263f163f9
4 changed files with 170 additions and 0 deletions
42
app/Http/Controllers/Admin/LegalController.php
Normal file
42
app/Http/Controllers/Admin/LegalController.php
Normal file
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use Qirolab\Theme\Theme;
|
||||
|
||||
|
||||
class LegalController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display
|
||||
*
|
||||
* @return View
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$tos = File::get(Theme::path($path = 'views') . '/information/tos-content.blade.php');
|
||||
$privacy = File::get(Theme::path($path = 'views') . '/information/privacy-content.blade.php');
|
||||
$imprint = File::get(Theme::path($path = 'views') . '/information/imprint-content.blade.php');
|
||||
|
||||
return view('admin.legal.index')->with([
|
||||
"tos" => $tos,
|
||||
"privacy" => $privacy,
|
||||
"imprint" => $imprint,
|
||||
]);
|
||||
}
|
||||
|
||||
public function update(Request $request){
|
||||
$tos = $request->tos;
|
||||
$privacy = $request->privacy;
|
||||
$imprint = $request->imprint;
|
||||
|
||||
File::put(Theme::path($path = 'views') . '/information/tos-content.blade.php', $tos);
|
||||
File::put(Theme::path($path = 'views') . '/information/privacy-content.blade.php', $privacy);
|
||||
File::put(Theme::path($path = 'views') . '/information/imprint-content.blade.php', $imprint);
|
||||
|
||||
return back()->with("success",__("Legal pages updated"));
|
||||
}
|
||||
}
|
|
@ -8,6 +8,7 @@ use App\Classes\Settings\System;
|
|||
use App\Http\Controllers\Admin\ActivityLogController;
|
||||
use App\Http\Controllers\Admin\ApplicationApiController;
|
||||
use App\Http\Controllers\Admin\InvoiceController;
|
||||
use App\Http\Controllers\Admin\LegalController;
|
||||
use App\Http\Controllers\Admin\OverViewController;
|
||||
use App\Http\Controllers\Admin\PaymentController;
|
||||
use App\Http\Controllers\Admin\ProductController;
|
||||
|
@ -118,6 +119,8 @@ Route::middleware(['auth', 'checkSuspended'])->group(function () {
|
|||
Route::prefix('admin')->name('admin.')->middleware('admin')->group(function () {
|
||||
|
||||
//overview
|
||||
Route::get('legal', [OverViewController::class, 'index'])->name('overview.index');
|
||||
|
||||
Route::get('overview', [OverViewController::class, 'index'])->name('overview.index');
|
||||
Route::get('overview/sync', [OverViewController::class, 'syncPterodactyl'])->name('overview.sync');
|
||||
|
||||
|
@ -178,6 +181,10 @@ Route::middleware(['auth', 'checkSuspended'])->group(function () {
|
|||
Route::get('usefullinks/datatable', [UsefulLinkController::class, 'datatable'])->name('usefullinks.datatable');
|
||||
Route::resource('usefullinks', UsefulLinkController::class);
|
||||
|
||||
//legal
|
||||
Route::get('legal', [LegalController::class, 'index'])->name('legal.index');
|
||||
Route::patch('legal', [LegalController::class, 'update'])->name('legal.update');
|
||||
|
||||
//vouchers
|
||||
Route::get('vouchers/datatable', [VoucherController::class, 'datatable'])->name('vouchers.datatable');
|
||||
Route::get('vouchers/{voucher}/usersdatatable', [VoucherController::class, 'usersdatatable'])->name('vouchers.usersdatatable');
|
||||
|
|
113
themes/default/views/admin/legal/index.blade.php
Normal file
113
themes/default/views/admin/legal/index.blade.php
Normal file
|
@ -0,0 +1,113 @@
|
|||
@extends('layouts.main')
|
||||
|
||||
@section('content')
|
||||
<!-- CONTENT HEADER -->
|
||||
<section class="content-header">
|
||||
<div class="container-fluid">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1>{{__('Legal')}}</h1>
|
||||
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="{{route('home')}}">{{__('Dashboard')}}</a></li>
|
||||
<li class="breadcrumb-item"><a class="text-muted"
|
||||
href="{{route('admin.legal.index')}}">{{__('Legal')}}</a></li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- END CONTENT HEADER -->
|
||||
|
||||
<!-- MAIN CONTENT -->
|
||||
<section class="content">
|
||||
<div class="container-fluid">
|
||||
<form method="POST" enctype="multipart/form-data" class="mb-3"
|
||||
action="{{ route('admin.legal.update') }}">
|
||||
@csrf
|
||||
@method('PATCH')
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-6">
|
||||
{{-- TOS --}}
|
||||
<div class="row mb-2">
|
||||
<div class="col text-center">
|
||||
<h1>{{__("Terms of Service")}}</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="custom-control mb-3 p-0">
|
||||
<textarea x-model="tos" id="tos" name="tos"
|
||||
class="form-control @error('tos') is-invalid @enderror">
|
||||
{{ $tos }}
|
||||
</textarea>
|
||||
@error('motd-message')
|
||||
<div class="text-danger">
|
||||
{{ $message }}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
{{-- PRIVACY --}}
|
||||
<div class="row mb-2">
|
||||
<div class="col text-center">
|
||||
<h1>{{__("Privacy Policy")}}</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="custom-control mb-3 p-0">
|
||||
<textarea x-model="privacy" id="privacy" name="privacy"
|
||||
class="form-control @error('privacy') is-invalid @enderror">
|
||||
{{ $privacy }}
|
||||
</textarea>
|
||||
@error('privacy')
|
||||
<div class="text-danger">
|
||||
{{ $message }}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{{-- Imprint --}}
|
||||
<div class="row mb-2">
|
||||
<div class="col text-center">
|
||||
<h1>{{__("Imprint")}}</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="custom-control mb-3 p-0">
|
||||
<textarea x-model="imprint" id="imprint" name="imprint"
|
||||
class="form-control @error('imprint') is-invalid @enderror">
|
||||
{{ $imprint }}
|
||||
</textarea>
|
||||
@error('imprint')
|
||||
<div class="text-danger">
|
||||
{{ $message }}
|
||||
</div>
|
||||
@enderror
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<button class="btn btn-primary ml-3 mt-3">{{ __('Save') }}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
</section>
|
||||
<!-- END CONTENT -->
|
||||
|
||||
<script>tinymce.init({selector:'textarea',promotion: false,skin: "oxide-dark",
|
||||
content_css: "dark",branding: false, height: 500,
|
||||
plugins: ['image','link'],});
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
@endsection
|
|
@ -379,6 +379,14 @@
|
|||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a href="{{ route('admin.legal.index') }}"
|
||||
class="nav-link @if (Request::routeIs('admin.legal.*')) active @endif">
|
||||
<i class="nav-icon fas fa-link"></i>
|
||||
<p>{{ __('Legal Sites') }}</p>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-header">{{ __('Logs') }}</li>
|
||||
|
||||
<li class="nav-item">
|
||||
|
|
Loading…
Add table
Reference in a new issue