disconnect chat en page switch / tab closed

This commit is contained in:
2013-10-06 10:49:26 +02:00
parent 89970f9fe0
commit 7179edae80
2 changed files with 29 additions and 18 deletions

View File

@@ -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)

View File

@@ -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&egrave;che haut</span>R&eacute;p&egrave;te dernier message envoyé</p>
<p class="item"><span class="key">Echap</span>Supprime le texte en cours de r&eacute;daction</p>
<p class="item"><span class="key">Fl&egrave;che haut</span>R&eacute;p&egrave;te dernier message envoy&eacute;</p>
<p class="item"><span class="key">@X Y</span>Vous dites Y &agrave; 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 &agrave; la 3&egrave;me personne. Par exemple : /me se touche la nouille au taff</p>
<p class="item"><span class="key">/mail X Y</span>Vous envoyez &agrave; 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&eacute;-remplie le message en faisant d&eacute;filer la liste des connect&eacute;s.
Il est possible d'&eacute;crire la/les premi&egrave;res lettres afin de faire commencer le d&eacute;filement aux pseudos commen&ccedil;ant par ces lettre-ci.
Le fonctionnement demeure le m&ecirc;me si l'on fait pr&eacute;c&eacute;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&eacute;s en trois cat&eacute;gories : les chans priv&eacute;s (PM, pour deux personnes seulement), les chans entreprise (pour toutes les personnes d'une m&ecirc;me entreprise) et les autres (chans publiques)</p>
<p class="item"><span class="key">/join #X</span>Vous rejoignez le chan X (si autoris&eacute;)</p>
<p class="item"><span class="key">/pm #X</span>Vous rejoignez le chan priv&eacute; (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&eacute;');
},
true
);