mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-10-09 11:12:48 +00:00
refactor: angular 20 upgrade
This commit is contained in:
@@ -72,6 +72,7 @@ describe('AppComponent', () => {
|
||||
configProvider.getAnyValue = jasmine.createSpy().and.callFake(function () {
|
||||
return sampleAuthConfiguration;
|
||||
});
|
||||
inAppReviewProvider = jasmine.createSpyObj('InAppReviewProvider', ['init']);
|
||||
ngxLogger = jasmine.createSpyObj('NGXLogger', ['log', 'error', 'warn']);
|
||||
storageProvider = jasmine.createSpyObj('StorageProvider', ['init', 'get', 'has', 'put']);
|
||||
simpleBrowser = jasmine.createSpyObj('SimpleBrowser', ['open']);
|
||||
@@ -108,11 +109,5 @@ describe('AppComponent', () => {
|
||||
it('should initialize the app', async () => {
|
||||
TestBed.createComponent(AppComponent);
|
||||
expect(platformSpy.ready).toHaveBeenCalled();
|
||||
// await platformReadySpy;
|
||||
|
||||
// TODO: https://capacitorjs.com/docs/guides/mocking-plugins
|
||||
// expect(splashScreenSpy.hide).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
// TODO: add more tests!
|
||||
});
|
||||
|
||||
@@ -35,7 +35,7 @@ export class AuthGuardService implements CanActivate {
|
||||
try {
|
||||
await this.authHelper.getProvider().getValidToken();
|
||||
} catch {
|
||||
const originNavigation = this.router.getCurrentNavigation();
|
||||
const originNavigation = this.router.currentNavigation();
|
||||
let extras: NavigationExtras = {};
|
||||
if (originNavigation) {
|
||||
const url = originNavigation.extractedUrl.toString();
|
||||
|
||||
@@ -95,7 +95,7 @@ export class DataDetailComponent implements OnInit {
|
||||
readonly modalController: ModalController,
|
||||
translateService: TranslateService,
|
||||
) {
|
||||
this.inputItem = router.getCurrentNavigation()?.extras.state?.item;
|
||||
this.inputItem = router.currentNavigation()?.extras.state?.item;
|
||||
if (!this.inputItem?.origin) {
|
||||
// We received a ThingWithoutReferences.
|
||||
// This can happen, for example, when detail views use `inPlace` list items
|
||||
|
||||
@@ -29,7 +29,6 @@ export class CompassControlComponent {
|
||||
map(event => {
|
||||
// const pitch = event.target.transform.pitch;
|
||||
// const bearing = event.target.transform.bearing;
|
||||
|
||||
// return `rotateX(${pitch}deg) rotateZ(${bearing}deg)`;
|
||||
}),
|
||||
);
|
||||
|
||||
@@ -44,7 +44,7 @@ export class GeoNavigationDirective {
|
||||
const address = this.geoNavigation.address
|
||||
? this.translateService.instant(
|
||||
'map.directions.ADDRESS',
|
||||
this.thingTranslate.get(this.geoNavigation as SCThings, 'address'),
|
||||
this.thingTranslate.get(this.geoNavigation as SCThings, 'address') as object,
|
||||
)
|
||||
: `${lat}, ${lon}`;
|
||||
|
||||
|
||||
@@ -22,83 +22,89 @@
|
||||
|
||||
<ion-content>
|
||||
<!-- Sort Context -->
|
||||
<ion-list *ngIf="sortOption">
|
||||
<ion-radio-group class="context-sort" [value]="0">
|
||||
<ion-list-header>
|
||||
<ion-icon name="sort"></ion-icon>
|
||||
<ion-title>{{ 'menu.context.sort.title' | translate | titlecase }}</ion-title>
|
||||
</ion-list-header>
|
||||
<ion-item
|
||||
class="sort-item"
|
||||
*ngFor="let value of sortOption.values; let i = index"
|
||||
(click)="sortChanged(sortOption, value)"
|
||||
>
|
||||
<ion-radio [value]="i">
|
||||
{{ 'menu.context.sort.' + value.value | translate | titlecase }}
|
||||
<span *ngIf="sortOption.value === value.value && value.reversible">
|
||||
<ion-icon *ngIf="sortOption.reversed" name="arrow_downward"></ion-icon>
|
||||
<ion-icon *ngIf="!sortOption.reversed" name="arrow_upward"></ion-icon>
|
||||
</span>
|
||||
</ion-radio>
|
||||
</ion-item>
|
||||
</ion-radio-group>
|
||||
</ion-list>
|
||||
@if (sortOption) {
|
||||
<ion-list>
|
||||
<ion-radio-group class="context-sort" [value]="0">
|
||||
<ion-list-header>
|
||||
<ion-icon name="sort"></ion-icon>
|
||||
<ion-title>{{ 'menu.context.sort.title' | translate | titlecase }}</ion-title>
|
||||
</ion-list-header>
|
||||
@for (value of sortOption.values; track value; let i = $index) {
|
||||
<ion-item class="sort-item" (click)="sortChanged(sortOption, value)">
|
||||
<ion-radio [value]="i">
|
||||
{{ 'menu.context.sort.' + value.value | translate | titlecase }}
|
||||
@if (sortOption.value === value.value && value.reversible) {
|
||||
<span>
|
||||
@if (sortOption.reversed) {
|
||||
<ion-icon name="arrow_downward"></ion-icon>
|
||||
}
|
||||
@if (!sortOption.reversed) {
|
||||
<ion-icon name="arrow_upward"></ion-icon>
|
||||
}
|
||||
</span>
|
||||
}
|
||||
</ion-radio>
|
||||
</ion-item>
|
||||
}
|
||||
</ion-radio-group>
|
||||
</ion-list>
|
||||
}
|
||||
|
||||
<!-- Filter Context -->
|
||||
<form class="context-filter" *ngIf="filterOption">
|
||||
<ion-list-header>
|
||||
<ion-icon name="filter_list"></ion-icon>
|
||||
<ion-title>{{ 'menu.context.filter.title' | translate | titlecase }}</ion-title>
|
||||
<ion-button class="resetFilterButton" fill="clear" color="dark" (click)="resetFilter(filterOption)">
|
||||
<ion-icon name="delete"></ion-icon>
|
||||
</ion-button>
|
||||
</ion-list-header>
|
||||
|
||||
<ion-list class="filter-group" *ngFor="let facet of facets">
|
||||
<ion-list-header class="h3">
|
||||
<ion-label>
|
||||
<span *ngIf="facet.info.onlyOnType"
|
||||
><b>{{ facet.info.onlyOnType | titlecase }}</b> /
|
||||
</span>
|
||||
{{ facet.info.field | titlecase }}
|
||||
</ion-label>
|
||||
@if (filterOption) {
|
||||
<form class="context-filter">
|
||||
<ion-list-header>
|
||||
<ion-icon name="filter_list"></ion-icon>
|
||||
<ion-title>{{ 'menu.context.filter.title' | translate | titlecase }}</ion-title>
|
||||
<ion-button class="resetFilterButton" fill="clear" color="dark" (click)="resetFilter(filterOption)">
|
||||
<ion-icon name="delete"></ion-icon>
|
||||
</ion-button>
|
||||
</ion-list-header>
|
||||
|
||||
<ng-container
|
||||
*ngFor="
|
||||
let bucket of !facet.compact ? facet.buckets.slice(0, compactFilterOptionCount) : facet.buckets
|
||||
"
|
||||
>
|
||||
<ion-item>
|
||||
<ion-checkbox
|
||||
[(ngModel)]="bucket.checked"
|
||||
(ngModelChange)="filterChanged()"
|
||||
[name]="facet.onlyOnType + '-' + facet.field + '-' + bucket.key"
|
||||
[value]="{
|
||||
field: facet.field,
|
||||
value: bucket.key,
|
||||
onlyOnType: facet.onlyOnType
|
||||
}"
|
||||
class="filter-item-label"
|
||||
>
|
||||
({{ bucket.count }})
|
||||
{{
|
||||
facet.field === 'type'
|
||||
? (getTranslatedPropertyValue($any(bucket.key), 'type') | titlecase)
|
||||
: (facet.onlyOnType && getTranslatedPropertyValue(facet.onlyOnType, facet.field, bucket.key)
|
||||
| titlecase)
|
||||
}}
|
||||
</ion-checkbox>
|
||||
</ion-item>
|
||||
</ng-container>
|
||||
|
||||
<ion-button
|
||||
*ngIf="!facet.compact && facet.buckets.length > compactFilterOptionCount"
|
||||
fill="clear"
|
||||
(click)="facet.compact = true"
|
||||
>
|
||||
{{ 'menu.context.filter.showAll' | translate }}
|
||||
</ion-button>
|
||||
</ion-list>
|
||||
</form>
|
||||
@for (facet of facets; track facet) {
|
||||
<ion-list class="filter-group">
|
||||
<ion-list-header class="h3">
|
||||
<ion-label>
|
||||
@if (facet.info.onlyOnType) {
|
||||
<span
|
||||
><b>{{ facet.info.onlyOnType | titlecase }}</b> /
|
||||
</span>
|
||||
}
|
||||
{{ facet.info.field | titlecase }}
|
||||
</ion-label>
|
||||
</ion-list-header>
|
||||
@for (
|
||||
bucket of !facet.compact ? facet.buckets.slice(0, compactFilterOptionCount) : facet.buckets;
|
||||
track bucket
|
||||
) {
|
||||
<ion-item>
|
||||
<ion-checkbox
|
||||
[(ngModel)]="bucket.checked"
|
||||
(ngModelChange)="filterChanged()"
|
||||
[name]="facet.onlyOnType + '-' + facet.field + '-' + bucket.key"
|
||||
[value]="{
|
||||
field: facet.field,
|
||||
value: bucket.key,
|
||||
onlyOnType: facet.onlyOnType
|
||||
}"
|
||||
class="filter-item-label"
|
||||
>
|
||||
({{ bucket.count }})
|
||||
{{
|
||||
facet.field === 'type'
|
||||
? (getTranslatedPropertyValue($any(bucket.key), 'type') | titlecase)
|
||||
: (facet.onlyOnType &&
|
||||
getTranslatedPropertyValue(facet.onlyOnType, facet.field, bucket.key) | titlecase)
|
||||
}}
|
||||
</ion-checkbox>
|
||||
</ion-item>
|
||||
}
|
||||
@if (!facet.compact && facet.buckets.length > compactFilterOptionCount) {
|
||||
<ion-button fill="clear" (click)="facet.compact = true">
|
||||
{{ 'menu.context.filter.showAll' | translate }}
|
||||
</ion-button>
|
||||
}
|
||||
</ion-list>
|
||||
}
|
||||
</form>
|
||||
}
|
||||
</ion-content>
|
||||
|
||||
@@ -35,7 +35,7 @@ export class RoutingStackService {
|
||||
this.currentRoute = event.urlAfterRedirects;
|
||||
|
||||
this.lastDataDetail = this.currentDataDetail;
|
||||
this.currentDataDetail = this.router.getCurrentNavigation()!.extras.state?.item;
|
||||
this.currentDataDetail = this.router.currentNavigation()!.extras.state?.item;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user