Skip to content

Commit ba1b29c

Browse files
erdnaxeColdHeat
andauthored
Show message on empty scoreboard (#74)
* scoreboard.js: init data with right types * _graphs.scss: do not define display as it is always overriden to flex * Show message on empty scoreboard * scoreboard.html: fix unclosed span element * yarn build * Use more generic empty language --------- Co-authored-by: Kevin Chung <[email protected]>
1 parent 9350bf6 commit ba1b29c

File tree

7 files changed

+17
-13
lines changed

7 files changed

+17
-13
lines changed

Diff for: assets/js/scoreboard.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,20 @@ window.Alpine = Alpine;
77
window.CTFd = CTFd;
88

99
Alpine.data("ScoreboardDetail", () => ({
10-
data: null,
10+
data: {},
11+
show: true,
1112

1213
async init() {
1314
this.data = await CTFd.pages.scoreboard.getScoreboardDetail(10);
1415

1516
let option = getOption(CTFd.config.userMode, this.data);
1617
embed(this.$refs.scoregraph, option);
18+
this.show = Object.keys(this.data).length > 0;
1719
},
1820
}));
1921

2022
Alpine.data("ScoreboardList", () => ({
21-
standings: null,
23+
standings: [],
2224
brackets: [],
2325
activeBracket: null,
2426

@@ -28,7 +30,7 @@ Alpine.data("ScoreboardList", () => ({
2830
});
2931
const body = await response.json();
3032
this.brackets = body["data"];
31-
this.full_standings = this.standings = await CTFd.pages.scoreboard.getScoreboard();
33+
this.standings = await CTFd.pages.scoreboard.getScoreboard();
3234
},
3335
}));
3436

Diff for: assets/scss/includes/components/_graphs.scss

-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33

44
#score-graph {
55
min-height: 400px;
6-
display: block;
7-
clear: both;
86
}
97

108
#solves-graph {

Diff for: static/assets/main.63991f7d.css renamed to static/assets/main.3095e2ea.css

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: static/assets/scoreboard.eecf07d0.js

-1
This file was deleted.

Diff for: static/assets/scoreboard.ffe44295.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: static/manifest.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
]
3939
},
4040
"assets/js/scoreboard.js": {
41-
"file": "assets/scoreboard.eecf07d0.js",
41+
"file": "assets/scoreboard.ffe44295.js",
4242
"src": "assets/js/scoreboard.js",
4343
"isEntry": true,
4444
"imports": [
@@ -140,7 +140,7 @@
140140
]
141141
},
142142
"assets/scss/main.scss": {
143-
"file": "assets/main.63991f7d.css",
143+
"file": "assets/main.3095e2ea.css",
144144
"src": "assets/scss/main.scss",
145145
"isEntry": true
146146
}

Diff for: templates/scoreboard.html

+8-4
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ <h1>
1111
<div class="container">
1212
{% include "components/errors.html" %}
1313

14-
<div id="score-graph" class="d-flex align-items-center" x-data="ScoreboardDetail" x-ref="scoregraph">
14+
<div id="score-graph" class="align-items-center" :class="{'d-flex': show, 'd-none': !show}" x-data="ScoreboardDetail" x-ref="scoregraph">
1515
<div class="col-md-12 text-center">
1616
<i class="fas fa-circle-notch fa-spin fa-3x fa-fw spinner"></i>
1717
</div>
1818
</div>
1919

2020
<div id="scoreboard" class="row" x-data="ScoreboardList">
21-
<template x-if="brackets.length">
21+
<template x-if="brackets.length && standings.length">
2222
<div class="col-md-12 py-3">
2323
<nav class="nav nav-pills nav-fill">
2424
<button :class="{'nav-link': true, 'active': !activeBracket}" @click="activeBracket=null">{% trans %}All{% endtrans %}</button>
@@ -29,7 +29,7 @@ <h1>
2929
</div>
3030
</template>
3131

32-
<div class="col-md-12">
32+
<div class="col-md-12" x-show="standings.length">
3333
<table class="table table-striped">
3434
<thead>
3535
<tr>
@@ -46,7 +46,7 @@ <h1>
4646
<td>
4747
<a :href="standing.account_url" x-text="standing.name"></a>
4848
<template x-if="standing.bracket_name">
49-
<span class="badge bg-secondary ms-2" x-text="standing.bracket_name">
49+
<span class="badge bg-secondary ms-2" x-text="standing.bracket_name"></span>
5050
</template>
5151
</td>
5252
<td x-text="standing.score"></td>
@@ -55,6 +55,10 @@ <h1>
5555
</tbody>
5656
</table>
5757
</div>
58+
59+
<div class="col-md-12" x-show="! standings.length">
60+
<h3 class="text-center text-muted">{% trans %}Scoreboard is empty{% endtrans %}</h3>
61+
</div>
5862
</div>
5963
</div>
6064
{% endblock %}

0 commit comments

Comments
 (0)