Task lists WIP:

* Fix frontend form
This commit is contained in:
John Livingston 2024-05-03 15:03:24 +02:00
parent ff976ee0ad
commit e8e8af855d
No known key found for this signature in database
GPG Key ID: B17B5640CE66CDBC
3 changed files with 17 additions and 3 deletions

View File

@ -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')
})
}
}
}

View File

@ -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.')
}
}

View File

@ -18,7 +18,7 @@ export default function tplMucTaskLists (el, tasklists) {
<div class="form-group">
<label>
${i18nCreateTaskList}
<input type="text" value="${el.new_task_list_name}" name="name" placeholder="${i18nTaskListName}" />
<input type="text" value="" name="name" placeholder="${i18nTaskListName}" />
</label>
<input type="submit" value="${i18nAdd}" class="btn btn-primary" />
${!el.create_tasklist_error_message