NGO-DB/ndb-core

View on GitHub
src/app/core/admin/admin/admin.component.html

Summary

Maintainability
Test Coverage
<h1>Administration & Configuration</h1>

<p style="font-weight: bold; font-style: italic">
  Warning: This section is intended for system administrators only. Make sure
  you know what you are doing.
</p>

<hr />

<h2>Shortcuts</h2>
<mat-nav-list>
  <mat-list-item [routerLink]="['/admin/site-settings']" i18n="admin menu item">
    Site Settings
  </mat-list-item>

  <mat-list-item [routerLink]="['/admin/conflicts']" i18n="admin menu item">
    Database Conflicts
  </mat-list-item>

  <mat-list-item [routerLink]="['/admin/setup-wizard']" i18n="admin menu item">
    Setup Wizard
  </mat-list-item>
</mat-nav-list>

<hr />

<h2>Backup</h2>
<p>
  <button (click)="saveBackup()" mat-stroked-button>
    Download Backup (.json)
  </button>
  &nbsp;
  <button (click)="backupImport.click()" mat-stroked-button>
    Restore Backup (.json)
  </button>
  <input #backupImport type="file" hidden (change)="loadBackup($event)" />
</p>

<br />
<hr />
<h2>Export</h2>
<p>
  <button (click)="saveCsvExport()" mat-stroked-button>
    Download whole database (.csv)
  </button>
</p>
<br />
<hr />
<h2>Application Configuration</h2>
<p>
  <button (click)="downloadConfigClick()" mat-stroked-button>
    Download configuration
  </button>
  &nbsp;
  <button (click)="configImport.click()" mat-stroked-button>
    Upload new configuration
  </button>
  <input #configImport type="file" hidden (change)="uploadConfigFile($event)" />
  &nbsp;
  <button routerLink="config-import" mat-stroked-button>
    Generate configuration from spreadsheet
  </button>
</p>

<br />
<hr />
<h2>Debug the PouchDB</h2>
<p>
  <button (click)="debugDatabase()" mat-stroked-button>
    Send to console.log()
  </button>
</p>
<p>
  <button (click)="clearDatabase()" mat-stroked-button>Empty Database</button>
</p>

<br />
<hr />
<h2 id="alert-log-heading">Alert Log</h2>
<table aria-describedby="alert-log-heading" class="admin-table">
  <thead>
    <th class="shrink-width">Timestamp</th>
    <th class="shrink-width">Type</th>
    <th>Message</th>
  </thead>
  <tbody>
    <tr *ngFor="let alert of alerts.reverse()">
      <td>{{ alert.timestamp | date: "medium" }}</td>
      <td>{{ alert.type }}</td>
      <td>{{ alert.message }}</td>
    </tr>
  </tbody>
</table>