import server from "../../../services/server.js"; import dialogService from "../../../services/dialog.js"; import toastService from "../../../services/toast.js"; import OptionsTab from "./options_tab.js"; const TPL = `
`; export default class EtapiOptions extends OptionsTab { get tabTitle() { return "ETAPI" } lazyRender() { this.$widget = $(TPL); this.$widget.find("#create-etapi-token").on("click", async () => { const tokenName = await dialogService.prompt({ title: "New ETAPI token", message: "Please enter new token's name", defaultValue: "new token" }); if (!tokenName.trim()) { toastService.showError("Token name can't be empty"); return; } const {authToken} = await server.post('etapi-tokens', {tokenName}); await dialogService.prompt({ title: "ETAPI token created", message: 'Copy the created token into clipboard. Trilium stores the token hashed and this is the last time you see it.', defaultValue: authToken }); this.refreshTokens(); }); this.refreshTokens(); } async refreshTokens() { const $noTokensYet = this.$widget.find("#no-tokens-yet"); const $tokensTable = this.$widget.find("#tokens-table"); const tokens = await server.get('etapi-tokens'); $noTokensYet.toggle(tokens.length === 0); $tokensTable.toggle(tokens.length > 0); const $tokensTableBody = $tokensTable.find("tbody"); $tokensTableBody.empty(); for (const token of tokens) { $tokensTableBody.append( $("