Files
rustpad/static/workspace.html
T
2026-09-25 15:31:55 +02:00

140 lines
8.4 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="color-scheme" content="dark light">
<title data-i18n-ignore>__WORKSPACE_TITLE__ · RustPad</title>
__APP_THEME_BOOTSTRAP__
__APP_STYLESHEET__
__APP_IMPORT_MAP__
__APP_ENTRYPOINT__
</head>
<body data-registration-enabled="__REGISTRATION_ENABLED__">
<header class="app-header">
<div class="app-header__main">
<div class="resource-brand" aria-label="RustPad Workspace">
<a class="resource-brand__logo home-brand" href="/" aria-label="RustPad home">RustPad</a>
<span class="resource-brand__kind">Workspace</span>
</div>
<span class="header-divider"></span>
<div class="document-heading">
<h1 id="workspace-title" __WORKSPACE_TITLE_I18N__>__WORKSPACE_TITLE__</h1>
<p id="workspace-url" class="document-url"></p>
</div>
</div>
<div class="header-actions"><button id="copy-workspace-link" class="secondary-button">Copy link</button></div>
</header>
<main id="workspace-content" class="workspace-page" hidden>
<section class="workspace-top">
<div>
<h2>Notes</h2>
<p>Select a note or create a new one.</p>
</div>
<div class="workspace-top__actions">
<button id="archived-notes-button" class="secondary-button inline-button" type="button" data-i18n="workspace.archive.title" hidden>Archived notes</button>
<button id="workspace-settings-button" class="secondary-button inline-button" type="button" aria-expanded="false" data-i18n="workspace.settings.title" hidden>Workspace settings</button>
<button id="new-note-button" class="primary-button inline-button" type="button">New note</button>
</div>
</section>
<form id="workspace-password-form" class="workspace-password-card" hidden>
<div class="workspace-password-card__copy"><strong>Protect workspace</strong><small>One password secures the
workspace and all its notes.</small></div>
<div class="workspace-password-card__controls"><input id="workspace-set-password" type="password"
minlength="8" maxlength="128" autocomplete="new-password" placeholder="Min. 8 chars"
required><button class="secondary-button" type="submit">Set</button></div>
<small id="workspace-password-error" class="form-message error" role="alert"></small>
</form>
<form id="workspace-settings-form" class="workspace-settings-card" hidden>
<div class="workspace-settings-card__copy">
<strong data-i18n="workspace.settings.deletedNotes">Deleted notes</strong>
<small data-i18n="workspace.settings.copy">Workspace-wide setting. Archived notes disappear from the workspace but remain in the database with their history and files.</small>
</div>
<label class="workspace-archive-toggle"><input id="archive-deleted-notes" type="checkbox"> <span data-i18n="workspace.settings.archiveToggle">Archive deleted notes instead of permanently deleting them</span></label>
<button class="secondary-button" type="submit">Save</button>
<small id="workspace-settings-status" class="form-message" role="status"></small>
</form>
<div class="notes-toolbar">
<label class="list-search"><span class="sr-only">Search notes</span><input id="notes-search" type="search"
placeholder="Search notes…" autocomplete="off"></label>
<label class="page-size-label">Per page<select class="app-select-input" id="notes-per-page">
<option value="25">25</option>
<option value="50">50</option>
<option value="100">100</option>
</select></label>
<span class="notes-toolbar__label">View</span>
<div class="notes-view-switch" role="group" aria-label="Notes view"><button type="button"
data-notes-view="grid" class="active" aria-pressed="true">Cards</button><button type="button"
data-notes-view="table" aria-pressed="false">Table</button></div>
</div>
<p id="workspace-error" class="form-message error"></p>
<section id="notes-list" class="notes-grid" aria-live="polite"></section>
<nav id="notes-pagination" class="pagination" aria-label="Notes pagination"></nav>
</main>
<dialog id="archived-notes-dialog" class="archived-notes-dialog">
<section class="dialog-panel archived-notes-panel">
<div class="archived-notes-panel__header">
<div>
<h2 data-i18n="workspace.archive.title">Archived notes</h2>
<p class="dialog-copy" data-i18n="workspace.archive.copy">Restore notes that were archived instead of permanently deleted.</p>
</div>
<button id="close-archived-notes" class="icon-button" type="button" aria-label="Close dialog">×</button>
</div>
<div id="archived-notes-list" class="archived-notes-list" aria-live="polite"></div>
</section>
</dialog>
<dialog id="identity-dialog">
<form id="identity-form" autocomplete="on" class="dialog-panel identity-panel">
<h2>Identify yourself</h2>
<p class="dialog-copy">Log in, or choose a free nickname to continue as a guest.</p>
<input id="nickname" maxlength="40" autocomplete="off" data-bwignore="true" required
placeholder="Name or nickname">
<div class="identity-actions">
<button id="guest-continue" class="primary-button" type="submit">Continue as guest</button>
<button id="show-register" class="text-button" type="button">Register</button>
<button id="show-login" class="text-button" type="button">Log in</button>
</div>
<section id="auth-panel" class="auth-panel" hidden>
<h3 id="auth-mode-title">Log in</h3>
<label id="auth-email-field"><span id="auth-email-label">E-mail</span>
<input id="auth-email" name="username" type="email" maxlength="320" autocomplete="username"
placeholder="you@example.com">
</label>
<label>Password
<input id="auth-password" name="password" type="password" minlength="8" maxlength="128"
autocomplete="current-password">
</label>
<button id="auth-submit" class="primary-button" type="submit">Log in and continue</button>
<div class="identity-links">
<button id="show-reset" class="text-button" type="button">Forgot password?</button>
<button id="auth-back" class="text-button" type="button">Back to nickname</button>
<button id="logout-account" class="text-button" type="button">Log out saved account</button>
</div>
</section>
<p id="identity-error" class="form-message error" role="alert"></p>
</form>
</dialog>
<dialog id="password-dialog">
<form id="password-form" class="dialog-panel">
<h2>Protected workspace</h2><input id="open-password" type="password" autocomplete="current-password"
required placeholder="Password">
<p id="password-error" class="form-message error"></p><button class="primary-button">Open</button><a
href="/" class="dialog-link">Cancel</a>
</form>
</dialog>
<dialog id="note-dialog">
<form id="note-form" class="dialog-panel">
<h2>New note</h2><input id="note-name" maxlength="80" required placeholder="Note name"><label
class="dialog-check"><input id="note-protect" type="checkbox"> Protect this note from
deletion</label>
<p id="note-error" class="form-message error"></p>
<div class="dialog-actions"><button type="button" id="cancel-note"
class="secondary-button">Cancel</button><button class="primary-button">Create</button></div>
</form>
</dialog>
<div id="toast" class="toast-region" aria-live="polite" aria-label="Notifications" aria-relevant="additions removals"></div>
</body>
</html>