New /invite
This commit is contained in:
@@ -1697,6 +1697,22 @@ class Databap extends PhpObject
|
|||||||
$this->addMessage('quitte '.($asPm['is_pm']?'le chan privé':'#'.$sChanName), self::MESSAGE_CONN, $iChanId);
|
$this->addMessage('quitte '.($asPm['is_pm']?'le chan privé':'#'.$sChanName), self::MESSAGE_CONN, $iChanId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function inviteChan($iUserId, $sChanName)
|
||||||
|
{
|
||||||
|
$sSafeChanName = $this->getChanSafeName($sChanName);
|
||||||
|
$bSuccess = false;
|
||||||
|
if($iUserId>0 && $this->checkChanAuth($sSafeChanName, $iUserId))
|
||||||
|
{
|
||||||
|
$sType = self::MESSAGE_INVITE;
|
||||||
|
$sMessage = $iUserId;
|
||||||
|
$sChanId = $this->getChanId($sChanName);
|
||||||
|
$bSuccess = $this->addMessage($sMessage, $sType, $sChanId);
|
||||||
|
if($bSuccess) $sDesc = 'Invitation envoyée';
|
||||||
|
}
|
||||||
|
else $sDesc = 'Désolé, cette personne n\'est pas autorisé sur ce channel';
|
||||||
|
return $this->getJsonPostResult($bSuccess, $sDesc);
|
||||||
|
}
|
||||||
|
|
||||||
private function getActiveChannels()
|
private function getActiveChannels()
|
||||||
{
|
{
|
||||||
@@ -1907,16 +1923,6 @@ class Databap extends PhpObject
|
|||||||
$sType = self::MESSAGE_REBOOT;
|
$sType = self::MESSAGE_REBOOT;
|
||||||
$sChanName = self::ALL_CHAN_TEXT;
|
$sChanName = self::ALL_CHAN_TEXT;
|
||||||
}
|
}
|
||||||
elseif(mb_substr($sMessage, 0, 8) == '/invite ' && mb_strlen($sMessage)>8)
|
|
||||||
{
|
|
||||||
$sSafeChanName = $this->getChanSafeName($sChanName);
|
|
||||||
$iUserId = $this->getUserIdFromNickName(trim(mb_substr($sMessage, 8)));
|
|
||||||
if($iUserId>0 && $this->checkChanAuth($sSafeChanName, $iUserId))
|
|
||||||
{
|
|
||||||
$sType = self::MESSAGE_INVITE;
|
|
||||||
$sMessage = $iUserId;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif(mb_substr($sMessage, 0, 6) == '/news ' && mb_strlen($sMessage)>6)
|
elseif(mb_substr($sMessage, 0, 6) == '/news ' && mb_strlen($sMessage)>6)
|
||||||
{
|
{
|
||||||
$sType = self::MESSAGE_NEWS;
|
$sType = self::MESSAGE_NEWS;
|
||||||
|
|||||||
@@ -149,6 +149,9 @@ if($bUserOk && $sAction!=Databap::EXT_ACCESS)
|
|||||||
case 'quit_chan':
|
case 'quit_chan':
|
||||||
$sResult = $oDatabap->quitChan($sChan);
|
$sResult = $oDatabap->quitChan($sChan);
|
||||||
break;
|
break;
|
||||||
|
case 'invite_chan':
|
||||||
|
$sResult = $oDatabap->inviteChan($oUser, $sChan);
|
||||||
|
break;
|
||||||
case 'disconnect_chat':
|
case 'disconnect_chat':
|
||||||
$sResult = $oDatabap->disconnectChat();
|
$sResult = $oDatabap->disconnectChat();
|
||||||
break;
|
break;
|
||||||
|
|||||||
2
jquery/databap.js
vendored
2
jquery/databap.js
vendored
@@ -398,6 +398,7 @@ function Databap()
|
|||||||
})
|
})
|
||||||
.done(function(result)
|
.done(function(result)
|
||||||
{
|
{
|
||||||
|
//TODO use result.result and result.desc, make it standard
|
||||||
if(result==self.consts.errors.disconnected) databap.refresh();
|
if(result==self.consts.errors.disconnected) databap.refresh();
|
||||||
else if((result==self.consts.error || typeof result.success != 'undefined' && result.success==self.consts.error) && typeof fOnError !== 'undefined') fOnError();
|
else if((result==self.consts.error || typeof result.success != 'undefined' && result.success==self.consts.error) && typeof fOnError !== 'undefined') fOnError();
|
||||||
else
|
else
|
||||||
@@ -711,6 +712,7 @@ function Databap()
|
|||||||
|
|
||||||
this.feedback = function(sClass, sMsg)
|
this.feedback = function(sClass, sMsg)
|
||||||
{
|
{
|
||||||
|
if(sClass=='error' && sMsg=='') sMsg = 'Aïe ! Une erreur inconnue est suvenue';
|
||||||
$('<span>', {'class':'feedback '+sClass})
|
$('<span>', {'class':'feedback '+sClass})
|
||||||
.append($('<i>', {'class':'fa fa-inline fa-c-'+sClass}))
|
.append($('<i>', {'class':'fa fa-inline fa-c-'+sClass}))
|
||||||
.append(self.addPunctuation(sMsg))
|
.append(self.addPunctuation(sMsg))
|
||||||
|
|||||||
@@ -359,6 +359,25 @@ function joinChan(sChanName, bFirstConn, asAttendees, bSwitchOnJoin)
|
|||||||
$('#message').focus();
|
$('#message').focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function invite(sNickName, iChanId)
|
||||||
|
{
|
||||||
|
var iUserId = databap.tmp(['id_users', sNickName]);
|
||||||
|
if(iUserId>0)
|
||||||
|
{
|
||||||
|
databap.getInfo
|
||||||
|
(
|
||||||
|
'invite_chan',
|
||||||
|
function(data)
|
||||||
|
{
|
||||||
|
databap.feedback(data.result==databap.consts.success?'success':'error', data.desc);
|
||||||
|
},
|
||||||
|
{chan:iChanId, user:databap.tmp(['id_users', sNickName])},
|
||||||
|
'json'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else databap.feedback('error', 'Désolé, je connais pas cette personne !');
|
||||||
|
}
|
||||||
|
|
||||||
function currentChan(sChanName)
|
function currentChan(sChanName)
|
||||||
{
|
{
|
||||||
return (!sChanName)?$('#chan').val():$('#chan').val(sChanName).val();
|
return (!sChanName)?$('#chan').val():$('#chan').val(sChanName).val();
|
||||||
@@ -492,27 +511,40 @@ function add_message(e)
|
|||||||
case 13 : //enter
|
case 13 : //enter
|
||||||
$this = databap.getMainElem('#message');
|
$this = databap.getMainElem('#message');
|
||||||
var chat_message = $this.val();
|
var chat_message = $this.val();
|
||||||
|
var bSuccess = true;
|
||||||
if(chat_message.substr(0, 7) == '/join #') joinChan(chat_message.substr(7));
|
if(chat_message.substr(0, 7) == '/join #') joinChan(chat_message.substr(7));
|
||||||
else if(chat_message.substr(0, 7) == '/quit #') quitChan(getChanKeyName(chat_message.substr(7)));
|
else if(chat_message.substr(0, 7) == '/quit #') quitChan(getChanKeyName(chat_message.substr(7)));
|
||||||
else if(chat_message == '/help') displayHelp();
|
else if(chat_message == '/help') displayHelp();
|
||||||
|
else if(chat_message.substr(0, 8) == '/invite ') invite($.trim(chat_message.substr(8)), currentChan());
|
||||||
else if(chat_message != '' && databap.tmp('sending_msg') == false) //send
|
else if(chat_message != '' && databap.tmp('sending_msg') == false) //send
|
||||||
{
|
{
|
||||||
databap.tmp('sending_msg', true);
|
if(databap.tmp('sending_msg') == true)
|
||||||
databap.saveForm
|
{
|
||||||
(
|
databap.feedback('warning', 'Pas si pressé ! J\'ai pas encore envoyé le dernier message');
|
||||||
'add_message',
|
bSuccess = false;
|
||||||
databap.getMainElem('#chat_form'),
|
}
|
||||||
function(id)
|
else
|
||||||
{
|
{
|
||||||
databap.tmp('sending_msg', false);
|
databap.tmp('sending_msg', true);
|
||||||
refresh_chat();
|
databap.saveForm
|
||||||
},
|
(
|
||||||
true
|
'add_message',
|
||||||
);
|
databap.getMainElem('#chat_form'),
|
||||||
|
function(id)
|
||||||
|
{
|
||||||
|
databap.tmp('sending_msg', false);
|
||||||
|
refresh_chat();
|
||||||
|
},
|
||||||
|
true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(bSuccess)
|
||||||
|
{
|
||||||
|
databap.vars.prev_chat_value = chat_message;
|
||||||
|
$this.val('');
|
||||||
}
|
}
|
||||||
databap.vars.prev_chat_value = chat_message;
|
|
||||||
$this.val('');
|
|
||||||
break;
|
break;
|
||||||
case 27 : //echap
|
case 27 : //echap
|
||||||
databap.getMainElem('#message').val('');
|
databap.getMainElem('#message').val('');
|
||||||
@@ -841,6 +873,7 @@ function refresh_users()
|
|||||||
//empty current users list
|
//empty current users list
|
||||||
databap.getMainElem('#connected_users').empty();
|
databap.getMainElem('#connected_users').empty();
|
||||||
databap.tmp('users', {});
|
databap.tmp('users', {});
|
||||||
|
databap.tmp('id_users', {});
|
||||||
|
|
||||||
$.each
|
$.each
|
||||||
(
|
(
|
||||||
@@ -857,6 +890,7 @@ function refresh_users()
|
|||||||
var sSafeNickName = getSafeNickname(sNickName);
|
var sSafeNickName = getSafeNickname(sNickName);
|
||||||
databap.tmp(['users', sChankeyName, sSafeNickName], sNickName);
|
databap.tmp(['users', sChankeyName, sSafeNickName], sNickName);
|
||||||
databap.tmp(['users', databap.consts.all_chan_id, sSafeNickName], sNickName);
|
databap.tmp(['users', databap.consts.all_chan_id, sSafeNickName], sNickName);
|
||||||
|
databap.tmp(['id_users', sNickName], user_info.id_user);
|
||||||
|
|
||||||
//Append name to user list box
|
//Append name to user list box
|
||||||
var sProfileLink = databap.getInternalLink('profil', user_info.id_user);
|
var sProfileLink = databap.getInternalLink('profil', user_info.id_user);
|
||||||
|
|||||||
Reference in New Issue
Block a user