encode messages with 'author' field instead of 'channel'

This commit is contained in:
ansuz 2017-08-24 17:14:03 +02:00
parent 78404ce8b7
commit b75a951a98
2 changed files with 31 additions and 11 deletions

View file

@ -421,7 +421,7 @@ define([
var res = {
type: parsedMsg[0],
sig: sig,
channel: parsedMsg[1],
author: parsedMsg[1],
time: parsedMsg[2],
text: parsedMsg[3],
// this makes debugging a whole lot easier
@ -537,7 +537,7 @@ define([
return {
type: O.d[0],
sig: O.sig,
channel: O.d[1],
author: O.d[1],
time: O.d[2],
text: O.d[3],
curve: curvePublic,

View file

@ -58,9 +58,12 @@ define([
};
var markup = {};
markup.message = function (msg, name) {
markup.message = function (msg) {
var curvePublic = msg.author;
var name = displayNames[msg.author];
return h('div.message', {
title: msg.time? new Date(msg.time).toLocaleString(): '?',
'data-key': curvePublic,
}, [
name? h('div.sender', name): undefined,
m(msg.text),
@ -71,13 +74,25 @@ define([
return $messages.find(dataQuery(curvePublic));
};
var normalizeLabels = function ($messagebox) {
$messagebox.find('div.message').toArray().reduce(function (a, b) {
var $b = $(b);
if ($(a).data('key') === $b.data('key')) {
$b.find('.sender').hide();
return a;
}
return b;
});
};
markup.chatbox = function (curvePublic, data) {
var moreHistory = h('span.more-history', ['get more history']); // TODO translate
var moreHistory = h('span.more-history.fa.fa-history', {
title: Messages.contacts_fetchHistory,
});
var displayName = data.displayName;
var fetching = false;
$(moreHistory).click(function () {
//stub('get older history');
console.log('getting history');
// get oldest known message...
@ -86,16 +101,16 @@ define([
channel.HEAD: channel.messages[0].sig;
fetching = true;
var $messages = $(getChat(curvePublic)).find('.messages');
var $messagebox = $(getChat(curvePublic)).find('.messages');
messenger.getMoreHistory(curvePublic, sig, 10, function (e, history) {
fetching = false;
if (e) { return void console.error(e); }
history.forEach(function (msg) {
channel.messages.unshift(msg);
var name = displayNames[msg.channel];
var el_message = markup.message(msg, name);
$messages.prepend(el_message);
var el_message = markup.message(msg);
$messagebox.prepend(el_message);
});
normalizeLabels($messagebox);
});
});
@ -159,6 +174,10 @@ define([
input.value = '';
sending = false;
console.log('sent successfully');
var $messagebox = $(messages);
var height = $messagebox[0].scrollHeight;
$messagebox.scrollTop(height);
});
};
@ -327,12 +346,13 @@ define([
var name = displayNames[curvePublic];
var chat = getChat(curvePublic, name);
var el_message = markup.message(message, name);
var el_message = markup.message(message);
state.channels[curvePublic].messages.push(message);
var $chat = $(chat);
$chat.find('.messages').append(el_message);
var $messagebox = $chat.find('.messages').append(el_message);
normalizeLabels($messagebox);
var channel = state.channels[curvePublic];
if (!channel) {