Skip to content

Commit 14fc351

Browse files
waterpleaMattDHill
andcommitted
refactor: break ui up further down (#2292)
* refactor: break ui up further down * permit loading even when authed --------- Co-authored-by: Matt Hill <[email protected]>
1 parent 8d7cc8c commit 14fc351

File tree

372 files changed

+361
-443
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

372 files changed

+361
-443
lines changed

frontend/projects/shared/src/components/markdown/markdown.component.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
import { Component, Input } from '@angular/core'
22
import { ModalController } from '@ionic/angular'
3-
import { defer, isObservable, Observable, of } from 'rxjs'
4-
import { catchError, ignoreElements, share } from 'rxjs/operators'
3+
import {
4+
catchError,
5+
ignoreElements,
6+
share,
7+
defer,
8+
isObservable,
9+
Observable,
10+
of,
11+
} from 'rxjs'
512

613
import { getErrorMessage } from '../../services/error-toast.service'
714

frontend/projects/shared/src/directives/responsive-col/responsive-col-viewport.directive.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ import {
77
NgZone,
88
} from '@angular/core'
99
import { ResizeObserverService } from '@ng-web-apis/resize-observer'
10-
import { distinctUntilChanged, Observable } from 'rxjs'
11-
import { map } from 'rxjs/operators'
10+
import { distinctUntilChanged, map, Observable } from 'rxjs'
1211
import { tuiZonefree } from '@taiga-ui/cdk'
1312

1413
export type Step = 'xs' | 'sm' | 'md' | 'lg' | 'xl'

frontend/projects/shared/src/util/unused.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { OperatorFunction } from 'rxjs'
2-
import { map } from 'rxjs/operators'
1+
import { map, OperatorFunction } from 'rxjs'
32

43
/**
54
* These utils are not used anywhere

frontend/projects/ui/src/app/app.module.ts

+4-8
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,19 @@ import {
2020

2121
import { AppComponent } from './app.component'
2222
import { RoutingModule } from './routing.module'
23-
import { OSWelcomePageModule } from './modals/os-welcome/os-welcome.module'
24-
import { GenericInputComponentModule } from './modals/generic-input/generic-input.component.module'
23+
import { OSWelcomePageModule } from './common/os-welcome/os-welcome.module'
2524
import { PreloaderModule } from './app/preloader/preloader.module'
2625
import { FooterModule } from './app/footer/footer.module'
2726
import { MenuModule } from './app/menu/menu.module'
2827
import { EnterModule } from './app/enter/enter.module'
2928
import { APP_PROVIDERS } from './app.providers'
3029
import { PatchDbModule } from './services/patch-db/patch-db.module'
31-
import { ToastContainerModule } from './components/toast-container/toast-container.module'
32-
import { ConnectionBarComponentModule } from './components/connection-bar/connection-bar.component.module'
30+
import { ToastContainerModule } from './common/toast-container/toast-container.module'
31+
import { ConnectionBarComponentModule } from './app/connection-bar/connection-bar.component.module'
3332
import { WidgetsPageModule } from 'src/app/apps/ui/pages/widgets/widgets.module'
3433
import { ServiceWorkerModule } from '@angular/service-worker'
3534
import { environment } from '../environments/environment'
36-
import { LoadingModule } from './modals/loading/loading.module'
37-
import { FormPageModule } from './modals/form/form.module'
35+
import { LoadingModule } from './common/loading/loading.module'
3836

3937
@NgModule({
4038
declarations: [AppComponent],
@@ -51,7 +49,6 @@ import { FormPageModule } from './modals/form/form.module'
5149
EnterModule,
5250
OSWelcomePageModule,
5351
MarkdownModule,
54-
GenericInputComponentModule,
5552
MonacoEditorModule,
5653
SharedPipesModule,
5754
PatchDbModule,
@@ -73,7 +70,6 @@ import { FormPageModule } from './modals/form/form.module'
7370
registrationStrategy: 'registerWhenStable:30000',
7471
}),
7572
LoadingModule,
76-
FormPageModule,
7773
],
7874
providers: APP_PROVIDERS,
7975
bootstrap: [AppComponent],

frontend/projects/ui/src/app/app/footer/footer.component.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { ChangeDetectionStrategy, Component } from '@angular/core'
2-
import { heightCollapse } from 'src/app/util/animations'
32
import { PatchDB } from 'patch-db-client'
4-
import { map } from 'rxjs/operators'
3+
import { map } from 'rxjs'
4+
import { heightCollapse } from 'src/app/util/animations'
55
import { DataModel } from 'src/app/services/patch-db/data-model'
66

77
@Component({

frontend/projects/ui/src/app/app/menu/menu.module.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { RouterModule } from '@angular/router'
44
import { IonicModule } from '@ionic/angular'
55
import { MenuComponent } from './menu.component'
66
import { SnekModule } from '../snek/snek.module'
7-
import { ConnectionBarComponentModule } from 'src/app/components/connection-bar/connection-bar.component.module'
7+
import { ConnectionBarComponentModule } from '../connection-bar/connection-bar.component.module'
88

99
@NgModule({
1010
imports: [

frontend/projects/ui/src/app/modals/snake/snake.page.ts frontend/projects/ui/src/app/app/snek/snake.page.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Component, HostListener, Input } from '@angular/core'
22
import { ModalController } from '@ionic/angular'
3-
import { pauseFor } from '@start9labs/shared'
3+
import { pauseFor } from '../../../../../shared/src/public-api'
44

55
@Component({
66
selector: 'snake',

frontend/projects/ui/src/app/app/snek/snek.directive.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { Directive, HostListener, Input } from '@angular/core'
22
import { LoadingController, ModalController } from '@ionic/angular'
33
import { ErrorToastService } from '@start9labs/shared'
4-
import { SnakePage } from 'src/app/modals/snake/snake.page'
54
import { ApiService } from 'src/app/services/api/embassy-api.service'
5+
import { SnakePage } from './snake.page'
66

77
@Directive({
88
selector: 'img[appSnek]',
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import { NgModule } from '@angular/core'
2+
import { CommonModule } from '@angular/common'
3+
import { IonicModule } from '@ionic/angular'
24

3-
import { SnakePageModule } from 'src/app/modals/snake/snake.module'
45
import { SnekDirective } from './snek.directive'
6+
import { SnakePage } from './snake.page'
57

68
@NgModule({
7-
imports: [SnakePageModule],
8-
declarations: [SnekDirective],
9-
exports: [SnekDirective],
9+
imports: [CommonModule, IonicModule],
10+
declarations: [SnekDirective, SnakePage],
11+
exports: [SnekDirective, SnakePage],
1012
})
1113
export class SnekModule {}

frontend/projects/ui/src/app/modals/backup-report/backup-report.module.ts frontend/projects/ui/src/app/apps/ui/modals/backup-report/backup-report.module.ts

+2-5
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@ import { BackupReportPage } from './backup-report.page'
55

66
@NgModule({
77
declarations: [BackupReportPage],
8-
imports: [
9-
CommonModule,
10-
IonicModule,
11-
],
8+
imports: [CommonModule, IonicModule],
129
exports: [BackupReportPage],
1310
})
14-
export class BackupReportPageModule { }
11+
export class BackupReportPageModule {}

frontend/projects/ui/src/app/modals/backup-report/backup-report.page.html frontend/projects/ui/src/app/apps/ui/modals/backup-report/backup-report.page.html

+6-7
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111

1212
<ion-content>
1313
<ion-item-group>
14-
<ion-item-divider
15-
>Completed: {{ timestamp | date : 'medium' }}</ion-item-divider
16-
>
14+
<ion-item-divider>
15+
Completed: {{ timestamp | date : 'medium' }}
16+
</ion-item-divider>
1717
<ion-item>
1818
<ion-label>
1919
<h2>System data</h2>
@@ -29,10 +29,9 @@ <h2>System data</h2>
2929
<ion-label>
3030
<h2>{{ pkg.key }}</h2>
3131
<p>
32-
<ion-text [color]="pkg.value.error ? 'danger' : 'success'"
33-
>{{ pkg.value.error ? 'Failed: ' + pkg.value.error : 'Succeeded'
34-
}}</ion-text
35-
>
32+
<ion-text [color]="pkg.value.error ? 'danger' : 'success'">
33+
{{ pkg.value.error ? 'Failed: ' + pkg.value.error : 'Succeeded' }}
34+
</ion-text>
3635
</p>
3736
</ion-label>
3837
<ion-icon

frontend/projects/ui/src/app/modals/backup-report/backup-report.page.ts frontend/projects/ui/src/app/apps/ui/modals/backup-report/backup-report.page.ts

-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import { BackupReport } from 'src/app/services/api/api.types'
55
@Component({
66
selector: 'backup-report',
77
templateUrl: './backup-report.page.html',
8-
styleUrls: ['./backup-report.page.scss'],
98
})
109
export class BackupReportPage {
1110
@Input() report!: BackupReport

frontend/projects/ui/src/app/modals/form/form.module.ts frontend/projects/ui/src/app/apps/ui/modals/form/form.module.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { CommonModule } from '@angular/common'
33
import { ReactiveFormsModule } from '@angular/forms'
44
import { TuiValueChangesModule } from '@taiga-ui/cdk'
55
import { TuiButtonModule, TuiModeModule } from '@taiga-ui/core'
6-
import { FormModule } from 'src/app/components/form/form.module'
6+
import { FormModule } from 'src/app/common/form/form.module'
77
import { FormPage } from './form.page'
88

99
@NgModule({

frontend/projects/ui/src/app/modals/form/form.page.ts frontend/projects/ui/src/app/apps/ui/modals/form/form.page.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ import {
55
Input,
66
OnInit,
77
} from '@angular/core'
8-
import { FormService } from 'src/app/services/form.service'
98
import { InputSpec } from '@start9labs/start-sdk/lib/config/configTypes'
109
import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus'
1110
import { TuiDialogContext } from '@taiga-ui/core'
1211
import { tuiMarkControlAsTouchedAndValidate } from '@taiga-ui/cdk'
13-
import { InvalidService } from '../../components/form/invalid.service'
1412
import { TuiDialogFormService } from '@taiga-ui/kit'
1513
import { FormGroup } from '@angular/forms'
1614
import { compare, Operation } from 'fast-json-patch'
15+
import { InvalidService } from 'src/app/common/form/invalid.service'
16+
import { FormService } from 'src/app/services/form.service'
1717

1818
export interface ActionButton<T> {
1919
text: string

frontend/projects/ui/src/app/modals/generic-input/generic-input.component.ts frontend/projects/ui/src/app/apps/ui/modals/generic-input/generic-input.component.ts

+3-8
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
import { Component, inject, Input, ViewChild } from '@angular/core'
22
import { ModalController, IonicSafeString, IonInput } from '@ionic/angular'
33
import { getErrorMessage, THEME } from '@start9labs/shared'
4-
import { MaskPipe } from 'src/app/pipes/mask/mask.pipe'
4+
import { mask } from 'src/app/util/mask'
55

66
@Component({
77
selector: 'generic-input',
88
templateUrl: './generic-input.component.html',
9-
styleUrls: ['./generic-input.component.scss'],
10-
providers: [MaskPipe],
119
})
1210
export class GenericInputComponent {
1311
@ViewChild('mainInput') elem?: IonInput
@@ -23,10 +21,7 @@ export class GenericInputComponent {
2321

2422
readonly theme$ = inject(THEME)
2523

26-
constructor(
27-
private readonly modalCtrl: ModalController,
28-
private readonly mask: MaskPipe,
29-
) {}
24+
constructor(private readonly modalCtrl: ModalController) {}
3025

3126
ngOnInit() {
3227
const defaultOptions: Partial<GenericInputOptions> = {
@@ -62,7 +57,7 @@ export class GenericInputComponent {
6257
.split('')
6358
.map(x => (x === '●' ? this.value[i++] : x))
6459
.join('')
65-
this.maskedValue = this.mask.transform(this.value)
60+
this.maskedValue = mask(this.value)
6661
}
6762

6863
async submit() {

frontend/projects/ui/src/app/apps/ui/pages/apps-routes/app-interfaces/app-interfaces.page.scss

-3
This file was deleted.

frontend/projects/ui/src/app/apps/ui/pages/backups-routes/backups-routing.module.ts frontend/projects/ui/src/app/apps/ui/pages/backups/backups.module.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ const routes: Routes = [
3434
imports: [RouterModule.forChild(routes)],
3535
exports: [RouterModule],
3636
})
37-
export class BackupsRoutingModule {}
37+
export class BackupsModule {}

frontend/projects/ui/src/app/apps/ui/pages/backups-routes/components/backing-up/backing-up.component.ts frontend/projects/ui/src/app/apps/ui/pages/backups/components/backing-up/backing-up.component.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@ import {
55
PipeTransform,
66
} from '@angular/core'
77
import { PatchDB } from 'patch-db-client'
8-
import { take } from 'rxjs/operators'
8+
import { take, Observable } from 'rxjs'
99
import {
1010
DataModel,
1111
PackageMainStatus,
1212
} from 'src/app/services/patch-db/data-model'
13-
import { Observable } from 'rxjs'
1413

1514
@Component({
1615
selector: 'backing-up',

frontend/projects/ui/src/app/apps/ui/pages/backups-routes/directives/backup-create.directive.ts frontend/projects/ui/src/app/apps/ui/pages/backups/directives/backup-create.directive.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { Directive, HostListener } from '@angular/core'
22
import { LoadingController, ModalController } from '@ionic/angular'
33
import { ApiService } from 'src/app/services/api/embassy-api.service'
4-
import { BackupSelectPage } from 'src/app/apps/ui/pages/backups-routes/modals/backup-select/backup-select.page'
54
import { TargetSelectPage } from '../modals/target-select/target-select.page'
65
import {
76
CifsBackupTarget,
87
DiskBackupTarget,
98
} from 'src/app/services/api/api.types'
9+
import { BackupSelectPage } from '../modals/backup-select/backup-select.page'
1010

1111
@Directive({
1212
selector: '[backupCreate]',

frontend/projects/ui/src/app/apps/ui/pages/backups-routes/directives/backup-restore.directive.ts frontend/projects/ui/src/app/apps/ui/pages/backups/directives/backup-restore.directive.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ import { ApiService } from 'src/app/services/api/embassy-api.service'
88
import {
99
GenericInputComponent,
1010
GenericInputOptions,
11-
} from 'src/app/modals/generic-input/generic-input.component'
11+
} from 'src/app/apps/ui/modals/generic-input/generic-input.component'
1212
import { BackupInfo, BackupTarget } from 'src/app/services/api/api.types'
13-
import { RecoverSelectPage } from 'src/app/apps/ui/pages/backups-routes/modals/recover-select/recover-select.page'
1413
import * as argon2 from '@start9labs/argon2'
1514
import { TargetSelectPage } from '../modals/target-select/target-select.page'
15+
import { RecoverSelectPage } from '../modals/recover-select/recover-select.page'
1616

1717
@Directive({
1818
selector: '[backupRestore]',

frontend/projects/ui/src/app/apps/ui/pages/backups-routes/modals/backup-select/backup-select.page.ts frontend/projects/ui/src/app/apps/ui/pages/backups/modals/backup-select/backup-select.page.ts

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import { Component, Input } from '@angular/core'
22
import { ModalController } from '@ionic/angular'
3-
import { map } from 'rxjs/operators'
4-
import { DataModel, PackageState } from 'src/app/services/patch-db/data-model'
53
import { PatchDB } from 'patch-db-client'
6-
import { firstValueFrom } from 'rxjs'
4+
import { firstValueFrom, map } from 'rxjs'
5+
import { DataModel, PackageState } from 'src/app/services/patch-db/data-model'
76

87
@Component({
98
selector: 'backup-select',

frontend/projects/ui/src/app/apps/ui/pages/backups-routes/modals/recover-select/to-options.pipe.ts frontend/projects/ui/src/app/apps/ui/pages/backups/modals/recover-select/to-options.pipe.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { Pipe, PipeTransform } from '@angular/core'
22
import { Emver } from '@start9labs/shared'
3+
import { map, Observable } from 'rxjs'
34
import { PackageBackupInfo } from 'src/app/services/api/api.types'
45
import { ConfigService } from 'src/app/services/config.service'
56
import { PackageDataEntry } from 'src/app/services/patch-db/data-model'
6-
import { Observable } from 'rxjs'
7-
import { map } from 'rxjs/operators'
87

98
export interface AppRecoverOption extends PackageBackupInfo {
109
id: string

frontend/projects/ui/src/app/apps/ui/pages/backups-routes/pages/backup-history/backup-history.module.ts frontend/projects/ui/src/app/apps/ui/pages/backups/pages/backup-history/backup-history.module.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
HasErrorPipe,
99
} from './backup-history.page'
1010
import { TargetPipesModule } from '../../pipes/target-pipes.module'
11+
import { BackupReportPageModule } from 'src/app/apps/ui/modals/backup-report/backup-report.module'
1112

1213
const routes: Routes = [
1314
{
@@ -17,12 +18,13 @@ const routes: Routes = [
1718
]
1819

1920
@NgModule({
20-
declarations: [BackupHistoryPage, DurationPipe, HasErrorPipe],
2121
imports: [
2222
CommonModule,
2323
IonicModule,
24-
RouterModule.forChild(routes),
2524
TargetPipesModule,
25+
BackupReportPageModule,
26+
RouterModule.forChild(routes),
2627
],
28+
declarations: [BackupHistoryPage, DurationPipe, HasErrorPipe],
2729
})
2830
export class BackupHistoryPageModule {}

frontend/projects/ui/src/app/apps/ui/pages/backups-routes/pages/backup-history/backup-history.page.ts frontend/projects/ui/src/app/apps/ui/pages/backups/pages/backup-history/backup-history.page.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { LoadingController, ModalController } from '@ionic/angular'
55
import { ApiService } from 'src/app/services/api/embassy-api.service'
66
import { ErrorToastService } from '@start9labs/shared'
77
import { BehaviorSubject } from 'rxjs'
8-
import { BackupReportPage } from 'src/app/modals/backup-report/backup-report.page'
8+
import { BackupReportPage } from 'src/app/apps/ui/modals/backup-report/backup-report.page'
99

1010
@Component({
1111
selector: 'backup-history',

frontend/projects/ui/src/app/apps/ui/pages/backups-routes/pages/backup-targets/backup-targets.module.ts frontend/projects/ui/src/app/apps/ui/pages/backups/pages/backup-targets/backup-targets.module.ts

+5-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ import { NgModule } from '@angular/core'
22
import { RouterModule, Routes } from '@angular/router'
33
import { CommonModule } from '@angular/common'
44
import { IonicModule } from '@ionic/angular'
5-
import { BackupTargetsPage } from './backup-targets.page'
6-
import { SkeletonListComponentModule } from 'src/app/components/skeleton-list/skeleton-list.component.module'
75
import { UnitConversionPipesModule } from '@start9labs/shared'
6+
import { SkeletonListComponentModule } from 'src/app/common/skeleton-list/skeleton-list.component.module'
7+
import { FormPageModule } from 'src/app/apps/ui/modals/form/form.module'
8+
import { BackupTargetsPage } from './backup-targets.page'
89

910
const routes: Routes = [
1011
{
@@ -18,9 +19,10 @@ const routes: Routes = [
1819
imports: [
1920
CommonModule,
2021
IonicModule,
21-
RouterModule.forChild(routes),
2222
SkeletonListComponentModule,
2323
UnitConversionPipesModule,
24+
FormPageModule,
25+
RouterModule.forChild(routes),
2426
],
2527
})
2628
export class BackupTargetsPageModule {}

frontend/projects/ui/src/app/apps/ui/pages/backups-routes/pages/backup-targets/backup-targets.page.ts frontend/projects/ui/src/app/apps/ui/pages/backups/pages/backup-targets/backup-targets.page.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,17 @@ import {
1515
} from '../../types/target-types'
1616
import { BehaviorSubject, filter } from 'rxjs'
1717
import { TuiDialogService } from '@taiga-ui/core'
18-
import { ErrorService } from '@start9labs/shared'
19-
import { FormDialogService } from 'src/app/services/form-dialog.service'
20-
import { FormPage } from 'src/app/modals/form/form.page'
21-
import { LoadingService } from 'src/app/modals/loading/loading.service'
2218
import { TUI_PROMPT } from '@taiga-ui/kit'
23-
import { configBuilderToSpec } from 'src/app/util/configBuilderToSpec'
19+
import { ErrorService } from '@start9labs/shared'
2420
import {
2521
InputSpec,
2622
unionSelectKey,
2723
unionValueKey,
2824
} from '@start9labs/start-sdk/lib/config/configTypes'
25+
import { FormDialogService } from 'src/app/services/form-dialog.service'
26+
import { FormPage } from 'src/app/apps/ui/modals/form/form.page'
27+
import { LoadingService } from 'src/app/common/loading/loading.service'
28+
import { configBuilderToSpec } from 'src/app/util/configBuilderToSpec'
2929

3030
type BackupConfig =
3131
| {

0 commit comments

Comments
 (0)