sort order for file manager

wip

wip

sort order by name
This commit is contained in:
Edward Yang 2023-04-17 16:42:58 +08:00
parent f744dc6b02
commit a3470b27c0
13 changed files with 97 additions and 18 deletions

View File

@ -31,10 +31,12 @@ class FileManagerController extends Controller
public function getFiles(Request $request): array
{
$baseFolder = $request->get('base_folder');
$sort = $request->get('sort', 'created');
$order = $request->get('order', 'desc');
$page = (int) $request->get('page');
$perPage = (int) $request->get('per_page');
$data = (new FileManagerService)->getFiles($baseFolder, $page, $perPage);
$data = (new FileManagerService)->getFiles($baseFolder, $sort, $order, $page, $perPage);
return hook_filter('admin.file_manager.files.data', $data);
}

View File

@ -49,18 +49,34 @@ class FileManagerService
* 获取某个目录下的文件和文件夹
*
* @param $baseFolder
* @param $sort
* @param $order
* @param int $page
* @param int $perPage
* @return array
* @throws \Exception
*/
public function getFiles($baseFolder, int $page = 1, int $perPage = 20): array
public function getFiles($baseFolder, $sort, $order, int $page = 1, int $perPage = 20): array
{
$currentBasePath = rtrim($this->fileBasePath . $baseFolder, '/');
$files = glob($currentBasePath . '/*');
usort($files, function ($a, $b) {
return filemtime($a) - filemtime($b) < 0;
});
if ($sort == 'created') {
if ($order == 'desc') {
usort($files, function ($a, $b) {
return filemtime($a) - filemtime($b) < 0;
});
} else {
usort($files, function ($a, $b) {
return filemtime($a) - filemtime($b) >= 0;
});
}
} else {
natcasesort($files);
if ($order == 'desc') {
$files = array_reverse($files);
}
}
$images = [];
foreach ($files as $file) {

View File

@ -12,6 +12,4 @@ class BaseController extends Controller
exit('Already installed');
}
}
}

View File

@ -68,8 +68,9 @@ class Order extends Base
public function getStatusFormatAttribute()
{
$status_format = trans('order.' . $this->status);
$status_format = trans('order.' . $this->status);
$status_format = hook_filter('order.status_format', $status_format);
return $status_format;
}

View File

@ -22,7 +22,8 @@ class EditController extends Controller
{
$customer = current_customer();
$data['customer'] = $customer;
$data = hook_filter('account.edit.index', $data);
$data = hook_filter('account.edit.index', $data);
return view('account/edit', $data);
}

View File

@ -31,6 +31,7 @@ class PageCategoryController extends Controller
'active_pages' => PageRepo::getCategoryPages(),
];
$data = hook_filter('page_categories.home.data', $data);
return view('page_categories/home', $data);
}
@ -46,6 +47,7 @@ class PageCategoryController extends Controller
'category_pages' => $pageCategory->pages()->paginate(12),
];
$data = hook_filter('page_categories.show.data', $data);
return view('page_categories/show', $data);
}
}

View File

