load first tab that has any content
parent
579ed14344
commit
4416a3766b
|
@ -33,12 +33,16 @@ function chooseThread() {
|
|||
document.getElementById('threadname').textContent = this.thread.name;
|
||||
this.classList.add('active');
|
||||
window.currentThread = this.thread;
|
||||
loadMessages();
|
||||
if (this.thread.permissions.post)
|
||||
document.getElementById('msginput').classList.remove('hidden');
|
||||
else
|
||||
document.getElementById('msginput').classList.add('hidden');
|
||||
if (this.tab)
|
||||
switchTab(document.getElementById(this.tab));
|
||||
else // load first tab that has any content
|
||||
loadMessages(true, messages => {
|
||||
if (messages.length)
|
||||
switchTab(document.getElementById(this.tab = 'messagetab'));
|
||||
else
|
||||
loadSpace(spans => switchTab(
|
||||
document.getElementById(this.tab = spans.length ? 'spacetab' : 'messagetab')));
|
||||
});
|
||||
window.emit('get_thread', { thread: this.thread.id }, msg => {
|
||||
window.currentThread = msg.thread;
|
||||
setVisibility();
|
||||
|
@ -58,7 +62,9 @@ function switchTab(tab) {
|
|||
document
|
||||
.getElementById(tab.id.slice(0, -3))
|
||||
.classList.remove('hidden');
|
||||
if (tab.id === 'spacetab')
|
||||
if (tab.id === 'messagetab')
|
||||
loadMessages(true);
|
||||
else if (tab.id === 'spacetab')
|
||||
loadSpace();
|
||||
}
|
||||
|
||||
|
@ -288,7 +294,6 @@ function makeThread(thread) {
|
|||
}</div>`;
|
||||
node.id = 'thread' + thread.id;
|
||||
node.thread = thread;
|
||||
node.tab = 'messagetab';
|
||||
return node;
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ window.socket.on('new_message', message => {
|
|||
earliestMessage = message.id;
|
||||
});
|
||||
|
||||
function loadMessages() {
|
||||
function loadMessages(firstRender, callback) {
|
||||
if (!msg) {
|
||||
render(document.getElementById('message'), html`
|
||||
<button id='loadmore' class='hidden' onclick=${loadMessages}>
|
||||
|
@ -49,6 +49,10 @@ function loadMessages() {
|
|||
if (!this) { // called from chooseThread, initializing thread
|
||||
messages.innerHTML = '';
|
||||
earliestMessage = null;
|
||||
if (window.currentThread.permissions.post)
|
||||
document.getElementById('msginput').classList.remove('hidden');
|
||||
else
|
||||
document.getElementById('msginput').classList.add('hidden');
|
||||
}
|
||||
window.emit(
|
||||
'get_history',
|
||||
|
@ -57,8 +61,13 @@ function loadMessages() {
|
|||
thread: window.currentThread.id
|
||||
},
|
||||
msg => {
|
||||
if (!msg.success)
|
||||
if (!msg.success) {
|
||||
console.log('get_history failed: ' + msg.message);
|
||||
return;
|
||||
}
|
||||
callback && callback(msg.messages);
|
||||
if (firstRender && messages.hasChildNodes())
|
||||
return;
|
||||
if (msg.messages.length > 0) {
|
||||
earliestMessage = msg.messages[msg.messages.length - 1].id;
|
||||
for (let message of msg.messages)
|
||||
|
|
|
@ -122,7 +122,7 @@ window.socket.on('span', msg => {
|
|||
add(msg);
|
||||
});
|
||||
|
||||
export default function loadSpace() {
|
||||
export default function loadSpace(callback) {
|
||||
if (!space) {
|
||||
space = document.getElementById('space');
|
||||
space.onmouseup = event => {
|
||||
|
@ -149,8 +149,11 @@ export default function loadSpace() {
|
|||
spaceId = window.window.currentThread.id;
|
||||
space.innerHTML = '';
|
||||
window.emit('get_space', { thread: window.window.currentThread.id }, msg => {
|
||||
if (!msg.success)
|
||||
if (!msg.success) {
|
||||
console.log('get space failed: ' + msg.message);
|
||||
return;
|
||||
}
|
||||
callback && callback(msg.spans);
|
||||
for (const span of msg.spans)
|
||||
add(span);
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue