mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-02-09 23:49:29 -06:00
Use an enum
This commit is contained in:
@@ -14,7 +14,10 @@ import {
|
|||||||
PermissionsService,
|
PermissionsService,
|
||||||
PermissionType,
|
PermissionType,
|
||||||
} from 'src/app/services/permissions.service'
|
} from 'src/app/services/permissions.service'
|
||||||
import { DocumentAttributesComponent } from './document-attributes.component'
|
import {
|
||||||
|
DocumentAttributesComponent,
|
||||||
|
DocumentAttributesSectionKind,
|
||||||
|
} from './document-attributes.component'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'pngx-dummy-section',
|
selector: 'pngx-dummy-section',
|
||||||
@@ -69,7 +72,7 @@ describe('DocumentAttributesComponent', () => {
|
|||||||
label: 'Tags',
|
label: 'Tags',
|
||||||
icon: 'tags',
|
icon: 'tags',
|
||||||
permissionType: PermissionType.Tag,
|
permissionType: PermissionType.Tag,
|
||||||
kind: 'attributeList',
|
kind: DocumentAttributesSectionKind.ManagementList,
|
||||||
component: DummySectionComponent,
|
component: DummySectionComponent,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -78,7 +81,7 @@ describe('DocumentAttributesComponent', () => {
|
|||||||
label: 'Custom fields',
|
label: 'Custom fields',
|
||||||
icon: 'ui-radios',
|
icon: 'ui-radios',
|
||||||
permissionType: PermissionType.CustomField,
|
permissionType: PermissionType.CustomField,
|
||||||
kind: 'customFields',
|
kind: DocumentAttributesSectionKind.CustomFields,
|
||||||
component: DummySectionComponent,
|
component: DummySectionComponent,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -40,7 +40,10 @@ enum DocumentAttributesNavIDs {
|
|||||||
CustomFields = 5,
|
CustomFields = 5,
|
||||||
}
|
}
|
||||||
|
|
||||||
type DocumentAttributesSectionKind = 'attributeList' | 'customFields'
|
export enum DocumentAttributesSectionKind {
|
||||||
|
ManagementList = 'managementList',
|
||||||
|
CustomFields = 'customFields',
|
||||||
|
}
|
||||||
|
|
||||||
interface DocumentAttributesSection {
|
interface DocumentAttributesSection {
|
||||||
id: DocumentAttributesNavIDs
|
id: DocumentAttributesNavIDs
|
||||||
@@ -87,7 +90,7 @@ export class DocumentAttributesComponent
|
|||||||
icon: 'tags',
|
icon: 'tags',
|
||||||
infoLink: 'usage/#terms-and-definitions',
|
infoLink: 'usage/#terms-and-definitions',
|
||||||
permissionType: PermissionType.Tag,
|
permissionType: PermissionType.Tag,
|
||||||
kind: 'attributeList',
|
kind: DocumentAttributesSectionKind.ManagementList,
|
||||||
component: TagListComponent,
|
component: TagListComponent,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -97,7 +100,7 @@ export class DocumentAttributesComponent
|
|||||||
icon: 'person',
|
icon: 'person',
|
||||||
infoLink: 'usage/#terms-and-definitions',
|
infoLink: 'usage/#terms-and-definitions',
|
||||||
permissionType: PermissionType.Correspondent,
|
permissionType: PermissionType.Correspondent,
|
||||||
kind: 'attributeList',
|
kind: DocumentAttributesSectionKind.ManagementList,
|
||||||
component: CorrespondentListComponent,
|
component: CorrespondentListComponent,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -107,7 +110,7 @@ export class DocumentAttributesComponent
|
|||||||
icon: 'hash',
|
icon: 'hash',
|
||||||
infoLink: 'usage/#terms-and-definitions',
|
infoLink: 'usage/#terms-and-definitions',
|
||||||
permissionType: PermissionType.DocumentType,
|
permissionType: PermissionType.DocumentType,
|
||||||
kind: 'attributeList',
|
kind: DocumentAttributesSectionKind.ManagementList,
|
||||||
component: DocumentTypeListComponent,
|
component: DocumentTypeListComponent,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -117,7 +120,7 @@ export class DocumentAttributesComponent
|
|||||||
icon: 'folder',
|
icon: 'folder',
|
||||||
infoLink: 'usage/#terms-and-definitions',
|
infoLink: 'usage/#terms-and-definitions',
|
||||||
permissionType: PermissionType.StoragePath,
|
permissionType: PermissionType.StoragePath,
|
||||||
kind: 'attributeList',
|
kind: DocumentAttributesSectionKind.ManagementList,
|
||||||
component: StoragePathListComponent,
|
component: StoragePathListComponent,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -127,7 +130,7 @@ export class DocumentAttributesComponent
|
|||||||
icon: 'ui-radios',
|
icon: 'ui-radios',
|
||||||
infoLink: 'usage/#custom-fields',
|
infoLink: 'usage/#custom-fields',
|
||||||
permissionType: PermissionType.CustomField,
|
permissionType: PermissionType.CustomField,
|
||||||
kind: 'customFields',
|
kind: DocumentAttributesSectionKind.CustomFields,
|
||||||
component: CustomFieldsComponent,
|
component: CustomFieldsComponent,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
@@ -156,13 +159,17 @@ export class DocumentAttributesComponent
|
|||||||
}
|
}
|
||||||
|
|
||||||
get activeAttributeList(): ManagementListComponent<any> | null {
|
get activeAttributeList(): ManagementListComponent<any> | null {
|
||||||
if (this.activeSection?.kind !== 'attributeList') return null
|
if (
|
||||||
|
this.activeSection?.kind !== DocumentAttributesSectionKind.ManagementList
|
||||||
|
)
|
||||||
|
return null
|
||||||
const instance = this.activeOutlet?.componentInstance
|
const instance = this.activeOutlet?.componentInstance
|
||||||
return instance instanceof ManagementListComponent ? instance : null
|
return instance instanceof ManagementListComponent ? instance : null
|
||||||
}
|
}
|
||||||
|
|
||||||
get activeCustomFields(): CustomFieldsComponent | null {
|
get activeCustomFields(): CustomFieldsComponent | null {
|
||||||
if (this.activeSection?.kind !== 'customFields') return null
|
if (this.activeSection?.kind !== DocumentAttributesSectionKind.CustomFields)
|
||||||
|
return null
|
||||||
const instance = this.activeOutlet?.componentInstance
|
const instance = this.activeOutlet?.componentInstance
|
||||||
return instance instanceof CustomFieldsComponent ? instance : null
|
return instance instanceof CustomFieldsComponent ? instance : null
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user