{{/*
    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>Syncbase</h5>
    <div class="mdl-cell mdl-cell--12-col">
      Service "{{.Tree.Service.FullName}}"
    </div>
</section>

{{range .Tree.Dbs}}
  <section class="section--center mdl-grid">
    {{ $db := .Database.Id }}
    <h5>Database "{{$db.Name}}"</h5>
      <div class="mdl-cell mdl-cell--12-col">
        App Blessing "{{$db.Blessing}}"
      </div>
      <div class="mdl-cell mdl-cell--12-col">
        <dl>
        {{range .Collections}}
          <dt>Collection "{{.Id.Name}}"<dt>
          <dd>Creator's User Blessing "{{.Id.Blessing}}"</dd>
          <dd><a href="syncbase/collection?n={{$.ServerName}}&db={{$db.Blessing}}&dn={{$db.Name}}&cb={{.Id.Blessing}}&cn={{.Id.Name}}">More...</a></dd>
        {{else}}
          <dt>(no collections)</dt>
        {{end}}
      </dl>
    </div>
    <div class="mdl-cell mdl-cell--12-col">
      <dl>
        {{range .Syncgroups}}
          <dt>Syncgroup: {{.Syncgroup.Id.Name}}<dt>
          <dd><dl><dt>Blessing</dt><dd>{{.Syncgroup.Id.Blessing}}</dd></dl></dd>
          <dd><dl><dt>Description</dt><dd>"{{.Spec.Description}}"</dd></dl></dd>
          <dd><dl><dt>Publish Syncbase Name</dt><dd>{{.Spec.PublishSyncbaseName}}</dd></dl></dd>
          <dd>
            <dl>
              {{range $tag, $accessList := .Spec.Perms }}
                <dt>{{$tag}} permission</dt>
                <dd>+{{$accessList.In}}</dd>
                <dd>-{{$accessList.NotIn}}</dd>
              {{end}}
            </dl>
          </dd>
          <dd><dl><dt>Prefixes</dt><dd>{{.Spec.Prefixes}}</dd></dl></dd>
          <dd><dl><dt>MountTables</dt><dd>{{.Spec.MountTables}}</dd></dl></dd>
          <dd><dl><dt>IsPrivate</dt><dd>{{.Spec.IsPrivate}}</dd></dl></dd>
          <dd>
            <dl>
              {{range $member, $info := .Members}}
                <dt>Member</dt>
                <dd>{{$member}} (SyncPriority={{$info.SyncPriority}} BlobDevType={{$info.BlobDevType}})</dd>
              {{end}}
            </dl>
          </dd>
        {{else}}
          <dt>(no syncgroups)</dt>
        {{end}}
      </dl>
    </div>
  </section>
{{else}}
  <section class="section--center mdl-grid">
    <div class="mdl-cell mdl-cell--12-col">
        (No databases)
      </div>
  <section>
{{end}}


{{end}}
