aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorArthurHoaro <arthur@hoa.ro>2020-11-09 12:36:04 +0100
committerArthurHoaro <arthur@hoa.ro>2020-11-09 12:36:04 +0100
commit1e49a65a2a930390cf00114cc30d8516626331c2 (patch)
tree9a4147b5240d492903bee7e81ec25ac7d3d2d69f
parentd9d71b10c3bc70a0881d630b37dc4e918c9e812f (diff)
downloadShaarli-1e49a65a2a930390cf00114cc30d8516626331c2.tar.gz
Shaarli-1e49a65a2a930390cf00114cc30d8516626331c2.tar.zst
Shaarli-1e49a65a2a930390cf00114cc30d8516626331c2.zip
Vintage theme: support async metadata retrieval
-rw-r--r--assets/vintage/css/shaarli.css51
-rw-r--r--tpl/vintage/editlink.html32
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>