- Architecture MVC avec framework maison d6 - Modules : devis, clients, marchés, SAP - Documentation initiale (README et TODO) - Configuration Composer avec dépendances 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
163 lines
6.1 KiB
JavaScript
163 lines
6.1 KiB
JavaScript
// jinterface.js
|
|
|
|
window.addEventListener('DOMContentLoaded', (event) => {
|
|
console.log('#');
|
|
|
|
let elBtnAddInfo = document.getElementById("btnAddInfo");
|
|
let elBtnModInfo = document.getElementsByClassName("btnModInfo");
|
|
let elBtnSuppInfo = document.getElementsByClassName("btnSuppInfo");
|
|
|
|
let elBtnCancelModInfo = document.getElementById("btnCancelModInfo");
|
|
let elBtnSaveModInfo = document.getElementById("btnSaveModInfo");
|
|
|
|
|
|
let clickAddInfo = function () {
|
|
document.getElementById("frmInfo").reset();
|
|
document.getElementById("inpInfoRowid").value = 0;
|
|
// On renseigne la date du jour par défaut dans la zone inpInfoDate
|
|
document.getElementById("inpInfoDate").value = new Date().toISOString().slice(0, 10);
|
|
|
|
|
|
document.getElementById("modInfosTitre").innerHTML = '<i class="fa fa-file-text"></i> Ajouter une information marchés';
|
|
showModal(document.getElementById("modalEditInfos"));
|
|
document.getElementById("inpInfoDate").focus();
|
|
}
|
|
|
|
let clickModInfo = function () {
|
|
|
|
// On récupère les données de la ligne
|
|
const infoId = this.getAttribute("data-rowid");
|
|
showLoading();
|
|
fetch('/jxpost/load_info',
|
|
{
|
|
method: 'POST',
|
|
body: JSON.stringify({cid: infoId}),
|
|
headers: {
|
|
'Content-Type': 'application/json;charset=utf-8',
|
|
'Accept': 'application/json;charset=utf-8',
|
|
}
|
|
})
|
|
.then((response) => {
|
|
if (!response.ok) {
|
|
showNotification("Erreur", "Le chargement des données de cette info n'a pas abouti", "error");
|
|
} else {
|
|
const ret = response.json();
|
|
ret.then(function (data) {
|
|
document.getElementById("frmInfo").reset();
|
|
document.getElementById("inpInfoRowid").value = infoId;
|
|
document.getElementById("inpInfoDate").value = data[0].date_infos;
|
|
document.getElementById("inpInfoTitre").value = data[0].titre_infos;
|
|
document.getElementById("inpInfoText").value = data[0].text_infos;
|
|
if (data[0].chk_publie == "1") {
|
|
document.getElementById('inpInfoChkPublie').checked = true;
|
|
} else {
|
|
document.getElementById('inpInfoChkPublie').checked = false;
|
|
}
|
|
document.getElementById("modInfosTitre").innerHTML = '<i class="fa fa-file-text"></i> Modifier cette information marchés';
|
|
showModal(document.getElementById("modalEditInfos"));
|
|
document.getElementById("inpInfoDate").focus();
|
|
});
|
|
}
|
|
});
|
|
hideLoading();
|
|
return false;
|
|
}
|
|
|
|
let clickSuppInfo = function () {
|
|
if (confirm("Voulez-vous supprimer cette information ?")) {
|
|
const infoId = this.getAttribute("data-rowid");
|
|
showLoading();
|
|
fetch('/jxpost/supp_info',
|
|
{
|
|
method: 'POST',
|
|
body: JSON.stringify({cid: infoId}),
|
|
headers: {
|
|
'Content-Type': 'application/json;charset=utf-8',
|
|
'Accept': 'application/json;charset=utf-8',
|
|
}
|
|
})
|
|
.then((response) => {
|
|
if (!response.ok) {
|
|
showNotification("Erreur", "La suppression de cette info n'a pas abouti", "error");
|
|
} else {
|
|
const ret = response.json();
|
|
ret.then(function (data) {
|
|
showNotification("Information", "Cette info a été supprimée", "success");
|
|
// On recharge la page en cours
|
|
setTimeout(function () {
|
|
location.reload();
|
|
}, 2000); // 2000 millisecondes = 2 secondes
|
|
});
|
|
}
|
|
});
|
|
hideLoading();
|
|
return false;
|
|
}
|
|
}
|
|
|
|
let clickCancelModInfo = function () {
|
|
hideModal(document.getElementById("modalEditInfos"));
|
|
}
|
|
|
|
let clickSaveModInfo = function () {
|
|
// Contrôle des données saisies avant enregistrement
|
|
if (document.getElementById("inpInfoDate").value == "") {
|
|
showNotification("Erreur", "La date est obligatoire", "error");
|
|
document.getElementById("inpInfoDate").focus();
|
|
return false;
|
|
}
|
|
if (document.getElementById("inpInfoTitre").value == "") {
|
|
showNotification("Erreur", "Le titre est obligatoire", "error");
|
|
document.getElementById("inpInfoTitre").focus();
|
|
return false;
|
|
}
|
|
if (document.getElementById("inpInfoText").value == "") {
|
|
showNotification("Erreur", "Le texte est obligatoire", "error");
|
|
document.getElementById("inpInfoText").focus();
|
|
return false;
|
|
}
|
|
|
|
// On récupère les données du formulaire
|
|
const infoId = document.getElementById("inpInfoRowid").value;
|
|
const infoDate = document.getElementById("inpInfoDate").value;
|
|
const infoTitre = document.getElementById("inpInfoTitre").value;
|
|
const infoTexte = document.getElementById("inpInfoText").value;
|
|
const infoChkPublie = document.getElementById("inpInfoChkPublie").checked;
|
|
showLoading();
|
|
fetch('/jxpost/save_info',
|
|
{
|
|
method: 'POST',
|
|
body: JSON.stringify({cid: infoId, cdate: infoDate, ctitre: infoTitre, ctexte: infoTexte, cpublie: infoChkPublie}),
|
|
headers: {
|
|
'Content-Type': 'application/json;charset=utf-8',
|
|
'Accept': 'application/json;charset=utf-8',
|
|
}
|
|
}).then((response) => {
|
|
if (!response.ok) {
|
|
showNotification("Erreur", "L'enregistrement de cette info n'a pas abouti", "error");
|
|
} else {
|
|
const ret = response.json();
|
|
ret.then(function (data) {
|
|
showNotification("Succès", "Enregistrement de cette info effectué", "success");
|
|
// On recharge la page en cours
|
|
setTimeout(function () {
|
|
location.reload();
|
|
}, 2000); // 2000 millisecondes = 2 secondes
|
|
});
|
|
}
|
|
});
|
|
hideLoading();
|
|
hideModal(document.getElementById("modalEditInfos"));
|
|
return false;
|
|
}
|
|
|
|
elBtnAddInfo.addEventListener('click', clickAddInfo);
|
|
Array.from(elBtnModInfo).forEach(function (element) {
|
|
element.addEventListener('click', clickModInfo);
|
|
});
|
|
Array.from(elBtnSuppInfo).forEach(function (element) {
|
|
element.addEventListener('click', clickSuppInfo);
|
|
});
|
|
elBtnCancelModInfo.addEventListener('click', clickCancelModInfo);
|
|
elBtnSaveModInfo.addEventListener('click', clickSaveModInfo);
|
|
}); |