114 lines
6.3 KiB
HTML
114 lines
6.3 KiB
HTML
<!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>__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__</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><button id="new-note-button" class="primary-button inline-button">New note</button>
|
|
</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>
|
|
<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 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="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"></div>
|
|
</body>
|
|
|
|
</html> |