aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorArthurHoaro <arthur@hoa.ro>2021-01-19 11:35:42 +0100
committerArthurHoaro <arthur@hoa.ro>2021-01-19 11:35:42 +0100
commit8fbc29de0252c462884605d4f691b6746e524fc9 (patch)
tree2a96f377c962717cdb9e7133312f0ff3b7bd29e6
parent544bbdaf8399c7a9e3c1e8b880e6f0a2fa15a769 (diff)
downloadShaarli-8fbc29de0252c462884605d4f691b6746e524fc9.tar.gz
Shaarli-8fbc29de0252c462884605d4f691b6746e524fc9.tar.zst
Shaarli-8fbc29de0252c462884605d4f691b6746e524fc9.zip
Fix: bulk add - use unique HTML ID
Use links loop ID to make ID unique and fix browser labels behaviour. Fixes #1685
-rw-r--r--tpl/default/editlink.batch.html1
-rw-r--r--tpl/default/editlink.html23
2 files changed, 13 insertions, 11 deletions
diff --git a/tpl/default/editlink.batch.html b/tpl/default/editlink.batch.html
index b1f8e5bd..973a5ccc 100644
--- a/tpl/default/editlink.batch.html
+++ b/tpl/default/editlink.batch.html
@@ -20,6 +20,7 @@
20</div> 20</div>
21 21
22{loop="$links"} 22{loop="$links"}
23 {$batchId=$key}
23 {include="editlink"} 24 {include="editlink"}
24{/loop} 25{/loop}
25 26
diff --git a/tpl/default/editlink.html b/tpl/default/editlink.html
index 83e541fd..a5828c75 100644
--- a/tpl/default/editlink.html
+++ b/tpl/default/editlink.html
@@ -1,3 +1,4 @@
1{$batchId=isset($batchId) ? $batchId : ''}
1{if="empty($batch_mode)"} 2{if="empty($batch_mode)"}
2<!DOCTYPE html> 3<!DOCTYPE html>
3<html{if="$language !== 'auto'"} lang="{$language}"{/if}> 4<html{if="$language !== 'auto'"} lang="{$language}"{/if}>
@@ -10,7 +11,7 @@
10 {ignore}Lil hack: when included in a loop in batch mode, `$value` is assigned by RainTPL with template vars.{/ignore} 11 {ignore}Lil hack: when included in a loop in batch mode, `$value` is assigned by RainTPL with template vars.{/ignore}
11 {function="extract($value) ? '' : ''"} 12 {function="extract($value) ? '' : ''"}
12{/if} 13{/if}
13 <div id="editlinkform" class="edit-link-container" class="pure-g"> 14 <div id="editlinkform{$batchId}" class="edit-link-container" class="pure-g">
14 <div class="pure-u-lg-1-5 pure-u-1-24"></div> 15 <div class="pure-u-lg-1-5 pure-u-1-24"></div>
15 <form method="post" 16 <form method="post"
16 name="linkform" 17 name="linkform"
@@ -27,16 +28,16 @@
27 {/if} 28 {/if}
28 {if="!$link_is_new"}<div class="created-date">{'Created:'|t} {$link.created|format_date}</div>{/if} 29 {if="!$link_is_new"}<div class="created-date">{'Created:'|t} {$link.created|format_date}</div>{/if}
29 <div> 30 <div>
30 <label for="lf_url">{'URL'|t}</label> 31 <label for="lf_url{$batchId}">{'URL'|t}</label>
31 </div> 32 </div>
32 <div> 33 <div>
33 <input type="text" name="lf_url" id="lf_url" value="{$link.url}" class="lf_input"> 34 <input type="text" name="lf_url" id="lf_url{$batchId}" value="{$link.url}" class="lf_input">
34 </div> 35 </div>
35 <div> 36 <div>
36 <label for="lf_title">{'Title'|t}</label> 37 <label for="lf_title{$batchId}">{'Title'|t}</label>
37 </div> 38 </div>
38 <div class="{$asyncLoadClass}"> 39 <div class="{$asyncLoadClass}">
39 <input type="text" name="lf_title" id="lf_title" value="{$link.title}" 40 <input type="text" name="lf_title" id="lf_title{$batchId}" value="{$link.title}"
40 class="lf_input {if="!$async_metadata"}autofocus{/if}" 41 class="lf_input {if="!$async_metadata"}autofocus{/if}"
41 > 42 >
42 <div class="icon-container"> 43 <div class="icon-container">
@@ -44,19 +45,19 @@
44 </div> 45 </div>
45 </div> 46 </div>
46 <div> 47 <div>
47 <label for="lf_description">{'Description'|t}</label> 48 <label for="lf_description{$batchId}">{'Description'|t}</label>
48 </div> 49 </div>
49 <div class="{if="$retrieve_description"}{$asyncLoadClass}{/if}"> 50 <div class="{if="$retrieve_description"}{$asyncLoadClass}{/if}">
50 <textarea name="lf_description" id="lf_description" class="autofocus">{$link.description}</textarea> 51 <textarea name="lf_description" id="lf_description{$batchId}" class="autofocus">{$link.description}</textarea>
51 <div class="icon-container"> 52 <div class="icon-container">
52 <i class="loader"></i> 53 <i class="loader"></i>
53 </div> 54 </div>
54 </div> 55 </div>
55 <div> 56 <div>
56 <label for="lf_tags">{'Tags'|t}</label> 57 <label for="lf_tags{$batchId}">{'Tags'|t}</label>
57 </div> 58 </div>
58 <div class="{if="$retrieve_description"}{$asyncLoadClass}{/if}"> 59 <div class="{if="$retrieve_description"}{$asyncLoadClass}{/if}">
59 <input type="text" name="lf_tags" id="lf_tags" value="{$link.tags}" class="lf_input autofocus" 60 <input type="text" name="lf_tags" id="lf_tags{$batchId}" value="{$link.tags}" class="lf_input autofocus"
60 data-list="{loop="$tags"}{$key}, {/loop}" data-multiple data-autofirst autocomplete="off" > 61 data-list="{loop="$tags"}{$key}, {/loop}" data-multiple data-autofirst autocomplete="off" >
61 <div class="icon-container"> 62 <div class="icon-container">
62 <i class="loader"></i> 63 <i class="loader"></i>
@@ -64,11 +65,11 @@
64 </div> 65 </div>
65 66
66 <div> 67 <div>
67 <input type="checkbox" name="lf_private" id="lf_private" 68 <input type="checkbox" name="lf_private" id="lf_private{$batchId}"
68 {if="$link.private === true"} 69 {if="$link.private === true"}
69 checked="checked" 70 checked="checked"
70 {/if}> 71 {/if}>
71 &nbsp;<label for="lf_private">{'Private'|t}</label> 72 &nbsp;<label for="lf_private{$batchId}">{'Private'|t}</label>
72 </div> 73 </div>
73 74
74 {if="$formatter==='markdown'"} 75 {if="$formatter==='markdown'"}