From ee806518fec9ffebe72ebb27c5da22616e401568 Mon Sep 17 00:00:00 2001 From: bat Date: Wed, 5 Apr 2023 06:59:22 +0000 Subject: [PATCH 1/3] Check filename on create --- components/header.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/header.js b/components/header.js index e0c4058..f054364 100644 --- a/components/header.js +++ b/components/header.js @@ -309,7 +309,7 @@ export class Header extends HTMLElement { const input = document.createElement('input') input.value = '/' input.style.minWidth = '300px' - dialog.bodyEl.appendChild(input) + dialog.bodyEl.appendChi const bGroup = document.createElement( 'm-forms-button-group' ) From 53c376caeec7eec63cfc68a5e2e0653ec1e535f3 Mon Sep 17 00:00:00 2001 From: bat Date: Wed, 5 Apr 2023 07:13:51 +0000 Subject: [PATCH 2/3] check if exists before creating page, switch to editing mode --- components/header.js | 19 ++++++++++++++++++- components/layout.js | 3 +++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/components/header.js b/components/header.js index f054364..088a30f 100644 --- a/components/header.js +++ b/components/header.js @@ -309,14 +309,31 @@ export class Header extends HTMLElement { const input = document.createElement('input') input.value = '/' input.style.minWidth = '300px' - dialog.bodyEl.appendChi + dialog.bodyEl.appendChild(input) + let errorEl const bGroup = document.createElement( 'm-forms-button-group' ) bGroup.addPrimary(this.text.createPage, () => { const newPath = this.encodePath(input.value) + const v = localStorage.getItem(newPath) + if (v !== null || newPath === this.path) { + if (!errorEl) { + errorEl = document.createElement('p') + errorEl.style.color = 'red' + const errText = this.text.alreadyExists + errorEl.innerText = errText + dialog.bodyEl.appendChild(errorEl) + return + } + return + } + localStorage.setItem(newPath, '') location.hash = newPath dialog.close() + this.dispatchEvent(new CustomEvent( + 'create-page', {bubbles: true} + )) }) bGroup.addCancel(this.text.cancel, () => { dialog.close() diff --git a/components/layout.js b/components/layout.js index 3fde587..d95805e 100644 --- a/components/layout.js +++ b/components/layout.js @@ -28,6 +28,9 @@ export class Layout extends HTMLElement { this.header.addEventListener('click-edit', () => { this.editing = !this.editing }) + this.header.addEventListener('create-page', () => { + this.editing = true + }) this.shadowRoot.appendChild(this.header) this.load() addEventListener('hashchange', () => { From fa0670e56d56367aaf9fb64b1de73fabd2178b06 Mon Sep 17 00:00:00 2001 From: bat Date: Wed, 5 Apr 2023 07:14:22 +0000 Subject: [PATCH 3/3] bump --- sw.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sw.js b/sw.js index 04b0de2..df2d74a 100644 --- a/sw.js +++ b/sw.js @@ -11,7 +11,7 @@ async function initCache() { '/components/dialog.js', '/forms/button-group.js', '/menu/dropdown.js', - ]) //3 + ]) //4 } self.addEventListener("install", event => {