Chore: update to Angular 20 (#10273)

This commit is contained in:
shamoon
2025-06-27 14:06:40 -07:00
committed by GitHub
parent dfad3c4d8e
commit 958f98d7e5
146 changed files with 2662 additions and 2687 deletions

View File

@@ -2,7 +2,7 @@ import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'
import { provideHttpClientTesting } from '@angular/common/http/testing'
import { TestBed } from '@angular/core/testing'
import { PermissionsService } from '../services/permissions.service'
import { CorrespondentService } from '../services/rest/correspondent.service'
import { AbstractNameFilterService } from '../services/rest/abstract-name-filter-service'
import { CorrespondentNamePipe } from './correspondent-name.pipe'
describe('CorrespondentNamePipe', () => {
@@ -11,6 +11,9 @@ describe('CorrespondentNamePipe', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
CorrespondentNamePipe,
{ provide: PermissionsService },
{ provide: AbstractNameFilterService },
provideHttpClient(withInterceptorsFromDi()),
provideHttpClientTesting(),
],
@@ -19,10 +22,7 @@ describe('CorrespondentNamePipe', () => {
// The pipe is a simple wrapper around ObjectNamePipe, see ObjectNamePipe for the actual tests.
it('should be created', () => {
pipe = new CorrespondentNamePipe(
TestBed.inject(PermissionsService),
TestBed.inject(CorrespondentService)
)
pipe = TestBed.inject(CorrespondentNamePipe)
expect(pipe).toBeTruthy()
})
})

View File

@@ -1,4 +1,4 @@
import { Pipe, PipeTransform } from '@angular/core'
import { inject, Pipe, PipeTransform } from '@angular/core'
import {
PermissionsService,
PermissionType,
@@ -13,10 +13,10 @@ export class CorrespondentNamePipe
extends ObjectNamePipe
implements PipeTransform
{
constructor(
permissionsService: PermissionsService,
objectService: CorrespondentService
) {
super(permissionsService, PermissionType.Correspondent, objectService)
constructor() {
super()
this.permissionsService = inject(PermissionsService)
this.permissionType = PermissionType.Correspondent
this.objectService = inject(CorrespondentService)
}
}

View File

@@ -1,5 +1,5 @@
import { DatePipe } from '@angular/common'
import { Inject, LOCALE_ID, Pipe, PipeTransform } from '@angular/core'
import { LOCALE_ID, Pipe, PipeTransform, inject } from '@angular/core'
import { SETTINGS_KEYS } from '../data/ui-settings'
import { SettingsService } from '../services/settings.service'
@@ -46,13 +46,14 @@ const INTERVALS = {
name: 'customDate',
})
export class CustomDatePipe implements PipeTransform {
private datePipe = inject(DatePipe)
private settings = inject(SettingsService)
private defaultLocale: string
constructor(
@Inject(LOCALE_ID) locale: string,
private datePipe: DatePipe,
private settings: SettingsService
) {
constructor() {
const locale = inject(LOCALE_ID)
this.defaultLocale = locale
}

View File

@@ -2,7 +2,7 @@ import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'
import { provideHttpClientTesting } from '@angular/common/http/testing'
import { TestBed } from '@angular/core/testing'
import { PermissionsService } from '../services/permissions.service'
import { DocumentTypeService } from '../services/rest/document-type.service'
import { AbstractNameFilterService } from '../services/rest/abstract-name-filter-service'
import { DocumentTypeNamePipe } from './document-type-name.pipe'
describe('DocumentTypeNamePipe', () => {
@@ -11,6 +11,9 @@ describe('DocumentTypeNamePipe', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
DocumentTypeNamePipe,
{ provide: PermissionsService },
{ provide: AbstractNameFilterService },
provideHttpClient(withInterceptorsFromDi()),
provideHttpClientTesting(),
],
@@ -19,10 +22,7 @@ describe('DocumentTypeNamePipe', () => {
// The pipe is a simple wrapper around ObjectNamePipe, see ObjectNamePipe for the actual tests.
it('should be created', () => {
pipe = new DocumentTypeNamePipe(
TestBed.inject(PermissionsService),
TestBed.inject(DocumentTypeService)
)
pipe = TestBed.inject(DocumentTypeNamePipe)
expect(pipe).toBeTruthy()
})
})

View File

@@ -1,4 +1,4 @@
import { Pipe, PipeTransform } from '@angular/core'
import { inject, Pipe, PipeTransform } from '@angular/core'
import {
PermissionsService,
PermissionType,
@@ -13,10 +13,10 @@ export class DocumentTypeNamePipe
extends ObjectNamePipe
implements PipeTransform
{
constructor(
permissionsService: PermissionsService,
objectService: DocumentTypeService
) {
super(permissionsService, PermissionType.DocumentType, objectService)
constructor() {
super()
this.permissionsService = inject(PermissionsService)
this.permissionType = PermissionType.DocumentType
this.objectService = inject(DocumentTypeService)
}
}

View File

@@ -7,7 +7,6 @@ import { PermissionsService } from '../services/permissions.service'
import { AbstractNameFilterService } from '../services/rest/abstract-name-filter-service'
import { CorrespondentService } from '../services/rest/correspondent.service'
import { CorrespondentNamePipe } from './correspondent-name.pipe'
import { ObjectNamePipe } from './object-name.pipe'
describe('ObjectNamePipe', () => {
/*
@@ -21,7 +20,9 @@ describe('ObjectNamePipe', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
ObjectNamePipe,
CorrespondentNamePipe,
{ provide: PermissionsService },
{ provide: CorrespondentService },
provideHttpClient(withInterceptorsFromDi()),
provideHttpClientTesting(),
],
@@ -29,7 +30,7 @@ describe('ObjectNamePipe', () => {
permissionsService = TestBed.inject(PermissionsService)
objectService = TestBed.inject(CorrespondentService)
pipe = new CorrespondentNamePipe(permissionsService, objectService)
pipe = TestBed.inject(CorrespondentNamePipe)
})
it('should return object name if user has permission', (done) => {

View File

@@ -1,4 +1,4 @@
import { Pipe, PipeTransform } from '@angular/core'
import { inject, Pipe, PipeTransform } from '@angular/core'
import { catchError, map, Observable, of } from 'rxjs'
import { MatchingModel } from '../data/matching-model'
import {
@@ -12,6 +12,12 @@ import { AbstractNameFilterService } from '../services/rest/abstract-name-filter
name: 'objectName',
})
export abstract class ObjectNamePipe implements PipeTransform {
protected permissionsService = inject(PermissionsService)
protected permissionType: PermissionType
protected objectService = inject<AbstractNameFilterService<MatchingModel>>(
AbstractNameFilterService
)
/*
ObjectNamePipe is an abstract class to prevent instantiation,
object-specific pipes extend this class and provide the
@@ -19,12 +25,6 @@ export abstract class ObjectNamePipe implements PipeTransform {
*/
protected objects: MatchingModel[]
constructor(
protected permissionsService: PermissionsService,
protected permissionType: PermissionType,
protected objectService: AbstractNameFilterService<MatchingModel>
) {}
transform(obejctId: number): Observable<string> {
if (
this.permissionsService.currentUserCan(

View File

@@ -1,11 +1,11 @@
import { Pipe, PipeTransform } from '@angular/core'
import { Pipe, PipeTransform, inject } from '@angular/core'
import { DomSanitizer } from '@angular/platform-browser'
@Pipe({
name: 'safeHtml',
})
export class SafeHtmlPipe implements PipeTransform {
constructor(private sanitizer: DomSanitizer) {}
private sanitizer = inject(DomSanitizer)
transform(html) {
return this.sanitizer.bypassSecurityTrustHtml(html)

View File

@@ -1,11 +1,11 @@
import { Pipe, PipeTransform } from '@angular/core'
import { Pipe, PipeTransform, inject } from '@angular/core'
import { DomSanitizer } from '@angular/platform-browser'
@Pipe({
name: 'safeUrl',
})
export class SafeUrlPipe implements PipeTransform {
constructor(private sanitizer: DomSanitizer) {}
private sanitizer = inject(DomSanitizer)
transform(url) {
if (url == null) {

View File

@@ -2,7 +2,7 @@ import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'
import { provideHttpClientTesting } from '@angular/common/http/testing'
import { TestBed } from '@angular/core/testing'
import { PermissionsService } from '../services/permissions.service'
import { StoragePathService } from '../services/rest/storage-path.service'
import { AbstractNameFilterService } from '../services/rest/abstract-name-filter-service'
import { StoragePathNamePipe } from './storage-path-name.pipe'
describe('StoragePathNamePipe', () => {
@@ -11,6 +11,9 @@ describe('StoragePathNamePipe', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
StoragePathNamePipe,
{ provide: PermissionsService },
{ provide: AbstractNameFilterService },
provideHttpClient(withInterceptorsFromDi()),
provideHttpClientTesting(),
],
@@ -19,10 +22,7 @@ describe('StoragePathNamePipe', () => {
// The pipe is a simple wrapper around ObjectNamePipe, see ObjectNamePipe for the actual tests.
it('should be created', () => {
pipe = new StoragePathNamePipe(
TestBed.inject(PermissionsService),
TestBed.inject(StoragePathService)
)
pipe = TestBed.inject(StoragePathNamePipe)
expect(pipe).toBeTruthy()
})
})

View File

@@ -1,4 +1,4 @@
import { Pipe, PipeTransform } from '@angular/core'
import { inject, Pipe, PipeTransform } from '@angular/core'
import {
PermissionsService,
PermissionType,
@@ -13,10 +13,10 @@ export class StoragePathNamePipe
extends ObjectNamePipe
implements PipeTransform
{
constructor(
permissionsService: PermissionsService,
objectService: StoragePathService
) {
super(permissionsService, PermissionType.StoragePath, objectService)
constructor() {
super()
this.permissionsService = inject(PermissionsService)
this.permissionType = PermissionType.StoragePath
this.objectService = inject(StoragePathService)
}
}

View File

@@ -1,4 +1,4 @@
import { Pipe, PipeTransform } from '@angular/core'
import { inject, Pipe, PipeTransform } from '@angular/core'
import { catchError, map, Observable, of } from 'rxjs'
import { User } from '../data/user'
import {
@@ -12,12 +12,10 @@ import { UserService } from '../services/rest/user.service'
name: 'username',
})
export class UsernamePipe implements PipeTransform {
users: User[]
private permissionsService = inject(PermissionsService)
private userService = inject(UserService)
constructor(
private permissionsService: PermissionsService,
private userService: UserService
) {}
users: User[]
transform(userID: number): Observable<string> {
if (