blob: 067a110e4336d5d6460cd6826e78cf04d62186e5 (
plain)
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
|
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.0.11/handlebars.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<script id="body-template" type="text/x-handlebars-template">
<div class="container">
{{#each challenges}}
<div class="card {{#if foundFlag}}border-success{{/if}}" style="margin-bottom: 20px">
<div class="card-header">
{{ name }}
<span class="badge badge-light">
{{ category }}
</span>
</div>
<div class="card-body">
<p>
{{{ description }}}
</p>
{{#if foundFlag}}
<p class="text-success">Flag found!</p>
{{else}}
<form class="input-group mb-3" method="POST" action="/api/submitFlag">
<input type="hidden" name="challengeName" value="{{ name }}">
<input type="text" class="form-control" placeholder="Case-sensitive flag, like: CIRCUS{this-is-an-3x4mpl3!}" aria-label="Flag" aria-describedby="button-submit" name="flag">
<div class="input-group-append">
<button class="btn btn-outline-primary" type="submit" id="button-submit">Submit flag</button>
</div>
</form>
{{/if}}
</div>
</div>
{{/each}}
</div>
</script>
<body>
<nav class="navbar navbar-expand-md navbar-dark bg-dark mb-4">
<a class="navbar-brand" href="/">Companion</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link" href="/">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/challenges">Challenges</a>
</li>
</ul>
<form class="form-inline mt-2 mt-md-0" action="/logout" method="post">
<button class="btn btn-outline-danger my-2 my-sm-0" type="submit">Logout</button>
</form>
</div>
</nav>
<main class="container" role="main" id="challenge-list">
</main>
</body>
<script type="text/javascript">
var template = Handlebars.compile($("#body-template").html());
$.ajax({
url: "/api/getChallenges",
success: function(result) {
$("#challenge-list").html(
template(jQuery.parseJSON(result))
);
}
});
</script>
</html>
|