xmpp.chapril.org-conversejs/src/plugins/bookmark-views/form.js

48 lines
1.3 KiB
JavaScript

import tpl_muc_bookmark_form from './templates/form.js';
import { CustomElement } from 'shared/components/element';
import { _converse, api } from "@converse/headless/core";
class MUCBookmarkForm extends CustomElement {
static get properties () {
return {
'jid': { type: String }
}
}
connectedCallback () {
super.connectedCallback();
this.model = _converse.chatboxes.get(this.jid);
}
render () {
return tpl_muc_bookmark_form(
Object.assign(this.model.toJSON(), {
'onCancel': ev => this.closeBookmarkForm(ev),
'onSubmit': ev => this.onBookmarkFormSubmitted(ev)
})
);
}
onBookmarkFormSubmitted (ev) {
ev.preventDefault();
_converse.bookmarks.createBookmark({
'jid': this.model.get('jid'),
'autojoin': ev.target.querySelector('input[name="autojoin"]')?.checked || false,
'name': ev.target.querySelector('input[name=name]')?.value,
'nick': ev.target.querySelector('input[name=nick]')?.value
});
this.closeBookmarkForm(ev);
}
closeBookmarkForm (ev) {
ev.preventDefault();
this.model.session.save('view', null);
}
}
api.elements.define('converse-muc-bookmark-form', MUCBookmarkForm);
export default MUCBookmarkForm;