mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-10-14 02:36:10 -05:00
Chore: update to Angular 20 (#10273)
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { Injectable } from '@angular/core'
|
||||
import { Observable } from 'rxjs'
|
||||
import { ObjectWithId } from 'src/app/data/object-with-id'
|
||||
import { PermissionsObject } from 'src/app/data/object-with-permissions'
|
||||
@@ -7,7 +8,9 @@ export enum BulkEditObjectOperation {
|
||||
SetPermissions = 'set_permissions',
|
||||
Delete = 'delete',
|
||||
}
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export abstract class AbstractNameFilterService<
|
||||
T extends ObjectWithId,
|
||||
> extends AbstractPaperlessService<T> {
|
||||
|
@@ -1,17 +1,21 @@
|
||||
import { HttpClient, HttpParams } from '@angular/common/http'
|
||||
import { inject, Injectable } from '@angular/core'
|
||||
import { Observable } from 'rxjs'
|
||||
import { map, publishReplay, refCount } from 'rxjs/operators'
|
||||
import { ObjectWithId } from 'src/app/data/object-with-id'
|
||||
import { Results } from 'src/app/data/results'
|
||||
import { environment } from 'src/environments/environment'
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export abstract class AbstractPaperlessService<T extends ObjectWithId> {
|
||||
protected baseUrl: string = environment.apiBaseUrl
|
||||
protected http: HttpClient
|
||||
protected resourceName: string
|
||||
|
||||
constructor(
|
||||
protected http: HttpClient,
|
||||
protected resourceName: string
|
||||
) {}
|
||||
constructor() {
|
||||
this.http = inject(HttpClient)
|
||||
}
|
||||
|
||||
protected getResourceUrl(id: number = null, action: string = null): string {
|
||||
let url = `${this.baseUrl}${this.resourceName}/`
|
||||
|
@@ -1,4 +1,3 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { Correspondent } from 'src/app/data/correspondent'
|
||||
import { AbstractNameFilterService } from './abstract-name-filter-service'
|
||||
@@ -7,7 +6,8 @@ import { AbstractNameFilterService } from './abstract-name-filter-service'
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class CorrespondentService extends AbstractNameFilterService<Correspondent> {
|
||||
constructor(http: HttpClient) {
|
||||
super(http, 'correspondents')
|
||||
constructor() {
|
||||
super()
|
||||
this.resourceName = 'correspondents'
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,3 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { CustomField } from 'src/app/data/custom-field'
|
||||
import { AbstractPaperlessService } from './abstract-paperless-service'
|
||||
@@ -7,7 +6,8 @@ import { AbstractPaperlessService } from './abstract-paperless-service'
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class CustomFieldsService extends AbstractPaperlessService<CustomField> {
|
||||
constructor(http: HttpClient) {
|
||||
super(http, 'custom_fields')
|
||||
constructor() {
|
||||
super()
|
||||
this.resourceName = 'custom_fields'
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { HttpClient, HttpParams } from '@angular/common/http'
|
||||
import { HttpParams } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { Observable } from 'rxjs'
|
||||
import { DocumentNote } from 'src/app/data/document-note'
|
||||
@@ -8,8 +8,9 @@ import { AbstractPaperlessService } from './abstract-paperless-service'
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class DocumentNotesService extends AbstractPaperlessService<DocumentNote> {
|
||||
constructor(http: HttpClient) {
|
||||
super(http, 'documents')
|
||||
constructor() {
|
||||
super()
|
||||
this.resourceName = 'documents'
|
||||
}
|
||||
|
||||
getNotes(documentId: number): Observable<DocumentNote[]> {
|
||||
|
@@ -1,4 +1,3 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { DocumentType } from 'src/app/data/document-type'
|
||||
import { AbstractNameFilterService } from './abstract-name-filter-service'
|
||||
@@ -7,7 +6,8 @@ import { AbstractNameFilterService } from './abstract-name-filter-service'
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class DocumentTypeService extends AbstractNameFilterService<DocumentType> {
|
||||
constructor(http: HttpClient) {
|
||||
super(http, 'document_types')
|
||||
constructor() {
|
||||
super()
|
||||
this.resourceName = 'document_types'
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,4 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { Injectable, inject } from '@angular/core'
|
||||
import { Observable } from 'rxjs'
|
||||
import { map } from 'rxjs/operators'
|
||||
import { AuditLogEntry } from 'src/app/data/auditlog-entry'
|
||||
@@ -41,6 +40,10 @@ export interface SelectionData {
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class DocumentService extends AbstractPaperlessService<Document> {
|
||||
private permissionsService = inject(PermissionsService)
|
||||
private settingsService = inject(SettingsService)
|
||||
private customFieldService = inject(CustomFieldsService)
|
||||
|
||||
private _searchQuery: string
|
||||
|
||||
private _sortFields
|
||||
@@ -55,13 +58,9 @@ export class DocumentService extends AbstractPaperlessService<Document> {
|
||||
|
||||
private customFields: CustomField[] = []
|
||||
|
||||
constructor(
|
||||
http: HttpClient,
|
||||
private permissionsService: PermissionsService,
|
||||
private settingsService: SettingsService,
|
||||
private customFieldService: CustomFieldsService
|
||||
) {
|
||||
super(http, 'documents')
|
||||
constructor() {
|
||||
super()
|
||||
this.resourceName = 'documents'
|
||||
this.reload()
|
||||
}
|
||||
|
||||
|
@@ -1,5 +1,4 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { Injectable, inject } from '@angular/core'
|
||||
import { Observable, switchMap } from 'rxjs'
|
||||
import { Group } from 'src/app/data/group'
|
||||
import { PermissionsService } from '../permissions.service'
|
||||
@@ -9,11 +8,11 @@ import { AbstractNameFilterService } from './abstract-name-filter-service'
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class GroupService extends AbstractNameFilterService<Group> {
|
||||
constructor(
|
||||
http: HttpClient,
|
||||
private permissionService: PermissionsService
|
||||
) {
|
||||
super(http, 'groups')
|
||||
private permissionService = inject(PermissionsService)
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
this.resourceName = 'groups'
|
||||
}
|
||||
|
||||
update(o: Group): Observable<Group> {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { Injectable, inject } from '@angular/core'
|
||||
import { Observable } from 'rxjs'
|
||||
import { environment } from 'src/environments/environment'
|
||||
|
||||
@@ -7,7 +7,7 @@ import { environment } from 'src/environments/environment'
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class LogService {
|
||||
constructor(private http: HttpClient) {}
|
||||
private http = inject(HttpClient)
|
||||
|
||||
list(): Observable<string[]> {
|
||||
return this.http.get<string[]>(`${environment.apiBaseUrl}logs/`)
|
||||
|
@@ -1,4 +1,3 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { tap } from 'rxjs/operators'
|
||||
import { MailAccount } from 'src/app/data/mail-account'
|
||||
@@ -10,8 +9,9 @@ import { AbstractPaperlessService } from './abstract-paperless-service'
|
||||
export class MailAccountService extends AbstractPaperlessService<MailAccount> {
|
||||
loading: boolean
|
||||
|
||||
constructor(http: HttpClient) {
|
||||
super(http, 'mail_accounts')
|
||||
constructor() {
|
||||
super()
|
||||
this.resourceName = 'mail_accounts'
|
||||
}
|
||||
|
||||
private reload() {
|
||||
|
@@ -1,4 +1,3 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { tap } from 'rxjs/operators'
|
||||
import { MailRule } from 'src/app/data/mail-rule'
|
||||
@@ -10,8 +9,9 @@ import { AbstractPaperlessService } from './abstract-paperless-service'
|
||||
export class MailRuleService extends AbstractPaperlessService<MailRule> {
|
||||
loading: boolean
|
||||
|
||||
constructor(http: HttpClient) {
|
||||
super(http, 'mail_rules')
|
||||
constructor() {
|
||||
super()
|
||||
this.resourceName = 'mail_rules'
|
||||
}
|
||||
|
||||
private reload() {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { Injectable, inject } from '@angular/core'
|
||||
import { Observable } from 'rxjs'
|
||||
import { environment } from 'src/environments/environment'
|
||||
|
||||
@@ -12,7 +12,7 @@ export interface AppRemoteVersion {
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class RemoteVersionService {
|
||||
constructor(private http: HttpClient) {}
|
||||
private http = inject(HttpClient)
|
||||
|
||||
public checkForUpdates(): Observable<AppRemoteVersion> {
|
||||
return this.http.get<AppRemoteVersion>(
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { inject, Injectable } from '@angular/core'
|
||||
import { combineLatest, Observable } from 'rxjs'
|
||||
import { tap } from 'rxjs/operators'
|
||||
import { Results } from 'src/app/data/results'
|
||||
@@ -12,14 +12,15 @@ import { AbstractPaperlessService } from './abstract-paperless-service'
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class SavedViewService extends AbstractPaperlessService<SavedView> {
|
||||
protected http: HttpClient
|
||||
private settingsService = inject(SettingsService)
|
||||
|
||||
public loading: boolean = true
|
||||
private savedViews: SavedView[] = []
|
||||
|
||||
constructor(
|
||||
protected http: HttpClient,
|
||||
private settingsService: SettingsService
|
||||
) {
|
||||
super(http, 'saved_views')
|
||||
constructor() {
|
||||
super()
|
||||
this.resourceName = 'saved_views'
|
||||
}
|
||||
|
||||
public list(
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import { HttpClient, HttpParams } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { Injectable, inject } from '@angular/core'
|
||||
import { Observable } from 'rxjs'
|
||||
import { Correspondent } from 'src/app/data/correspondent'
|
||||
import { CustomField } from 'src/app/data/custom-field'
|
||||
@@ -37,12 +37,10 @@ export interface GlobalSearchResult {
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class SearchService {
|
||||
public readonly searchResultObjectLimit: number = 3 // documents/views.py GlobalSearchView > OBJECT_LIMIT
|
||||
private http = inject(HttpClient)
|
||||
private settingsService = inject(SettingsService)
|
||||
|
||||
constructor(
|
||||
private http: HttpClient,
|
||||
private settingsService: SettingsService
|
||||
) {}
|
||||
public readonly searchResultObjectLimit: number = 3
|
||||
|
||||
autocomplete(term: string): Observable<string[]> {
|
||||
return this.http.get<string[]>(
|
||||
|
@@ -1,4 +1,3 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { Observable } from 'rxjs'
|
||||
import { FileVersion, ShareLink } from 'src/app/data/share-link'
|
||||
@@ -8,8 +7,9 @@ import { AbstractNameFilterService } from './abstract-name-filter-service'
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class ShareLinkService extends AbstractNameFilterService<ShareLink> {
|
||||
constructor(http: HttpClient) {
|
||||
super(http, 'share_links')
|
||||
constructor() {
|
||||
super()
|
||||
this.resourceName = 'share_links'
|
||||
}
|
||||
|
||||
getLinksForDocument(documentId: number): Observable<ShareLink[]> {
|
||||
|
@@ -1,4 +1,3 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { Observable } from 'rxjs'
|
||||
import { StoragePath } from 'src/app/data/storage-path'
|
||||
@@ -8,8 +7,9 @@ import { AbstractNameFilterService } from './abstract-name-filter-service'
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class StoragePathService extends AbstractNameFilterService<StoragePath> {
|
||||
constructor(http: HttpClient) {
|
||||
super(http, 'storage_paths')
|
||||
constructor() {
|
||||
super()
|
||||
this.resourceName = 'storage_paths'
|
||||
}
|
||||
|
||||
public testPath(path: string, documentID: number): Observable<any> {
|
||||
|
@@ -1,4 +1,3 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { Tag } from 'src/app/data/tag'
|
||||
import { AbstractNameFilterService } from './abstract-name-filter-service'
|
||||
@@ -7,7 +6,8 @@ import { AbstractNameFilterService } from './abstract-name-filter-service'
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class TagService extends AbstractNameFilterService<Tag> {
|
||||
constructor(http: HttpClient) {
|
||||
super(http, 'tags')
|
||||
constructor() {
|
||||
super()
|
||||
this.resourceName = 'tags'
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,4 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { Injectable, inject } from '@angular/core'
|
||||
import { Observable, switchMap } from 'rxjs'
|
||||
import { User } from 'src/app/data/user'
|
||||
import { PermissionsService } from '../permissions.service'
|
||||
@@ -10,11 +9,11 @@ const endpoint = 'users'
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class UserService extends AbstractNameFilterService<User> {
|
||||
constructor(
|
||||
http: HttpClient,
|
||||
private permissionService: PermissionsService
|
||||
) {
|
||||
super(http, endpoint)
|
||||
private permissionService = inject(PermissionsService)
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
this.resourceName = endpoint
|
||||
}
|
||||
|
||||
update(o: User): Observable<User> {
|
||||
|
@@ -1,4 +1,3 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { tap } from 'rxjs'
|
||||
import { Workflow } from 'src/app/data/workflow'
|
||||
@@ -10,8 +9,9 @@ import { AbstractPaperlessService } from './abstract-paperless-service'
|
||||
export class WorkflowService extends AbstractPaperlessService<Workflow> {
|
||||
loading: boolean
|
||||
|
||||
constructor(http: HttpClient) {
|
||||
super(http, 'workflows')
|
||||
constructor() {
|
||||
super()
|
||||
this.resourceName = 'workflows'
|
||||
}
|
||||
|
||||
public reload() {
|
||||
|
Reference in New Issue
Block a user