TeaWeb/shared/js/ui/modal/ModalYesNo.ts

45 lines
1.4 KiB
TypeScript
Raw Normal View History

2020-03-30 13:44:18 +02:00
import {BodyCreator, createModal, ModalFunctions} from "tc-shared/ui/elements/Modal";
export function spawnYesNo(header: BodyCreator, body: BodyCreator, callback: (_: boolean) => any, properties?: {
text_yes?: string,
text_no?: string,
closeable?: boolean;
}) {
properties = properties || {};
const props = ModalFunctions.warpProperties({});
props.template_properties || (props.template_properties = {});
props.template_properties.text_yes = properties.text_yes || tr("Yes");
props.template_properties.text_no = properties.text_no || tr("No");
props.template = "#tmpl_modal_yesno";
props.header = header;
props.template_properties.question = ModalFunctions.jqueriefy(body);
props.closeable = typeof(properties.closeable) !== "boolean" || properties.closeable;
const modal = createModal(props);
let submited = false;
const button_yes = modal.htmlTag.find(".button-yes");
const button_no = modal.htmlTag.find(".button-no");
button_yes.on('click', event => {
if(!submited) {
submited = true;
callback(true);
}
modal.close();
});
button_no.on('click', event => {
if(!submited) {
submited = true;
callback(false);
}
modal.close();
});
modal.close_listener.push(() => button_no.trigger('click'));
modal.open();
return modal;
}