From d6c791af681fdcc84c5a79a7b30d35db9231e404 Mon Sep 17 00:00:00 2001
From: Rory& Sorry, there's nothing at this address. Welcome to SafeNSound! This application is purely a demonstration of the basic concepts in SafeNSound! Here be dragons! Assigned user @user
+ @if (Alarms.ContainsKey(user)) {
+ Registering new accounts, please wait...
+
+ @foreach (var log in Enumerable.Reverse(Log)) {
+
+ Admin
+Auth
*@
+@* User:
*@
+@* Username (L?, R): *@
+@*
*@
+@* Email (L? R): *@
+@*
*@
+@* Password (L, R): *@
+@*
*@
+@* Type (R): *@
+@*
*@
+@*
*@
+@* *@
+@* Monitor:
*@
+@* User ID: *@
+@*
*@
+@*
*@
+@* *@
+@* Devices:
*@
+@* @if (CurrentDevice is not null) { *@
+@* Device ID: @CurrentDevice.Id
*@
+@* Log in date: @CurrentDevice.CreatedAt
*@
+@* Last seen: @CurrentDevice.LastSeen
*@
+@* Device name: *@
+@*
*@
+@*
*@
+@* *@
+@* @Exception *@
+@*
*@
+@*
*@
+@* *@
+@* @Result.ToJson(indent: true) *@
+@*
*@
+@* Devices (@WhoAmI.UserId#@WhoAmI.DeviceId[..5])
+
+ ID: @device.Id
+ @if (device.Id == WhoAmI.DeviceId) {
+ (current)
+ }
+
+ Name: @device.Name
+ First seen: @device.CreatedAt.ToLocalTime()
+ Last seen: @device.LastSeen.ToLocalTime()
+ SafeNSound
+
+
+ @serverStatus?.ToJson(indent: true)
+
+
+@code {
+
+ private bool running = true;
+ private JsonObject? serverStatus { get; set; }
+
+ protected override async Task OnInitializedAsync() {
+ _ = PollServerStatus();
+ }
+
+ private async Task PollServerStatus() {
+ while (running) {
+ try {
+ serverStatus = await App.UserClient.HttpClient.GetFromJsonAsyncUser
+ @Alarms[user].ToJson(indent: false)
+ }
+
`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n color: var(--#{$prefix}highlight-color);\n background-color: var(--#{$prefix}highlight-bg);\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, 1));\n text-decoration: $link-decoration;\n\n &:hover {\n --#{$prefix}link-color-rgb: var(--#{$prefix}link-hover-color-rgb);\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: var(--#{$prefix}code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `