diff --git a/conversejs/custom/plugins/tasks/muc-task-lists-view.js b/conversejs/custom/plugins/tasks/muc-task-lists-view.js index cb491a29..b3cd10d0 100644 --- a/conversejs/custom/plugins/tasks/muc-task-lists-view.js +++ b/conversejs/custom/plugins/tasks/muc-task-lists-view.js @@ -7,12 +7,13 @@ export default class MUCTaskListsView extends CustomElement { static get properties () { return { model: { type: Object, attribute: true }, - new_task_list_name: { type: String, attribute: false }, create_tasklist_error_message: { type: String, attribute: false } } } async initialize () { + this.create_tasklist_error_message = '' + if (!this.model) { return } @@ -28,6 +29,7 @@ export default class MUCTaskListsView extends CustomElement { async submitCreateTaskList (ev) { ev.preventDefault() + const name = ev.target.name.value.trim() if (this.create_tasklist_error_message) { this.create_tasklist_error_message = '' @@ -36,15 +38,25 @@ export default class MUCTaskListsView extends CustomElement { if ((name ?? '') === '') { return } try { + this.querySelectorAll('input[type=submit]').forEach(el => { + el.setAttribute('disabled', true) + el.classList.add('disabled') + }) + await this.model.createTaskList({ name }) - this.new_task_list_name = '' + this.querySelector('input[name=name]').value = '' } catch (err) { console.error(err) // eslint-disable-next-line no-undef this.create_tasklist_error_message = __(LOC_task_list_create_error) + } finally { + this.querySelectorAll('input[type=submit]').forEach(el => { + el.removeAttribute('disabled') + el.classList.remove('disabled') + }) } } } diff --git a/conversejs/custom/plugins/tasks/task-lists.js b/conversejs/custom/plugins/tasks/task-lists.js index 09bafb62..26111fbb 100644 --- a/conversejs/custom/plugins/tasks/task-lists.js +++ b/conversejs/custom/plugins/tasks/task-lists.js @@ -83,9 +83,11 @@ class ChatRoomTaskLists extends Collection { const name = data?.name if (!name) { throw new Error('Missing name') } + console.log('Creating task list ' + name + '...') const item = $build('item').c('tasklist', { xmlns: XMLNS_TASKLIST }) item.c('name').t(name) await api.pubsub.publish(this.chatroom.get('jid'), 'livechat-tasks', item) + console.log('Task list ' + name + ' created.') } } diff --git a/conversejs/custom/plugins/tasks/templates/muc-task-lists.js b/conversejs/custom/plugins/tasks/templates/muc-task-lists.js index 12a796e8..499cee39 100644 --- a/conversejs/custom/plugins/tasks/templates/muc-task-lists.js +++ b/conversejs/custom/plugins/tasks/templates/muc-task-lists.js @@ -18,7 +18,7 @@ export default function tplMucTaskLists (el, tasklists) {
${!el.create_tasklist_error_message