trilium/src/public/javascripts/dialogs/link_map.js

38 lines
992 B
JavaScript
Raw Normal View History

import utils from "../services/utils.js";
2019-08-28 03:24:31 +08:00
import LinkMapService from "../services/link_map.js";
import noteDetailService from "../services/note_detail.js";
2019-06-04 04:55:59 +08:00
const $linkMapContainer = $("#link-map-container");
const LINK_TYPES = [ "hyper", "image", "relation", "relation-map" ];
2019-06-02 21:35:57 +08:00
const $dialog = $("#link-map-dialog");
const $maxNotesInput = $("#link-map-max-notes");
2019-06-02 21:35:57 +08:00
2019-08-28 03:24:31 +08:00
let linkMapService;
2019-06-04 04:55:59 +08:00
export async function showDialog() {
utils.closeActiveDialog();
2019-06-02 21:35:57 +08:00
glob.activeDialog = $dialog;
// set default settings
2019-06-13 01:59:52 +08:00
$maxNotesInput.val(10);
2019-06-12 03:52:00 +08:00
LINK_TYPES.forEach(lt => $("#link-map-" + lt).prop('checked', true));
2019-08-28 03:24:31 +08:00
const note = noteDetailService.getActiveNoteId();
2019-06-04 04:55:59 +08:00
2019-08-28 03:24:31 +08:00
if (!note) {
2019-06-04 04:55:59 +08:00
return;
}
2019-08-28 03:24:31 +08:00
linkMapService = new LinkMapService(note, $linkMapContainer);
linkMapService.render();
2019-06-04 04:55:59 +08:00
2019-08-28 03:24:31 +08:00
$dialog.modal();
2019-06-04 04:55:59 +08:00
}
2019-08-28 03:24:31 +08:00
$(".link-map-settings").change(() => linkMapService.loadNotesAndRelations());
2019-08-28 03:24:31 +08:00
$maxNotesInput.on("input", () => linkMapService.loadNotesAndRelations());