Projekt

Obecné

Profil

Stáhnout (10.2 KB) Statistiky
| Větev: | Tag: | Revize:
1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
    <meta charset="UTF-8">
5
    <title>X.509 Certificate Management</title>
6
    <link rel="stylesheet" href="/static/css/bootstrap.min.css">
7
    <link href="https://cdn.jsdelivr.net/npm/vue-loading-overlay@3/dist/vue-loading.css" rel="stylesheet">
8
    <link rel="stylesheet" href="/static/css/app.css">
9
</head>
10
<body>
11
    <div id="certificateListingPage" class="p-5 h-100">
12
        <div v-if="loading">
13
            <loading :active.sync="loading"
14
                     :can-cancel="false"
15
                      loader="dots"
16
                     :is-full-page="true"></loading>
17
        </div>
18
        <div v-if="!loading" v-cloak class="card h-100">
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>
62
                                            </div>
63
                                        </div>
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>
85
                                            </div>
86
                                        </div>
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>
93
                                            </div>
94
                                        </div>
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>
99
                                    </div>
100
                                </div>
101
                            </div>
102
                        </div>
103
                    </div>
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-if="certificates == null || certificates.length === 0">
123
                                <td colspan="9">No certificate found</td>
124
                            </tr>
125
                            <tr v-else 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
                </div>
144
            </div>
145
        </div>
146
    </div>
147
    <script src="https://cdn.jsdelivr.net/npm/vue-loading-overlay@3"></script>
148
    <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
    <script src="/static/js/constants.js"></script>
153
    <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
</body>
158
</html>
(3-3/4)