mirror of
https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend
synced 2025-12-28 22:42:11 +01:00
chore(remission, navigation): update routing and remove unused helpers
This commit is contained in:
@@ -201,17 +201,12 @@ const routes: Routes = [
|
||||
).then((m) => m.routes),
|
||||
},
|
||||
{
|
||||
path: 'list',
|
||||
path: '',
|
||||
loadChildren: () =>
|
||||
import('@isa/remission/feature/remission-list').then(
|
||||
(m) => m.routes,
|
||||
),
|
||||
},
|
||||
{
|
||||
path: '',
|
||||
redirectTo: 'list',
|
||||
pathMatch: 'full',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
@@ -321,7 +321,6 @@
|
||||
'/',
|
||||
processService.activatedTab()?.id || processService.nextId(),
|
||||
'remission',
|
||||
'list',
|
||||
]"
|
||||
(isActiveChange)="focusSearchBox()"
|
||||
routerLinkActive="active"
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
import { inject } from '@angular/core';
|
||||
import { TabService } from './tab.service';
|
||||
|
||||
export function injectActivatedTabId() {
|
||||
/**
|
||||
* Injects the current activated tab as a signal.
|
||||
* @returns A signal that emits the current activated tab or null if no tab is activated.
|
||||
*/
|
||||
export function injectTab() {
|
||||
return inject(TabService).activatedTab;
|
||||
}
|
||||
|
||||
/**
|
||||
* Injects the current tab ID as a signal.
|
||||
* @returns A signal that emits the current tab ID or null if no tab is activated.
|
||||
*/
|
||||
export function injectTabId() {
|
||||
return inject(TabService).activatedTabId;
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ import { z } from 'zod';
|
||||
import { NgIconComponent, provideIcons } from '@ng-icons/core';
|
||||
import { isaActionChevronLeft } from '@isa/icons';
|
||||
import { ButtonComponent } from '@isa/ui/buttons';
|
||||
import { injectActivatedTabId } from '@isa/core/tabs';
|
||||
import { injectTabId } from '@isa/core/tabs';
|
||||
import { Location } from '@angular/common';
|
||||
import { ExpandableDirectives } from '@isa/ui/expandable';
|
||||
import { ProgressBarComponent } from '@isa/ui/progress-bar';
|
||||
@@ -52,7 +52,7 @@ export class ReturnDetailsComponent {
|
||||
#returnDetailsService = inject(ReturnDetailsService);
|
||||
#returnProcessStore = inject(ReturnProcessStore);
|
||||
|
||||
private processId = injectActivatedTabId();
|
||||
private processId = injectTabId();
|
||||
|
||||
private _router = inject(Router);
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ import { ReturnProcessComponent } from './return-process.component';
|
||||
|
||||
const mockActivatedProcessIdSignal = signal<number | null>(123);
|
||||
jest.mock('@isa/core/tabs', () => ({
|
||||
injectActivatedTabId: jest.fn(() => mockActivatedProcessIdSignal),
|
||||
injectTabId: jest.fn(() => mockActivatedProcessIdSignal),
|
||||
}));
|
||||
|
||||
jest.mock('scandit-web-datacapture-core', () => ({}));
|
||||
|
||||
@@ -18,7 +18,7 @@ import {
|
||||
ReturnProcessService,
|
||||
ReturnProcessStore,
|
||||
} from '@isa/oms/data-access';
|
||||
import { injectActivatedTabId } from '@isa/core/tabs';
|
||||
import { injectTabId } from '@isa/core/tabs';
|
||||
import { ReturnProcessItemComponent } from './return-process-item/return-process-item.component';
|
||||
import { Location } from '@angular/common';
|
||||
import { RouterLink } from '@angular/router';
|
||||
@@ -58,7 +58,7 @@ export class ReturnProcessComponent {
|
||||
#logger = logger();
|
||||
|
||||
/** Signal emitting the numeric ID of the currently active return process, derived from the route parameters. Null if no ID is present. */
|
||||
processId = injectActivatedTabId();
|
||||
processId = injectTabId();
|
||||
|
||||
#returnCanReturnService = inject(ReturnCanReturnService);
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { computed, inject, Injectable } from '@angular/core';
|
||||
import { CanDeactivate } from '@angular/router';
|
||||
import { firstValueFrom } from 'rxjs';
|
||||
import { injectActivatedTabId } from '@isa/core/tabs';
|
||||
import { injectTabId } from '@isa/core/tabs';
|
||||
import { ReturnTaskListStore } from '@isa/oms/data-access';
|
||||
import { ReturnReviewComponent } from '../return-review.component';
|
||||
import { ConfirmationDialogComponent, injectDialog } from '@isa/ui/dialog';
|
||||
@@ -15,7 +15,7 @@ export class UncompletedTasksGuard
|
||||
title: 'Aufgaben erledigen',
|
||||
});
|
||||
|
||||
processId = injectActivatedTabId();
|
||||
processId = injectTabId();
|
||||
|
||||
uncompletedTaskListItems = computed(() => {
|
||||
const processId = this.processId();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
||||
import { PrintReceiptsService, ReturnProcessStore } from '@isa/oms/data-access';
|
||||
import { injectActivatedTabId } from '@isa/core/tabs';
|
||||
import { injectTabId } from '@isa/core/tabs';
|
||||
import { ReturnTaskListComponent } from '@isa/oms/shared/task-list';
|
||||
import { ReturnReviewHeaderComponent } from './return-review-header/return-review-header.component';
|
||||
|
||||
@@ -15,7 +15,7 @@ import { ReturnReviewHeaderComponent } from './return-review-header/return-revie
|
||||
export class ReturnReviewComponent {
|
||||
#printReceiptsService = inject(PrintReceiptsService);
|
||||
#returnProcessStore = inject(ReturnProcessStore);
|
||||
processId = injectActivatedTabId();
|
||||
processId = injectTabId();
|
||||
|
||||
async printReceipt() {
|
||||
const processId = this.processId();
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
} from '@angular/core';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { CallbackResult, ListResponseArgs } from '@isa/common/data-access';
|
||||
import { injectActivatedTabId } from '@isa/core/tabs';
|
||||
import { injectTabId } from '@isa/core/tabs';
|
||||
import {
|
||||
ReceiptListItem,
|
||||
ReturnSearchStatus,
|
||||
@@ -38,7 +38,7 @@ export class ReturnSearchMainComponent {
|
||||
#route = inject(ActivatedRoute);
|
||||
#router = inject(Router);
|
||||
|
||||
private _processId = injectActivatedTabId();
|
||||
private _processId = injectTabId();
|
||||
private _filterService = inject(FilterService);
|
||||
private _returnSearchStore = inject(ReturnSearchStore);
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
inject,
|
||||
linkedSignal,
|
||||
} from '@angular/core';
|
||||
import { injectActivatedTabId } from '@isa/core/tabs';
|
||||
import { injectTabId } from '@isa/core/tabs';
|
||||
|
||||
import { ActivatedRoute, Router, RouterLink } from '@angular/router';
|
||||
import {
|
||||
@@ -72,7 +72,7 @@ export class ReturnSearchResultComponent implements AfterViewInit {
|
||||
restoreScrollPosition = injectRestoreScrollPosition();
|
||||
|
||||
/** Current process ID from the activated route */
|
||||
processId = injectActivatedTabId();
|
||||
processId = injectTabId();
|
||||
|
||||
/** Store for managing return search data and operations */
|
||||
returnSearchStore = inject(ReturnSearchStore);
|
||||
|
||||
@@ -10,7 +10,7 @@ import { ReturnSummaryItemComponent } from './return-summary-item/return-summary
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
|
||||
jest.mock('@isa/core/tabs', () => ({
|
||||
injectActivatedTabId: () => jest.fn(() => 1),
|
||||
injectTabId: () => jest.fn(() => 1),
|
||||
}));
|
||||
|
||||
const MOCK_RETURN_PROCESSES: ReturnProcess[] = [
|
||||
|
||||
@@ -6,7 +6,7 @@ import {
|
||||
signal,
|
||||
} from '@angular/core';
|
||||
import { ReturnSummaryItemComponent } from './return-summary-item/return-summary-item.component';
|
||||
import { injectActivatedTabId } from '@isa/core/tabs';
|
||||
import { injectTabId } from '@isa/core/tabs';
|
||||
import {
|
||||
ReturnProcess,
|
||||
ReturnProcessService,
|
||||
@@ -55,7 +55,7 @@ export class ReturnSummaryComponent {
|
||||
location = inject(Location);
|
||||
|
||||
/** The active process ID from the current route */
|
||||
processId = injectActivatedTabId();
|
||||
processId = injectTabId();
|
||||
|
||||
/** Filtered list of return processes for the current process ID */
|
||||
returnProcesses = computed<ReturnProcess[]>(() => {
|
||||
@@ -118,9 +118,13 @@ export class ReturnSummaryComponent {
|
||||
relativeTo: this.#activatedRoute,
|
||||
});
|
||||
} catch (error) {
|
||||
this.#logger.error('Error completing return process', error as Error, () => ({
|
||||
function: 'returnItemsAndPrintRecipt',
|
||||
}));
|
||||
this.#logger.error(
|
||||
'Error completing return process',
|
||||
error as Error,
|
||||
() => ({
|
||||
function: 'returnItemsAndPrintRecipt',
|
||||
}),
|
||||
);
|
||||
this.returnItemsAndPrintReciptStatus.set('error');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ import {
|
||||
} from '@isa/oms/data-access';
|
||||
import { IconButtonComponent } from '@isa/ui/buttons';
|
||||
import { firstValueFrom } from 'rxjs';
|
||||
import { injectActivatedTabId } from '@isa/core/tabs';
|
||||
import { injectTabId } from '@isa/core/tabs';
|
||||
import { logger, provideLoggerContext } from '@isa/core/logging';
|
||||
|
||||
// TODO: Komponente und logik benötigt review
|
||||
@@ -45,7 +45,7 @@ export class ReturnTaskListComponent {
|
||||
#returnTaskListStore = inject(ReturnTaskListStore);
|
||||
#logger = logger();
|
||||
|
||||
processId = injectActivatedTabId();
|
||||
processId = injectTabId();
|
||||
|
||||
appearanceClass = computed(
|
||||
() => `oms-shared-return-task-list__${this.appearance()}`,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { RemissionListType } from '@isa/remission/data-access';
|
||||
|
||||
export const remissionListTypeRouteMapping = {
|
||||
[RemissionListType.Pflicht]: '..',
|
||||
[RemissionListType.Abteilung]: 'department',
|
||||
[RemissionListType.Pflicht]: '../mandatory',
|
||||
[RemissionListType.Abteilung]: '../department',
|
||||
} as const;
|
||||
|
||||
@@ -160,9 +160,6 @@ export class RemissionListComponent {
|
||||
};
|
||||
});
|
||||
|
||||
// TODO (Info): Bei Add Item und
|
||||
// Bei remittieren eines Stapels die StockInformation für alle anderen Stapel mit der selben EAN
|
||||
// Muss InStock nochmal aufgerufen werden um die StockInformationen zu aktualisieren
|
||||
/**
|
||||
* Resource signal for fetching stock information for the current remission items.
|
||||
* Updates when the list of items changes.
|
||||
|
||||
@@ -6,7 +6,7 @@ import { RemissionListType } from '@isa/remission/data-access';
|
||||
|
||||
export const routes: Routes = [
|
||||
{
|
||||
path: '',
|
||||
path: 'mandatory',
|
||||
component: RemissionListComponent,
|
||||
resolve: { querySettings: querySettingsResolverFn },
|
||||
data: {
|
||||
@@ -23,4 +23,9 @@ export const routes: Routes = [
|
||||
remiType: RemissionListType.Abteilung,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: '',
|
||||
redirectTo: 'mandatory',
|
||||
pathMatch: 'full',
|
||||
},
|
||||
];
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
# remission-helpers
|
||||
|
||||
This library was generated with [Nx](https://nx.dev).
|
||||
|
||||
## Running unit tests
|
||||
|
||||
Run `nx test remission-helpers` to execute the unit tests.
|
||||
@@ -1,54 +0,0 @@
|
||||
const nx = require('@nx/eslint-plugin');
|
||||
const baseConfig = require('../../../eslint.config.js');
|
||||
|
||||
module.exports = [
|
||||
...baseConfig,
|
||||
{
|
||||
files: ['**/*.json'],
|
||||
rules: {
|
||||
'@nx/dependency-checks': [
|
||||
'error',
|
||||
{
|
||||
ignoredFiles: ['{projectRoot}/eslint.config.{js,cjs,mjs}'],
|
||||
},
|
||||
],
|
||||
},
|
||||
languageOptions: {
|
||||
parser: require('jsonc-eslint-parser'),
|
||||
},
|
||||
},
|
||||
...nx.configs['flat/angular'],
|
||||
...nx.configs['flat/angular-template'],
|
||||
{
|
||||
files: ['**/*.ts'],
|
||||
rules: {
|
||||
'@angular-eslint/directive-selector': [
|
||||
'error',
|
||||
{
|
||||
type: 'attribute',
|
||||
prefix: 'remi',
|
||||
style: 'camelCase',
|
||||
},
|
||||
],
|
||||
'@angular-eslint/component-selector': [
|
||||
'error',
|
||||
{
|
||||
type: 'element',
|
||||
prefix: 'remi',
|
||||
style: 'kebab-case',
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['**/*.html'],
|
||||
// Override or add rules here
|
||||
rules: {},
|
||||
},
|
||||
{
|
||||
files: ['**/*.ts'],
|
||||
rules: {
|
||||
'@angular-eslint/prefer-standalone': 'off',
|
||||
},
|
||||
},
|
||||
];
|
||||
@@ -1,21 +0,0 @@
|
||||
export default {
|
||||
displayName: 'remission-helpers',
|
||||
preset: '../../../jest.preset.js',
|
||||
setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'],
|
||||
coverageDirectory: '../../../coverage/libs/remission/helpers',
|
||||
transform: {
|
||||
'^.+\\.(ts|mjs|js|html)$': [
|
||||
'jest-preset-angular',
|
||||
{
|
||||
tsconfig: '<rootDir>/tsconfig.spec.json',
|
||||
stringifyContentPathRegex: '\\.(html|svg)$',
|
||||
},
|
||||
],
|
||||
},
|
||||
transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
|
||||
snapshotSerializers: [
|
||||
'jest-preset-angular/build/serializers/no-ng-attributes',
|
||||
'jest-preset-angular/build/serializers/ng-snapshot',
|
||||
'jest-preset-angular/build/serializers/html-comment',
|
||||
],
|
||||
};
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"name": "@isa/remission/helpers",
|
||||
"version": "0.0.1",
|
||||
"peerDependencies": {
|
||||
"@angular/common": "^20.0.0",
|
||||
"@angular/core": "^20.0.0"
|
||||
},
|
||||
"sideEffects": false
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
"name": "remission-helpers",
|
||||
"$schema": "../../../node_modules/nx/schemas/project-schema.json",
|
||||
"sourceRoot": "libs/remission/helpers/src",
|
||||
"prefix": "remi",
|
||||
"projectType": "library",
|
||||
"tags": [],
|
||||
"targets": {
|
||||
"test": {
|
||||
"executor": "@nx/jest:jest",
|
||||
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
|
||||
"options": {
|
||||
"jestConfig": "libs/remission/helpers/jest.config.ts"
|
||||
}
|
||||
},
|
||||
"lint": {
|
||||
"executor": "@nx/eslint:lint"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
// @ts-expect-error https://thymikee.github.io/jest-preset-angular/docs/getting-started/test-environment
|
||||
globalThis.ngJest = {
|
||||
testEnvironmentOptions: {
|
||||
errorOnUnknownElements: true,
|
||||
errorOnUnknownProperties: true,
|
||||
},
|
||||
};
|
||||
import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone';
|
||||
|
||||
setupZoneTestEnv();
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es2022",
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strict": true,
|
||||
"noImplicitOverride": true,
|
||||
"noPropertyAccessFromIndexSignature": true,
|
||||
"noImplicitReturns": true,
|
||||
"noFallthroughCasesInSwitch": true
|
||||
},
|
||||
"files": [],
|
||||
"include": [],
|
||||
"references": [
|
||||
{
|
||||
"path": "./tsconfig.lib.json"
|
||||
},
|
||||
{
|
||||
"path": "./tsconfig.spec.json"
|
||||
}
|
||||
],
|
||||
"extends": "../../../tsconfig.base.json",
|
||||
"angularCompilerOptions": {
|
||||
"enableI18nLegacyMessageIdFormat": false,
|
||||
"strictInjectionParameters": true,
|
||||
"strictInputAccessModifiers": true,
|
||||
"strictTemplates": true
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../../dist/out-tsc",
|
||||
"declaration": true,
|
||||
"declarationMap": true,
|
||||
"inlineSources": true,
|
||||
"types": [],
|
||||
"moduleResolution": "bundler"
|
||||
},
|
||||
"exclude": [
|
||||
"src/**/*.spec.ts",
|
||||
"src/test-setup.ts",
|
||||
"jest.config.ts",
|
||||
"src/**/*.test.ts"
|
||||
],
|
||||
"include": ["src/**/*.ts"]
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../../dist/out-tsc",
|
||||
"module": "commonjs",
|
||||
"target": "es2016",
|
||||
"types": ["jest", "node"]
|
||||
},
|
||||
"files": ["src/test-setup.ts"],
|
||||
"include": [
|
||||
"jest.config.ts",
|
||||
"src/**/*.test.ts",
|
||||
"src/**/*.spec.ts",
|
||||
"src/**/*.d.ts"
|
||||
]
|
||||
}
|
||||
@@ -80,7 +80,6 @@
|
||||
"@isa/remission/feature/remission-return-receipt-list": [
|
||||
"libs/remission/feature/remission-return-receipt-list/src/index.ts"
|
||||
],
|
||||
"@isa/remission/helpers": ["libs/remission/helpers/src/index.ts"],
|
||||
"@isa/remission/shared/product": [
|
||||
"libs/remission/shared/product/src/index.ts"
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user