mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-02-08 03:02:03 +01:00
Added link to load more chat-messages using new GET_CHAT_MESSAGES
This commit is contained in:
parent
5592c4b0fe
commit
5f81daed0a
7 changed files with 37 additions and 7 deletions
|
@ -81,6 +81,7 @@
|
||||||
"pad.share.emebdcode": "In Webseite einbetten",
|
"pad.share.emebdcode": "In Webseite einbetten",
|
||||||
"pad.chat": "Chat",
|
"pad.chat": "Chat",
|
||||||
"pad.chat.title": "Den Chat dieses Pads \u00f6ffnen",
|
"pad.chat.title": "Den Chat dieses Pads \u00f6ffnen",
|
||||||
|
"pad.chat.loadmessages": "Weitere Nachrichten laden",
|
||||||
"timeslider.pageTitle": "{{appTitle}} Pad-Versionsgeschichte",
|
"timeslider.pageTitle": "{{appTitle}} Pad-Versionsgeschichte",
|
||||||
"timeslider.toolbar.returnbutton": "Zur\u00fcck zum Pad",
|
"timeslider.toolbar.returnbutton": "Zur\u00fcck zum Pad",
|
||||||
"timeslider.toolbar.authors": "Autoren:",
|
"timeslider.toolbar.authors": "Autoren:",
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -488,6 +488,11 @@ table#otheruserstable {
|
||||||
-ms-overflow-x: hidden;
|
-ms-overflow-x: hidden;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
}
|
}
|
||||||
|
#chatloadmessages
|
||||||
|
{
|
||||||
|
color: blue;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
#chatinputbox {
|
#chatinputbox {
|
||||||
padding: 3px 2px;
|
padding: 3px 2px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
|
@ -29,6 +29,7 @@ var chat = (function()
|
||||||
{
|
{
|
||||||
var isStuck = false;
|
var isStuck = false;
|
||||||
var gotInitialMessages = false;
|
var gotInitialMessages = false;
|
||||||
|
var historyPointer = 0;
|
||||||
var chatMentions = 0;
|
var chatMentions = 0;
|
||||||
var self = {
|
var self = {
|
||||||
show: function ()
|
show: function ()
|
||||||
|
@ -114,7 +115,7 @@ var chat = (function()
|
||||||
|
|
||||||
var html = "<p class='" + authorClass + "'><b>" + authorName + ":</b><span class='time " + authorClass + "'>" + timeStr + "</span> " + text + "</p>";
|
var html = "<p class='" + authorClass + "'><b>" + authorName + ":</b><span class='time " + authorClass + "'>" + timeStr + "</span> " + text + "</p>";
|
||||||
if(isHistoryAdd)
|
if(isHistoryAdd)
|
||||||
$("#chattext").prepend(html);
|
$(html).insertAfter('#chatloadmessages');
|
||||||
else
|
else
|
||||||
$("#chattext").append(html);
|
$("#chattext").append(html);
|
||||||
|
|
||||||
|
@ -164,6 +165,19 @@ var chat = (function()
|
||||||
// initial messages are loaded in pad.js' _afterHandshake
|
// initial messages are loaded in pad.js' _afterHandshake
|
||||||
|
|
||||||
$("#chatcounter").text(0);
|
$("#chatcounter").text(0);
|
||||||
|
$("#chatloadmessages").click(function()
|
||||||
|
{
|
||||||
|
var start = Math.max(self.historyPointer - 100, 0);
|
||||||
|
var end = self.historyPointer;
|
||||||
|
|
||||||
|
if(start == end) // nothing to load
|
||||||
|
return;
|
||||||
|
if(start == 0) // reached the top
|
||||||
|
$("#chatloadmessages").css("display", "none");
|
||||||
|
|
||||||
|
pad.collabClient.sendMessage({"type": "GET_CHAT_MESSAGES", "start": start, "end": end});
|
||||||
|
self.historyPointer = start;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -412,6 +412,9 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad)
|
||||||
{
|
{
|
||||||
chat.scrollDown();
|
chat.scrollDown();
|
||||||
chat.gotInitalMessages = true;
|
chat.gotInitalMessages = true;
|
||||||
|
chat.historyPointer = clientVars.chatHead - msg.messages.length;
|
||||||
|
if(chat.historyPointer == -1) // there are less than 100 messages
|
||||||
|
$("#chatloadmessages").css("display", "none");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (msg.type == "SERVER_MESSAGE")
|
else if (msg.type == "SERVER_MESSAGE")
|
||||||
|
|
|
@ -556,9 +556,16 @@ var pad = {
|
||||||
pad.collabClient.setOnInternalAction(pad.handleCollabAction);
|
pad.collabClient.setOnInternalAction(pad.handleCollabAction);
|
||||||
|
|
||||||
// load initial chat-messages
|
// load initial chat-messages
|
||||||
|
if(clientVars.chatHead != -1)
|
||||||
|
{
|
||||||
var chatHead = clientVars.chatHead;
|
var chatHead = clientVars.chatHead;
|
||||||
var start = Math.max(chatHead - 100, 0);
|
var start = Math.max(chatHead - 100, 0);
|
||||||
pad.collabClient.sendMessage({"type": "GET_CHAT_MESSAGES", "start": start, "end": chatHead});
|
pad.collabClient.sendMessage({"type": "GET_CHAT_MESSAGES", "start": start, "end": chatHead});
|
||||||
|
}
|
||||||
|
else // there are no messages
|
||||||
|
{
|
||||||
|
$("#chatloadmessages").css("display", "none");
|
||||||
|
}
|
||||||
|
|
||||||
function postAceInit()
|
function postAceInit()
|
||||||
{
|
{
|
||||||
|
|
|
@ -368,7 +368,7 @@
|
||||||
|
|
||||||
<div id="chatbox">
|
<div id="chatbox">
|
||||||
<div id="titlebar"><span id ="titlelabel" data-l10n-id="pad.chat"></span><a id="titlecross" onClick="chat.hide();return false;">- </a></div>
|
<div id="titlebar"><span id ="titlelabel" data-l10n-id="pad.chat"></span><a id="titlecross" onClick="chat.hide();return false;">- </a></div>
|
||||||
<div id="chattext" class="authorColors"></div>
|
<div id="chattext" class="authorColors"><a id="chatloadmessages" data-l10n-id="pad.chat.loadmessages"></a></div>
|
||||||
<div id="chatinputbox">
|
<div id="chatinputbox">
|
||||||
<form>
|
<form>
|
||||||
<input id="chatinput" type="text" maxlength="999">
|
<input id="chatinput" type="text" maxlength="999">
|
||||||
|
|
Loading…
Reference in a new issue