2026-05-20 09:20:27 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
use GlpiPlugin\Urbackup\Profile;
|
|
|
|
|
use GlpiPlugin\Urbackup\Server;
|
2026-05-20 11:46:28 +02:00
|
|
|
use GlpiPlugin\Urbackup\ServerAsset;
|
2026-05-20 09:20:27 +02:00
|
|
|
|
|
|
|
|
if (!defined('GLPI_ROOT')) {
|
|
|
|
|
define('GLPI_ROOT', dirname(__DIR__, 4));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
include_once GLPI_ROOT . "/inc/includes.php";
|
|
|
|
|
|
|
|
|
|
if (!Profile::canCurrentUser(UPDATE)) {
|
|
|
|
|
Html::displayRightError();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$server = new Server();
|
|
|
|
|
|
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
2026-05-20 11:46:28 +02:00
|
|
|
if (isset($_POST['link_asset'])) {
|
|
|
|
|
$itemtype = (string) ($_POST['itemtype'] ?? '');
|
|
|
|
|
$items_id = (int) ($_POST['items_id'] ?? 0);
|
|
|
|
|
$server_id = (int) ($_POST['id'] ?? 0);
|
|
|
|
|
|
|
|
|
|
if ($itemtype !== '' && $items_id > 0 && $server_id > 0) {
|
|
|
|
|
ServerAsset::connectAssetToServer($itemtype, $items_id, $server_id);
|
|
|
|
|
}
|
|
|
|
|
|
2026-05-20 12:00:39 +02:00
|
|
|
Html::redirect(PLUGIN_URBACKUP_WEB_DIR . '/front/server.form.php?id=' . $server_id);
|
2026-05-20 11:46:28 +02:00
|
|
|
}
|
|
|
|
|
|
2026-05-20 09:20:27 +02:00
|
|
|
$id = $_POST['id'] ?? 0;
|
|
|
|
|
|
|
|
|
|
if ($id > 0) {
|
|
|
|
|
$server->check($id, UPDATE);
|
|
|
|
|
$server->update($_POST);
|
|
|
|
|
} else {
|
|
|
|
|
$server->check(-1, CREATE);
|
|
|
|
|
$server->add($_POST);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Html::redirect(PLUGIN_URBACKUP_WEB_DIR . "/front/server.php");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$ID = $_GET['id'] ?? null;
|
|
|
|
|
|
|
|
|
|
Html::header(
|
|
|
|
|
$ID ? __('Edit UrBackup server', 'urbackup') : __('Add UrBackup server', 'urbackup'),
|
|
|
|
|
'',
|
|
|
|
|
'Assets',
|
|
|
|
|
'GlpiPlugin\Urbackup\Server'
|
|
|
|
|
);
|
|
|
|
|
|
2026-05-20 14:08:23 +02:00
|
|
|
if ($ID > 0) {
|
|
|
|
|
$server->getFromDB($ID);
|
|
|
|
|
?>
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-2">
|
|
|
|
|
<ul class="nav nav-pills flex-column">
|
|
|
|
|
<li class="nav-item">
|
|
|
|
|
<a class="nav-link active" data-bs-toggle="tab" href="#tab-server">
|
|
|
|
|
<?php echo htmlspecialchars(__('Server')); ?>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li class="nav-item">
|
|
|
|
|
<a class="nav-link" data-bs-toggle="tab" href="#tab-linked">
|
|
|
|
|
<?php echo htmlspecialchars(__('Linked clients', 'urbackup')); ?>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li class="nav-item">
|
|
|
|
|
<a class="nav-link" data-bs-toggle="tab" href="#tab-unlinked">
|
|
|
|
|
<?php echo htmlspecialchars(__('Unlinked clients', 'urbackup')); ?>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
<li class="nav-item">
|
|
|
|
|
<a class="nav-link" data-bs-toggle="tab" href="#tab-missing">
|
|
|
|
|
<?php echo htmlspecialchars(__('Missing clients', 'urbackup')); ?>
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-10">
|
|
|
|
|
<div class="tab-content">
|
|
|
|
|
<div class="tab-pane active" id="tab-server">
|
|
|
|
|
<?php $server->showForm($ID); ?>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="tab-pane" id="tab-linked">
|
|
|
|
|
<?php Server::showLinkedClientsTab($server); ?>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="tab-pane" id="tab-unlinked">
|
|
|
|
|
<?php Server::showUnlinkedClientsTab($server); ?>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="tab-pane" id="tab-missing">
|
|
|
|
|
<?php Server::showMissingClientsTab($server); ?>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<?php
|
|
|
|
|
} else {
|
|
|
|
|
$server->showForm($ID);
|
2026-05-20 09:20:27 +02:00
|
|
|
}
|
|
|
|
|
|
2026-05-20 14:08:23 +02:00
|
|
|
Html::footer();
|