FEATURE #2048: prepare routes for ACL, add some more permissions
This commit is contained in:
@@ -21,9 +21,12 @@
|
||||
</div>
|
||||
|
||||
@if ($historySize > 0)
|
||||
<div class="columns text-right col-lg-6">
|
||||
<a class="btn btn-secondary" href="{{route('content.history', ['id' => $page->id])}}">@lang('admin/contents.showHistory', ['count' => $historySize])</a>
|
||||
</div>
|
||||
@can('viewHistory', $page)
|
||||
<div class="columns text-right col-lg-6">
|
||||
<a class="btn btn-secondary"
|
||||
href="{{route('content.history', ['id' => $page->id])}}">@lang('admin/contents.showHistory', ['count' => $historySize])</a>
|
||||
</div>
|
||||
@endcan
|
||||
@endif
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -4,9 +4,11 @@
|
||||
@section('headerButtons')
|
||||
|
||||
@if($module->exists === true)
|
||||
<a href="{{route('content.new', ['module' => $module])}}" class="btn btn-primary btn-sm rounded">
|
||||
<i class="fa fa-plus"></i>
|
||||
</a>
|
||||
@can('create', $module)
|
||||
<a href="{{route('content.new', ['module' => $module])}}" class="btn btn-primary btn-sm rounded">
|
||||
<i class="fa fa-plus"></i>
|
||||
</a>
|
||||
@endcan
|
||||
@endif
|
||||
@endsection
|
||||
|
||||
@@ -36,26 +38,38 @@
|
||||
@foreach($pages as $page)
|
||||
<div class="row p-tb-15">
|
||||
<div class="col-md-1 hidden-sm-down text-center with-placeholder">
|
||||
<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}}" />
|
||||
@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))
|
||||
<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
|
||||
</a>
|
||||
@endcannot
|
||||
</div>
|
||||
<div class="col-xs-10 col-md-3 col-lg-4">
|
||||
<a href="{{route('content.edit', ['page' => $page])}}">
|
||||
@can('update', $page)
|
||||
<a href="{{route('content.edit', ['page' => $page])}}">
|
||||
{{$page->title}}
|
||||
</a>
|
||||
@else
|
||||
{{$page->title}}
|
||||
</a>
|
||||
@endcan
|
||||
|
||||
|
||||
@if($page->isHomepage) <span
|
||||
class="m-l-10 tag tag-primary">@lang('admin/contents.homepage')</span> @endif
|
||||
@@ -85,38 +99,45 @@
|
||||
<ul class="item-actions-list">
|
||||
|
||||
@if(!$page->isHomepage)
|
||||
<li>
|
||||
|
||||
<a href="{{route('content.setHomepage', ['page' => $page])}}"
|
||||
data-toggle="tooltip"
|
||||
title="@lang('admin/contents.setHomepage')">
|
||||
<i class="fa fa-home"></i>
|
||||
</a>
|
||||
</li>
|
||||
@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
|
||||
|
||||
<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>
|
||||
@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())
|
||||
<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>
|
||||
<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>
|
||||
@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])}}"
|
||||
@@ -125,26 +146,30 @@
|
||||
class="button tiny secondary"><i class="fa fa-globe"></i>
|
||||
</a>
|
||||
</li>
|
||||
<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>
|
||||
@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
|
||||
|
||||
<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>
|
||||
@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>
|
||||
@endforeach
|
||||
|
||||
@@ -2,10 +2,13 @@
|
||||
|
||||
@section('pageHeading', @trans('admin/fileManager.edit', ['name' => $file->original_filename]))
|
||||
@section('headerButtons')
|
||||
<a href="{{route('upload.delete', ['id' => $file->id])}}" class="btn btn-danger btn-sm confirm rounded" title="@lang('admin/fileManager.delete')">
|
||||
<i class="fa fa-trash"></i>
|
||||
</a>
|
||||
@endsection
|
||||
@can('delete', $file)
|
||||
<a href="{{route('upload.delete', ['id' => $file->id])}}" class="btn btn-danger btn-sm confirm rounded"
|
||||
title="@lang('admin/fileManager.delete')">
|
||||
<i class="fa fa-trash"></i>
|
||||
</a>
|
||||
@endcan
|
||||
@endsection
|
||||
|
||||
|
||||
@section('content')
|
||||
@@ -18,21 +21,24 @@
|
||||
<div class="col-lg-4">
|
||||
|
||||
<div class="row callout secondary">
|
||||
<h3>{{$file->original_filename}}</h3>
|
||||
<h3>{{$file->original_filename}}</h3>
|
||||
|
||||
<ul>
|
||||
<li>@lang('admin/fileManager.createdAt'): {{$file->created_at}}</li>
|
||||
<li>@lang('admin/fileManager.updatedAt'): {{$file->updated_at}}</li>
|
||||
<li>@lang('admin/fileManager.mime'): {{$file->mime_type}}</li>
|
||||
<li>@lang('admin/fileManager.hash'): <span title="{{$file->file_hash}}">{{str_limit($file->file_hash, 10)}}</span></li>
|
||||
<li>@lang('admin/fileManager.url'): <a href="{{config('app.upload_url')}}/{{$file->filename}}">{{$file->filename}}</a></li>
|
||||
<li>@lang('admin/fileManager.fileSize'): {{\App\CMS\Helpers\FileManager::getFormattedSize($file)}}</li>
|
||||
<ul>
|
||||
<li>@lang('admin/fileManager.createdAt'): {{$file->created_at}}</li>
|
||||
<li>@lang('admin/fileManager.updatedAt'): {{$file->updated_at}}</li>
|
||||
<li>@lang('admin/fileManager.mime'): {{$file->mime_type}}</li>
|
||||
<li>@lang('admin/fileManager.hash'): <span
|
||||
title="{{$file->file_hash}}">{{str_limit($file->file_hash, 10)}}</span></li>
|
||||
<li>@lang('admin/fileManager.url'): <a
|
||||
href="{{config('app.upload_url')}}/{{$file->filename}}">{{$file->filename}}</a></li>
|
||||
<li>@lang('admin/fileManager.fileSize')
|
||||
: {{\App\CMS\Helpers\FileManager::getFormattedSize($file)}}</li>
|
||||
|
||||
@foreach($extraInfo as $column => $info)
|
||||
<li>{{$column}}: {{$info}}</li>
|
||||
@endforeach
|
||||
@foreach($extraInfo as $column => $info)
|
||||
<li>{{$column}}: {{$info}}</li>
|
||||
@endforeach
|
||||
|
||||
</ul>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
@@ -49,6 +55,6 @@
|
||||
@section('javascripts')
|
||||
<script type="text/javascript" src="{{asset('/resources/assets/js/vendor/highlightjs/highlight.min.js')}}"></script>
|
||||
<script type="text/javascript">
|
||||
hljs.initHighlightingOnLoad();
|
||||
hljs.initHighlightingOnLoad ();
|
||||
</script>
|
||||
@stop
|
||||
|
||||
@@ -1,33 +1,34 @@
|
||||
<form method="POST" action="{{route('upload.postEdit', ['id' => $file->id])}}" enctype="multipart/form-data">
|
||||
{!! csrf_field() !!}
|
||||
@can('update', $file)
|
||||
<form method="POST" action="{{route('upload.postEdit', ['id' => $file->id])}}" enctype="multipart/form-data">
|
||||
{!! csrf_field() !!}
|
||||
|
||||
<label class="control-label">
|
||||
@lang('admin/fileManager.name')
|
||||
</label>
|
||||
<label class="control-label">
|
||||
@lang('admin/fileManager.name')
|
||||
</label>
|
||||
|
||||
<input class="form-control" type="text" name="name" id="name" value="{{$file->name}}" />
|
||||
<input class="form-control" type="text" name="name" id="name" value="{{$file->name}}" />
|
||||
|
||||
<label class="control-label">
|
||||
@lang('admin/fileManager.keywords')
|
||||
</label>
|
||||
<label class="control-label">
|
||||
@lang('admin/fileManager.keywords')
|
||||
</label>
|
||||
|
||||
<input class="form-control" type="text" name="keywords" id="keywords" value="{{$file->keywords}}" />
|
||||
<input class="form-control" type="text" name="keywords" id="keywords" value="{{$file->keywords}}" />
|
||||
|
||||
<lavel class="control-label">
|
||||
@lang('admin/fileManager.directory')
|
||||
</lavel>
|
||||
<lavel class="control-label">
|
||||
@lang('admin/fileManager.directory')
|
||||
</lavel>
|
||||
|
||||
<select name="directory_id" class="form-control">
|
||||
@include('admin/fileManager.directories.subdirectoriesOptionList', ['directory' => $root, 'depth' => 0, 'file' => $file])
|
||||
</select>
|
||||
<select name="directory_id" class="form-control">
|
||||
@include('admin/fileManager.directories.subdirectoriesOptionList', ['directory' => $root, 'depth' => 0, 'file' => $file])
|
||||
</select>
|
||||
|
||||
<label class="control-label">
|
||||
@lang('admin/fileManager.description')
|
||||
</label>
|
||||
<label class="control-label">
|
||||
@lang('admin/fileManager.description')
|
||||
</label>
|
||||
|
||||
<textarea class="form-control" rows="3" name="description" id="description">{{$file->description}}</textarea>
|
||||
|
||||
<button type="submit" class="btn btn-primary">@lang('admin/fileManager.editButton')</button>
|
||||
</form>
|
||||
<textarea class="form-control" rows="3" name="description" id="description">{{$file->description}}</textarea>
|
||||
|
||||
<button type="submit" class="btn btn-primary">@lang('admin/fileManager.editButton')</button>
|
||||
</form>
|
||||
@endcan
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
'body' => '<a href="'.route('upload.detail', ['id' => $file->id]).'">'.\App\CMS\Helpers\FileManager::getPreview($file).'</a>',
|
||||
'footerClass' => 'text-right',
|
||||
'cardClass' => 'file-preview',
|
||||
'footer' => (!isset($hideDelete) || !$hideDelete) ? '<a href="'.route('upload.delete', ['id' => $file->id]).'" data-toggle="tooltip"
|
||||
'footer' => \Auth::user()->can('delete', $file) && (!isset($hideDelete) || !$hideDelete) ? '<a href="'.route('upload.delete', ['id' => $file->id]).'" data-toggle="tooltip"
|
||||
class="btn btn-sm btn-danger confirm"
|
||||
title="'.trans('admin/fileManager.delete').'">
|
||||
<i class="fa fa-trash"></i>
|
||||
|
||||
@@ -16,20 +16,24 @@
|
||||
|
||||
<div class="col-lg-4">
|
||||
<div id="file-manager-controls" role="tablist" aria-multiselectable="true">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab" id="new-file-title">
|
||||
<h5 class="panel-title">
|
||||
<a class="collapsed" data-toggle="collapse" data-parent="#file-manager-controls"
|
||||
href="#new-file" aria-expanded="false" aria-controls="new-file">
|
||||
@lang('admin/fileManager.newFile')
|
||||
</a>
|
||||
</h5>
|
||||
@can('upload', \App\Models\FileManager\File::class)
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab" id="new-file-title">
|
||||
<h5 class="panel-title">
|
||||
<a class="collapsed" data-toggle="collapse" data-parent="#file-manager-controls"
|
||||
href="#new-file" aria-expanded="false" aria-controls="new-file">
|
||||
@lang('admin/fileManager.newFile')
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="new-file" class="panel-collapse collapse" role="tabpanel"
|
||||
aria-labelledby="new-file-title">
|
||||
@include('admin.fileManager.newFileForm')
|
||||
</div>
|
||||
</div>
|
||||
<div id="new-file" class="panel-collapse collapse" role="tabpanel"
|
||||
aria-labelledby="new-file-title">
|
||||
@include('admin.fileManager.newFileForm')
|
||||
</div>
|
||||
</div>
|
||||
@endcan
|
||||
|
||||
|
||||
@if (!$directory->is_root)
|
||||
<div class="panel panel-default">
|
||||
@@ -48,20 +52,22 @@
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab" id="new-dir-title">
|
||||
<h5 class="panel-title">
|
||||
<a class="collapsed" data-toggle="collapse" data-parent="#file-manager-controls"
|
||||
href="#new-dir" aria-expanded="false" aria-controls="new-dir">
|
||||
@lang('admin/fileManager.newDirectory')
|
||||
</a>
|
||||
</h5>
|
||||
@can('create', \App\Models\FileManager\Directory::class)
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading" role="tab" id="new-dir-title">
|
||||
<h5 class="panel-title">
|
||||
<a class="collapsed" data-toggle="collapse" data-parent="#file-manager-controls"
|
||||
href="#new-dir" aria-expanded="false" aria-controls="new-dir">
|
||||
@lang('admin/fileManager.newDirectory')
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="new-dir" class="panel-collapse collapse" role="tabpanel"
|
||||
aria-labelledby="new-dir-title">
|
||||
@include('admin.fileManager.directories.form', ['directory' => $newDirectory, 'action' => route('upload.postNewDirectory')])
|
||||
</div>
|
||||
</div>
|
||||
<div id="new-dir" class="panel-collapse collapse" role="tabpanel"
|
||||
aria-labelledby="new-dir-title">
|
||||
@include('admin.fileManager.directories.form', ['directory' => $newDirectory, 'action' => route('upload.postNewDirectory')])
|
||||
</div>
|
||||
</div>
|
||||
@endcan
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -33,7 +33,9 @@
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
<a href="{{route('content.edit', ['id' => $page->id])}}" class="btn btn-primary">
|
||||
@lang('admin/history.backToEdit')
|
||||
</a>
|
||||
@can('update', $page)
|
||||
<a href="{{route('content.edit', ['id' => $page->id])}}" class="btn btn-primary">
|
||||
@lang('admin/history.backToEdit')
|
||||
</a>
|
||||
@endcan
|
||||
@stop
|
||||
@@ -32,12 +32,24 @@
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#user-edit" role="tab" id="user-edit-tab"
|
||||
aria-controls="user-edit">
|
||||
@lang('admin/userManagement.edit')
|
||||
</a>
|
||||
</li>
|
||||
@can('update', $user)
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#user-edit" role="tab" id="user-edit-tab"
|
||||
aria-controls="user-edit">
|
||||
@lang('admin/userManagement.edit')
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
|
||||
@can('set-permissions', $user)
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#user-permissions" role="tab"
|
||||
id="user-permissions-tab"
|
||||
aria-controls="user-edit">
|
||||
@lang('admin/userManagement.permissions')
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#user-actions" role="tab" id="user-actions-tab"
|
||||
@@ -60,9 +72,17 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class="tab-pane" id="user-edit" role="tabpanel">
|
||||
@include('admin.userManagement.editForm', ['states' => $statuses])
|
||||
</div>
|
||||
@can('update', $user)
|
||||
<div class="tab-pane" id="user-edit" role="tabpanel">
|
||||
@include('admin.userManagement.editForm', ['states' => $statuses])
|
||||
</div>
|
||||
@endcan
|
||||
|
||||
@can('set-permissions', $user)
|
||||
<div class="tab-pane" id="user-permissions" role="tabpanel">
|
||||
@include('admin.userManagement.permissions.form')
|
||||
</div>
|
||||
@endcan
|
||||
|
||||
<div class="tab-pane" id="user-actions" role="tabpanel">
|
||||
@if (!empty($actions))
|
||||
|
||||
@@ -29,8 +29,9 @@
|
||||
name="password"
|
||||
value="">
|
||||
|
||||
@if (\Auth::user()->role == \App\Models\User::ROLE_ADMIN && \Auth::user()->id != $user->id)
|
||||
<div class="row">
|
||||
<div class="row">
|
||||
@can('change-role', $user)
|
||||
|
||||
<div class="col-lg-6">
|
||||
|
||||
<label class="label-control">
|
||||
@@ -43,7 +44,9 @@
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
@endcan
|
||||
|
||||
@can('change-status', $user)
|
||||
<div class="col-lg-6">
|
||||
<label class="label-control">
|
||||
@lang('admin/userManagement.status')
|
||||
@@ -55,8 +58,8 @@
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endcan
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary">@lang('admin/userManagement.update')</button>
|
||||
</form>
|
||||
@@ -0,0 +1,34 @@
|
||||
<form action="{{route('permissions.update', ['user' => $user])}}" method="post">
|
||||
{!! csrf_field() !!}
|
||||
|
||||
@foreach($permissions as $permission)
|
||||
|
||||
<div>
|
||||
<label>
|
||||
<input class="checkbox" data-id="{{$permission->id}}" value="1"
|
||||
@if($user->hasAbility($permission->string_id))
|
||||
checked
|
||||
@endif name="permissions[{{$permission->string_id}}]" type="checkbox">
|
||||
<span>{{trans($permission->name)}}</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
@if($permission->subpermissions->count() > 0)
|
||||
@foreach($permission->subpermissions as $subpermission)
|
||||
<div>
|
||||
<label>
|
||||
<i class="fa fa-fw"></i>
|
||||
<input class="checkbox child-{{$subpermission->parent_id}}" value="1"
|
||||
@if($user->hasAbility($permission->string_id) && $user->hasAbility($subpermission->string_id))
|
||||
checked
|
||||
@endif name="permissions[{{$subpermission->string_id}}]" type="checkbox">
|
||||
<span>{{trans($subpermission->name)}}</span>
|
||||
</label>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
|
||||
@endforeach
|
||||
|
||||
<button class="btn btn-primary">Ulozit</button>
|
||||
</form>
|
||||
Reference in New Issue
Block a user