From 9ef71c07ddec0db4d3dea17580ef923439aaf6fe Mon Sep 17 00:00:00 2001 From: John Livingston Date: Sun, 12 May 2024 16:02:13 +0200 Subject: [PATCH] Task lists WIP: * remember if task app was open, and restore when in fullpage mode * refactoring --- conversejs/builtin.ts | 3 ++- .../custom/plugins/tasks/components/muc-task-app-view.js | 4 +++- conversejs/custom/plugins/tasks/index.js | 3 ++- conversejs/custom/plugins/tasks/utils.js | 2 +- conversejs/custom/templates/muc-chatarea.js | 2 +- conversejs/lib/plugins/livechat-specific.ts | 3 ++- 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/conversejs/builtin.ts b/conversejs/builtin.ts index 2a59ee92..fc143b59 100644 --- a/conversejs/builtin.ts +++ b/conversejs/builtin.ts @@ -194,7 +194,8 @@ async function initConverse ( // We enable task list only if we are in the peertube interface. // Technically it would work in 'chat-only' mode, but i don't want to add too many things to test // (and i now there is some CSS bugs in the task list). - params.livechat_task_list_enabled = true + params.livechat_task_app_enabled = true + params.livechat_task_app_restore = chatIncludeMode === 'peertube-fullpage' } try { diff --git a/conversejs/custom/plugins/tasks/components/muc-task-app-view.js b/conversejs/custom/plugins/tasks/components/muc-task-app-view.js index 35d43d08..a63831ea 100644 --- a/conversejs/custom/plugins/tasks/components/muc-task-app-view.js +++ b/conversejs/custom/plugins/tasks/components/muc-task-app-view.js @@ -16,7 +16,8 @@ export default class MUCTaskApp extends CustomElement { } async initialize () { - this.show = false + this.show = api.settings.get('livechat_task_app_restore') && + (window.sessionStorage?.getItem?.('livechat-converse-task-app-show') === '1') } render () { @@ -25,6 +26,7 @@ export default class MUCTaskApp extends CustomElement { toggleApp () { this.show = !this.show + window.sessionStorage?.setItem?.('livechat-converse-task-app-show', this.show ? '1' : '') } } diff --git a/conversejs/custom/plugins/tasks/index.js b/conversejs/custom/plugins/tasks/index.js index 233c1826..5f01d921 100644 --- a/conversejs/custom/plugins/tasks/index.js +++ b/conversejs/custom/plugins/tasks/index.js @@ -18,7 +18,8 @@ converse.plugins.add('livechat-converse-tasks', { _converse.ChatRoomTasks = ChatRoomTasks _converse.api.settings.extend({ - livechat_task_list_enabled: false + livechat_task_app_enabled: false, + livechat_task_app_restore: false // should we open the app by default if it was previously oppened? }) _converse.api.listen.on('chatRoomInitialized', muc => { diff --git a/conversejs/custom/plugins/tasks/utils.js b/conversejs/custom/plugins/tasks/utils.js index 0303e915..96cc98a5 100644 --- a/conversejs/custom/plugins/tasks/utils.js +++ b/conversejs/custom/plugins/tasks/utils.js @@ -89,7 +89,7 @@ export function initOrDestroyChatRoomTaskLists (mucModel) { return _destroyChatRoomTaskLists(mucModel) } - if (!api.settings.get('livechat_task_list_enabled')) { + if (!api.settings.get('livechat_task_app_enabled')) { // Feature disabled, no need to handle tasks. return _destroyChatRoomTaskLists(mucModel) } diff --git a/conversejs/custom/templates/muc-chatarea.js b/conversejs/custom/templates/muc-chatarea.js index b170afd3..a6ead529 100644 --- a/conversejs/custom/templates/muc-chatarea.js +++ b/conversejs/custom/templates/muc-chatarea.js @@ -5,7 +5,7 @@ import { html } from 'lit' export default (o) => { return html` ${ - o?.model && api.settings.get('livechat_task_list_enabled') + o?.model && api.settings.get('livechat_task_app_enabled') ? html`` : '' } diff --git a/conversejs/lib/plugins/livechat-specific.ts b/conversejs/lib/plugins/livechat-specific.ts index f3efa82a..879ee0c1 100644 --- a/conversejs/lib/plugins/livechat-specific.ts +++ b/conversejs/lib/plugins/livechat-specific.ts @@ -86,7 +86,8 @@ export const livechatSpecificsPlugin = { 'livechat_external_auth_reconnect_mode', 'livechat_mini_muc_head', 'livechat_specific_external_authent', - 'livechat_task_list_enabled' + 'livechat_task_app_enabled', + 'livechat_task_app_restore' ]) { _converse.api.settings.set(k, params[k]) }