Skip to content

Commit

Permalink
Merge pull request #317 from catenax-ng/main
Browse files Browse the repository at this point in the history
Reload all assets on sync
  • Loading branch information
ds-mwesener authored Oct 23, 2023
2 parents 71729c2 + 814d781 commit 692bf1b
Show file tree
Hide file tree
Showing 79 changed files with 1,584 additions and 844 deletions.
92 changes: 87 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres
to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [UNRELEASED - DD.MM.YYYY]

### Added
- Added Table columns settings in part tables to show/hide/reorder table columns

### Changed
- Updated user manual to reflect the table column settings feature
- Fixed a bug which removed all parts asBuilt selection at once when creating notifications

### Removed


## [8.0.0 - 16.10.2023]

### Added
Expand Down Expand Up @@ -45,6 +57,7 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
- Changed date formats of assets to have offsetDateTime instead of Date or LocalDateTime
- Aligned date formats in the rest api for assets
- Increased version of jetty-http from 11.0.15 to 11.0.17 and excluded from edc package
- Reworked business logic of /registry/reload to always sync all assets

### Removed

Expand Down Expand Up @@ -161,10 +174,32 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

- Environment [TRACEFOSS-2164]: HTTP Requests for syncing the submodel server inoperable~~

## [6.0.1] - 2023-10-23
### Added
- All elements from 6.0.1-rc1,rc2,rc3,rc4


## [6.0.1-rc4]
### Added

### Changed
- updated IRS helm chart from 6.6.1 to 6.7.2
- updated policy related logic to reflect IRS changes

### Removed

## [6.0.1-rc2]
## [6.0.1-rc3] - 2023-08-31
### Added


### Changed

- Updated irs-registry-client from 1.1.0-SNAPSHOT to 1.2.0-SNAPSHOT
- Updated irs-helm from 6.4.1 to 6.5.0

### Removed

## [6.0.1-rc2]
### Added

- OAuth2 client credentials rest template interceptor
Expand All @@ -176,13 +211,60 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

- Changed digitalTwinRegistryRestTemplate to use token in requests
- Update asBuild test data to 1.5.3 and asPlanned to 1.5.1
- Changed transfer notification logic not to break iteration loop when sending notifications to bpn with more than 1
connector endpoints
- added handling for null manufacturerName in IrsJobResponse, if null is passed it is replaced with "
UNKNOWN_MANUFACTURER"
- Changed transfer notification logic not to break iteration loop when sending notifications to bpn with more than 1 connector endpoints
- added handling for null manufacturerName in IrsJobResponse, if null is passed it is replaced with "UNKNOWN_MANUFACTURER"

### Removed

## [6.0.0 - 2023-07-21]

### Added

- Moved all parts of app config to helm charts to be fully configurable
- Helmignore config params for wrong values.yaml files
- Home / Source URL in Helm Chart
- Name Overrides in Helmchart for pgadmin, irs-helm and tractusx-connector
- Added decentral registry approach
- Added discovery finder / edc discovery service for looking up edc urls of receiver of notifications
- Added about component with additional Workflow to load repo info into the component
- Add Transformer to support new EDC constraint operator format

### Changed

- Modified IRS Policies support to handle multiple policies
- Readme titles to match TRGs
- Updated Irs helm chart to 6.3.1
- Update EDC dependencies to 0.1.3
- Update implementation to use EDC 0.5.0
- Spring Security Config Update from 6.0.3 to 6.0.5
- Logic of commitId retrieval by frontend has changed
- Readme / Docker Notice information as required in TRGs
- Removed references to GitHub registry and added docker hub for tractusx instead
- Spring Boot Update from: 3.0.7 to 3.1.2
- Spring Core Update from: 6.0.8 to 6.0.11

### Removed
- unused classes and methods

### Known knowns

