import { SettingsService } from './services/settings.service'
-import { SETTINGS_KEYS } from './data/paperless-uisettings'
+import { SETTINGS_KEYS } from './data/ui-settings'
import { Component, OnDestroy, OnInit, Renderer2 } from '@angular/core'
import { Router } from '@angular/router'
import { Subscription, first } from 'rxjs'
import { NgSelectModule } from '@ng-select/ng-select'
import { of, throwError } from 'rxjs'
import { routes } from 'src/app/app-routing.module'
-import { PaperlessSavedView } from 'src/app/data/paperless-saved-view'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { SavedView } from 'src/app/data/saved-view'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
import { PermissionsGuard } from 'src/app/guards/permissions.guard'
import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe'
of({
all: savedViews.map((v) => v.id),
count: savedViews.length,
- results: (savedViews as PaperlessSavedView[]).concat([]),
+ results: (savedViews as SavedView[]).concat([]),
})
)
}
savedViewPatchSpy.mockClear()
// succeed saved views
- savedViewPatchSpy.mockReturnValueOnce(
- of(savedViews as PaperlessSavedView[])
- )
+ savedViewPatchSpy.mockReturnValueOnce(of(savedViews as SavedView[]))
component.saveSettings()
expect(toastErrorSpy).not.toHaveBeenCalled()
expect(savedViewPatchSpy).toHaveBeenCalled()
const toastSpy = jest.spyOn(toastService, 'showInfo')
const deleteSpy = jest.spyOn(savedViewService, 'delete')
deleteSpy.mockReturnValue(of(true))
- component.deleteSavedView(savedViews[0] as PaperlessSavedView)
+ component.deleteSavedView(savedViews[0] as SavedView)
expect(deleteSpy).toHaveBeenCalled()
expect(toastSpy).toHaveBeenCalledWith(
`Saved view "${savedViews[0].name}" deleted.`
takeUntil,
tap,
} from 'rxjs'
-import { PaperlessGroup } from 'src/app/data/paperless-group'
-import { PaperlessSavedView } from 'src/app/data/paperless-saved-view'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
-import { PaperlessUser } from 'src/app/data/paperless-user'
+import { Group } from 'src/app/data/group'
+import { SavedView } from 'src/app/data/saved-view'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
+import { User } from 'src/app/data/user'
import { DocumentListViewService } from 'src/app/services/document-list-view.service'
import {
PermissionsService,
savedViews: this.savedViewGroup,
})
- savedViews: PaperlessSavedView[]
+ savedViews: SavedView[]
store: BehaviorSubject<any>
storeSub: Subscription
unsubscribeNotifier: Subject<any> = new Subject()
savePending: boolean = false
- users: PaperlessUser[]
- groups: PaperlessGroup[]
+ users: User[]
+ groups: Group[]
get computedDateLocale(): string {
return (
this.settings.organizingSidebarSavedViews = false
}
- deleteSavedView(savedView: PaperlessSavedView) {
+ deleteSavedView(savedView: SavedView) {
this.savedViewService.delete(savedView).subscribe(() => {
this.savedViewGroup.removeControl(savedView.id.toString())
this.savedViews.splice(this.savedViews.indexOf(savedView), 1)
saveSettings() {
// only patch views that have actually changed
- const changed: PaperlessSavedView[] = []
+ const changed: SavedView[] = []
Object.values(this.savedViewGroup.controls)
.filter((g: FormGroup) => !g.pristine)
.forEach((group: FormGroup) => {
import { PageHeaderComponent } from '../../common/page-header/page-header.component'
import { SettingsComponent } from '../settings/settings.component'
import { UsersAndGroupsComponent } from './users-groups.component'
-import { PaperlessUser } from 'src/app/data/paperless-user'
-import { PaperlessGroup } from 'src/app/data/paperless-group'
+import { User } from 'src/app/data/user'
+import { Group } from 'src/app/data/group'
const users = [
{ id: 1, username: 'user1', is_superuser: false },
of({
all: users.map((a) => a.id),
count: users.length,
- results: (users as PaperlessUser[]).concat([]),
+ results: (users as User[]).concat([]),
})
)
}
of({
all: groups.map((r) => r.id),
count: groups.length,
- results: (groups as PaperlessGroup[]).concat([]),
+ results: (groups as Group[]).concat([]),
})
)
}
import { Component, OnDestroy, OnInit } from '@angular/core'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { Subject, first, takeUntil } from 'rxjs'
-import { PaperlessGroup } from 'src/app/data/paperless-group'
-import { PaperlessUser } from 'src/app/data/paperless-user'
+import { Group } from 'src/app/data/group'
+import { User } from 'src/app/data/user'
import { PermissionsService } from 'src/app/services/permissions.service'
import { GroupService } from 'src/app/services/rest/group.service'
import { UserService } from 'src/app/services/rest/user.service'
extends ComponentWithPermissions
implements OnInit, OnDestroy
{
- users: PaperlessUser[]
- groups: PaperlessGroup[]
+ users: User[]
+ groups: Group[]
unsubscribeNotifier: Subject<any> = new Subject()
this.unsubscribeNotifier.next(true)
}
- editUser(user: PaperlessUser = null) {
+ editUser(user: User = null) {
var modal = this.modalService.open(UserEditDialogComponent, {
backdrop: 'static',
size: 'xl',
modal.componentInstance.object = user
modal.componentInstance.succeeded
.pipe(takeUntil(this.unsubscribeNotifier))
- .subscribe((newUser: PaperlessUser) => {
+ .subscribe((newUser: User) => {
if (
newUser.id === this.settings.currentUser.id &&
(modal.componentInstance as UserEditDialogComponent).passwordIsSet
})
}
- deleteUser(user: PaperlessUser) {
+ deleteUser(user: User) {
let modal = this.modalService.open(ConfirmDialogComponent, {
backdrop: 'static',
})
})
}
- editGroup(group: PaperlessGroup = null) {
+ editGroup(group: Group = null) {
var modal = this.modalService.open(GroupEditDialogComponent, {
backdrop: 'static',
size: 'lg',
})
}
- deleteGroup(group: PaperlessGroup) {
+ deleteGroup(group: Group) {
let modal = this.modalService.open(ConfirmDialogComponent, {
backdrop: 'static',
})
import { SettingsService } from 'src/app/services/settings.service'
import { SavedViewService } from 'src/app/services/rest/saved-view.service'
import { PermissionsService } from 'src/app/services/permissions.service'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import { RemoteVersionService } from 'src/app/services/rest/remote-version.service'
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
import { FormsModule, ReactiveFormsModule } from '@angular/forms'
-import { Observable, of, tap, throwError } from 'rxjs'
+import { of, throwError } from 'rxjs'
import { ToastService } from 'src/app/services/toast.service'
import { environment } from 'src/environments/environment'
import { OpenDocumentsService } from 'src/app/services/open-documents.service'
import { routes } from 'src/app/app-routing.module'
import { PermissionsGuard } from 'src/app/guards/permissions.guard'
import { CdkDragDrop, DragDropModule } from '@angular/cdk/drag-drop'
-import { PaperlessSavedView } from 'src/app/data/paperless-saved-view'
+import { SavedView } from 'src/app/data/saved-view'
import { ProfileEditDialogComponent } from '../common/profile-edit-dialog/profile-edit-dialog.component'
const saved_views = [
const toastSpy = jest.spyOn(toastService, 'showInfo')
jest.spyOn(settingsService, 'storeSettings').mockReturnValue(of(true))
component.onDrop({ previousIndex: 0, currentIndex: 1 } as CdkDragDrop<
- PaperlessSavedView[]
+ SavedView[]
>)
expect(settingsSpy).toHaveBeenCalledWith([
saved_views[2],
.spyOn(settingsService, 'storeSettings')
.mockReturnValue(throwError(() => new Error('unable to save')))
component.onDrop({ previousIndex: 0, currentIndex: 2 } as CdkDragDrop<
- PaperlessSavedView[]
+ SavedView[]
>)
expect(toastSpy).toHaveBeenCalled()
})
first,
catchError,
} from 'rxjs/operators'
-import { PaperlessDocument } from 'src/app/data/paperless-document'
+import { Document } from 'src/app/data/document'
import { OpenDocumentsService } from 'src/app/services/open-documents.service'
import { SavedViewService } from 'src/app/services/rest/saved-view.service'
import { SearchService } from 'src/app/services/rest/search.service'
import { SettingsService } from 'src/app/services/settings.service'
import { TasksService } from 'src/app/services/tasks.service'
import { ComponentCanDeactivate } from 'src/app/guards/dirty-doc.guard'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import { ToastService } from 'src/app/services/toast.service'
import { ComponentWithPermissions } from '../with-permissions/with-permissions.component'
import {
PermissionsService,
PermissionType,
} from 'src/app/services/permissions.service'
-import { PaperlessSavedView } from 'src/app/data/paperless-saved-view'
+import { SavedView } from 'src/app/data/saved-view'
import {
CdkDragStart,
CdkDragEnd,
this.closeMenu()
}
- get openDocuments(): PaperlessDocument[] {
+ get openDocuments(): Document[] {
return this.openDocumentsService.getOpenDocuments()
}
])
}
- closeDocument(d: PaperlessDocument) {
+ closeDocument(d: Document) {
this.openDocumentsService
.closeDocument(d)
.pipe(first())
this.settingsService.globalDropzoneEnabled = true
}
- onDrop(event: CdkDragDrop<PaperlessSavedView[]>) {
+ onDrop(event: CdkDragDrop<SavedView[]>) {
const sidebarViews = this.savedViewService.sidebarViews.concat([])
moveItemInArray(sidebarViews, event.previousIndex, event.currentIndex)
import { ToastService } from 'src/app/services/toast.service'
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
import { of } from 'rxjs'
-import {
- PaperlessCustomField,
- PaperlessCustomFieldDataType,
-} from 'src/app/data/paperless-custom-field'
+import { CustomField, CustomFieldDataType } from 'src/app/data/custom-field'
import { SelectComponent } from '../input/select/select.component'
import { NgSelectModule } from '@ng-select/ng-select'
import { FormsModule, ReactiveFormsModule } from '@angular/forms'
import { CustomFieldEditDialogComponent } from '../edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component'
import { By } from '@angular/platform-browser'
-const fields: PaperlessCustomField[] = [
+const fields: CustomField[] = [
{
id: 0,
name: 'Field 1',
- data_type: PaperlessCustomFieldDataType.Integer,
+ data_type: CustomFieldDataType.Integer,
},
{
id: 1,
name: 'Field 2',
- data_type: PaperlessCustomFieldDataType.String,
+ data_type: CustomFieldDataType.String,
},
]
} from '@angular/core'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { Subject, first, takeUntil } from 'rxjs'
-import { PaperlessCustomField } from 'src/app/data/paperless-custom-field'
-import { PaperlessCustomFieldInstance } from 'src/app/data/paperless-custom-field-instance'
+import { CustomField } from 'src/app/data/custom-field'
+import { CustomFieldInstance } from 'src/app/data/custom-field-instance'
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
import { ToastService } from 'src/app/services/toast.service'
import { CustomFieldEditDialogComponent } from '../edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component'
disabled: boolean = false
@Input()
- existingFields: PaperlessCustomFieldInstance[] = []
+ existingFields: CustomFieldInstance[] = []
@Output()
- added: EventEmitter<PaperlessCustomField> = new EventEmitter()
+ added: EventEmitter<CustomField> = new EventEmitter()
@Output()
- created: EventEmitter<PaperlessCustomField> = new EventEmitter()
+ created: EventEmitter<CustomField> = new EventEmitter()
- private customFields: PaperlessCustomField[] = []
- public unusedFields: PaperlessCustomField[]
+ private customFields: CustomField[] = []
+ public unusedFields: CustomField[]
public name: string
}
public getCustomFieldFromInstance(
- instance: PaperlessCustomFieldInstance
- ): PaperlessCustomField {
+ instance: CustomFieldInstance
+ ): CustomField {
return this.customFields.find((f) => f.id === instance.field)
}
import { first } from 'rxjs'
import {
DocumentSource,
- PaperlessConsumptionTemplate,
-} from 'src/app/data/paperless-consumption-template'
-import { PaperlessCorrespondent } from 'src/app/data/paperless-correspondent'
-import { PaperlessDocumentType } from 'src/app/data/paperless-document-type'
-import { PaperlessStoragePath } from 'src/app/data/paperless-storage-path'
+ ConsumptionTemplate,
+} from 'src/app/data/consumption-template'
+import { Correspondent } from 'src/app/data/correspondent'
+import { DocumentType } from 'src/app/data/document-type'
+import { StoragePath } from 'src/app/data/storage-path'
import { ConsumptionTemplateService } from 'src/app/services/rest/consumption-template.service'
import { CorrespondentService } from 'src/app/services/rest/correspondent.service'
import { DocumentTypeService } from 'src/app/services/rest/document-type.service'
import { SettingsService } from 'src/app/services/settings.service'
import { EditDialogComponent } from '../edit-dialog.component'
import { MailRuleService } from 'src/app/services/rest/mail-rule.service'
-import { PaperlessMailRule } from 'src/app/data/paperless-mail-rule'
+import { MailRule } from 'src/app/data/mail-rule'
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
-import { PaperlessCustomField } from 'src/app/data/paperless-custom-field'
+import { CustomField } from 'src/app/data/custom-field'
export const DOCUMENT_SOURCE_OPTIONS = [
{
templateUrl: './consumption-template-edit-dialog.component.html',
styleUrls: ['./consumption-template-edit-dialog.component.scss'],
})
-export class ConsumptionTemplateEditDialogComponent extends EditDialogComponent<PaperlessConsumptionTemplate> {
- templates: PaperlessConsumptionTemplate[]
- correspondents: PaperlessCorrespondent[]
- documentTypes: PaperlessDocumentType[]
- storagePaths: PaperlessStoragePath[]
- mailRules: PaperlessMailRule[]
- customFields: PaperlessCustomField[]
+export class ConsumptionTemplateEditDialogComponent extends EditDialogComponent<ConsumptionTemplate> {
+ templates: ConsumptionTemplate[]
+ correspondents: Correspondent[]
+ documentTypes: DocumentType[]
+ storagePaths: StoragePath[]
+ mailRules: MailRule[]
+ customFields: CustomField[]
constructor(
service: ConsumptionTemplateService,
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
import { EditDialogComponent } from 'src/app/components/common/edit-dialog/edit-dialog.component'
import { DEFAULT_MATCHING_ALGORITHM } from 'src/app/data/matching-model'
-import { PaperlessCorrespondent } from 'src/app/data/paperless-correspondent'
+import { Correspondent } from 'src/app/data/correspondent'
import { CorrespondentService } from 'src/app/services/rest/correspondent.service'
import { UserService } from 'src/app/services/rest/user.service'
import { SettingsService } from 'src/app/services/settings.service'
templateUrl: './correspondent-edit-dialog.component.html',
styleUrls: ['./correspondent-edit-dialog.component.scss'],
})
-export class CorrespondentEditDialogComponent extends EditDialogComponent<PaperlessCorrespondent> {
+export class CorrespondentEditDialogComponent extends EditDialogComponent<Correspondent> {
constructor(
service: CorrespondentService,
activeModal: NgbActiveModal,
import { Component, OnInit } from '@angular/core'
import { FormGroup, FormControl } from '@angular/forms'
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
-import {
- DATA_TYPE_LABELS,
- PaperlessCustomField,
-} from 'src/app/data/paperless-custom-field'
+import { DATA_TYPE_LABELS, CustomField } from 'src/app/data/custom-field'
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
import { UserService } from 'src/app/services/rest/user.service'
import { SettingsService } from 'src/app/services/settings.service'
styleUrls: ['./custom-field-edit-dialog.component.scss'],
})
export class CustomFieldEditDialogComponent
- extends EditDialogComponent<PaperlessCustomField>
+ extends EditDialogComponent<CustomField>
implements OnInit
{
constructor(
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
import { EditDialogComponent } from 'src/app/components/common/edit-dialog/edit-dialog.component'
import { DEFAULT_MATCHING_ALGORITHM } from 'src/app/data/matching-model'
-import { PaperlessDocumentType } from 'src/app/data/paperless-document-type'
+import { DocumentType } from 'src/app/data/document-type'
import { DocumentTypeService } from 'src/app/services/rest/document-type.service'
import { UserService } from 'src/app/services/rest/user.service'
import { SettingsService } from 'src/app/services/settings.service'
templateUrl: './document-type-edit-dialog.component.html',
styleUrls: ['./document-type-edit-dialog.component.scss'],
})
-export class DocumentTypeEditDialogComponent extends EditDialogComponent<PaperlessDocumentType> {
+export class DocumentTypeEditDialogComponent extends EditDialogComponent<DocumentType> {
constructor(
service: DocumentTypeService,
activeModal: NgbActiveModal,
MATCH_NONE,
MATCH_ALL,
} from 'src/app/data/matching-model'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { Tag } from 'src/app/data/tag'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import { TagService } from 'src/app/services/rest/tag.service'
import { UserService } from 'src/app/services/rest/user.service'
import { SettingsService } from 'src/app/services/settings.service'
</div>
`,
})
-class TestComponent extends EditDialogComponent<PaperlessTag> {
+class TestComponent extends EditDialogComponent<Tag> {
constructor(
service: TagService,
activeModal: NgbActiveModal,
} from 'src/app/data/matching-model'
import { ObjectWithId } from 'src/app/data/object-with-id'
import { ObjectWithPermissions } from 'src/app/data/object-with-permissions'
-import { PaperlessUser } from 'src/app/data/paperless-user'
+import { User } from 'src/app/data/user'
import { AbstractPaperlessService } from 'src/app/services/rest/abstract-paperless-service'
import { UserService } from 'src/app/services/rest/user.service'
import { PermissionsFormObject } from '../input/permissions/permissions-form/permissions-form.component'
import { SettingsService } from 'src/app/services/settings.service'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
export enum EditDialogMode {
CREATE = 0,
private settingsService: SettingsService
) {}
- users: PaperlessUser[]
+ users: User[]
@Input()
dialogMode: EditDialogMode = EditDialogMode.CREATE
import { FormControl, FormGroup } from '@angular/forms'
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
import { EditDialogComponent } from 'src/app/components/common/edit-dialog/edit-dialog.component'
-import { PaperlessGroup } from 'src/app/data/paperless-group'
+import { Group } from 'src/app/data/group'
import { GroupService } from 'src/app/services/rest/group.service'
import { UserService } from 'src/app/services/rest/user.service'
import { SettingsService } from 'src/app/services/settings.service'
templateUrl: './group-edit-dialog.component.html',
styleUrls: ['./group-edit-dialog.component.scss'],
})
-export class GroupEditDialogComponent extends EditDialogComponent<PaperlessGroup> {
+export class GroupEditDialogComponent extends EditDialogComponent<Group> {
constructor(
service: GroupService,
activeModal: NgbActiveModal,
import { FormsModule, ReactiveFormsModule } from '@angular/forms'
import { NgbActiveModal, NgbModule } from '@ng-bootstrap/ng-bootstrap'
import { NgSelectModule } from '@ng-select/ng-select'
-import { IMAPSecurity } from 'src/app/data/paperless-mail-account'
+import { IMAPSecurity } from 'src/app/data/mail-account'
import { IfOwnerDirective } from 'src/app/directives/if-owner.directive'
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
import { SettingsService } from 'src/app/services/settings.service'
import { FormControl, FormGroup } from '@angular/forms'
import { NgbActiveModal, NgbAlert } from '@ng-bootstrap/ng-bootstrap'
import { EditDialogComponent } from 'src/app/components/common/edit-dialog/edit-dialog.component'
-import {
- IMAPSecurity,
- PaperlessMailAccount,
-} from 'src/app/data/paperless-mail-account'
+import { IMAPSecurity, MailAccount } from 'src/app/data/mail-account'
import { MailAccountService } from 'src/app/services/rest/mail-account.service'
import { UserService } from 'src/app/services/rest/user.service'
import { SettingsService } from 'src/app/services/settings.service'
templateUrl: './mail-account-edit-dialog.component.html',
styleUrls: ['./mail-account-edit-dialog.component.scss'],
})
-export class MailAccountEditDialogComponent extends EditDialogComponent<PaperlessMailAccount> {
+export class MailAccountEditDialogComponent extends EditDialogComponent<MailAccount> {
testActive: boolean = false
testResult: string
alertTimeout
import {
MailMetadataCorrespondentOption,
MailAction,
-} from 'src/app/data/paperless-mail-rule'
+} from 'src/app/data/mail-rule'
import { IfOwnerDirective } from 'src/app/directives/if-owner.directive'
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
import { SafeHtmlPipe } from 'src/app/pipes/safehtml.pipe'
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
import { first } from 'rxjs'
import { EditDialogComponent } from 'src/app/components/common/edit-dialog/edit-dialog.component'
-import { PaperlessCorrespondent } from 'src/app/data/paperless-correspondent'
-import { PaperlessDocumentType } from 'src/app/data/paperless-document-type'
-import { PaperlessMailAccount } from 'src/app/data/paperless-mail-account'
+import { Correspondent } from 'src/app/data/correspondent'
+import { DocumentType } from 'src/app/data/document-type'
+import { MailAccount } from 'src/app/data/mail-account'
import {
MailAction,
MailFilterAttachmentType,
MailMetadataCorrespondentOption,
MailMetadataTitleOption,
- PaperlessMailRule,
+ MailRule,
MailRuleConsumptionScope,
-} from 'src/app/data/paperless-mail-rule'
+} from 'src/app/data/mail-rule'
import { CorrespondentService } from 'src/app/services/rest/correspondent.service'
import { DocumentTypeService } from 'src/app/services/rest/document-type.service'
import { MailAccountService } from 'src/app/services/rest/mail-account.service'
templateUrl: './mail-rule-edit-dialog.component.html',
styleUrls: ['./mail-rule-edit-dialog.component.scss'],
})
-export class MailRuleEditDialogComponent extends EditDialogComponent<PaperlessMailRule> {
- accounts: PaperlessMailAccount[]
- correspondents: PaperlessCorrespondent[]
- documentTypes: PaperlessDocumentType[]
+export class MailRuleEditDialogComponent extends EditDialogComponent<MailRule> {
+ accounts: MailAccount[]
+ correspondents: Correspondent[]
+ documentTypes: DocumentType[]
constructor(
service: MailRuleService,
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
import { EditDialogComponent } from 'src/app/components/common/edit-dialog/edit-dialog.component'
import { DEFAULT_MATCHING_ALGORITHM } from 'src/app/data/matching-model'
-import { PaperlessStoragePath } from 'src/app/data/paperless-storage-path'
+import { StoragePath } from 'src/app/data/storage-path'
import { StoragePathService } from 'src/app/services/rest/storage-path.service'
import { UserService } from 'src/app/services/rest/user.service'
import { SettingsService } from 'src/app/services/settings.service'
templateUrl: './storage-path-edit-dialog.component.html',
styleUrls: ['./storage-path-edit-dialog.component.scss'],
})
-export class StoragePathEditDialogComponent extends EditDialogComponent<PaperlessStoragePath> {
+export class StoragePathEditDialogComponent extends EditDialogComponent<StoragePath> {
constructor(
service: StoragePathService,
activeModal: NgbActiveModal,
import { FormControl, FormGroup } from '@angular/forms'
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
import { EditDialogComponent } from 'src/app/components/common/edit-dialog/edit-dialog.component'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Tag } from 'src/app/data/tag'
import { TagService } from 'src/app/services/rest/tag.service'
import { randomColor } from 'src/app/utils/color'
import { DEFAULT_MATCHING_ALGORITHM } from 'src/app/data/matching-model'
templateUrl: './tag-edit-dialog.component.html',
styleUrls: ['./tag-edit-dialog.component.scss'],
})
-export class TagEditDialogComponent extends EditDialogComponent<PaperlessTag> {
+export class TagEditDialogComponent extends EditDialogComponent<Tag> {
constructor(
service: TagService,
activeModal: NgbActiveModal,
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
import { first } from 'rxjs'
import { EditDialogComponent } from 'src/app/components/common/edit-dialog/edit-dialog.component'
-import { PaperlessGroup } from 'src/app/data/paperless-group'
-import { PaperlessUser } from 'src/app/data/paperless-user'
+import { Group } from 'src/app/data/group'
+import { User } from 'src/app/data/user'
import { GroupService } from 'src/app/services/rest/group.service'
import { UserService } from 'src/app/services/rest/user.service'
import { SettingsService } from 'src/app/services/settings.service'
styleUrls: ['./user-edit-dialog.component.scss'],
})
export class UserEditDialogComponent
- extends EditDialogComponent<PaperlessUser>
+ extends EditDialogComponent<User>
implements OnInit
{
- groups: PaperlessGroup[]
+ groups: Group[]
passwordIsSet: boolean = false
constructor(
} from './filterable-dropdown.component'
import { FilterPipe } from 'src/app/pipes/filter.pipe'
import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Tag } from 'src/app/data/tag'
import {
DEFAULT_MATCHING_ALGORITHM,
MATCH_ALL,
import { FormsModule, ReactiveFormsModule } from '@angular/forms'
import { ClearableBadgeComponent } from '../clearable-badge/clearable-badge.component'
-const items: PaperlessTag[] = [
+const items: Tag[] = [
{
id: 1,
name: 'Tag1',
ToggleableItemState,
} from './toggleable-dropdown-button.component'
import { TagComponent } from '../../tag/tag.component'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Tag } from 'src/app/data/tag'
describe('ToggleableDropdownButtonComponent', () => {
let component: ToggleableDropdownButtonComponent
id: 1,
name: 'Test Tag',
is_inbox_tag: false,
- } as PaperlessTag
+ } as Tag
fixture.detectChanges()
expect(component.isTag).toBeTruthy()
catchError,
} from 'rxjs'
import { FILTER_TITLE } from 'src/app/data/filter-rule-type'
-import { PaperlessDocument } from 'src/app/data/paperless-document'
+import { Document } from 'src/app/data/document'
import { DocumentService } from 'src/app/services/rest/document.service'
import { AbstractInputComponent } from '../abstract-input'
implements OnInit, OnDestroy
{
documentsInput$ = new Subject<string>()
- foundDocuments$: Observable<PaperlessDocument[]>
+ foundDocuments$: Observable<Document[]>
loading = false
- selectedDocuments: PaperlessDocument[] = []
+ selectedDocuments: Document[] = []
private unsubscribeNotifier: Subject<any> = new Subject()
)
}
- unselect(document: PaperlessDocument): void {
+ unselect(document: Document): void {
this.selectedDocuments = this.selectedDocuments.filter(
(d) => d.id !== document.id
)
this.onChange(this.selectedDocuments.map((d) => d.id))
}
- compareDocuments(
- document: PaperlessDocument,
- selectedDocument: PaperlessDocument
- ) {
+ compareDocuments(document: Document, selectedDocument: Document) {
return document.id === selectedDocument.id
}
- trackByFn(item: PaperlessDocument) {
+ trackByFn(item: Document) {
return item.id
}
import { Component, forwardRef, Input, OnInit } from '@angular/core'
import { FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms'
-import { PaperlessUser } from 'src/app/data/paperless-user'
+import { User } from 'src/app/data/user'
import { AbstractInputComponent } from '../../abstract-input'
export interface PermissionsFormObject {
implements OnInit
{
@Input()
- users: PaperlessUser[]
+ users: User[]
@Input()
accordion: boolean = false
import { Component, forwardRef, Input, OnInit } from '@angular/core'
import { NG_VALUE_ACCESSOR } from '@angular/forms'
import { first } from 'rxjs/operators'
-import { PaperlessGroup } from 'src/app/data/paperless-group'
+import { Group } from 'src/app/data/group'
import { GroupService } from 'src/app/services/rest/group.service'
import { AbstractInputComponent } from '../../abstract-input'
templateUrl: './permissions-group.component.html',
styleUrls: ['./permissions-group.component.scss'],
})
-export class PermissionsGroupComponent extends AbstractInputComponent<PaperlessGroup> {
- groups: PaperlessGroup[]
+export class PermissionsGroupComponent extends AbstractInputComponent<Group> {
+ groups: Group[]
constructor(groupService: GroupService) {
super()
import { Component, forwardRef, Input, OnInit } from '@angular/core'
import { NG_VALUE_ACCESSOR } from '@angular/forms'
import { first } from 'rxjs/operators'
-import { PaperlessUser } from 'src/app/data/paperless-user'
+import { User } from 'src/app/data/user'
import { UserService } from 'src/app/services/rest/user.service'
import { SettingsService } from 'src/app/services/settings.service'
import { AbstractInputComponent } from '../../abstract-input'
templateUrl: './permissions-user.component.html',
styleUrls: ['./permissions-user.component.scss'],
})
-export class PermissionsUserComponent extends AbstractInputComponent<
- PaperlessUser[]
-> {
- users: PaperlessUser[]
+export class PermissionsUserComponent extends AbstractInputComponent<User[]> {
+ users: User[]
constructor(userService: UserService, settings: SettingsService) {
super()
NG_VALUE_ACCESSOR,
} from '@angular/forms'
import { SelectComponent } from './select.component'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Tag } from 'src/app/data/tag'
import {
DEFAULT_MATCHING_ALGORITHM,
MATCH_ALL,
import { NgSelectModule } from '@ng-select/ng-select'
import { RouterTestingModule } from '@angular/router/testing'
-const items: PaperlessTag[] = [
+const items: Tag[] = [
{
id: 1,
name: 'Tag1',
NG_VALUE_ACCESSOR,
} from '@angular/forms'
import { TagsComponent } from './tags.component'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Tag } from 'src/app/data/tag'
import {
DEFAULT_MATCHING_ALGORITHM,
MATCH_ALL,
import { SelectComponent } from '../select/select.component'
import { SettingsService } from 'src/app/services/settings.service'
-const tags: PaperlessTag[] = [
+const tags: Tag[] = [
{
id: 1,
name: 'Tag1',
} from '@angular/core'
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Tag } from 'src/app/data/tag'
import { TagEditDialogComponent } from '../../edit-dialog/tag-edit-dialog/tag-edit-dialog.component'
import { TagService } from 'src/app/services/rest/tag.service'
import { EditDialogMode } from '../../edit-dialog/edit-dialog.component'
horizontal: boolean = false
@Output()
- filterDocuments = new EventEmitter<PaperlessTag[]>()
+ filterDocuments = new EventEmitter<Tag[]>()
@ViewChild('tagSelect') select: NgSelectComponent
value: number[] = []
- tags: PaperlessTag[] = []
+ tags: Tag[] = []
public createTagRef: (name) => void
import { FormControl, FormGroup } from '@angular/forms'
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
import { ObjectWithPermissions } from 'src/app/data/object-with-permissions'
-import { PaperlessUser } from 'src/app/data/paperless-user'
+import { User } from 'src/app/data/user'
import { UserService } from 'src/app/services/rest/user.service'
@Component({
styleUrls: ['./permissions-dialog.component.scss'],
})
export class PermissionsDialogComponent {
- users: PaperlessUser[]
+ users: User[]
private o: ObjectWithPermissions = undefined
constructor(
import { Component, EventEmitter, Input, Output } from '@angular/core'
import { first } from 'rxjs'
-import { PaperlessUser } from 'src/app/data/paperless-user'
+import { User } from 'src/app/data/user'
import {
PermissionAction,
PermissionType,
@Output()
ownerFilterSet = new EventEmitter<PermissionsSelectionModel>()
- users: PaperlessUser[]
+ users: User[]
hideUnowned: boolean
import { By } from '@angular/platform-browser'
import { SafeUrlPipe } from 'src/app/pipes/safeurl.pipe'
import { SettingsService } from 'src/app/services/settings.service'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import { HttpClientTestingModule } from '@angular/common/http/testing'
import { DocumentService } from 'src/app/services/rest/document.service'
import { Component, Input } from '@angular/core'
-import { PaperlessDocument } from 'src/app/data/paperless-document'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { Document } from 'src/app/data/document'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import { DocumentService } from 'src/app/services/rest/document.service'
import { SettingsService } from 'src/app/services/settings.service'
})
export class PreviewPopupComponent {
@Input()
- document: PaperlessDocument
+ document: Document
error = false
} from '@angular/core/testing'
import { FormsModule, ReactiveFormsModule } from '@angular/forms'
import { of, throwError } from 'rxjs'
-import {
- PaperlessFileVersion,
- PaperlessShareLink,
-} from 'src/app/data/paperless-share-link'
+import { FileVersion, ShareLink } from 'src/app/data/share-link'
import { ShareLinkService } from 'src/app/services/rest/share-link.service'
import { ToastService } from 'src/app/services/toast.service'
import { environment } from 'src/environments/environment'
slug: '1234slug',
created: now.toISOString(),
document: 99,
- file_version: PaperlessFileVersion.Archive,
+ file_version: FileVersion.Archive,
expiration: expiration7days.toISOString(),
},
{
slug: '1234slug',
created: now.toISOString(),
document: 99,
- file_version: PaperlessFileVersion.Original,
+ file_version: FileVersion.Original,
expiration: null,
},
])
deleteSpy.mockReturnValue(of(true))
const refreshSpy = jest.spyOn(component, 'refresh')
- component.delete({ id: 12 } as PaperlessShareLink)
+ component.delete({ id: 12 } as ShareLink)
fixture.detectChanges()
expect(deleteSpy).toHaveBeenCalledWith({ id: 12 })
expect(refreshSpy).toHaveBeenCalled()
expect(
component.getDaysRemaining({
expiration: expiration7days.toISOString(),
- } as PaperlessShareLink)
+ } as ShareLink)
).toEqual('7 days')
expect(
component.getDaysRemaining({
expiration: expiration1day.toISOString(),
- } as PaperlessShareLink)
+ } as ShareLink)
).toEqual('1 day')
})
// coverage
it('should support share', () => {
- const link = { slug: '12345slug' } as PaperlessShareLink
+ const link = { slug: '12345slug' } as ShareLink
if (!('share' in navigator))
Object.defineProperty(navigator, 'share', { value: (obj: any) => {} })
// const navigatorSpy = jest.spyOn(navigator, 'share')
import { Component, Input, OnInit } from '@angular/core'
import { first } from 'rxjs'
-import {
- PaperlessShareLink,
- PaperlessFileVersion,
-} from 'src/app/data/paperless-share-link'
+import { ShareLink, FileVersion } from 'src/app/data/share-link'
import { ShareLinkService } from 'src/app/services/rest/share-link.service'
import { ToastService } from 'src/app/services/toast.service'
import { environment } from 'src/environments/environment'
@Input()
hasArchiveVersion: boolean = true
- shareLinks: PaperlessShareLink[]
+ shareLinks: ShareLink[]
loading: boolean = false
})
}
- getShareUrl(link: PaperlessShareLink): string {
+ getShareUrl(link: ShareLink): string {
const apiURL = new URL(environment.apiBaseUrl)
return `${apiURL.origin}${apiURL.pathname.replace(/\/api\/$/, '/share/')}${
link.slug
}`
}
- getDaysRemaining(link: PaperlessShareLink): string {
+ getDaysRemaining(link: ShareLink): string {
const days: number = Math.round(
(Date.parse(link.expiration) - Date.now()) / (1000 * 60 * 60 * 24)
)
return days === 1 ? $localize`1 day` : $localize`${days} days`
}
- copy(link: PaperlessShareLink) {
+ copy(link: ShareLink) {
const success = this.clipboard.copy(this.getShareUrl(link))
if (success) {
this.copied = link.id
}
}
- canShare(link: PaperlessShareLink): boolean {
+ canShare(link: ShareLink): boolean {
return (
navigator?.canShare && navigator.canShare({ url: this.getShareUrl(link) })
)
}
- share(link: PaperlessShareLink) {
+ share(link: ShareLink) {
navigator.share({ url: this.getShareUrl(link) })
}
- delete(link: PaperlessShareLink) {
+ delete(link: ShareLink) {
this.shareLinkService.delete(link).subscribe({
next: () => {
this.refresh()
this.shareLinkService
.createLinkForDocument(
this._documentId,
- this.useArchiveVersion
- ? PaperlessFileVersion.Archive
- : PaperlessFileVersion.Original,
+ this.useArchiveVersion ? FileVersion.Archive : FileVersion.Original,
expiration
)
.subscribe({
import { ComponentFixture, TestBed } from '@angular/core/testing'
import { TagComponent } from './tag.component'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Tag } from 'src/app/data/tag'
import { By } from '@angular/platform-browser'
-const tag: PaperlessTag = {
+const tag: Tag = {
id: 1,
color: '#ff0000',
name: 'Tag1',
import { Component, Input } from '@angular/core'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Tag } from 'src/app/data/tag'
@Component({
selector: 'pngx-tag',
constructor() {}
@Input()
- tag: PaperlessTag
+ tag: Tag
@Input()
linkTitle: string = ''
import { LogoComponent } from '../common/logo/logo.component'
import { of, throwError } from 'rxjs'
import { ToastService } from 'src/app/services/toast.service'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import { CdkDragDrop, DragDropModule } from '@angular/cdk/drag-drop'
-import { PaperlessSavedView } from 'src/app/data/paperless-saved-view'
+import { SavedView } from 'src/app/data/saved-view'
const saved_views = [
{
const toastSpy = jest.spyOn(toastService, 'showInfo')
jest.spyOn(settingsService, 'storeSettings').mockReturnValue(of(true))
component.onDrop({ previousIndex: 0, currentIndex: 1 } as CdkDragDrop<
- PaperlessSavedView[]
+ SavedView[]
>)
expect(settingsSpy).toHaveBeenCalledWith([
saved_views[2],
.spyOn(settingsService, 'storeSettings')
.mockReturnValue(throwError(() => new Error('unable to save')))
component.onDrop({ previousIndex: 0, currentIndex: 2 } as CdkDragDrop<
- PaperlessSavedView[]
+ SavedView[]
>)
expect(toastSpy).toHaveBeenCalled()
})
import { SettingsService } from 'src/app/services/settings.service'
import { ComponentWithPermissions } from '../with-permissions/with-permissions.component'
import { TourService } from 'ngx-ui-tour-ng-bootstrap'
-import { PaperlessSavedView } from 'src/app/data/paperless-saved-view'
+import { SavedView } from 'src/app/data/saved-view'
import { ToastService } from 'src/app/services/toast.service'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import {
CdkDragDrop,
CdkDragEnd,
styleUrls: ['./dashboard.component.scss'],
})
export class DashboardComponent extends ComponentWithPermissions {
- public dashboardViews: PaperlessSavedView[] = []
+ public dashboardViews: SavedView[] = []
constructor(
public settingsService: SettingsService,
public savedViewService: SavedViewService,
this.settingsService.globalDropzoneEnabled = true
}
- onDrop(event: CdkDragDrop<PaperlessSavedView[]>) {
+ onDrop(event: CdkDragDrop<SavedView[]>) {
moveItemInArray(
this.dashboardViews,
event.previousIndex,
import { of, Subject } from 'rxjs'
import { routes } from 'src/app/app-routing.module'
import { FILTER_HAS_TAGS_ALL } from 'src/app/data/filter-rule-type'
-import { PaperlessSavedView } from 'src/app/data/paperless-saved-view'
+import { SavedView } from 'src/app/data/saved-view'
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
import { PermissionsGuard } from 'src/app/guards/permissions.guard'
import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe'
import { DragDropModule } from '@angular/cdk/drag-drop'
import { PreviewPopupComponent } from 'src/app/components/common/preview-popup/preview-popup.component'
-const savedView: PaperlessSavedView = {
+const savedView: SavedView = {
id: 1,
name: 'Saved View 1',
sort_field: 'added',
} from '@angular/core'
import { Params, Router } from '@angular/router'
import { Subject, takeUntil } from 'rxjs'
-import { PaperlessDocument } from 'src/app/data/paperless-document'
-import { PaperlessSavedView } from 'src/app/data/paperless-saved-view'
+import { Document } from 'src/app/data/document'
+import { SavedView } from 'src/app/data/saved-view'
import { ConsumerStatusService } from 'src/app/services/consumer-status.service'
import { DocumentService } from 'src/app/services/rest/document.service'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Tag } from 'src/app/data/tag'
import {
FILTER_CORRESPONDENT,
FILTER_HAS_TAGS_ALL,
}
@Input()
- savedView: PaperlessSavedView
+ savedView: SavedView
- documents: PaperlessDocument[] = []
+ documents: Document[] = []
unsubscribeNotifier: Subject<any> = new Subject()
}
}
- clickTag(tag: PaperlessTag, event: MouseEvent) {
+ clickTag(tag: Tag, event: MouseEvent) {
event.preventDefault()
event.stopImmediatePropagation()
])
}
- getPreviewUrl(document: PaperlessDocument): string {
+ getPreviewUrl(document: Document): string {
return this.documentService.getPreviewUrl(document.id)
}
- getDownloadUrl(document: PaperlessDocument): string {
+ getDownloadUrl(document: Document): string {
return this.documentService.getDownloadUrl(document.id)
}
- mouseEnterPreviewButton(doc: PaperlessDocument) {
+ mouseEnterPreviewButton(doc: Document) {
const newPopover = this.popovers.get(this.documents.indexOf(doc))
if (this.popover !== newPopover && this.popover?.isOpen())
this.popover.close()
import { Component, QueryList, ViewChildren } from '@angular/core'
import { NgbAlert } from '@ng-bootstrap/ng-bootstrap'
import { ComponentWithPermissions } from 'src/app/components/with-permissions/with-permissions.component'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import {
ConsumerStatusService,
FileStatus,
FILTER_CREATED_AFTER,
FILTER_CREATED_BEFORE,
} from 'src/app/data/filter-rule-type'
-import { PaperlessCorrespondent } from 'src/app/data/paperless-correspondent'
-import { PaperlessDocument } from 'src/app/data/paperless-document'
-import { PaperlessDocumentType } from 'src/app/data/paperless-document-type'
-import { PaperlessStoragePath } from 'src/app/data/paperless-storage-path'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Correspondent } from 'src/app/data/correspondent'
+import { Document } from 'src/app/data/document'
+import { DocumentType } from 'src/app/data/document-type'
+import { StoragePath } from 'src/app/data/storage-path'
+import { Tag } from 'src/app/data/tag'
import { IfOwnerDirective } from 'src/app/directives/if-owner.directive'
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
import { PermissionsGuard } from 'src/app/guards/permissions.guard'
import { DocumentDetailComponent } from './document-detail.component'
import { ShareLinksDropdownComponent } from '../common/share-links-dropdown/share-links-dropdown.component'
import { CustomFieldsDropdownComponent } from '../common/custom-fields-dropdown/custom-fields-dropdown.component'
-import { PaperlessCustomFieldDataType } from 'src/app/data/paperless-custom-field'
+import { CustomFieldDataType } from 'src/app/data/custom-field'
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
import { PdfViewerComponent } from '../common/pdf-viewer/pdf-viewer.component'
-const doc: PaperlessDocument = {
+const doc: Document = {
id: 3,
title: 'Doc 3',
correspondent: 11,
{
id: 0,
name: 'Field 1',
- data_type: PaperlessCustomFieldDataType.String,
+ data_type: CustomFieldDataType.String,
created: new Date(),
},
{
id: 1,
name: 'Custom Field 2',
- data_type: PaperlessCustomFieldDataType.Integer,
+ data_type: CustomFieldDataType.Integer,
created: new Date(),
},
]
id: 22,
name: 'Correspondent22',
last_correspondence: new Date().toISOString(),
- } as PaperlessCorrespondent
+ } as Correspondent
const qfSpy = jest.spyOn(documentListViewService, 'quickFilter')
component.filterDocuments([object])
expect(qfSpy).toHaveBeenCalledWith([
it('should support quick filtering by doc type', () => {
initNormally()
- const object = { id: 22, name: 'DocumentType22' } as PaperlessDocumentType
+ const object = { id: 22, name: 'DocumentType22' } as DocumentType
const qfSpy = jest.spyOn(documentListViewService, 'quickFilter')
component.filterDocuments([object])
expect(qfSpy).toHaveBeenCalledWith([
id: 22,
name: 'StoragePath22',
path: '/foo/bar/',
- } as PaperlessStoragePath
+ } as StoragePath
const qfSpy = jest.spyOn(documentListViewService, 'quickFilter')
component.filterDocuments([object])
expect(qfSpy).toHaveBeenCalledWith([
is_inbox_tag: true,
color: '#ff0000',
text_color: '#000000',
- } as PaperlessTag
+ } as Tag
const object2 = {
id: 23,
name: 'Tag22',
is_inbox_tag: true,
color: '#ff0000',
text_color: '#000000',
- } as PaperlessTag
+ } as Tag
const qfSpy = jest.spyOn(documentListViewService, 'quickFilter')
component.filterDocuments([object1, object2])
expect(qfSpy).toHaveBeenCalledWith([
NgbNav,
NgbNavChangeEvent,
} from '@ng-bootstrap/ng-bootstrap'
-import { PaperlessCorrespondent } from 'src/app/data/paperless-correspondent'
-import { PaperlessDocument } from 'src/app/data/paperless-document'
-import { PaperlessDocumentMetadata } from 'src/app/data/paperless-document-metadata'
-import { PaperlessDocumentType } from 'src/app/data/paperless-document-type'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Correspondent } from 'src/app/data/correspondent'
+import { Document } from 'src/app/data/document'
+import { DocumentMetadata } from 'src/app/data/document-metadata'
+import { DocumentType } from 'src/app/data/document-type'
+import { Tag } from 'src/app/data/tag'
import { DocumentTitlePipe } from 'src/app/pipes/document-title.pipe'
import { DocumentListViewService } from 'src/app/services/document-list-view.service'
import { OpenDocumentsService } from 'src/app/services/open-documents.service'
debounceTime,
distinctUntilChanged,
} from 'rxjs/operators'
-import { PaperlessDocumentSuggestions } from 'src/app/data/paperless-document-suggestions'
+import { DocumentSuggestions } from 'src/app/data/document-suggestions'
import {
FILTER_CORRESPONDENT,
FILTER_CREATED_AFTER,
FILTER_STORAGE_PATH,
} from 'src/app/data/filter-rule-type'
import { StoragePathService } from 'src/app/services/rest/storage-path.service'
-import { PaperlessStoragePath } from 'src/app/data/paperless-storage-path'
+import { StoragePath } from 'src/app/data/storage-path'
import { StoragePathEditDialogComponent } from '../common/edit-dialog/storage-path-edit-dialog/storage-path-edit-dialog.component'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import {
PermissionAction,
PermissionsService,
PermissionType,
} from 'src/app/services/permissions.service'
-import { PaperlessUser } from 'src/app/data/paperless-user'
+import { User } from 'src/app/data/user'
import { UserService } from 'src/app/services/rest/user.service'
-import { PaperlessDocumentNote } from 'src/app/data/paperless-document-note'
+import { DocumentNote } from 'src/app/data/document-note'
import { HttpClient } from '@angular/common/http'
import { ComponentWithPermissions } from '../with-permissions/with-permissions.component'
import { EditDialogMode } from '../common/edit-dialog/edit-dialog.component'
import { ObjectWithId } from 'src/app/data/object-with-id'
import { FilterRule } from 'src/app/data/filter-rule'
import { ISODateAdapter } from 'src/app/utils/ngb-iso-date-adapter'
-import {
- PaperlessCustomField,
- PaperlessCustomFieldDataType,
-} from 'src/app/data/paperless-custom-field'
-import { PaperlessCustomFieldInstance } from 'src/app/data/paperless-custom-field-instance'
+import { CustomField, CustomFieldDataType } from 'src/app/data/custom-field'
+import { CustomFieldInstance } from 'src/app/data/custom-field-instance'
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
import { PDFDocumentProxy } from '../common/pdf-viewer/typings'
networkActive = false
documentId: number
- document: PaperlessDocument
- metadata: PaperlessDocumentMetadata
- suggestions: PaperlessDocumentSuggestions
- users: PaperlessUser[]
+ document: Document
+ metadata: DocumentMetadata
+ suggestions: DocumentSuggestions
+ users: User[]
title: string
titleSubject: Subject<string> = new Subject()
downloadUrl: string
downloadOriginalUrl: string
- correspondents: PaperlessCorrespondent[]
- documentTypes: PaperlessDocumentType[]
- storagePaths: PaperlessStoragePath[]
+ correspondents: Correspondent[]
+ documentTypes: DocumentType[]
+ storagePaths: StoragePath[]
documentForm: FormGroup = new FormGroup({
title: new FormControl(''),
ogDate: Date
- customFields: PaperlessCustomField[]
- public readonly PaperlessCustomFieldDataType = PaperlessCustomFieldDataType
+ customFields: CustomField[]
+ public readonly PaperlessCustomFieldDataType = CustomFieldDataType
@ViewChild('nav') nav: NgbNav
@ViewChild('pdfPreview') set pdfPreview(element) {
])
}
- updateComponent(doc: PaperlessDocument) {
+ updateComponent(doc: Document) {
this.document = doc
this.requiresPassword = false
// this.customFields = doc.custom_fields.concat([])
)
}
- notesUpdated(notes: PaperlessDocumentNote[]) {
+ notesUpdated(notes: DocumentNote[]) {
this.document.notes = notes
this.openDocumentService.refreshDocument(this.documentId)
}
get userIsOwner(): boolean {
- let doc: PaperlessDocument = Object.assign({}, this.document)
+ let doc: Document = Object.assign({}, this.document)
// dont disable while editing
if (this.document && this.store?.value.permissions_form?.owner) {
doc.owner = this.store?.value.permissions_form?.owner
}
get userCanEdit(): boolean {
- let doc: PaperlessDocument = Object.assign({}, this.document)
+ let doc: Document = Object.assign({}, this.document)
// dont disable while editing
if (this.document && this.store?.value.permissions_form?.owner) {
doc.owner = this.store?.value.permissions_form?.owner
// Correspondent
return {
rule_type: FILTER_CORRESPONDENT,
- value: (i as PaperlessCorrespondent).id.toString(),
+ value: (i as Correspondent).id.toString(),
}
} else if (i.hasOwnProperty('path')) {
// Storage Path
return {
rule_type: FILTER_STORAGE_PATH,
- value: (i as PaperlessStoragePath).id.toString(),
+ value: (i as StoragePath).id.toString(),
}
} else if (i.hasOwnProperty('is_inbox_tag')) {
// Tag
return {
rule_type: FILTER_HAS_TAGS_ALL,
- value: (i as PaperlessTag).id.toString(),
+ value: (i as Tag).id.toString(),
}
} else {
// Document Type, has no specific props
return {
rule_type: FILTER_DOCUMENT_TYPE,
- value: (i as PaperlessDocumentType).id.toString(),
+ value: (i as DocumentType).id.toString(),
}
}
})
}
public getCustomFieldFromInstance(
- instance: PaperlessCustomFieldInstance
- ): PaperlessCustomField {
+ instance: CustomFieldInstance
+ ): CustomField {
return this.customFields?.find((f) => f.id === instance.field)
}
})
}
- public addField(field: PaperlessCustomField) {
+ public addField(field: CustomField) {
this.document.custom_fields.push({
field: field.id,
value: null,
this.updateFormForCustomFields(true)
}
- public removeField(fieldInstance: PaperlessCustomFieldInstance) {
+ public removeField(fieldInstance: CustomFieldInstance) {
this.document.custom_fields.splice(
this.document.custom_fields.indexOf(fieldInstance),
1
import { Component, OnDestroy, OnInit } from '@angular/core'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
-import { PaperlessCorrespondent } from 'src/app/data/paperless-correspondent'
-import { PaperlessDocumentType } from 'src/app/data/paperless-document-type'
+import { Tag } from 'src/app/data/tag'
+import { Correspondent } from 'src/app/data/correspondent'
+import { DocumentType } from 'src/app/data/document-type'
import { TagService } from 'src/app/services/rest/tag.service'
import { CorrespondentService } from 'src/app/services/rest/correspondent.service'
import { DocumentTypeService } from 'src/app/services/rest/document-type.service'
import { ToastService } from 'src/app/services/toast.service'
import { saveAs } from 'file-saver'
import { StoragePathService } from 'src/app/services/rest/storage-path.service'
-import { PaperlessStoragePath } from 'src/app/data/paperless-storage-path'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { StoragePath } from 'src/app/data/storage-path'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component'
import { PermissionsDialogComponent } from '../../common/permissions-dialog/permissions-dialog.component'
import {
extends ComponentWithPermissions
implements OnInit, OnDestroy
{
- tags: PaperlessTag[]
- correspondents: PaperlessCorrespondent[]
- documentTypes: PaperlessDocumentType[]
- storagePaths: PaperlessStoragePath[]
+ tags: Tag[]
+ correspondents: Correspondent[]
+ documentTypes: DocumentType[]
+ storagePaths: StoragePath[]
tagSelectionModel = new FilterableDropdownSelectionModel()
correspondentSelectionModel = new FilterableDropdownSelectionModel()
Output,
ViewChild,
} from '@angular/core'
-import { PaperlessDocument } from 'src/app/data/paperless-document'
+import { Document } from 'src/app/data/document'
import { DocumentService } from 'src/app/services/rest/document.service'
import { SettingsService } from 'src/app/services/settings.service'
import { NgbPopover } from '@ng-bootstrap/ng-bootstrap'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component'
@Component({
}
@Input()
- document: PaperlessDocument
+ document: Document
@Output()
dblClickDocument = new EventEmitter()
import { of } from 'rxjs'
import { By } from '@angular/platform-browser'
import { TagComponent } from '../../common/tag/tag.component'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Tag } from 'src/app/data/tag'
import { IsNumberPipe } from 'src/app/pipes/is-number.pipe'
import { PreviewPopupComponent } from '../../common/preview-popup/preview-popup.component'
fixture.debugElement.queryAll(By.directive(TagComponent))
).toHaveLength(5)
component.document.tags = [1, 2]
- component.document.tags$ = of([
- { id: 1 } as PaperlessTag,
- { id: 2 } as PaperlessTag,
- ])
+ component.document.tags$ = of([{ id: 1 } as Tag, { id: 2 } as Tag])
fixture.detectChanges()
expect(
fixture.debugElement.queryAll(By.directive(TagComponent))
ViewChild,
} from '@angular/core'
import { map } from 'rxjs/operators'
-import { PaperlessDocument } from 'src/app/data/paperless-document'
+import { Document } from 'src/app/data/document'
import { DocumentService } from 'src/app/services/rest/document.service'
import { SettingsService } from 'src/app/services/settings.service'
import { NgbPopover } from '@ng-bootstrap/ng-bootstrap'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component'
@Component({
toggleSelected = new EventEmitter()
@Input()
- document: PaperlessDocument
+ document: Document
@Output()
dblClickDocument = new EventEmitter()
import { Subject, of, throwError } from 'rxjs'
import { SavedViewService } from 'src/app/services/rest/saved-view.service'
import { ActivatedRoute, Router, convertToParamMap } from '@angular/router'
-import { PaperlessSavedView } from 'src/app/data/paperless-saved-view'
+import { SavedView } from 'src/app/data/saved-view'
import {
FILTER_FULLTEXT_MORELIKE,
FILTER_FULLTEXT_QUERY,
import { DocumentCardLargeComponent } from './document-card-large/document-card-large.component'
import { DocumentTitlePipe } from 'src/app/pipes/document-title.pipe'
import { UsernamePipe } from 'src/app/pipes/username.pipe'
-import { PaperlessDocument } from 'src/app/data/paperless-document'
+import { Document } from 'src/app/data/document'
import {
DOCUMENT_SORT_FIELDS,
DOCUMENT_SORT_FIELDS_FULLTEXT,
import { HttpErrorResponse } from '@angular/common/http'
import { PermissionsGuard } from 'src/app/guards/permissions.guard'
import { SettingsService } from 'src/app/services/settings.service'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import { IsNumberPipe } from 'src/app/pipes/is-number.pipe'
-const docs: PaperlessDocument[] = [
+const docs: Document[] = [
{
id: 1,
title: 'Doc1',
})
it('should load saved view from URL', () => {
- const view: PaperlessSavedView = {
+ const view: SavedView = {
id: 10,
sort_field: 'added',
sort_reverse: true,
})
it('should load saved view from query params', () => {
- const view: PaperlessSavedView = {
+ const view: SavedView = {
id: 10,
sort_field: 'added',
sort_reverse: true,
})
it('should support saving an edited view', () => {
- const view: PaperlessSavedView = {
+ const view: SavedView = {
id: 10,
name: 'Saved View 10',
sort_field: 'added',
})
it('should support edited view saving as', () => {
- const view: PaperlessSavedView = {
+ const view: SavedView = {
id: 10,
name: 'Saved View 10',
sort_field: 'added',
})
it('should handle error on edited view saving as', () => {
- const view: PaperlessSavedView = {
+ const view: SavedView = {
id: 10,
name: 'Saved View 10',
sort_field: 'added',
isFullTextFilterRule,
} from 'src/app/utils/filter-rules'
import { FILTER_FULLTEXT_MORELIKE } from 'src/app/data/filter-rule-type'
-import { PaperlessDocument } from 'src/app/data/paperless-document'
-import { PaperlessSavedView } from 'src/app/data/paperless-saved-view'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { Document } from 'src/app/data/document'
+import { SavedView } from 'src/app/data/saved-view'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
import {
SortableDirective,
SortEvent,
displayMode = 'smallCards' // largeCards, smallCards, details
unmodifiedFilterRules: FilterRule[] = []
- private unmodifiedSavedView: PaperlessSavedView
+ private unmodifiedSavedView: SavedView
private unsubscribeNotifier: Subject<any> = new Subject()
saveViewConfig() {
if (this.list.activeSavedViewId != null) {
- let savedView: PaperlessSavedView = {
+ let savedView: SavedView = {
id: this.list.activeSavedViewId,
filter_rules: this.list.filterRules,
sort_field: this.list.sortField,
modal.componentInstance.defaultName = this.filterEditor.generateFilterName()
modal.componentInstance.saveClicked.pipe(first()).subscribe((formValue) => {
modal.componentInstance.buttonsEnabled = false
- let savedView: PaperlessSavedView = {
+ let savedView: SavedView = {
name: formValue.name,
show_on_dashboard: formValue.showOnDashboard,
show_in_sidebar: formValue.showInSideBar,
})
}
- openDocumentDetail(document: PaperlessDocument) {
+ openDocumentDetail(document: Document) {
this.router.navigate(['documents', document.id])
}
- toggleSelected(document: PaperlessDocument, event: MouseEvent): void {
+ toggleSelected(document: Document, event: MouseEvent): void {
if (!event.shiftKey) this.list.toggleSelected(document)
else this.list.selectRangeTo(document)
}
])
}
- trackByDocumentId(index, item: PaperlessDocument) {
+ trackByDocumentId(index, item: Document) {
return item.id
}
FILTER_CUSTOM_FIELDS,
FILTER_SHARED_BY_USER,
} from 'src/app/data/filter-rule-type'
-import { PaperlessCorrespondent } from 'src/app/data/paperless-correspondent'
-import { PaperlessDocumentType } from 'src/app/data/paperless-document-type'
-import { PaperlessStoragePath } from 'src/app/data/paperless-storage-path'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
-import { PaperlessUser } from 'src/app/data/paperless-user'
+import { Correspondent } from 'src/app/data/correspondent'
+import { DocumentType } from 'src/app/data/document-type'
+import { StoragePath } from 'src/app/data/storage-path'
+import { Tag } from 'src/app/data/tag'
+import { User } from 'src/app/data/user'
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe'
import { FilterPipe } from 'src/app/pipes/filter.pipe'
} from '../../common/permissions-filter-dropdown/permissions-filter-dropdown.component'
import { FilterEditorComponent } from './filter-editor.component'
-const tags: PaperlessTag[] = [
+const tags: Tag[] = [
{
id: 2,
name: 'Tag2',
},
]
-const correspondents: PaperlessCorrespondent[] = [
+const correspondents: Correspondent[] = [
{
id: 12,
name: 'Corresp12',
},
]
-const document_types: PaperlessDocumentType[] = [
+const document_types: DocumentType[] = [
{
id: 22,
name: 'DocType22',
},
]
-const storage_paths: PaperlessStoragePath[] = [
+const storage_paths: StoragePath[] = [
{
id: 32,
name: 'StoragePath32',
},
]
-const users: PaperlessUser[] = [
+const users: User[] = [
{
id: 1,
username: 'user1',
ViewChild,
ElementRef,
} from '@angular/core'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
-import { PaperlessCorrespondent } from 'src/app/data/paperless-correspondent'
-import { PaperlessDocumentType } from 'src/app/data/paperless-document-type'
+import { Tag } from 'src/app/data/tag'
+import { Correspondent } from 'src/app/data/correspondent'
+import { DocumentType } from 'src/app/data/document-type'
import { Subject, Subscription } from 'rxjs'
import { debounceTime, distinctUntilChanged, filter } from 'rxjs/operators'
import { DocumentTypeService } from 'src/app/services/rest/document-type.service'
SelectionData,
SelectionDataItem,
} from 'src/app/services/rest/document.service'
-import { PaperlessDocument } from 'src/app/data/paperless-document'
-import { PaperlessStoragePath } from 'src/app/data/paperless-storage-path'
+import { Document } from 'src/app/data/document'
+import { StoragePath } from 'src/app/data/storage-path'
import { StoragePathService } from 'src/app/services/rest/storage-path.service'
import { RelativeDate } from '../../common/date-dropdown/date-dropdown.component'
import {
@ViewChild('textFilterInput')
textFilterInput: ElementRef
- tags: PaperlessTag[] = []
- correspondents: PaperlessCorrespondent[] = []
- documentTypes: PaperlessDocumentType[] = []
- storagePaths: PaperlessStoragePath[] = []
+ tags: Tag[] = []
+ correspondents: Correspondent[] = []
+ documentTypes: DocumentType[] = []
+ storagePaths: StoragePath[] = []
tagDocumentCounts: SelectionDataItem[]
correspondentDocumentCounts: SelectionDataItem[]
_textFilter = ''
_moreLikeId: number
- _moreLikeDoc: PaperlessDocument
+ _moreLikeDoc: Document
get textFilterTargets() {
if (this.textFilterTarget == TEXT_FILTER_TARGET_FULLTEXT_MORELIKE) {
import { of, throwError } from 'rxjs'
import { DocumentNotesService } from 'src/app/services/rest/document-notes.service'
import { ToastService } from 'src/app/services/toast.service'
-import { PaperlessDocumentNote } from 'src/app/data/paperless-document-note'
+import { DocumentNote } from 'src/app/data/document-note'
import { HttpClientTestingModule } from '@angular/common/http/testing'
import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe'
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
import { PermissionsService } from 'src/app/services/permissions.service'
import { FormsModule, ReactiveFormsModule } from '@angular/forms'
-const notes: PaperlessDocumentNote[] = [
+const notes: DocumentNote[] = [
{
id: 23,
note: 'Note 23',
import { Component, Input, Output, EventEmitter } from '@angular/core'
import { DocumentNotesService } from 'src/app/services/rest/document-notes.service'
-import { PaperlessDocumentNote } from 'src/app/data/paperless-document-note'
+import { DocumentNote } from 'src/app/data/document-note'
import { FormControl, FormGroup } from '@angular/forms'
import { ToastService } from 'src/app/services/toast.service'
import { ComponentWithPermissions } from '../with-permissions/with-permissions.component'
import { UserService } from 'src/app/services/rest/user.service'
-import { PaperlessUser } from 'src/app/data/paperless-user'
+import { User } from 'src/app/data/user'
@Component({
selector: 'pngx-document-notes',
documentId: number
@Input()
- notes: PaperlessDocumentNote[] = []
+ notes: DocumentNote[] = []
@Input()
addDisabled: boolean = false
@Output()
- updated: EventEmitter<PaperlessDocumentNote[]> = new EventEmitter()
- users: PaperlessUser[]
+ updated: EventEmitter<DocumentNote[]> = new EventEmitter()
+ users: User[]
constructor(
private notesService: DocumentNotesService,
})
}
- displayName(note: PaperlessDocumentNote): string {
+ displayName(note: DocumentNote): string {
if (!note.user) return ''
const user = this.users?.find((u) => u.id === note.user)
if (!user) return ''
import { of, throwError } from 'rxjs'
import {
DocumentSource,
- PaperlessConsumptionTemplate,
-} from 'src/app/data/paperless-consumption-template'
+ ConsumptionTemplate,
+} from 'src/app/data/consumption-template'
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
import { ConsumptionTemplateService } from 'src/app/services/rest/consumption-template.service'
import { ToastService } from 'src/app/services/toast.service'
import { ConsumptionTemplateEditDialogComponent } from '../../common/edit-dialog/consumption-template-edit-dialog/consumption-template-edit-dialog.component'
import { PermissionsService } from 'src/app/services/permissions.service'
-const templates: PaperlessConsumptionTemplate[] = [
+const templates: ConsumptionTemplate[] = [
{
id: 0,
name: 'Template 1',
import { ConsumptionTemplateService } from 'src/app/services/rest/consumption-template.service'
import { ComponentWithPermissions } from '../../with-permissions/with-permissions.component'
import { Subject, takeUntil } from 'rxjs'
-import { PaperlessConsumptionTemplate } from 'src/app/data/paperless-consumption-template'
+import { ConsumptionTemplate } from 'src/app/data/consumption-template'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { ToastService } from 'src/app/services/toast.service'
import { PermissionsService } from 'src/app/services/permissions.service'
extends ComponentWithPermissions
implements OnInit
{
- public templates: PaperlessConsumptionTemplate[] = []
+ public templates: ConsumptionTemplate[] = []
private unsubscribeNotifier: Subject<any> = new Subject()
})
}
- getSourceList(template: PaperlessConsumptionTemplate): string {
+ getSourceList(template: ConsumptionTemplate): string {
return template.sources
.map((id) => DOCUMENT_SOURCE_OPTIONS.find((s) => s.id === id).name)
.join(', ')
}
- editTemplate(rule: PaperlessConsumptionTemplate) {
+ editTemplate(rule: ConsumptionTemplate) {
const modal = this.modalService.open(
ConsumptionTemplateEditDialogComponent,
{
})
}
- deleteTemplate(rule: PaperlessConsumptionTemplate) {
+ deleteTemplate(rule: ConsumptionTemplate) {
const modal = this.modalService.open(ConfirmDialogComponent, {
backdrop: 'static',
})
import { Component } from '@angular/core'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { FILTER_HAS_CORRESPONDENT_ANY } from 'src/app/data/filter-rule-type'
-import { PaperlessCorrespondent } from 'src/app/data/paperless-correspondent'
+import { Correspondent } from 'src/app/data/correspondent'
import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe'
import { DocumentListViewService } from 'src/app/services/document-list-view.service'
import {
styleUrls: ['./../management-list/management-list.component.scss'],
providers: [{ provide: CustomDatePipe }],
})
-export class CorrespondentListComponent extends ManagementListComponent<PaperlessCorrespondent> {
+export class CorrespondentListComponent extends ManagementListComponent<Correspondent> {
constructor(
correspondentsService: CorrespondentService,
modalService: NgbModal,
{
key: 'last_correspondence',
name: $localize`Last used`,
- valueFn: (c: PaperlessCorrespondent) => {
+ valueFn: (c: Correspondent) => {
if (c.last_correspondence) {
let date = new Date(c.last_correspondence)
if (date.toString() == 'Invalid Date') {
)
}
- getDeleteMessage(object: PaperlessCorrespondent) {
+ getDeleteMessage(object: Correspondent) {
return $localize`Do you really want to delete the correspondent "${object.name}"?`
}
}
import { ComponentFixture, TestBed } from '@angular/core/testing'
import { CustomFieldsComponent } from './custom-fields.component'
-import {
- PaperlessCustomField,
- PaperlessCustomFieldDataType,
-} from 'src/app/data/paperless-custom-field'
+import { CustomField, CustomFieldDataType } from 'src/app/data/custom-field'
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
import { HttpClientTestingModule } from '@angular/common/http/testing'
import { FormsModule, ReactiveFormsModule } from '@angular/forms'
import { PageHeaderComponent } from '../../common/page-header/page-header.component'
import { CustomFieldEditDialogComponent } from '../../common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component'
-const fields: PaperlessCustomField[] = [
+const fields: CustomField[] = [
{
id: 0,
name: 'Field 1',
- data_type: PaperlessCustomFieldDataType.String,
+ data_type: CustomFieldDataType.String,
},
{
id: 1,
name: 'Field 2',
- data_type: PaperlessCustomFieldDataType.Integer,
+ data_type: CustomFieldDataType.Integer,
},
]
import { Component, OnInit } from '@angular/core'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { Subject, takeUntil } from 'rxjs'
-import {
- DATA_TYPE_LABELS,
- PaperlessCustomField,
-} from 'src/app/data/paperless-custom-field'
+import { DATA_TYPE_LABELS, CustomField } from 'src/app/data/custom-field'
import { PermissionsService } from 'src/app/services/permissions.service'
import { CustomFieldsService } from 'src/app/services/rest/custom-fields.service'
import { ToastService } from 'src/app/services/toast.service'
extends ComponentWithPermissions
implements OnInit
{
- public fields: PaperlessCustomField[] = []
+ public fields: CustomField[] = []
private unsubscribeNotifier: Subject<any> = new Subject()
constructor(
})
}
- editField(field: PaperlessCustomField) {
+ editField(field: CustomField) {
const modal = this.modalService.open(CustomFieldEditDialogComponent)
modal.componentInstance.dialogMode = field
? EditDialogMode.EDIT
})
}
- deleteField(field: PaperlessCustomField) {
+ deleteField(field: CustomField) {
const modal = this.modalService.open(ConfirmDialogComponent, {
backdrop: 'static',
})
})
}
- getDataType(field: PaperlessCustomField): string {
+ getDataType(field: CustomField): string {
return DATA_TYPE_LABELS.find((l) => l.id === field.data_type).name
}
}
import { Component } from '@angular/core'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { FILTER_HAS_DOCUMENT_TYPE_ANY } from 'src/app/data/filter-rule-type'
-import { PaperlessDocumentType } from 'src/app/data/paperless-document-type'
+import { DocumentType } from 'src/app/data/document-type'
import { DocumentListViewService } from 'src/app/services/document-list-view.service'
import {
PermissionsService,
templateUrl: './../management-list/management-list.component.html',
styleUrls: ['./../management-list/management-list.component.scss'],
})
-export class DocumentTypeListComponent extends ManagementListComponent<PaperlessDocumentType> {
+export class DocumentTypeListComponent extends ManagementListComponent<DocumentType> {
constructor(
documentTypeService: DocumentTypeService,
modalService: NgbModal,
)
}
- getDeleteMessage(object: PaperlessDocumentType) {
+ getDeleteMessage(object: DocumentType) {
return $localize`Do you really want to delete the document type "${object.name}"?`
}
}
import { NgSelectModule } from '@ng-select/ng-select'
import { of, throwError } from 'rxjs'
import { routes } from 'src/app/app-routing.module'
-import { PaperlessMailAccount } from 'src/app/data/paperless-mail-account'
-import { PaperlessMailRule } from 'src/app/data/paperless-mail-rule'
+import { MailAccount } from 'src/app/data/mail-account'
+import { MailRule } from 'src/app/data/mail-rule'
import { IfOwnerDirective } from 'src/app/directives/if-owner.directive'
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
import { PermissionsGuard } from 'src/app/guards/permissions.guard'
of({
all: mailAccounts.map((a) => a.id),
count: mailAccounts.length,
- results: (mailAccounts as PaperlessMailAccount[]).concat([]),
+ results: (mailAccounts as MailAccount[]).concat([]),
})
)
}
of({
all: mailRules.map((r) => r.id),
count: mailRules.length,
- results: (mailRules as PaperlessMailRule[]).concat([]),
+ results: (mailRules as MailRule[]).concat([]),
})
)
}
completeSetup()
let modal: NgbModalRef
modalService.activeInstances.subscribe((refs) => (modal = refs[0]))
- component.editMailAccount(mailAccounts[0] as PaperlessMailAccount)
+ component.editMailAccount(mailAccounts[0] as MailAccount)
let editDialog = modal.componentInstance as MailAccountEditDialogComponent
const toastErrorSpy = jest.spyOn(toastService, 'showError')
const toastInfoSpy = jest.spyOn(toastService, 'showInfo')
completeSetup()
let modal: NgbModalRef
modalService.activeInstances.subscribe((refs) => (modal = refs[0]))
- component.deleteMailAccount(mailAccounts[0] as PaperlessMailAccount)
+ component.deleteMailAccount(mailAccounts[0] as MailAccount)
const deleteDialog = modal.componentInstance as ConfirmDialogComponent
const deleteSpy = jest.spyOn(mailAccountService, 'delete')
const toastErrorSpy = jest.spyOn(toastService, 'showError')
completeSetup()
let modal: NgbModalRef
modalService.activeInstances.subscribe((refs) => (modal = refs[0]))
- component.editMailRule(mailRules[0] as PaperlessMailRule)
+ component.editMailRule(mailRules[0] as MailRule)
const editDialog = modal.componentInstance as MailRuleEditDialogComponent
const toastErrorSpy = jest.spyOn(toastService, 'showError')
const toastInfoSpy = jest.spyOn(toastService, 'showInfo')
completeSetup()
let modal: NgbModalRef
modalService.activeInstances.subscribe((refs) => (modal = refs[0]))
- component.deleteMailRule(mailRules[0] as PaperlessMailRule)
+ component.deleteMailRule(mailRules[0] as MailRule)
const deleteDialog = modal.componentInstance as ConfirmDialogComponent
const deleteSpy = jest.spyOn(mailRuleService, 'delete')
const toastErrorSpy = jest.spyOn(toastService, 'showError')
const toastErrorSpy = jest.spyOn(toastService, 'showError')
const toastInfoSpy = jest.spyOn(toastService, 'showInfo')
const rulePatchSpy = jest.spyOn(mailRuleService, 'patch')
- component.editPermissions(mailRules[0] as PaperlessMailRule)
+ component.editPermissions(mailRules[0] as MailRule)
expect(modal).not.toBeUndefined()
let dialog = modal.componentInstance as PermissionsDialogComponent
expect(dialog.object).toEqual(mailRules[0])
dialog.confirmClicked.emit(perms)
expect(rulePatchSpy).toHaveBeenCalled()
expect(toastErrorSpy).toHaveBeenCalled()
- rulePatchSpy.mockReturnValueOnce(of(mailRules[0] as PaperlessMailRule))
+ rulePatchSpy.mockReturnValueOnce(of(mailRules[0] as MailRule))
dialog.confirmClicked.emit(perms)
expect(toastInfoSpy).toHaveBeenCalledWith('Permissions updated')
let modal: NgbModalRef
modalService.activeInstances.subscribe((refs) => (modal = refs[0]))
const accountPatchSpy = jest.spyOn(mailAccountService, 'patch')
- component.editPermissions(mailAccounts[0] as PaperlessMailAccount)
+ component.editPermissions(mailAccounts[0] as MailAccount)
expect(modal).not.toBeUndefined()
let dialog = modal.componentInstance as PermissionsDialogComponent
expect(dialog.object).toEqual(mailAccounts[0])
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { Subject, first, takeUntil } from 'rxjs'
import { ObjectWithPermissions } from 'src/app/data/object-with-permissions'
-import { PaperlessMailAccount } from 'src/app/data/paperless-mail-account'
-import { PaperlessMailRule } from 'src/app/data/paperless-mail-rule'
+import { MailAccount } from 'src/app/data/mail-account'
+import { MailRule } from 'src/app/data/mail-rule'
import {
PermissionsService,
PermissionAction,
extends ComponentWithPermissions
implements OnInit, OnDestroy
{
- mailAccounts: PaperlessMailAccount[] = []
- mailRules: PaperlessMailRule[] = []
+ mailAccounts: MailAccount[] = []
+ mailRules: MailRule[] = []
unsubscribeNotifier: Subject<any> = new Subject()
this.unsubscribeNotifier.next(true)
}
- editMailAccount(account: PaperlessMailAccount = null) {
+ editMailAccount(account: MailAccount = null) {
const modal = this.modalService.open(MailAccountEditDialogComponent, {
backdrop: 'static',
size: 'xl',
})
}
- deleteMailAccount(account: PaperlessMailAccount) {
+ deleteMailAccount(account: MailAccount) {
const modal = this.modalService.open(ConfirmDialogComponent, {
backdrop: 'static',
})
})
}
- editMailRule(rule: PaperlessMailRule = null) {
+ editMailRule(rule: MailRule = null) {
const modal = this.modalService.open(MailRuleEditDialogComponent, {
backdrop: 'static',
size: 'xl',
})
}
- deleteMailRule(rule: PaperlessMailRule) {
+ deleteMailRule(rule: MailRule) {
const modal = this.modalService.open(ConfirmDialogComponent, {
backdrop: 'static',
})
})
}
- editPermissions(object: PaperlessMailRule | PaperlessMailAccount) {
+ editPermissions(object: MailRule | MailAccount) {
const modal = this.modalService.open(PermissionsDialogComponent, {
backdrop: 'static',
})
dialog.object = object
modal.componentInstance.confirmClicked.subscribe((permissions) => {
modal.componentInstance.buttonsEnabled = false
- const service: AbstractPaperlessService<
- PaperlessMailRule | PaperlessMailAccount
- > = 'account' in object ? this.mailRuleService : this.mailAccountService
+ const service: AbstractPaperlessService<MailRule | MailAccount> =
+ 'account' in object ? this.mailRuleService : this.mailAccountService
object.owner = permissions['owner']
object['set_permissions'] = permissions['set_permissions']
service.patch(object).subscribe({
NgbPaginationModule,
} from '@ng-bootstrap/ng-bootstrap'
import { of, throwError } from 'rxjs'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Tag } from 'src/app/data/tag'
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
import { SortableDirective } from 'src/app/directives/sortable.directive'
import { SafeHtmlPipe } from 'src/app/pipes/safehtml.pipe'
import { MATCH_LITERAL } from 'src/app/data/matching-model'
import { PermissionsDialogComponent } from '../../common/permissions-dialog/permissions-dialog.component'
-const tags: PaperlessTag[] = [
+const tags: Tag[] = [
{
id: 1,
name: 'Tag1 Foo',
]
describe('ManagementListComponent', () => {
- let component: ManagementListComponent<PaperlessTag>
- let fixture: ComponentFixture<ManagementListComponent<PaperlessTag>>
+ let component: ManagementListComponent<Tag>
+ let fixture: ComponentFixture<ManagementListComponent<Tag>>
let tagService: TagService
let modalService: NgbModal
let toastService: ToastService
createButton.triggerEventHandler('click')
expect(modal).not.toBeUndefined()
- const editDialog =
- modal.componentInstance as EditDialogComponent<PaperlessTag>
+ const editDialog = modal.componentInstance as EditDialogComponent<Tag>
// fail first
editDialog.failed.emit({ error: 'error creating item' })
editButton.triggerEventHandler('click')
expect(modal).not.toBeUndefined()
- const editDialog =
- modal.componentInstance as EditDialogComponent<PaperlessTag>
+ const editDialog = modal.componentInstance as EditDialogComponent<Tag>
expect(editDialog.object).toEqual(tags[0])
// fail first
import { Component } from '@angular/core'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { FILTER_HAS_STORAGE_PATH_ANY } from 'src/app/data/filter-rule-type'
-import { PaperlessStoragePath } from 'src/app/data/paperless-storage-path'
+import { StoragePath } from 'src/app/data/storage-path'
import { DocumentListViewService } from 'src/app/services/document-list-view.service'
import {
PermissionsService,
templateUrl: './../management-list/management-list.component.html',
styleUrls: ['./../management-list/management-list.component.scss'],
})
-export class StoragePathListComponent extends ManagementListComponent<PaperlessStoragePath> {
+export class StoragePathListComponent extends ManagementListComponent<StoragePath> {
constructor(
directoryService: StoragePathService,
modalService: NgbModal,
{
key: 'path',
name: $localize`Path`,
- valueFn: (c: PaperlessStoragePath) => {
+ valueFn: (c: StoragePath) => {
return c.path
},
},
)
}
- getDeleteMessage(object: PaperlessStoragePath) {
+ getDeleteMessage(object: StoragePath) {
return $localize`Do you really want to delete the storage path "${object.name}"?`
}
}
import { Component } from '@angular/core'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { FILTER_HAS_TAGS_ALL } from 'src/app/data/filter-rule-type'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Tag } from 'src/app/data/tag'
import { DocumentListViewService } from 'src/app/services/document-list-view.service'
import {
PermissionsService,
templateUrl: './../management-list/management-list.component.html',
styleUrls: ['./../management-list/management-list.component.scss'],
})
-export class TagListComponent extends ManagementListComponent<PaperlessTag> {
+export class TagListComponent extends ManagementListComponent<Tag> {
constructor(
tagService: TagService,
modalService: NgbModal,
key: 'color',
name: $localize`Color`,
rendersHtml: true,
- valueFn: (t: PaperlessTag) => {
+ valueFn: (t: Tag) => {
return `<span class="badge" style="color: ${t.text_color}; background-color: ${t.color}">${t.color}</span>`
},
},
)
}
- getDeleteMessage(object: PaperlessTag) {
+ getDeleteMessage(object: Tag) {
return $localize`Do you really want to delete the tag "${object.name}"?`
}
}
--- /dev/null
+import { ObjectWithId } from './object-with-id'
+
+export enum DocumentSource {
+ ConsumeFolder = 1,
+ ApiUpload = 2,
+ MailFetch = 3,
+}
+
+export interface ConsumptionTemplate extends ObjectWithId {
+ name: string
+
+ order: number
+
+ sources: DocumentSource[]
+
+ filter_filename: string
+
+ filter_path?: string
+
+ filter_mailrule?: number // MailRule.id
+
+ assign_title?: string
+
+ assign_tags?: number[] // Tag.id
+
+ assign_document_type?: number // DocumentType.id
+
+ assign_correspondent?: number // Correspondent.id
+
+ assign_storage_path?: number // StoragePath.id
+
+ assign_owner?: number // User.id
+
+ assign_view_users?: number[] // [User.id]
+
+ assign_view_groups?: number[] // [Group.id]
+
+ assign_change_users?: number[] // [User.id]
+
+ assign_change_groups?: number[] // [Group.id]
+
+ assign_custom_fields?: number[] // [CustomField.id]
+}
import { MatchingModel } from './matching-model'
-export interface PaperlessCorrespondent extends MatchingModel {
+export interface Correspondent extends MatchingModel {
last_correspondence?: string // Date
}
--- /dev/null
+import { ObjectWithId } from './object-with-id'
+
+export interface CustomFieldInstance extends ObjectWithId {
+ document: number // Document
+ field: number // CustomField
+ created: Date
+ value?: any
+}
import { ObjectWithId } from './object-with-id'
-export enum PaperlessCustomFieldDataType {
+export enum CustomFieldDataType {
String = 'string',
Url = 'url',
Date = 'date',
export const DATA_TYPE_LABELS = [
{
- id: PaperlessCustomFieldDataType.Boolean,
+ id: CustomFieldDataType.Boolean,
name: $localize`Boolean`,
},
{
- id: PaperlessCustomFieldDataType.Date,
+ id: CustomFieldDataType.Date,
name: $localize`Date`,
},
{
- id: PaperlessCustomFieldDataType.Integer,
+ id: CustomFieldDataType.Integer,
name: $localize`Integer`,
},
{
- id: PaperlessCustomFieldDataType.Float,
+ id: CustomFieldDataType.Float,
name: $localize`Number`,
},
{
- id: PaperlessCustomFieldDataType.Monetary,
+ id: CustomFieldDataType.Monetary,
name: $localize`Monetary`,
},
{
- id: PaperlessCustomFieldDataType.String,
+ id: CustomFieldDataType.String,
name: $localize`Text`,
},
{
- id: PaperlessCustomFieldDataType.Url,
+ id: CustomFieldDataType.Url,
name: $localize`Url`,
},
{
- id: PaperlessCustomFieldDataType.DocumentLink,
+ id: CustomFieldDataType.DocumentLink,
name: $localize`Document Link`,
},
]
-export interface PaperlessCustomField extends ObjectWithId {
- data_type: PaperlessCustomFieldDataType
+export interface CustomField extends ObjectWithId {
+ data_type: CustomFieldDataType
name: string
created?: Date
}
-export interface PaperlessDocumentMetadata {
+export interface DocumentMetadata {
original_checksum?: string
archived_checksum?: string
--- /dev/null
+import { ObjectWithId } from './object-with-id'
+
+export interface DocumentNote extends ObjectWithId {
+ created?: Date
+ note?: string
+ user?: number // User
+}
-export interface PaperlessDocumentSuggestions {
+export interface DocumentSuggestions {
tags?: number[]
correspondents?: number[]
--- /dev/null
+import { MatchingModel } from './matching-model'
+
+export interface DocumentType extends MatchingModel {}
--- /dev/null
+import { Correspondent } from './correspondent'
+import { Tag } from './tag'
+import { DocumentType } from './document-type'
+import { Observable } from 'rxjs'
+import { StoragePath } from './storage-path'
+import { ObjectWithPermissions } from './object-with-permissions'
+import { DocumentNote } from './document-note'
+import { CustomFieldInstance } from './custom-field-instance'
+
+export interface SearchHit {
+ score?: number
+ rank?: number
+
+ highlights?: string
+ note_highlights?: string
+}
+
+export interface Document extends ObjectWithPermissions {
+ correspondent$?: Observable<Correspondent>
+
+ correspondent?: number
+
+ document_type$?: Observable<DocumentType>
+
+ document_type?: number
+
+ storage_path$?: Observable<StoragePath>
+
+ storage_path?: number
+
+ title?: string
+
+ content?: string
+
+ tags$?: Observable<Tag[]>
+
+ tags?: number[]
+
+ checksum?: string
+
+ // UTC
+ created?: Date
+
+ // localized date
+ created_date?: Date
+
+ modified?: Date
+
+ added?: Date
+
+ original_file_name?: string
+
+ archived_file_name?: string
+
+ download_url?: string
+
+ thumbnail_url?: string
+
+ archive_serial_number?: number
+
+ notes?: DocumentNote[]
+
+ __search_hit__?: SearchHit
+
+ custom_fields?: CustomFieldInstance[]
+}
import { ObjectWithId } from './object-with-id'
-export interface PaperlessGroup extends ObjectWithId {
+export interface Group extends ObjectWithId {
name?: string
user_count?: number // not implemented yet
STARTTLS = 3,
}
-export interface PaperlessMailAccount extends ObjectWithPermissions {
+export interface MailAccount extends ObjectWithPermissions {
name: string
imap_server: string
FromCustom = 4,
}
-export interface PaperlessMailRule extends ObjectWithPermissions {
+export interface MailRule extends ObjectWithPermissions {
name: string
account: number // PaperlessMailAccount.id
+++ /dev/null
-import { ObjectWithId } from './object-with-id'
-
-export enum DocumentSource {
- ConsumeFolder = 1,
- ApiUpload = 2,
- MailFetch = 3,
-}
-
-export interface PaperlessConsumptionTemplate extends ObjectWithId {
- name: string
-
- order: number
-
- sources: DocumentSource[]
-
- filter_filename: string
-
- filter_path?: string
-
- filter_mailrule?: number // PaperlessMailRule.id
-
- assign_title?: string
-
- assign_tags?: number[] // PaperlessTag.id
-
- assign_document_type?: number // PaperlessDocumentType.id
-
- assign_correspondent?: number // PaperlessCorrespondent.id
-
- assign_storage_path?: number // PaperlessStoragePath.id
-
- assign_owner?: number // PaperlessUser.id
-
- assign_view_users?: number[] // [PaperlessUser.id]
-
- assign_view_groups?: number[] // [PaperlessGroup.id]
-
- assign_change_users?: number[] // [PaperlessUser.id]
-
- assign_change_groups?: number[] // [PaperlessGroup.id]
-
- assign_custom_fields?: number[] // [PaperlessCustomField.id]
-}
+++ /dev/null
-import { ObjectWithId } from './object-with-id'
-import { PaperlessCustomField } from './paperless-custom-field'
-
-export interface PaperlessCustomFieldInstance extends ObjectWithId {
- document: number // PaperlessDocument
- field: number // PaperlessCustomField
- created: Date
- value?: any
-}
+++ /dev/null
-import { ObjectWithId } from './object-with-id'
-
-export interface PaperlessDocumentNote extends ObjectWithId {
- created?: Date
- note?: string
- user?: number // PaperlessUser
-}
+++ /dev/null
-import { MatchingModel } from './matching-model'
-
-export interface PaperlessDocumentType extends MatchingModel {}
+++ /dev/null
-import { PaperlessCorrespondent } from './paperless-correspondent'
-import { PaperlessTag } from './paperless-tag'
-import { PaperlessDocumentType } from './paperless-document-type'
-import { Observable } from 'rxjs'
-import { PaperlessStoragePath } from './paperless-storage-path'
-import { ObjectWithPermissions } from './object-with-permissions'
-import { PaperlessDocumentNote } from './paperless-document-note'
-import { PaperlessCustomFieldInstance } from './paperless-custom-field-instance'
-
-export interface SearchHit {
- score?: number
- rank?: number
-
- highlights?: string
- note_highlights?: string
-}
-
-export interface PaperlessDocument extends ObjectWithPermissions {
- correspondent$?: Observable<PaperlessCorrespondent>
-
- correspondent?: number
-
- document_type$?: Observable<PaperlessDocumentType>
-
- document_type?: number
-
- storage_path$?: Observable<PaperlessStoragePath>
-
- storage_path?: number
-
- title?: string
-
- content?: string
-
- tags$?: Observable<PaperlessTag[]>
-
- tags?: number[]
-
- checksum?: string
-
- // UTC
- created?: Date
-
- // localized date
- created_date?: Date
-
- modified?: Date
-
- added?: Date
-
- original_file_name?: string
-
- archived_file_name?: string
-
- download_url?: string
-
- thumbnail_url?: string
-
- archive_serial_number?: number
-
- notes?: PaperlessDocumentNote[]
-
- __search_hit__?: SearchHit
-
- custom_fields?: PaperlessCustomFieldInstance[]
-}
import { FilterRule } from './filter-rule'
import { ObjectWithPermissions } from './object-with-permissions'
-export interface PaperlessSavedView extends ObjectWithPermissions {
+export interface SavedView extends ObjectWithPermissions {
name?: string
show_on_dashboard?: boolean
import { ObjectWithPermissions } from './object-with-permissions'
-export enum PaperlessFileVersion {
+export enum FileVersion {
Archive = 'archive',
Original = 'original',
}
-export interface PaperlessShareLink extends ObjectWithPermissions {
+export interface ShareLink extends ObjectWithPermissions {
created: string // Date
expiration?: string // Date
slug: string
- document: number // PaperlessDocument
+ document: number // Document
file_version: string
}
import { MatchingModel } from './matching-model'
-export interface PaperlessStoragePath extends MatchingModel {
+export interface StoragePath extends MatchingModel {
path?: string
}
import { MatchingModel } from './matching-model'
-export interface PaperlessTag extends MatchingModel {
+export interface Tag extends MatchingModel {
color?: string
text_color?: string
-import { PaperlessUser } from './paperless-user'
+import { User } from './user'
-export interface PaperlessUiSettings {
- user: PaperlessUser
+export interface UiSettings {
+ user: User
settings: Object
permissions: string[]
}
-export interface PaperlessUiSetting {
+export interface UiSetting {
key: string
type: string
default: any
DEFAULT_PERMS_EDIT_GROUPS: 'general-settings:permissions:default-edit-groups',
}
-export const SETTINGS: PaperlessUiSetting[] = [
+export const SETTINGS: UiSetting[] = [
{
key: SETTINGS_KEYS.LANGUAGE,
type: 'string',
import { ObjectWithId } from './object-with-id'
-export interface PaperlessUser extends ObjectWithId {
+export interface User extends ObjectWithId {
username?: string
first_name?: string
last_name?: string
is_staff?: boolean
is_active?: boolean
is_superuser?: boolean
- groups?: number[] // PaperlessGroup[]
+ groups?: number[] // Group[]
user_permissions?: string[]
inherited_permissions?: string[]
}
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { ConfirmDialogComponent } from '../components/common/confirm-dialog/confirm-dialog.component'
import { SettingsService } from '../services/settings.service'
-import { SETTINGS_KEYS } from '../data/paperless-uisettings'
+import { SETTINGS_KEYS } from '../data/ui-settings'
@Injectable()
export class DirtySavedViewGuard {
import { DatePipe } from '@angular/common'
import { Inject, LOCALE_ID, Pipe, PipeTransform } from '@angular/core'
-import { SETTINGS_KEYS } from '../data/paperless-uisettings'
+import { SETTINGS_KEYS } from '../data/ui-settings'
import { SettingsService } from '../services/settings.service'
const FORMAT_TO_ISO_FORMAT = {
PermissionType,
PermissionsService,
} from '../services/permissions.service'
-import { PaperlessUser } from '../data/paperless-user'
+import { User } from '../data/user'
@Pipe({
name: 'username',
})
export class UsernamePipe implements PipeTransform {
- users: PaperlessUser[]
+ users: User[]
constructor(
permissionsService: PermissionsService,
: $localize`Shared`
}
- getName(user: PaperlessUser): string {
+ getName(user: User): string {
if (!user) return ''
const name = [user.first_name, user.last_name].join(' ')
if (name.length > 1) return name.trim()
FILTER_HAS_TAGS_ALL,
FILTER_HAS_TAGS_ANY,
} from '../data/filter-rule-type'
-import { PaperlessSavedView } from '../data/paperless-saved-view'
+import { SavedView } from '../data/saved-view'
import { FilterRule } from '../data/filter-rule'
import { RouterTestingModule } from '@angular/router/testing'
import { routes } from 'src/app/app-routing.module'
import { PermissionsGuard } from '../guards/permissions.guard'
import { SettingsService } from './settings.service'
-import { SETTINGS_KEYS } from '../data/paperless-uisettings'
+import { SETTINGS_KEYS } from '../data/ui-settings'
const documents = [
{
},
]
-const view: PaperlessSavedView = {
+const view: SavedView = {
id: 3,
name: 'Saved View',
sort_field: 'added',
cloneFilterRules,
isFullTextFilterRule,
} from '../utils/filter-rules'
-import { PaperlessDocument } from '../data/paperless-document'
-import { PaperlessSavedView } from '../data/paperless-saved-view'
-import { SETTINGS_KEYS } from '../data/paperless-uisettings'
+import { Document } from '../data/document'
+import { SavedView } from '../data/saved-view'
+import { SETTINGS_KEYS } from '../data/ui-settings'
import { DOCUMENT_LIST_SERVICE } from '../data/storage-keys'
import { paramsFromViewState, paramsToViewState } from '../utils/query-params'
import {
/**
* Current paginated list of documents displayed.
*/
- documents?: PaperlessDocument[]
+ documents?: Document[]
currentPage: number
this.unsubscribeNotifier.next(true)
}
- activateSavedView(view: PaperlessSavedView) {
+ activateSavedView(view: SavedView) {
this.rangeSelectionAnchorIndex = this.lastRangeSelectionToIndex = null
if (view) {
this._activeSavedViewId = view.id
}
}
- activateSavedViewWithQueryParams(
- view: PaperlessSavedView,
- queryParams: ParamMap
- ) {
+ activateSavedViewWithQueryParams(view: SavedView, queryParams: ParamMap) {
const viewState = paramsToViewState(queryParams)
this.activateSavedView(view)
this.currentPage = viewState.currentPage
}
- loadSavedView(view: PaperlessSavedView, closeCurrentView: boolean = false) {
+ loadSavedView(view: SavedView, closeCurrentView: boolean = false) {
if (closeCurrentView) {
this._activeSavedViewId = null
}
this.saveDocumentListView()
}
- get documents(): PaperlessDocument[] {
+ get documents(): Document[] {
return this.activeListViewState.documents
}
})
}
- isSelected(d: PaperlessDocument) {
+ isSelected(d: Document) {
return this.selected.has(d.id)
}
- toggleSelected(d: PaperlessDocument): void {
+ toggleSelected(d: Document): void {
if (this.selected.has(d.id)) this.selected.delete(d.id)
else this.selected.add(d.id)
this.rangeSelectionAnchorIndex = this.documentIndexInCurrentView(d.id)
this.lastRangeSelectionToIndex = null
}
- selectRangeTo(d: PaperlessDocument) {
+ selectRangeTo(d: Document) {
if (this.rangeSelectionAnchorIndex !== null) {
const documentToIndex = this.documentIndexInCurrentView(d.id)
const fromIndex = Math.min(
import { Injectable } from '@angular/core'
-import { PaperlessDocument } from '../data/paperless-document'
+import { Document } from '../data/document'
import { OPEN_DOCUMENT_SERVICE } from '../data/storage-keys'
import { DocumentService } from './rest/document.service'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
}
}
- private openDocuments: PaperlessDocument[] = []
+ private openDocuments: Document[] = []
private dirtyDocuments: Set<number> = new Set<number>()
refreshDocument(id: number) {
}
}
- getOpenDocuments(): PaperlessDocument[] {
+ getOpenDocuments(): Document[] {
return this.openDocuments
}
- getOpenDocument(id: number): PaperlessDocument {
+ getOpenDocument(id: number): Document {
return this.openDocuments.find((d) => d.id == id)
}
- openDocument(doc: PaperlessDocument): Observable<boolean> {
+ openDocument(doc: Document): Observable<boolean> {
if (this.openDocuments.find((d) => d.id == doc.id) == null) {
if (this.openDocuments.length == this.MAX_OPEN_DOCUMENTS) {
// at max, ensure changes arent lost
return of(true)
}
- private finishOpenDocument(doc: PaperlessDocument) {
+ private finishOpenDocument(doc: Document) {
this.openDocuments.unshift(doc)
this.dirtyDocuments.delete(doc.id)
this.save()
}
- setDirty(doc: PaperlessDocument, dirty: boolean) {
+ setDirty(doc: Document, dirty: boolean) {
if (!this.openDocuments.find((d) => d.id == doc.id)) return
if (dirty) this.dirtyDocuments.add(doc.id)
else this.dirtyDocuments.delete(doc.id)
return this.dirtyDocuments.size > 0
}
- closeDocument(doc: PaperlessDocument): Observable<boolean> {
+ closeDocument(doc: Document): Observable<boolean> {
let index = this.openDocuments.findIndex((d) => d.id == doc.id)
if (index == -1) return of(true)
if (!this.dirtyDocuments.has(doc.id)) {
PermissionType,
PermissionsService,
} from './permissions.service'
-import { PaperlessDocument } from '../data/paperless-document'
+import { Document } from '../data/document'
describe('PermissionsService', () => {
let permissionsService: PermissionsService
- const docUnowned: PaperlessDocument = {
+ const docUnowned: Document = {
title: 'Doc title',
owner: null,
}
- const docOwned: PaperlessDocument = {
+ const docOwned: Document = {
title: 'Doc title 2',
owner: 1,
}
- const docNotOwned: PaperlessDocument = {
+ const docNotOwned: Document = {
title: 'Doc title 3',
owner: 2,
}
- const docUserViewGranted: PaperlessDocument = {
+ const docUserViewGranted: Document = {
title: 'Doc title 4',
owner: 2,
permissions: {
},
}
- const docUserEditGranted: PaperlessDocument = {
+ const docUserEditGranted: Document = {
title: 'Doc title 5',
owner: 2,
permissions: {
},
}
- const docGroupViewGranted: PaperlessDocument = {
+ const docGroupViewGranted: Document = {
title: 'Doc title 4',
owner: 2,
permissions: {
},
}
- const docGroupEditGranted: PaperlessDocument = {
+ const docGroupEditGranted: Document = {
title: 'Doc title 5',
owner: 2,
permissions: {
import { Injectable } from '@angular/core'
import { ObjectWithPermissions } from '../data/object-with-permissions'
-import { PaperlessUser } from '../data/paperless-user'
+import { User } from '../data/user'
export enum PermissionAction {
Add = 'add',
})
export class PermissionsService {
private permissions: string[]
- private currentUser: PaperlessUser
+ private currentUser: User
- public initialize(permissions: string[], currentUser: PaperlessUser) {
+ public initialize(permissions: string[], currentUser: User) {
this.permissions = permissions
this.currentUser = currentUser
}
import { ConsumptionTemplateService } from './consumption-template.service'
import {
DocumentSource,
- PaperlessConsumptionTemplate,
-} from 'src/app/data/paperless-consumption-template'
+ ConsumptionTemplate,
+} from 'src/app/data/consumption-template'
let httpTestingController: HttpTestingController
let service: ConsumptionTemplateService
const endpoint = 'consumption_templates'
-const templates: PaperlessConsumptionTemplate[] = [
+const templates: ConsumptionTemplate[] = [
{
name: 'Template 1',
id: 1,
import { HttpClient } from '@angular/common/http'
import { Injectable } from '@angular/core'
import { tap } from 'rxjs'
-import { PaperlessConsumptionTemplate } from 'src/app/data/paperless-consumption-template'
+import { ConsumptionTemplate } from 'src/app/data/consumption-template'
import { AbstractPaperlessService } from './abstract-paperless-service'
@Injectable({
providedIn: 'root',
})
-export class ConsumptionTemplateService extends AbstractPaperlessService<PaperlessConsumptionTemplate> {
+export class ConsumptionTemplateService extends AbstractPaperlessService<ConsumptionTemplate> {
loading: boolean
constructor(http: HttpClient) {
})
}
- private templates: PaperlessConsumptionTemplate[] = []
+ private templates: ConsumptionTemplate[] = []
- public get allTemplates(): PaperlessConsumptionTemplate[] {
+ public get allTemplates(): ConsumptionTemplate[] {
return this.templates
}
- create(o: PaperlessConsumptionTemplate) {
+ create(o: ConsumptionTemplate) {
return super.create(o).pipe(tap(() => this.reload()))
}
- update(o: PaperlessConsumptionTemplate) {
+ update(o: ConsumptionTemplate) {
return super.update(o).pipe(tap(() => this.reload()))
}
- delete(o: PaperlessConsumptionTemplate) {
+ delete(o: ConsumptionTemplate) {
return super.delete(o).pipe(tap(() => this.reload()))
}
}
import { HttpClient } from '@angular/common/http'
import { Injectable } from '@angular/core'
-import { PaperlessCorrespondent } from 'src/app/data/paperless-correspondent'
+import { Correspondent } from 'src/app/data/correspondent'
import { AbstractNameFilterService } from './abstract-name-filter-service'
@Injectable({
providedIn: 'root',
})
-export class CorrespondentService extends AbstractNameFilterService<PaperlessCorrespondent> {
+export class CorrespondentService extends AbstractNameFilterService<Correspondent> {
constructor(http: HttpClient) {
super(http, 'correspondents')
}
import { HttpClient, HttpParams } from '@angular/common/http'
import { AbstractPaperlessService } from './abstract-paperless-service'
import { Observable } from 'rxjs'
-import { PaperlessCustomField } from 'src/app/data/paperless-custom-field'
-import { PaperlessCustomFieldInstance } from 'src/app/data/paperless-custom-field-instance'
+import { CustomField } from 'src/app/data/custom-field'
+import { CustomFieldInstance } from 'src/app/data/custom-field-instance'
@Injectable({
providedIn: 'root',
})
-export class CustomFieldsService extends AbstractPaperlessService<PaperlessCustomField> {
+export class CustomFieldsService extends AbstractPaperlessService<CustomField> {
constructor(http: HttpClient) {
super(http, 'custom_fields')
}
import { TestBed } from '@angular/core/testing'
import { environment } from 'src/environments/environment'
import { commonAbstractPaperlessServiceTests } from './abstract-paperless-service.spec'
-import { MailFilterAttachmentType } from 'src/app/data/paperless-mail-rule'
-import { MailMetadataTitleOption } from 'src/app/data/paperless-mail-rule'
-import { MailAction } from 'src/app/data/paperless-mail-rule'
import { DocumentNotesService } from './document-notes.service'
let httpTestingController: HttpTestingController
import { Injectable } from '@angular/core'
import { HttpClient, HttpParams } from '@angular/common/http'
-import { PaperlessDocumentNote } from 'src/app/data/paperless-document-note'
+import { DocumentNote } from 'src/app/data/document-note'
import { AbstractPaperlessService } from './abstract-paperless-service'
import { Observable } from 'rxjs'
@Injectable({
providedIn: 'root',
})
-export class DocumentNotesService extends AbstractPaperlessService<PaperlessDocumentNote> {
+export class DocumentNotesService extends AbstractPaperlessService<DocumentNote> {
constructor(http: HttpClient) {
super(http, 'documents')
}
- getNotes(documentId: number): Observable<PaperlessDocumentNote[]> {
- return this.http.get<PaperlessDocumentNote[]>(
+ getNotes(documentId: number): Observable<DocumentNote[]> {
+ return this.http.get<DocumentNote[]>(
this.getResourceUrl(documentId, 'notes')
)
}
- addNote(id: number, note: string): Observable<PaperlessDocumentNote[]> {
- return this.http.post<PaperlessDocumentNote[]>(
- this.getResourceUrl(id, 'notes'),
- { note: note }
- )
+ addNote(id: number, note: string): Observable<DocumentNote[]> {
+ return this.http.post<DocumentNote[]>(this.getResourceUrl(id, 'notes'), {
+ note: note,
+ })
}
- deleteNote(
- documentId: number,
- noteId: number
- ): Observable<PaperlessDocumentNote[]> {
- return this.http.delete<PaperlessDocumentNote[]>(
+ deleteNote(documentId: number, noteId: number): Observable<DocumentNote[]> {
+ return this.http.delete<DocumentNote[]>(
this.getResourceUrl(documentId, 'notes'),
{ params: new HttpParams({ fromString: `id=${noteId}` }) }
)
import { HttpClient } from '@angular/common/http'
import { Injectable } from '@angular/core'
-import { PaperlessDocumentType } from 'src/app/data/paperless-document-type'
+import { DocumentType } from 'src/app/data/document-type'
import { AbstractNameFilterService } from './abstract-name-filter-service'
@Injectable({
providedIn: 'root',
})
-export class DocumentTypeService extends AbstractNameFilterService<PaperlessDocumentType> {
+export class DocumentTypeService extends AbstractNameFilterService<DocumentType> {
constructor(http: HttpClient) {
super(http, 'document_types')
}
import { Injectable } from '@angular/core'
-import { PaperlessDocument } from 'src/app/data/paperless-document'
-import { PaperlessDocumentMetadata } from 'src/app/data/paperless-document-metadata'
+import { Document } from 'src/app/data/document'
+import { DocumentMetadata } from 'src/app/data/document-metadata'
import { AbstractPaperlessService } from './abstract-paperless-service'
import { HttpClient, HttpParams } from '@angular/common/http'
import { Observable } from 'rxjs'
import { CorrespondentService } from './correspondent.service'
import { DocumentTypeService } from './document-type.service'
import { TagService } from './tag.service'
-import { PaperlessDocumentSuggestions } from 'src/app/data/paperless-document-suggestions'
+import { DocumentSuggestions } from 'src/app/data/document-suggestions'
import { queryParamsFromFilterRules } from '../../utils/query-params'
import { StoragePathService } from './storage-path.service'
@Injectable({
providedIn: 'root',
})
-export class DocumentService extends AbstractPaperlessService<PaperlessDocument> {
+export class DocumentService extends AbstractPaperlessService<Document> {
private _searchQuery: string
constructor(
super(http, 'documents')
}
- addObservablesToDocument(doc: PaperlessDocument) {
+ addObservablesToDocument(doc: Document) {
if (doc.correspondent) {
doc.correspondent$ = this.correspondentService.getCached(
doc.correspondent
sortReverse?: boolean,
filterRules?: FilterRule[],
extraParams = {}
- ): Observable<Results<PaperlessDocument>> {
+ ): Observable<Results<Document>> {
return this.list(
page,
pageSize,
}).pipe(map((response) => response.results.map((doc) => doc.id)))
}
- get(id: number): Observable<PaperlessDocument> {
- return this.http.get<PaperlessDocument>(this.getResourceUrl(id), {
+ get(id: number): Observable<Document> {
+ return this.http.get<Document>(this.getResourceUrl(id), {
params: {
full_perms: true,
},
return this.http.get<number>(this.getResourceUrl(null, 'next_asn'))
}
- update(o: PaperlessDocument): Observable<PaperlessDocument> {
+ update(o: Document): Observable<Document> {
// we want to only set created_date
o.created = undefined
return super.update(o)
)
}
- getMetadata(id: number): Observable<PaperlessDocumentMetadata> {
- return this.http.get<PaperlessDocumentMetadata>(
- this.getResourceUrl(id, 'metadata')
- )
+ getMetadata(id: number): Observable<DocumentMetadata> {
+ return this.http.get<DocumentMetadata>(this.getResourceUrl(id, 'metadata'))
}
bulkEdit(ids: number[], method: string, args: any) {
)
}
- getSuggestions(id: number): Observable<PaperlessDocumentSuggestions> {
- return this.http.get<PaperlessDocumentSuggestions>(
+ getSuggestions(id: number): Observable<DocumentSuggestions> {
+ return this.http.get<DocumentSuggestions>(
this.getResourceUrl(id, 'suggestions')
)
}
import { HttpClient } from '@angular/common/http'
import { Injectable } from '@angular/core'
import { Observable, switchMap } from 'rxjs'
-import { PaperlessGroup } from 'src/app/data/paperless-group'
+import { Group } from 'src/app/data/group'
import { PermissionsService } from '../permissions.service'
import { AbstractNameFilterService } from './abstract-name-filter-service'
@Injectable({
providedIn: 'root',
})
-export class GroupService extends AbstractNameFilterService<PaperlessGroup> {
+export class GroupService extends AbstractNameFilterService<Group> {
constructor(
http: HttpClient,
private permissionService: PermissionsService
super(http, 'groups')
}
- update(o: PaperlessGroup): Observable<PaperlessGroup> {
+ update(o: Group): Observable<Group> {
return this.getCached(o.id).pipe(
switchMap((initialGroup) => {
initialGroup.permissions?.forEach((perm) => {
import { environment } from 'src/environments/environment'
import { commonAbstractPaperlessServiceTests } from './abstract-paperless-service.spec'
import { MailAccountService } from './mail-account.service'
-import { IMAPSecurity } from 'src/app/data/paperless-mail-account'
+import { IMAPSecurity } from 'src/app/data/mail-account'
let httpTestingController: HttpTestingController
let service: MailAccountService
import { Injectable } from '@angular/core'
import { combineLatest, Observable } from 'rxjs'
import { tap } from 'rxjs/operators'
-import { PaperlessMailAccount } from 'src/app/data/paperless-mail-account'
+import { MailAccount } from 'src/app/data/mail-account'
import { AbstractPaperlessService } from './abstract-paperless-service'
@Injectable({
providedIn: 'root',
})
-export class MailAccountService extends AbstractPaperlessService<PaperlessMailAccount> {
+export class MailAccountService extends AbstractPaperlessService<MailAccount> {
loading: boolean
constructor(http: HttpClient) {
})
}
- private mailAccounts: PaperlessMailAccount[] = []
+ private mailAccounts: MailAccount[] = []
get allAccounts() {
return this.mailAccounts
}
- create(o: PaperlessMailAccount) {
+ create(o: MailAccount) {
return super.create(o).pipe(tap(() => this.reload()))
}
- update(o: PaperlessMailAccount) {
+ update(o: MailAccount) {
return super.update(o).pipe(tap(() => this.reload()))
}
- patchMany(
- objects: PaperlessMailAccount[]
- ): Observable<PaperlessMailAccount[]> {
+ patchMany(objects: MailAccount[]): Observable<MailAccount[]> {
return combineLatest(objects.map((o) => super.patch(o))).pipe(
tap(() => this.reload())
)
}
- delete(o: PaperlessMailAccount) {
+ delete(o: MailAccount) {
return super.delete(o).pipe(tap(() => this.reload()))
}
- test(o: PaperlessMailAccount) {
+ test(o: MailAccount) {
const account = Object.assign({}, o)
delete account['set_permissions']
return this.http.post(this.getResourceUrl() + 'test/', account)
import { environment } from 'src/environments/environment'
import { commonAbstractPaperlessServiceTests } from './abstract-paperless-service.spec'
import { MailRuleService } from './mail-rule.service'
-import { MailFilterAttachmentType } from 'src/app/data/paperless-mail-rule'
-import { MailMetadataTitleOption } from 'src/app/data/paperless-mail-rule'
-import { MailAction } from 'src/app/data/paperless-mail-rule'
+import { MailFilterAttachmentType } from 'src/app/data/mail-rule'
+import { MailMetadataTitleOption } from 'src/app/data/mail-rule'
+import { MailAction } from 'src/app/data/mail-rule'
let httpTestingController: HttpTestingController
let service: MailRuleService
import { Injectable } from '@angular/core'
import { combineLatest, Observable } from 'rxjs'
import { tap } from 'rxjs/operators'
-import { PaperlessMailRule } from 'src/app/data/paperless-mail-rule'
+import { MailRule } from 'src/app/data/mail-rule'
import { AbstractPaperlessService } from './abstract-paperless-service'
@Injectable({
providedIn: 'root',
})
-export class MailRuleService extends AbstractPaperlessService<PaperlessMailRule> {
+export class MailRuleService extends AbstractPaperlessService<MailRule> {
loading: boolean
constructor(http: HttpClient) {
})
}
- private mailRules: PaperlessMailRule[] = []
+ private mailRules: MailRule[] = []
get allRules() {
return this.mailRules
}
- create(o: PaperlessMailRule) {
+ create(o: MailRule) {
return super.create(o).pipe(tap(() => this.reload()))
}
- update(o: PaperlessMailRule) {
+ update(o: MailRule) {
return super.update(o).pipe(tap(() => this.reload()))
}
- patchMany(objects: PaperlessMailRule[]): Observable<PaperlessMailRule[]> {
+ patchMany(objects: MailRule[]): Observable<MailRule[]> {
return combineLatest(objects.map((o) => super.patch(o))).pipe(
tap(() => this.reload())
)
}
- delete(o: PaperlessMailRule) {
+ delete(o: MailRule) {
return super.delete(o).pipe(tap(() => this.reload()))
}
}
import { commonAbstractPaperlessServiceTests } from './abstract-paperless-service.spec'
import { SavedViewService } from './saved-view.service'
import { SettingsService } from '../settings.service'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
let httpTestingController: HttpTestingController
let service: SavedViewService
import { Injectable } from '@angular/core'
import { combineLatest, Observable } from 'rxjs'
import { tap } from 'rxjs/operators'
-import { PaperlessSavedView } from 'src/app/data/paperless-saved-view'
+import { SavedView } from 'src/app/data/saved-view'
import { PermissionsService } from '../permissions.service'
import { AbstractPaperlessService } from './abstract-paperless-service'
import { SettingsService } from '../settings.service'
-import { SETTINGS_KEYS } from 'src/app/data/paperless-uisettings'
+import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
@Injectable({
providedIn: 'root',
})
-export class SavedViewService extends AbstractPaperlessService<PaperlessSavedView> {
+export class SavedViewService extends AbstractPaperlessService<SavedView> {
loading: boolean
constructor(
})
}
- private savedViews: PaperlessSavedView[] = []
+ private savedViews: SavedView[] = []
get allViews() {
return this.savedViews
}
- get sidebarViews(): PaperlessSavedView[] {
+ get sidebarViews(): SavedView[] {
const sidebarViews = this.savedViews.filter((v) => v.show_in_sidebar)
const sorted: number[] = this.settingsService.get(
: [...sidebarViews]
}
- get dashboardViews(): PaperlessSavedView[] {
+ get dashboardViews(): SavedView[] {
const dashboardViews = this.savedViews.filter((v) => v.show_on_dashboard)
const sorted: number[] = this.settingsService.get(
: [...dashboardViews]
}
- create(o: PaperlessSavedView) {
+ create(o: SavedView) {
return super.create(o).pipe(tap(() => this.reload()))
}
- update(o: PaperlessSavedView) {
+ update(o: SavedView) {
return super.update(o).pipe(tap(() => this.reload()))
}
- patchMany(objects: PaperlessSavedView[]): Observable<PaperlessSavedView[]> {
+ patchMany(objects: SavedView[]): Observable<SavedView[]> {
return combineLatest(objects.map((o) => super.patch(o))).pipe(
tap(() => this.reload())
)
}
- delete(o: PaperlessSavedView) {
+ delete(o: SavedView) {
return super.delete(o).pipe(tap(() => this.reload()))
}
}
import { Injectable } from '@angular/core'
-import {
- PaperlessShareLink,
- PaperlessFileVersion,
-} from 'src/app/data/paperless-share-link'
+import { ShareLink, FileVersion } from 'src/app/data/share-link'
import { AbstractNameFilterService } from './abstract-name-filter-service'
import { HttpClient } from '@angular/common/http'
import { Observable } from 'rxjs'
@Injectable({
providedIn: 'root',
})
-export class ShareLinkService extends AbstractNameFilterService<PaperlessShareLink> {
+export class ShareLinkService extends AbstractNameFilterService<ShareLink> {
constructor(http: HttpClient) {
super(http, 'share_links')
}
- getLinksForDocument(documentId: number): Observable<PaperlessShareLink[]> {
- return this.http.get<PaperlessShareLink[]>(
+ getLinksForDocument(documentId: number): Observable<ShareLink[]> {
+ return this.http.get<ShareLink[]>(
`${this.baseUrl}documents/${documentId}/${this.resourceName}/`
)
}
createLinkForDocument(
documentId: number,
- file_version: PaperlessFileVersion = PaperlessFileVersion.Archive,
+ file_version: FileVersion = FileVersion.Archive,
expiration: Date = null
) {
this.clearCache()
- return this.http.post<PaperlessShareLink>(this.getResourceUrl(), {
+ return this.http.post<ShareLink>(this.getResourceUrl(), {
document: documentId,
file_version,
expiration: expiration?.toISOString(),
import { HttpClient } from '@angular/common/http'
import { Injectable } from '@angular/core'
-import { PaperlessStoragePath } from 'src/app/data/paperless-storage-path'
+import { StoragePath } from 'src/app/data/storage-path'
import { AbstractNameFilterService } from './abstract-name-filter-service'
@Injectable({
providedIn: 'root',
})
-export class StoragePathService extends AbstractNameFilterService<PaperlessStoragePath> {
+export class StoragePathService extends AbstractNameFilterService<StoragePath> {
constructor(http: HttpClient) {
super(http, 'storage_paths')
}
import { HttpClient } from '@angular/common/http'
import { Injectable } from '@angular/core'
-import { PaperlessTag } from 'src/app/data/paperless-tag'
+import { Tag } from 'src/app/data/tag'
import { AbstractNameFilterService } from './abstract-name-filter-service'
@Injectable({
providedIn: 'root',
})
-export class TagService extends AbstractNameFilterService<PaperlessTag> {
+export class TagService extends AbstractNameFilterService<Tag> {
constructor(http: HttpClient) {
super(http, 'tags')
}
import { HttpClient } from '@angular/common/http'
import { Injectable } from '@angular/core'
import { Observable, switchMap } from 'rxjs'
-import { PaperlessUser } from 'src/app/data/paperless-user'
+import { User } from 'src/app/data/user'
import { PermissionsService } from '../permissions.service'
import { AbstractNameFilterService } from './abstract-name-filter-service'
@Injectable({
providedIn: 'root',
})
-export class UserService extends AbstractNameFilterService<PaperlessUser> {
+export class UserService extends AbstractNameFilterService<User> {
constructor(
http: HttpClient,
private permissionService: PermissionsService
super(http, 'users')
}
- update(o: PaperlessUser): Observable<PaperlessUser> {
+ update(o: User): Observable<User> {
return this.getCached(o.id).pipe(
switchMap((initialUser) => {
initialUser.user_permissions?.forEach((perm) => {
import { Subscription } from 'rxjs'
import { environment } from 'src/environments/environment'
import { AppModule } from '../app.module'
-import {
- PaperlessUiSettings,
- SETTINGS_KEYS,
-} from '../data/paperless-uisettings'
+import { UiSettings, SETTINGS_KEYS } from '../data/ui-settings'
import { SettingsService } from './settings.service'
-import { PaperlessSavedView } from '../data/paperless-saved-view'
+import { SavedView } from '../data/saved-view'
describe('SettingsService', () => {
let httpTestingController: HttpTestingController
let cookieService: CookieService
let subscription: Subscription
- const ui_settings: PaperlessUiSettings = {
+ const ui_settings: UiSettings = {
user: {
username: 'testuser',
first_name: 'Test',
.flush(ui_settings)
const setSpy = jest.spyOn(settingsService, 'set')
settingsService.updateDashboardViewsSort([
- { id: 1 } as PaperlessSavedView,
- { id: 4 } as PaperlessSavedView,
+ { id: 1 } as SavedView,
+ { id: 4 } as SavedView,
])
expect(setSpy).toHaveBeenCalledWith(
SETTINGS_KEYS.DASHBOARD_VIEWS_SORT_ORDER,
[1, 4]
)
settingsService.updateSidebarViewsSort([
- { id: 1 } as PaperlessSavedView,
- { id: 4 } as PaperlessSavedView,
+ { id: 1 } as SavedView,
+ { id: 4 } as SavedView,
])
expect(setSpy).toHaveBeenCalledWith(
SETTINGS_KEYS.SIDEBAR_VIEWS_SORT_ORDER,
hexToHsl,
} from 'src/app/utils/color'
import { environment } from 'src/environments/environment'
-import {
- PaperlessUiSettings,
- SETTINGS,
- SETTINGS_KEYS,
-} from '../data/paperless-uisettings'
-import { PaperlessUser } from '../data/paperless-user'
+import { UiSettings, SETTINGS, SETTINGS_KEYS } from '../data/ui-settings'
+import { User } from '../data/user'
import { PermissionsService } from './permissions.service'
import { ToastService } from './toast.service'
-import { PaperlessSavedView } from '../data/paperless-saved-view'
+import { SavedView } from '../data/saved-view'
export interface LanguageOption {
code: string
protected baseUrl: string = environment.apiBaseUrl + 'ui_settings/'
private settings: Object = {}
- currentUser: PaperlessUser
+ currentUser: User
public settingsSaved: EventEmitter<any> = new EventEmitter()
}
// this is called by the app initializer in app.module
- public initializeSettings(): Observable<PaperlessUiSettings> {
- return this.http.get<PaperlessUiSettings>(this.baseUrl).pipe(
+ public initializeSettings(): Observable<UiSettings> {
+ return this.http.get<UiSettings>(this.baseUrl).pipe(
first(),
tap((uisettings) => {
Object.assign(this.settings, uisettings.settings)
}
}
- updateDashboardViewsSort(
- dashboardViews: PaperlessSavedView[]
- ): Observable<any> {
+ updateDashboardViewsSort(dashboardViews: SavedView[]): Observable<any> {
this.set(SETTINGS_KEYS.DASHBOARD_VIEWS_SORT_ORDER, [
...new Set(dashboardViews.map((v) => v.id)),
])
return this.storeSettings()
}
- updateSidebarViewsSort(sidebarViews: PaperlessSavedView[]): Observable<any> {
+ updateSidebarViewsSort(sidebarViews: SavedView[]): Observable<any> {
this.set(SETTINGS_KEYS.SIDEBAR_VIEWS_SORT_ORDER, [
...new Set(sidebarViews.map((v) => v.id)),
])