Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions admin/setup.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@
require_once DOL_DOCUMENT_ROOT."/filefunc.inc.php";
require_once '../lib/maintenanceatm.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
//require_once "../class/myclass.class.php";
require_once dirname(__DIR__) . '/lib/maintenanceatm.lib.php';
require_once dirname(__DIR__) . '/class/toolsMaintenance.class.php';

// Translations
$langs->loadLangs(array("admin", "maintenanceatm@maintenanceatm"));
Expand Down Expand Up @@ -95,8 +96,7 @@


// Enter here all parameters in your setup page
//
//// Setup conf for selection of an URL
// Setup conf for selection of an URL
$item = $formSetup->newItem('MAINTENANCEATM_REDIRECT_NEW_URL');
$item->cssClass = 'minwidth500';
//
Expand Down
128 changes: 128 additions & 0 deletions admin/setup_scripts.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
<?php
/**
* \file maintenanceatm/admin/setup_scripts.php
* \ingroup maintenanceatm
* \brief Page de configuration des scripts de mise à jour
*/

// --- 1. CHARGEMENT ENVIRONNEMENT DOLIBARR ---
// Load Dolibarr environment
$res = 0;
// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) {
$res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
}
// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1;
while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) {
$i--;
$j--;
}
if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) {
$res = @include substr($tmp, 0, ($i + 1))."/main.inc.php";
}
if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) {
$res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php";
}
// Try main.inc.php using relative path
if (!$res && file_exists("../../main.inc.php")) {
$res = @include "../../main.inc.php";
}
if (!$res && file_exists("../../../main.inc.php")) {
$res = @include "../../../main.inc.php";
}
if (!$res) {
die("Include of main fails");
}

global $langs, $user, $db, $conf;

// --- 2. LIBRAIRIES & DROITS ---
require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
require_once '../lib/maintenanceatm.lib.php';
require_once dirname(__DIR__) . '/class/toolsMaintenance.class.php';

$langs->loadLangs(array("admin", "maintenanceatm@maintenanceatm"));

if (!$user->admin) accessforbidden();

// --- 3. PARAMETRES & INITIALISATION ---
$action = GETPOST('action', 'aZ09');
$base_dir = GETPOST('base_dir', 'restricthtml');
$url_base = GETPOST('url_base', 'restricthtml');
$new_api_key = GETPOST('api_key', 'alpha');
$api_auth_user = GETPOST('api_auth_user', 'alpha');
$new_api_auth_key = GETPOST('api_auth_key', 'alpha');
$modules_to_reactivate = GETPOST('modules', 'array');
$selected_modules = GETPOST('modules', 'array');
$run_mode = GETPOST('run_mode', 'alpha');
$no_reset = GETPOST('no_reset', 'int');
$no_activation = GETPOST('no_activation', 'int');
$output = '';
$executed_commands = array();
$command_to_display = '';
$currentInstancePath = realpath(dirname(DOL_DOCUMENT_ROOT));

// --- TRAITEMENT DES ACTIONS (LOGIQUE) ---

// A. Sauvegarde Config (API Key, Base Dir)
if ($action == 'save_config') {
ToolMaintenance::saveConfigScriptCheckout($base_dir, $url_base, $api_auth_user, $new_api_key, $new_api_auth_key);
}

// B. Exécution Réactivation
if ($action == 'run_reactivation') {
$scriptPath = realpath(dirname(__DIR__).'/script/updatemodule/update_modules.sh');
$instanceName = basename(dirname(DOL_DOCUMENT_ROOT));
$result = ToolMaintenance::runReactivationScriptCheckout($scriptPath, $instanceName, $modules_to_reactivate);
$output = $result['output'];
$executed_commands = $result['executed_commands'];
}

// C. Génération Commande Git
if ($action == 'generate_command') {
$scriptPath = realpath(dirname(__DIR__).'/script/updatemodule/update_modules.sh');
$instanceName = basename(dirname(DOL_DOCUMENT_ROOT));
$command_to_display = ToolMaintenance::generateCommandScriptCheckout($scriptPath, $instanceName, $selected_modules, $run_mode, $no_reset, $no_activation);
}

$config_values = ToolMaintenance::returnConfigValueScriptCheckout();
$isConfigForCurrentInstance = ToolMaintenance::returnConfigForCurrentInstanceScriptCheckout($config_values['base_dir'], $currentInstancePath);
$module_list = ToolMaintenance::returnModuleListScriptCheckout();

// --- AFFICHAGE VUE ---
llxHeader('', $langs->trans("SetupPageTitleCard"), '', '', 0, 0, array(), '', '', 'mod-maintenanceatm page-admin');

// Header avec onglets
$head = maintenanceatmAdminPrepareHead();
// 'scripts' correspond à l'ID défini dans maintenanceatmAdminPrepareHead pour cet onglet
print dol_get_fiche_head($head, 'scripts', $langs->trans("SetupPageTitleCard"), -1, "maintenanceatm@maintenanceatm");

print '<span class="opacitymedium">'.$langs->trans("ScriptParametersTitle").'</span><br><br>';

// Formulaire de configuration
ToolMaintenance::printFormFileConf($config_values);

// Outils (si config OK)
if ($isConfigForCurrentInstance) {
print '<br>';
print load_fiche_titre($langs->trans("ReactivationToolTitle"), '', 'title_setup');
print '<p>'.$langs->trans("ReactivationToolDesc").' '.$langs->trans("ReactivationPrereq").'</p>';
ToolMaintenance::printReactivationTool($module_list);

print '<br>';
print load_fiche_titre($langs->trans("GitGeneratorTitle"), '', 'title_setup');
print '<p>'.$langs->trans("GitGeneratorDesc").'</p>';
ToolMaintenance::printCommandGenerator($module_list);
} else {
print '<br>';
$errorMsg = ToolMaintenance::buildConfigMismatchWarning($currentInstancePath, $config_values);
print '<div class="warning">'.$errorMsg.'</div>';
}

// Résultats
ToolMaintenance::printResults($output, $executed_commands, $command_to_display);

print dol_get_fiche_end();
llxFooter();
$db->close();
Loading