Revize 376e6be2
Přidáno uživatelem Jan Pašek před téměř 4 roky(ů)
static/create_certificate.html | ||
---|---|---|
56 | 56 |
</div> |
57 | 57 |
</tr> |
58 | 58 |
<tr> |
59 |
<td colspan="2"><h5>Issuer</h5></td>
|
|
59 |
<td colspan="2"><h5>Subject</h5></td>
|
|
60 | 60 |
</tr> |
61 | 61 |
<tr> |
62 | 62 |
<div class="form-group"> |
63 |
<td><label for="issuer_CN">Common Name:</label></td>
|
|
63 |
<td><label for="subject_CN">Common Name:</label></td>
|
|
64 | 64 |
<td class="pl-3"> |
65 |
<input type="text" id="issuer_CN" name="issuer_CN" class="form-control" v-bind:value="selectedCAData.CN" disabled>
|
|
65 |
<input type="text" v-bind:class="{ 'is-invalid': invalidCN }" v-model:value="certificateData.subject.CN" id="subject_CN" name="subject_CN" class="form-control">
|
|
66 | 66 |
</td> |
67 | 67 |
</div> |
68 | 68 |
</tr> |
69 | 69 |
<tr> |
70 | 70 |
<div class="form-group"> |
71 |
<td><label for="issuer_C">Country Code:</label></td>
|
|
71 |
<td><label for="subject_C">Country Code:</label></td>
|
|
72 | 72 |
<td class="pl-3"> |
73 |
<input type="text" id="issuer_C" name="issuer_C" class="form-control" v-bind:value="selectedCAData.C" disabled>
|
|
73 |
<input type="text" v-model:value="certificateData.subject.C" id="subject_C" name="subject_C" class="form-control">
|
|
74 | 74 |
</td> |
75 | 75 |
</div> |
76 | 76 |
</tr> |
77 | 77 |
<tr> |
78 | 78 |
<div class="form-group"> |
79 |
<td><label for="issuer_L">Locality:</label></td>
|
|
79 |
<td><label for="subject_L">Locality:</label></td>
|
|
80 | 80 |
<td class="pl-3"> |
81 |
<input type="text" id="issuer_L" name="issuer_L" class="form-control" v-bind:value="selectedCAData.L" disabled>
|
|
81 |
<input type="text" v-model:value="certificateData.subject.L" id="subject_L" name="subject_L" class="form-control">
|
|
82 | 82 |
</td> |
83 | 83 |
</div> |
84 | 84 |
</tr> |
85 | 85 |
<tr> |
86 | 86 |
<div class="form-group"> |
87 |
<td><label for="issuer_ST">Province/State:</label></td>
|
|
87 |
<td><label for="subject_ST">Province/State:</label></td>
|
|
88 | 88 |
<td class="pl-3"> |
89 |
<input type="text" id="issuer_ST" name="issuer_ST" class="form-control" v-bind:value="selectedCAData.ST" disabled>
|
|
89 |
<input type="text" v-model:value="certificateData.subject.ST" id="subject_ST" name="subject_ST" class="form-control">
|
|
90 | 90 |
</td> |
91 | 91 |
</div> |
92 | 92 |
</tr> |
93 | 93 |
<tr> |
94 | 94 |
<div class="form-group"> |
95 |
<td><label for="issuer_O">Organization:</label></td>
|
|
95 |
<td><label for="subject_O">Organization:</label></td>
|
|
96 | 96 |
<td class="pl-3"> |
97 |
<input type="text" id="issuer_O" name="issuer_O" class="form-control" v-bind:value="selectedCAData.O" disabled>
|
|
97 |
<input type="text" v-model:value="certificateData.subject.O" id="subject_O" name="subject_O" class="form-control">
|
|
98 | 98 |
</td> |
99 | 99 |
</div> |
100 | 100 |
</tr> |
101 | 101 |
<tr> |
102 | 102 |
<div class="form-group"> |
103 |
<td><label for="issuer_OU">Organization Unit:</label></td>
|
|
103 |
<td><label for="subject_OU">Organization Unit:</label></td>
|
|
104 | 104 |
<td class="pl-3"> |
105 |
<input type="text" id="issuer_OU" name="issuer_OU" class="form-control" v-bind:value="selectedCAData.OU" disabled>
|
|
105 |
<input type="text" v-model:value="certificateData.subject.OU" id="subject_OU" name="subject_OU" class="form-control">
|
|
106 | 106 |
</td> |
107 | 107 |
</div> |
108 | 108 |
</tr> |
109 | 109 |
<tr> |
110 | 110 |
<div class="form-group"> |
111 |
<td><label for="issuer_emailAddress">Email:</label></td>
|
|
111 |
<td><label for="subject_emailAddress">Email:</label></td>
|
|
112 | 112 |
<td class="pl-3"> |
113 |
<input type="email" id="issuer_emailAddress" name="issuer_emailAddress" class="form-control" v-bind:value="selectedCAData.emailAddress" disabled>
|
|
113 |
<input type="email" v-model:value="certificateData.subject.emailAddress" id="subject_emailAddress" name="subject_emailAddress" class="form-control">
|
|
114 | 114 |
</td> |
115 | 115 |
</div> |
116 | 116 |
</tr> |
117 | 117 |
<tr> |
118 |
<td colspan="2"><h5>Subject</h5></td> |
|
118 |
<td>Usage:</td> |
|
119 |
<td class="form-check"> |
|
120 |
<input class="form-check-input" :disabled="isSelfSigned" v-model="certificateData.usage.CA" type="checkbox" id="isCA" name="isCA" value="CA"> |
|
121 |
<label class="form-check-label" for="isCA">CA</label><br> |
|
122 |
|
|
123 |
<input class="form-check-input" v-model="certificateData.usage.digitalSignature" type="checkbox" id="isDigitalSignature" name="isDigitalSignature" value="DigitalSignature"> |
|
124 |
<label class="form-check-label" for="isDigitalSignature">Digital Signature</label><br> |
|
125 |
|
|
126 |
<input class="form-check-input" v-model="certificateData.usage.authentication" type="checkbox" id="isAuthentication" name="isAuthentication" value="Authentication"> |
|
127 |
<label class="form-check-label" for="isAuthentication">Authentication</label><br> |
|
128 |
|
|
129 |
<input class="form-check-input" v-model="certificateData.usage.SSL" type="checkbox" id="isSSL_TLS" name="isSSL_TLS" value="SSL_TLS"> |
|
130 |
<label class="form-check-label" for="isSSL_TLS">SSL/TLS</label><br> |
|
131 |
</td> |
|
119 | 132 |
</tr> |
120 |
<tr> |
|
133 |
<tr v-if="!isSelfSigned && !showIssuer" class="pt-2"> |
|
134 |
<td colspan="3"> |
|
135 |
<button v-if="!showIssuer" v-on:click="toggleShowIssuer" class="btn btn-outline-secondary btn-block">Show issuer</button> |
|
136 |
</td> |
|
137 |
</tr> |
|
138 |
<tr v-if="showIssuer" class="pt-2" v-cloak> |
|
139 |
<td colspan="3"> |
|
140 |
<button v-on:click="toggleShowIssuer" class="btn btn-outline-secondary btn-block">Hide issuer</button> |
|
141 |
</td> |
|
142 |
</tr> |
|
143 |
<tr v-if="showIssuer" v-cloak> |
|
144 |
<td colspan="2"><h5>Issuer</h5></td> |
|
145 |
</tr> |
|
146 |
<tr v-if="showIssuer" v-cloak> |
|
121 | 147 |
<div class="form-group"> |
122 |
<td><label for="subject_CN">Common Name:</label></td>
|
|
148 |
<td><label for="issuer_CN">Common Name:</label></td>
|
|
123 | 149 |
<td class="pl-3"> |
124 |
<input type="text" v-bind:class="{ 'is-invalid': invalidCN }" v-model:value="certificateData.subject.CN" id="subject_CN" name="subject_CN" class="form-control">
|
|
150 |
<input type="text" id="issuer_CN" name="issuer_CN" class="form-control" v-bind:value="selectedCAData.CN" disabled>
|
|
125 | 151 |
</td> |
126 | 152 |
</div> |
127 | 153 |
</tr> |
128 |
<tr> |
|
154 |
<tr v-if="showIssuer" v-cloak>
|
|
129 | 155 |
<div class="form-group"> |
130 |
<td><label for="subject_C">Country Code:</label></td>
|
|
156 |
<td><label for="issuer_C">Country Code:</label></td>
|
|
131 | 157 |
<td class="pl-3"> |
132 |
<input type="text" v-model:value="certificateData.subject.C" id="subject_C" name="subject_C" class="form-control">
|
|
158 |
<input type="text" id="issuer_C" name="issuer_C" class="form-control" v-bind:value="selectedCAData.C" disabled>
|
|
133 | 159 |
</td> |
134 | 160 |
</div> |
135 | 161 |
</tr> |
136 |
<tr> |
|
162 |
<tr v-if="showIssuer" v-cloak>
|
|
137 | 163 |
<div class="form-group"> |
138 |
<td><label for="subject_L">Locality:</label></td>
|
|
164 |
<td><label for="issuer_L">Locality:</label></td>
|
|
139 | 165 |
<td class="pl-3"> |
140 |
<input type="text" v-model:value="certificateData.subject.L" id="subject_L" name="subject_L" class="form-control">
|
|
166 |
<input type="text" id="issuer_L" name="issuer_L" class="form-control" v-bind:value="selectedCAData.L" disabled>
|
|
141 | 167 |
</td> |
142 | 168 |
</div> |
143 | 169 |
</tr> |
144 |
<tr> |
|
170 |
<tr v-if="showIssuer" v-cloak>
|
|
145 | 171 |
<div class="form-group"> |
146 |
<td><label for="subject_ST">Province/State:</label></td>
|
|
172 |
<td><label for="issuer_ST">Province/State:</label></td>
|
|
147 | 173 |
<td class="pl-3"> |
148 |
<input type="text" v-model:value="certificateData.subject.ST" id="subject_ST" name="subject_ST" class="form-control">
|
|
174 |
<input type="text" id="issuer_ST" name="issuer_ST" class="form-control" v-bind:value="selectedCAData.ST" disabled>
|
|
149 | 175 |
</td> |
150 | 176 |
</div> |
151 | 177 |
</tr> |
152 |
<tr> |
|
178 |
<tr v-if="showIssuer" v-cloak>
|
|
153 | 179 |
<div class="form-group"> |
154 |
<td><label for="subject_O">Organization:</label></td>
|
|
180 |
<td><label for="issuer_O">Organization:</label></td>
|
|
155 | 181 |
<td class="pl-3"> |
156 |
<input type="text" v-model:value="certificateData.subject.O" id="subject_O" name="subject_O" class="form-control">
|
|
182 |
<input type="text" id="issuer_O" name="issuer_O" class="form-control" v-bind:value="selectedCAData.O" disabled>
|
|
157 | 183 |
</td> |
158 | 184 |
</div> |
159 | 185 |
</tr> |
160 |
<tr> |
|
186 |
<tr v-if="showIssuer" v-cloak>
|
|
161 | 187 |
<div class="form-group"> |
162 |
<td><label for="subject_OU">Organization Unit:</label></td>
|
|
188 |
<td><label for="issuer_OU">Organization Unit:</label></td>
|
|
163 | 189 |
<td class="pl-3"> |
164 |
<input type="text" v-model:value="certificateData.subject.OU" id="subject_OU" name="subject_OU" class="form-control">
|
|
190 |
<input type="text" id="issuer_OU" name="issuer_OU" class="form-control" v-bind:value="selectedCAData.OU" disabled>
|
|
165 | 191 |
</td> |
166 | 192 |
</div> |
167 | 193 |
</tr> |
168 |
<tr> |
|
194 |
<tr v-if="showIssuer" v-cloak>
|
|
169 | 195 |
<div class="form-group"> |
170 |
<td><label for="subject_emailAddress">Email:</label></td>
|
|
196 |
<td><label for="issuer_emailAddress">Email:</label></td>
|
|
171 | 197 |
<td class="pl-3"> |
172 |
<input type="email" v-model:value="certificateData.subject.emailAddress" id="subject_emailAddress" name="subject_emailAddress" class="form-control">
|
|
198 |
<input type="email" id="issuer_emailAddress" name="issuer_emailAddress" class="form-control" v-bind:value="selectedCAData.emailAddress" disabled>
|
|
173 | 199 |
</td> |
174 | 200 |
</div> |
175 | 201 |
</tr> |
176 |
<tr> |
|
177 |
<td>Usage:</td> |
|
178 |
<td class="form-check"> |
|
179 |
<input class="form-check-input" :disabled="isSelfSigned" v-model="certificateData.usage.CA" type="checkbox" id="isCA" name="isCA" value="CA"> |
|
180 |
<label class="form-check-label" for="isCA">CA</label><br> |
|
181 |
|
|
182 |
<input class="form-check-input" v-model="certificateData.usage.digitalSignature" type="checkbox" id="isDigitalSignature" name="isDigitalSignature" value="DigitalSignature"> |
|
183 |
<label class="form-check-label" for="isDigitalSignature">Digital Signature</label><br> |
|
184 |
|
|
185 |
<input class="form-check-input" v-model="certificateData.usage.authentication" type="checkbox" id="isAuthentication" name="isAuthentication" value="Authentication"> |
|
186 |
<label class="form-check-label" for="isAuthentication">Authentication</label><br> |
|
187 |
|
|
188 |
<input class="form-check-input" v-model="certificateData.usage.SSL" type="checkbox" id="isSSL_TLS" name="isSSL_TLS" value="SSL_TLS"> |
|
189 |
<label class="form-check-label" for="isSSL_TLS">SSL/TLS</label><br> |
|
190 |
</td> |
|
191 |
</tr> |
|
192 | 202 |
<tr> |
193 | 203 |
<div class="form-group form-check"> |
194 | 204 |
<td><label class="form-check-label" for="specifyPasswordCheckbox" style="margin-top: 15px">Custom key:</label></td> |
... | ... | |
200 | 210 |
<tr v-if="customKey" v-cloak> |
201 | 211 |
<div class="form-group"> |
202 | 212 |
<td class="pl-5"><label for="key_password">Password:</label></td> |
203 |
<td class="pl-3"> |
|
213 |
<td class="pl-3" colspan="2">
|
|
204 | 214 |
<input type="password" v-model:value="key.password" id="key_password" name="key_password" class="form-control"> |
205 | 215 |
</td> |
206 | 216 |
</div> |
... | ... | |
208 | 218 |
<tr v-if="customKey" v-cloak> |
209 | 219 |
<div class="form-group"> |
210 | 220 |
<td class="pl-5"><label for="key_pem">Private key:</label></td> |
211 |
<td class="pl-3"> |
|
221 |
<td class="pl-3" colspan="2">
|
|
212 | 222 |
<input type="file" v-on:change="onKeyFileChange" id="key_pem" name="key_pem" class="form-control-file"> |
213 | 223 |
</td> |
214 | 224 |
</div> |
... | ... | |
224 | 234 |
<tr v-if="customExtensions" v-cloak> |
225 | 235 |
<div class="form-group"> |
226 | 236 |
<td class="pl-5"><label for="extensions">Extensions:</label></td> |
227 |
<td cla ss="pl-3"> |
|
237 |
<td cla ss="pl-3" colspan="2">
|
|
228 | 238 |
<textarea v-model:value="extensions" id="extensions" name="extensions" class="form-control mt-2"> |
229 | 239 |
</textarea> |
230 | 240 |
</td> |
static/index.html | ||
---|---|---|
16 | 16 |
:is-full-page="true"></loading> |
17 | 17 |
</div> |
18 | 18 |
<div v-if="!loading" v-cloak class="card h-100"> |
19 |
<div class="card-body"> |
|
20 |
<div> |
|
21 |
<h1 class="d-inline-block">Certificate Listing</h1> |
|
22 |
</div> |
|
23 |
<div class="alert alert-success" v-if="successMessage !== ''" role="alert" v-cloak> |
|
24 |
{{ successMessage }} |
|
25 |
</div> |
|
26 |
<div class="mt-2 mb-2"> |
|
27 |
<a class="btn btn-success mb-3 text-center" href="/static/create_certificate.html"><b>+</b></a> |
|
28 |
<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> |
|
29 |
<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> |
|
30 |
<div class="collapse mt-2" id="filteringCollapse"> |
|
31 |
<div class="card card-body filtering-box"> |
|
32 |
<div class="container"> |
|
33 |
<div class="row align-items-center"> |
|
34 |
<div class="col-3"> |
|
35 |
<div class="form-group mb-0"> |
|
36 |
<h5>Usage:</h5> |
|
37 |
<div class="form-check ml-4"> |
|
38 |
<input class="form-check-input" type="checkbox" id="usageCA" v-model="filtering.usage.CA"> |
|
39 |
<label class="form-check-label" for="usageCA"> |
|
40 |
CA |
|
41 |
</label> |
|
42 |
</div> |
|
43 |
<div class="form-check ml-4"> |
|
44 |
<input class="form-check-input" type="checkbox" id="usageSignature" v-model="filtering.usage.digitalSignature"> |
|
45 |
<label class="form-check-label" for="usageSignature"> |
|
46 |
Digital signature |
|
47 |
</label> |
|
48 |
</div> |
|
49 |
<div class="form-check ml-4"> |
|
50 |
<input class="form-check-input" type="checkbox" id="usageAuth" v-model="filtering.usage.authentication"> |
|
51 |
<label class="form-check-label" for="usageAuth"> |
|
52 |
Authentication |
|
53 |
</label> |
|
54 |
</div> |
|
55 |
<div class="form-check ml-4"> |
|
56 |
<input class="form-check-input" type="checkbox" id="usageSSL" v-model="filtering.usage.SSL"> |
|
57 |
<label class="form-check-label" for="usageSSL"> |
|
58 |
SSL/TLS |
|
59 |
</label> |
|
19 |
<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> |
|
60 | 62 |
</div> |
61 | 63 |
</div> |
62 |
</div>
|
|
63 |
<div class="col-3">
|
|
64 |
<div class="form-group mb-0">
|
|
65 |
<h5>Type:</h5>
|
|
66 |
<div class="form-check ml-4">
|
|
67 |
<input class="form-check-input" type="checkbox" id="rootCA" v-model="filtering.type.RootCA">
|
|
68 |
<label class="form-check-label" for="rootCA">
|
|
69 |
Root CA
|
|
70 |
</label>
|
|
71 |
</div>
|
|
72 |
<div class="form-check ml-4">
|
|
73 |
<input class="form-check-input" type="checkbox" id="intermediateCA" v-model="filtering.type.IntermediateCA">
|
|
74 |
<label class="form-check-label" for="intermediateCA">
|
|
75 |
Intermediate CA
|
|
76 |
</label>
|
|
77 |
</div>
|
|
78 |
<div class="form-check ml-4">
|
|
79 |
<input class="form-check-input" type="checkbox" id="endCertificate" v-model="filtering.type.EndCertificate">
|
|
80 |
<label class="form-check-label" for="endCertificate">
|
|
81 |
End certificate
|
|
82 |
</label>
|
|
64 |
<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>
|
|
83 | 85 |
</div> |
84 | 86 |
</div> |
85 |
</div>
|
|
86 |
<div class="col-3">
|
|
87 |
<div class="form-group mb-0">
|
|
88 |
<h5>Common name:</h5>
|
|
89 |
<div>
|
|
90 |
<input class="form-control" type="text" id="commonName" placeholder="Enter common name" v-model="filtering.CN">
|
|
87 |
<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>
|
|
91 | 93 |
</div> |
92 | 94 |
</div> |
93 |
</div>
|
|
94 |
<div class="col-3">
|
|
95 |
<button class="btn btn-primary mb-2" style="width: 115px;" v-on:click="reloadData">Apply filters</button>
|
|
96 |
<button class="btn btn-secondary mb-2" style="width: 115px;" v-on:click="clearFilters">Clear filters</button>
|
|
95 |
<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>
|
|
97 | 99 |
</div> |
98 | 100 |
</div> |
99 | 101 |
</div> |
100 | 102 |
</div> |
101 | 103 |
</div> |
102 |
</div> |
|
103 |
<table class="table table-striped table-hover text-center"> |
|
104 |
<thead class="thead-dark"> |
|
105 |
<tr> |
|
106 |
<th class="align-middle" scope="col" rowspan="2">Common name</th> |
|
107 |
<th class="align-middle" scope="col" colspan="2">Validity</th> |
|
108 |
<th class="align-middle" scope="col" rowspan="2">Usage</th> |
|
109 |
<th class="align-middle" scope="col" rowspan="2">Certificate</th> |
|
110 |
<th class="align-middle" scope="col" rowspan="2">Chain of trust</th> |
|
111 |
<th class="align-middle" scope="col" rowspan="2">Root</th> |
|
112 |
<th class="align-middle" scope="col" rowspan="2">Private key</th> |
|
113 |
<th class="align-middle" scope="col" rowspan="2">Issuer</th> |
|
114 |
</tr> |
|
115 |
<tr> |
|
116 |
<th scope="col">Start</th> |
|
117 |
<th scope="col">End</th> |
|
118 |
</tr> |
|
119 |
</thead> |
|
120 |
<tbody> |
|
121 |
<tr is="certificate-item" |
|
122 |
v-for="certificate in certificates" |
|
123 |
v-bind:certificate="certificate" |
|
124 |
v-bind:key="certificate.id"> |
|
125 |
</tr> |
|
126 |
</tbody> |
|
127 |
</table> |
|
128 |
<div v-if="hasNextPage || hasPreviousPage"> |
|
129 |
<ul class="pagination justify-content-center"> |
|
130 |
<li class="page-item" v-bind:class="{disabled: !hasPreviousPage}"> |
|
131 |
<button v-on:click="onPreviousPage" class="page-link"><<</button> |
|
132 |
</li> |
|
133 |
<li class="page-item"><button class="page-link">{{ currentPage }}</button></li> |
|
134 |
<li class="page-item" v-bind:class="{disabled: !hasNextPage}"> |
|
135 |
<button v-on:click="onNextPage" class="page-link">>></button> |
|
136 |
</li> |
|
137 |
</ul> |
|
104 |
<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> |
|
138 | 143 |
</div> |
139 | 144 |
</div> |
140 | 145 |
</div> |
static/js/create_certificate.js | ||
---|---|---|
7 | 7 |
isSelfSigned: false, |
8 | 8 |
invalidCN: false, |
9 | 9 |
customKey: false, |
10 |
showIssuer: false, |
|
10 | 11 |
customExtensions: false, |
11 | 12 |
// available certificate authorities |
12 | 13 |
authorities: [], |
... | ... | |
73 | 74 |
} |
74 | 75 |
}, |
75 | 76 |
methods: { |
77 |
toggleShowIssuer: function () { |
|
78 |
this.showIssuer = ~this.showIssuer; |
|
79 |
}, |
|
76 | 80 |
onKeyFileChange: function (event) { |
77 | 81 |
var file = event.target.files[0]; |
78 | 82 |
var reader = new FileReader(); |
Také k dispozici: Unified diff
Re #8701 - Improved created certificate page and empty list display