- Backend [TRACEFOSS-1458]: AdminView: No validation of BPN for BPN EDC URL mapping
- Backend [TRACEFOSS-589]: Backend API access without login returns incorrect HTTP status code (500 instead of 401)
- Backend [TRACEFOSS-2148]: Endpoints for parts and notifications returns unsorted list
---
- Frontend [TRACEFOSS-2149]: Sorting on empty table causes unhandled error view
---
- Security [TRACEFOSS-829]: CVE Strict-Transport-Security header - The HSTS Warning and Error may allow attackers to bypass HSTS
- Security [TRACEFOSS-830]: CVE one stack trace disclosure (Java) in the target web server's HTTP response
- Security [TRACEFOSS-919]: Authorization Bypass Through User-Controlled SQL Primary Key CWE ID 566
- Security [TRACEFOSS-984]: Improper Output Neutralization for Logs CWE ID 117
- Security [TRACEFOSS-1313]: Using components with known vulnerabilities
- Security [TRACEFOSS-1314]: Open Redirect - host header injection
- Security [TRACEFOSS-1315]: No additional authentication component (MFA) during login process
---
- Environment [TRACEFOSS-2164]: HTTP Requests for syncing the submodel server inoperable~~


## [6.0.0 - 2023-07-21]

### Added
Expand Down
4 changes: 2 additions & 2 deletions DEPENDENCIES_FRONTEND
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ npm/npmjs/-/bytes/3.1.2, MIT, approved, clearlydefined
npm/npmjs/-/cacache/16.1.3, ISC, approved, clearlydefined
npm/npmjs/-/cacache/17.0.4, ISC, approved, #7610
npm/npmjs/-/cachedir/2.3.0, MIT, approved, clearlydefined
npm/npmjs/-/call-bind/1.0.2, MIT, approved, clearlydefined
npm/npmjs/-/call-bind/1.0.2, MIT, approved, #11092
npm/npmjs/-/callsites/3.1.0, MIT, approved, clearlydefined
npm/npmjs/-/camelcase-css/2.0.1, MIT, approved, clearlydefined
npm/npmjs/-/camelcase-keys/6.2.2, MIT, approved, clearlydefined
Expand Down Expand Up @@ -434,7 +434,7 @@ npm/npmjs/-/has-ansi/4.0.1, MIT, approved, clearlydefined
npm/npmjs/-/has-bigints/1.0.2, MIT, approved, clearlydefined
npm/npmjs/-/has-flag/3.0.0, MIT, approved, clearlydefined
npm/npmjs/-/has-flag/4.0.0, MIT, approved, clearlydefined
npm/npmjs/-/has-property-descriptors/1.0.0, MIT, approved, clearlydefined
npm/npmjs/-/has-property-descriptors/1.0.0, MIT, approved, #11098
npm/npmjs/-/has-proto/1.0.1, MIT, approved, #6175
npm/npmjs/-/has-symbols/1.0.3, MIT, approved, clearlydefined
npm/npmjs/-/has-tostringtag/1.0.0, MIT, approved, clearlydefined
Expand Down
18 changes: 17 additions & 1 deletion docs/src/docs/user/user-manual.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,27 @@ List view of own Parts with AsPlanned Lifecycle.
Gives detailed information on the assets registered in the Digital Twin Registry of Catena-X for the company. This includes data based on the aspect models of Use Case Traceability: AsPlanned, SerialPart, Batch.
Parts that are in a quality alert are highlighted yellow.

=== Parts select / Quality alert
=== Parts selection -> Create Quality alert
Select one or multiple child components/parts/batches that are build into your part. Selection will enable you to create a quality alert (notification) to your customers. The quality alert will be added to a queue (queued & requested inbox) and not directly sent to the customers.

Once the quality alert is created you will get a pop-up and can directly navigate to the inbox for further action.

=== Parts table column settings
On the right upper site of a table there is a settings icon in which you can set the table columns to a desired view. With a click on it a dialog opens where you can change the settings of the corresponding table:

image::https://raw.githubusercontent.com/eclipse-tractusx/traceability-foss/main/docs/src/images/arc42/user-guide/table-settings-dialog.png[]


