mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-30 12:11:56 +00:00
* feat: add widgets (#2034) * feat: add Taiga UI library (#1992) * feat: add widgets * update patchdb * right resizable sidebar with widgets * feat: add resizing directive * chore: remove unused code * chore: remove unnecessary dep * feat: `ResponsiveCol` add directive for responsive grid * feat: add widgets edit mode and dialogs * feat: add widgets model and modal * chore: fix import * chore: hide mobile widgets behind flag * chore: add dummy widgets * chore: start working on heath widget and implement other comments * feat: health widget * feat: add saving widgets and sidebar params to patch * feat: preemptive UI update for widgets * update health widget with more accurate states and styling (#2127) * feat: `ResponsiveCol` add directive for responsive grid * chore: some changes after merge Co-authored-by: Matt Hill <matthewonthemoon@gmail.com> Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com> * fix(shared): `ElasticContainer` fix collapsing margin (#2150) * fix(shared): `ElasticContainer` fix collapsing margin * fix toolbar height so titles not chopped --------- Co-authored-by: Matt Hill <matthewonthemoon@gmail.com> * feat: make widgets sidebar width togglable (#2146) * feat: make widgets sidebar width togglable * feat: move widgets under header * chore: fix wide layout * fix(shared): `ResponsiveCol` fix missing grid steps (#2153) * fix widget flag and refactor for non-persistence * default widget flag to false * fix(shared): fix responsive column size (#2159) * fix(shared): fix responsive column size * fix: add responsiveness to all pages * fix responsiveness on more pages * fix: comments * revert some padding changes --------- Co-authored-by: Lucy Cifferello <12953208+elvece@users.noreply.github.com> Co-authored-by: Matt Hill <matthewonthemoon@gmail.com> * chore: add analyzer (#2165) * fix list styling to previous default (#2173) * fix list styling to previous default * dont need important flag --------- Co-authored-by: Alex Inkin <alexander@inkin.ru> Co-authored-by: Lucy C <12953208+elvece@users.noreply.github.com>
103 lines
3.8 KiB
HTML
103 lines
3.8 KiB
HTML
<ion-header>
|
|
<ion-toolbar>
|
|
<ion-title> System </ion-title>
|
|
<ion-buttons slot="end">
|
|
<badge-menu-button></badge-menu-button>
|
|
</ion-buttons>
|
|
</ion-toolbar>
|
|
</ion-header>
|
|
|
|
<ion-content class="ion-padding with-widgets">
|
|
<!-- loading -->
|
|
<ng-template #loading>
|
|
<text-spinner text="Connecting to Embassy"></text-spinner>
|
|
</ng-template>
|
|
|
|
<!-- loaded -->
|
|
<ion-item-group *ngIf="server$ | async as server; else loading">
|
|
<ion-item *ngIf="!secure" color="warning">
|
|
<ion-icon slot="start" name="warning-outline"></ion-icon>
|
|
<ion-label>
|
|
<h2 style="font-weight: bold">You are using unencrypted http</h2>
|
|
<p style="font-weight: 600">
|
|
Click the button on the right to switch to https. Your browser may
|
|
warn you that the page is insecure. You can safely bypass this
|
|
warning. It will go away after you download and trust your Embassy's
|
|
certificate
|
|
</p>
|
|
</ion-label>
|
|
<ion-button slot="end" color="light" (click)="launchHttps()">
|
|
Open Https
|
|
<ion-icon slot="end" name="open-outline"></ion-icon>
|
|
</ion-button>
|
|
</ion-item>
|
|
|
|
<div *ngFor="let cat of settings | keyvalue : asIsOrder">
|
|
<ion-item-divider>
|
|
<ion-text color="dark" (click)="addClick(cat.key)">
|
|
{{ cat.key }}
|
|
</ion-text>
|
|
</ion-item-divider>
|
|
<ng-container *ngFor="let button of cat.value">
|
|
<ion-item
|
|
button
|
|
[style.display]="(button.title === 'Repair Disk' && !(showDiskRepair$ | async)) ? 'none' : 'block'"
|
|
[detail]="button.detail"
|
|
[disabled]="button.disabled$ | async"
|
|
(click)="button.action()"
|
|
>
|
|
<ion-icon slot="start" [name]="button.icon"></ion-icon>
|
|
<ion-label>
|
|
<h2>{{ button.title }}</h2>
|
|
<p *ngIf="button.description">{{ button.description }}</p>
|
|
|
|
<!-- "Create Backup" button only -->
|
|
<p *ngIf="button.title === 'Create Backup'">
|
|
<ng-container *ngIf="server['status-info'] as statusInfo">
|
|
<ion-text
|
|
[color]="server['last-backup'] | backupColor"
|
|
*ngIf="!statusInfo['backup-progress'] && !statusInfo['update-progress']"
|
|
>
|
|
Last Backup: {{ server['last-backup'] ? (server['last-backup']
|
|
| date: 'medium') : 'never' }}
|
|
</ion-text>
|
|
<span *ngIf="!!statusInfo['backup-progress']" class="inline">
|
|
<ion-spinner
|
|
color="success"
|
|
style="height: 12px; width: 12px; margin-right: 6px"
|
|
></ion-spinner>
|
|
<ion-text color="success">Backing up</ion-text>
|
|
</span>
|
|
</ng-container>
|
|
</p>
|
|
<!-- "Software Update" button only -->
|
|
<p *ngIf="button.title === 'Software Update'">
|
|
<ion-text
|
|
*ngIf="server['status-info'].updated; else notUpdated"
|
|
class="inline"
|
|
color="warning"
|
|
>
|
|
Update Complete. Restart to apply changes
|
|
</ion-text>
|
|
<ng-template #notUpdated>
|
|
<ng-container *ngIf="showUpdate$ | async; else check">
|
|
<ion-text class="inline" color="success">
|
|
<ion-icon name="rocket-outline"></ion-icon>
|
|
Update Available
|
|
</ion-text>
|
|
</ng-container>
|
|
<ng-template #check>
|
|
<ion-text class="inline" color="dark">
|
|
<ion-icon name="refresh"></ion-icon>
|
|
Check for updates
|
|
</ion-text>
|
|
</ng-template>
|
|
</ng-template>
|
|
</p>
|
|
</ion-label>
|
|
</ion-item>
|
|
</ng-container>
|
|
</div>
|
|
</ion-item-group>
|
|
</ion-content>
|