/
leaderboard.html
123 lines (118 loc) 路 6.16 KB
/
leaderboard.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
{% extends 'base.html' %}
{% block title %} Leaderboard {% endblock %}
{% block header %}
<script src="/static/js/asserts/vue.js"></script>
<script src="/static/js/asserts/vue-axios.js"></script>
<script>
var mode = "{{ mode }}";
var mods = "{{ mods }}";
var sort = "{{ sort }}";
var domain = "{{ domain() }}";
</script>
<link rel="stylesheet" href="/static/css/pages/leaderboard.css">
{% endblock %}
{% block content %}
<div id="app" :class="(load ? 'load' : '')">
<div class="leaderboard-banner main-banner">
<div class="main-selector">
<a :href="'/lb/osu/'+sort+'/'+mods" :class="'mode-select '+(mode == 'std' ? '--selected ' : '')"
@click="LoadLeaderboard(sort, 'std', mods)">
<i class="mode-icon mode-osu"></i><span class="modetext"> osu!</span>
</a>
<a :href="'/lb/taiko/'+sort+'/'+mods" :class="'mode-select '+(mode == 'taiko' ? '--selected ' : '') +
(mods == 'ap' ? 'disabled':'')" @click="LoadLeaderboard(sort, 'taiko', mods)">
<i class="mode-icon mode-taiko"></i><span class="modetext"> osu!taiko</span>
</a>
<a :href="'/lb/catch/'+sort+'/'+mods" :class="'mode-select '+(mode == 'catch' ? '--selected ' : '') +
(mods == 'ap' ? 'disabled':'')" @click="LoadLeaderboard(sort, 'catch', mods)">
<i class="mode-icon mode-catch"></i><span class="modetext"> osu!catch</span>
</a>
<a :href="'/lb/mania/'+sort+'/'+mods" :class="'mode-select '+(mode == 'mania' ? '--selected ' : '') +
(mods == 'ap' ? 'disabled':'')+
(mods == 'rx' ? 'disabled':'')" @click="LoadLeaderboard(sort, 'mania', mods)">
<i class="mode-icon mode-mania"></i><span class="modetext"> osu!mania</span>
</a>
</div>
<div class="banner-text">Leaderboard</div>
<div class="selector">
<div class="left">
<a :href="'/lb/'+mode+'/pp'" @click="LoadLeaderboard('pp', mode, mods, '')" :class="'simple-banner-switch'+
(sort == 'pp' ? ' switch--active' :'')">PP</a>
<a :href="'/lb/'+mode+'/rscore'" @click="LoadLeaderboard('rscore', mode, mods, '')" :class="'simple-banner-switch'+
(sort == 'rscore' ? ' switch--active' :'')">Score</a>
</div>
<div class="right">
<a :href="'/lb/'+mode+'/'+sort+'/vn'" :class="'simple-banner-switch '+
(mods == 'vn' ? 'switch--active' : '')" @click="LoadLeaderboard(sort, mode, 'vn')">Vanilla</a>
<a :href="'/lb/'+mode+'/'+sort+'/rx'" :class="'simple-banner-switch '+
(mods == 'rx' ? 'switch--active' : '')+
(mode == 'mania' ? 'disabled':'')" @click="LoadLeaderboard(sort, mode, 'rx')">Relax</a>
<a :href="'/lb/'+mode+'/'+sort+'/ap'" :class="'simple-banner-switch '+
(mods == 'ap' ? 'switch--active' : '')+
(mode == 'mania' ? 'disabled':'')+
(mode == 'catch' ? 'disabled':'')+
(mode == 'taiko' ? 'disabled':'')" @click="LoadLeaderboard(sort, mode, 'ap')">Autopilot</a>
</div>
</div>
</div>
<div class="main-block">
<div class="leaderboard-main-bg table-responsive">
<div v-if="boards.length != undefined && boards.length != 0">
<table class="leaderboard-table table-responsive">
<thead>
<tr>
<th class="t-heading"> </th>
<th class="t-heading t-heading--main"></th>
<th v-if="sort == 'pp' || sort == 'rscore'" class="t-heading table--selected">
<% (sort=='pp' ? "PP" : "" ) %>
<% (sort=='rscore' ? "Score" : "" ) %>
</th>
<th class="t-heading"> Accuracy </th>
<th class="t-heading"> Playcount </th>
<th class="t-heading"> Max Combo </th>
</tr>
</thead>
<tbody>
<tr v-for="(user, index) in boards" class="leaderboard-column">
<td class="column-player-rank">#<% index + 1 %>
</td>
<td class="column-player-name text-left">
<a :title="flags[user.country.toUpperCase()]"
:style="'background-image: url(/static/images/flags/' + user.country.toUpperCase() + '.png)'"
class="player-flag">
<div class="flag-dropdown">
<% flags[user.country.toUpperCase()] %>
</div>
</a>
<a :href="'/u/'+user.player_id">
<% user.name %>
</a>
</td>
<td v-if="sort == 'pp' || sort == 'rscore'">
<% (sort=='pp' ? user.pp+'pp' : "" ) %>
<% (sort=='rscore' ? scoreFormat(user.rscore) : "" ) %>
</td>
<td>
<% user.acc.toFixed(2) %>%
</td>
<td>
<% addCommas(user.plays) %>
</td>
<td>
<% addCommas(user.max_combo) %>
</td>
</tr>
</tbody>
</table>
</div>
<div v-else>
<div class="text-center">
there are no players to display!
</div>
</div>
</div>
</div>
</div>
<script src="/static/js/asserts/vue-flags.js"></script>
<script src="/static/js/pages/leaderboard.js"></script>
{% endblock %}