Hide/show table columns by clicking on the checkbox or the column name. It is possible to hide/show all columns by clicking on the "All"- checkbox.

The reset icon resets the table columns to its default view.

Reorder the table columns by selecting a list item (click on the right of the column name). By selecting the column, you can reorder it with the up and down arrow icons to move it in the front or back of other columns.

Apply your changes by clicking on the "Save" - button. If you want to discard your changes, simply press you "ESC" - button, click anywhere else except in the dialog or close it explicitely with the close icon on the upper right of the dialog.

The settings will be stored in the local storage of the browser and will be persisted until they get deleted.

=== Part details
Clicking on an item in the list opens "Part details" view.
More detailed information on the asset is listed as well as a part tree that visually shows the parts relations.
Expand Down
Binary file modified docs/src/images/arc42/user-guide/parts-list-view.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
25 changes: 25 additions & 0 deletions frontend/src/app/modules/core/user/table-settings.model.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/********************************************************************************
* Copyright (c) 2023 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Apache License, Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
* SPDX-License-Identifier: Apache-2.0
********************************************************************************/

export interface TableViewSettings {
columnsForDialog: string[], //--> string list in order how they are sorted
columnSettingsOptions: Map<string,boolean>, //--> in order of sorted Rows - also source for table -> convert to list of truth
columnsForTable: string[], //--> string list that saves the column string in the order of the dialog and only if they are true
filterColumnsForTable: string[],
}
61 changes: 61 additions & 0 deletions frontend/src/app/modules/core/user/table-settings.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/********************************************************************************
* Copyright (c) 2023 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Apache License, Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
* SPDX-License-Identifier: Apache-2.0
********************************************************************************/

import { Injectable } from '@angular/core';
import { PartTableType } from '@shared/components/table/table.model';
import { Subject } from 'rxjs';

