add help button to attachment list

This commit is contained in:
zadam 2023-07-14 21:59:43 +02:00
parent 30bcd1764a
commit 906082a6b2
5 changed files with 36 additions and 15 deletions

View file

@ -332,17 +332,22 @@ function initHelpDropdown($el) {
const wikiBaseUrl = "https://github.com/zadam/trilium/wiki/";
function openHelp(e) {
window.open(wikiBaseUrl + $(e.target).attr("data-help-page"), '_blank');
function openHelp($button) {
const helpPage = $button.attr("data-help-page");
if (helpPage) {
const url = wikiBaseUrl + helpPage;
window.open(url, '_blank');
}
}
function initHelpButtons($el) {
// for some reason, the .on(event, listener, handler) does not work here (e.g. Options -> Sync -> Help button)
// so we do it manually
$el.on("click", e => {
if ($(e.target).attr("data-help-page")) {
openHelp(e);
}
const $helpButton = $(e.target).closest("[data-help-page]");
openHelp($helpButton);
});
}

View file

@ -21,7 +21,7 @@ export default class SharedSwitchWidget extends SwitchWidget {
this.$switchOffButton.attr("title", "Unshare the note");
this.$helpButton.attr("data-help-page", "Sharing").show();
this.$helpButton.on('click', e => utils.openHelp(e));
this.$helpButton.on('click', e => utils.openHelp($(e.target)));
}
async switchOn() {

View file

@ -110,7 +110,6 @@ export default class SwitchWidget extends NoteContextAwareWidget {
this.$switchOffButton.on('click', () => this.toggle(false));
this.$helpButton = this.$widget.find(".switch-help-button");
}
toggle(state) {

View file

@ -1,6 +1,7 @@
import TypeWidget from "./type_widget.js";
import AttachmentDetailWidget from "../attachment_detail.js";
import linkService from "../../services/link.js";
import utils from "../../services/utils.js";
const TPL = `
<div class="attachment-list note-detail-printable">
@ -14,6 +15,18 @@ const TPL = `
margin-bottom: 15px;
display: flex;
justify-content: space-between;
align-items: baseline;
}
.attachment-help-button {
font-size: xx-large;
border: 0;
background: none;
cursor: pointer;
color: var(--main-text-color);
margin-left: 20px;
position: relative;
top: 8px;
}
</style>
@ -36,14 +49,20 @@ export default class AttachmentListTypeWidget extends TypeWidget {
}
async doRefresh(note) {
const $helpButton = $('<button class="attachment-help-button" type="button" data-help-page="attachments" title="Open help page on attachments"><span class="bx bx-help-circle"></span></button>');
utils.initHelpButtons($helpButton);
this.$linksWrapper.empty().append(
$('<div>').append(
"Owning note: ",
await linkService.createLink(this.noteId),
),
$('<button class="btn btn-sm">')
.text("Upload attachments")
.on('click', () => this.triggerCommand("showUploadAttachmentsDialog", {noteId: this.noteId}))
$('<div>').append(
$('<button class="btn btn-sm">')
.text("Upload attachments")
.on('click', () => this.triggerCommand("showUploadAttachmentsDialog", {noteId: this.noteId})),
$helpButton
)
);
this.$list.empty();

View file

@ -98,11 +98,9 @@ async function createMainWindow(app) {
function configureWebContents(webContents, spellcheckEnabled) {
require("@electron/remote/main").enable(webContents);
webContents.on('new-window', (e, url) => {
if (url !== webContents.getURL()) {
e.preventDefault();
require('electron').shell.openExternal(url);
}
mainWindow.webContents.setWindowOpenHandler((details) => {
require("electron").shell.openExternal(details.url);
return { action: 'deny' }
});
// prevent drag & drop to navigate away from trilium