Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reload all assets on sync #317

Merged
merged 21 commits into from
Oct 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
0036b52
feature: TRACEFOSS-XXX baseline flyway scripts into a base configuration
ds-lcapellino Oct 16, 2023
5fb96f9
Merge branch 'main' into chore/TRACEFOSS-XXX-baseline-flyway-migrations
ds-lcapellino Oct 17, 2023
0fff548
chore: TRACEFOSS-XXX rename baseline to version
ds-lcapellino Oct 17, 2023
033e82e
Merge pull request #677 from catenax-ng/chore/TRACEFOSS-XXX-baseline-…
ds-lcapellino Oct 17, 2023
04588b2
chore: TRACEFOSS-XXX refactoring for more reusable filtering specific…
ds-ext-sceronik Oct 19, 2023
9e15540
chore: TRACEFOSS-XXX update all shell descriptors by registry reload
ds-lcapellino Oct 19, 2023
a4ed698
chore: TRACEFOSS-XXX refactoring for more reusable filtering specific…
ds-ext-sceronik Oct 19, 2023
000e2bd
chore: TRACEFOSS-XXX refactoring for more reusable filtering specific…
ds-ext-sceronik Oct 19, 2023
badb1ca
chore: TRACEFOSS-XXX refactoring for more reusable filtering specific…
ds-ext-sceronik Oct 19, 2023
90eb767
chore: TRACEFOSS-XXX update all shell descriptors by registry reload
ds-lcapellino Oct 19, 2023
2cc2cf3
Revert "chore: TRACEFOSS-XXX update all shell descriptors by registry…
ds-lcapellino Oct 19, 2023
c50740b
Merge pull request #684 from catenax-ng/chore/TRACEFOSS-XXX-add-or-pr…
ds-ext-sceronik Oct 19, 2023
27ef4cd
Feature/tracefoss 2684 table settings (#682)
ds-mmaul Oct 19, 2023
e05be28
chore: TRACEFOSS-XXX added logging for irs response.
ds-mwesener Oct 20, 2023
e89a541
chore: TRACEFOSS-XXX added logging for irs response.
ds-mwesener Oct 20, 2023
59aaff2
Chore/tracefoss 2731 fix translations and part selection (#685)
ds-mmaul Oct 23, 2023
026980b
chore: TRACEFOSS-XXX update CHANGELOG.md
ds-lcapellino Oct 23, 2023
2855a5f
Merge pull request #683 from catenax-ng/chore/TRACEFOSS-XXX-rework-sh…
ds-mwesener Oct 23, 2023
5bc559c
Update Dependencies Backend Action
ds-mwesener Oct 23, 2023
5cc2458
Merge pull request #688 from catenax-ng/action/dependencies
ds-ext-sceronik Oct 23, 2023
814d781
chore: TRACEFOSS-XXX release 6.0.1
ds-mwesener Oct 23, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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