FEATURE: add saving templates to static pages

This commit is contained in:
Michal Kváček
2016-03-09 22:27:43 +01:00
parent 661d5c486d
commit 03dbf22eb0
7 changed files with 92 additions and 5 deletions
@@ -2,7 +2,9 @@
namespace Modules\StaticPages\Http\Controllers\Admin; namespace Modules\StaticPages\Http\Controllers\Admin;
use App\Enumerations\ContentStatuses; use App\Enumerations\ContentStatuses;
use App\Enumerations\ModulesHandlerToId;
use App\Models\Content; use App\Models\Content;
use App\Models\Template;
use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Event;
use Modules\StaticPages\Http\Requests\CreateNewStaticPageRequest; use Modules\StaticPages\Http\Requests\CreateNewStaticPageRequest;
@@ -20,9 +22,16 @@ class CreateNewStaticPage extends Controller
// we do not want to create deleted page // we do not want to create deleted page
unset($statuses[Content::STATUS_DELETED]); unset($statuses[Content::STATUS_DELETED]);
$allModules = ModulesHandlerToId::getWithTranslations();
$moduleId = $allModules[config('staticpages.handler')];
$templates = Template::where('module_id', $moduleId)
->select(['template_name', 'name', 'description'])
->get();
// render view // render view
return view('staticpages::admin.new', [ return view('staticpages::admin.new', [
'contentStatuses' => $statuses, 'contentStatuses' => $statuses,
'templates' => $templates,
'selectedStatus' => Content::STATUS_DRAFT 'selectedStatus' => Content::STATUS_DRAFT
]); ]);
} }
@@ -48,6 +57,7 @@ class CreateNewStaticPage extends Controller
$page->content = $request->pageContent; $page->content = $request->pageContent;
$page->status = $request->status; $page->status = $request->status;
$page->module_handler = config('staticpages.handler'); $page->module_handler = config('staticpages.handler');
$page->template = $request->template;
$page->save(); $page->save();
@@ -2,8 +2,10 @@
namespace Modules\StaticPages\Http\Controllers\Admin; namespace Modules\StaticPages\Http\Controllers\Admin;
use App\Enumerations\ContentStatuses; use App\Enumerations\ContentStatuses;
use App\Enumerations\ModulesHandlerToId;
use App\Models\Content; use App\Models\Content;
use App\Models\ContentHistory; use App\Models\ContentHistory;
use App\Models\Template;
use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Event;
use Modules\StaticPages\Events\DeleteStaticPage; use Modules\StaticPages\Events\DeleteStaticPage;
use Modules\StaticPages\Events\EditStaticPage as EditStaticPageEvent; use Modules\StaticPages\Events\EditStaticPage as EditStaticPageEvent;
@@ -40,12 +42,19 @@ class EditStaticPage extends Controller
$page = Content::where('module_handler', config('staticpages.handler')) $page = Content::where('module_handler', config('staticpages.handler'))
->findOrFail($id); ->findOrFail($id);
$allModules = ModulesHandlerToId::getWithTranslations();
$moduleId = $allModules[config('staticpages.handler')];
$templates = Template::where('module_id', $moduleId)
->select(['template_name', 'name', 'description'])
->get();
$history = $this->history->getStructuredHistoryOf($page); $history = $this->history->getStructuredHistoryOf($page);
// render view // render view
return view('staticpages::admin.edit', [ return view('staticpages::admin.edit', [
'contentStatuses' => $statuses, 'contentStatuses' => $statuses,
'page' => $page, 'page' => $page,
'templates' => $templates,
'historySize' => count($history['changesets']) 'historySize' => count($history['changesets'])
]); ]);
} }
@@ -75,6 +84,7 @@ class EditStaticPage extends Controller
$fields = [ $fields = [
'title' => 'title', 'title' => 'title',
'url' => 'url', 'url' => 'url',
'template' => 'template',
'published_from' => 'publishedFrom', 'published_from' => 'publishedFrom',
'published_to' => 'publishedTo', 'published_to' => 'publishedTo',
'meta_keywords' => 'metaKeywords', 'meta_keywords' => 'metaKeywords',
@@ -15,6 +15,7 @@ class CreateNewStaticPageRequest extends Request
return [ return [
'title' => 'required', 'title' => 'required',
'url' => 'required|unique:contents,url', 'url' => 'required|unique:contents,url',
'template' => 'required|exists:templates,template_name',
'published_from' => 'date', 'published_from' => 'date',
'published_to' => 'date', 'published_to' => 'date',
'title_photo' => 'exists:files,id', 'title_photo' => 'exists:files,id',
@@ -20,6 +20,7 @@ class EditStaticPageRequest extends Request
return [ return [
'title' => 'required', 'title' => 'required',
'url' => 'required|unique:contents,url,'.$this->id, 'url' => 'required|unique:contents,url,'.$this->id,
'template' => 'required|exists:templates,template_name',
'published_from' => 'date', 'published_from' => 'date',
'published_to' => 'date', 'published_to' => 'date',
'title_photo' => 'exists:files,id', 'title_photo' => 'exists:files,id',
@@ -27,6 +27,9 @@ return [
'pageDeleted' => 'Page :name (:url) successfully deleted.', 'pageDeleted' => 'Page :name (:url) successfully deleted.',
'nothingToEdit' => 'You did not submit any changes. Nothing was edited.', 'nothingToEdit' => 'You did not submit any changes. Nothing was edited.',
'successfullyEdited' => 'Edit successfull', 'successfullyEdited' => 'Edit successfull',
'showHistory' => 'History (:count)' 'showHistory' => 'History (:count)',
'templatePath' => 'Static pages',
'appearance' => 'Appearance',
'template' => 'Template of this page'
]; ];
@@ -24,6 +24,9 @@
<li class="tabs-title"> <li class="tabs-title">
<a href="#publication">@lang('staticpages::admin.publicationOptions')</a> <a href="#publication">@lang('staticpages::admin.publicationOptions')</a>
</li> </li>
<li class="tabs-title">
<a href="#appearance">@lang('staticpages::admin.appearance')</a>
</li>
</ul> </ul>
<div class="tabs-content" data-tabs-content="static-page-controls"> <div class="tabs-content" data-tabs-content="static-page-controls">
@@ -141,6 +144,31 @@
</div> </div>
</div> </div>
</div> </div>
<div class="tabs-panel" id="appearance">
<div class="row">
<div class="columns large-12">
<label>
@lang('staticpages::admin.template')
<select name="template">
@foreach($templates as $template)
<option value="{{$template->template_name}}">
{{$template->name}}
@if($template->description != '')
- {{str_limit($template->description, 60)}}
@endif
</option>
@endforeach
</select>
</label>
</div>
</div>
</div>
</div> </div>
</div> </div>
@@ -23,6 +23,9 @@
<li class="tabs-title"> <li class="tabs-title">
<a href="#publication">@lang('staticpages::admin.publicationOptions')</a> <a href="#publication">@lang('staticpages::admin.publicationOptions')</a>
</li> </li>
<li class="tabs-title">
<a href="#appearance">@lang('staticpages::admin.appearance')</a>
</li>
</ul> </ul>
<div class="tabs-content" data-tabs-content="static-page-controls"> <div class="tabs-content" data-tabs-content="static-page-controls">
@@ -141,6 +144,37 @@
</div> </div>
</div> </div>
</div> </div>
<div class="tabs-panel" id="appearance">
<div class="row">
<div class="columns large-12">
<label>
@lang('staticpages::admin.template')
<select name="template">
@foreach($templates as $template)
<option value="{{$template->template_name}}">
{{$template->name}}
@if($template->description != '')
- {{str_limit($template->description, 60)}}
@endif
</option>
@endforeach
</select>
@if (isset($errors) && $errors->has('template'))
<div class="callout alert">
{{ $errors->first('template') }}
</div>
@endif
</label>
</div>
</div>
</div>
</div> </div>
<div class="row"> <div class="row">