feat: améliorer la synchronisation des métadonnées asynchrones avec indicateurs de chargement visuels, polling pour synchroniser textarea vers Toast UI Editor, correction du chemin du script metadata.min.js avec base_path, et ajout de conteneurs d'icônes loader pour titre, description et tags avec activation conditionnelle selon retrieve_description

This commit is contained in:
2026-02-18 14:27:50 -05:00
parent 5bf384a8d6
commit 9150877d57
4 changed files with 90 additions and 3 deletions
+6 -3
View File
@@ -54,13 +54,15 @@
<label class="form-label" for="lf_title{$index}">{'Title'|t}</label>
<div class="{$asyncLoadClass}">
<input type="text" class="form-control lf_input{if="empty($batch_mode) && $link.title==''"} autofocus{/if}" name="lf_title" id="lf_title{$index}" value="{$link.title}" placeholder="Page title">
<div class="icon-container"><i class="loader"></i></div>
</div>
</div>
<div class="form-group bookmark-field-group">
<label class="form-label" for="lf_description{$index}">{'Description'|t} (Markdown)</label>
<div class="{$asyncLoadClass}">
<div class="{if="$retrieve_description"}{$asyncLoadClass}{/if}">
<textarea class="form-control bookmark-editor-source{if="empty($batch_mode) && $link.description==''"} autofocus{/if}" name="lf_description" id="lf_description{$index}" placeholder="Add a description..." rows="6">{$link.description}</textarea>
<div id="lf_description_editor{$index}" class="bookmark-markdown-editor" aria-label="Markdown editor"></div>
<div class="icon-container"><i class="loader"></i></div>
</div>
{if="$formatter==='markdown'"}
<div class="sublabel bookmark-editor-sublabel">
@@ -70,12 +72,13 @@
</div>
<div class="form-group bookmark-field-group">
<label class="form-label" for="lf_tags{$index}">{'Tags'|t}</label>
<div class="{$asyncLoadClass}">
<div class="{if="$retrieve_description"}{$asyncLoadClass}{/if}">
<input type="text" class="bookmark-tags-hidden-input" id="lf_tags{$index}" name="lf_tags" value="{$effectiveTags}" data-tag-options="{loop="$tags"}{$key},{/loop}" autocomplete="off" />
<div class="bookmark-tags-input" data-tags-container="lf_tags{$index}">
<div class="bookmark-tags-list" id="bookmark-tags-list{$index}"></div>
<input type="text" class="bookmark-tags-text-input" id="bookmark-tags-text{$index}" placeholder="Type a tag and press Enter or Space" autocomplete="off" />
</div>
<div class="icon-container"><i class="loader"></i></div>
</div>
</div>
@@ -121,7 +124,7 @@
</div>
{if="empty($batch_mode)"}
{include="page.footer"}
{if="$link_is_new && $async_metadata"}<script src="{$index_url}js/metadata.min.js?v={$version_hash}"></script>{/if}
{if="$link_is_new && $async_metadata"}<script src="{$base_path}/{function="ltrim($asset_path, '/')"}/js/metadata.min.js?v={$version_hash}"></script>{/if}
{/if}
</body>
</html>