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);
|
||||
}
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
@@ -1907,16 +1923,6 @@ class Databap extends PhpObject
|
||||
$sType = self::MESSAGE_REBOOT;
|
||||
$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)
|
||||
{
|
||||
$sType = self::MESSAGE_NEWS;
|
||||
|
||||
@@ -149,6 +149,9 @@ if($bUserOk && $sAction!=Databap::EXT_ACCESS)
|
||||
case 'quit_chan':
|
||||
$sResult = $oDatabap->quitChan($sChan);
|
||||
break;
|
||||
case 'invite_chan':
|
||||
$sResult = $oDatabap->inviteChan($oUser, $sChan);
|
||||
break;
|
||||
case 'disconnect_chat':
|
||||
$sResult = $oDatabap->disconnectChat();
|
||||
break;
|
||||
|
||||
2
jquery/databap.js
vendored
2
jquery/databap.js
vendored
@@ -398,6 +398,7 @@ function Databap()
|
||||
})
|
||||
.done(function(result)
|
||||
{
|
||||
//TODO use result.result and result.desc, make it standard
|
||||
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
|
||||
@@ -711,6 +712,7 @@ function Databap()
|
||||
|
||||
this.feedback = function(sClass, sMsg)
|
||||
{
|
||||
if(sClass=='error' && sMsg=='') sMsg = 'Aïe ! Une erreur inconnue est suvenue';
|
||||
$('<span>', {'class':'feedback '+sClass})
|
||||
.append($('<i>', {'class':'fa fa-inline fa-c-'+sClass}))
|
||||
.append(self.addPunctuation(sMsg))
|
||||
|
||||
@@ -359,6 +359,25 @@ function joinChan(sChanName, bFirstConn, asAttendees, bSwitchOnJoin)
|
||||
$('#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)
|
||||
{
|
||||
return (!sChanName)?$('#chan').val():$('#chan').val(sChanName).val();
|
||||
@@ -492,27 +511,40 @@ function add_message(e)
|
||||
case 13 : //enter
|
||||
$this = databap.getMainElem('#message');
|
||||
var chat_message = $this.val();
|
||||
|
||||
var bSuccess = true;
|
||||
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 == '/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
|
||||
{
|
||||
databap.tmp('sending_msg', true);
|
||||
databap.saveForm
|
||||
(
|
||||
'add_message',
|
||||
databap.getMainElem('#chat_form'),
|
||||
function(id)
|
||||
{
|
||||
databap.tmp('sending_msg', false);
|
||||
refresh_chat();
|
||||
},
|
||||
true
|
||||
);
|
||||
if(databap.tmp('sending_msg') == true)
|
||||
{
|
||||
databap.feedback('warning', 'Pas si pressé ! J\'ai pas encore envoyé le dernier message');
|
||||
bSuccess = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
databap.tmp('sending_msg', true);
|
||||
databap.saveForm
|
||||
(
|
||||
'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;
|
||||
case 27 : //echap
|
||||
databap.getMainElem('#message').val('');
|
||||
@@ -841,6 +873,7 @@ function refresh_users()
|
||||
//empty current users list
|
||||
databap.getMainElem('#connected_users').empty();
|
||||
databap.tmp('users', {});
|
||||
databap.tmp('id_users', {});
|
||||
|
||||
$.each
|
||||
(
|
||||
@@ -857,6 +890,7 @@ function refresh_users()
|
||||
var sSafeNickName = getSafeNickname(sNickName);
|
||||
databap.tmp(['users', sChankeyName, 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
|
||||
var sProfileLink = databap.getInternalLink('profil', user_info.id_user);
|
||||
|
||||
Reference in New Issue
Block a user