Add filter to generate /file/ link with appropriate basename.
Because inlining the |urlencode every time is easy to forget.
This commit is contained in:
parent
bef91b3243
commit
bdec6cf4a3
4 changed files with 20 additions and 13 deletions
|
@ -33,6 +33,7 @@ site.jinja_env.add_extension('jinja2.ext.do')
|
|||
site.jinja_env.trim_blocks = True
|
||||
site.jinja_env.lstrip_blocks = True
|
||||
site.jinja_env.filters['bytestring'] = jinja_filters.bytestring
|
||||
site.jinja_env.filters['file_link'] = jinja_filters.file_link
|
||||
site.debug = True
|
||||
|
||||
P = etiquette.photodb.PhotoDB()
|
||||
|
|
|
@ -1,9 +1,16 @@
|
|||
import etiquette
|
||||
import jinja2.filters
|
||||
|
||||
import voussoirkit.bytestring
|
||||
|
||||
def bytestring(x):
|
||||
try:
|
||||
return voussoirkit.bytestring.bytestring(x)
|
||||
except Exception:
|
||||
except Exception as e:
|
||||
return '??? b'
|
||||
|
||||
def file_link(photo, short=False):
|
||||
if short:
|
||||
return f'/file/{photo.id}{photo.dot_extension}'
|
||||
basename = jinja2.filters.do_urlencode(photo.basename)
|
||||
return f'/file/{photo.id}/{basename}'
|
||||
|
|
|
@ -8,8 +8,6 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<link rel="stylesheet" href="/static/css/common.css">
|
||||
<script src="/static/js/common.js"></script>
|
||||
{% set filename = photo.id + photo.dot_extension %}
|
||||
{% set file_link = "/file/" + filename %}
|
||||
|
||||
<style>
|
||||
#content_body
|
||||
|
@ -192,13 +190,13 @@
|
|||
<li>Dimensions: {{photo.width}}x{{photo.height}} px</li>
|
||||
<li>Aspect ratio: {{photo.ratio}}</li>
|
||||
{% endif %}
|
||||
<li>Size: {{photo.bytestring}}</li>
|
||||
<li>Size: {{photo.bytes|bytestring}}</li>
|
||||
{% if photo.duration %}
|
||||
<li>Duration: {{photo.duration_string}}</li>
|
||||
<li>Overall Bitrate: {{photo.bitrate|int}} kbps</li>
|
||||
{% endif %}
|
||||
<li><a href="/file/{{photo.id}}{{photo.dot_extension}}?download=true&original_filename=true">Download as original filename</a></li>
|
||||
<li><a href="/file/{{photo.id}}{{photo.dot_extension}}?download=true">Download as {{photo.id}}.{{photo.extension}}</a></li>
|
||||
<li><a href="{{photo|file_link}}?download=true&original_filename=true">Download as original filename</a></li>
|
||||
<li><a href="{{photo|file_link}}?download=true">Download as {{photo.id}}.{{photo.extension}}</a></li>
|
||||
</ul>
|
||||
|
||||
<!-- CONTAINING ALBUMS -->
|
||||
|
@ -228,17 +226,17 @@
|
|||
<div id="photo_img_holder" onclick="toggle_hoverzoom(event)">
|
||||
<img
|
||||
id="photo_img"
|
||||
src="{{file_link}}"
|
||||
src="{{photo|file_link}}"
|
||||
alt="{{photo.basename}}"
|
||||
onload="this.style.opacity=0.99"
|
||||
>
|
||||
</div>
|
||||
{% elif photo.simple_mimetype == "video" %}
|
||||
<video src="{{file_link}}" controls preload=none {%if photo.thumbnail%}poster="/thumbnail/{{photo.id}}.jpg"{%endif%}></video>
|
||||
<video src="{{photo|file_link}}" controls preload=none {%if photo.thumbnail%}poster="/thumbnail/{{photo.id}}.jpg"{%endif%}></video>
|
||||
{% elif photo.simple_mimetype == "audio" %}
|
||||
<audio src="{{file_link}}" controls></audio>
|
||||
<audio src="{{photo|file_link}}" controls></audio>
|
||||
{% else %}
|
||||
<a href="{{file_link}}">View {{filename}}</a>
|
||||
<a href="{{photo|file_link}}">View {{photo.basename}}</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -316,6 +314,7 @@ function refresh_metadata(photoid)
|
|||
post(url, data, callback);
|
||||
}
|
||||
|
||||
var ZOOM_BG_URL = "url('{{photo|file_link(short=True)}}')";
|
||||
function enable_hoverzoom(event)
|
||||
{
|
||||
//console.log("enable zoom");
|
||||
|
@ -331,7 +330,7 @@ function enable_hoverzoom(event)
|
|||
photo_img.style.opacity = "0";
|
||||
photo_img.style.display = "none";
|
||||
photo_img_holder.style.cursor = "zoom-out";
|
||||
photo_img_holder.style.backgroundImage = "url('{{file_link}}')";
|
||||
photo_img_holder.style.backgroundImage = ZOOM_BG_URL;
|
||||
photo_img_holder.onmousemove = move_hoverzoom;
|
||||
move_hoverzoom(event)
|
||||
//setTimeout(function(){img_holder.onclick = toggle_hoverzoom;}, 100);
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<div class="photo_card photo_card_list" data-id="{{photo.id}}">
|
||||
<input type="checkbox" class="photo_card_selector_checkbox" onclick="on_photo_select(event)"/>
|
||||
<span class="photo_card_filename"><a target="_blank" href="/photo/{{photo.id}}">{{photo.basename}}</a></span>
|
||||
<a class="photo_card_metadata" target="_blank" href="/file/{{photo.id + photo.dot_extension}}">{{photo.bytestring}}</a>
|
||||
<a class="photo_card_metadata" target="_blank" href="{{photo|file_link}}">{{photo.bytestring}}</a>
|
||||
</div>
|
||||
{% else -%}
|
||||
|
||||
|
@ -69,7 +69,7 @@
|
|||
|
||||
<span class="photo_card_metadata">
|
||||
{{- metadata_inner|safe -}}
|
||||
<a target="_blank" href="/file/{{photo.id + photo.dot_extension}}">{{photo.bytestring}}</a>
|
||||
<a target="_blank" href="{{photo|file_link}}">{{photo.bytestring}}</a>
|
||||
</span>
|
||||
|
||||
<input type="checkbox" class="photo_card_selector_checkbox" onclick="on_photo_select(event)"/>
|
||||
|
|
Loading…
Reference in a new issue