Création du loader débutée

This commit is contained in:
xdrm-brackets 2015-11-22 19:17:04 +01:00
parent 77ab852c97
commit 551916d29d
8 changed files with 63 additions and 139 deletions

View File

@ -62,15 +62,28 @@ body{
}
#DRAGNDROP{
#LOADER{
/* position */
/*display: block;*/ display: none;
display: block;
position: fixed;
width: 0;
height: 0;
top: 0;
left: 0;
width: 100%;
height: 2px;
/* Z */
/* background */
background-color: #22d135;
/* z axis */
z-index: 100;
/* animation */
transition: all .2s ease-in-out;
-moz-transition: all .2s ease-in-out;
-webkit-transition: all .2s ease-in-out;
-ms-transition: all .2s ease-in-out;
-o-transition: all .2s ease-in-out;
}

View File

@ -27,10 +27,10 @@ $notifNotifNum = 5;
<!-- Dépendences Javascript -->
<script type='text/javascript' src='API.js' ></script> <!-- Gestion des raccourcis clavier -->
<script type='text/javascript' src='js/pageManager.js' ></script> <!-- Gestion des raccourcis clavier -->
<script type='text/javascript' src='API.js' ></script> <!-- Gestion des dialogues client/serveur -->
<script type='text/javascript' src='js/pageManager.js' ></script> <!-- Gestion réseau/chargement/lient -->
<script type='text/javascript' src='js/shortcut.js' ></script> <!-- Gestion des raccourcis clavier -->
<script type='text/javascript' src='js/dragndrop.js' ></script> <!-- Gestion des raccourcis clavier -->
<script type='text/javascript' src='js/loader.js' ></script> <!-- Gestion du loader -->
</head>
<body class='trHoverActivated_'><!-- CORPS DE LA PAGE -->
@ -43,7 +43,7 @@ $notifNotifNum = 5;
}
?>
<div id='DRAGNDROP'></div>
<div id='LOADER'></div>
<div id='WRAPPER'>

View File

@ -30,6 +30,10 @@
/* [0] VARIABLES
==============================================================*/
/* Loader */
var l = Loader.prototype.getInstance( document.getElementById('LOADER') );
/* pageManager */
var pageM;
/* API */
@ -75,6 +79,8 @@ var connected = !( DOM.AUTH.children[0].innerHTML == 'Connexion' );
/* [b] API.js
==============================================================*/
API = new APIClass();

View File

@ -1,103 +0,0 @@
function DragnDrop(){};
DragnDrop.prototype = {
draggableElements: [], // contiendra les élément déplaçables
droppableElements: [], // contiendra les éléménts acceptant
state: false,
dragElement: null,
dropElement: null,
dropColors: [], // contiendra la valeur de départ de éléments acceptant
handler: null,
absoluteOffset: function(element){ // retourne les offsets absolus de l'élément (absolus = par rapport à la page)
if( element != document.body ){
var parent = this.absoluteOffset(element.parentNode);
return {
top: element.offsetTop+parent.top,
left: element.offsetLeft+parent.left
};
}else
return {top: 0, left: 0};
},
mouseDownEvent: function(event, pointer){ // gestion du clic sur l'élément (pointeur sur this)
},
setDraggable: function(element){ // ajoute l'élément aux déplaçables et initialise ses évènements
element.className = (element.className.length==0) ? 'no-select' : element.className+' no-select'; // on bloque la selection dessus
this.draggableElements.push( element ); // ajout à la listes
},
setDroppable: function(element){ // ajoute l'éléments aux receveurs
element.className = (element.className.length==0) ? 'no-select' : element.className+' no-select'; // on bloque la selection dessus
this.droppableElements.push( element ); // ajout à la liste
},
init: function(handler){ // initialise le système
var pointer = this;
this.handler = handler;
// on définit la couleur de départ
for( var i = 0 ; i < pointer.droppableElements.length ; i++ )
pointer.dropColors[i] = window.getComputedStyle(pointer.droppableElements[i], null).getPropertyValue('color');
// evenement mousedown
document.body.addEventListener('mousedown', function(e){
if( pointer.draggableElements.indexOf(e.target) > -1 ){ // si l'élément est dans la liste des "draggables"
pointer.dragElement = e.target.parentNode;
DOM.DRAGNDROP.innerHTML = '';
DOM.DRAGNDROP.appendChild( e.target.parentNode.cloneNode() );
DOM.DRAGNDROP.children[0].innerHTML = e.target.parentNode.innerHTML;
DOM.DRAGNDROP.children[0].style.border = '1px solid #aaa';
DOM.DRAGNDROP.children[0].style.boxShadow = '0 0 10px #ddd';
DOM.DRAGNDROP.style.top = e.clientY + 'px';
DOM.DRAGNDROP.style.left = e.clientX + 'px';
DOM.DRAGNDROP.style.display = 'block';
pointer.state = true;
}
}, false);
// evenement mousemove
document.body.addEventListener('mousemove', function(e){
if( pointer.state ){
DOM.DRAGNDROP.style.top = e.clientY + 3 + 'px';
DOM.DRAGNDROP.style.left = e.clientX + 3 +'px';
for( var i = 0 ; i < pointer.droppableElements.length ; i++ )
pointer.droppableElements[i].style.color = pointer.dropColors[i];
if( pointer.droppableElements.indexOf(e.target) > -1 )
e.target.style.color = '#777';
}
}, false);
// evenement mouseup
document.body.addEventListener('mouseup', function(e){
if( pointer.state ){
DOM.DRAGNDROP.style.display = 'none';
pointer.state = false;
if( pointer.droppableElements.indexOf(e.target) > -1 ){ // si l'élément est dans la liste des "draggables" et qu'il est "draggé"
pointer.dropElement = e.target;
// on exécute le handler avec le drag/drop
pointer.handler(pointer.dragElement, pointer.dropElement);
}
for( var i = 0 ; i < pointer.droppableElements.length ; i++ )
pointer.droppableElements[i].style.color = pointer.dropColors[i];
}
}, false);
}
}

