* Refactor the index view of backup.
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
global $app, $lang;
|
||||
$app->loadLang('backup');
|
||||
|
||||
$config->backup->menu = array('rmPHPHeader', 'restore', 'delete');
|
||||
$config->backup->actionList = array();
|
||||
|
||||
$config->backup->actionList['rmPHPHeader']['icon'] = 'folder-download';
|
||||
$config->backup->actionList['rmPHPHeader']['text'] = $lang->backup->rmPHPHeader;
|
||||
$config->backup->actionList['rmPHPHeader']['hint'] = $lang->backup->rmPHPHeader;
|
||||
$config->backup->actionList['rmPHPHeader']['url'] = helper::createLink('backup', 'rmPHPHeader', 'file={name}');
|
||||
$config->backup->actionList['rmPHPHeader']['data-toggle'] = 'modal';
|
||||
|
||||
$config->backup->actionList['restore']['icon'] = 'restart';
|
||||
$config->backup->actionList['restore']['text'] = $lang->backup->restore;
|
||||
$config->backup->actionList['restore']['hint'] = $lang->backup->restore;
|
||||
$config->backup->actionList['restore']['url'] = array('module' => 'backup', 'method' => 'restore', 'params' => 'file={name}');
|
||||
$config->backup->actionList['restore']['data-toggle'] = 'modal';
|
||||
|
||||
$config->backup->actionList['delete']['icon'] = 'trash';
|
||||
$config->backup->actionList['delete']['text'] = $lang->delete;
|
||||
$config->backup->actionList['delete']['hint'] = $lang->delete;
|
||||
$config->backup->actionList['delete']['url'] = helper::createLink('backup', 'delete', 'file={name}');
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
global $lang;
|
||||
$config->backup->dtable = new stdclass();
|
||||
$config->backup->dtable->fieldList['time']['title'] = $lang->backup->time;
|
||||
$config->backup->dtable->fieldList['time']['name'] = 'time';
|
||||
$config->backup->dtable->fieldList['time']['type'] = 'datetime';
|
||||
$config->backup->dtable->fieldList['time']['fixed'] = 'left';
|
||||
$config->backup->dtable->fieldList['time']['show'] = true;
|
||||
$config->backup->dtable->fieldList['time']['group'] = 1;
|
||||
|
||||
$config->backup->dtable->fieldList['file']['title'] = $lang->backup->files;
|
||||
$config->backup->dtable->fieldList['file']['name'] = 'file';
|
||||
$config->backup->dtable->fieldList['file']['type'] = 'title';
|
||||
$config->backup->dtable->fieldList['file']['fixed'] = 'left';
|
||||
$config->backup->dtable->fieldList['file']['show'] = true;
|
||||
$config->backup->dtable->fieldList['file']['group'] = 1;
|
||||
|
||||
$config->backup->dtable->fieldList['allCount']['title'] = $lang->backup->allCount;
|
||||
$config->backup->dtable->fieldList['allCount']['name'] = 'allCount';
|
||||
$config->backup->dtable->fieldList['allCount']['type'] = 'text';
|
||||
$config->backup->dtable->fieldList['allCount']['show'] = true;
|
||||
$config->backup->dtable->fieldList['allCount']['group'] = 2;
|
||||
|
||||
$config->backup->dtable->fieldList['count']['title'] = $lang->backup->count;
|
||||
$config->backup->dtable->fieldList['count']['name'] = 'count';
|
||||
$config->backup->dtable->fieldList['count']['type'] = 'text';
|
||||
$config->backup->dtable->fieldList['count']['show'] = true;
|
||||
$config->backup->dtable->fieldList['count']['group'] = 3;
|
||||
|
||||
$config->backup->dtable->fieldList['size']['title'] = $lang->backup->size;
|
||||
$config->backup->dtable->fieldList['size']['name'] = 'size';
|
||||
$config->backup->dtable->fieldList['size']['type'] = 'text';
|
||||
$config->backup->dtable->fieldList['size']['show'] = true;
|
||||
$config->backup->dtable->fieldList['size']['group'] = 4;
|
||||
|
||||
$config->backup->dtable->fieldList['status']['title'] = $lang->backup->status;
|
||||
$config->backup->dtable->fieldList['status']['name'] = 'status';
|
||||
$config->backup->dtable->fieldList['status']['type'] = 'text';
|
||||
$config->backup->dtable->fieldList['status']['show'] = true;
|
||||
$config->backup->dtable->fieldList['status']['group'] = 5;
|
||||
|
||||
$config->backup->dtable->fieldList['actions']['title'] = $lang->actions;
|
||||
$config->backup->dtable->fieldList['actions']['name'] = 'actions';
|
||||
$config->backup->dtable->fieldList['actions']['type'] = 'actions';
|
||||
$config->backup->dtable->fieldList['actions']['width'] = 'auto';
|
||||
$config->backup->dtable->fieldList['actions']['fixed'] = 'right';
|
||||
$config->backup->dtable->fieldList['actions']['list'] = $config->backup->actionList;
|
||||
$config->backup->dtable->fieldList['actions']['menu'] = $config->backup->menu ?? array_keys($config->backup->actionList);
|
||||
$config->backup->dtable->fieldList['actions']['required'] = true;
|
||||
$config->backup->dtable->fieldList['actions']['group'] = 6;
|
||||
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
/**
|
||||
* The index view file of backup module of ZenTaoPMS.
|
||||
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
|
||||
* @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
|
||||
* @author dingguodong <dingguodong@easycorp.ltd>
|
||||
* @package backup
|
||||
* @link https://www.zentao.net
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
namespace zin;
|
||||
|
||||
featureBar
|
||||
(
|
||||
li
|
||||
(
|
||||
set::class('nav-item'),
|
||||
a
|
||||
(
|
||||
set('data-app', $app->tab),
|
||||
$lang->backup->history
|
||||
)
|
||||
),
|
||||
set::current('all')
|
||||
);
|
||||
|
||||
/* Toolbar. */
|
||||
$settingLink = $this->createLink('backup', 'setting');
|
||||
$backupLink = $this->createLink('backup', 'backup', "reload=yes");
|
||||
|
||||
if(common::hasPriv('backup', 'setting') and common::hasPriv('backup', 'backup'))
|
||||
{
|
||||
toolbar
|
||||
(
|
||||
item(set
|
||||
([
|
||||
'text' => $lang->backup->setting,
|
||||
'icon' => 'cog',
|
||||
'class'=> 'iframe btn primary',
|
||||
'url' => $settingLink
|
||||
])),
|
||||
item(set
|
||||
([
|
||||
'text' => $lang->backup->backup,
|
||||
'icon' => 'copy',
|
||||
'class'=> 'btn primary',
|
||||
'url' => $backupLink
|
||||
])),
|
||||
);
|
||||
}
|
||||
|
||||
/* DataTable. */
|
||||
$cols = $this->loadModel('datatable')->getSetting('backup');
|
||||
$data = initTableData($backups, $cols, $this->backup);
|
||||
|
||||
foreach($data as $key => $row)
|
||||
{
|
||||
$data[$key]->time = date(DT_DATETIME1, filemtime(array_keys($row->files)[0]));
|
||||
$data[$key]->file = dirname(array_keys($row->files)[0]) . DS . '{' . implode(',', array_map('basename', array_keys($row->files))) . '}';
|
||||
$data[$key]->count = count($row->files);
|
||||
$data[$key]->allCount = array_sum(array_column($row->files, 'allCount'));
|
||||
$data[$key]->size = helper::formatKB(array_sum(array_column($row->files, 'size')));
|
||||
|
||||
$isOk = $data[$key]->isOK = true;
|
||||
$data[$key]->isPHP = false;
|
||||
foreach($row->files as $name => $file)
|
||||
{
|
||||
if(str_ends_with($name, '.php')) $data[$key]->isPHP = true;
|
||||
if($file['allCount'] != $file['count'])
|
||||
{
|
||||
$isOk = $data[$key]->isOK = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$data[$key]->status = $isOk ? $lang->backup->statusList['success'] : $lang->backup->statusList['fail'];
|
||||
if(!$data[$key]->isPHP) $data[$key]->actions[0]['disabled'] = true;
|
||||
if(!$data[$key]->isOK) $data[$key]->actions[1]['disabled'] = true;
|
||||
}
|
||||
|
||||
dtable
|
||||
(
|
||||
set::customCols(false),
|
||||
set::cols($cols),
|
||||
set::data($data),
|
||||
set::footPager(usePager())
|
||||
);
|
||||
|
||||
render();
|
||||
|
||||
Reference in New Issue
Block a user