From 9ba90f4d76824cc758f3dde5708bbcf232947004 Mon Sep 17 00:00:00 2001 From: Bruno Charest Date: Sun, 19 Apr 2026 22:17:12 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20migrer=20syst=C3=A8me=20notes/todos=20v?= =?UTF-8?q?ers=20convention=20Android=20avec=20URLs=20uniques=20g=C3=A9n?= =?UTF-8?q?=C3=A9r=C3=A9es=20(shaarit://note-*,=20shaarit://todo-*),=20rem?= =?UTF-8?q?placement=20tags=20shaarli-note/shaarli-todo=20par=20note/todo,?= =?UTF-8?q?=20ajout=20handler=20bouton=20sidebar=20Note=20avec=20g=C3=A9n?= =?UTF-8?q?=C3=A9ration=20URL=20via=20ShaarItRules.generateNoteUrl(),=20mi?= =?UTF-8?q?se=20=C3=A0=20jour=20createNewNoteViaForm/createNewTodoViaForm?= =?UTF-8?q?=20pour=20utiliser=20URLs=20Android,=20correction=20URL=20git?= =?UTF-8?q?=20clone=20README=20(dracodev.net),=20et=20suppression=20hardco?= =?UTF-8?q?ded=20URLs=20http://shaarli-todo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- shaarli-pro/js/custom_views.js | 14 +++++++++----- shaarli-pro/js/script.js | 16 ++++++++++++++++ shaarli-pro/page.header.html | 2 +- 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 0380669..f1e02f3 100644 --- a/README.md +++ b/README.md @@ -160,7 +160,7 @@ Le thème offre un layout de type application avec barre latérale fixe, navigat ### 1. Téléchargement ```bash -git clone https://github.com/votre-utilisateur/shaarli_bc_theme.git +git clone https://git.dracodev.net/Projets/Shaarli_bm_theme.git ``` ### 3. Supprimer le thème en place diff --git a/shaarli-pro/js/custom_views.js b/shaarli-pro/js/custom_views.js index 175a9a6..a3ea2e3 100644 --- a/shaarli-pro/js/custom_views.js +++ b/shaarli-pro/js/custom_views.js @@ -2566,11 +2566,13 @@ async function fetchShaareFormBaseData(url) { async function createNewNoteViaForm({ title, markdown, visual = null }) { const basePath = typeof shaarli !== "undefined" && shaarli.basePath ? shaarli.basePath : ""; - const formUrl = `${basePath}/admin/shaare?post=&tags=shaarli-note`; + // Generate Android note URL + const noteUrl = window.ShaarItRules ? window.ShaarItRules.generateNoteUrl() : ""; + const formUrl = `${basePath}/admin/shaare?post=${encodeURIComponent(noteUrl)}&tags=note`; const { action, baseData } = await fetchShaareFormBaseData(formUrl); const formData = new URLSearchParams(baseData.toString()); - formData.set("lf_url", ""); + formData.set("lf_url", noteUrl); formData.set("lf_title", title || ""); formData.set("lf_description", markdown || ""); @@ -2643,11 +2645,13 @@ async function createNewNoteViaForm({ title, markdown, visual = null }) { async function createNewTodoViaForm({ title, items = [], visual = null }) { const basePath = typeof shaarli !== "undefined" && shaarli.basePath ? shaarli.basePath : ""; - const formUrl = `${basePath}/admin/shaare?post=http%3A%2F%2Fshaarli-todo&tags=shaarli-todo`; + // Generate Android todo URL + const todoUrl = window.ShaarItRules ? window.ShaarItRules.generateTodoUrl() : ""; + const formUrl = `${basePath}/admin/shaare?post=${encodeURIComponent(todoUrl)}&tags=todo`; const { action, baseData } = await fetchShaareFormBaseData(formUrl); const formData = new URLSearchParams(baseData.toString()); - formData.set("lf_url", "http://shaarli-todo"); + formData.set("lf_url", todoUrl); formData.set("lf_title", title || ""); const normalizedItems = (Array.isArray(items) ? items : []) @@ -2659,7 +2663,7 @@ async function createNewTodoViaForm({ title, items = [], visual = null }) { const currentTags = (formData.get("lf_tags") || "").trim(); let tagsArray = currentTags.split(/[\s,]+/).filter((t) => t.trim() !== ""); tagsArray = tagsArray.filter((t) => t !== "note" && t !== "shaarli-note"); - if (!tagsArray.includes("shaarli-todo")) tagsArray.push("shaarli-todo"); + if (!tagsArray.includes("todo")) tagsArray.push("todo"); if (visual) { const colorKey = visual.color || "default"; diff --git a/shaarli-pro/js/script.js b/shaarli-pro/js/script.js index 2427c04..7ae76ce 100644 --- a/shaarli-pro/js/script.js +++ b/shaarli-pro/js/script.js @@ -1,4 +1,20 @@ document.addEventListener('DOMContentLoaded', () => { + // ===== Add Note Button Handler (Android convention) ===== + const addNoteBtn = document.querySelector('.sidebar-add-note'); + if (addNoteBtn) { + addNoteBtn.addEventListener('click', (e) => { + e.preventDefault(); + if (!window.ShaarItRules) { + console.warn('[shaarit] ShaarItRules not available, cannot generate note URL'); + return; + } + const basePath = addNoteBtn.getAttribute('data-base-path') || ''; + const noteUrl = window.ShaarItRules.generateNoteUrl(); + const redirectUrl = `${basePath}/admin/shaare?post=${encodeURIComponent(noteUrl)}&tags=note`; + window.location.href = redirectUrl; + }); + } + // ===== Add Todo Button Handler (Android convention) ===== const addTodoBtn = document.querySelector('.sidebar-add-todo'); if (addTodoBtn) { diff --git a/shaarli-pro/page.header.html b/shaarli-pro/page.header.html index 114844d..676da78 100644 --- a/shaarli-pro/page.header.html +++ b/shaarli-pro/page.header.html @@ -90,7 +90,7 @@ Bookmarklet detection logic - +