Delete Module WIP

This commit is contained in:
fredtempez 2022-02-03 10:58:16 +01:00
parent 3e202102ea
commit ac7d71e349
2 changed files with 41 additions and 7 deletions

View File

@ -475,15 +475,15 @@ class plugin extends common {
$infoModules[$pagesInfos [$keyi18n][$keyPage]['moduleId']] ['version'], $infoModules[$pagesInfos [$keyi18n][$keyPage]['moduleId']] ['version'],
//template::flag($keyi18n, '20px'), //template::flag($keyi18n, '20px'),
'<a href ="' . helper::baseUrl() . $keyPage . '" target="_blank">' . $pagesInfos [$keyi18n][$keyPage]['title'] . ' (' .$keyPage . ')</a>', '<a href ="' . helper::baseUrl() . $keyPage . '" target="_blank">' . $pagesInfos [$keyi18n][$keyPage]['title'] . ' (' .$keyPage . ')</a>',
template::button('moduleExport' . $keyPage, [ template::button('dataExport' . $keyPage, [
'href' => helper::baseUrl(). $this->getUrl(0) . '/dataExport/' . $keyi18n . '/' . $pagesInfos[$keyi18n][$keyPage]['moduleId'] . '/' . $keyPage . '/' . $_SESSION['csrf'],// appel de fonction vaut exécution, utiliser un paramètre 'href' => helper::baseUrl(). $this->getUrl(0) . '/dataExport/' . $keyi18n . '/' . $pagesInfos[$keyi18n][$keyPage]['moduleId'] . '/' . $keyPage . '/' . $_SESSION['csrf'],// appel de fonction vaut exécution, utiliser un paramètre
'value' => template::ico('download'), 'value' => template::ico('download'),
'help' => 'Exporter les données du module' 'help' => 'Exporter les données du module'
]), ]),
template::button('moduleDelete' . $keyPage, [ template::button('dataDelete' . $keyPage, [
'href' => helper::baseUrl(). $this->getUrl(0) . '/dataDelete/' . $keyi18n . '/' . $pagesInfos[$keyi18n][$keyPage]['moduleId'] . '/' . $keyPage . '/' . $_SESSION['csrf'],// appel de fonction vaut exécution, utiliser un paramètre 'href' => helper::baseUrl(). $this->getUrl(0) . '/dataDelete/' . $keyi18n . '/' . $pagesInfos[$keyi18n][$keyPage]['moduleId'] . '/' . $keyPage . '/' . $_SESSION['csrf'],// appel de fonction vaut exécution, utiliser un paramètre
'value' => template::ico('cancel'), 'value' => template::ico('cancel'),
'class' => 'buttonRed', 'class' => 'buttonRed dataDelete',
'help' => 'Détacher le module de la page', 'help' => 'Détacher le module de la page',
]) ])
@ -559,8 +559,31 @@ class plugin extends common {
/* /*
* Détacher un module d'une page en supprimant les données du module * Détacher un module d'une page en supprimant les données du module
* 2 : i18n id
* 3 : moduleId
* 4 : pageId
* 5 : CSRF
*/ */
public function dataDelete() { public function dataDelete() {
// Jeton incorrect
if ($this->getUrl(5) !== $_SESSION['csrf']) {
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . 'plugin',
'state' => false,
'notification' => 'Action non autorisée'
]);
} else {
$this->setData(['page', $this->getUrl(4), 'moduleId', '']);
$this->deleteData(['module', $this->getUrl(4)]);
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . 'plugin',
'notification' => 'Le module ' . $this->getUrl(3) . ' de la page '. $this->getUrl(4) . ' a été supprimé.',
'state' => true
]);
}
} }
@ -646,8 +669,6 @@ class plugin extends common {
$zipFilename = $this->getInput('pluginImportFile', helper::FILTER_STRING_SHORT, true); $zipFilename = $this->getInput('pluginImportFile', helper::FILTER_STRING_SHORT, true);
$targetPage = $this->getInput('pluginImportPage', helper::FILTER_STRING_SHORT, true); $targetPage = $this->getInput('pluginImportPage', helper::FILTER_STRING_SHORT, true);
$tempFolder = uniqid(); $tempFolder = uniqid();
$success = false;
$notification = '';
// Extraction dans un dossier temporaire // Extraction dans un dossier temporaire
mkdir (self::TEMP_DIR . $tempFolder, 0755); mkdir (self::TEMP_DIR . $tempFolder, 0755);
@ -669,11 +690,14 @@ class plugin extends common {
// Supprimer le dossier temporaire // Supprimer le dossier temporaire
$this->removeDir(self::TEMP_DIR . $tempFolder); $this->removeDir(self::TEMP_DIR . $tempFolder);
$zip->close(); $zip->close();
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl() . 'plugin', 'redirect' => helper::baseUrl() . 'plugin',
'state' => $success, 'state' => true,
'notification' => $notification 'notification' => 'Import des données effectué'
]); ]);
} }
// Bouton d'importation des données d'un module spécifique // Bouton d'importation des données d'un module spécifique

View File

@ -15,6 +15,16 @@
* Confirmation de suppression * Confirmation de suppression
*/ */
$(".moduleDelete").on("click", function() { $(".moduleDelete").on("click", function() {
var _this = $(this);
return core.confirm("Êtes-vous sûr de vouloir désinstaller ce module ?", function() {
$(location).attr("href", _this.attr("href"));
});
});
/**
* Confirmation de suppression
*/
$(".dataDelete").on("click", function() {
var _this = $(this); var _this = $(this);
return core.confirm("Êtes-vous sûr de vouloir supprimer ce module ?", function() { return core.confirm("Êtes-vous sûr de vouloir supprimer ce module ?", function() {
$(location).attr("href", _this.attr("href")); $(location).attr("href", _this.attr("href"));