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
|
||||
|
||||
```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
|
||||
|
||||
@ -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";
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -90,7 +90,7 @@ Bookmarklet detection logic
|
||||
<a href="{$base_path}/admin/add-shaare" class="sidebar-add-segment" title="Bookmark">
|
||||
<i class="mdi mdi-bookmark-outline"></i>
|
||||
</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>
|
||||
</a>
|
||||
<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