Files
MYSOPHAL/front/picklist.add.php
2025-08-07 13:15:31 +01:00

186 lines
5.5 KiB
PHP

<?php
use Glpi\Event;
include('../inc/includes.php');
Session::checkLoginUser();
if (!in_array($_SESSION['glpiactiveprofile']['name'], ['Super-Admin', 'Admin'])) {
Html::redirect($CFG_GLPI["root_doc"] . "/front/central.php");
exit;
}
if (Session::getCurrentInterface() == "helpdesk") {
Html::helpHeader("Fonction et Structure", '', $_SESSION["glpiname"]);
} else {
Html::header("Fonction et Structure", '', "", "");
}
$root = $CFG_GLPI["root_doc"];
$user = Session::getCurrentInterface();
?>
<style>
.form-container {
max-width: 600px;
margin: 30px auto;
padding: 20px;
border: 1px solid #dcdcdc;
border-radius: 10px;
background-color: #f9f9f9;
}
.form-container h2 {
text-align: center;
margin-bottom: 20px;
color: #333;
}
.form-group {
margin-bottom: 15px;
}
.form-group label {
display: block;
margin-bottom: 8px;
font-weight: bold;
}
.form-group select,
.form-group input {
width: 100%;
padding: 8px;
border-radius: 5px;
border: 1px solid #ccc;
}
.form-actions {
text-align: center;
margin-top: 25px;
}
.form-actions .vsubmit {
padding: 10px 20px;
font-size: 14px;
margin-right: 10px;
border-radius: 5px;
cursor: pointer;
}
.form-actions .cancel {
background-color: #eba696;
color: #000;
text-decoration: none;
}
.error-message {
margin-top: 20px;
padding: 12px;
background-color: #f8d7da;
color: #721c24;
border: 1px solid #f5c6cb;
border-radius: 5px;
text-align: center;
display: none;
}
</style>
<div class='form-container'>
<h2>Ajouter un élément à la Fonction et Structure</h2>
<form id='form' name='form' method='post' action='<?php echo $root; ?>/ajax/picklist.php?action=add' enctype='multipart/form-data'>
<div class='form-group'>
<label for='type'>Type <span style='color:red'>*</span></label>
<select id='type' name='type' class='js-example-basic-single' required>
<option value='' disabled selected>-- Sélectionnez un type --</option>
<option value='fonction'>Fonction</option>
<option value='structure'>Structure</option>
</select>
</div>
<div class='form-group'>
<label for='value'>Valeur <span style='color:red'>*</span></label>
<input type='text' id='value' name='value' required>
</div>
<div class='form-actions'>
<button name='save' class='vsubmit'>Enregistrer</button>
<a href='<?php echo $root; ?>/front/picklist.list.php' class='vsubmit cancel'>Annuler</a>
</div>
<div class="error-message" id="error-container"></div>
</form>
</div>
<?php
if ($user == "helpdesk") {
Html::helpFooter();
} else {
Html::footer();
}
?>
<script>
var root = <?php echo json_encode($root); ?>;
var user = <?php echo json_encode($user); ?>;
$("button[name='save']").click(function(event) {
event.preventDefault();
if ($("#form")[0].checkValidity()) {
$("button[name='save']").attr("disabled", "disabled");
$.ajax({
type: "POST",
url: root + "/ajax/picklist.php?action=add",
data: $('#form').serialize()
})
.done(function(response) {
try {
var res = JSON.parse(response);
if (res.status === "success") {
window.location = root + "/front/picklist.list.php";
} else {
showErrorMessage(res.message || "Une erreur s'est produite lors de l'ajout.");
$("button[name='save']").removeAttr("disabled");
}
} catch (e) {
console.error("Erreur JSON :", e);
showErrorMessage("Réponse invalide du serveur.");
$("button[name='save']").removeAttr("disabled");
}
})
.fail(function(xhr, status, error) {
console.error("Erreur AJAX :", status, error);
showErrorMessage("Erreur réseau : " + error);
$("button[name='save']").removeAttr("disabled");
});
}
});
function showErrorMessage(message) {
$("#error-container").text(message).fadeIn();
setTimeout(function () {
$("#error-container").fadeOut();
}, 4000);
}
$(document).ready(function () {
$('.js-example-basic-single').select2();
// Menu breadcrumb dynamic setup
var userlink = user === "helpdesk"
? '<li class="breadcrumb_item"><a href="' + root + '/front/helpdesk.public.php" title="Accueil">Accueil</a></li>'
: '<li class="breadcrumb_item"><a href="' + root + '/front/central.php" title="Accueil">Accueil</a></li>';
$("#c_ssmenu2").html('<ul>' +
userlink +
'<li class="breadcrumb_item"><a href="#" title="">Administration</a></li>' +
'<li class="breadcrumb_item"><a href="' + root + '/front/picklist.list.php" class="here" title="Fonction et Structure">' +
'<i class="far fa-sticky-note"></i>&nbsp;Fonction et Structure</a></li>' +
'<span class="sr-only">Ajouter</span>' +
'</ul>');
});
</script>