Vintage theme: support async metadata retrieval
This commit is contained in:
parent
d9d71b10c3
commit
1e49a65a2a
2 changed files with 76 additions and 7 deletions
|
@ -1248,3 +1248,54 @@ ul.errors {
|
||||||
width: 0%;
|
width: 0%;
|
||||||
height: 10px;
|
height: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.loading-input {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes around {
|
||||||
|
0% {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading-input .icon-container {
|
||||||
|
position: absolute;
|
||||||
|
right: 60px;
|
||||||
|
top: calc(50% - 10px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading-input .loader {
|
||||||
|
position: relative;
|
||||||
|
height: 20px;
|
||||||
|
width: 20px;
|
||||||
|
display: inline-block;
|
||||||
|
animation: around 5.4s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading-input .loader::after,
|
||||||
|
.loading-input .loader::before {
|
||||||
|
content: "";
|
||||||
|
background: #eee;
|
||||||
|
position: absolute;
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border-width: 2px;
|
||||||
|
border-color: #333 #333 transparent transparent;
|
||||||
|
border-style: solid;
|
||||||
|
border-radius: 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
animation: around 0.7s ease-in-out infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading-input .loader::after {
|
||||||
|
animation: around 0.7s ease-in-out 0.1s infinite;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
{if="$link.title==''"}onload="document.linkform.lf_title.focus();"
|
{if="$link.title==''"}onload="document.linkform.lf_title.focus();"
|
||||||
{elseif="$link.description==''"}onload="document.linkform.lf_description.focus();"
|
{elseif="$link.description==''"}onload="document.linkform.lf_description.focus();"
|
||||||
{else}onload="document.linkform.lf_tags.focus();"{/if} >
|
{else}onload="document.linkform.lf_tags.focus();"{/if} >
|
||||||
|
{$asyncLoadClass=$link_is_new && $async_metadata && empty($link.title) ? 'loading-input' : ''}
|
||||||
<div id="pageheader">
|
<div id="pageheader">
|
||||||
{include="page.header"}
|
{include="page.header"}
|
||||||
<div id="shaarli_title"><a href="{$titleLink}">{$shaarlititle}</a></div>
|
<div id="shaarli_title"><a href="{$titleLink}">{$shaarlititle}</a></div>
|
||||||
|
@ -14,12 +15,29 @@
|
||||||
{if="isset($link.id)"}
|
{if="isset($link.id)"}
|
||||||
<input type="hidden" name="lf_id" value="{$link.id}">
|
<input type="hidden" name="lf_id" value="{$link.id}">
|
||||||
{/if}
|
{/if}
|
||||||
<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>
|
<label for="lf_url"><i>URL</i></label><br><input type="text" name="lf_url" id="lf_url" value="{$link.url}" class="lf_input">
|
||||||
<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>
|
<label for="lf_title"><i>Title</i></label>
|
||||||
<label for="lf_description"><i>Description</i></label><br><textarea name="lf_description" id="lf_description" rows="4" cols="25">{$link.description}</textarea><br>
|
<div class="{$asyncLoadClass}">
|
||||||
<label for="lf_tags"><i>Tags</i></label><br>
|
<input type="text" name="lf_title" id="lf_title" value="{$link.title}" class="lf_input">
|
||||||
<input type="text" name="lf_tags" id="lf_tags" value="{$link.tags}" class="lf_input"
|
<div class="icon-container">
|
||||||
data-list="{loop="$tags"}{$key}, {/loop}" data-multiple autocomplete="off" ><br>
|
<i class="loader"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<label for="lf_description"><i>Description</i></label>
|
||||||
|
<div class="{if="$retrieve_description"}{$asyncLoadClass}{/if}">
|
||||||
|
<textarea name="lf_description" id="lf_description" rows="4" cols="25">{$link.description}</textarea>
|
||||||
|
<div class="icon-container">
|
||||||
|
<i class="loader"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<label for="lf_tags"><i>Tags</i></label>
|
||||||
|
<div class="{if="$retrieve_description"}{$asyncLoadClass}{/if}">
|
||||||
|
<input type="text" name="lf_tags" id="lf_tags" value="{$link.tags}" class="lf_input"
|
||||||
|
data-list="{loop="$tags"}{$key}, {/loop}" data-multiple autocomplete="off" >
|
||||||
|
<div class="icon-container">
|
||||||
|
<i class="loader"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
{if="$formatter==='markdown'"}
|
{if="$formatter==='markdown'"}
|
||||||
<div class="md_help">
|
<div class="md_help">
|
||||||
|
@ -56,5 +74,5 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{include="page.footer"}
|
{include="page.footer"}
|
||||||
</body>
|
{if="$link_is_new && $async_metadata"}<script src="{$asset_path}/js/metadata.min.js?v={$version_hash}#"></script>{/if}</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in a new issue