Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8098288139 | ||
|
|
cf90d1b91e | ||
|
|
8acfcabb3c | ||
|
|
b91b80debb | ||
|
|
ae29c49acf | ||
|
|
7e4507e9e4 | ||
|
|
f0bb159efb | ||
|
|
ddae98d233 |
@@ -12,9 +12,10 @@ use Illuminate\Support\Facades\Route;
|
||||
|
||||
class Menu implements WidgetRenderer
|
||||
{
|
||||
public static $template = null;
|
||||
|
||||
/**
|
||||
* Method used for displaying widget.
|
||||
*
|
||||
* This method renders some HTML code for displaying.
|
||||
*
|
||||
* @param Widget $widget
|
||||
@@ -27,6 +28,11 @@ class Menu implements WidgetRenderer
|
||||
$links = (array)$settings->links;
|
||||
$pageIds = array_keys($links);
|
||||
|
||||
if (!self::$template) {
|
||||
throw new \Exception('neni nastavena sablona');
|
||||
return;
|
||||
}
|
||||
|
||||
// get pages
|
||||
$pages = WidgetMenu::selectContentPages($pageIds);
|
||||
|
||||
@@ -40,14 +46,15 @@ class Menu implements WidgetRenderer
|
||||
$parameters = Route::current()
|
||||
->parameters();
|
||||
|
||||
$code = '<ul class="menu ' . $widget->container_class . '"';
|
||||
// $code = '<ul class="menu ' . $widget->container_class . '"';
|
||||
|
||||
if ($widget->container_id) {
|
||||
$code .= ' id="' . e($widget->container_id) . '"';
|
||||
}
|
||||
// if ($widget->container_id) {
|
||||
// $code .= ' id="' . e($widget->container_id) . '"';
|
||||
// }
|
||||
|
||||
$code .= '>';
|
||||
// $code .= '>';
|
||||
|
||||
$menuItems = [];
|
||||
foreach ($links as $pageId => $link) {
|
||||
if (!isset($pages[$pageId])) {
|
||||
continue;
|
||||
@@ -57,16 +64,22 @@ class Menu implements WidgetRenderer
|
||||
$active = ($page->isHomepage && $routeName == 'page.index') || ($routeName == 'page.content' && isset($parameters['url']) && $parameters['url'] == $page->url);
|
||||
$route = $page->isHomepage ? route('page.index') : route('page.content', ['url' => $page->url]);
|
||||
|
||||
$code .= '<li';
|
||||
if ($active) {
|
||||
$code .= ' class="is-active active"';
|
||||
}
|
||||
$code .= '><a href="' . $route . '">' . e($page->title) . '</a></li>';
|
||||
$menuItems[] = compact('page', 'active', 'route');
|
||||
|
||||
// $code .= '<li';
|
||||
// if ($active) {
|
||||
// $code .= ' class="is-active active"';
|
||||
}
|
||||
// $code .= '><a href="' . $route . '">' . e($page->title) . '</a></li>';
|
||||
// }
|
||||
|
||||
$code .= "</ul>";
|
||||
// $code .= "</ul>";
|
||||
|
||||
return $code;
|
||||
return view(self::$template, [
|
||||
'containerClass' => $widget->container_class,
|
||||
'containerId' => $widget->container_id,
|
||||
'menuItems' => $menuItems
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -35,7 +35,7 @@ class UploadedFilesOverview extends Controller
|
||||
// include hidden directories?
|
||||
$subdirectories = $this->directoryRepository->getAllSubdirectories($directory);
|
||||
|
||||
if (!Input::get('hidden', true)) {
|
||||
if (!Input::get('hidden', false)) {
|
||||
$subdirectories = $subdirectories->where('hidden', false);
|
||||
}
|
||||
|
||||
|
||||
Generated
+6
-6
@@ -5136,12 +5136,6 @@
|
||||
"integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
|
||||
"dev": true
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
||||
"dev": true
|
||||
},
|
||||
"string-width": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||
@@ -5153,6 +5147,12 @@
|
||||
"strip-ansi": "3.0.1"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
||||
"dev": true
|
||||
},
|
||||
"stringstream": {
|
||||
"version": "0.0.5",
|
||||
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<script src="multiselectcomponent.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div style="width: 50%; float: left;" id="left"></div>
|
||||
<div style="width: 50%; float: right;" id="right"></div>
|
||||
|
||||
<script type="application/javascript">
|
||||
// Sample data.
|
||||
var data1 = [
|
||||
{id: 1, name: 'Peter', surname: 'Hrdlica'},
|
||||
{id: 6, name: 'Vojtěch', surname: 'Hrdlica'},
|
||||
{id: 2, name: 'Michal', surname: 'Kváček'},
|
||||
{id: 19, name: 'Miček', surname: 'Je kokot!'},
|
||||
{id: 13, name: 'Mirek', surname: 'Mráček'},
|
||||
{id: 11, name: 'Naděžda', surname: 'Zímová'}
|
||||
];
|
||||
|
||||
var data2 = [
|
||||
{id: 2, name: 'wanna', surname: 'know'},
|
||||
{id: 6, name: 'Batman', surname: 'insulted'},
|
||||
{id: 58, name: 'scream', surname: 'pushed'},
|
||||
{id: 19, name: 'Mob', surname: 'why'},
|
||||
{id: 63, name: 'eight', surname: 'begin'},
|
||||
{id: 4, name: 'you', surname: 'emotions'}
|
||||
];
|
||||
data1.sort(function(a, b) { return a.id > b.id; }); // Sort by ID, lowest first.
|
||||
data2.sort(function(a, b) { return a.id > b.id; }); // Sort by ID, lowest first.
|
||||
|
||||
// Js component instance
|
||||
var mscL = new MultiSelectComponent('contacts', data1, 'id', function(item) { return item.name + ' ' + item.surname; });
|
||||
var mscR = new MultiSelectComponent('users', data2, 'id', function(item) { return item.name + ' ' + item.surname; });
|
||||
// Generated data added to template
|
||||
var left = document.getElementById('left');
|
||||
var right = document.getElementById('right');
|
||||
left.innerHTML = mscL.createTemplate();
|
||||
right.innerHTML = mscR.createTemplate();
|
||||
|
||||
// Initialization. May be done in more elegant way if the template is created ie. on server.
|
||||
mscL.init();
|
||||
mscR.init();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,121 @@
|
||||
|
||||
/**
|
||||
* Multi-select component
|
||||
*
|
||||
* @param identifier Identifier parameter that makes each instance unique and is used in DOM datasets used by this component.
|
||||
* @param data Data (array of objects)
|
||||
* @param field Field parameter that will be send as list with form
|
||||
* @param itemString String that should be shown as selector in select and a item label in item list
|
||||
*/
|
||||
function MultiSelectComponent(identifier, data, field, itemString) {
|
||||
|
||||
// Private variables
|
||||
var selectBox, addButton, itemHolder;
|
||||
|
||||
/**
|
||||
* This is the method that generates template for multiselect component.
|
||||
* This method is easily rewriteable into PHP.
|
||||
* It is necessary to keep html datasets with prefix data-ms- intact for the javascript component to work.
|
||||
* ECMAScript 5 version, does not need any compilers, nor jQuery or other framework.
|
||||
* This method is not required to stay inside the MultiSelectComponent and may be rendered in any way;
|
||||
*
|
||||
* identifier is inherited from the instance creation.
|
||||
* data is inherited from the instance creation.
|
||||
* field is inherited from the instance creation.
|
||||
* itemString is inherited from the instance creation.
|
||||
*
|
||||
*/
|
||||
function createTemplate () {
|
||||
var html = '<select data-ms-select="'+identifier+'">';
|
||||
|
||||
for(var idx in data) {
|
||||
if(data.hasOwnProperty(idx)) {
|
||||
html += '<option value="'+data[idx][field]+'">'+itemString(data[idx])+'</value>' //createSelectOption(data[idx]);
|
||||
}
|
||||
}
|
||||
|
||||
return html += '</select><input type="button" data-ms-add="'+identifier+'" value="add"><div data-ms-list="'+identifier+'"></div>';
|
||||
}
|
||||
|
||||
/**
|
||||
* This method creates an item list item that works as visual representation of selected values.
|
||||
*/
|
||||
function createItemListItem (value) {
|
||||
return html = '<span>'+itemString(getDataItem(value))+
|
||||
' <span data-ms-remove="'+identifier+'" data-ms-value="'+value+'">x</span>'+
|
||||
'<input style="display: none" type="checkbox" value="'+value+'" name="'+identifier+'[]" checked>'+
|
||||
'</span>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a requested data item that matches <field> (class instance variable field) value of passed value.
|
||||
*/
|
||||
function getDataItem (value) {
|
||||
for(var idx in data) {
|
||||
if(data.hasOwnProperty(idx)){
|
||||
if(data[idx][field] == value){
|
||||
return data[idx];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* By selecting an item, that item is removed from list of available items and is added to list of selected items.
|
||||
* If no more items are available for adding, add button and selectbox are disabled and list gets an informative item.
|
||||
*/
|
||||
function selectItem (value) {
|
||||
selectBox.removeChild(selectBox.querySelector('option[value="' + value + '"]'));
|
||||
itemHolder.innerHTML += createItemListItem(value);
|
||||
|
||||
if(selectBox.children.length === 0) {
|
||||
selectBox.options.add(new Option('no more items to add', 0));
|
||||
addButton.setAttribute('disabled', 'disabled');
|
||||
selectBox.setAttribute('disabled', 'disabled');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* By deselecting (removing) an item, that item is removed from selected list and added again into select box of available items;
|
||||
* If add button was disabled (mostly because of no selectable items in list) it and the selectbox are now re-enabled and informative item is removed.
|
||||
*/
|
||||
function deselectItem (element) {
|
||||
var id = element.getAttribute('data-ms-value');
|
||||
selectBox.options.add(new Option(itemString(getDataItem(id)), id));
|
||||
itemHolder.removeChild(element.parentNode);
|
||||
|
||||
if(addButton.getAttribute('disabled')) {
|
||||
selectBox.options.remove(0);
|
||||
addButton.removeAttribute('disabled');
|
||||
selectBox.removeAttribute('disabled');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes javascript part of the component.
|
||||
*/
|
||||
function init () {
|
||||
// Cached elements only for JS to be a little more optimized.
|
||||
selectBox = document.querySelector('[data-ms-select="'+identifier+'"]');
|
||||
addButton = document.querySelector('[data-ms-add="'+identifier+'"]');
|
||||
itemHolder = document.querySelector('[data-ms-list="'+identifier+'"]');
|
||||
|
||||
// Add button
|
||||
addButton.addEventListener('click', function() {
|
||||
selectItem(selectBox.value);
|
||||
});
|
||||
|
||||
// Remove item button
|
||||
itemHolder.addEventListener('click', function(e) {
|
||||
if(e.target.getAttribute('data-ms-remove')) {
|
||||
deselectItem(e.target);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Publicly exposed static methods and variables.
|
||||
return {
|
||||
init: init,
|
||||
createTemplate: createTemplate
|
||||
};
|
||||
}
|
||||
@@ -49,11 +49,6 @@
|
||||
********************************************** */
|
||||
|
||||
.item-list {
|
||||
|
||||
.subpage {
|
||||
padding-left: 35px;
|
||||
}
|
||||
|
||||
.thumbnail {
|
||||
width: 100%;
|
||||
height: 80px;
|
||||
|
||||
@@ -16,6 +16,10 @@ body {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.p-l-25 {
|
||||
padding-left: 25px;
|
||||
}
|
||||
|
||||
.main-wrapper {
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
|
||||
@@ -1,139 +1,129 @@
|
||||
<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>
|
||||
<div class="{{$page->parentId ? 'p-l-25' : ''}}">
|
||||
<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
|
||||
<img src="{{asset('resources/assets/admin/img/placeholder.png')}}"
|
||||
class="placeholder"
|
||||
alt="{{$page->title}}" />
|
||||
@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
|
||||
</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])}}">
|
||||
@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}}
|
||||
</a>
|
||||
@else
|
||||
{{$page->title}}
|
||||
@endcan
|
||||
@endcan
|
||||
|
||||
@if ($page->subpages->count() > 0)
|
||||
({{$page->subpages->count()}})
|
||||
@endif
|
||||
|
||||
@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">
|
||||
@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>
|
||||
@if(!is_null($page->templateModel))
|
||||
<small>({{$page->templateModel->name}})</small>
|
||||
@endif
|
||||
</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">
|
||||
</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>
|
||||
@if(!is_null($page->templateModel))
|
||||
<small>({{$page->templateModel->name}})</small>
|
||||
@endif
|
||||
</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">
|
||||
<span class="active">
|
||||
<i class="fa fa-chevron-circle-right"></i>
|
||||
</span>
|
||||
</a>
|
||||
<div class="item-actions-block">
|
||||
<ul class="item-actions-list">
|
||||
</a>
|
||||
<div class="item-actions-block">
|
||||
<ul class="item-actions-list">
|
||||
|
||||
@if(!$page->isHomepage)
|
||||
@can('set-homepage', $page)
|
||||
@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 href="{{route('content.setHomepage', ['page' => $page])}}"
|
||||
data-toggle="tooltip"
|
||||
title="@lang('admin/contents.setHomepage')">
|
||||
<i class="fa fa-home"></i>
|
||||
<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
|
||||
@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)
|
||||
@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('content.changeStatus', ['page' => $page, 'status' => 'public'])}}"
|
||||
class="confirm" data-toggle="tooltip"
|
||||
title="@lang('admin/contents.makePublic')">
|
||||
<i class="fa fa-eye"></i>
|
||||
<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
|
||||
@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>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@foreach($page->subpages as $s)
|
||||
@include('admin.content._partials.overviewRow', ['page' => $s, 'extraClass' => $s->subpages->isEmpty() ? 'subpage hidden-xs-up' : 'subpage hidden-xs-up has-subpages'])
|
||||
@endforeach
|
||||
</div>
|
||||
@@ -0,0 +1,8 @@
|
||||
<option value="{{$optionPage->id}}"
|
||||
@if(old('parentId', $page->parentId) == $optionPage->id) selected @endif>
|
||||
{{$prefix}} {{$optionPage->title}}
|
||||
</option>
|
||||
|
||||
@foreach($optionPage->subpages as $subpage)
|
||||
@include('admin.content._partials.subpages', ['optionPage' => $subpage, 'prefix' => $prefix.' - '])
|
||||
@endforeach
|
||||
@@ -43,10 +43,7 @@
|
||||
<option value="">@lang('admin/contents.noParentPage')</option>
|
||||
|
||||
@foreach($rootPages as $rootPage)
|
||||
<option value="{{$rootPage->id}}"
|
||||
@if(old('parentId', $page->parentId) == $rootPage->id) selected @endif>
|
||||
{{$rootPage->title}}
|
||||
</option>
|
||||
@include('admin.content._partials.subpages', ['optionPage' => $rootPage, 'prefix' => ''])
|
||||
@endforeach
|
||||
</select>
|
||||
|
||||
|
||||
@@ -51,10 +51,6 @@
|
||||
</div>
|
||||
@foreach($pages as $page)
|
||||
@include('admin.content._partials.overviewRow', ['extraClass' => $page->subpages->isEmpty() ?: 'has-subpages'])
|
||||
|
||||
@foreach($page->subpages as $subpage)
|
||||
@include('admin.content._partials.overviewRow', ['page' => $subpage, 'extraClass' => 'subpage hidden-xs-up'])
|
||||
@endforeach
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+2
-2
@@ -17,9 +17,9 @@ Route::group([
|
||||
], function () {
|
||||
|
||||
// include all routes in routes/admin subfolder
|
||||
$files = File::allFiles('routes/admin');
|
||||
$files = File::allFiles(base_path('routes/admin'));
|
||||
foreach ($files as $file) {
|
||||
require_once base_path($file);
|
||||
require_once $file;
|
||||
}
|
||||
|
||||
// display dashboard with some usefull information
|
||||
|
||||
Reference in New Issue
Block a user