chat message modification (1.1.5)

This commit is contained in:
2021-03-30 20:01:21 +02:00
parent 36dc674ba4
commit d3d3f8946e
11 changed files with 168 additions and 242 deletions

View File

@@ -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 &agrave; '+message_info.nickname+'">'+message_info.nickname+'</a><span class="console">&gt;</span>';
var sMsgPrefix = '<a class="user clickable" title="Ecrire un PM &agrave; '+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 &agrave; '+message_info.nickname+'">'+message_info.nickname+'</a><span class="console"> <span class="highlight">&#64;'+msgTargetUser+'</span>&gt;</span><span class="text">'+msg+'</span>';
msg_body = '<a class="user clickable" title="Ecrire un PM &agrave; '+message_info.nickname+'">'+message_info.nickname+'</a><span class="console"> <span class="highlight">&#64;'+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'));

View File

@@ -23,8 +23,6 @@
<title>Databap</title>
</head>
<body>
<!-- <div class="line_h" style="top:45px;"></div>
<div class="line_v" style="left:50%;"></div> -->
<div id="container">
<div id="header">
<table class="maximized">

View File

@@ -28,16 +28,15 @@ databap.pageInit = function()
$('.version_main').text(asVersionDetails[0]);
$('.version_ehp').text(asVersionDetails[1]);
$('.version_sp').text(asVersionDetails[2]);
if(asVersionDetails[2]==0) $('#sp_fixes').hide();
if(asVersionDetails[2]==0) $('#sp_fixes').hide();
$('#version_date').text(databap.consts.version_date);
self.initScrollBar('#main', '#welcome_box', '#welcome_subbox');
//Add EHP improvements, SP bug fixes and WIP
var $ActivityBox, sIcon;
var asActivityTypes = {
sp_fixes: [
'Remplacement du moteur de recherche par <a href="https://mariadb.com/kb/en/library/full-text-index-overview/" title="lien vers la documentation" target="_blank">fulltext</a>',
'Fix encodage des caractères lors de la recherche'
'Modification des messages de chat'
],
ehp_improvements: [ 'Selecteur de couleur dans les options',
'Nouvelle option: afficher / masquer les images du chat. Aussi disponible directement dans le chat via un hover sur une image',
@@ -76,7 +75,7 @@ databap.pageInit = function()
.append(asActivities[iActivityId]));
}
});
//Init's end
self.setInitEnd(true);
};
@@ -85,4 +84,4 @@ databap.onResize = function()
{
self.setScrollBarSize('optimize');
};
</script>
</script>