FEATURE: add page ordering
This commit is contained in:
+6
-74
@@ -340,79 +340,11 @@ img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/*.tag {*/
|
||||
/*display: inline-block;*/
|
||||
/*padding: 0.25em 0.4em;*/
|
||||
/*font-size: 75%;*/
|
||||
/*font-weight: bold;*/
|
||||
/*line-height: 1;*/
|
||||
/*color: #FFF;*/
|
||||
/*text-align: center;*/
|
||||
/*white-space: nowrap;*/
|
||||
/*vertical-align: baseline;*/
|
||||
/*border-radius: 0.25rem;*/
|
||||
/*}*/
|
||||
|
||||
/*.tag:empty {*/
|
||||
/*display: none;*/
|
||||
/*}*/
|
||||
|
||||
/*.btn .tag {*/
|
||||
/*position: relative;*/
|
||||
/*top: -1px;*/
|
||||
/*}*/
|
||||
|
||||
/*a.tag:focus, a.tag:hover {*/
|
||||
/*color: #FFF;*/
|
||||
/*text-decoration: none;*/
|
||||
/*cursor: pointer;*/
|
||||
/*}*/
|
||||
|
||||
/*.tag-pill {*/
|
||||
/*padding-right: 0.6em;*/
|
||||
/*padding-left: 0.6em;*/
|
||||
/*border-radius: 10rem;*/
|
||||
/*}*/
|
||||
|
||||
/*.tag-default {*/
|
||||
/*background-color: #818A91;*/
|
||||
/*}*/
|
||||
|
||||
/*.tag-default[href]:focus, .tag-default[href]:hover {*/
|
||||
/*background-color: #687077;*/
|
||||
/*}*/
|
||||
|
||||
/*.tag-success {*/
|
||||
/*background-color: #5CB85C;*/
|
||||
/*}*/
|
||||
|
||||
/*.tag-success[href]:focus, .tag-success[href]:hover {*/
|
||||
/*background-color: #449D44;*/
|
||||
/*}*/
|
||||
|
||||
/*.tag-info {*/
|
||||
/*background-color: #5BC0DE;*/
|
||||
/*}*/
|
||||
|
||||
/*.tag-info[href]:focus, .tag-info[href]:hover {*/
|
||||
/*background-color: #31B0D5;*/
|
||||
/*}*/
|
||||
|
||||
/*.tag-warning {*/
|
||||
/*background-color: #F0AD4E;*/
|
||||
/*}*/
|
||||
|
||||
/*.tag-warning[href]:focus, .tag-warning[href]:hover {*/
|
||||
/*background-color: #EC971F;*/
|
||||
/*}*/
|
||||
|
||||
/*.tag-danger {*/
|
||||
/*background-color: #D9534F;*/
|
||||
/*}*/
|
||||
|
||||
/*.tag-danger[href]:focus, .tag-danger[href]:hover {*/
|
||||
/*background-color: #C9302C;*/
|
||||
/*}*/
|
||||
|
||||
.has-subpages:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#orderSetup .subpage td:first-child {
|
||||
padding-left: 35px;
|
||||
}
|
||||
|
||||
|
||||
@@ -386,9 +386,9 @@ $ (document).ready (function () {
|
||||
|
||||
$ ('#confirm-button').attr ('href', href);
|
||||
} else if (tag === 'BUTTON') {
|
||||
var form = $(this).closest('form');
|
||||
var form = $ (this).closest ('form');
|
||||
$ ('#confirm-button').click (function () {
|
||||
form.submit();
|
||||
form.submit ();
|
||||
})
|
||||
}
|
||||
|
||||
@@ -461,4 +461,12 @@ $ ('.checkbox').change (function () {
|
||||
var parent = e.data ('parent');
|
||||
$ ('#checkbox-parent-' + parent).prop ('checked', true);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$ ('.has-subpages').click (function (e) {
|
||||
if (!$ (e.target).is ("div"))
|
||||
return;
|
||||
|
||||
var id = $ (this).data ('id');
|
||||
$ ('.parent-page-' + id).toggleClass ('hidden-xs-up');
|
||||
})
|
||||
@@ -49,6 +49,19 @@
|
||||
********************************************** */
|
||||
|
||||
.item-list {
|
||||
|
||||
.subpage {
|
||||
padding-left: 35px;
|
||||
}
|
||||
|
||||
.thumbnail {
|
||||
width: 100%;
|
||||
height: 80px;
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
}
|
||||
|
||||
.item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
@@ -56,4 +56,6 @@ return [
|
||||
"title" => "Titulek",
|
||||
"uploadTitleImage" => "Nahrát titulní obrázek",
|
||||
"viewPage" => "Zobrazit",
|
||||
'setOrder' => 'Nastavení pořadí stránek',
|
||||
'orderSuccessfullySet' => 'Pořadí stránek úspěšně nastaveno',
|
||||
];
|
||||
|
||||
@@ -27,5 +27,6 @@ return [
|
||||
"widgetAreas" => "Plochy pro widgety",
|
||||
"widgets" => "Widgety",
|
||||
"widgetsOverview" => "Všechny widgety",
|
||||
'permissions' => 'Přístupová práva'
|
||||
'permissions' => 'Přístupová práva',
|
||||
'contentOrder' => 'Pořadí stránek'
|
||||
];
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
<tr class="{{$extraClass or ''}}">
|
||||
<td>
|
||||
<label class="label-control" for="order-{{$page->id}}">
|
||||
{{$page->title}}
|
||||
</label>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<input class="form-control" id="order-{{$page->id}}" type="text"
|
||||
name="page[{{$page->id}}]"
|
||||
value="{{old('page['.$page->id.']', $page->order)}}" />
|
||||
|
||||
@include('admin.snippets.hasError', ['field' => 'page['.$page->id.']'])
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
@@ -0,0 +1,137 @@
|
||||
<div data-id="{{$page->id}}" class="row p-tb-15 parent-page-{{$page->parentId or 'none'}} {{$extraClass or ''}}">
|
||||
<div class="col-md-1 hidden-sm-down text-center with-placeholder">
|
||||
@can('update', $page)
|
||||
<a href="{{route('content.edit', ['page' => $page])}}">
|
||||
@if(!view()->exists(template_name($page->template, false)))
|
||||
<i class="fa fa-2x text-warning fa-warning" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.invalidTemplateSelected')"></i>
|
||||
@else
|
||||
@if(!empty($page->titlePhoto))
|
||||
<div class="thumbnail" style="background-image: url(@thumbnail($page->titlePhoto))"></div>
|
||||
@else
|
||||
<img src="{{asset('resources/assets/admin/img/placeholder.png')}}"
|
||||
class="placeholder"
|
||||
alt="{{$page->title}}" />
|
||||
@endif
|
||||
@endif
|
||||
</a>
|
||||
@else
|
||||
@if(!empty($page->titlePhoto))
|
||||
<img src="@thumbnail($page->titlePhoto)" class="placeholder"
|
||||
alt="{{$page->title}}" />
|
||||
@endif
|
||||
@endcan
|
||||
</div>
|
||||
<div class="col-xs-10 col-md-3 col-lg-4">
|
||||
@can('update', $page)
|
||||
<a href="{{route('content.edit', ['page' => $page])}}">
|
||||
{{$page->title}}
|
||||
</a>
|
||||
@else
|
||||
{{$page->title}}
|
||||
@endcan
|
||||
|
||||
|
||||
@if($page->isHomepage) <span
|
||||
class="m-l-10 tag tag-primary">@lang('admin/contents.homepage')</span> @endif
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-3 hidden-sm-down">
|
||||
<span class="tag @if($page->isPublic()) tag-success
|
||||
@elseif ($page->isDraft()) tag-danger
|
||||
@else tag-warning @endif">{{$statuses[$page->status]}}</span>
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-3 hidden-sm-down">
|
||||
<a href="{{route('content.overview', ['module' => $page->module->alias])}}">
|
||||
@lang($page->module->name)
|
||||
</a>
|
||||
<br>
|
||||
<small>({{$page->templateModel->name}})</small>
|
||||
</div>
|
||||
<div class="col-lg-2 hidden-md-down">@date($page->created_at)</div>
|
||||
<div class="col-xs-2 col-lg-1 text-center">
|
||||
<div class="item-actions-dropdown">
|
||||
<a class="item-actions-toggle-btn">
|
||||
<span class="inactive">
|
||||
<i class="fa fa-cog"></i>
|
||||
</span>
|
||||
<span class="active">
|
||||
<i class="fa fa-chevron-circle-right"></i>
|
||||
</span>
|
||||
</a>
|
||||
<div class="item-actions-block">
|
||||
<ul class="item-actions-list">
|
||||
|
||||
@if(!$page->isHomepage)
|
||||
@can('set-homepage', $page)
|
||||
<li>
|
||||
<a href="{{route('content.setHomepage', ['page' => $page])}}"
|
||||
data-toggle="tooltip"
|
||||
title="@lang('admin/contents.setHomepage')">
|
||||
<i class="fa fa-home"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
@endif
|
||||
|
||||
@can('update', $page)
|
||||
<li>
|
||||
<a class="edit" href="{{route('content.edit', ['page' => $page])}}"
|
||||
data-toggle="tooltip" title="@lang('admin/contents.editPlain')">
|
||||
<i class="fa fa-pencil"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
|
||||
@if($page->isDraft())
|
||||
@can('publish', $page)
|
||||
<li>
|
||||
<a href="{{route('content.changeStatus', ['page' => $page, 'status' => 'public'])}}"
|
||||
class="confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.makePublic')">
|
||||
<i class="fa fa-eye"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
@can('protect', $page)
|
||||
<li>
|
||||
<a href="{{route('content.changeStatus', ['page' => $page, 'status' => 'protected'])}}"
|
||||
class="confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.makeProtected')">
|
||||
<i class="fa fa-lock"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
@else
|
||||
<li>
|
||||
<a href="{{route('page.content', ['url' => $page->url])}}"
|
||||
target="_blank"
|
||||
data-toggle="tooltip" title="@lang('admin/contents.viewPage')"
|
||||
class="button tiny secondary"><i class="fa fa-globe"></i>
|
||||
</a>
|
||||
</li>
|
||||
@can('draft', $page)
|
||||
<li>
|
||||
<a href="{{route('content.changeStatus', ['page' => $page, 'status' => 'draft'])}}"
|
||||
class="button tiny warning confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.makeDraft')">
|
||||
<i class="fa fa-eye-slash"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
@endif
|
||||
|
||||
@can('delete', $page)
|
||||
<li>
|
||||
<a href="{{route('content.delete', ['page' => $page])}}"
|
||||
class="button tiny alert remove confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.deletePage')"><i
|
||||
class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,39 @@
|
||||
@extends('admin.layoutWithNavigation')
|
||||
|
||||
@section('pageHeading', trans('admin/contents.setOrder'))
|
||||
|
||||
@section('content')
|
||||
|
||||
@if (count($pages) > 0)
|
||||
<div class="card items" id="orderSetup">
|
||||
<div class="card-block">
|
||||
<form method="POST" enctype="multipart/form-data" class="form-inline"
|
||||
action="{{route('content.setOrder')}}">
|
||||
{!! csrf_field() !!}
|
||||
|
||||
<table>
|
||||
@foreach($pages as $page)
|
||||
@include('admin.content._partials.orderSetupRow')
|
||||
|
||||
@foreach($page->subpages as $subpage)
|
||||
@include('admin.content._partials.orderSetupRow', ['page' => $subpage, 'extraClass' => 'subpage'])
|
||||
@endforeach
|
||||
@endforeach
|
||||
</table>
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-primary">@lang('admin/contents.save')</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="card-footer">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@else
|
||||
<div class="alert alert-info">
|
||||
@lang('admin/contents.noPagesAvailable')
|
||||
</div>
|
||||
@endif
|
||||
@endsection
|
||||
@@ -46,142 +46,11 @@
|
||||
<div class="col-xs-2 col-lg-1">@lang('admin/contents.actions')</div>
|
||||
</div>
|
||||
@foreach($pages as $page)
|
||||
<div class="row p-tb-15">
|
||||
<div class="col-md-1 hidden-sm-down text-center with-placeholder">
|
||||
@can('update', $page)
|
||||
<a href="{{route('content.edit', ['page' => $page])}}">
|
||||
@if(!view()->exists(template_name($page->template, false)))
|
||||
<i class="fa fa-2x text-warning fa-warning" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.invalidTemplateSelected')"></i>
|
||||
@else
|
||||
@if(!empty($page->titlePhoto))
|
||||
<img src="@thumbnail($page->titlePhoto)" class="placeholder"
|
||||
alt="{{$page->title}}" />
|
||||
@else
|
||||
<img src="{{asset('resources/assets/admin/img/placeholder.png')}}"
|
||||
class="placeholder"
|
||||
alt="{{$page->title}}" />
|
||||
@endif
|
||||
@endif
|
||||
</a>
|
||||
@else
|
||||
@if(!empty($page->titlePhoto))
|
||||
<img src="@thumbnail($page->titlePhoto)" class="placeholder"
|
||||
alt="{{$page->title}}" />
|
||||
@endif
|
||||
@endcan
|
||||
</div>
|
||||
<div class="col-xs-10 col-md-3 col-lg-4">
|
||||
@can('update', $page)
|
||||
<a href="{{route('content.edit', ['page' => $page])}}">
|
||||
{{$page->title}}
|
||||
</a>
|
||||
@else
|
||||
{{$page->title}}
|
||||
@endcan
|
||||
@include('admin.content._partials.overviewRow', ['extraClass' => $page->subpages->isEmpty() ?: 'has-subpages'])
|
||||
|
||||
|
||||
@if($page->isHomepage) <span
|
||||
class="m-l-10 tag tag-primary">@lang('admin/contents.homepage')</span> @endif
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-3 hidden-sm-down">
|
||||
<span class="tag @if($page->isPublic()) tag-success
|
||||
@elseif ($page->isDraft()) tag-danger
|
||||
@else tag-warning @endif">{{$statuses[$page->status]}}</span>
|
||||
</div>
|
||||
<div class="col-lg-2 col-md-3 hidden-sm-down">
|
||||
<a href="{{route('content.overview', ['module' => $page->module->alias])}}">
|
||||
{{trans($page->module_name)}}
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-lg-2 hidden-md-down">@date($page->created_at)</div>
|
||||
<div class="col-xs-2 col-lg-1 text-center">
|
||||
<div class="item-actions-dropdown">
|
||||
<a class="item-actions-toggle-btn">
|
||||
<span class="inactive">
|
||||
<i class="fa fa-cog"></i>
|
||||
</span>
|
||||
<span class="active">
|
||||
<i class="fa fa-chevron-circle-right"></i>
|
||||
</span>
|
||||
</a>
|
||||
<div class="item-actions-block">
|
||||
<ul class="item-actions-list">
|
||||
|
||||
@if(!$page->isHomepage)
|
||||
@can('set-homepage', $page)
|
||||
<li>
|
||||
<a href="{{route('content.setHomepage', ['page' => $page])}}"
|
||||
data-toggle="tooltip"
|
||||
title="@lang('admin/contents.setHomepage')">
|
||||
<i class="fa fa-home"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
@endif
|
||||
|
||||
@can('update', $page)
|
||||
<li>
|
||||
<a class="edit" href="{{route('content.edit', ['page' => $page])}}"
|
||||
data-toggle="tooltip" title="@lang('admin/contents.editPlain')">
|
||||
<i class="fa fa-pencil"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
|
||||
@if($page->isDraft())
|
||||
@can('publish', $page)
|
||||
<li>
|
||||
<a href="{{route('content.changeStatus', ['page' => $page, 'status' => 'public'])}}"
|
||||
class="confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.makePublic')">
|
||||
<i class="fa fa-eye"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
@can('protect', $page)
|
||||
<li>
|
||||
<a href="{{route('content.changeStatus', ['page' => $page, 'status' => 'protected'])}}"
|
||||
class="confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.makeProtected')">
|
||||
<i class="fa fa-lock"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
@else
|
||||
<li>
|
||||
<a href="{{route('page.content', ['url' => $page->url])}}"
|
||||
target="_blank"
|
||||
data-toggle="tooltip" title="@lang('admin/contents.viewPage')"
|
||||
class="button tiny secondary"><i class="fa fa-globe"></i>
|
||||
</a>
|
||||
</li>
|
||||
@can('draft', $page)
|
||||
<li>
|
||||
<a href="{{route('content.changeStatus', ['page' => $page, 'status' => 'draft'])}}"
|
||||
class="button tiny warning confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.makeDraft')">
|
||||
<i class="fa fa-eye-slash"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
@endif
|
||||
|
||||
@can('delete', $page)
|
||||
<li>
|
||||
<a href="{{route('content.delete', ['page' => $page])}}"
|
||||
class="button tiny alert remove confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.deletePage')"><i
|
||||
class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@foreach($page->subpages as $subpage)
|
||||
@include('admin.content._partials.overviewRow', ['page' => $subpage, 'extraClass' => 'subpage hidden-xs-up'])
|
||||
@endforeach
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user