diff --git a/frontend/projects/shared/assets/img/community-store.png b/frontend/projects/shared/assets/img/community-store.png index aed426ae9..03391e54d 100644 Binary files a/frontend/projects/shared/assets/img/community-store.png and b/frontend/projects/shared/assets/img/community-store.png differ diff --git a/frontend/projects/shared/assets/img/gifs/backing-up.gif b/frontend/projects/shared/assets/img/gifs/backing-up.gif deleted file mode 100644 index ed07da0b3..000000000 Binary files a/frontend/projects/shared/assets/img/gifs/backing-up.gif and /dev/null differ diff --git a/frontend/projects/shared/assets/img/icon.png b/frontend/projects/shared/assets/img/icon.png index 928a04921..de5abf3ca 100644 Binary files a/frontend/projects/shared/assets/img/icon.png and b/frontend/projects/shared/assets/img/icon.png differ diff --git a/frontend/projects/shared/assets/img/icons/snek.png b/frontend/projects/shared/assets/img/icons/snek.png index 26ed2bea5..0094e2b35 100644 Binary files a/frontend/projects/shared/assets/img/icons/snek.png and b/frontend/projects/shared/assets/img/icons/snek.png differ diff --git a/frontend/projects/shared/assets/img/icons/wifi-0.png b/frontend/projects/shared/assets/img/icons/wifi-0.png index ebc0c8670..01c67660a 100644 Binary files a/frontend/projects/shared/assets/img/icons/wifi-0.png and b/frontend/projects/shared/assets/img/icons/wifi-0.png differ diff --git a/frontend/projects/shared/assets/img/icons/wifi-1.png b/frontend/projects/shared/assets/img/icons/wifi-1.png index 422e2ea07..5dcda6fee 100644 Binary files a/frontend/projects/shared/assets/img/icons/wifi-1.png and b/frontend/projects/shared/assets/img/icons/wifi-1.png differ diff --git a/frontend/projects/shared/assets/img/icons/wifi-2.png b/frontend/projects/shared/assets/img/icons/wifi-2.png index f0c292d93..de09d3c76 100644 Binary files a/frontend/projects/shared/assets/img/icons/wifi-2.png and b/frontend/projects/shared/assets/img/icons/wifi-2.png differ diff --git a/frontend/projects/shared/assets/img/icons/wifi-3.png b/frontend/projects/shared/assets/img/icons/wifi-3.png index 0d3315801..a173d1bc8 100644 Binary files a/frontend/projects/shared/assets/img/icons/wifi-3.png and b/frontend/projects/shared/assets/img/icons/wifi-3.png differ diff --git a/frontend/projects/shared/assets/img/package-icon.png b/frontend/projects/shared/assets/img/package-icon.png deleted file mode 100644 index 265558cfd..000000000 Binary files a/frontend/projects/shared/assets/img/package-icon.png and /dev/null differ diff --git a/frontend/projects/shared/assets/img/service-icons/btc-rpc-proxy.png b/frontend/projects/shared/assets/img/service-icons/btc-rpc-proxy.png index f0c84b3bc..fadb7f142 100644 Binary files a/frontend/projects/shared/assets/img/service-icons/btc-rpc-proxy.png and b/frontend/projects/shared/assets/img/service-icons/btc-rpc-proxy.png differ diff --git a/frontend/projects/ui/src/app/app/menu/menu.component.ts b/frontend/projects/ui/src/app/app/menu/menu.component.ts index 8763996fd..e955af806 100644 --- a/frontend/projects/ui/src/app/app/menu/menu.component.ts +++ b/frontend/projects/ui/src/app/app/menu/menu.component.ts @@ -6,7 +6,15 @@ import { } from '@angular/core' import { EOSService } from '../../services/eos.service' import { PatchDB } from 'patch-db-client' -import { combineLatest, filter, first, map, Observable, switchMap } from 'rxjs' +import { + combineLatest, + filter, + map, + Observable, + startWith, + switchMap, + withLatestFrom, +} from 'rxjs' import { AbstractMarketplaceService } from '@start9labs/marketplace' import { MarketplaceService } from 'src/app/services/marketplace.service' import { DataModel } from 'src/app/services/patch-db/data-model' @@ -60,8 +68,18 @@ export class MenuComponent { private readonly local$ = this.connectionService.connected$.pipe( filter(Boolean), - switchMap(() => this.patch.watch$('package-data')), - first(), + withLatestFrom(this.patch.watch$('package-data')), + switchMap(([_, outer]) => + this.patch.watch$('package-data').pipe( + filter( + pkgs => + !!Object.values(pkgs).find( + pkg => pkg['install-progress']?.['unpack-complete'], + ), + ), + startWith(outer), + ), + ), ) readonly updateCount$: Observable = combineLatest([ diff --git a/frontend/projects/ui/src/app/pages/notifications/notifications.page.html b/frontend/projects/ui/src/app/pages/notifications/notifications.page.html index 253b7e3bd..6ad13607e 100644 --- a/frontend/projects/ui/src/app/pages/notifications/notifications.page.html +++ b/frontend/projects/ui/src/app/pages/notifications/notifications.page.html @@ -88,9 +88,9 @@ - {{ $any(packageData[pkgId])?.manifest?.title || pkgId }} - + {{ $any(packageData[pkgId])?.manifest.title || pkgId }} - - {{ not.title }} + {{ not.title }}

{{ truncate(not.message) }}

diff --git a/frontend/projects/ui/src/app/pages/notifications/notifications.page.ts b/frontend/projects/ui/src/app/pages/notifications/notifications.page.ts index ad352b617..71bf50370 100644 --- a/frontend/projects/ui/src/app/pages/notifications/notifications.page.ts +++ b/frontend/projects/ui/src/app/pages/notifications/notifications.page.ts @@ -15,6 +15,7 @@ import { ErrorToastService } from '@start9labs/shared' import { BackupReportPage } from 'src/app/modals/backup-report/backup-report.page' import { PatchDB } from 'patch-db-client' import { DataModel } from 'src/app/services/patch-db/data-model' +import { first } from 'rxjs' @Component({ selector: 'notifications', @@ -28,7 +29,7 @@ export class NotificationsPage { needInfinite = false fromToast = !!this.route.snapshot.queryParamMap.get('toast') readonly perPage = 40 - readonly packageData$ = this.patch.watch$('package-data') + readonly packageData$ = this.patch.watch$('package-data').pipe(first()) constructor( private readonly embassyApi: ApiService, diff --git a/frontend/projects/ui/src/app/pages/server-routes/server-show/server-show.page.ts b/frontend/projects/ui/src/app/pages/server-routes/server-show/server-show.page.ts index 6e0c8f726..6373791fb 100644 --- a/frontend/projects/ui/src/app/pages/server-routes/server-show/server-show.page.ts +++ b/frontend/projects/ui/src/app/pages/server-routes/server-show/server-show.page.ts @@ -57,12 +57,12 @@ export class ServerShowPage { @Inject(DOCUMENT) private readonly document: Document, ) {} - async presentModalName(): Promise { + async setBrowserTab(): Promise { const chosenName = await firstValueFrom(this.patch.watch$('ui', 'name')) const options: GenericInputOptions = { - title: 'Set Device Name', - message: 'This will be displayed in your browser tab', + title: 'Browser Tab Title', + message: `This value will be displayed as the title of your browser tab.`, label: 'Device Name', useMask: false, placeholder: 'embassyOS', @@ -391,9 +391,9 @@ export class ServerShowPage { }, { title: 'Browser Tab Title', - description: `Customize the display name of your browser tab. This does not affect your server's LAN address.`, + description: `Customize the display name of your browser tab`, icon: 'pricetag-outline', - action: () => this.presentModalName(), + action: () => this.setBrowserTab(), detail: false, disabled$: of(false), }, diff --git a/frontend/projects/ui/src/app/pages/updates/updates.page.html b/frontend/projects/ui/src/app/pages/updates/updates.page.html index a086f9769..e332b2cc8 100644 --- a/frontend/projects/ui/src/app/pages/updates/updates.page.html +++ b/frontend/projects/ui/src/app/pages/updates/updates.page.html @@ -9,16 +9,14 @@ - -
-
- -
-

{{ host.name }}

-

{{ host.url }}

-
-
-
+
+ + +   + + {{ host.name }} + + Request Failed @@ -30,92 +28,79 @@ - -
- - - - - - - - - - - - -

{{ pkg.manifest.title }}

-

- - {{ local.manifest.version | displayEmver }} - -   - -   - - {{ pkg.manifest.version | displayEmver }} - -

-

- - {{ error }} - -

-
-
-
-
- - - - - - {{ - marketplaceService.updateErrors[pkg.manifest.id] - ? 'Retry' : 'Update' }} - - - -
-
-
-
-

What's new

-

-
-
-
-
-
-
-
+ +
+ + + + + + +

{{ pkg.manifest.title }}

+

+ {{ local.manifest.version | displayEmver }} +   + +   + + {{ pkg.manifest.version | displayEmver }} + +

+

+ {{ error }} +

+
+
+ + + + + + {{ marketplaceService.updateErrors[pkg.manifest.id] ? + 'Retry' : 'Update' }} + + + +
+
+
+
+
What's new
+

+
+ + View listing + + +
+
- +
- +
+ +
- +
diff --git a/frontend/projects/ui/src/app/pages/updates/updates.page.scss b/frontend/projects/ui/src/app/pages/updates/updates.page.scss index 8af0f329e..11f135fda 100644 --- a/frontend/projects/ui/src/app/pages/updates/updates.page.scss +++ b/frontend/projects/ui/src/app/pages/updates/updates.page.scss @@ -1,77 +1,26 @@ .item-container { - padding-bottom: 24px; border-bottom: 1px solid #373737; + padding: 12px 0; } .notes { margin-left: 20px; - h4 { - font-size: 1rem; + h5 { font-weight: 600; } } -.header { - padding: 1.5rem; - background: var(--ion-color-medium-tint); - - &_items { - display: flex; - align-items: center; - flex-direction: row; - } - - h1 { - margin: 0 0 5px 0; - } - - p { - font-size: 14px; - margin: 0; - } -} - -img { - height: 85%; - width: 85%; -} - -.align-center { - display: flex; - justify-content: center; - align-items: center; -} - -.pl-1 { - padding-left: 1rem; -} - -p { - font-size: 1rem; - margin-top: 0; +ion-item-divider { + --padding-top: 8px; + --padding-bottom: 8px; + --background: var(--ion-color-medium-tint); } ion-item { --background-hover: none; -} - -ion-label { - h2 { - font-size: 1.2rem; - } - - h3 { - font-size: 1rem; - } -} - -.accordian-padding { - padding: 0.5rem; -} - -@media (max-width: 500px) { - .accordian-padding { - padding: 0.5rem 0 0.5rem 0; + + &::part(native) { + cursor: context-menu; } } \ No newline at end of file diff --git a/frontend/projects/ui/src/app/pages/updates/updates.page.ts b/frontend/projects/ui/src/app/pages/updates/updates.page.ts index 4c0b55bf3..8491926e9 100644 --- a/frontend/projects/ui/src/app/pages/updates/updates.page.ts +++ b/frontend/projects/ui/src/app/pages/updates/updates.page.ts @@ -46,8 +46,6 @@ export class UpdatesPage { errors: this.marketplaceService.getRequestErrors$(), }) - readonly PackageState = PackageState - constructor( @Inject(AbstractMarketplaceService) readonly marketplaceService: MarketplaceService, @@ -72,7 +70,10 @@ export class UpdatesPage { manifest: MarketplaceManifest, url: string, local: PackageDataEntry, + e: Event, ): Promise { + e.stopPropagation() + const { id, version } = manifest delete this.marketplaceService.updateErrors[id]