@ -85,6 +85,29 @@
@hook('admin.file_manager.content.head.btns.after')
</div>
<div class="right">
<el-popover
placement="bottom"
width="260"
class="me-2"
trigger="click">
<div class="text-center mb-3 fw-bold">{{ __('admin/file_manager.file_sorting') }}</div>
<div class="mb-3">
<div class="mb-2">{{ __('admin/file_manager.text_type') }}</div>
<el-radio-group v-model="filter.sort" size="small">
<el-radio-button label="created">{{ __('admin/file_manager.text_created') }}</el-radio-button>
<el-radio-button label="name">{{ __('admin/file_manager.file_name') }}</el-radio-button>
</el-radio-group>
</div>
<div class="mb-3">
<div class="mb-2">{{ __('admin/file_manager.to_sort') }}</div>
<el-radio-group v-model="filter.order" size="small">
<el-radio-button label="desc">{{ __('admin/file_manager.text_desc') }}</el-radio-button>
<el-radio-button label="asc">{{ __('admin/file_manager.text_asc') }}</el-radio-button>
</el-radio-group>
</div>
<el-button slot="reference" size="small" plain type="primary" icon="el-icon-s-operation"></el-button>
</el-popover>
<el-button size="small" plain type="primary" @click="openUploadFile" icon="el-icon-upload2">{{ __('admin/file_manager.upload_files') }}</el-button>
</div>
</div>
@ -103,10 +126,6 @@
<div class="content-footer">
<div class="right"></div>
<div class="pagination-wrap">
{{-- <el-pagination @current-change="pageCurrentChange" :page-size="20" layout="total, prev, pager, next"
:total="image_total">
</el-pagination> --}}
<el-pagination
@size-change="pageSizeChange"
@current-change="pageCurrentChange"
@ -175,6 +194,11 @@
selectImageIndex: [],
filter: {
sort: 'created',
order: 'desc'
},
treeData: [{
name: '{{ __('admin/file_manager.picture_space') }}',
path: '/',
@ -227,6 +251,14 @@
item.selected = indexs.includes(index);
});
},
filter: {
handler(val) {
this.image_page = 1;
this.loadData()
},
deep: true
}
},
// 组件方法
methods: {
@ -267,6 +299,10 @@
this.uploadFileDialog.show = true
},
openFileSort() {
console.log(11);
},
beforePhotoUpload(file) {
// this.editing.photoLoading = true;
},
@ -337,7 +373,9 @@
$http.get(`file_manager/files?base_folder=${this.folderCurrent}`, {
page: this.image_page,
per_page: this.per_page
per_page: this.per_page,
sort: this.filter.sort,
order: this.filter.order
}, {
hload: true
}).then((res) => {

View File

@ -10,6 +10,13 @@
*/
return [
'file_sorting' => 'File Sorting',
'text_type' => 'Type',
'text_created' => 'Created Time',
'file_name' => 'File Name',
'to_sort' => 'Sort',
'text_desc' => 'Descent',
'text_asc' => 'Ascent',
'file_manager_create' => 'Create',
'file_manager_show' => 'View',
'file_manager_update' => 'Rename',
@ -20,7 +27,7 @@ return [
'create_folder' => 'Create folder',
'rename' => 'Rename',
'download' => 'Download',
'upload_files' => 'Upload Files',
'upload_files' => 'Upload',
'click_upload' => 'Click upload, or drag image here',
'image_uploading' => 'Image Uploading',
'no_file' => 'No File',

View File

@ -74,5 +74,5 @@ return [
'multi_filter' => 'Multi Filter',
'please_select' => 'Please select',
'multi_filter_helper' => 'Please select the attributes to be displayed in the Multi Filter module.',
'filter_attribute' => 'Attribute Filter',
'filter_attribute' => 'Attribute Filter',
];

View File

@ -10,6 +10,13 @@
*/
return [
'file_sorting' => '文件排序',
'text_type' => '类型',
'text_created' => '创建时间',
'file_name' => '文件名称',
'to_sort' => '排序',
'text_desc' => '倒序',
'text_asc' => '顺序',
'file_manager_create' => '创建目录/文件',
'file_manager_show' => '查看目录/文件',
'file_manager_update' => '重命名',

View File

@ -72,5 +72,5 @@ return [
'multi_filter' => '高级筛选',
'please_select' => '请添加',
'multi_filter_helper' => '请选择需要在筛选模块显示的属性',
'filter_attribute' => '属性筛选',
'filter_attribute' => '属性筛选',
];

View File

@ -10,6 +10,13 @@
*/
return [
'file_sorting' => '文件排序',
'text_type' => '類型',
'text_created' => '創建時間',
'file_name' => '文件名稱',
'to_sort' => '排序',
'text_desc' => '倒序',
'text_asc' => '順序',
'file_manager_create' => '創建目錄/文件',
'file_manager_show' => '查看目錄/文件',
'file_manager_update' => '重命名',

View File

@ -73,5 +73,5 @@ return [
'multi_filter' => '高級篩選',
'please_select' => '請添加',
'multi_filter_helper' => '請選擇需要在篩選模塊顯示的屬性',
'filter_attribute' => '屬性篩選',
'filter_attribute' => '屬性篩選',
];