chat message modification (1.1.5)
This commit is contained in:
@@ -754,6 +754,10 @@ function refresh_chat(bReset)
|
||||
var bReset = (typeof bReset != 'undefined' && bReset == true);
|
||||
self.tmp('scrolling', (!bReset && !databap.isScrollBarAtBottom()));
|
||||
if(typeof oChatTimer != "undefined") clearTimeout(oChatTimer);
|
||||
|
||||
//reboot at least once a day
|
||||
if(new Date(self.consts.time).getDate() != (new Date()).getDate()) self.refresh();
|
||||
|
||||
if(databap.vars.current_page == 'chat')
|
||||
{
|
||||
if(!databap.vars.loading)
|
||||
@@ -781,6 +785,7 @@ function refresh_chat(bReset)
|
||||
result.messages,
|
||||
function(id_message, message_info)
|
||||
{
|
||||
message_info.id = id_message;
|
||||
addMessage(message_info, bReset);
|
||||
}
|
||||
);
|
||||
@@ -823,7 +828,7 @@ function addMessage(message_info, bReset)
|
||||
message_info.nickname = message_info.nickname || '';
|
||||
|
||||
var sChanKeyName = message_info.id_chan;
|
||||
var sMsgPrefix = '<a class="user clickable" title="Ecrire un PM à '+message_info.nickname+'">'+message_info.nickname+'</a><span class="console">></span>';
|
||||
var sMsgPrefix = '<a class="user clickable" title="Ecrire un PM à '+message_info.nickname+'">'+message_info.nickname+'</a><span class="console"></span>';
|
||||
var msg_body = '';
|
||||
var sUnreadChanName, iUnreadCount;
|
||||
var bSystemMsg = false;
|
||||
@@ -833,8 +838,15 @@ function addMessage(message_info, bReset)
|
||||
switch(message_info.msg_class)
|
||||
{
|
||||
case databap.consts.msg_types.user:
|
||||
msg_body = sMsgPrefix+'<span class="text">'+message_info.message+'</span>';
|
||||
sNotif = message_info.nickname+' : '+message_info.message;
|
||||
if(message_info.id_message_ref) { //edit user message
|
||||
let $Msg = databap.getMainElem('#chat_messages').find('p.U[data-id='+message_info.id_message_ref+']');
|
||||
$Msg.find('.msg_txt').text(message_info.message);
|
||||
$Msg.find('.status').show().text('modifié');
|
||||
}
|
||||
else {
|
||||
msg_body = sMsgPrefix+'<span class="msg_txt text'+(message_info.id_user==databap.vars.user_id?' editable':'')+'">'+message_info.message+'</span>';
|
||||
sNotif = message_info.nickname+' : '+message_info.message;
|
||||
}
|
||||
break;
|
||||
case databap.consts.msg_types.news:
|
||||
databap.tmp('get_news', true);
|
||||
@@ -864,7 +876,7 @@ function addMessage(message_info, bReset)
|
||||
slicePos = message_info.message.indexOf(' ');
|
||||
msgTargetUser = message_info.message.substr(1, slicePos - 1);
|
||||
var msg = message_info.message.slice(slicePos + 1);
|
||||
msg_body = '<a class="user clickable" title="Ecrire un PM à '+message_info.nickname+'">'+message_info.nickname+'</a><span class="console"> <span class="highlight">@'+msgTargetUser+'</span>></span><span class="text">'+msg+'</span>';
|
||||
msg_body = '<a class="user clickable" title="Ecrire un PM à '+message_info.nickname+'">'+message_info.nickname+'</a><span class="console"> <span class="highlight">@'+msgTargetUser+'</span></span><span class="text">'+msg+'</span>';
|
||||
sNotif = message_info.nickname+' @'+msgTargetUser+' : '+msg;
|
||||
break;
|
||||
case databap.consts.msg_types.nick:
|
||||
@@ -939,13 +951,17 @@ function addMessage(message_info, bReset)
|
||||
}
|
||||
|
||||
//Adding message to channel panel
|
||||
$Message = $('<p>', {'class':message_info.msg_class+' class_'+sChanKeyName+' hide round_right'})
|
||||
$Message = $('<p>', {'class':message_info.msg_class+' class_'+sChanKeyName+' hide round_right', 'data-id':message_info.id})
|
||||
.append($('<span>', {'class':'time'}).text(((message_info.date==databap.consts.cur_date)?'':message_info.date+' - ')+message_info.time))
|
||||
.append($Msg);
|
||||
.append($Msg)
|
||||
.append($('<span>', {'class':'status'}));
|
||||
$Message.find('.chan_link').click(function(){joinChan($(this).find('.chan_text').text());});
|
||||
$Message.find('.user').click(setPm);
|
||||
databap.getMainElem('#chat_messages').append($Message);
|
||||
|
||||
//Edit own message
|
||||
$Message.find('.editable').hover(toggleEditButton).click(editMessage);
|
||||
|
||||
//Unread messages
|
||||
if(!bReset && !bSystemMsg /* && message_info.id_user!=databap.vars.user_id */)
|
||||
{
|
||||
@@ -972,6 +988,48 @@ function addMessage(message_info, bReset)
|
||||
}
|
||||
}
|
||||
|
||||
function toggleEditButton()
|
||||
{
|
||||
let $Editable = $(this); //.editable
|
||||
let $EditBtn = $Editable.next('.edit-btn');
|
||||
if($EditBtn.length > 0) $EditBtn.remove();
|
||||
else $Editable.after($('<span>', {'class':'text edit-btn'}).append($('<i>', {'class': 'fa fa-fw fa-c-edit'})));
|
||||
}
|
||||
|
||||
function editMessage()
|
||||
{
|
||||
let $Editable = $(this);
|
||||
if($Editable.prop('contenteditable') != 'true')
|
||||
{
|
||||
$Editable
|
||||
.data('backup', $Editable.text())
|
||||
.prop('contenteditable', 'true')
|
||||
.focus();
|
||||
|
||||
$Editable.on('focusout keydown', function(e) {
|
||||
if(e.type == 'focusout' || e.which == 13) {
|
||||
e.preventDefault();
|
||||
$(this).prop('contenteditable', 'false');
|
||||
databap.getInfo
|
||||
(
|
||||
'edit_message',
|
||||
function(asResult)
|
||||
{
|
||||
refresh_chat();
|
||||
$MsgInput.focus();
|
||||
},
|
||||
{message_id: $Editable.parents('p.U').data('id'), message: $Editable.text()},
|
||||
'json',
|
||||
function(textStatus)
|
||||
{
|
||||
databap.showError(textStatus);
|
||||
}
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function toggleImages()
|
||||
{
|
||||
databap.vars2('opt_chat_images', !databap.vars2('opt_chat_images'));
|
||||
|
||||
Reference in New Issue
Block a user