encode messages with 'author' field instead of 'channel'
This commit is contained in:
parent
78404ce8b7
commit
b75a951a98
@ -421,7 +421,7 @@ define([
|
|||||||
var res = {
|
var res = {
|
||||||
type: parsedMsg[0],
|
type: parsedMsg[0],
|
||||||
sig: sig,
|
sig: sig,
|
||||||
channel: parsedMsg[1],
|
author: parsedMsg[1],
|
||||||
time: parsedMsg[2],
|
time: parsedMsg[2],
|
||||||
text: parsedMsg[3],
|
text: parsedMsg[3],
|
||||||
// this makes debugging a whole lot easier
|
// this makes debugging a whole lot easier
|
||||||
@ -537,7 +537,7 @@ define([
|
|||||||
return {
|
return {
|
||||||
type: O.d[0],
|
type: O.d[0],
|
||||||
sig: O.sig,
|
sig: O.sig,
|
||||||
channel: O.d[1],
|
author: O.d[1],
|
||||||
time: O.d[2],
|
time: O.d[2],
|
||||||
text: O.d[3],
|
text: O.d[3],
|
||||||
curve: curvePublic,
|
curve: curvePublic,
|
||||||
|
|||||||
@ -58,9 +58,12 @@ define([
|
|||||||
};
|
};
|
||||||
|
|
||||||
var markup = {};
|
var markup = {};
|
||||||
markup.message = function (msg, name) {
|
markup.message = function (msg) {
|
||||||
|
var curvePublic = msg.author;
|
||||||
|
var name = displayNames[msg.author];
|
||||||
return h('div.message', {
|
return h('div.message', {
|
||||||
title: msg.time? new Date(msg.time).toLocaleString(): '?',
|
title: msg.time? new Date(msg.time).toLocaleString(): '?',
|
||||||
|
'data-key': curvePublic,
|
||||||
}, [
|
}, [
|
||||||
name? h('div.sender', name): undefined,
|
name? h('div.sender', name): undefined,
|
||||||
m(msg.text),
|
m(msg.text),
|
||||||
@ -71,13 +74,25 @@ define([
|
|||||||
return $messages.find(dataQuery(curvePublic));
|
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) {
|
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 displayName = data.displayName;
|
||||||
|
|
||||||
var fetching = false;
|
var fetching = false;
|
||||||
$(moreHistory).click(function () {
|
$(moreHistory).click(function () {
|
||||||
//stub('get older history');
|
|
||||||
console.log('getting history');
|
console.log('getting history');
|
||||||
|
|
||||||
// get oldest known message...
|
// get oldest known message...
|
||||||
@ -86,16 +101,16 @@ define([
|
|||||||
channel.HEAD: channel.messages[0].sig;
|
channel.HEAD: channel.messages[0].sig;
|
||||||
|
|
||||||
fetching = true;
|
fetching = true;
|
||||||
var $messages = $(getChat(curvePublic)).find('.messages');
|
var $messagebox = $(getChat(curvePublic)).find('.messages');
|
||||||
messenger.getMoreHistory(curvePublic, sig, 10, function (e, history) {
|
messenger.getMoreHistory(curvePublic, sig, 10, function (e, history) {
|
||||||
fetching = false;
|
fetching = false;
|
||||||
if (e) { return void console.error(e); }
|
if (e) { return void console.error(e); }
|
||||||
history.forEach(function (msg) {
|
history.forEach(function (msg) {
|
||||||
channel.messages.unshift(msg);
|
channel.messages.unshift(msg);
|
||||||
var name = displayNames[msg.channel];
|
var el_message = markup.message(msg);
|
||||||
var el_message = markup.message(msg, name);
|
$messagebox.prepend(el_message);
|
||||||
$messages.prepend(el_message);
|
|
||||||
});
|
});
|
||||||
|
normalizeLabels($messagebox);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -159,6 +174,10 @@ define([
|
|||||||
input.value = '';
|
input.value = '';
|
||||||
sending = false;
|
sending = false;
|
||||||
console.log('sent successfully');
|
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 name = displayNames[curvePublic];
|
||||||
var chat = getChat(curvePublic, name);
|
var chat = getChat(curvePublic, name);
|
||||||
var el_message = markup.message(message, name);
|
var el_message = markup.message(message);
|
||||||
|
|
||||||
state.channels[curvePublic].messages.push(message);
|
state.channels[curvePublic].messages.push(message);
|
||||||
|
|
||||||
var $chat = $(chat);
|
var $chat = $(chat);
|
||||||
$chat.find('.messages').append(el_message);
|
var $messagebox = $chat.find('.messages').append(el_message);
|
||||||
|
normalizeLabels($messagebox);
|
||||||
|
|
||||||
var channel = state.channels[curvePublic];
|
var channel = state.channels[curvePublic];
|
||||||
if (!channel) {
|
if (!channel) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user