mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
60 lines
1.1 KiB
JavaScript
60 lines
1.1 KiB
JavaScript
const $dialog = $("#prompt-dialog");
|
|
const $dialogBody = $dialog.find(".modal-body");
|
|
|
|
let $question;
|
|
let $answer;
|
|
|
|
const $form = $("#prompt-dialog-form");
|
|
|
|
let resolve;
|
|
let shownCb;
|
|
|
|
function ask({ message, defaultValue, shown }) {
|
|
glob.activeDialog = $dialog;
|
|
|
|
shownCb = shown;
|
|
|
|
$question = $("<label>")
|
|
.prop("for", "prompt-dialog-answer")
|
|
.text(message);
|
|
|
|
$answer = $("<input>")
|
|
.prop("type", "text")
|
|
.prop("id", "prompt-dialog-answer")
|
|
.addClass("form-control")
|
|
.val(defaultValue || "");
|
|
|
|
$dialogBody.empty().append(
|
|
$("<div>")
|
|
.addClass("form-group")
|
|
.append($question)
|
|
.append($answer));
|
|
|
|
$dialog.modal();
|
|
|
|
return new Promise((res, rej) => { resolve = res; });
|
|
}
|
|
|
|
$dialog.on('shown.bs.modal', () => {
|
|
if (shownCb) {
|
|
shownCb({ $dialog, $question, $answer, $form });
|
|
}
|
|
|
|
$answer.focus().select();
|
|
});
|
|
|
|
$dialog.on("hidden.bs.modal", () => {
|
|
if (resolve) {
|
|
resolve(null);
|
|
}
|
|
});
|
|
|
|
$form.submit(() => {
|
|
resolve($answer.val());
|
|
|
|
$dialog.modal('hide');
|
|
});
|
|
|
|
export default {
|
|
ask
|
|
} |