@Injectable({
providedIn: 'root',
})
export class TableSettingsService {
private settingsKey = 'TableViewSettings';
private changeEvent = new Subject<void>();

storeTableSettings(partTableType: PartTableType, tableSettingsList: any ): void {
// before setting anything, all maps in new tableSettingList should be stringified
Object.keys(tableSettingsList).forEach(tableSetting => {
const newMap = tableSettingsList[tableSetting].columnSettingsOptions;
tableSettingsList[tableSetting].columnSettingsOptions = JSON.stringify(Array.from(newMap.entries()));
})
localStorage.setItem(this.settingsKey, JSON.stringify(tableSettingsList));
}

// this returns whole settings whether empty / not for part / etc.
getStoredTableSettings(): any {
const settingsJson = localStorage.getItem(this.settingsKey);
let settingsObject = settingsJson ? JSON.parse(settingsJson) : null;
if(!settingsObject) return;

// iterate through all tabletypes and parse columnSettingsOption to a map
Object.keys(settingsObject).forEach(tableSetting => {
settingsObject[tableSetting].columnSettingsOptions = new Map(JSON.parse(settingsObject[tableSetting].columnSettingsOptions));

});
return settingsObject;
}

emitChangeEvent() {
this.changeEvent.next();
}

getEvent() {
return this.changeEvent.asObservable();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ import { AlertHelperService } from '@page/alerts/core/alert-helper.service';
import { AlertsFacade } from '@page/alerts/core/alerts.facade';
import { NotificationMenuActionsAssembler } from '@shared/assembler/notificationMenuActions.assembler';
import { NotificationCommonModalComponent } from '@shared/components/notification-common-modal/notification-common-modal.component';
import { TableSortingUtil } from '@shared/components/table/table-sorting.util';
import { MenuActionConfig, TableEventConfig, TableHeaderSort } from '@shared/components/table/table.model';
import { TableSortingUtil } from '@shared/components/table/tableSortingUtil';
import { NotificationTabInformation } from '@shared/model/notification-tab-information';
import { Notification, NotificationStatusGroup } from '@shared/model/notification.model';
import { TranslationContext } from '@shared/model/translation-context.model';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ import { InvestigationDetailFacade } from '@page/investigations/core/investigati
import { InvestigationHelperService } from '@page/investigations/core/investigation-helper.service';
import { NotificationMenuActionsAssembler } from '@shared/assembler/notificationMenuActions.assembler';
import { NotificationCommonModalComponent } from '@shared/components/notification-common-modal/notification-common-modal.component';
import { TableSortingUtil } from '@shared/components/table/table-sorting.util';
import { MenuActionConfig, TableEventConfig, TableHeaderSort } from '@shared/components/table/table.model';
import { TableSortingUtil } from '@shared/components/table/tableSortingUtil';
import { NotificationTabInformation } from '@shared/model/notification-tab-information';
import { Notification, NotificationStatusGroup } from '@shared/model/notification.model';
import { TranslationContext } from '@shared/model/translation-context.model';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ import { OtherPartsFacade } from '@page/other-parts/core/other-parts.facade';
import { MainAspectType } from '@page/parts/model/mainAspectType.enum';
import { Part } from '@page/parts/model/parts.model';
import { PartsTableComponent } from '@shared/components/parts-table/parts-table.component';
import { TableSortingUtil } from '@shared/components/table/table-sorting.util';
import { PartTableType, TableEventConfig, TableHeaderSort } from '@shared/components/table/table.model';
import { TableSortingUtil } from '@shared/components/table/tableSortingUtil';
import { toAssetFilter, toGlobalSearchAssetFilter } from '@shared/helper/filter-helper';
import { View } from '@shared/model/view.model';
import { PartDetailsFacade } from '@shared/modules/part-details/core/partDetails.facade';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
<ng-template #mainTmp let-parts="view" let-customContext="customContext">
<app-parts-table class="supplier-parts-as-built-table"
[paginationData]="parts.data | formatPaginationSemanticDataModelToCamelCase"
[multiSelectActive]="true"
[selectedPartsInfoLabel]="'page.selectedParts.info'"
[selectedPartsActionLabel]="'page.selectedParts.action'"
[deselectTrigger]="deselectPartTrigger$ | async"
Expand All @@ -38,10 +39,9 @@
[labelId]="customContext.labelId"
(selected)="onSelectItem($event)"
(configChanged)="onAsBuiltTableConfigChange($event)"
(multiSelect)="onMultiSelect($event)"
(multiSelect)="currentSelectedItems$.next($event)"
(clickSelectAction)="isInvestigationOpen$.next(true)"
[multiSortList]="tableSupplierAsBuiltSortList"
[multiSelectActive]="true"
(filterActivated)="filterActivated(true, $event )"
[tableType]="PartTableType.AS_BUILT_SUPPLIER"
></app-parts-table>
Expand Down Expand Up @@ -69,7 +69,6 @@
[labelId]="customContext.labelId"
(selected)="onSelectItem($event)"
(configChanged)="onAsPlannedTableConfigChange($event)"
(multiSelect)="onMultiSelect($event)"
(clickSelectAction)="isInvestigationOpen$.next(true)"
[multiSortList]="tableSupplierAsPlannedSortList"
[multiSelectActive]="true"
Expand All @@ -95,11 +94,11 @@
<app-sidenav-wrapper [isOpen]="isInvestigationOpen$ | async" (sidenavAction)="isInvestigationOpen$.next($event)">
<app-request-investigation
*ngIf="isInvestigationOpen$ | async"
[selectedItems]="currentSelectedItems"
(deselectPart)="removeItemFromSelection($event)"
(restorePart)="addItemToSelection($event)"
(clearSelected)="clearSelected()"
(submitted)="submit()"
[selectedItems]="currentSelectedItems$ | async"
(deselectPart)="deselectPartTrigger$.next([$event])"
(restorePart)="addPartTrigger$.next($event)"
(clearSelected)="deselectPartTrigger$.next(currentSelectedItems$.value)"
(submitted)="isInvestigationOpen$.next(false)"
></app-request-investigation>
</app-sidenav-wrapper>

Loading

0 comments on commit 692bf1b

Please sign in to comment.