feat: migrer système notes/todos vers convention Android avec URLs uniques générées (shaarit://note-*, shaarit://todo-*), remplacement tags shaarli-note/shaarli-todo par note/todo, ajout handler bouton sidebar Note avec génération URL via ShaarItRules.generateNoteUrl(), mise à jour createNewNoteViaForm/createNewTodoViaForm pour utiliser URLs Android, correction URL git clone README (dracodev.net), et suppression hardcoded URLs http://shaarli-todo
This commit is contained in:
parent
f99c1cbecb
commit
9ba90f4d76
@ -160,7 +160,7 @@ Le thème offre un layout de type application avec barre latérale fixe, navigat
|
|||||||
### 1. Téléchargement
|
### 1. Téléchargement
|
||||||
|
|
||||||
```bash
|
```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
|
### 3. Supprimer le thème en place
|
||||||
|
|||||||
@ -2566,11 +2566,13 @@ async function fetchShaareFormBaseData(url) {
|
|||||||
|
|
||||||
async function createNewNoteViaForm({ title, markdown, visual = null }) {
|
async function createNewNoteViaForm({ title, markdown, visual = null }) {
|
||||||
const basePath = typeof shaarli !== "undefined" && shaarli.basePath ? shaarli.basePath : "";
|
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 { action, baseData } = await fetchShaareFormBaseData(formUrl);
|
||||||
|
|
||||||
const formData = new URLSearchParams(baseData.toString());
|
const formData = new URLSearchParams(baseData.toString());
|
||||||
formData.set("lf_url", "");
|
formData.set("lf_url", noteUrl);
|
||||||
formData.set("lf_title", title || "");
|
formData.set("lf_title", title || "");
|
||||||
formData.set("lf_description", markdown || "");
|
formData.set("lf_description", markdown || "");
|
||||||
|
|
||||||
@ -2643,11 +2645,13 @@ async function createNewNoteViaForm({ title, markdown, visual = null }) {
|
|||||||
|
|
||||||
async function createNewTodoViaForm({ title, items = [], visual = null }) {
|
async function createNewTodoViaForm({ title, items = [], visual = null }) {
|
||||||
const basePath = typeof shaarli !== "undefined" && shaarli.basePath ? shaarli.basePath : "";
|
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 { action, baseData } = await fetchShaareFormBaseData(formUrl);
|
||||||
|
|
||||||
const formData = new URLSearchParams(baseData.toString());
|
const formData = new URLSearchParams(baseData.toString());
|
||||||
formData.set("lf_url", "http://shaarli-todo");
|
formData.set("lf_url", todoUrl);
|
||||||
formData.set("lf_title", title || "");
|
formData.set("lf_title", title || "");
|
||||||
|
|
||||||
const normalizedItems = (Array.isArray(items) ? items : [])
|
const normalizedItems = (Array.isArray(items) ? items : [])
|
||||||
@ -2659,7 +2663,7 @@ async function createNewTodoViaForm({ title, items = [], visual = null }) {
|
|||||||
const currentTags = (formData.get("lf_tags") || "").trim();
|
const currentTags = (formData.get("lf_tags") || "").trim();
|
||||||
let tagsArray = currentTags.split(/[\s,]+/).filter((t) => t.trim() !== "");
|
let tagsArray = currentTags.split(/[\s,]+/).filter((t) => t.trim() !== "");
|
||||||
tagsArray = tagsArray.filter((t) => t !== "note" && t !== "shaarli-note");
|
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) {
|
if (visual) {
|
||||||
const colorKey = visual.color || "default";
|
const colorKey = visual.color || "default";
|
||||||
|
|||||||
@ -1,4 +1,20 @@
|
|||||||
document.addEventListener('DOMContentLoaded', () => {
|
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) =====
|
// ===== Add Todo Button Handler (Android convention) =====
|
||||||
const addTodoBtn = document.querySelector('.sidebar-add-todo');
|
const addTodoBtn = document.querySelector('.sidebar-add-todo');
|
||||||
if (addTodoBtn) {
|
if (addTodoBtn) {
|
||||||
|
|||||||
@ -90,7 +90,7 @@ Bookmarklet detection logic
|
|||||||
<a href="{$base_path}/admin/add-shaare" class="sidebar-add-segment" title="Bookmark">
|
<a href="{$base_path}/admin/add-shaare" class="sidebar-add-segment" title="Bookmark">
|
||||||
<i class="mdi mdi-bookmark-outline"></i>
|
<i class="mdi mdi-bookmark-outline"></i>
|
||||||
</a>
|
</a>
|
||||||
<a href="{$base_path}/admin/shaare?tags=note" class="sidebar-add-segment" title="Note">
|
<a href="#" class="sidebar-add-segment sidebar-add-note" title="Note" data-base-path="{$base_path}">
|
||||||
<i class="mdi mdi-note-text-outline"></i>
|
<i class="mdi mdi-note-text-outline"></i>
|
||||||
</a>
|
</a>
|
||||||
<a href="#" class="sidebar-add-segment sidebar-add-todo" title="Todo" data-base-path="{$base_path}">
|
<a href="#" class="sidebar-add-segment sidebar-add-todo" title="Todo" data-base-path="{$base_path}">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user