20
js/loader.js Normal file
View File

@ -0,0 +1,20 @@
function Loader(element){ this.element = element; };
Loader.prototype = {
instance: null, // instance Singleton
element: this.element, // contiendra l'élément loader
value: 0, // contiendra le pourcentage de chargement
update: function(){ this.value = (this.value>=100)?100:this.value; this.element.style.width = this.value+'%'; },
start: function(){ this.value = 0; this.update(); },
inc: function(v){ this.value += (v)?v:10; this.update(); },
stop: function(){ this.value = 100; this.update(); },
getInstance: function(element){
if( Loader.prototype.instance == null ) Loader.prototype.instance = new Loader(element);
return Loader.prototype.instance;
}
};

View File

@ -37,8 +37,12 @@ class DataBase{
/* retourne une instance de la classe */
public static function getInstance(){
if( DataBase::$instance == null )
if( DataBase::$instance == null ){
if( $_SERVER['HTTP_HOST'] == 'sid.local' ) // si co en local
DataBase::$instance = new DataBase("localhost", "sid2", "php", "Qt358nUdyeTxLDM8");
else // si co en ligne
DataBase::$instance = new DataBase("mysql.hostinger.fr", "u712664263_sid", "u712664263_php", "Qt358nUdyeTxLDM8");
}
return DataBase::$instance;
}

View File

@ -35,7 +35,7 @@ if( permission('admin') ){
// var_dump( $answer->userlist );
echo "<table class='basic col4'><tbody>";
echo "<table class='basic col5'><tbody>";
foreach($answer->userlist as $user){
echo "<tr>";
echo "<td><span class='link'>".$user['id']."</span></td>";
@ -44,9 +44,15 @@ if( permission('admin') ){
// si l'utilisateur est admin
if( in_array('admin', $user['role']) )
echo "<td><input type='checkbox' id='".$user['id']."' checked><label for='".$user['id']."'></label> admin</td>";
echo "<td><input type='checkbox' id='".$user['id']."admin' checked><label for='".$user['id']."admin'></label> admin</td>";
else
echo "<td><input type='checkbox' id='".$user['id']."'><label for='".$user['id']."'></label> admin</td>";
echo "<td><input type='checkbox' id='".$user['id']."admin'><label for='".$user['id']."admin'></label> admin</td>";
// si l'utilisateur est référent
if( in_array('master', $user['role']) )
echo "<td><input type='checkbox' id='".$user['id']."referent' checked><label for='".$user['id']."referent'></label> référent</td>";
else
echo "<td><input type='checkbox' id='".$user['id']."referent'><label for='".$user['id']."referent'></label> référent</td>";
echo "</tr>";
}

View File

@ -1,22 +0,0 @@
Utilisateur
[*] GROUPES
x
[*] PARCOURS
UE
MODULE
[fait] CONTROLE (même si pas de note)
NOTES
Enseignant
[*] GROUPES
[fait] ceux à qui j'ai des notes à donner
[*] NOTES
afficher celles pour les modules ou il est correcteur
Admin
[*] GROUPES
visu+modif groupes (quelque soit semestre)
[*] JURY