2
0
mirror of https://github.com/frappe/books.git synced 2024-11-14 01:14:03 +00:00
books/client/desk/formmodal.js

47 lines
1.2 KiB
JavaScript
Raw Normal View History

const Modal = require('frappejs/client/ui/modal');
const view = require('frappejs/client/view');
module.exports = class FormModal extends Modal {
constructor(doctype, name) {
super({title: doctype});
this.doctype = doctype;
2018-02-15 16:39:50 +00:00
}
async showWith(doctype, name) {
if (!name) name = doctype;
2018-02-15 16:39:50 +00:00
this.show();
await this.setDoc(doctype, name);
}
async setDoc(doctype, name) {
if (!this.form) {
this.makeForm();
}
await this.form.setDoc(doctype, name);
let input = this.modal.querySelector('input') || this.modal.querySelector('select');
input && input.focus();
}
makeForm() {
2018-02-20 06:39:41 +00:00
this.form = new (view.getFormClass(this.doctype))({
doctype: this.doctype,
parent: this.getBody(),
container: this,
actions: ['save']
});
this.form.on('save', async () => {
await this.trigger('save');
this.hide();
});
}
addButton(label, className, action) {
if (className === 'primary') {
2018-03-05 16:45:21 +00:00
return this.addPrimary(label, action).get(0);
} else {
2018-03-05 16:45:21 +00:00
return this.addSecondary(label, action).get(0);
}
}
}