feat: add mds
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,5 @@
|
|||||||
out/
|
out/
|
||||||
|
mds.jwt
|
||||||
build
|
build
|
||||||
classes
|
classes
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|||||||
102
mds.html
Normal file
102
mds.html
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>MDS</title>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
|
||||||
|
<meta data-n-head="ssr" data-hid="charset" charset="utf-8">
|
||||||
|
<link type="text/css" rel="stylesheet" href="https://cdn.hatter.ink/doc/4283_626D28BCCFB7822C3786C70E3755CD91/bootstrap-4.4.1.min.css" charset="utf-8" />
|
||||||
|
<link type="text/css" rel="stylesheet" href="https://cdn.hatter.ink/doc/4284_13AC4C5AD6B18339982F3001E0D638DB/bootstrap-vue.min.css" charset="utf-8" />
|
||||||
|
<style>
|
||||||
|
_body { padding: 1rem; }
|
||||||
|
[v-cloak] { display: none; }
|
||||||
|
</style>
|
||||||
|
<script src="https://cdn.hatter.ink/doc/4246_83266CF6043E93C9E7015A983035780A/vue-2.6.14.min.js" charset="utf-8"></script>
|
||||||
|
<script src="https://cdn.hatter.ink/doc/4285_580BA60182DAF3638D7A2F3A64B25195/bootstrap-vue.min.js" charset="utf-8"></script>
|
||||||
|
<script src="https://cdn.hatter.ink/doc/4286_307AE59BF7AB51966088EC6295F5AC58/bootstrap-vue-icons.min.js" charset="utf-8"></script>
|
||||||
|
<script src="https://cdn.hatter.ink/doc/4264_02DC607C0B9117DCE50F736A2C24E101/jsonp.js" charset="utf-8"></script>
|
||||||
|
<script src="https://cdn.hatter.ink/doc/4265_310FC0D4E9522B07A287276139701E0E/moment.min.js" charset="utf-8"></script>
|
||||||
|
<script src="https://cdn.hatter.ink/doc/4281_A5F75216518E14C23D9A36336EC0C9F4/timeago.min.js" charset="utf-8"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<style>
|
||||||
|
.card-title { font-size: 1rem; }
|
||||||
|
.card-subtitle { font-size: 0.6rem; }
|
||||||
|
.card-text { font-size: 0.8rem; }
|
||||||
|
.card-body { padding: 0.5rem; }
|
||||||
|
.btns { padding: 2px; padding-left: 12px; padding-right: 12px; }
|
||||||
|
</style>
|
||||||
|
<div id="app" style="word-break: break-all;" v-cloak>
|
||||||
|
<div>
|
||||||
|
<b-navbar toggleable="lg" type="dark" variant="success">
|
||||||
|
<b-navbar-brand><a href="https://hatter.ink/" style="color:white;">Hatter.Ink</a> - MDS</b-navbar-brand>
|
||||||
|
</div>
|
||||||
|
<div style="margin: 0.4rem;">
|
||||||
|
<div>
|
||||||
|
Total: {{entries.length}}
|
||||||
|
<b-card-group columns>
|
||||||
|
<b-card v-for="n in entries" style="max-width: 40rem;" class="mb-2">
|
||||||
|
<b-card-text>
|
||||||
|
<img :src="n.metadataStatement.icon" style="max-width: 200px;max-height: 30px;" />
|
||||||
|
|
||||||
|
{{n.metadataStatement.description}}<br>
|
||||||
|
<span v-if="n.aaguid">AAGUID: <u>{{n.aaguid}}<br></u></span>
|
||||||
|
Protocol family: <b><u>{{n.metadataStatement.protocolFamily}}</u></b><br>
|
||||||
|
Key protection: <b><u>{{n.metadataStatement.keyProtection}}</u></b><br>
|
||||||
|
Authentication algorithms: <b><u>{{n.metadataStatement.authenticationAlgorithms}}</u></b><br>
|
||||||
|
Public key llg & encodings: <b><u>{{n.metadataStatement.publicKeyAlgAndEncodings}}</u></b><br>
|
||||||
|
Attestation typess: <b><u>{{n.metadataStatement.attestationTypes}}</u></b><br>
|
||||||
|
User verification details:
|
||||||
|
<span v-for="dd in n.metadataStatement.userVerificationDetails">
|
||||||
|
<b><u><span v-for="d in dd">{{d.userVerificationMethod}}, </span></u></b>;
|
||||||
|
</span><br>
|
||||||
|
<span v-if="n.metadataStatement?.authenticatorGetInfo?.versions">
|
||||||
|
Versions: <b><u>{{n.metadataStatement?.authenticatorGetInfo?.versions}}</u></b><br>
|
||||||
|
</span>
|
||||||
|
<span v-if="n.metadataStatement?.authenticatorGetInfo?.extensions">
|
||||||
|
Extensions: <b><u>{{n.metadataStatement?.authenticatorGetInfo?.extensions}}</u></b><br>
|
||||||
|
</span>
|
||||||
|
<span v-if="n.metadataStatement?.authenticatorGetInfo?.transports">
|
||||||
|
Transports: <b><u>{{n.metadataStatement?.authenticatorGetInfo?.transports}}</u></b><br>
|
||||||
|
</span>
|
||||||
|
<span v-if="n.metadataStatement?.authenticatorGetInfo?.algorithms">
|
||||||
|
Algorithms: <b><u>{{n.metadataStatement?.authenticatorGetInfo?.algorithms}}</u></b><br>
|
||||||
|
</span>
|
||||||
|
</b-card-text>
|
||||||
|
<!-- <div style="margin-bottom: 10px; float: right;">
|
||||||
|
<b-button v-if="!isArchive" href="#" variant="secondary" @click="doArchive(n.id);" class="btns">Archive</b-button>
|
||||||
|
<b-button v-if="isArchive" href="#" variant="danger" @click="doDelete(n.id);" class="btns">Delete</b-button>
|
||||||
|
<b-button v-if="isArchive" href="#" variant="secondary" @click="doRecover(n.id);" class="btns">Recover</b-button>
|
||||||
|
<b-button href="#" variant="info" @click="doView(n.id);" class="btns">View</b-button>
|
||||||
|
<b-button href="#" variant="primary" @click="doEdit(n.id);" class="btns">Edit</b-button>
|
||||||
|
</div> -->
|
||||||
|
</b-card>
|
||||||
|
</b-card-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var retObject = {};
|
||||||
|
async function refreshNotes() {
|
||||||
|
retObject.entries = (await fetch_with_get_as_json('mds.json', {}, true)).entries;
|
||||||
|
}
|
||||||
|
async function initVueApp() {
|
||||||
|
await refreshNotes();
|
||||||
|
var initVue = () => {
|
||||||
|
new Vue({
|
||||||
|
el: '#app',
|
||||||
|
data() {
|
||||||
|
return retObject;
|
||||||
|
},
|
||||||
|
watch: {},
|
||||||
|
methods: {}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
initVue();
|
||||||
|
}
|
||||||
|
initVueApp().then(() => {}).catch((e) => alert("ERROR: " + e));
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user