241 lines
9.1 KiB
PHP
241 lines
9.1 KiB
PHP
<?php
|
|
/**
|
|
* @package akeebabackup
|
|
* @copyright Copyright (c)2006-2022 Nicholas K. Dionysopoulos / Akeeba Ltd
|
|
* @license GNU General Public License version 3, or later
|
|
*/
|
|
|
|
// Protect from unauthorized access
|
|
defined('_JEXEC') || die();
|
|
|
|
use Joomla\CMS\HTML\HTMLHelper;
|
|
use Joomla\CMS\Language\Text;
|
|
use Joomla\CMS\Layout\LayoutHelper;
|
|
use Joomla\CMS\Router\Route;
|
|
use Joomla\CMS\Uri\Uri;
|
|
|
|
/** @var \Akeeba\Component\AkeebaBackup\Administrator\View\Manage\HtmlView $this */
|
|
|
|
HTMLHelper::_('formbehavior.chosen');
|
|
HTMLHelper::_('bootstrap.popover', '.akeebaCommentPopover', [
|
|
'trigger' => 'click hover focus'
|
|
]);
|
|
HTMLHelper::_('bootstrap.tooltip', '.akeebaTooltip');
|
|
|
|
if ($this->promptForBackupRestoration)
|
|
{
|
|
echo $this->loadAnyTemplate('howtorestore_modal');
|
|
}
|
|
|
|
?>
|
|
<div id="akeebabackup-manage-iframe-modal"
|
|
class="modal fade"
|
|
tabindex="-1"
|
|
role="dialog"
|
|
aria-labelledby="akeebabackup-manage-iframe-modal-title"
|
|
aria-hidden="true"
|
|
>
|
|
<div class="modal-dialog modal-lg modal-dialog-scrollable">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h3 class="modal-title" id="akeebabackup-manage-iframe-modal-title">
|
|
</h3>
|
|
<button type="button" class="btn-close novalidate"
|
|
id="akeebabackup-manage-iframe-modal-close"
|
|
data-bs-dismiss="modal"
|
|
aria-label="<?= Text::_('JLIB_HTML_BEHAVIOR_CLOSE') ?>"></button>
|
|
</div>
|
|
<div class="modal-body p-3" id="akeebabackup-manage-iframe-modal-content"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="alert alert-info">
|
|
<h3><?= Text::_('COM_AKEEBABACKUP_BUADMIN_LABEL_HOWDOIRESTORE_LEGEND') ?></h3>
|
|
<p>
|
|
<?= Text::sprintf('COM_AKEEBABACKUP_BUADMIN_LABEL_HOWDOIRESTORE_TEXT_' . (AKEEBABACKUP_PRO ? 'PRO' : 'CORE'), 'http://akee.ba/abrestoreanywhere', 'index.php?option=com_akeebabackup&view=Transfer', 'https://www.akeeba.com/latest-kickstart-core.zip') ?>
|
|
</p>
|
|
<?php if (!AKEEBABACKUP_PRO): ?>
|
|
<p>
|
|
<?= Text::sprintf('COM_AKEEBABACKUP_BUADMIN_LABEL_HOWDOIRESTORE_TEXT_CORE_INFO_ABOUT_PRO', 'https://www.akeeba.com/products/akeeba-backup.html') ?>
|
|
</p>
|
|
<?php endif ?>
|
|
</div>
|
|
|
|
|
|
<form action="<?= Route::_('index.php?option=com_akeebabackup&view=Manage'); ?>"
|
|
method="post" name="adminForm" id="adminForm">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div id="j-main-container" class="j-main-container">
|
|
<?= LayoutHelper::render('joomla.searchtools.default', ['view' => $this]) ?>
|
|
<?php if (empty($this->items)) : ?>
|
|
<div class="alert alert-info">
|
|
<span class="icon-info-circle" aria-hidden="true"></span><span
|
|
class="visually-hidden"><?= Text::_('INFO'); ?></span>
|
|
<?= Text::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
|
|
</div>
|
|
<?php else : ?>
|
|
<table class="table" id="articleList">
|
|
<caption class="visually-hidden">
|
|
<?= Text::_('COM_AKEEBABACKUP_BUADMIN_TABLE_CAPTION'); ?>, <span
|
|
id="orderedBy"><?= Text::_('JGLOBAL_SORTED_BY'); ?> </span>, <span
|
|
id="filteredBy"><?= Text::_('JGLOBAL_FILTERED_BY'); ?></span>
|
|
</caption>
|
|
<thead>
|
|
<tr>
|
|
<td class="w-1 text-center">
|
|
<?= HTMLHelper::_('grid.checkall'); ?>
|
|
</td>
|
|
<th scope="col" class="text-center d-none d-md-table-cell" style="max-width: 48px;">
|
|
<?= Text::_('COM_AKEEBABACKUP_BUADMIN_LABEL_ID') ?>
|
|
</th>
|
|
<th scope="col" class="text-center" style="max-width: 40px">
|
|
<?= Text::_('COM_AKEEBABACKUP_BUADMIN_LABEL_FROZEN') ?>
|
|
</th>
|
|
<th scope="col" class="text-center">
|
|
<?= Text::_('COM_AKEEBABACKUP_BUADMIN_LABEL_DESCRIPTION') ?>
|
|
</th>
|
|
<th scope="col" class="text-center d-none d-md-table-cell">
|
|
<?= Text::_('COM_AKEEBABACKUP_BUADMIN_LABEL_PROFILEID') ?>
|
|
</th>
|
|
<th scope="col" class="text-center" style="max-width: 40px;">
|
|
<?= Text::_('COM_AKEEBABACKUP_BUADMIN_LABEL_STATUS') ?>
|
|
</th>
|
|
<th scope="col" class="text-center d-none d-sm-table-cell">
|
|
<?= Text::_('COM_AKEEBABACKUP_BUADMIN_LABEL_MANAGEANDDL') ?>
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php foreach ($this->items as $i => $record) : ?>
|
|
<?php
|
|
[$originDescription, $originIcon] = $this->getOriginInformation($record);
|
|
[$startTime, $duration, $timeZoneText] = $this->getTimeInformation($record);
|
|
[$statusClass, $statusIcon] = $this->getStatusInformation($record);
|
|
$profileName = $this->getProfileName($record);
|
|
$comment = $this->escapeComment($record['comment']);
|
|
|
|
$frozenIcon = 'akion-waterdrop';
|
|
$frozenTask = 'freeze';
|
|
$frozenTitle = \JText::_('COM_AKEEBABACKUP_BUADMIN_LABEL_ACTION_FREEZE');
|
|
|
|
if ($record['frozen'])
|
|
{
|
|
$frozenIcon = 'akion-ios-snowy';
|
|
$frozenTask = 'unfreeze';
|
|
$frozenTitle = \JText::_('COM_AKEEBABACKUP_BUADMIN_LABEL_ACTION_UNFREEZE');
|
|
}
|
|
?>
|
|
<tr class="row<?= $i % 2; ?>">
|
|
<?php // Checkbox ?>
|
|
<td class="text-center">
|
|
<?= HTMLHelper::_('grid.id', $i, $record['id'], false, 'cid', 'cb', $record['id']); ?>
|
|
</td>
|
|
<?php // Backup ID ?>
|
|
<td class="d-none d-md-table-cell">
|
|
<?= $record['id'] ?>
|
|
</td>
|
|
<?php // Frozen ?>
|
|
<td>
|
|
<?php // $frozenIcon ?>
|
|
<?= HTMLHelper::_('jgrid.state', $this->getFrozenStates(), $record['frozen'], $i, array('prefix' => 'Manage.', 'translate' => true), true, true, 'cb'); ?>
|
|
</td>
|
|
<?php // Description, backup date, duration and size ?>
|
|
<td>
|
|
<span class="<?= $originIcon ?> akeebaCommentPopover" rel="popover"
|
|
title="<?= Text::_('COM_AKEEBABACKUP_BUADMIN_LABEL_ORIGIN') ?>"
|
|
data-bs-content="<?= $originDescription ?>"></span>
|
|
<?php if (!(empty($comment))): ?>
|
|
<span class="fa fa-info-circle akeebaCommentPopover" rel="popover"
|
|
title="<?= Text::_('COM_AKEEBABACKUP_BUADMIN_LABEL_COMMENT') ?>"
|
|
data-bs-content="<?= $comment ?>"></span>
|
|
<?php endif ?>
|
|
<a href="<?= Uri::base() ?>index.php?option=com_akeebabackup&view=statistic&layout=edit&id=<?= $record['id'] ?>">
|
|
<?= empty($record['description'])
|
|
? Text::_('COM_AKEEBABACKUP_BUADMIN_LABEL_NODESCRIPTION')
|
|
: $this->escape($record['description']) ?>
|
|
</a>
|
|
<div class="row">
|
|
<span class="col-lg akeeba-buadmin-startdate">
|
|
<span class="fa fa-calendar akeebaTooltip"
|
|
title="<?= Text::_('COM_AKEEBABACKUP_BUADMIN_LABEL_START') ?>"
|
|
></span>
|
|
<?= $startTime ?> <?= $timeZoneText ?>
|
|
</span>
|
|
|
|
<span class="col-lg akeeba-buadmin-duration">
|
|
<span class="fa fa-stopwatch akeebaTooltip"
|
|
title="<?= Text::_('COM_AKEEBABACKUP_BUADMIN_LABEL_DURATION') ?>"
|
|
></span>
|
|
<?= $duration ?: '—' ?>
|
|
</span>
|
|
|
|
<span class="col-lg akeeba-buadmin-size">
|
|
<span class="fa fa-weight-hanging akeebaTooltip"
|
|
title="<?= Text::_('COM_AKEEBABACKUP_BUADMIN_LABEL_SIZE') ?>"
|
|
></span>
|
|
<?php if ($record['meta'] == 'ok'): ?>
|
|
<?= $this->formatFilesize($record['size']) ?>
|
|
<?php elseif ($record['total_size'] > 0): ?>
|
|
<i><?= $this->formatFilesize($record['total_size']) ?></i>
|
|
<?php else: ?>
|
|
—
|
|
<?php endif ?>
|
|
</span>
|
|
</div>
|
|
<div class="row d-block d-md-none">
|
|
<div class="col-md">
|
|
<span class="fa fa-users"></span>
|
|
#<?= (int) $record['profile_id'] ?>.
|
|
<?= $profileName == '—' ? $profileName : $this->escape($profileName) ?>
|
|
</div>
|
|
<div class="col-md">
|
|
<span class="fa fa-align-justify"></span>
|
|
<span class="fs-6 fst-italic">
|
|
<?= $this->translateBackupType($record['type']) ?>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</td>
|
|
<?php // Backup profile ?>
|
|
<td class="d-none d-md-table-cell">
|
|
<div>
|
|
#<?= (int) $record['profile_id'] ?>.
|
|
<?= $profileName == '—' ? $profileName : $this->escape($profileName) ?>
|
|
</div>
|
|
<div>
|
|
<span class="fs-6 fst-italic">
|
|
<?= $this->translateBackupType($record['type']) ?>
|
|
</span>
|
|
</div>
|
|
</td>
|
|
<?php // Status ?>
|
|
<td>
|
|
<span class="badge fs-3 rounded-pill w-100 <?= $statusClass ?> akeebaTooltip"
|
|
rel="popover"
|
|
title="<?= Text::_('COM_AKEEBABACKUP_BUADMIN_LABEL_STATUS_' . $record['meta']) ?>"
|
|
>
|
|
<span class="<?= $statusIcon ?>"></span>
|
|
</span>
|
|
</td>
|
|
<?php // Manage & Download ?>
|
|
<td class="d-none d-sm-table-cell">
|
|
<?= $this->loadAnyTemplate('manage_column', false, ['record' => &$record]); ?>
|
|
</td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
</tbody>
|
|
</table>
|
|
|
|
<?php // Load the pagination. ?>
|
|
<?= $this->pagination->getListFooter(); ?>
|
|
<?php endif; ?>
|
|
|
|
<input type="hidden" name="task" value=""> <input type="hidden" name="boxchecked" value="0">
|
|
<?= HTMLHelper::_('form.token'); ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|