added BS dialog for confirm

This commit is contained in:
azivner 2018-11-14 19:03:55 +01:00
parent b8feb4cce3
commit 19a07c699c
5 changed files with 68 additions and 5 deletions

View File

@ -0,0 +1,38 @@
const $dialog = $("#confirm-dialog");
const $confirmContent = $("#confirm-dialog-content");
const $okButton = $("#confirm-dialog-ok-button");
const $cancelButton = $("#confirm-dialog-cancel-button");
let resolve;
function confirm(message) {
glob.activeDialog = $dialog;
$confirmContent.text(message);
$dialog.modal();
return new Promise((res, rej) => { resolve = res; });
}
$dialog.on('shown.bs.modal', () => $okButton.trigger("focus"));
$dialog.on("hidden.bs.modal", () => {
if (resolve) {
resolve(false);
}
});
function doResolve(ret) {
resolve(ret);
resolve = null;
$dialog.modal("hide");
}
$cancelButton.click(() => doResolve(false));
$okButton.click(() => doResolve(true));
export default {
confirm
}

View File

@ -8,6 +8,7 @@ import infoService from "./info.js";
import attributeAutocompleteService from "./attribute_autocomplete.js";
import promptDialog from "../dialogs/prompt.js";
import infoDialog from "../dialogs/info.js";
import confirmDialog from "../dialogs/confirm.js";
const $component = $("#note-detail-relation-map");
const $relationMapContainer = $("#relation-map-container");
@ -293,7 +294,7 @@ function connectionContextMenuHandler(connection, event) {
contextMenuWidget.initContextMenu(event, contextMenuItems, async (event, cmd) => {
if (cmd === 'remove') {
if (!confirm("Are you sure you want to remove the relation?")) {
if (!await confirmDialog.confirm("Are you sure you want to remove the relation?")) {
return;
}
@ -381,14 +382,14 @@ $relationMapContainer.on("contextmenu", ".note-box", e => {
async function noteContextMenuHandler(event, cmd) {
const $noteBox = $(event.originalTarget).closest(".note-box");
const noteId = $noteBox.prop("id");
const noteId = idToNoteId($noteBox.prop("id"));
if (cmd === "remove") {
if (!confirm("Are you sure you want to remove the note from this diagram?")) {
if (!await confirmDialog.confirm("Are you sure you want to remove the note from this diagram?")) {
return;
}
jsPlumbInstance.remove(noteId);
jsPlumbInstance.remove(noteIdToId(noteId));
mapData.notes = mapData.notes.filter(note => note.noteId !== noteId);

View File

@ -0,0 +1,23 @@
<div id="confirm-dialog" class="modal mx-auto" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title mr-auto">Confirmation</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div id="confirm-dialog-content"></div>
</div>
<div class="modal-footer">
<button class="btn btn-default btn-sm" id="confirm-dialog-cancel-button">Cancel</button>
&nbsp;
<button class="btn btn-primary btn-sm" id="confirm-dialog-ok-button">OK</button>
</div>
</div>
</div>
</div>

View File

@ -12,7 +12,7 @@
<div id="info-dialog-content"></div>
</div>
<div class="modal-footer">
<button class="btn btn-primary btn-sm" id="info-dialog-ok-button">OK <kbd>enter</kbd></button>
<button class="btn btn-primary btn-sm" id="info-dialog-ok-button">OK</button>
</div>
</div>
</div>

View File

@ -184,6 +184,7 @@
<% include dialogs/sql_console.ejs %>
<% include dialogs/info.ejs %>
<% include dialogs/prompt.ejs %>
<% include dialogs/confirm.ejs %>
</div>
<script type="text/javascript">