mirror of https://github.com/krateng/maloja.git
143 lines
3.6 KiB
Django/Jinja
143 lines
3.6 KiB
Django/Jinja
{% extends "abstracts/base.jinja" %}
|
|
{% block title %}Maloja - {{ track.title }}{% endblock %}
|
|
|
|
{% import 'snippets/links.jinja' as links %}
|
|
|
|
{% block scripts %}
|
|
<script src="/rangeselect.js"></script>
|
|
<script>
|
|
function scrobble(encodedtrack) {
|
|
neo.xhttprequest('/api/newscrobble?' + encodedtrack).then(response=>{window.location.reload()});
|
|
}
|
|
</script>
|
|
{% endblock %}
|
|
|
|
{% set track = filterkeys.track %}
|
|
{% set info = db.trackInfo(track) %}
|
|
|
|
{% set initialrange ='month' %}
|
|
|
|
|
|
{% set encodedtrack = mlj_uri.uriencode({'track':track}) %}
|
|
|
|
|
|
{% block content %}
|
|
|
|
|
|
{% import 'partials/awards_track.jinja' as awards %}
|
|
|
|
|
|
<table class="top_info">
|
|
<tr>
|
|
<td class="image">
|
|
{% if adminmode %}
|
|
<div
|
|
class="changeable-image" data-uploader="b64=>upload('{{ encodedtrack }}',b64)"
|
|
style="background-image:url('{{ utilities.getTrackImage(artists=track.artists,title=track.title,fast=True) }}');"
|
|
></div>
|
|
{% else %}
|
|
<div style="background-image:url('{{ utilities.getTrackImage(artists=track.artists,title=track.title,fast=True) }}');">
|
|
</div>
|
|
{% endif %}
|
|
</td>
|
|
<td class="text">
|
|
<span>{{ links.links(track.artists) }}</span><br/>
|
|
<h1 class="headerwithextra">{{ track.title }}</h1>
|
|
{{ awards.certs(track) }}
|
|
<span class="rank"><a href="/charts_tracks?max=100">#{{ info.position }}</a></span>
|
|
<br/>
|
|
|
|
<p class="stats">
|
|
{% if adminmode %}<span onclick="scrobble('{{ encodedtrack }}')" class="button">Scrobble now</span>{% endif %}
|
|
<a href="{{ mlj_uri.create_uri("/scrobbles",filterkeys) }}">{{ info['scrobbles'] }} Scrobbles</a>
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
{{ awards.medals(info) }}
|
|
{{ awards.topweeks(info) }}
|
|
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
<table class="twopart">
|
|
|
|
<tr>
|
|
<td>
|
|
<h2><a href='{{ mlj_uri.create_uri("/pulse",filterkeys) }}'>Pulse</a></h2>
|
|
<br/>
|
|
{% for r in xranges %}
|
|
<span
|
|
onclick="showRangeManual('pulse','{{ r.identifier }}')"
|
|
class="stat_selector_pulse selector_pulse_{{ r.identifier }}"
|
|
style="{{ 'opacity:0.5;' if initialrange==r.identifier else '' }}">
|
|
{{ r.localisation }}
|
|
</span>
|
|
{% if not loop.last %}|{% endif %}
|
|
{% endfor %}
|
|
|
|
<br/><br/>
|
|
|
|
{% for r in xranges %}
|
|
|
|
<span
|
|
class="stat_module_pulse pulse_{{ r.identifier }}"
|
|
style="{{ 'display:none;' if initialrange==r.identifier else '' }}"
|
|
>
|
|
|
|
{% with limitkeys={"since":r.firstrange},delimitkeys={'step':r.identifier,'trail':1} %}
|
|
{% include 'partials/pulse.jinja' %}
|
|
{% endwith %}
|
|
</span>
|
|
|
|
{% endfor %}
|
|
</td>
|
|
<td>
|
|
<!-- We use the same classes / function calls here because we want it to switch together with pulse -->
|
|
<h2><a href='{{ mlj_uri.create_uri("/performance",filterkeys) }}'>Performance</a></h2>
|
|
<br/>
|
|
{% for r in xranges %}
|
|
<span
|
|
onclick="showRangeManual('pulse','{{ r.identifier }}')"
|
|
class="stat_selector_pulse selector_pulse_{{ r.identifier }}"
|
|
style="{{ 'opacity:0.5;' if initialrange==r.identifier else '' }}">
|
|
{{ r.localisation }}
|
|
</span>
|
|
{% if not loop.last %}|{% endif %}
|
|
{% endfor %}
|
|
|
|
<br/><br/>
|
|
|
|
{% for r in xranges %}
|
|
|
|
<span
|
|
class="stat_module_pulse pulse_{{ r.identifier }}"
|
|
style="{{ 'display:none;' if initialrange==r.identifier else '' }}"
|
|
>
|
|
|
|
{% with limitkeys={"since":r.firstrange},delimitkeys={'step':r.identifier,'trail':1} %}
|
|
{% include 'partials/performance.jinja' %}
|
|
{% endwith %}
|
|
</span>
|
|
|
|
{% endfor %}
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
|
|
<h2><a href='{{ mlj_uri.create_uri("/scrobbles",filterkeys) }}'>Last Scrobbles</a></h2>
|
|
|
|
{% with amountkeys = {"perpage":15,"page":0} %}
|
|
{% include 'partials/scrobbles.jinja' %}
|
|
{% endwith %}
|
|
|
|
|
|
{% endblock %}
|