diff --git a/app/CMS/Handlers/BaseHandler.php b/app/CMS/Handlers/BaseHandler.php index 9d5fc2b0..2dbff17e 100644 --- a/app/CMS/Handlers/BaseHandler.php +++ b/app/CMS/Handlers/BaseHandler.php @@ -111,15 +111,7 @@ abstract class BaseHandler implements BaseModuleHandler * Templates */ if ($user->can('manage', Template::class)) { - $templatePaths = TemplatePathsHumanReadableRootOnly::getWithTranslations(); - if (!empty($templatePaths)) { - $sub->dropdown(trans('admin/mainMenu.templates'), function ($sub) use ($templatePaths) { - $i = 1; - foreach ($templatePaths as $id => $name) { - $sub->route('templates.overview', $name, ['id' => $id], $i++); - } - }, 60, ['icon' => 'fa fa-fw fa-file-code-o']); - } + $sub->route('templates.index', trans('admin/mainMenu.templates'), [], 70, ['icon' => 'fa fa-fw fa-file-code-o']); } if ($user->can('manage', ActionLog::class)) { diff --git a/app/CMS/Handlers/Registrators/TemplateRegistrator.php b/app/CMS/Handlers/Registrators/TemplateRegistrator.php index a9adfd73..e058137b 100644 --- a/app/CMS/Handlers/Registrators/TemplateRegistrator.php +++ b/app/CMS/Handlers/Registrators/TemplateRegistrator.php @@ -207,6 +207,7 @@ class TemplateRegistrator protected function registerTemplates($path, $templatePathId) { $templates = File::files($path); + $registeredTemplates = Templates::getWithTranslations(); foreach ($templates as $template) { @@ -217,7 +218,6 @@ class TemplateRegistrator // get all templates and template name (path/to/template.blade.php -> path.to.template) $templateName = $this->getTemplateName($template); - $registeredTemplates = Templates::getWithTranslations(); if (!in_array($templateName, $registeredTemplates)) { $params = [ @@ -316,4 +316,14 @@ class TemplateRegistrator return $this->namespace . trim($templateName, '.'); } + + public function deleteNonExistingPaths() + { + $paths = TemplatePath::all(); + + foreach ($paths as $path) { + if (!is_dir(base_path($path->path))) + \File::deleteDirectory($path->path); + } + } } diff --git a/app/CMS/Repositories/Content/Content.php b/app/CMS/Repositories/Content/Content.php index 665a8043..0936756c 100644 --- a/app/CMS/Repositories/Content/Content.php +++ b/app/CMS/Repositories/Content/Content.php @@ -7,7 +7,6 @@ use App\CMS\Enumerations\ContentStatuses; use App\CMS\Repositories\Repository; use App\Models\Content\Content as ContentModel; use Carbon\Carbon; -use Illuminate\Support\Facades\DB; use Mcamara\LaravelLocalization\Facades\LaravelLocalization; class Content extends Repository implements IContent @@ -113,7 +112,7 @@ class Content extends Repository implements IContent ->whereNull('contents.parentId') ->where('contents.language', LaravelLocalization::getCurrentLocale()) ->where('modules.enabled', 1) - ->with('module', 'subpages', 'templateModel') + ->with('module', 'subpages', 'subpages.module', 'subpages.templateModel', 'templateModel') ->orderBy('contents.order') ->orderBy('contents.created_at', 'DESC'); diff --git a/app/Http/Controllers/Admin/Templates/TemplateOverview.php b/app/Http/Controllers/Admin/Templates/TemplateOverview.php index def891b4..98609767 100644 --- a/app/Http/Controllers/Admin/Templates/TemplateOverview.php +++ b/app/Http/Controllers/Admin/Templates/TemplateOverview.php @@ -7,6 +7,16 @@ use App\Models\Templates\TemplatePath; class TemplateOverview extends Controller { + public function index() + { + + $templatePaths = TemplatePath::with('subdirectories') + ->whereNull('parent_id') + ->get(); + + return view('admin.templates.index', compact('templatePaths')); + } + /** * Display overview of all templates in given path * @@ -17,12 +27,8 @@ class TemplateOverview extends Controller public function getPath(TemplatePath $templatePath) { return view('admin.templates.list', [ - 'directory' => $templatePath, - 'isWritable' => is_writable(base_path($templatePath->path)), - 'templates' => $templatePath->templates() - ->get(), - 'subdirectories' => $templatePath->subdirectories() - ->get() + 'directory' => $templatePath, + 'isWritable' => is_writable(base_path($templatePath->path)) ]); } } diff --git a/app/Http/Middleware/Admin/TemplatePathInstaller.php b/app/Http/Middleware/Admin/TemplatePathInstaller.php index ddd922f8..1c2c741d 100644 --- a/app/Http/Middleware/Admin/TemplatePathInstaller.php +++ b/app/Http/Middleware/Admin/TemplatePathInstaller.php @@ -26,6 +26,8 @@ class TemplatePathInstaller // install registered widgets $registator->saveTemplates(); + $registator->deleteNonExistingPaths(); + return $next($request); } } diff --git a/resources/views/admin/fileManager/edit.blade.php b/resources/views/admin/fileManager/edit.blade.php index 06f1df66..cd924318 100644 --- a/resources/views/admin/fileManager/edit.blade.php +++ b/resources/views/admin/fileManager/edit.blade.php @@ -2,6 +2,9 @@ @section('pageHeading', @trans('admin/fileManager.edit', ['name' => $file->original_filename])) @section('headerButtons') + + + @can('delete', $file) @@ -15,34 +18,44 @@
- {!! \App\CMS\Helpers\FileManager::getLargePreview($file) !!} +
+
+ {!! \App\CMS\Helpers\FileManager::getLargePreview($file) !!} +
+
-
-

{{$file->original_filename}}

+
+
- +
+ +
+ @include('admin.fileManager.editForm') +
+
diff --git a/resources/views/admin/fileManager/overview.blade.php b/resources/views/admin/fileManager/overview.blade.php index 014b5af3..3fc4b3b7 100644 --- a/resources/views/admin/fileManager/overview.blade.php +++ b/resources/views/admin/fileManager/overview.blade.php @@ -15,61 +15,66 @@
-
- @can('upload', \App\Models\FileManager\File::class) +
+
+
+ @can('upload', \App\Models\FileManager\File::class) -
- -
- @include('admin.fileManager.newFileForm') -
-
- @endcan - - - @if (!$directory->is_root) - @can('update', $directory) -
- - @endcan - @endif + @endcan - @can('create', \App\Models\FileManager\Directory::class) -
- -
- @include('admin.fileManager.directories.form', ['directory' => $newDirectory, 'action' => route('upload.postNewDirectory')]) -
+ + @if (!$directory->is_root) + @can('update', $directory) +
+ +
+ @include('admin.fileManager.directories.form', ['action' => route('upload.postEditDirectory', ['id' => $directory->id])]) +
+
+ @endcan + @endif + + @can('create', \App\Models\FileManager\Directory::class) +
+ +
+ @include('admin.fileManager.directories.form', ['directory' => $newDirectory, 'action' => route('upload.postNewDirectory')]) +
+
+ @endcan
- @endcan +
diff --git a/resources/views/admin/templates/directoriesList.blade.php b/resources/views/admin/templates/_partials/directoriesList.blade.php similarity index 88% rename from resources/views/admin/templates/directoriesList.blade.php rename to resources/views/admin/templates/_partials/directoriesList.blade.php index c1a9d3c3..34a0af7b 100644 --- a/resources/views/admin/templates/directoriesList.blade.php +++ b/resources/views/admin/templates/_partials/directoriesList.blade.php @@ -14,11 +14,8 @@ {{--@endif--}}
- -
@lang('admin/templates.subdirectories')
-
    - @forelse($subdirectories as $subdirectory) + @forelse($directory->subdirectories as $subdirectory)
  • {{trans($subdirectory->name)}}
  • @empty
  • @lang('admin/templates.noSubdirectories')
  • diff --git a/resources/views/admin/templates/editForm.blade.php b/resources/views/admin/templates/_partials/editForm.blade.php similarity index 100% rename from resources/views/admin/templates/editForm.blade.php rename to resources/views/admin/templates/_partials/editForm.blade.php diff --git a/resources/views/admin/templates/templatesTiles.blade.php b/resources/views/admin/templates/_partials/templatesTiles.blade.php similarity index 98% rename from resources/views/admin/templates/templatesTiles.blade.php rename to resources/views/admin/templates/_partials/templatesTiles.blade.php index 8f0bf1bf..157a9ecd 100644 --- a/resources/views/admin/templates/templatesTiles.blade.php +++ b/resources/views/admin/templates/_partials/templatesTiles.blade.php @@ -1,5 +1,5 @@
    - @forelse($templates as $template) + @forelse($directory->templates as $template)
    {{str_limit($template->name, 15)}} diff --git a/resources/views/admin/templates/edit.blade.php b/resources/views/admin/templates/edit.blade.php index df60b694..5e342914 100644 --- a/resources/views/admin/templates/edit.blade.php +++ b/resources/views/admin/templates/edit.blade.php @@ -3,5 +3,5 @@ @section('pageHeading', @trans('admin/templates.edit', ['name' => $template->template_name])) @section('content') - @include('admin.templates.editForm') + @include('admin.templates._partials.editForm') @stop \ No newline at end of file diff --git a/resources/views/admin/templates/index.blade.php b/resources/views/admin/templates/index.blade.php new file mode 100644 index 00000000..e84ebb6d --- /dev/null +++ b/resources/views/admin/templates/index.blade.php @@ -0,0 +1,13 @@ +@extends('admin.layoutWithNavigation') + +@section('pageHeading', @trans('admin/templates.overview')) + +@section('content') +
    +
    + @foreach($templatePaths as $directory) + @include('admin.templates._partials.directoriesList') + @endforeach +
    +
    +@endsection \ No newline at end of file diff --git a/resources/views/admin/templates/list.blade.php b/resources/views/admin/templates/list.blade.php index df3181aa..003295c9 100644 --- a/resources/views/admin/templates/list.blade.php +++ b/resources/views/admin/templates/list.blade.php @@ -3,14 +3,23 @@ @section('pageHeading', @trans('admin/templates.overview')) @section('content') -
    + + + +
    - @include('admin.templates.templatesTiles') +
    +
    + @include('admin.templates._partials.templatesTiles') +
    +
    -
    - @include('admin.templates.directoriesList') +
    +
    + @include('admin.templates._partials.directoriesList') +
    diff --git a/routes/admin/templates.php b/routes/admin/templates.php index c21e728b..d9ad1343 100644 --- a/routes/admin/templates.php +++ b/routes/admin/templates.php @@ -1,7 +1,12 @@ 'Templates'], function () { - Route::get('templates/overview/path/{templatePath}', 'TemplateOverview@getPath') + + Route::get('templates', 'TemplateOverview@index') + ->name('templates.index') + ->middleware('can:manage,' . \App\Models\Templates\Template::class); + + Route::get('templates/{templatePath}', 'TemplateOverview@getPath') ->name('templates.overview') ->middleware('can:manage,' . \App\Models\Templates\Template::class);