Notes/src/public/app/widgets/floating_buttons/floating_buttons.js

109 lines
3.3 KiB
JavaScript
Raw Normal View History

import NoteContextAwareWidget from "../note_context_aware_widget.js";
import { t } from "../../services/i18n.js";
2022-06-21 23:27:34 +02:00
const TPL = `
<div class="floating-buttons no-print">
2022-06-21 23:27:34 +02:00
<style>
.floating-buttons {
position: relative;
}
.floating-buttons-children,.show-floating-buttons {
position: absolute;
top: 10px;
2022-06-21 23:27:34 +02:00
right: 10px;
display: flex;
flex-direction: row;
z-index: 100;
}
2023-10-19 09:03:49 +02:00
.type-canvas .floating-buttons-children {
top: 70px;
2023-10-19 09:03:49 +02:00
}
.floating-buttons-children > *:not(.hidden-int):not(.no-content-hidden) {
margin: 2px;
}
2022-12-22 14:57:00 +01:00
.floating-buttons-children > button, .floating-buttons-children .floating-button {
font-size: 150%;
2022-07-24 14:30:42 +02:00
padding: 5px 10px 4px 10px;
2022-12-11 13:20:37 +01:00
width: 40px;
cursor: pointer;
color: var(--button-text-color);
background: var(--button-background-color);
border-radius: var(--button-border-radius);
border: 1px solid transparent;
display: flex;
justify-content: space-around;
}
2022-12-22 14:57:00 +01:00
.floating-buttons-children > button:hover, .floating-buttons-children .floating-button:hover {
2022-12-11 13:20:37 +01:00
text-decoration: none;
border-color: var(--button-border-color);
2022-07-24 14:30:42 +02:00
}
.floating-buttons .floating-buttons-children.temporarily-hidden {
display: none;
}
2022-06-21 23:27:34 +02:00
</style>
2022-06-21 23:27:34 +02:00
<div class="floating-buttons-children"></div>
<!-- Show button that displays floating button after click on close button -->
<div class="show-floating-buttons">
<style>
.floating-buttons-children.temporarily-hidden+.show-floating-buttons {
display: block;
}
.floating-buttons-children:not(.temporarily-hidden)+.show-floating-buttons {
display: none;
}
.show-floating-buttons {
/* display: none;*/
margin-left: 5px !important;
}
.show-floating-buttons-button {
border: 1px solid transparent;
color: var(--button-text-color);
padding: 6px;
border-radius: 100px;
}
.show-floating-buttons-button:hover {
border: 1px solid var(--button-border-color);
}
</style>
<button type="button" class="show-floating-buttons-button btn bx bx-chevrons-left"
2025-01-09 18:07:02 +02:00
title="${t("show_floating_buttons_button.button_title")}"></button>
</div>
2022-06-21 23:27:34 +02:00
</div>`;
export default class FloatingButtons extends NoteContextAwareWidget {
2022-06-21 23:27:34 +02:00
doRender() {
this.$widget = $(TPL);
this.$children = this.$widget.find(".floating-buttons-children");
for (const widget of this.children) {
this.$children.append(widget.render());
}
}
async refreshWithNote(note) {
this.toggle(true);
2025-01-09 18:07:02 +02:00
this.$widget.find(".show-floating-buttons-button").on("click", () => this.toggle(true));
}
toggle(show) {
this.$widget.find(".floating-buttons-children").toggleClass("temporarily-hidden", !show);
}
hideFloatingButtonsCommand() {
this.toggle(false);
}
2022-06-21 23:27:34 +02:00
}