307 lines
16 KiB
PHP
307 lines
16 KiB
PHP
<?php
|
||
session_start ();
|
||
include_once 'clazz/Zincluder.php';
|
||
if( !isset($_SESSION ['session_id']) or !isset($_SESSION ['session_mdp']) ) {
|
||
header ( 'Location:401.php' );
|
||
exit ();
|
||
}
|
||
$me = new Membre ( $_SESSION ['session_id'] );
|
||
$me->connect ( $_SESSION ['session_mdp'] );
|
||
if ($me->isAdminLevelLowerThan ( 15 )) {
|
||
header ( 'Location:401.php' );
|
||
exit ();
|
||
}
|
||
?>
|
||
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<link rel="stylesheet" href="css/adminStyle.css"/>
|
||
<meta charset="utf-8"/>
|
||
<title>La console d'admin</title>
|
||
</head>
|
||
<body>
|
||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
|
||
<script>jQuery.fn.extend({disable: function(state){return this.each(function(){this.disabled=state;});}});</script>
|
||
<section class="commander">
|
||
<div class="commanderCommandSelector">
|
||
Commande :
|
||
<select id="commandSelector">
|
||
<option value="get" selected="true">get</option>
|
||
<option value="set">set</option>
|
||
<option value="remove">remove</option>
|
||
<option value="add">add</option>
|
||
<option value="bdd">bdd</option>
|
||
</select><br/>
|
||
</div>
|
||
|
||
<div class="commander" id="getCommander" style="display: block;">
|
||
<label for="getCommanderCibleSelector">Cible :</label>
|
||
<input type="text" id="getCommanderCibleSelector" alt="Un selecteur" title="Un selecteur"/>
|
||
</div>
|
||
|
||
<div class="commander" id="setCommander" style="display: none;">
|
||
<label for="setCommanderCibleSelector">Cible :</label>
|
||
<input type="text" id="setCommanderCibleSelector" alt="Un selecteur" title="Un selecteur"/><br/>
|
||
|
||
<label for="setCommanderAttributeSelector">Attribut :</label>
|
||
<input type="text" id="setCommanderAttributeSelector" alt="Un nom d'attribut" title="Un nom d'attribut"/><br/>
|
||
|
||
<label for="setCommanderValeurSelector">Valeur :</label>
|
||
<input type="text" id="setCommanderValeurSelector" alt="Une valeur" title="Une valeur"/><br/>
|
||
</div>
|
||
|
||
<div class="commander" id="addCommander" style="display: none;">
|
||
Sujet :
|
||
<select id="addClassSelector">
|
||
<option value="membre" selected="true">Membre</option>
|
||
<option value="discussion">Discussion</option>
|
||
<option value="message">Message</option>
|
||
<option value="projet">Projet</option>
|
||
<option value="version">Version</option>
|
||
</select><br/>
|
||
|
||
<div class="addDivAttribute" id="addDivAttributeMembre" style="display: block;">
|
||
<span>Pseudo :<input type="text" class="addCommanderAttribute pseudo" alt="Un pseudonyme valide" title="Un pseudonyme valide"/></span><br/>
|
||
<span>Mot de passe :<input type="text" class="addCommanderAttribute mdp" alt="Un mot de passe valide" title="Un mot de passe valide"/></span><br/>
|
||
<span>Email :<input type="text" class="addCommanderAttribute email" alt="Une adresse mail valide (outrepasse la v<>rification)" title="Une adresse mail valide (outrepasse la vérification)"/></span><br/>
|
||
<span class="facultatif">Date de création :<input type="text" class="addCommanderAttribute dateCreation" alt="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de réception de la requête" title="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de réception de la requête"/></span><br/>
|
||
<span class="facultatif">Bannière :<input type="text" class="addCommanderAttribute banniere" alt="Un chemin vers une image, si vide, alors utilise la bannière de base" title="Un chemin vers une image, si vide, alors utilise la bannière de base"/></span><br/>
|
||
<span class="facultatif">Message :<input type="text" class="addCommanderAttribute message" alt="Une chaine de caractères, si vide, aucun message ne sera affich<63>" title="Une chaine de caractères, si vide, aucun message ne sera affiché"/></span><br/>
|
||
</div>
|
||
|
||
<div class="addDivAttribute" id="addDivAttributeDiscussion" style="display: none;">
|
||
<span>Nom :<input type="text" class="addCommanderAttribute nom" alt="Un nom de discussion valide" title="Un nom de discussion valide"/></span><br/>
|
||
<span>Créateur :<input type="text" class="addCommanderAttribute createur" alt="Un sélécteur de membre ou un nombre (ID du membre)" title="Un sélécteur de membre ou un nombre (ID du membre)"/></span><br/>
|
||
<span class="facultatif">Date de création :<input type="text" class="addCommanderAttribute dateCreation" alt="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de réception de la requête" title="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de réception de la requête"/></span><br/>
|
||
<span class="facultatif">Autorisations :<input type="text" class="addCommanderAttribute autorisations" alt="Une chaine de la forme permission : a10 -> niveau d'administration ≥ 10 p -> pas de restrictions x13,35,87 -> autorise les membres à l'ID égal à 13, 35 ou 87 Si vide, publique" title="Une chaine de la forme permission : a10 -> niveau d'administration ≥ 10 p -> pas de restrictions x13,35,87 -> autorise les membres à l'ID égal à 13, 35 ou 87 Si vide, publique"/></span><br/>
|
||
</div>
|
||
|
||
<div class="addDivAttribute" id="addDivAttributeMessage" style="display: none;">
|
||
<span>Texte :<input type="text" class="addCommanderAttribute texte" alt="Un texte de message" title="Un texte de message"/></span><br/>
|
||
<span>Sender :<input type="text" class="addCommanderAttribute sender" alt="Un sélécteur de membre ou un nombre (ID du membre)" title="Un sélécteur de membre ou un nombre (ID du membre)"/></span><br/>
|
||
<span>Discussion :<input type="text" class="addCommanderAttribute discussion" alt="Un selecteur de discussion ou un nombre (ID de la discussion)" title="Un selecteur de discussion ou un nombre (ID de la discussion)"/></span><br/>
|
||
<span class="facultatif">Date d'envoi :<input type="text" class="addCommanderAttribute dateEnvoi" alt="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de réception de la requête" title="Une date Mysql valide (AAAA-MM-JJ hh:mm:ss), si vide, la date de réception de la requête"/></span><br/>
|
||
</div>
|
||
|
||
<div class="addDivAttribute" id="addDivAttributeProjet" style="display: none;">
|
||
<span>Nom :<input type="text" class="addCommanderAttribute nom" alt="Un nom de projet valide" title="Un nom de projet valide"/></span><br/>
|
||
<div class="pocesseur">
|
||
<span>Pocesseur :<input type="text" class="addCommanderAttribute pocesseur" alt="Un sélécteur de membre ou un nombre (ID du membre)" title="Un sélécteur de membre ou un nombre (ID du membre)"/></span><br/>
|
||
<button id="addProjetAddPocesseur">Ajouter un pocesseur</button><br/>
|
||
</div>
|
||
<span class="facultatif">Permissions :<input type="text" class="addCommanderAttribute permissions" alt="Quatre bits pour les permissions, si vide: 1000" title="Quatre bits pour les permissions, si vide: 1000"/></span><br/>
|
||
|
||
|
||
</div>
|
||
|
||
<div class="addDivAttribute" id="addDivAttributeVersion" style="display: none;">
|
||
<span>Nom :<input type="text" class="addCommanderAttribute nom" alt="Un nom de version valide" title="Un nom de version valide"/></span><br/>
|
||
<span>Projet :<input type="text" class="addCommanderAttribute projet" alt="Un selecteur de projet ou un nombre (ID du projet)" title="Un selecteur de projet ou un nombre (ID du projet)"/></span><br/>
|
||
<span class="facultatif">Version absolue :<input type="text" class="addCommanderAttribute versionAbsolue" alt="Un nombre pour trier les versions, si vide, le nombre suivant la plus grande valeur de version absolue pour toute les versions de ce projet" title="Un nombre pour trier les versions, si vide, le nombre suivant la plus grande valeur de version absolue pour toute les versions de ce projet"/></span><br/>
|
||
<span class="facultatif">Langage :<input type="text" class="addCommanderAttribute langage" alt="Un nombre correspondant au langage de programmation 0->Java 1->VBA Si vide, 0 sélectionné (Java)" title="Un nombre correspondant au langage de programmation 0->Java 1->VBA Si vide, 0 sélectionné (Java)"/></span><br/>
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div class="commander" id="removeCommander" style="display: none;">
|
||
<label for="removeCommanderSelector">Cible :</label>
|
||
<input type="text" id="removeCommanderSelector" alt="Un selecteur" title="Un selecteur"/>
|
||
</div>
|
||
|
||
<div class="commander" id="bddCommander" style="display: none;">
|
||
Action :
|
||
<select id="bddActionSelector">
|
||
<option value="sort" selected="true">Sort</option>
|
||
<option value="save">Save</option>
|
||
<option value="retieve">Retieve</option>
|
||
</select><br/>
|
||
|
||
</div>
|
||
|
||
</section>
|
||
<script type="text/javascript">
|
||
function updateCommandSelector(){
|
||
$('div.commander').hide();
|
||
switch($('#commandSelector').val()){
|
||
case 'get':
|
||
$('#getCommander').show();
|
||
break;
|
||
case 'set':
|
||
$('#setCommander').show();
|
||
break;
|
||
case 'add':
|
||
$('#addCommander').show();
|
||
break;
|
||
case 'remove':
|
||
$('#removeCommander').show();
|
||
break;
|
||
case 'bdd':
|
||
$('#bddCommander').show();
|
||
break;
|
||
}
|
||
}
|
||
$('#commandSelector').change(updateCommandSelector);
|
||
|
||
function updateAddCommandClassSelector(){
|
||
$('div.addDivAttribute').hide();
|
||
switch($('#addClassSelector').val()){
|
||
case 'membre':
|
||
$('#addDivAttributeMembre').show();
|
||
break;
|
||
case 'discussion':
|
||
$('#addDivAttributeDiscussion').show();
|
||
break;
|
||
case 'message':
|
||
$('#addDivAttributeMessage').show();
|
||
break;
|
||
case 'projet':
|
||
$('#addDivAttributeProjet').show();
|
||
break;
|
||
case 'version':
|
||
$('#addDivAttributeVersion').show();
|
||
break;
|
||
}
|
||
}
|
||
$('#addClassSelector').change(updateAddCommandClassSelector);
|
||
|
||
updateCommandSelector();
|
||
updateAddCommandClassSelector();
|
||
|
||
function addProjetAddPocesseur(){
|
||
$('#addProjetAddPocesseur').before('<span>Pocesseur :<input type="text" class="addCommanderAttribute pocesseur" alt="Un sélécteur de membre ou un nombre (ID du membre)" title="Un sélécteur de membre ou un nombre (ID du membre)"/></span>');
|
||
$($('#addProjetAddPocesseur').prev().children()[0]).keyup(updateCommandOutput);
|
||
|
||
$('#addProjetAddPocesseur').before('<button class="addProjetRemovePocesseur">-</button>')
|
||
$('#addProjetAddPocesseur').prev().click(addProjetRemovePocesseur);
|
||
$('#addProjetAddPocesseur').before('<br/>');
|
||
updateCommandOutput();
|
||
}
|
||
$('#addProjetAddPocesseur').click(addProjetAddPocesseur);
|
||
|
||
function addProjetRemovePocesseur(e){
|
||
$(e.target).prev().remove();
|
||
$(e.target).next().remove();
|
||
$(e.target).remove();
|
||
updateCommandOutput();
|
||
}
|
||
$('.addProjetRemovePocesseur').click(addProjetRemovePocesseur);
|
||
|
||
var commandMode = 'gui';
|
||
function switchCommandMode(){
|
||
|
||
}
|
||
$('#switchMode').click(switchCommandMode);
|
||
|
||
|
||
</script>
|
||
<script>
|
||
var command = "";
|
||
var allRequiredFieldsFilled = false;
|
||
function updateCommandOutput(e){
|
||
switch($('#commandSelector').val()){
|
||
case 'get':
|
||
var cible = $('#getCommanderCibleSelector').val();
|
||
command = 'GET' + ' ' + cible;
|
||
allRequiredFieldsFilled = !!cible;
|
||
break;
|
||
case 'set':
|
||
var cible = $('#setCommanderCibleSelector').val();
|
||
var attribut = $('#setCommanderAttributeSelector').val();
|
||
var valeur = $('#setCommanderValeurSelector').val();
|
||
allRequiredFieldsFilled = !!cible && !!attribut && !!valeur;
|
||
command = 'SET' + ' ' + cible + ' ' + attribut + ' ' + valeur;
|
||
break;
|
||
case 'remove':
|
||
var cible = $('#removeCommanderSelector').val();
|
||
command = 'REMOVE' + ' ' + cible;
|
||
allRequiredFieldsFilled = !!cible;
|
||
break;
|
||
case 'add':
|
||
command = 'ADD ' + $('#addClassSelector').val() + ' ';
|
||
switch($('#addClassSelector').val()){
|
||
case 'membre':
|
||
var pseudo = $('#addDivAttributeMembre > span > .pseudo').val();
|
||
var mdp = $('#addDivAttributeMembre > span > .mdp').val();
|
||
var email = $('#addDivAttributeMembre > span > .email').val();
|
||
var dateCreation = $('#addDivAttributeMembre > span > .dateCreation').val();
|
||
var banniere = $('#addDivAttributeMembre > span > .banniere').val();
|
||
var message = $('#addDivAttributeMembre > span > .message').val();
|
||
|
||
command += 'pseudo "' + pseudo + '"' + ' mdp "' + mdp + '"' + ' email "' + email + '"' + ((dateCreation!='')?' dateCreation "' + dateCreation + '"' : '') + ((banniere!='')?' banniere "' + banniere + '"' : '') + ((message!='')?' message "' + message + '"' : '');
|
||
allRequiredFieldsFilled = !!pseudo && !!mdp && !!email;
|
||
break;
|
||
case 'discussion':
|
||
var nom = $('#addDivAttributeDiscussion > span > .nom').val();
|
||
var createur = $('#addDivAttributeDiscussion > span > .createur').val();
|
||
var dateCreation = $('#addDivAttributeDiscussion > span > .dateCreation').val();
|
||
var autorisations = $('#addDivAttributeDiscussion > span > .autorisations').val();
|
||
|
||
command += 'nom "' + nom + '"' + ' createur ' + ((createur!='')?createur:'???') + '' + ((dateCreation!='')?' dateCreation "' + dateCreation + '"' : '') + ((autorisations!='')?' autorisations "' + autorisations + '"' : '');
|
||
allRequiredFieldsFilled = !!nom && !!createur;
|
||
break;
|
||
case 'message':
|
||
var texte = $('#addDivAttributeMessage > span > .texte').val();
|
||
var sender = $('#addDivAttributeMessage > span > .sender').val();
|
||
var discussion = $('#addDivAttributeMessage > span > .discussion').val();
|
||
var dateEnvoi = $('#addDivAttributeMessage > span > .dateEnvoi').val();
|
||
|
||
command += 'texte "' + texte + '"' + ' sender ' + ((sender!='')?sender:'???') + ' discussion ' + ((discussion!='')?discussion:'???') + ((dateEnvoi!='')?' dateEnvoi "' + dateEnvoi + '"' : '');
|
||
allRequiredFieldsFilled = !!texte && !!sender && !!discussion;
|
||
break;
|
||
case 'projet':
|
||
var nom = $('#addDivAttributeProjet > span > .nom').val();
|
||
var permissions = $('#addDivAttributeProjet > span > .permissions').val();
|
||
pocesseurs = [];
|
||
$('.addCommanderAttribute.pocesseur').each(function(i) {
|
||
if($(this).val() != "")pocesseurs.push($(this).val());
|
||
});
|
||
command += 'nom "' + nom + '"' + ((permissions!='')?' permissions "' + permissions + '"' : '') + ' pocesseurs [ ' + pocesseurs.join(' ') +' ]';
|
||
allRequiredFieldsFilled = !!nom && pocesseurs.length > 0;
|
||
break;
|
||
case 'version':
|
||
var nom = $('#addDivAttributeVersion > span > .nom').val();
|
||
var projet = $('#addDivAttributeVersion > span > .projet').val();
|
||
var versionAbsolue = $('#addDivAttributeVersion > span > .versionAbsolue').val();
|
||
var langage = $('#addDivAttributeVersion > span > .langage').val();
|
||
|
||
command += 'nom "' + nom + '"' + ' projet ' + ((projet!='')?projet:'???') + ((versionAbsolue!='')?' versionAbsolue ' + versionAbsolue:'') + ((langage!='')?' langage ' + langage:'');
|
||
allRequiredFieldsFilled = !!nom && !!projet;
|
||
}
|
||
break;
|
||
case 'bdd':
|
||
var action = $('#bddActionSelector').val();
|
||
command = 'BDD' + ' ' + action;
|
||
allRequiredFieldsFilled = true;
|
||
break;
|
||
}
|
||
$('#send').disable(!allRequiredFieldsFilled);
|
||
$('#currentCommand').text(command);
|
||
}
|
||
$('select').change(updateCommandOutput);
|
||
$('input[type="text"]').keyup(updateCommandOutput);
|
||
</script>
|
||
<br/>
|
||
<section>
|
||
Commande :«<span id="currentCommand">...</span>»
|
||
<button id="send">Envoyer la requête</button>
|
||
<button id="switchMode">Passer en mode commande</button>
|
||
</section>
|
||
<br/>
|
||
<section class="reponce">
|
||
<h3>Dialogue :</h3>
|
||
<samp id="adminDialogAnswer">
|
||
Hello !!!<br />
|
||
</samp>
|
||
</section>
|
||
<footer>
|
||
<h5>Syntaxes :</h5>
|
||
GET selector<br/>
|
||
SET selector attributeName value<br/>
|
||
REMOVE selector<br/>
|
||
ADD class attributeName attributeValue attributeName attributeValue<br/>
|
||
</footer>
|
||
</body>
|
||
</html>
|