298 lines
7.1 KiB
JavaScript
298 lines
7.1 KiB
JavaScript
var imgTitres_dir = "images/titres/";
|
|
var username = "";
|
|
var apps = Array();
|
|
|
|
function clearNode(node)
|
|
{
|
|
if (node.hasChildNodes())
|
|
{
|
|
while (node.childNodes.length >= 1)
|
|
node.removeChild(node.firstChild);
|
|
}
|
|
}
|
|
|
|
window.onload = function()
|
|
{
|
|
printEtat(1);
|
|
clearScreen();
|
|
firstLoad();
|
|
|
|
document.getElementById('btMenu').onclick = function(){
|
|
showMenu();
|
|
}
|
|
document.getElementById('btMenu').onmouseout = function(){
|
|
setHideMenuTimeout();
|
|
}
|
|
document.getElementById('menu').onmouseover = function(){
|
|
showMenu();
|
|
}
|
|
document.getElementById('menu').onmouseout = function(){
|
|
setHideMenuTimeout();
|
|
}
|
|
}
|
|
|
|
function firstLoad()
|
|
{
|
|
new Ajax.Request(
|
|
'ajax.php',
|
|
{
|
|
onSuccess: function(transport, json)
|
|
{
|
|
printEtat(2);
|
|
if (json.statut == 1)
|
|
{
|
|
username = json.username;
|
|
|
|
if (window.sessionStorage && window.sessionStorage.username == username)
|
|
{
|
|
//On restaure l'application en cours
|
|
|
|
}
|
|
else
|
|
page_accueil();
|
|
}
|
|
else
|
|
loadPage("connexion");
|
|
printEtat(0);
|
|
},
|
|
onFailure: function() { printEtat(3); }
|
|
}
|
|
);
|
|
}
|
|
|
|
function deconnexion()
|
|
{
|
|
printEtat(1);
|
|
clearScreen();
|
|
new Ajax.Request(
|
|
'ajax.php',
|
|
{
|
|
method: 'get',
|
|
parameters: {d: "logout"},
|
|
onSuccess: function(transport, json) { firstLoad(); },
|
|
onFailure: function() { printEtat(3); }
|
|
}
|
|
);
|
|
}
|
|
|
|
function printEtat(id)
|
|
{
|
|
if (id == 0)
|
|
$('etat').innerHTML = "";
|
|
else if (id == 1)
|
|
$('etat').innerHTML = "Connexion au serveur en cours ...";
|
|
else if (id == 2)
|
|
$('etat').innerHTML = "Connexion établie, affichage de la page ...";
|
|
else if (id == 3)
|
|
$('etat').innerHTML = "Impossible de contacter le serveur, délais d'attente expiré !";
|
|
else if (id == 4)
|
|
$('etat').innerHTML = "Vérification des informations en cours ...";
|
|
else if (id == 5)
|
|
$('etat').innerHTML = "Récupération de la liste des applications ...";
|
|
else if (id == 6)
|
|
$('etat').innerHTML = "Chargement de l'application ...";
|
|
else
|
|
$('etat').innerHTML = "État inconnu : #" + id;
|
|
}
|
|
|
|
function clearScreen()
|
|
{
|
|
if ($('logo').style.display != "block")
|
|
$('logo').style.display = "block";
|
|
|
|
genMenu(username != "");
|
|
$('corps').innerHTML = "";
|
|
|
|
$('etatAvance').src = "images/etats/alpha.png";
|
|
|
|
var head = document.getElementsByTagName("head")[0];
|
|
//On décharge les fichiers JavaScript non standards
|
|
if (head.getElementsByTagName("script")[4])
|
|
{
|
|
var scripts = head.getElementsByTagName("script");
|
|
for (i = scripts.length - 1; i >= 0; i--)
|
|
{
|
|
if (scripts[i].className == "app")
|
|
head.removeChild(scripts[i]);
|
|
}
|
|
}
|
|
|
|
//Idem avec les fichiers CSS
|
|
if (head.getElementsByTagName("link")[3])
|
|
{
|
|
var links = head.getElementsByTagName("link");
|
|
for (i = links.length - 1; i >= 0; i--)
|
|
{
|
|
if (links[i].className == "app")
|
|
head.removeChild(links[i]);
|
|
}
|
|
}
|
|
|
|
//On ajoute le thème par défaut
|
|
if (!$("main_thm"))
|
|
{
|
|
var css_file = document.createElement("link");
|
|
css_file.type = 'text/css';
|
|
css_file.rel = 'stylesheet';
|
|
css_file.media = 'all';
|
|
css_file.id = 'main_thm';
|
|
css_file.href = "style.css";
|
|
document.getElementsByTagName('head')[0].appendChild(css_file);
|
|
}
|
|
}
|
|
|
|
function genMenu(online)
|
|
{
|
|
//On supprime tous les éléments du menu
|
|
clearNode($('menu'));
|
|
|
|
//On ajoute le titre
|
|
var item = document.createElement("li");
|
|
item.innerHTML = "PA4home";
|
|
item.id = "nameApp";
|
|
$('menu').appendChild(item);
|
|
|
|
//Lien vers la page d'accueil
|
|
item = document.createElement("li");
|
|
item.onclick = function() { hideShownMenu(); firstLoad(); };
|
|
item.innerHTML = "Accueil";
|
|
if (online)
|
|
item.className = "item";
|
|
else
|
|
item.className = "item hr";
|
|
$('menu').appendChild(item);
|
|
|
|
//Lien de déconnexion
|
|
if (online)
|
|
{
|
|
item = document.createElement("li");
|
|
item.onclick = function() { hideShownMenu(); deconnexion(); };
|
|
item.innerHTML = "Déconnexion";
|
|
item.className = "item hr";
|
|
$('menu').appendChild(item);
|
|
}
|
|
|
|
//Lien vers la page à propos du site
|
|
item = document.createElement("li");
|
|
item.onclick = function() { hideShownMenu(); loadPage('aproposdusite'); };
|
|
item.innerHTML = "À propos du site";
|
|
item.className = "item";
|
|
$('menu').appendChild(item);
|
|
}
|
|
|
|
function addMenuItem(text, iven)
|
|
{
|
|
var item = document.createElement("li");
|
|
item.onclick = function(e) {
|
|
hideShownMenu();
|
|
eval(iven);
|
|
};
|
|
item.innerHTML = text;
|
|
item.className = "item";
|
|
$('menu').appendChild(item);
|
|
}
|
|
|
|
/**************************************
|
|
* Partie contenant les pages du site *
|
|
**************************************/
|
|
|
|
function loadPage(nom)
|
|
{
|
|
clearScreen();
|
|
printEtat(1);
|
|
new Ajax.Request(
|
|
'ajax.php',
|
|
{
|
|
method: 'get',
|
|
parameters: {d: "page", p: nom},
|
|
onSuccess: function(transport, json)
|
|
{
|
|
printEtat(2);
|
|
$('titre').src = imgTitres_dir + transport.responseXML.documentElement.getElementsByTagName("titre")[0].firstChild.data;
|
|
$('corps').innerHTML = transport.responseXML.documentElement.getElementsByTagName("body")[0].firstChild.data;
|
|
|
|
if (transport.responseXML.documentElement.getElementsByTagName("js"))
|
|
{
|
|
var scripts = transport.responseXML.documentElement.getElementsByTagName("js");
|
|
var nbScripts = scripts.length;
|
|
for (i = 0; i < nbScripts; i++)
|
|
eval(scripts[i].firstChild.data);
|
|
}
|
|
|
|
printEtat(0);
|
|
},
|
|
onFailure: function() { printEtat(3); }
|
|
}
|
|
);
|
|
}
|
|
|
|
function page_accueil()
|
|
{
|
|
clearScreen();
|
|
printEtat(5);
|
|
|
|
if (username == "root" || username == "pierre-o")
|
|
$('titre').src = imgTitres_dir + "bienvenuePierreO.png";
|
|
else if (username == "sergcaen" || username == "serge")
|
|
$('titre').src = imgTitres_dir + "bienvenueSerge.png";
|
|
else if (username == "christine" || username == "chriscaen")
|
|
$('titre').src = imgTitres_dir + "bienvenueChristine.png";
|
|
else if (username == "raphael" || username == "minou")
|
|
$('titre').src = imgTitres_dir + "bienvenueRaphael.png";
|
|
else if (username == "florence" || username == "floflo")
|
|
$('titre').src = imgTitres_dir + "bienvenueFlorence.png";
|
|
else if (username == "florent")
|
|
$('titre').src = imgTitres_dir + "bienvenueFlorent.png";
|
|
else if (username == "alisson13081991" || username == "alisson13081991@hotmail.fr")
|
|
$('titre').src = imgTitres_dir + "bienvenueAlisson.png";
|
|
else
|
|
$('titre').src = imgTitres_dir + "bienvenue.png";
|
|
|
|
new Ajax.Request(
|
|
'ajax.php',
|
|
{
|
|
method: 'get',
|
|
parameters: {d: "accueil"},
|
|
onSuccess: function(transport, json)
|
|
{
|
|
var applications = transport.responseXML.documentElement.getElementsByTagName("application");
|
|
for (i = applications.length - 1; i >= 0; i--)
|
|
{
|
|
var app = new Application(applications[i]);
|
|
apps.pop(app);
|
|
|
|
var elt = app.getHomeElt();
|
|
|
|
$('corps').appendChild(elt);
|
|
}
|
|
printEtat(0);
|
|
},
|
|
onFailure: function() { printEtat(3); }
|
|
}
|
|
);
|
|
}
|
|
|
|
function runApplication(property, display, json){
|
|
alert("Aucun lancement à faire !");
|
|
}
|
|
|
|
//Menu
|
|
var menu_timeout;
|
|
|
|
function showMenu()
|
|
{
|
|
if (menu_timeout)
|
|
clearTimeout(menu_timeout);
|
|
|
|
$('menu').style.display = "block";
|
|
}
|
|
|
|
function setHideMenuTimeout()
|
|
{
|
|
menu_timeout = setTimeout('hideShownMenu()', 500);
|
|
}
|
|
|
|
function hideShownMenu()
|
|
{
|
|
$('menu').style.display = "none";
|
|
} |