diff options
author | ArthurHoaro <arthur@hoa.ro> | 2021-01-19 11:35:42 +0100 |
---|---|---|
committer | ArthurHoaro <arthur@hoa.ro> | 2021-01-19 11:35:42 +0100 |
commit | 8fbc29de0252c462884605d4f691b6746e524fc9 (patch) | |
tree | 2a96f377c962717cdb9e7133312f0ff3b7bd29e6 /tpl | |
parent | 544bbdaf8399c7a9e3c1e8b880e6f0a2fa15a769 (diff) | |
download | Shaarli-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
Diffstat (limited to 'tpl')
-rw-r--r-- | tpl/default/editlink.batch.html | 1 | ||||
-rw-r--r-- | tpl/default/editlink.html | 23 |
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 | <label for="lf_private">{'Private'|t}</label> | 72 | <label for="lf_private{$batchId}">{'Private'|t}</label> |
72 | </div> | 73 | </div> |
73 | 74 | ||
74 | {if="$formatter==='markdown'"} | 75 | {if="$formatter==='markdown'"} |