{{/*
    Copyright 2016 The Vanadium Authors. All rights reserved.
    Use of this source code is governed by a BSD-style
    license that can be found in the LICENSE file.
*/}}

{{define "content"}}
<section class="section--center mdl-grid">
    <h5>Claimed</h5>
    <div class="mdl-cell mdl-cell--12-col">
        {{.Blessings}}
    </div>
</section>

{{with .Recognized}}
<section class="section--center mdl-grid">
    <h5>Recognized</h5>
    <div class="mdl-cell mdl-cell--12-col">
        <ul>
            {{range .}}
            <li>{{.}}</li>
            {{end}}
        </ul>
    </div>
</section>
{{end}}

<section class="section--center mdl-grid">
    <h5>PublicKey</h5>
    <div class="mdl-cell mdl-cell--12-col fixed-width">
        {{.Blessings.PublicKey}}
    </div>
</section>

{{with .CertificateChains}}
<section class="section--center mdl-grid">
    <h5>Certificate Chains (Total: {{len .}})</h5>
    <div class="mdl-cell mdl-cell--12-col">
        {{range $chainidx, $chain := .}}
        <section class="section--center mdl-grid">
            <h6>Chain #{{$chainidx}}</h6>
            <div class="mdl-cell mdl-cell--12-col">
                <table class="mdl-data-table mdl-js-data-table mdl-data-table--selectable mdl-shadow--2dp">
                    <thead>
                        <tr>
                            <td class="mdl-data-table__cell--non-numeric">Certificate</td>
                            <td class="mdl-data-table__cell--non-numeric">Extension</td>
                            <td class="mdl-data-table__cell--non-numeric">Blessed Public Key</td>
                            <td class="mdl-data-table__cell--non-numeric">Caveats</td>
                        </tr>
                    </thead>
                    <tbody>
                        {{range $certidx, $cert := $chain}}
                        <tr>
                            <td>{{$certidx}}</td>
                            <td class="mdl-data-table__cell--non-numeric">{{$cert.Extension}}</td>
                            <td class="mdl-data-table__cell--non-numeric fixed-width">{{unmarshalPublicKey $cert.PublicKey}}</td>
                            <td class="mdl-data-table__cell--non-numeric">{{len $cert.Caveats}} {{range $cavidx, $cav := $cert.Caveats}}
                                <br/>#{{$cavidx}}: {{$cav}} {{end}}
                            </td>
                        </tr>
                        {{end}}
                    </tbody>
                </table>
            </div>
        </section>
        {{end}}
    </div>
</section>
{{end}}
{{with .Error}}
<section class="section--center mdl-grid">
    <h5><i class="material-icons">info</i>ERROR({{verrorID .}})</h5>
    <div class="mdl-cell mdl-cell--12-col fixed-width">{{.}}</div>
</section>
{{end}}
{{end}}