//-------------------------------------------------------- // Chargement des modules //-------------------------------------------------------- $(function() { //Classe pour IE10 if($.browser.msie && $.browser.version == 8) $("html").addClass("ie10"); //Initialisation des DatePicker $(".DatePicker").datepicker({ showOn: "button", showAnim: "slideDown", buttonImageOnly: true, buttonImage: "ressources/images/datePicker.png", buttonText: "Choisir une date" }); //Initialisation des TimePicker $(".TimePicker").timepicker({ showOn: "button", showAnim: "slideDown", buttonImageOnly: true, buttonImage: "ressources/images/timePicker.png", buttonText: "Choisir une heure", stepMinute: 5 }); //Initialisation des Tabs $(".TabFrm").tabs(); //Initialisation des Buttons Set $(".ButtonSet").buttonset(); //Initialisation des Checkbox Iphone $(".ICheckBox").iphoneStyle(); //Initialisation des Autocomplete ZMails $(".ZMail").autocomplete({ source: "modules/fonctions/json/dataMails.php?action=getLesZMails", minLength: 1 }); //Initialisation des Autocomplete ZMails $(".ZRessource").autocomplete({ source: "modules/fonctions/json/dataMails.php?action=getLesZRessources", minLength: 1 }); //Initialisation des PlaceHolder Textarea $("input[type='text'], textarea").placeholder(); //Initialisation des champs obligatoires makeRequired(); }); //--------------------------------------------------- // Fonctions générales //--------------------------------------------------- //Vérifie si la chaine est une date function estUneDate(chaine) { var regex = /^(0[1-9]|[12][0-9]|3[01])[\/](0[1-9]|1[012])[\/](19|20)\d\d$/; return regex.test(chaine); } //Vérifie si la chaine est une heure function estUneHeure(chaine) { var regex = /^([0-9]|[[01][0-9]|[2][0-3])[:]([0-5][0-9])$/; return regex.test(chaine); } //Protège les caractères spéciaux function escapeString(chaine) { var chFinale = chaine .replace(/&/g, "&") .replace(/"/g, """) .replace(/'/g, "'") .replace(/\\/g, "\") .replace(//g, ">"); return chFinale; } //Récupère la valeur d'une variable passé dans l'url (method GET) function getVarUrl(nomVar) { //Variables nomVar = nomVar + "="; var tailleVar = nomVar.length; var result = false; var uri = location.href.substr(location.href.indexOf("?")+1) + "&"; //Récupère l'URI (...&nomVar=valeur&...&) //Permet de récupérer l'URI sans le hash (#... => invisible pour le moteur des recherches) if (uri.indexOf("#") != -1) uri = uri.substring(0, uri.indexOf("#")) + "&"; //Si la variable est envoyée dans l'URL if (uri.indexOf(nomVar) != -1) { tailleVar = uri.indexOf(nomVar) + tailleVar; //Taille jusqu'à nomVar= (...&nomVar=) result = uri.substr(tailleVar); //Récupère la suite de l'URI à partir de la valeur de nomVar (valeur&...&) result = result.substr(0, result.indexOf("&")); //Récupère la valeur de nomVar } return result; } //Charge la valeur pour l'input choisi function setInputValue(nom, valeur) { if($("[name=" + nom + "]").length) $("[name=" + nom + "]").val(valeur); } //Récupère la valeur de l'input choisi function getInputValue(nom) { return $("[name=" + nom + "]").val(); } //Affiche un div function afficheDIV(idDiv) { $("#" + idDiv).show(); } //Masque un div function masqueDIV(idDiv) { $("#" + idDiv).hide(); } //Affiche/Masque un div function afficheMasqueDIV(idDiv) { if($("#" + idDiv).css("display") != "block") $("#" + idDiv).show(); else $("#" + idDiv).hide(); //Pour la fiche if(idDiv == "frmUploadFile") $("#frmMotifCancel").hide(); if(idDiv == "frmMotifCancel") $("#frmUploadFile").hide(); } //Vide un tableau sans l'en-tête function videTableau(oTable) { $(oTable).find("tbody tr").remove(); } //Supprime une ligne d'un tableau function deleteLigneTr(oTD) { $(oTD).parent().parent().remove(); } //Copie et colle un champ function copieColle(chpACopier, chpOuColler) { $("[name='" + chpOuColler + "']").val($("[name='" + chpACopier + "']")[0].value); } //Inverse les cases cochés dans le checkbox function cocheOnOff(cocheCheckbox, nameCheckboxs) { $("input[name='" + nameCheckboxs + "']").each //Pour chaque checkbox du tableau ( function() { if(cocheCheckbox.checked) //Si le main checkbox est coché $(this).attr("checked", true); else //Sinon on décoche tout $(this).attr("checked", false); } ); } //Affiche un astérisque pour un champ obligatoire function makeRequired(idElement) { var idLabel = "label.required"; if(idElement) idLabel = "label[id='" + idElement + "']"; //Pour chaque label avec la classe 'required' $(idLabel).each ( function() { //Variables var endHtml = ""; var txtHtml = $(this).html(); var pos2pt = txtHtml.lastIndexOf(":"); //Traitement s'il y a : dans le label if(pos2pt != -1) { endHtml = txtHtml.substr(pos2pt); txtHtml = txtHtml.substr(0, pos2pt); } //Ajout de l'astérisque if($(this).has("font[color='red']").length != 0) $("label > font[color='red']").html("*"); else $(this).html(txtHtml + " * " + endHtml); } ); } //Enlève l'astérisque pour un champ obligatoire function unmakeRequired(idElement) { var idLabel = "label.required"; if(idElement) idLabel = "label[id='" + idElement + "']"; //Pour chaque label avec la classe 'required' $(idLabel).each ( function() { //Enlève l'astérisque $(this).find("font[color='red']").replaceWith(""); } ); } //Ouvre la vidéo de démonstration function openTutoriel() { //Variables var idDialog = "#demoVideo"; var fileDialog = "vues/popups/p_demoVideo.php?"; //Charge le contenu de la boîte de dialogue $(idDialog).load(fileDialog).dialog ({ modal: true, minWidth: 1064, position: ["auto", 10], close: function() { $(idDialog).dialog("destroy"); }, buttons: { "Revoir": function() { $(idDialog).load(fileDialog); }, "Fermer": function() { $(idDialog).dialog("close"); } } }); } //--------------------------------------------------- // Fonctions liées au formulaire //--------------------------------------------------- //******************************* //***** Form Initialisation ***** //******************************* //Initialisation du formulaire (bouton reset) function initForm() { //Récupération du cas d'utilisation var url = "index.php?"; var uc = getVarUrl("uc"); var action = getVarUrl("action"); var id = getVarUrl("id"); //Actualisation de la page if(uc) url += "uc=" + uc; if(action) url += "&action=" + action; if(id) url += "&id=" + id; $(location).attr("href", url); // document.location.href = url; } //**************************** //***** Form ModifCompte ***** //**************************** //Affiche/Masque la choix des alertes si le suivi est coché ou non function onChgSuivi(oChkVal) { //Affichage ou non if(oChkVal) $("#SaisieAlerteSuivi").show(); else { $("#SaisieAlerteSuivi").hide(); $("#AlerteSuivi").attr("checked", false); $("#AlerteSuivi").iphoneStyle("refresh"); } } //***************************** //***** Form ModifService ***** //***************************** //Affiche/Masque certains champs en fonction du niveau choisi function onChgNiveau(oChkVal) { //Désactivage ou non if(oChkVal == 1) //Pour direction { //Direction $("select[name='IdSrvParent']").attr("disabled", true); $("select[name='IdSrvParent']").val(0); $("#SaisieSrvParent").hide(); //SaisieSuivi $("#SaisieSuivi").show(); //SaisieAlerteSuivi $("#SaisieAlerteSuivi").show(); //Suivi $("#Suivi").attr("disabled", false); $("#Suivi").attr("checked", true); $("#Suivi").iphoneStyle("refresh"); //AlerteSuivi $("#AlerteSuivi").attr("checked", true); $("#AlerteSuivi").iphoneStyle("refresh"); } else //Pour service { //Direction $("select[name='IdSrvParent']").attr("disabled", false); $("#SaisieSrvParent").show(); //SaisieSuivi $("#SaisieSuivi").hide(); //SaisieAlerteSuivi $("#SaisieAlerteSuivi").hide(); //Suivi $("#Suivi").attr("checked", false); $("#Suivi").iphoneStyle("refresh"); $("#Suivi").attr("disabled", true); $("#Suivi").iphoneStyle("refresh"); } } //******************************* //***** Form ModifRessource ***** //******************************* //----- Afficher/Masquer Salle ----- //Charge les informations du service sélectionné function loadInfoService(idSrv) { //Valeur de la liste if(!idSrv) idSrv = getInputValue("IdService"); //S'il y a un service if(idSrv != 0) { //Envoie des données var xhr = newXMLHttpRequest(); xhr.open("POST", "modules/fonctions/xml/itemsServices.php", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send("action=getOne&IdSrv=" + idSrv); //Actualisation de la page xhr.onreadystatechange = function() { if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { unService = xhr.responseXML.getElementsByTagName("item")[0]; //alert(xhr.responseText); setInputValue("MailSrv", unService.getAttribute("mail")); setInputValue("Elus", unService.getAttribute("elu")); $("#loadService").hide(); } else if(xhr.readyState < 4) { $("#loadService").css("display", "inline"); } }; } } //Affiche/Masque certains choix si la salle est coché function checkSalle() { masqueDIV('SaisieTypeRessource'); afficheDIV('SaisieSalle'); } //Affiche/Masque certains choix si la salle n'est pas coché function uncheckSalle() { afficheDIV('SaisieTypeRessource'); masqueDIV('SaisieSalle'); } //----- Gestion des mails ----- //Ajoute un input pour plusieurs mails gestionnaires function addInputMailGest() { //-------------- // Variables //-------------- var oTBody = $("#MailGestAssocies tbody")[0]; var contentTR; //-------------- // Traitement //-------------- // - On crée le contenu du TR contentTR = '
";
}
}
else
{
oTR = oTBody.insertRow(-1);
oTD = oTR.insertCell(-1);
oTD.colSpan = 2;
oTD.innerHTML = "Aucun email n'est rattaché à cette ressource.";
}
}
//Ouvre le formulaire d'ajout de mail
function addMail()
{
//Variables
var idDialog = "#frmAddMail";
var idRessource = document.getElementById("IdRessource").value;
//Charge le contenu de la boîte de dialogue
$(idDialog).load("vues/popups/p_frmAddMail.php?IdRessource=" + idRessource).dialog
({
modal: true,
minWidth: 400,
position: ["auto", 210],
close: function() { $(idDialog).dialog("destroy"); },
buttons:
{
"Associer":
function()
{
//Variables
var msgErreur = new Array();
var idRess = $("#IdRessource").val();
var mail = escape($("#Mail").val());
//Envoie des données
var xhr = newXMLHttpRequest();
xhr.open("POST", "modules/fonctions/xml/itemsMails.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("action=add&IdRess=" + idRess + "&AdrMail=" + mail);
//Actualisation de la page
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
{
$("#loadMail").hide();
var oData = xhr.responseXML; //alert(xhr.responseText);
var lesErreurs = oData.getElementsByTagName("error"); //alert(lesErreurs.length);
//Traitement des erreurs
if(lesErreurs.length > 0)
{
msgErreur = new Array();
for(i = 0; i < lesErreurs.length; i++) msgErreur.push(lesErreurs[i].text || lesErreurs[i].textContent);
updateTips(msgErreur);
}
else
{
loadTabMails(oData);
updateTips("E-mail ajouté avec succès!", "green");
setTimeout(function() { $(idDialog).dialog("close"); }, 1000);
}
}
else
{
$("#loadMail").css("display", "inline");
updateTips("Pas de réponse du serveur! (Erreur: " + xhr.statuts + " - " + xhr.statusText + ")");
}
};
},
"Annuler": function() { $(idDialog).dialog("close"); }
}
});
}
//Supprime le mail
function deleteMail(idMail)
{
if(confirm("Êtes-vous sûr de vouloir supprimer cet e-mail? \nAttention, cette action est irréversible!"))
{
//Envoie des données
var idRessource = document.getElementById("IdRessource").value;
var xhr = newXMLHttpRequest();
xhr.open("POST", "modules/fonctions/xml/itemsMails.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("action=delete&IdRess=" + idRessource + "&IdMail=" + idMail);
//Actualisation de la page
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
{
$("#loadMail").hide();
var oData = xhr.responseXML; //alert(xhr.responseText);
var lesErreurs = oData.getElementsByTagName("error"); //alert(lesErreurs.length);
if(lesErreurs.length > 0)
{
msgErreur = new Array();
for(i = 0; i < lesErreurs.length; i++) msgErreur.push(lesErreurs[i].text || lesErreurs[i].textContent);
updateTips(msgErreur, "red", "msgsMail");
}
else
{
loadTabMails(oData);
updateTips("E-mail supprimé avec succès!", "green", "msgsMail");
}
}
else
{
$("#loadMail").css("display", "inline");
updateTips("Pas de réponse du serveur! (Erreur: " + xhr.statuts + " - " + xhr.statusText + ")");
}
};
}
}
//----- Gestion des champs -----
//Recharge la liste des champs
function loadTabChamps(oData)
{
//--------------
// Variables
//--------------
var lesItems = oData.getElementsByTagName("listItem")[0].getElementsByTagName("item"); //alert(lesItems.length);
var oTable = document.getElementById("ChpAffectes");
var oTBody = oTable.getElementsByTagName("tbody")[0];
var oTR, oTD;
var i = 0;
//--------------
// Traitement
//--------------
// - Vidange le tableau
videTableau(oTable);
// - Chargement du tableau
if(lesItems.length > 0)
{
for(var i = 0; i < lesItems.length; i++)
{
var idChp = lesItems[i].getAttribute("id");
var fctOnclick = "editChamp(" + idChp + ");";
var lblTitre = "Cliquez ici pour modifier";
oTR = oTBody.insertRow(-1);
oTR.className = "ligneTableau";
oTD = oTR.insertCell(0);
oTD.width = "16";
oTD.innerHTML = "
";
oTD = oTR.insertCell(1);
oTD.setAttribute("onClick", fctOnclick);
oTD.setAttribute("title", lblTitre);
oTD.innerHTML = lesItems[i].getAttribute("order");
oTD = oTR.insertCell(2);
oTD.setAttribute("onClick", fctOnclick);
oTD.setAttribute("title", lblTitre);
oTD.innerHTML = lesItems[i].getAttribute("type");
oTD = oTR.insertCell(3);
oTD.setAttribute("onClick", fctOnclick);
oTD.setAttribute("title", lblTitre);
oTD.innerHTML = lesItems[i].getAttribute("name");
oTD = oTR.insertCell(4);
oTD.setAttribute("onClick", fctOnclick);
oTD.setAttribute("title", lblTitre);
oTD.innerHTML = lesItems[i].getAttribute("comment");
var imgObligatoire = "
";
var imgFacultatif = "
";
oTD = oTR.insertCell(5);
oTD.setAttribute("onClick", fctOnclick);
oTD.setAttribute("title", lblTitre);
oTD.innerHTML = parseInt(lesItems[i].getAttribute("require")) ? imgObligatoire : imgFacultatif;
var imgVisible = "
";
var imgMasque = "
";
oTD = oTR.insertCell(6);
oTD.setAttribute("onClick", fctOnclick);
oTD.setAttribute("title", lblTitre);
oTD.innerHTML = parseInt(lesItems[i].getAttribute("visible")) ? imgVisible : imgMasque;
oTD = oTR.insertCell(7);
oTD.width = "16";
oTD.innerHTML = "
";
}
}
else
{
oTR = oTBody.insertRow(-1);
oTD = oTR.insertCell(-1);
oTD.colSpan = 8;
oTD.innerHTML = "Aucun champ n'a été associé à cette ressource.";
}
}
//Ouvre le formulaire d'ajout de champ
function addChamp()
{
//Variables
var idDialog = "#frmAddChamp";
var idRessource = $("#IdRessource").val();
//Charge le contenu de la boîte de dialogue
$(idDialog).load("vues/popups/p_frmModifChamp.php?IdRessource=" + idRessource).dialog
({
modal: true,
minWidth: 400,
position: ["auto", 210],
close: function() { $(idDialog).dialog("destroy"); },
buttons:
{
"Créer":
function()
{
//Variables
var end = "Add";
var idRess = $("#IdRessource" + end).val();
var idTypeChp = $("#IdTypeChamp" + end).val();
var ordreChp = $("#Ordre" + end).val();
var nomChp = escape($("#Nom" + end).val());
var rqChp = escape($("#Comment" + end).val());
var isRequired = $("#IsRequired" + end).is(':checked') ? 1 : 0;
//Test des erreurs
var msgErreur = new Array();
if(!idRess) msgErreur.push("Pas de ressource définie.");
if(parseInt(idTypeChp) == 0 || !ordreChp || !nomChp) msgErreur.push("Veuillez remplir tous les champs obligatoires (*).");
if(ordreChp && (isNaN(ordreChp) || parseInt(ordreChp) == 0)) msgErreur.push("Le numéro d'ordre est un nombre entier!");
//Affichage des erreurs
if(msgErreur.length > 0) updateTips(msgErreur);
else
{
//Envoie des données
var xhr = newXMLHttpRequest();
xhr.open("POST", "modules/fonctions/xml/itemsChamps.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("action=add&IdRess=" + idRess + "&IdTypeChp=" + idTypeChp + "&OrdreChp=" + ordreChp + "&NomChp=" + nomChp + "&RqChp=" + rqChp + "&IsRequired=" + isRequired);
//Actualisation de la page
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
{
$("#loadChamp").hide();
var oData = xhr.responseXML; //alert(xhr.responseText);
var lesErreurs = oData.getElementsByTagName("error"); //alert(lesErreurs.length);
if(lesErreurs.length > 0)
{
msgErreur = new Array();
for(i = 0; i < lesErreurs.length; i++) msgErreur.push(lesErreurs[i].text || lesErreurs[i].textContent);
updateTips(msgErreur);
}
else
{
loadTabChamps(oData);
updateTips("Champ créé avec succès!", "green");
setTimeout(function() { $(idDialog).dialog("close"); }, 1000);
}
}
else
{
$("#loadChamp").css("display", "inline");
updateTips("Pas de réponse du serveur! (Erreur: " + xhr.statuts + " - " + xhr.statusText + ")");
}
};
}
},
"Annuler": function() { $(idDialog).dialog("close"); }
}
});
}
//Ouvre le formulaire de modif de champ
function editChamp(idChp)
{
//Variables
var idDialog = "#frmEditChamp";
//Charge le contenu de la boîte de dialogue
$(idDialog).load("vues/popups/p_frmModifChamp.php?id=" + idChp).dialog
({
modal: true,
minWidth: 400,
position: ["auto", 210],
close: function() { $(idDialog).dialog("destroy"); },
buttons:
{
"Modifier":
function()
{
//Variables
var end = "Edit";
var idRess = $("#IdRessource" + end).val();
var idTypeChp = $("#IdTypeChamp" + end).val();
var ordreChp = $("#Ordre" + end).val();
var nomChp = escape($("#Nom" + end).val());
var rqChp = escape($("#Comment" + end).val());
var isRequired = $("#IsRequired" + end).is(':checked') ? 1 : 0;
var isVisible = $("#IsVisible" + end).is(':checked') ? 1 : 0;
//Test des erreurs
var msgErreur = new Array();
if(!idRess) msgErreur.push("Pas de ressource définie.");
if(parseInt(idTypeChp) == 0 || !ordreChp || !nomChp) msgErreur.push("Veuillez remplir tous les champs obligatoires (*).");
if(ordreChp && (isNaN(ordreChp) || parseInt(ordreChp) == 0)) msgErreur.push("Le numéro d'ordre est un nombre entier!");
//Affichage des erreurs
if(msgErreur.length > 0) updateTips(msgErreur);
else
{
//Envoie des données
var xhr = newXMLHttpRequest();
xhr.open("POST", "modules/fonctions/xml/itemsChamps.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("action=edit&IdChp=" + idChp + "&IdRess=" + idRess + "&IdTypeChp=" + idTypeChp + "&OrdreChp=" + ordreChp + "&NomChp=" + nomChp + "&RqChp=" + rqChp + "&IsRequired=" + isRequired + "&IsVisible=" + isVisible);
//Actualisation de la page
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
{
$("#loadChamp").hide();
var oData = xhr.responseXML; //alert(xhr.responseText);
var lesErreurs = oData.getElementsByTagName("error"); //alert(lesErreurs.length);
if(lesErreurs.length > 0)
{
msgErreur = new Array();
for(i = 0; i < lesErreurs.length; i++) msgErreur.push(lesErreurs[i].text || lesErreurs[i].textContent);
updateTips(msgErreur);
}
else
{
loadTabChamps(oData);
updateTips("Champ modifié avec succès!", "green");
setTimeout(function() { $(idDialog).dialog("close"); }, 1000);
}
}
else
{
$("#loadChamp").css("display", "inline");
updateTips("Pas de réponse du serveur! (Erreur: " + xhr.statuts + " - " + xhr.statusText + ")");
}
};
}
},
"Annuler": function() { $(idDialog).dialog("close"); }
}
});
}
//Supprime le champ
function deleteChamp(idChp)
{
if(confirm("Êtes-vous sûr de vouloir supprimer ce champ? \nAttention, cette action est irréversible!"))
{
//Envoie des données
var idRessource = document.getElementById("IdRessource").value;
var xhr = newXMLHttpRequest();
xhr.open("POST", "modules/fonctions/xml/itemsChamps.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("action=delete&IdRess=" + idRessource + "&IdChp=" + idChp);
//Actualisation de la page
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
{
$("#loadChamp").hide();
var oData = xhr.responseXML; //alert(xhr.responseText);
var lesErreurs = oData.getElementsByTagName("error"); //alert(lesErreurs.length);
if(lesErreurs.length > 0)
{
msgErreur = new Array();
for(i = 0; i < lesErreurs.length; i++) msgErreur.push(lesErreurs[i].text || lesErreurs[i].textContent);
updateTips(msgErreur, "red", "msgsChamp");
}
else
{
loadTabChamps(oData);
updateTips("Champ supprimé avec succès!", "green", "msgsChamp");
}
}
else
{
$("#loadChamp").css("display", "inline");
updateTips("Pas de réponse du serveur! (Erreur: " + xhr.statuts + " - " + xhr.statusText + ")");
}
};
}
}
//Ouvre le formulaire d'ajout de la ressource
function loadFrmRessource()
{
//--------------
// Variables
//--------------
var idDialog = "#frmRessource";
var idRess = laRessource.IdRessource;
//--------------
// Traitement
//--------------
// - Quitte s'il n'y a pas de ressource sélectionnée
if(idRess == 0)
{
alert("La ressource n'existe pas!");
return;
}
// - Charge la ressource s'il n'y a pas de champ
if(laRessource.NbChamps == 0 && laRessource.NbMails == 0 && !laRessource.Commentaire)
{
alert("La ressource ne possède pas de champs! \nActualiser cette page en cliquant sur enregistrer.");
return;
}
// - Charge le contenu de la boîte de dialogue s'il y a des champs
$(idDialog).load("vues/popups/p_frmAddRessource.php?id=" + idRess).dialog
({
modal: true,
minWidth: 500,
position: ["auto", 210],
close: function() { $(idDialog).dialog("destroy"); },
buttons: { "Quitter": function() { $(idDialog).dialog("close"); } }
});
}
//***************************
//***** Form ModifManif *****
//***************************
//----- Afficher/Masquer + Chp obligatoire -----
//Rend obligatoire le détail du type de manifestation
function onChgTypeManifestation(oSelect)
{
idTypeManif = oSelect.options[oSelect.selectedIndex].value;
if(idTypeManif == 1 ||idTypeManif == 9) makeRequired('LblDtlTypeManif');
else unmakeRequired('LblDtlTypeManif');
}
//----- Ajout de l'organisateur -----
//Charge la liste des organisateurs
function loadSelOrganisateurs(oData)
{
//--------------
// Variables
//--------------
var idSrv = getInputValue("Service");
//--------------
// Traitement
//--------------
// - Charge la liste des organisateurs du service
if(!oData)
{
//Envoie des données
var xhr = newXMLHttpRequest();
xhr.open("POST", "modules/fonctions/xml/itemsOrganisateurs.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("IdSrv=" + idSrv);
//Actualisation de la page
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
{
setSelectItems("Organisateur", xhr.responseXML); //alert(xhr.responseText);
$("#loadOrganisateur").hide();
}
else if(xhr.readyState < 4)
{
$("#loadOrganisateur").css("display", "inline");
}
};
}
else setSelectItems("Organisateur", oData);
// - Charge l'élu du service
loadInfoService(idSrv);
}
//Charge les informations de l'organisateur sélectionné
function loadInfoOrganisateur()
{
//Valeur de la liste
var idOrg = getInputValue("Organisateur");
//Charge les infos de l'organisateur
if(idOrg != 0)
{
//Envoie des données
var xhr = newXMLHttpRequest();
xhr.open("POST", "modules/fonctions/xml/itemsOrganisateurs.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("action=getOne&IdOrg=" + idOrg);
//Actualisation de la page
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
{
unOrganisateur = xhr.responseXML.getElementsByTagName("item")[0]; //alert(xhr.responseText);
setInputValue("Service", unOrganisateur.getAttribute("idService"));
setInputValue("NomOrg", unOrganisateur.getAttribute("name"));
setInputValue("TelOrg", unOrganisateur.getAttribute("phone"));
setInputValue("MailOrg", unOrganisateur.getAttribute("mail"));
$("#loadOrganisateur").hide();
}
else if(xhr.readyState < 4)
{
$("#loadOrganisateur").css("display", "inline");
}
};
}
}
//Ouvre le formulaire d'ajout d'un organisateur
function addOrganisateur()
{
//Variables
var idDialog = "#frmAddOrganisateur";
var idSrv = getInputValue("Service");
//Charge le contenu de la boîte de dialogue
$(idDialog).load("vues/popups/p_frmAddOrganisateur.php?IdService=" + idSrv).dialog
({
modal: true,
minWidth: 400,
position: ["auto", 210],
close: function() { $(idDialog).dialog("destroy"); },
buttons:
{
"Créer":
function()
{
//Variables
var idSrv = $("#OrgIdSrv").val();
var nomOrg = escape($("#OrgNom").val());
var telOrg = escape($("#OrgTel").val());
var mailOrg = escape($("#OrgMail").val());
//Test des erreurs
var msgErreur = new Array();
if(parseInt(idSrv) == 0) msgErreur.push("Pas de service défini.");
if(!nomOrg || !telOrg || !mailOrg) msgErreur.push("Veuillez remplir tous les champs obligatoires (*).");
//Affichage des erreurs
if(msgErreur.length > 0) updateTips(msgErreur);
else
{
//Envoie des données
var xhr = newXMLHttpRequest();
xhr.open("POST", "modules/fonctions/xml/itemsOrganisateurs.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("action=add&IdSrv=" + idSrv + "&NomOrg=" + nomOrg + "&TelOrg=" + telOrg + "&MailOrg=" + mailOrg);
//Actualisation de la page
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
{
$("#loadOrganisateur").hide();
var oData = xhr.responseXML; //alert(xhr.responseText);
var lesErreurs = oData.getElementsByTagName("error"); //alert(lesErreurs.length);
if(lesErreurs.length > 0)
{
msgErreur = new Array();
for(i = 0; i < lesErreurs.length; i++) msgErreur.push(lesErreurs[i].text || lesErreurs[i].textContent);
updateTips(msgErreur);
}
else
{
loadSelOrganisateurs(oData);
loadInfoOrganisateur();
updateTips("Organisateur créé avec succès!", "green");
setTimeout(function() { $(idDialog).dialog("close"); }, 1000);
}
}
else
{
$("#loadOrganisateur").css("display", "inline");
updateTips("Pas de réponse du serveur! (Erreur: " + xhr.statuts + " - " + xhr.statusText + ")");
}
};
}
},
"Annuler": function() { $(idDialog).dialog("close"); }
}
});
}
//----- Gestion de la réservation des ressources -----
//Réinitialise les ressources
function initRessource()
{
//--------------
// Variables
//--------------
var oSelect = $("select[name='IdSelRessource']");
var oOptions = "";
var nbRessources = lesRessources.length;
//--------------
// Traitement
//--------------
// - Réinitialisation du formulaire
$("select[name='IdTypeRessource']").val(0);
$("input[name='Mot']").val("");
$("select[name='IdLieu']").val(0);
$("input[name='Capacite']").val("");
$("#ForSalle").hide();
$("#ForMateriel").hide();
$("#chkSalle").attr("checked", false);
$("#chkMateriel").attr("checked", false);
$("#FilterType").buttonset("refresh");
// - Réinitialisation de la liste des ressources
oOptions = "";
for(var i = 0; i < nbRessources; i++) oOptions += "";
oSelect
.find("option")
.remove()
.end()
.append(oOptions);
}
//Recherche les ressources en fonction des critères
function searchRessource()
{
//--------------
// Variables
//--------------
var oSelect = $("select[name='IdSelRessource']");
var oChkSalle = $("#chkSalle").is(":checked");
var oChkMateriel = $("#chkMateriel").is(":checked");
var isSalle = parseInt($("input[name='IsSalle']:checked")[0].value);
var idType = parseInt($("select[name='IdTypeRessource']")[0].value);
var motRess = $("input[name='Mot']")[0].value;
var idLieu = parseInt($("select[name='IdLieu']")[0].value);
var capacite = parseInt($("input[name='Capacite']")[0].value);
var oOptions = "", lesRessFinal = [];
//--------------
// Traitement
//--------------
// - Affichage des choix en fonction du type
if(oChkSalle)
{
$("#ForSalle").css("display", "inline");
$("#ForMateriel").hide();
}
else if(oChkMateriel)
{
$("#ForMateriel").css("display", "inline");
$("#ForSalle").hide();
}
// - Affine les ressources en fonction des critères
lesRessFinal = $.grep(lesRessources, function(oRess)
{
var condition = (oRess.Emplacement == isSalle);
if(!isSalle && idType) condition = condition && (oRess.IdTypeRessource == idType);
if(!isSalle && motRess) condition = condition && ($("").html(oRess.Ressource).text().toLowerCase().indexOf(motRess) != -1);
if(isSalle && idLieu) condition = condition && (oRess.IdLieu == idLieu);
if(isSalle && !isNaN(capacite)) condition = condition && (oRess.Capacite >= capacite);
return condition;
});
// - Complétion de la liste des ressources
oOptions = "";
for(var i = 0; i < lesRessFinal.length; i++) oOptions += "";
oSelect
.find("option")
.remove()
.end()
.append(oOptions);
}
//Vérifie la disponibilité de la ressource
function verifyRessource()
{
//--------------
// Variables
//--------------
var idRess = $("#IdRessource")[0].value;
var dtDebut = $("#Chp_DtDebut")[0].value;
var dtFin = $("#Chp_DtFin")[0].value;
var hrDebut = $("#Chp_HrDebut")[0].value;
var hrFin = $("#Chp_HrFin")[0].value;
//--------------
// Traitement
//--------------
// - Affiche l'image de loading
$("#loadVerifyRessource").css("display", "inline");
// - Envoie des données
$.post
(
'modules/fonctions/json/dataRessources.php?action=chkConflict',
{'IdRessource': idRess, 'StartDate': dtDebut, 'StartHour': hrDebut, 'EndDate': dtFin, 'EndHour': hrFin}
)
// - Récupération des erreurs
.error(function(data)
{
var msgErreur = new Array();
var lesErreurs = jQuery.parseJSON(data.responseText);
for(var i = 0; i < lesErreurs.length; i++) msgErreur.push(lesErreurs[i]);
updateTips(msgErreur);
$("#imgVerifyRessource").html("
");
})
// - Compte les mails disponibles
.success(function(data)
{
var lesMsgs = jQuery.parseJSON(data);
var nbMails = lesMsgs["Mails"].length;
if(nbMails > 0)
{
updateTips("La ressource est disponible sur zimbra!", "green");
$("#imgVerifyRessource").html("
");
$("#EstVerifRess")[0].value = 1;
}
else
{
updateTips("La ressource n'est pas disponible sur zimbra!");
$("#imgVerifyRessource").html("
");
}
})
// - Désactive l'image de loading après chargement
.complete(function()
{
$("#loadVerifyRessource").hide();
});
}
//Ouvre le formulaire d'ajout de la ressource
function addRessource()
{
//--------------
// Variables
//--------------
var idDialog = "#frmAddRessource";
var idRess = getInputValue("IdSelRessource");
var laRess = $.grep(lesRessources, function(e) { return e.IdRessource == idRess })[0];
var oTBody = $("#RessAffectees tbody")[0];
var contentTR = "";
//--------------
// Traitement
//--------------
// - Quitte s'il n'y a pas de ressource sélectionnée
if(idRess == 0)
{
alert("Veuillez sélectionner la ressource!");
return;
}
// - Charge la ressource s'il n'y a pas de champ
if(laRess.NbChamps == 0 && laRess.NbMails == 0 && !laRess.Commentaire)
{
//Supprime la première ligne si elle existe
if($("#RESS_0").length > 0) $("#RESS_0").remove(); // alert("Pas de champs!");
//On crée le contenu du TR
contentTR = "
" : "";
var imgDrop = "
";
//On crée le contenu du TR
contentTR = "
", "green");
setTimeout(function() { $(idDialog).dialog("close"); }, 1000);
$(location).attr("href", "index.php?uc=manif&action=vdStatut&statut=" + idTypeRep + "&NumsManifs=" + idManif);
}
else updateTips("La validation n'a pas pu être enregistrée!");
})
// - Désactive l'image de loading après chargement
.complete(function()
{
$("#loadValidRess").hide();
});
},
"Annuler": function() { $(idDialog).dialog("close"); }
}
});
}
//Ouvre la liste des mails envoyés
function loadSendMails(idManif)
{
//Variables
var idDialog = "#lstSendEmails";
//Charge le contenu de la boîte de dialogue
$(idDialog).load("vues/popups/p_lstSendMail.php?id=" + idManif).dialog
({
modal: true,
minWidth: 700,
position: ["auto", 125],
close: function() { $(idDialog).dialog("destroy"); },
buttons: { "Fermer": function() { $(idDialog).dialog("close"); } }
});
}
//--------------------------------------------------------
// Fonctions de suppression avec message de confirmation
//--------------------------------------------------------
//Message de confirmation avant la réinitialisation du mot de passe
function confirmResetPwd(idService)
{
if(confirm("Êtes-vous sûr de vouloir réinitialiser le mot de passe de ce service?"))
{
var url = "index.php?uc=param&action=reinitPwdService&id=" + idService;
document.location.href = url;
}
}
//Message de confirmation avant l'annulation d'une manifestation
function confirmCancelManif(idManif)
{
if(confirm("Êtes-vous sûr de vouloir annuler cette manifestation?"))
{
var url = "index.php?uc=manif&action=vdSuppression&id=" + idManif;
document.location.href = url;
}
}
//Message de confirmation avant la suppression d'une manifestation
function confirmDelManif(idManif)
{
if(confirm("Êtes-vous sûr de vouloir supprimer cette manifestation? \nAttention, cette action est irréversible!"))
{
var url = "index.php?uc=manif&action=vdSuppression&id=" + idManif;
var idSrv = getVarUrl("Service"); if(idSrv) url += "&Service=" + idSrv;
var page = getVarUrl("page"); if(page) url += "&page=" + page;
document.location.href = url;
}
}
//Message de confirmation avant la suppression d'un document
function confirmDelDocument(idDoc, idManif)
{
if(confirm("Êtes-vous sûr de vouloir supprimer ce document? \nAttention, cette action est irréversible!"))
{
var url = "index.php?uc=doc&action=delDocument&id=" + idDoc;
if(idManif) url += "&IdManif=" + idManif;
document.location.href = url;
}
}
//Suppression d'un type de manifestation
function confirmDelTypeManifestation(idTypeManifestation)
{
if(confirm("Êtes-vous sûr de vouloir supprimer ce type de manifestation? \nAttention, cette action est irréversible!"))
{
var url = "index.php?uc=param&action=delTypeManif&id=" + idTypeManifestation;
var mot = getVarUrl("Mot"); if(mot) url += "&Mot=" + mot;
document.location.href = url;
}
}
//Suppression d'une catégorie de ressource
function confirmDelTypeRessource(idTypeRessource)
{
if(confirm("Êtes-vous sûr de vouloir supprimer cette catégorie de ressource? \nAttention, cette action est irréversible!"))
{
var url = "index.php?uc=param&action=delTypeRess&id=" + idTypeRessource;
var mot = getVarUrl("Mot"); if(mot) url += "&Mot=" + mot;
var page = getVarUrl("page"); if(page) url += "&page=" + page;
document.location.href = url;
}
}
//Suppression d'un bâtiment
function confirmDelLieu(idLieu)
{
if(confirm("Êtes-vous sûr de vouloir supprimer ce bâtiment? \nAttention, cette action est irréversible!"))
{
var url = "index.php?uc=param&action=delLieu&id=" + idLieu;
var mot = getVarUrl("Mot"); if(mot) url += "&Mot=" + mot;
var page = getVarUrl("page"); if(page) url += "&page=" + page;
document.location.href = url;
}
}
//Suppression d'une ressource
function confirmDelRessource(idRessource)
{
if(confirm("Êtes-vous sûr de vouloir supprimer cette ressource? \nAttention, cette action est irréversible!"))
{
var url = "index.php?uc=param&action=delRessource&id=" + idRessource;
var idSrv = getVarUrl("IdService"); if(idSrv) url += "&IdService=" + idSrv;
var idType = getVarUrl("IdTypeRessource"); if(idType) url += "&IdTypeRessource=" + idType;
var idLieu = getVarUrl("IdLieu"); if(idLieu) url += "&IdLieu=" + idLieu;
var mot = getVarUrl("Mot"); if(mot) url += "&Mot=" + mot;
var salle = getVarUrl("Salle"); if(salle) url += "&Salle=" + salle;
var materiel = getVarUrl("Materiel"); if(materiel) url += "&Materiel=" + materiel;
var actif = getVarUrl("Actif"); if(actif) url += "&Actif=" + actif;
var inactif = getVarUrl("Inactif"); if(inactif) url += "&Inactif=" + inactif;
var page = getVarUrl("page"); if(page) url += "&page=" + page;
document.location.href = url;
}
}
//Suppression d'un service
function confirmDelService(idService)
{
if(confirm("Êtes-vous sûr de vouloir supprimer ce service? \nAttention, cette action est irréversible!"))
{
var url = "index.php?uc=param&action=delService&id=" + idService;
var idSrvParent = getVarUrl("IdSrvParent"); if(idSrvParent) url += "&IdSrvParent=" + idSrvParent;
var idProfil = getVarUrl("IdProfil"); if(idProfil) url += "&IdProfil=" + idProfil;
var niveau = getVarUrl("Niveau"); if(niveau) url += "&Niveau=" + niveau;
var mot = getVarUrl("Mot"); if(mot) url += "&Mot=" + mot;
var actif = getVarUrl("Actif"); if(actif) url += "&Actif=" + actif;
var inactif = getVarUrl("Inactif"); if(inactif) url += "&Inactif=" + inactif;
var page = getVarUrl("page"); if(page) url += "&page=" + page;
document.location.href = url;
}
}
//Suppression d'un élu
function confirmDelElu(idElu)
{
if(confirm("Êtes-vous sûr de vouloir supprimer cet élu? \nAttention, cette action est irréversible!"))
{
var url = "index.php?uc=param&action=delElu&id=" + idElu;
var mot = getVarUrl("Mot"); if(mot) url += "&Mot=" + mot;
var page = getVarUrl("page"); if(page) url += "&page=" + page;
document.location.href = url;
}
}
//Suppression d'un associe
function confirmDelAssocie(idAssocie)
{
if(confirm("Êtes-vous sûr de vouloir supprimer cette personne du groupe évènement? \nAttention, cette action est irréversible!"))
{
var url = "index.php?uc=param&action=delAssocie&id=" + idAssocie;
var mot = getVarUrl("Mot"); if(mot) url += "&Mot=" + mot;
document.location.href = url;
}
}
//Suppression d'un organisateur
function confirmDelOrganisateur(idOrganisateur)
{
if(confirm("Êtes-vous sûr de vouloir supprimer cet organisateur? \nAttention, cette action est irréversible!"))
{
var url = "index.php?uc=param&action=delOrganisateur&id=" + idOrganisateur;
var idSrv = getVarUrl("IdService"); if(idSrv) url += "&IdService=" + idSrv;
var mot = getVarUrl("Mot"); if(mot) url += "&Mot=" + mot;
var actif = getVarUrl("Actif"); if(actif) url += "&Actif=" + actif;
var inactif = getVarUrl("Inactif"); if(inactif) url += "&Inactif=" + inactif;
var page = getVarUrl("page"); if(page) url += "&page=" + page;
document.location.href = url;
}
}
//---------------------------------------------------
// Fonctions Ajax
//---------------------------------------------------
//Initialise un objet XmlHttpRequest
function newXMLHttpRequest()
{
//Variables
var xhr = null;
//Création de l'objet XMLHTTPRequest
if(window.XMLHttpRequest || window.ActiveXObject)
{
if(window.ActiveXObject)
{
try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); }
catch(e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
}
else xhr = new XMLHttpRequest();
}
else
{
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest!");
return null;
}
return xhr;
}
//Affiche les messages d'erreur ou de confirmation
function updateTips(lesMsgs, color, myClass)
{
//Variables
var tips = (myClass) ? $("." + myClass) : $(".validateTips");
var msgFinale = "";
if(!color) color = "red";
//S'il y a des messages
if($.isArray(lesMsgs) && lesMsgs.length > 0)
{
for(i = 0; i < lesMsgs.length; i++) msgFinale += "