From 22c66d0e7604cd2a44b83de61f276be041f39ffb Mon Sep 17 00:00:00 2001 From: Alex ORLUC <alex.orluc@maarch.org> Date: Tue, 19 Mar 2019 16:59:30 +0100 Subject: [PATCH] FEAT #9107 front shipping add / up --- .../controllers/ShippingController.php | 1 - .../shipping-administration.component.ts | 38 ++++++++++++++----- src/frontend/lang/lang-en.ts | 2 + src/frontend/lang/lang-fr.ts | 2 + src/frontend/lang/lang-nl.ts | 2 + 5 files changed, 35 insertions(+), 10 deletions(-) diff --git a/src/app/shipping/controllers/ShippingController.php b/src/app/shipping/controllers/ShippingController.php index 18d491da1e1..50356898d39 100755 --- a/src/app/shipping/controllers/ShippingController.php +++ b/src/app/shipping/controllers/ShippingController.php @@ -240,7 +240,6 @@ class ShippingController 'data' => ['Y'] ]); - print_r($allEntities); foreach ($allEntities as $key => $value) { $allEntities[$key]['id'] = (string)$value['id']; if (empty($value['parent_id'])) { diff --git a/src/frontend/app/administration/shipping/shipping-administration.component.ts b/src/frontend/app/administration/shipping/shipping-administration.component.ts index 4055a62f666..38f663035ae 100644 --- a/src/frontend/app/administration/shipping/shipping-administration.component.ts +++ b/src/frontend/app/administration/shipping/shipping-administration.component.ts @@ -5,7 +5,7 @@ import { LANG } from '../../translate.component'; import { MatSidenav } from '@angular/material'; import { NotificationService } from '../../notification.service'; import { HeaderService } from '../../../service/header.service'; -import { ActivatedRoute } from '@angular/router'; +import { ActivatedRoute, Router } from '@angular/router'; declare function $j(selector: any): any; @@ -48,6 +48,7 @@ export class ShippingAdministrationComponent implements OnInit { }; entities: any[] = []; + entitiesClone: any = null; shippingClone: any = null; shapingOptions: string[] = [ @@ -72,7 +73,7 @@ export class ShippingAdministrationComponent implements OnInit { - constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher, public http: HttpClient, private route: ActivatedRoute, private notify: NotificationService, private headerService: HeaderService) { + constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher, public http: HttpClient, private route: ActivatedRoute, private router: Router, private notify: NotificationService, private headerService: HeaderService) { $j("link[href='merged_css.php']").remove(); this.mobileQuery = media.matchMedia('(max-width: 768px)'); this._mobileQueryListener = () => changeDetectorRef.detectChanges(); @@ -94,7 +95,7 @@ export class ShippingAdministrationComponent implements OnInit { .subscribe((data: any) => { console.log(data); this.entities = data['entities']; - + this.entitiesClone = JSON.parse(JSON.stringify(this.entities)); setTimeout(() => { this.initEntitiesTree(this.entities); }, 0); @@ -111,10 +112,11 @@ export class ShippingAdministrationComponent implements OnInit { this.headerService.setHeader(this.lang.shippingModification); this.creationMode = false; - this.http.get('../../rest/administration/shipping/' + params['id']) + this.http.get('../../rest/administration/shippings/' + params['id']) .subscribe((data: any) => { this.shipping = data['shipping'] this.entities = data['entities']; + this.entitiesClone = JSON.parse(JSON.stringify(this.entities)); setTimeout(() => { this.initEntitiesTree(this.entities); @@ -132,10 +134,13 @@ export class ShippingAdministrationComponent implements OnInit { initEntitiesTree(entities: any) { $j('#jstree') - .on('select_node.jstree', function (e: any, data: any) { + .on('select_node.jstree', (e: any, data: any) => { if (data.event) { data.instance.select_node(data.node.children_d); + this.shipping.entities = data.selected; } + }).on('deselect_node.jstree', (e: any, data: any) => { + this.shipping.entities = data.selected; }) .jstree({ "checkbox": { three_state: false }, @@ -160,14 +165,26 @@ export class ShippingAdministrationComponent implements OnInit { onSubmit() { this.shipping.entities = $j('#jstree').jstree(true).get_checked(); - console.log(this.shipping); - /*this.http.put('../../rest/administration/shipping', this.shipping) + + if (this.creationMode) { + this.http.post('../../rest/administration/shippings', this.shipping) .subscribe((data: any) => { this.shippingClone = JSON.parse(JSON.stringify(this.shipping)); - this.notify.success(this.lang.configurationUpdated); + this.notify.success(this.lang.shippingAdded); + this.router.navigate(['/administration/shippings']); }, (err) => { this.notify.handleErrors(err); - });*/ + }); + } else { + this.http.put('../../rest/administration/shippings/'+this.shipping.id, this.shipping) + .subscribe((data: any) => { + this.shippingClone = JSON.parse(JSON.stringify(this.shipping)); + this.notify.success(this.lang.shippingUpdated); + this.router.navigate(['/administration/shippings']); + }, (err) => { + this.notify.handleErrors(err); + }); + } } checkModif() { @@ -185,5 +202,8 @@ export class ShippingAdministrationComponent implements OnInit { cancelModification() { this.shipping = JSON.parse(JSON.stringify(this.shippingClone)); + this.entities = JSON.parse(JSON.stringify(this.entitiesClone)); + $j('#jstree').jstree(true).destroy(); + this.initEntitiesTree(this.entities); } } diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts index 354383aa41c..c918c8c6cbc 100755 --- a/src/frontend/lang/lang-en.ts +++ b/src/frontend/lang/lang-en.ts @@ -903,6 +903,8 @@ export const LANG_EN = { "pricesInformations" : "Prices informations", "shippingModification" : "Shipping modification", "shippingCreation" : "Shipping creation", + "shippingAdded" : "Shipping added", + "shippingUpdated" : "Shipping updated", "shippingDeleted" : "Shipping deleted", "shippings" : "Shippings", }; diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts index 03be03d65bb..796d7d117f1 100755 --- a/src/frontend/lang/lang-fr.ts +++ b/src/frontend/lang/lang-fr.ts @@ -929,6 +929,8 @@ export const LANG_FR = { "pricesInformations" : "Tarifs indicatifs", "shippingModification" : "Modification du canal d'envoi", "shippingCreation" : "Création du canal d'envoi", + "shippingAdded" : "Canal d'envoi ajouté", + "shippingUpdated" : "Canal d'envoi modifié", "shippingDeleted" : "Canal d'envoi supprimé", "shippings" : "Canaux d'envoi", }; diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts index b2fd936723f..1873ab1dcbb 100755 --- a/src/frontend/lang/lang-nl.ts +++ b/src/frontend/lang/lang-nl.ts @@ -931,6 +931,8 @@ export const LANG_NL = { "pricesInformations" : "Prices informations", //_TO_TRANSLATE "shippingModification" : "Shipping modification", //_TO_TRANSLATE "shippingCreation" : "Shipping creation", //_TO_TRANSLATE + "shippingAdded" : "Shipping added", //_TO_TRANSLATE + "shippingUpdated" : "Shipping updated", //_TO_TRANSLATE "shippingDeleted" : "Shipping deleted", //_TO_TRANSLATE "shippings" : "Shippings", //_TO_TRANSLATE }; -- GitLab