diff --git a/matsen-tool/src/app/_components/paging/paging.component.ts b/matsen-tool/src/app/_components/paging/paging.component.ts index 1f00393..6625cb3 100644 --- a/matsen-tool/src/app/_components/paging/paging.component.ts +++ b/matsen-tool/src/app/_components/paging/paging.component.ts @@ -111,4 +111,11 @@ export class PagingComponent implements OnInit, AfterViewInit { clearForm() { this.searchForm.get('inputText')!.setValue(''); } + + getSearchValue() { + if (this.searchable) { + return this.searchForm.get('inputText')!.value; + } + return undefined; + } } diff --git a/matsen-tool/src/app/_views/contacts/new-contact/new-contact.component.ts b/matsen-tool/src/app/_views/contacts/new-contact/new-contact.component.ts index 37a729b..4f836a1 100644 --- a/matsen-tool/src/app/_views/contacts/new-contact/new-contact.component.ts +++ b/matsen-tool/src/app/_views/contacts/new-contact/new-contact.component.ts @@ -2,7 +2,7 @@ import {AfterViewInit, Component, EventEmitter, Input, OnInit, Output} from '@an import {FormGroup} from "@angular/forms"; import {contactForm} from "@app/_forms/apiForms"; import {ContactJsonld, ContactService, MediaObjectService} from "@app/core/api/v1"; -import {Subscription, window} from "rxjs"; +import {firstValueFrom, Subscription, window} from "rxjs"; import {ModalStatus} from "@app/_helpers/modal.states"; import {FormGroupInitializer} from "@app/_helpers/formgroup.initializer"; import {TranslateService} from "@ngx-translate/core"; @@ -117,7 +117,7 @@ export class NewContactComponent implements OnInit, AfterViewInit { this.translateService.get('system.confirm-delete-image').subscribe((translation: string) => { confirmMessage = translation; }); - const userConfirmed = (window as any).confirm(confirmMessage); + const userConfirmed = confirm(confirmMessage); if (userConfirmed) { this.contactForm.patchValue({"image": null}); this.contactForm.patchValue({"imageUrl": null}); diff --git a/matsen-tool/src/app/_views/documents/new-document/new-document.component.ts b/matsen-tool/src/app/_views/documents/new-document/new-document.component.ts index 7c5109e..3ffc38f 100644 --- a/matsen-tool/src/app/_views/documents/new-document/new-document.component.ts +++ b/matsen-tool/src/app/_views/documents/new-document/new-document.component.ts @@ -163,7 +163,7 @@ export class NewDocumentComponent implements OnInit, AfterViewInit { this.translateService.get('system.confirm-delete-file').subscribe((translation: string) => { confirmMessage = translation; }); - const userConfirmed = window.confirm(confirmMessage); + const userConfirmed = confirm(confirmMessage); if (userConfirmed) { this.documentForm.patchValue({"documentObject": null}); this.documentForm.patchValue({"documentUrl": null}); diff --git a/matsen-tool/src/app/_views/partners/new-partner/new-partner.component.ts b/matsen-tool/src/app/_views/partners/new-partner/new-partner.component.ts index 4c22ef9..3332121 100644 --- a/matsen-tool/src/app/_views/partners/new-partner/new-partner.component.ts +++ b/matsen-tool/src/app/_views/partners/new-partner/new-partner.component.ts @@ -104,7 +104,7 @@ export class NewPartnerComponent implements OnInit { this.translateService.get('system.confirm-delete-image').subscribe((translation: string) => { confirmMessage = translation; }); - const userConfirmed = window.confirm(confirmMessage); + const userConfirmed = confirm(confirmMessage); if (userConfirmed) { this.partnerForm.patchValue({"logo": null}); this.partnerForm.patchValue({"logoUrl": null}); diff --git a/matsen-tool/src/app/_views/posts/post-list/post-list.component.ts b/matsen-tool/src/app/_views/posts/post-list/post-list.component.ts index 29c2b2b..ab0e187 100644 --- a/matsen-tool/src/app/_views/posts/post-list/post-list.component.ts +++ b/matsen-tool/src/app/_views/posts/post-list/post-list.component.ts @@ -136,7 +136,14 @@ export class PostListComponent implements OnInit, AfterViewInit { openModalNewPost() { let post: PostJsonld = {} as PostJsonld; - post.partnerIri = this.partner.id; + + if (this.partner !== undefined) { + post.partnerIri = this.partner?.id; + } + if (this.sale !== undefined) { + post.partnerIri = this.sale?.partnerIri; + post.saleIri = this.sale?.id; + } this.appHelperService.openModal(NewPostComponent, { 'posting': post }, this.getPostsData); } diff --git a/matsen-tool/src/app/_views/products/new-product/new-product.component.ts b/matsen-tool/src/app/_views/products/new-product/new-product.component.ts index ba36dde..de29956 100644 --- a/matsen-tool/src/app/_views/products/new-product/new-product.component.ts +++ b/matsen-tool/src/app/_views/products/new-product/new-product.component.ts @@ -94,7 +94,7 @@ export class NewProductComponent implements OnInit { this.translateService.get('system.confirm-delete-image').subscribe((translation: string) => { confirmMessage = translation; }); - const userConfirmed = window.confirm(confirmMessage); + const userConfirmed = confirm(confirmMessage); if (userConfirmed) { this.productForm.patchValue({"image": null}); this.productForm.patchValue({"imageUrl": null}); diff --git a/matsen-tool/src/app/_views/products/product-list/product-list.component.html b/matsen-tool/src/app/_views/products/product-list/product-list.component.html index 1c1f89c..c9bb532 100644 --- a/matsen-tool/src/app/_views/products/product-list/product-list.component.html +++ b/matsen-tool/src/app/_views/products/product-list/product-list.component.html @@ -5,11 +5,11 @@
- @@ -27,7 +27,7 @@ {{ 'overview.number' | translate }} @@ -36,10 +36,12 @@ {{ 'overview.image' | translate }} @@ -49,25 +51,9 @@ {{ 'overview.productname' | translate }} - - - - - - - - - - @@ -76,8 +62,7 @@ {{ 'overview.unassign' | translate }} diff --git a/matsen-tool/src/app/_views/products/product-list/product-list.component.ts b/matsen-tool/src/app/_views/products/product-list/product-list.component.ts index 6c4a593..c44d745 100644 --- a/matsen-tool/src/app/_views/products/product-list/product-list.component.ts +++ b/matsen-tool/src/app/_views/products/product-list/product-list.component.ts @@ -3,9 +3,9 @@ import {MatSort, Sort} from "@angular/material/sort"; import {PagingComponent} from "@app/_components/paging/paging.component"; import {Subscription} from "rxjs"; import { - ContactJsonld, ContactPartnerProductJsonld, ContactPartnerProductService, + ContactJsonld, ContactPartnerProductJsonld, ContactPartnerProductService, PartnerFollowJsonld, PartnerJsonld, PartnerProductJsonld, - PartnerProductService, PostJsonld, + PartnerProductService, ProductJsonld, ProductService, UserJsonld, @@ -18,6 +18,7 @@ import {OrderFilter} from "@app/_models/orderFilter"; import {NewProductComponent} from "@app/_views/products/new-product/new-product.component"; import {AssignProductComponent} from "@app/_views/products/assign-product/assign-product.component"; import {TranslateService} from "@ngx-translate/core"; +type GeneralDataSource = MatTableDataSource; @Component({ selector: 'app-product-list', @@ -36,7 +37,14 @@ export class ProductListComponent implements OnInit, AfterViewInit { protected productsSub: Subscription; protected products: Array; - protected dataSource; + protected userProducts: Array; + protected partnerProducts: Array; + protected contactPartnerProducts: Array; + + protected dataSourceProducts; + protected dataSourceUserProducts; + protected dataSourcePartnerProducts; + protected dataSourceContactPartnerProducts; protected bShowNewProductButton: boolean; protected nameOrderAsc: OrderFilter; @@ -50,11 +58,17 @@ export class ProductListComponent implements OnInit, AfterViewInit { protected appHelperService: AppHelperService, ) { this.sort = new MatSort(); - this.displayedColumns = ['details', 'pos', 'image', 'name', 'storage', 'number']; + this.displayedColumns = ['details', 'pos', 'image', 'name']; this.productsSub = new Subscription(); this.products = []; - this.dataSource = new MatTableDataSource(this.products); + this.userProducts = []; + this.partnerProducts = []; + this.contactPartnerProducts = []; + this.dataSourceProducts = new MatTableDataSource(this.products); + this.dataSourceUserProducts = new MatTableDataSource(this.userProducts); + this.dataSourcePartnerProducts = new MatTableDataSource(this.partnerProducts); + this.dataSourceContactPartnerProducts = new MatTableDataSource(this.contactPartnerProducts); this.bShowNewProductButton = true; this.nameOrderAsc = OrderFilter.Asc; } @@ -68,13 +82,24 @@ export class ProductListComponent implements OnInit, AfterViewInit { } ngAfterViewInit() { - this.dataSource.sort = this.sort; - this.dataSource.paginator = this.pagingComponent.paginator; + this.dataSourceProducts.sort = this.sort; + this.dataSourceProducts.paginator = this.pagingComponent.paginator; this.pagingComponent.getData(); } - getData = (searchValue = undefined) => { + getDataSource(): GeneralDataSource { + if (this.user !== undefined) { + return this.dataSourceUserProducts; + } else if (this.partner !== undefined) { + return this.dataSourcePartnerProducts; + } else if (this.contact !== undefined) { + return this.dataSourceContactPartnerProducts; + } else { + return this.dataSourceProducts; + } + } + getData = (searchValue = undefined) => { if (this.user !== undefined) { this.getUserProducts(searchValue); } else if (this.partner !== undefined) { @@ -97,7 +122,7 @@ export class ProductListComponent implements OnInit, AfterViewInit { data => { this.products = data["hydra:member"]; this.pagingComponent.setDataLength(Number(data["hydra:totalItems"])); - this.dataSource = new MatTableDataSource(this.products); + this.dataSourceProducts = new MatTableDataSource(this.products); } ); } @@ -122,7 +147,7 @@ export class ProductListComponent implements OnInit, AfterViewInit { }) this.pagingComponent.setDataLength(Number(data["hydra:totalItems"])); - this.dataSource = new MatTableDataSource(this.products); + this.dataSourceProducts = new MatTableDataSource(this.products); } ); } @@ -139,15 +164,9 @@ export class ProductListComponent implements OnInit, AfterViewInit { searchValue, ).subscribe( data => { - let partnerProducts = data["hydra:member"]; - this.products = []; - partnerProducts.forEach(item => { - if (item.product) { - this.products.push(item.product); - } - }) + this.partnerProducts = data["hydra:member"]; this.pagingComponent.setDataLength(Number(data["hydra:totalItems"])); - this.dataSource = new MatTableDataSource(this.products); + this.dataSourcePartnerProducts = new MatTableDataSource(this.partnerProducts); } ); } @@ -161,19 +180,38 @@ export class ProductListComponent implements OnInit, AfterViewInit { searchValue ).subscribe( data => { - let contactProduct = data["hydra:member"]; - this.products = []; - contactProduct.forEach(item => { - if (item.product) { - this.products.push(item.product); - } - }) + this.contactPartnerProducts = data["hydra:member"]; this.pagingComponent.setDataLength(Number(data["hydra:totalItems"])); - this.dataSource = new MatTableDataSource(this.products); + this.dataSourceContactPartnerProducts = new MatTableDataSource(this.contactPartnerProducts); } ); } + getElementValue(element: any, field: any): any { + if (this.user !== undefined) { + return element['partner'][field]; + } else if (this.partner !== undefined) { + return element['partner'][field]; + } else if (this.contact !== undefined) { + return element[field]; + } else { + return element[field]; + } + } + + getProductFromElement(element: any): ProductJsonld { + console.log(element['product']); + if (this.user !== undefined) { + return element['product']; + } else if (this.partner !== undefined) { + return element['product']; + } else if (this.contact !== undefined) { + return element['product']; + } else { + return element; + } + } + onSortChange = (sortState: Sort) => { this.pagingComponent.resetPageIndex() @@ -188,7 +226,16 @@ export class ProductListComponent implements OnInit, AfterViewInit { } navigateToProductDetails(element: any) { - const product: ProductJsonld = element as ProductJsonld; + let product: ProductJsonld; + if (this.user !== undefined) { + product = element['partner']; + } else if (this.partner !== undefined) { + product = element['partner']; + } else if (this.contact !== undefined) { + product = element['partnerProduct']['partner']; + } else { + product = element; + } this.router.navigate(['/product', this.appHelperService.extractId(product.id)]); } @@ -232,15 +279,21 @@ export class ProductListComponent implements OnInit, AfterViewInit { this.translateService.get('system.confirm-unassign').subscribe((translation: string) => { confirmMessage = translation; }); - const userConfirmed = window.confirm(confirmMessage); + const userConfirmed = confirm(confirmMessage); if (userConfirmed) { console.log(element); - console.log(this.partner); - console.log(this.contact); if (this.partner) { - //this.contactPartnerProductService.contactPartnerProductsIdDelete(element.id) + this.partnerProductService.partnerProductsIdDelete(this.appHelperService.extractId(element.id)).subscribe( + data => { + this.getData(this.pagingComponent.getSearchValue()); + } + ); } else if (this.contact) { - //this.partnerProductService.partnerProductsIdDelete(element.id) + this.contactPartnerProductService.contactPartnerProductsIdDelete(this.appHelperService.extractId(element.id)).subscribe( + data => { + this.getData(this.pagingComponent.getSearchValue()); + } + ); } } } diff --git a/matsen-tool/src/app/_views/tasks/task-list/task-list.component.html b/matsen-tool/src/app/_views/tasks/task-list/task-list.component.html index cad66a5..9fcb6da 100644 --- a/matsen-tool/src/app/_views/tasks/task-list/task-list.component.html +++ b/matsen-tool/src/app/_views/tasks/task-list/task-list.component.html @@ -24,6 +24,12 @@
+ + {{ task.dueAt | date:'dd.MM.YYYY - HH:mm':'GMT+0000' }} Uhr
{{ pagingComponent.getPageSize() * (pagingComponent.getPageIndex()-1) + dataSource.filteredData.indexOf(element) + 1 }} + *matCellDef="let element">{{ pagingComponent.getPageSize() * (pagingComponent.getPageIndex()-1) + getDataSource().filteredData.indexOf(element) + 1 }} - {{ element.name }} - - {{ 'overview.storage' | translate }} - {{ element.storage }} - - {{ 'overview.number-long' | translate }} - {{ element.number }} + + {{ product.name }} + - +