Everyone has the Notebooks chooser
From the development repository at 1ccf212. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
ba6791455b
commit
bc3c9bb886
6 files changed
+73
-25
No files matched your search
+13
-1
@@ -15,6 +15,10 @@
|
||||
* a Trash the entries are moved there, and the button says so;
|
||||
* in the browser they are gone for good, and the button says that. The
|
||||
* notebook being written in cannot be marked: its mark explains.
|
||||
* Everyone has the chooser (Andy, 2026-10-11), so that a guest can see
|
||||
* and clear what their notebook holds, in a browser above all; loading
|
||||
* a page into the session is for the host and co-hosts, and a card says
|
||||
* so to anyone else.
|
||||
*/
|
||||
|
||||
import { discardNotebook, discardPage, listKeptPages, listNotebooks, readPage } from './notebook.js';
|
||||
@@ -75,6 +79,8 @@ export class NotebookChooser {
|
||||
this.notebook = '';
|
||||
/** The notebook being written in, which cannot be deleted while it is. */
|
||||
this.writing = '';
|
||||
/** Whether this participant may load a page into the session. */
|
||||
this.mayLoad = true;
|
||||
/** Whether deletions go to a Trash (the local program's) or are for good. */
|
||||
this.trash = false;
|
||||
/** Counts openings, so that pictures fetched for an earlier one are dropped. */
|
||||
@@ -99,10 +105,12 @@ export class NotebookChooser {
|
||||
/**
|
||||
* Show the notebooks, or the pages of the only notebook.
|
||||
* @param {string} [notebook] Open on this notebook: the one being written in.
|
||||
* @param {boolean} [mayLoad] Whether a page may be loaded into the session.
|
||||
*/
|
||||
async open(notebook) {
|
||||
async open(notebook, mayLoad = true) {
|
||||
this.opening += 1;
|
||||
this.writing = notebook ?? '';
|
||||
this.mayLoad = mayLoad;
|
||||
this.clearMarks();
|
||||
this.dialog.showModal();
|
||||
element('chooser_message').textContent = '';
|
||||
@@ -190,6 +198,10 @@ export class NotebookChooser {
|
||||
title.textContent = pageTitle(pageName);
|
||||
card.append(picture, title);
|
||||
card.addEventListener('click', async () => {
|
||||
if (!this.mayLoad) {
|
||||
this.say('Only the host and co-hosts can start a page for everyone from a kept page.');
|
||||
return;
|
||||
}
|
||||
const text = await readPage(notebook, pageName);
|
||||
if (text === null) return;
|
||||
this.dialog.close();
|
||||
|
||||
Reference in new issue
Block a user