warehouse frontend
This commit is contained in:
@@ -264,6 +264,10 @@ describe('PermissionsService', () => {
|
||||
'change_applicationconfiguration',
|
||||
'delete_applicationconfiguration',
|
||||
'view_applicationconfiguration',
|
||||
'change_warehouse',
|
||||
'view_warehouse',
|
||||
'add_warehouse',
|
||||
'delete_warehouse',
|
||||
],
|
||||
{
|
||||
username: 'testuser',
|
||||
|
||||
@@ -12,6 +12,7 @@ export enum PermissionAction {
|
||||
export enum PermissionType {
|
||||
Document = '%s_document',
|
||||
Tag = '%s_tag',
|
||||
Warehouse = '%s_warehouse',
|
||||
Correspondent = '%s_correspondent',
|
||||
DocumentType = '%s_documenttype',
|
||||
StoragePath = '%s_storagepath',
|
||||
|
||||
@@ -13,6 +13,8 @@ import { TagService } from './tag.service'
|
||||
import { DocumentSuggestions } from 'src/app/data/document-suggestions'
|
||||
import { queryParamsFromFilterRules } from '../../utils/query-params'
|
||||
import { StoragePathService } from './storage-path.service'
|
||||
import { WarehouseService } from './warehouse.service'
|
||||
|
||||
import {
|
||||
PermissionAction,
|
||||
PermissionType,
|
||||
@@ -26,6 +28,7 @@ export const DOCUMENT_SORT_FIELDS = [
|
||||
{ field: 'correspondent__name', name: $localize`Correspondent` },
|
||||
{ field: 'title', name: $localize`Title` },
|
||||
{ field: 'document_type__name', name: $localize`Document type` },
|
||||
{ field: 'warehouses__name', name: $localize`Warehouse` },
|
||||
{ field: 'created', name: $localize`Created` },
|
||||
{ field: 'added', name: $localize`Added` },
|
||||
{ field: 'modified', name: $localize`Modified` },
|
||||
@@ -51,6 +54,8 @@ export interface SelectionData {
|
||||
selected_correspondents: SelectionDataItem[]
|
||||
selected_tags: SelectionDataItem[]
|
||||
selected_document_types: SelectionDataItem[]
|
||||
selected_warehouses: SelectionDataItem[]
|
||||
|
||||
}
|
||||
|
||||
@Injectable({
|
||||
@@ -65,6 +70,7 @@ export class DocumentService extends AbstractPaperlessService<Document> {
|
||||
private documentTypeService: DocumentTypeService,
|
||||
private tagService: TagService,
|
||||
private storagePathService: StoragePathService,
|
||||
private warehouseService: WarehouseService,
|
||||
private permissionsService: PermissionsService,
|
||||
private settingsService: SettingsService
|
||||
) {
|
||||
@@ -116,6 +122,15 @@ export class DocumentService extends AbstractPaperlessService<Document> {
|
||||
) {
|
||||
doc.storage_path$ = this.storagePathService.getCached(doc.storage_path)
|
||||
}
|
||||
if (
|
||||
doc.warehouses &&
|
||||
this.permissionsService.currentUserCan(
|
||||
PermissionAction.View,
|
||||
PermissionType.Warehouse
|
||||
)
|
||||
) {
|
||||
doc.warehouses$ = this.warehouseService.getCached(doc.warehouses)
|
||||
}
|
||||
return doc
|
||||
}
|
||||
|
||||
|
||||
4
src-ui/src/app/services/rest/warehouse.service.spec.ts
Normal file
4
src-ui/src/app/services/rest/warehouse.service.spec.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
import { WarehouseService } from './warehouse.service'
|
||||
import { commonAbstractNameFilterPaperlessServiceTests } from './abstract-name-filter-service.spec'
|
||||
|
||||
commonAbstractNameFilterPaperlessServiceTests('warehouses', WarehouseService)
|
||||
13
src-ui/src/app/services/rest/warehouse.service.ts
Normal file
13
src-ui/src/app/services/rest/warehouse.service.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { HttpClient } from '@angular/common/http'
|
||||
import { Injectable } from '@angular/core'
|
||||
import { Warehouse } from 'src/app/data/warehouse'
|
||||
import { AbstractNameFilterService } from './abstract-name-filter-service'
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class WarehouseService extends AbstractNameFilterService<Warehouse> {
|
||||
constructor(http: HttpClient) {
|
||||
super(http, 'warehouses')
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user