1 |
1782ee99
|
Jan Pašek
|
<!DOCTYPE html>
|
2 |
|
|
<html lang="en">
|
3 |
|
|
<head>
|
4 |
|
|
<meta charset="UTF-8">
|
5 |
|
|
<title>X.509 Certificate Management</title>
|
6 |
30fb300a
|
Jan Pašek
|
<link rel="stylesheet" href="/static/css/bootstrap.min.css">
|
7 |
5885e489
|
Jan Pašek
|
<link href="https://cdn.jsdelivr.net/npm/vue-loading-overlay@3/dist/vue-loading.css" rel="stylesheet">
|
8 |
82cf9149
|
Jan Pašek
|
<link rel="stylesheet" href="/static/css/app.css">
|
9 |
1782ee99
|
Jan Pašek
|
</head>
|
10 |
e75db9cd
|
Jan Pašek
|
<body>
|
11 |
82cf9149
|
Jan Pašek
|
<div id="certificateListingPage" class="p-5 h-100">
|
12 |
5885e489
|
Jan Pašek
|
<div v-if="loading">
|
13 |
|
|
<loading :active.sync="loading"
|
14 |
|
|
:can-cancel="false"
|
15 |
|
|
loader="dots"
|
16 |
|
|
:is-full-page="true"></loading>
|
17 |
e75db9cd
|
Jan Pašek
|
</div>
|
18 |
82cf9149
|
Jan Pašek
|
<div v-if="!loading" v-cloak class="card h-100">
|
19 |
376e6be2
|
Jan Pašek
|
<div class="card">
|
20 |
|
|
<div class="card-body">
|
21 |
|
|
<div>
|
22 |
|
|
<h1 class="d-inline-block">Certificate Listing</h1>
|
23 |
|
|
</div>
|
24 |
|
|
<div class="alert alert-success" v-if="successMessage !== ''" role="alert" v-cloak>
|
25 |
|
|
{{ successMessage }}
|
26 |
|
|
</div>
|
27 |
|
|
<div class="mt-2 mb-2">
|
28 |
|
|
<a class="btn btn-success mb-3 text-center" href="/static/create_certificate.html"><b>+</b></a>
|
29 |
|
|
<button v-on:click="toggleFilters" v-if="!displayFilters" class="btn btn-outline-primary ml-4 mb-3" data-toggle="collapse" data-target="#filteringCollapse">Show filtering</button>
|
30 |
|
|
<button v-on:click="toggleFilters" v-if="displayFilters" class="btn btn-outline-primary ml-4 mb-3" data-toggle="collapse" data-target="#filteringCollapse">Hide filtering</button>
|
31 |
|
|
<div class="collapse mt-2" id="filteringCollapse">
|
32 |
|
|
<div class="card card-body filtering-box">
|
33 |
|
|
<div class="container">
|
34 |
|
|
<div class="row align-items-center">
|
35 |
|
|
<div class="col-3">
|
36 |
|
|
<div class="form-group mb-0">
|
37 |
|
|
<h5>Usage:</h5>
|
38 |
|
|
<div class="form-check ml-4">
|
39 |
|
|
<input class="form-check-input" type="checkbox" id="usageCA" v-model="filtering.usage.CA">
|
40 |
|
|
<label class="form-check-label" for="usageCA">
|
41 |
|
|
CA
|
42 |
|
|
</label>
|
43 |
|
|
</div>
|
44 |
|
|
<div class="form-check ml-4">
|
45 |
|
|
<input class="form-check-input" type="checkbox" id="usageSignature" v-model="filtering.usage.digitalSignature">
|
46 |
|
|
<label class="form-check-label" for="usageSignature">
|
47 |
|
|
Digital signature
|
48 |
|
|
</label>
|
49 |
|
|
</div>
|
50 |
|
|
<div class="form-check ml-4">
|
51 |
|
|
<input class="form-check-input" type="checkbox" id="usageAuth" v-model="filtering.usage.authentication">
|
52 |
|
|
<label class="form-check-label" for="usageAuth">
|
53 |
|
|
Authentication
|
54 |
|
|
</label>
|
55 |
|
|
</div>
|
56 |
|
|
<div class="form-check ml-4">
|
57 |
|
|
<input class="form-check-input" type="checkbox" id="usageSSL" v-model="filtering.usage.SSL">
|
58 |
|
|
<label class="form-check-label" for="usageSSL">
|
59 |
|
|
SSL/TLS
|
60 |
|
|
</label>
|
61 |
|
|
</div>
|
62 |
82cf9149
|
Jan Pašek
|
</div>
|
63 |
1597a43f
|
Jan Pašek
|
</div>
|
64 |
376e6be2
|
Jan Pašek
|
<div class="col-3">
|
65 |
|
|
<div class="form-group mb-0">
|
66 |
|
|
<h5>Type:</h5>
|
67 |
|
|
<div class="form-check ml-4">
|
68 |
|
|
<input class="form-check-input" type="checkbox" id="rootCA" v-model="filtering.type.RootCA">
|
69 |
|
|
<label class="form-check-label" for="rootCA">
|
70 |
|
|
Root CA
|
71 |
|
|
</label>
|
72 |
|
|
</div>
|
73 |
|
|
<div class="form-check ml-4">
|
74 |
|
|
<input class="form-check-input" type="checkbox" id="intermediateCA" v-model="filtering.type.IntermediateCA">
|
75 |
|
|
<label class="form-check-label" for="intermediateCA">
|
76 |
|
|
Intermediate CA
|
77 |
|
|
</label>
|
78 |
|
|
</div>
|
79 |
|
|
<div class="form-check ml-4">
|
80 |
|
|
<input class="form-check-input" type="checkbox" id="endCertificate" v-model="filtering.type.EndCertificate">
|
81 |
|
|
<label class="form-check-label" for="endCertificate">
|
82 |
|
|
End certificate
|
83 |
|
|
</label>
|
84 |
|
|
</div>
|
85 |
82cf9149
|
Jan Pašek
|
</div>
|
86 |
1597a43f
|
Jan Pašek
|
</div>
|
87 |
376e6be2
|
Jan Pašek
|
<div class="col-3">
|
88 |
|
|
<div class="form-group mb-0">
|
89 |
|
|
<h5>Common name:</h5>
|
90 |
|
|
<div>
|
91 |
|
|
<input class="form-control" type="text" id="commonName" placeholder="Enter common name" v-model="filtering.CN">
|
92 |
|
|
</div>
|
93 |
82cf9149
|
Jan Pašek
|
</div>
|
94 |
1597a43f
|
Jan Pašek
|
</div>
|
95 |
376e6be2
|
Jan Pašek
|
<div class="col-3">
|
96 |
|
|
<button class="btn btn-primary mb-2" style="width: 115px;" v-on:click="reloadData">Apply filters</button>
|
97 |
|
|
<button class="btn btn-secondary mb-2" style="width: 115px;" v-on:click="clearFilters">Clear filters</button>
|
98 |
|
|
</div>
|
99 |
82cf9149
|
Jan Pašek
|
</div>
|
100 |
1597a43f
|
Jan Pašek
|
</div>
|
101 |
|
|
</div>
|
102 |
|
|
</div>
|
103 |
|
|
</div>
|
104 |
376e6be2
|
Jan Pašek
|
<table class="table table-striped table-hover text-center">
|
105 |
|
|
<thead class="thead-dark">
|
106 |
|
|
<tr>
|
107 |
|
|
<th class="align-middle" scope="col" rowspan="2">Common name</th>
|
108 |
|
|
<th class="align-middle" scope="col" colspan="2">Validity</th>
|
109 |
|
|
<th class="align-middle" scope="col" rowspan="2">Usage</th>
|
110 |
|
|
<th class="align-middle" scope="col" rowspan="2">Certificate</th>
|
111 |
|
|
<th class="align-middle" scope="col" rowspan="2">Chain of trust</th>
|
112 |
|
|
<th class="align-middle" scope="col" rowspan="2">Root</th>
|
113 |
|
|
<th class="align-middle" scope="col" rowspan="2">Private key</th>
|
114 |
|
|
<th class="align-middle" scope="col" rowspan="2">Issuer</th>
|
115 |
|
|
</tr>
|
116 |
|
|
<tr>
|
117 |
|
|
<th scope="col">Start</th>
|
118 |
|
|
<th scope="col">End</th>
|
119 |
|
|
</tr>
|
120 |
|
|
</thead>
|
121 |
|
|
<tbody>
|
122 |
|
|
<tr v-show="certificates.length == 0">
|
123 |
|
|
<td colspan="9">No certificate found</td>
|
124 |
|
|
</tr>
|
125 |
|
|
<tr is="certificate-item"
|
126 |
|
|
v-for="certificate in certificates"
|
127 |
|
|
v-bind:certificate="certificate"
|
128 |
|
|
v-bind:key="certificate.id">
|
129 |
|
|
</tr>
|
130 |
|
|
</tbody>
|
131 |
|
|
</table>
|
132 |
|
|
<div v-if="hasNextPage || hasPreviousPage">
|
133 |
|
|
<ul class="pagination justify-content-center">
|
134 |
|
|
<li class="page-item" v-bind:class="{disabled: !hasPreviousPage}">
|
135 |
|
|
<button v-on:click="onPreviousPage" class="page-link"><<</button>
|
136 |
|
|
</li>
|
137 |
|
|
<li class="page-item"><button class="page-link">{{ currentPage }}</button></li>
|
138 |
|
|
<li class="page-item" v-bind:class="{disabled: !hasNextPage}">
|
139 |
|
|
<button v-on:click="onNextPage" class="page-link">>></button>
|
140 |
|
|
</li>
|
141 |
|
|
</ul>
|
142 |
|
|
</div>
|
143 |
82cf9149
|
Jan Pašek
|
</div>
|
144 |
3c468ba1
|
Jan Pašek
|
</div>
|
145 |
6d850d19
|
Jan Pašek
|
</div>
|
146 |
30fb300a
|
Jan Pašek
|
</div>
|
147 |
5885e489
|
Jan Pašek
|
<script src="https://cdn.jsdelivr.net/npm/vue-loading-overlay@3"></script>
|
148 |
e75db9cd
|
Jan Pašek
|
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
|
149 |
|
|
<script src="/static/js/jquery-3.6.0.min.js"></script>
|
150 |
|
|
<script src="/static/js/bootstrap.bundle.min.js"></script>
|
151 |
|
|
<script src="/static/js/axios.min.js"></script>
|
152 |
28787717
|
Jan Pašek
|
<script src="/static/js/constants.js"></script>
|
153 |
e75db9cd
|
Jan Pašek
|
<script src="/static/js/utilities.js"></script>
|
154 |
|
|
<script src="/static/js/components.js"></script>
|
155 |
|
|
<script src="/static/js/index.js"></script>
|
156 |
|
|
|
157 |
1782ee99
|
Jan Pašek
|
</body>
|
158 |
|
|
</html>
|