FEATURE: style file manager
This commit is contained in:
@@ -27,20 +27,20 @@ class FileManager
|
|||||||
return '<img src="' . $url . '" alt="' . $file->description . '" />';
|
return '<img src="' . $url . '" alt="' . $file->description . '" />';
|
||||||
break;
|
break;
|
||||||
case 'text':
|
case 'text':
|
||||||
return '<i class="fa fa-file-text-o"></i>';
|
return '<i class="fa fa-2x fa-file-text-o"></i>';
|
||||||
break;
|
break;
|
||||||
case 'application':
|
case 'application':
|
||||||
switch ($subtype) {
|
switch ($subtype) {
|
||||||
case 'pdf':
|
case 'pdf':
|
||||||
return '<i class="fa fa-file-pdf-o"></i>';
|
return '<i class="fa fa-2x fa-file-pdf-o"></i>';
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return '<i class="fa fa-newspaper-o"></i>';
|
return '<i class="fa fa-2x fa-newspaper-o"></i>';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return '<i class="fa fa-question"></i>';
|
return '<i class="fa fa-2x fa-question"></i>';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -106,7 +106,7 @@ class File extends Model
|
|||||||
// save optional fields
|
// save optional fields
|
||||||
$optionalFields = ['name', 'description', 'keywords', 'directoryId'];
|
$optionalFields = ['name', 'description', 'keywords', 'directoryId'];
|
||||||
foreach ($optionalFields as $field) {
|
foreach ($optionalFields as $field) {
|
||||||
if (isset($request->{$field})) {
|
if (isset($request->{$field}) && !empty($request->{$field})) {
|
||||||
|
|
||||||
$snakeField = snake_case($field);
|
$snakeField = snake_case($field);
|
||||||
$newFile->$snakeField = $request->$field;
|
$newFile->$snakeField = $request->$field;
|
||||||
|
|||||||
+14
@@ -13074,4 +13074,18 @@ a:focus {
|
|||||||
|
|
||||||
.item-list .item-actions-dropdown.active .item-actions-block {
|
.item-list .item-actions-dropdown.active .item-actions-block {
|
||||||
max-width: 300px !important;
|
max-width: 300px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.file-preview .preview {
|
||||||
|
height: 4em;
|
||||||
|
line-height: 5em;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.file-preview .preview.directory {
|
||||||
|
height: auto;
|
||||||
|
line-heg
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<form method="POST" action="{{$action}}">
|
||||||
|
{!! csrf_field() !!}
|
||||||
|
<input type="text" name="name" placeholder="@lang('admin/fileManager.directoryName')" class="form-control"
|
||||||
|
value="{{old('name', $directory->name)}}" />
|
||||||
|
|
||||||
|
<textarea name="description" class="form-control" placeholder="@lang('admin/fileManager.directoryDescription')"
|
||||||
|
rows="3">{{old('description', $directory->description)}}</textarea>
|
||||||
|
|
||||||
|
<button type="submit" class="btn btn-primary">@lang('admin/fileManager.editDirectory')</button>
|
||||||
|
|
||||||
|
</form>
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
<div class="row">
|
||||||
|
@if($directory->id)
|
||||||
|
<div class="col-md-2 text-center file-preview">
|
||||||
|
<div class="icon">
|
||||||
|
<a href="{{route('upload.overview', ['id' => $directory->parent_id])}}">
|
||||||
|
<i class="fa fa-2x fa-level-up"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<a href="{{route('upload.overview', ['id' => $directory->parent_id])}}">
|
||||||
|
@lang('admin/fileManager.parentDirectory')
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@foreach($subdirectories as $dir)
|
||||||
|
<div class="col-md-2 text-center file-preview">
|
||||||
|
<div class="icon">
|
||||||
|
<a href="{{route('upload.overview', ['id' => $dir->id])}}">
|
||||||
|
<i class="fa fa-2x fa-folder"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<a href="{{route('upload.overview', ['id' => $dir->id])}}">
|
||||||
|
{{str_limit($dir->name, 15)}}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
@extends('admin.layoutWithNavigation')
|
||||||
|
|
||||||
|
@section('pageHeading', @trans('admin/fileManager.edit', ['name' => $file->original_filename]))
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<h2>@lang('admin/fileManager.edit', ['name' => $file->original_filename])</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="column large-8">
|
||||||
|
<div class="large-preview">
|
||||||
|
{!! \App\Helpers\FileManager::getLargePreview($file) !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="column large-4">
|
||||||
|
|
||||||
|
<div class="row callout secondary">
|
||||||
|
<div class="column">
|
||||||
|
<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\Helpers\FileManager::getFormattedSize($file)}}</li>
|
||||||
|
|
||||||
|
@foreach($extraInfo as $column => $info)
|
||||||
|
<li>{{$column}}: {{$info}}</li>
|
||||||
|
@endforeach
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
@include('admin.fileManager.editForm')
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@stop
|
||||||
|
|
||||||
|
@section('head_stylesheets')
|
||||||
|
<link rel="stylesheet" href="{{asset('/resources/assets/js/vendor/highlightjs/style/default.css')}}">
|
||||||
|
@stop
|
||||||
|
|
||||||
|
@section('javascripts')
|
||||||
|
|
||||||
|
<script type="text/javascript" src="{{asset('/resources/assets/js/vendor/highlightjs/highlight.min.js')}}"></script>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
hljs.initHighlightingOnLoad();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
@stop
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<form method="POST" action="{{route('upload.postEdit', ['id' => $file->id])}}" enctype="multipart/form-data">
|
||||||
|
{!! csrf_field() !!}
|
||||||
|
|
||||||
|
<label>
|
||||||
|
@lang('admin/fileManager.name')
|
||||||
|
|
||||||
|
<input type="text" name="name" id="name" value="{{$file->name}}"/>
|
||||||
|
|
||||||
|
@if (isset($errors) && $errors->has('name'))
|
||||||
|
<div class="callout alert">
|
||||||
|
{{ $errors->first('name') }}
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
@lang('admin/fileManager.keywords')
|
||||||
|
|
||||||
|
<input type="text" name="keywords" id="keywords" value="{{$file->keywords}}"/>
|
||||||
|
|
||||||
|
@if (isset($errors) && $errors->has('keywords'))
|
||||||
|
<div class="callout alert">
|
||||||
|
{{ $errors->first('keywords') }}
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
@lang('admin/fileManager.description')
|
||||||
|
|
||||||
|
<textarea rows="3" name="description" id="description">{{$file->description}}</textarea>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<button type="submit" class="button primary">@lang('admin/fileManager.editButton')</button>
|
||||||
|
<a href="{{route('upload.delete', ['id' => $file->id])}}" class="button text-center confirm alert pull-right" title="@lang('admin/fileManager.delete')">
|
||||||
|
<i class="fa fa-remove"></i>
|
||||||
|
</a>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<div class="row">
|
||||||
|
@forelse($files as $file)
|
||||||
|
<div class="col-sm-4 col-md-2 text-center file-preview">
|
||||||
|
<div class="preview">
|
||||||
|
<a href="{{route('upload.detail', ['id' => $file->id])}}">
|
||||||
|
{!! \App\Helpers\FileManager::getPreview($file) !!}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<a href="{{route('upload.detail', ['id' => $file->id])}}">
|
||||||
|
{{str_limit($file->original_filename, 10)}}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a href="{{route('upload.delete', ['id' => $file->id])}}" class="btn btn-sm btn-danger"
|
||||||
|
title="@lang('admin/fileManager.delete')">
|
||||||
|
<i class="fa fa-remove"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
@empty
|
||||||
|
<div class="alert alert-info">
|
||||||
|
<em>@lang('admin/fileManager.noFiles')</em>
|
||||||
|
</div>
|
||||||
|
@endforelse
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<form method="POST" action="{{route('upload.postFile')}}" enctype="multipart/form-data">
|
||||||
|
{!! csrf_field() !!}
|
||||||
|
|
||||||
|
@if(isset($directory))
|
||||||
|
<input type="hidden" name="directoryId" value="{{$directory->id}}" />
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<input type="file" multiple name="files[]" class="form-control" id="file" />
|
||||||
|
|
||||||
|
<input type="text" name="name" id="name" class="form-control" placeholder="@lang('admin/fileManager.name')"
|
||||||
|
value="{{old('name')}}" />
|
||||||
|
|
||||||
|
<input type="text" name="keywords" placeholder="@lang('admin/fileManager.keywords')" class="form-control"
|
||||||
|
id="keywords" value="{{old('keywords')}}" />
|
||||||
|
|
||||||
|
<textarea rows="3" name="description" class="form-control" placeholder="@lang('admin/fileManager.description')"
|
||||||
|
id="description">{{old('description')}}</textarea>
|
||||||
|
|
||||||
|
<button type="submit" class="btn btn-primary">@lang('admin/fileManager.upload')</button>
|
||||||
|
</form>
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
@extends('admin.layoutWithNavigation')
|
||||||
|
|
||||||
|
@if ($directory->id)
|
||||||
|
@section('pageHeading', @trans('admin/fileManager.directories', ['directory' => $directory->name]))
|
||||||
|
@else
|
||||||
|
@section('pageHeading', @trans('admin/fileManager.rootDirectories'))
|
||||||
|
@endif
|
||||||
|
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-8">
|
||||||
|
@include('admin.fileManager.directories.subdirectoriesTiles')
|
||||||
|
@include('admin.fileManager.filesTiles')
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
</div>
|
||||||
|
<div id="new-file" class="panel-collapse collapse" role="tabpanel"
|
||||||
|
aria-labelledby="new-file-title">
|
||||||
|
@include('admin.fileManager.newFileForm')
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@if ($directory->id)
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading" role="tab" id="edit-dir-title">
|
||||||
|
<h5 class="panel-title">
|
||||||
|
<a class="collapsed" data-toggle="collapse" data-parent="#file-manager-controls"
|
||||||
|
href="#edit-dir" aria-expanded="false" aria-controls="edit-dir">
|
||||||
|
@lang('admin/fileManager.editDirectory')
|
||||||
|
</a>
|
||||||
|
</h5>
|
||||||
|
</div>
|
||||||
|
<div id="edit-dir" class="panel-collapse collapse" role="tabpanel"
|
||||||
|
aria-labelledby="edit-file-title">
|
||||||
|
@include('admin.fileManager.directories.form', ['action' => route('upload.postEditDirectory', ['id' => $directory->id])])
|
||||||
|
</div>
|
||||||
|
</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>
|
||||||
|
</div>
|
||||||
|
<div id="new-dir" class="panel-collapse collapse" role="tabpanel"
|
||||||
|
aria-labelledby="new-file-title">
|
||||||
|
@include('admin.fileManager.directories.form', ['directory' => new \App\Models\Directory(), 'action' => route('upload.postEditDirectory', ['id' => $directory->id])])
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{{--<ul class="accordion" data-accordion data-allow-all-closed="true">--}}
|
||||||
|
{{--<li class="accordion-item is-active" data-accordion-item>--}}
|
||||||
|
{{--<a href="#" class="accordion-title">@lang('admin/fileManager.newFile')</a>--}}
|
||||||
|
|
||||||
|
{{--<div class="accordion-content" data-tab-content>--}}
|
||||||
|
{{--@include('admin.fileManager.newFileForm')--}}
|
||||||
|
{{--</div>--}}
|
||||||
|
{{--</li>--}}
|
||||||
|
{{--<li class="accordion-item" data-accordion-item>--}}
|
||||||
|
{{--<a href="#" class="accordion-title">@lang('admin/fileManager.editDirectory')</a>--}}
|
||||||
|
|
||||||
|
{{--<div class="accordion-content" data-tab-content>--}}
|
||||||
|
{{--@include('admin.fileManager.directories.editForm')--}}
|
||||||
|
{{--</div>--}}
|
||||||
|
{{--</li>--}}
|
||||||
|
{{--@endif--}}
|
||||||
|
{{--<li class="accordion-item" data-accordion-item>--}}
|
||||||
|
{{--<a href="#" class="accordion-title">@lang('admin/fileManager.newDirectory')</a>--}}
|
||||||
|
|
||||||
|
{{--<div class="accordion-content" data-tab-content>--}}
|
||||||
|
{{--@include('admin.fileManager.directories.newForm')--}}
|
||||||
|
{{--</div>--}}
|
||||||
|
{{--</li>--}}
|
||||||
|
{{--</ul>--}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@stop
|
||||||
Reference in New Issue
Block a user