disconnect chat en page switch / tab closed
This commit is contained in:
16
config.php
16
config.php
@@ -1185,7 +1185,7 @@ class Databap extends PhpObject
|
||||
$asHistory = $this->oMySql->selectRows($asInfo);
|
||||
foreach($asHistory as $asCode)
|
||||
{
|
||||
$asProfile['history'][$asCode['id_code']]['action'] = (($asCode['refer_id']==$asCode['id_code'])?'Création':'Modification').' de code';
|
||||
$asProfile['history'][$asCode['id_code']]['action'] = (($asCode['refer_id']==$asCode['id_code'])?'Création':'Modification').' de code';
|
||||
$asProfile['history'][$asCode['id_code']]['date'] = self::getDateFormat($asCode['led']);
|
||||
$asProfile['history'][$asCode['id_code']]['description'] = $asCode['description'];
|
||||
$asProfile['history'][$asCode['id_code']]['phrase'] = ($asCode['phrase']=='')?$asCode['id_code']:$asCode['phrase'];
|
||||
@@ -1326,7 +1326,6 @@ class Databap extends PhpObject
|
||||
$asInfo['constraint'][MySqlManager::getId(MySqlManager::CHAN_TABLE)] = $iChanId;
|
||||
$asInfo['constOpe'][MySqlManager::getId(MySqlManager::CHAN_TABLE)] = '=';
|
||||
}
|
||||
//$this->oMySql->bTrace = true;
|
||||
return (count($this->oMySql->selectRows($asInfo))>0);
|
||||
}
|
||||
|
||||
@@ -2152,11 +2151,16 @@ class Databap extends PhpObject
|
||||
|
||||
public function disconnectChat()
|
||||
{
|
||||
//$this->getConnectedChans();
|
||||
|
||||
$sTime = $this->oMySql->selectRows(array('select'=>'DATE_SUB(NOW(), INTERVAL '.self::KEEP_ALIVE.' SECOND)'));
|
||||
$this->oMySql->updateRows(MySqlManager::CONN_TABLE, array(MySqlManager::getId(MySqlManager::USER_TABLE)=>$this->getUserId()), array('led'=>$sTime));
|
||||
$this->addMessage('se déconnecte', self::MESSAGE_CONN, self::ALL_CHAN_ID);
|
||||
|
||||
//Is the user connected?
|
||||
$sUserIdColName = MySqlManager::getId(MySqlManager::USER_TABLE);
|
||||
$bConnected = $this->oMySql->selectRows(array('select'=>array('COUNT(1)'), 'from'=>MySqlManager::CONN_TABLE, 'constraint'=>array($sUserIdColName=>$this->getUserId(), 'led'=>$sTime), 'constOpe'=>array($sUserIdColName=>'=', 'led'=>'>')));
|
||||
if($bConnected)
|
||||
{
|
||||
$this->oMySql->updateRows(MySqlManager::CONN_TABLE, array(MySqlManager::getId(MySqlManager::USER_TABLE)=>$this->getUserId()), array('led'=>$sTime));
|
||||
$this->addMessage('se déconnecte', self::MESSAGE_CONN, self::ALL_CHAN_ID);
|
||||
}
|
||||
}
|
||||
|
||||
public function checkValue($sTableName, $asConstraints)
|
||||
|
||||
@@ -34,21 +34,21 @@
|
||||
<div id="help" class="help tiny_round">
|
||||
<p class="title">Manuel d'utilisation<span id="close_help" class="clickable">x</span></p>
|
||||
<p class="subtitle"><span>Message</span></p>
|
||||
<p class="item"><span class="key">Echap</span>Supprime le texte en cours de rédaction</p>
|
||||
<p class="item"><span class="key">Flèche haut</span>Répète dernier message envoyé</p>
|
||||
<p class="item"><span class="key">Echap</span>Supprime le texte en cours de rédaction</p>
|
||||
<p class="item"><span class="key">Flèche haut</span>Répète dernier message envoyé</p>
|
||||
<p class="item"><span class="key">@X Y</span>Vous dites Y à X (pseudo de Y en rouge)</p>
|
||||
<p class="item"><span class="key">/me X</span>Votre_pseudo X. Utile lorsque vous voulez parler de vous à la 3ème personne. Par exemple : /me se touche la nouille au taff</p>
|
||||
<p class="item"><span class="key">/mail X Y</span>Vous envoyez à X un email contenant Y (adresse professionel)</p>
|
||||
<p class="item"><span class="key">/me X</span>Votre_pseudo X. Utile lorsque vous voulez parler de vous à la 3ème personne. Par exemple : /me se touche la nouille au taff</p>
|
||||
<p class="item"><span class="key">/mail X Y</span>Vous envoyez à X un email contenant Y (adresse professionel)</p>
|
||||
<p class="item">
|
||||
<span class="key">Tab</span>
|
||||
Chaque hit pré-remplie le message en faisant défiler la liste des connectés.
|
||||
Il est possible d'écrire la/les premières lettres afin de faire commencer le défilement aux pseudos commençant par ces lettre-ci.
|
||||
Le fonctionnement demeure le même si l'on fait précéder le pseudo par @
|
||||
Chaque hit pré-remplie le message en faisant défiler la liste des connectés.
|
||||
Il est possible d'écrire la/les premières lettres afin de faire commencer le défilement aux pseudos commençant par ces lettre-ci.
|
||||
Le fonctionnement demeure le même si l'on fait précéder le pseudo par @
|
||||
</p>
|
||||
<p class="subtitle"><span>Chans</span></p>
|
||||
<p class="item">Les chans sont divisés en trois catégories : les chans privés (PM, pour deux personnes seulement), les chans entreprise (pour toutes les personnes d'une même entreprise) et les autres (chans publiques)</p>
|
||||
<p class="item"><span class="key">/join #X</span>Vous rejoignez le chan X (si autorisé)</p>
|
||||
<p class="item"><span class="key">/pm #X</span>Vous rejoignez le chan privé (vous et X)</p>
|
||||
<p class="item">Les chans sont divisés en trois catégories : les chans privés (PM, pour deux personnes seulement), les chans entreprise (pour toutes les personnes d'une même entreprise) et les autres (chans publiques)</p>
|
||||
<p class="item"><span class="key">/join #X</span>Vous rejoignez le chan X (si autorisé)</p>
|
||||
<p class="item"><span class="key">/pm #X</span>Vous rejoignez le chan privé (vous et X)</p>
|
||||
<p class="item"><span class="key">/quit #X</span>Vous quittez le chan X</p>
|
||||
<p class="item"><span class="key">/chans</span>Liste des chans publiques disponibles (aussi accessible via /channels et /list)</p>
|
||||
<p class="subtitle"><span>Options</span></p>
|
||||
@@ -76,6 +76,7 @@ databap.pageInit = function()
|
||||
|
||||
//Page variables
|
||||
databap.tmp('sending_msg', 'boolean');
|
||||
databap.tmp('refresh', 'boolean');
|
||||
databap.initVar('unread_msg', 'object');
|
||||
|
||||
//Main elements
|
||||
@@ -130,12 +131,18 @@ databap.pageInit = function()
|
||||
//Disconnect from the chat
|
||||
databap.onQuit = function()
|
||||
{
|
||||
//databap.getSyncInfo('disconnect_chat');
|
||||
if(databap.tmp('refresh') == false) databap.getSyncInfo('disconnect_chat');
|
||||
databap.vars.chans_list = {};
|
||||
if(typeof oChatTimer != "undefined") clearTimeout(oChatTimer);
|
||||
if(typeof oUserTimer != "undefined") clearTimeout(oUserTimer);
|
||||
};
|
||||
|
||||
databap.onKeyDown = function(e)
|
||||
{
|
||||
if(e.keyCode == 116) databap.tmp('refresh', true);
|
||||
else databap.tmp('refresh', false);
|
||||
};
|
||||
|
||||
//Sidebar
|
||||
databap.getMainElem('.sidebar_box_title').click
|
||||
(
|
||||
@@ -258,7 +265,7 @@ function joinChan(sChanName, bFirstConn, asAttendees, bSwitchOnJoin)
|
||||
'json',
|
||||
function()
|
||||
{
|
||||
databap.addFailIcon('Chan non autorisé');
|
||||
databap.addFailIcon('Chan non autorisé');
|
||||
},
|
||||
true
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user