diff options
-rw-r--r-- | assets/vintage/css/shaarli.css | 51 | ||||
-rw-r--r-- | tpl/vintage/editlink.html | 32 |
2 files changed, 76 insertions, 7 deletions
diff --git a/assets/vintage/css/shaarli.css b/assets/vintage/css/shaarli.css index 1688dce0..5b02ab5b 100644 --- a/assets/vintage/css/shaarli.css +++ b/assets/vintage/css/shaarli.css | |||
@@ -1248,3 +1248,54 @@ ul.errors { | |||
1248 | width: 0%; | 1248 | width: 0%; |
1249 | height: 10px; | 1249 | height: 10px; |
1250 | } | 1250 | } |
1251 | |||
1252 | .loading-input { | ||
1253 | position: relative; | ||
1254 | } | ||
1255 | |||
1256 | @keyframes around { | ||
1257 | 0% { | ||
1258 | transform: rotate(0deg); | ||
1259 | } | ||
1260 | |||
1261 | 100% { | ||
1262 | transform: rotate(360deg); | ||
1263 | } | ||
1264 | } | ||
1265 | |||
1266 | .loading-input .icon-container { | ||
1267 | position: absolute; | ||
1268 | right: 60px; | ||
1269 | top: calc(50% - 10px); | ||
1270 | } | ||
1271 | |||
1272 | .loading-input .loader { | ||
1273 | position: relative; | ||
1274 | height: 20px; | ||
1275 | width: 20px; | ||
1276 | display: inline-block; | ||
1277 | animation: around 5.4s infinite; | ||
1278 | } | ||
1279 | |||
1280 | .loading-input .loader::after, | ||
1281 | .loading-input .loader::before { | ||
1282 | content: ""; | ||
1283 | background: #eee; | ||
1284 | position: absolute; | ||
1285 | display: inline-block; | ||
1286 | width: 100%; | ||
1287 | height: 100%; | ||
1288 | border-width: 2px; | ||
1289 | border-color: #333 #333 transparent transparent; | ||
1290 | border-style: solid; | ||
1291 | border-radius: 20px; | ||
1292 | box-sizing: border-box; | ||
1293 | top: 0; | ||
1294 | left: 0; | ||
1295 | animation: around 0.7s ease-in-out infinite; | ||
1296 | } | ||
1297 | |||
1298 | .loading-input .loader::after { | ||
1299 | animation: around 0.7s ease-in-out 0.1s infinite; | ||
1300 | background: transparent; | ||
1301 | } | ||
diff --git a/tpl/vintage/editlink.html b/tpl/vintage/editlink.html index eb8807b5..343418bc 100644 --- a/tpl/vintage/editlink.html +++ b/tpl/vintage/editlink.html | |||
@@ -6,6 +6,7 @@ | |||
6 | {if="$link.title==''"}onload="document.linkform.lf_title.focus();" | 6 | {if="$link.title==''"}onload="document.linkform.lf_title.focus();" |
7 | {elseif="$link.description==''"}onload="document.linkform.lf_description.focus();" | 7 | {elseif="$link.description==''"}onload="document.linkform.lf_description.focus();" |
8 | {else}onload="document.linkform.lf_tags.focus();"{/if} > | 8 | {else}onload="document.linkform.lf_tags.focus();"{/if} > |
9 | {$asyncLoadClass=$link_is_new && $async_metadata && empty($link.title) ? 'loading-input' : ''} | ||
9 | <div id="pageheader"> | 10 | <div id="pageheader"> |
10 | {include="page.header"} | 11 | {include="page.header"} |
11 | <div id="shaarli_title"><a href="{$titleLink}">{$shaarlititle}</a></div> | 12 | <div id="shaarli_title"><a href="{$titleLink}">{$shaarlititle}</a></div> |
@@ -14,12 +15,29 @@ | |||
14 | {if="isset($link.id)"} | 15 | {if="isset($link.id)"} |
15 | <input type="hidden" name="lf_id" value="{$link.id}"> | 16 | <input type="hidden" name="lf_id" value="{$link.id}"> |
16 | {/if} | 17 | {/if} |
17 | <label for="lf_url"><i>URL</i></label><br><input type="text" name="lf_url" id="lf_url" value="{$link.url}" class="lf_input"><br> | 18 | <label for="lf_url"><i>URL</i></label><br><input type="text" name="lf_url" id="lf_url" value="{$link.url}" class="lf_input"> |
18 | <label for="lf_title"><i>Title</i></label><br><input type="text" name="lf_title" id="lf_title" value="{$link.title}" class="lf_input"><br> | 19 | <label for="lf_title"><i>Title</i></label> |
19 | <label for="lf_description"><i>Description</i></label><br><textarea name="lf_description" id="lf_description" rows="4" cols="25">{$link.description}</textarea><br> | 20 | <div class="{$asyncLoadClass}"> |
20 | <label for="lf_tags"><i>Tags</i></label><br> | 21 | <input type="text" name="lf_title" id="lf_title" value="{$link.title}" class="lf_input"> |
21 | <input type="text" name="lf_tags" id="lf_tags" value="{$link.tags}" class="lf_input" | 22 | <div class="icon-container"> |
22 | data-list="{loop="$tags"}{$key}, {/loop}" data-multiple autocomplete="off" ><br> | 23 | <i class="loader"></i> |
24 | </div> | ||
25 | </div> | ||
26 | <label for="lf_description"><i>Description</i></label> | ||
27 | <div class="{if="$retrieve_description"}{$asyncLoadClass}{/if}"> | ||
28 | <textarea name="lf_description" id="lf_description" rows="4" cols="25">{$link.description}</textarea> | ||
29 | <div class="icon-container"> | ||
30 | <i class="loader"></i> | ||
31 | </div> | ||
32 | </div> | ||
33 | <label for="lf_tags"><i>Tags</i></label> | ||
34 | <div class="{if="$retrieve_description"}{$asyncLoadClass}{/if}"> | ||
35 | <input type="text" name="lf_tags" id="lf_tags" value="{$link.tags}" class="lf_input" | ||
36 | data-list="{loop="$tags"}{$key}, {/loop}" data-multiple autocomplete="off" > | ||
37 | <div class="icon-container"> | ||
38 | <i class="loader"></i> | ||
39 | </div> | ||
40 | </div> | ||
23 | 41 | ||
24 | {if="$formatter==='markdown'"} | 42 | {if="$formatter==='markdown'"} |
25 | <div class="md_help"> | 43 | <div class="md_help"> |
@@ -56,5 +74,5 @@ | |||
56 | </div> | 74 | </div> |
57 | </div> | 75 | </div> |
58 | {include="page.footer"} | 76 | {include="page.footer"} |
59 | </body> | 77 | {if="$link_is_new && $async_metadata"}<script src="{$asset_path}/js/metadata.min.js?v={$version_hash}#"></script>{/if}</body> |
60 | </html> | 78 | </html> |