diff --git a/src/frontend/app/administration/shipping/shipping-administration.component.html b/src/frontend/app/administration/shipping/shipping-administration.component.html index a96c7203bc674e875a9220d5b0b0e392fbacd618..f50d939b8c5b4e906cb3ce761ff93d0355850baa 100644 --- a/src/frontend/app/administration/shipping/shipping-administration.component.html +++ b/src/frontend/app/administration/shipping/shipping-administration.component.html @@ -44,7 +44,7 @@ </div> <mat-list role="list"> <mat-list-item role="listitem" *ngFor="let option of shapingOptions"> - <mat-slide-toggle color="primary" name="{{option}}">{{lang['shipping_'+option]}}</mat-slide-toggle> + <mat-slide-toggle color="primary" name="{{option}}" [checked]="shipping.shapingOptions.indexOf(option) > -1" (change)="toggleShapingOption(option)">{{lang['shipping_'+option]}}</mat-slide-toggle> </mat-list-item> </mat-list> </div> @@ -120,7 +120,7 @@ </div> <div class="col-sm-6"> <mat-form-field> - <input matInput [(ngModel)]="shipping.login" required name="label" id="login" title="{{lang.login}}" + <input matInput [(ngModel)]="shipping.login" required name="login" id="login" title="{{lang.login}}" type="text" placeholder="{{lang.id}}" maxlength="255"> </mat-form-field> </div> diff --git a/src/frontend/app/administration/shipping/shipping-administration.component.scss b/src/frontend/app/administration/shipping/shipping-administration.component.scss index 1e02954df2566dd32e67d46c08a0992e7f00b318..a43ef8d85f1244c58c0a642ee2ed36227871c1fe 100644 --- a/src/frontend/app/administration/shipping/shipping-administration.component.scss +++ b/src/frontend/app/administration/shipping/shipping-administration.component.scss @@ -66,6 +66,7 @@ ::ng-deep.mat-form-field-suffix { color: $secondary; font-size: 15px; + top: 0; } } diff --git a/src/frontend/app/administration/shipping/shipping-administration.component.ts b/src/frontend/app/administration/shipping/shipping-administration.component.ts index c5bff94772568222695c530f6fe9c7732806a78c..0b62eb7b06299543fea678613c470cbd5e7e6342 100644 --- a/src/frontend/app/administration/shipping/shipping-administration.component.ts +++ b/src/frontend/app/administration/shipping/shipping-administration.component.ts @@ -5,6 +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'; declare function $j(selector: any): any; @@ -24,16 +25,18 @@ export class ShippingAdministrationComponent implements OnInit { lang: any = LANG; loading: boolean = false; + creationMode: boolean = true; shipping: any = { - label : '', - description : '', - shapingOptions : ['color', 'both_sides', 'address_page'], - envelopMode : 'small_simple', - sendMode : 'fast', - first_page_price : 0, - next_page_price : 0, - postage_price : 0, + label: '', + description: '', + shapingOptions: ['color', 'both_sides', 'address_page'], + envelopMode: 'small_simple', + sendMode: 'fast', + first_page_price: 0, + next_page_price: 0, + postage_price: 0, + login: '' }; shippingClone: any = null; @@ -56,9 +59,9 @@ export class ShippingAdministrationComponent implements OnInit { 'registered_mail_ar' ]; - - constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher, public http: HttpClient, private notify: NotificationService, private headerService: HeaderService) { + + constructor(changeDetectorRef: ChangeDetectorRef, media: MediaMatcher, public http: HttpClient, private route: ActivatedRoute, private notify: NotificationService, private headerService: HeaderService) { $j("link[href='merged_css.php']").remove(); this.mobileQuery = media.matchMedia('(max-width: 768px)'); this._mobileQueryListener = () => changeDetectorRef.detectChanges(); @@ -66,26 +69,58 @@ export class ShippingAdministrationComponent implements OnInit { } ngOnInit(): void { - this.headerService.setHeader(this.lang.shippingCreation); + window['MainHeaderComponent'].setSnav(this.sidenavLeft); window['MainHeaderComponent'].setSnavRight(null); - this.shippingClone = JSON.parse(JSON.stringify(this.shipping)); - this.loading = false; - /*this.http.get('../../rest/administration/shipping') - .subscribe((data: any) => { + this.route.params.subscribe(params => { + if (typeof params['id'] == "undefined") { + this.headerService.setHeader(this.lang.shippingCreation); + + this.creationMode = true; + this.shippingClone = JSON.parse(JSON.stringify(this.shipping)); + this.loading = false; - }, (err) => { - this.notify.handleErrors(err); - });*/ - + } else { + this.headerService.setHeader(this.lang.shippingModification); + this.creationMode = false; + + //FOR EXEMPLE + this.shipping = { + label: 'Envoi vers maileva', + description: 'Envoi vers maileva', + shapingOptions: ['color', 'address_page'], + envelopMode: 'small_double', + sendMode: 'economic', + first_page_price: 0.10, + next_page_price: 0.30, + postage_price: 3, + login: 'test' + }; + this.shippingClone = JSON.parse(JSON.stringify(this.shipping)); + this.loading = false; + // + + /*this.http.get('../../rest/administration/shipping/'+params['id']) + .subscribe((data: any) => { + this.shipping = data.shipping + this.shippingClone = JSON.parse(JSON.stringify(this.shipping)); + this.loading = false; + }, (err) => { + this.notify.handleErrors(err); + });*/ + + } + }); + + } onSubmit() { - /*this.http.put('../../rest/configurations/admin_email_server', this.shipping) + /*this.http.put('../../rest/administration/shipping', this.shipping) .subscribe((data: any) => { this.shippingClone = JSON.parse(JSON.stringify(this.shipping)); this.notify.success(this.lang.configurationUpdated); @@ -98,6 +133,15 @@ export class ShippingAdministrationComponent implements OnInit { return (JSON.stringify(this.shippingClone) === JSON.stringify(this.shipping)); } + toggleShapingOption(option: string) { + const index = this.shipping.shapingOptions.indexOf(option); + if (index > -1) { + this.shipping.shapingOptions.splice(index, 1); + } else { + this.shipping.shapingOptions.push(option); + } + } + cancelModification() { this.shipping = JSON.parse(JSON.stringify(this.shippingClone)); } diff --git a/src/frontend/app/administration/shipping/shippings-administration.component.html b/src/frontend/app/administration/shipping/shippings-administration.component.html index 2251d836bce326e789974930bbcc3ed73e477e37..14eb43a6cbc7e11d0935bcd71c71da7b3ced73d1 100644 --- a/src/frontend/app/administration/shipping/shippings-administration.component.html +++ b/src/frontend/app/administration/shipping/shippings-administration.component.html @@ -32,15 +32,15 @@ </div> </div> <mat-table #table [dataSource]="dataSource" matSort matSortActive="id" matSortDirection="asc"> - <ng-container matColumnDef="description"> - <mat-header-cell *matHeaderCellDef mat-sort-header [class.hide-for-mobile]="mobileQuery.matches">{{lang.description}}</mat-header-cell> + <ng-container matColumnDef="label"> + <mat-header-cell *matHeaderCellDef mat-sort-header [class.hide-for-mobile]="mobileQuery.matches">{{lang.label}}</mat-header-cell> <mat-cell *matCellDef="let element" [class.hide-for-mobile]="mobileQuery.matches"> - {{element.description}} </mat-cell> + {{element.label}} </mat-cell> </ng-container> - <ng-container matColumnDef="value"> - <mat-header-cell *matHeaderCellDef mat-sort-header>{{lang.value}}</mat-header-cell> + <ng-container matColumnDef="description"> + <mat-header-cell *matHeaderCellDef mat-sort-header>{{lang.description}}</mat-header-cell> <mat-cell *matCellDef="let element"> - {{element.value}} </mat-cell> + {{element.description}} </mat-cell> </ng-container> <ng-container matColumnDef="actions"> <mat-header-cell *matHeaderCellDef></mat-header-cell> diff --git a/src/frontend/app/administration/shipping/shippings-administration.component.ts b/src/frontend/app/administration/shipping/shippings-administration.component.ts index 74adcfa1c064659d6363c953248d6c38f07e208c..a6ce59ddf7a733a4a516aa87f552c080ea7818a3 100644 --- a/src/frontend/app/administration/shipping/shippings-administration.component.ts +++ b/src/frontend/app/administration/shipping/shippings-administration.component.ts @@ -22,7 +22,7 @@ export class ShippingsAdministrationComponent implements OnInit { coreUrl: string; lang: any = LANG; - shippings: any = {}; + shippings: any[] = []; loading: boolean = false; @@ -56,7 +56,23 @@ export class ShippingsAdministrationComponent implements OnInit { this.loading = true; - this.http.get(this.coreUrl + '../../rest/shippings') + //FOR EXAMPLE + this.shippings = [ + { + id: 1, + label: 'Envoi vers maileva', + description: 'Envoi vers maileva' + } + ]; + setTimeout(() => { + this.dataSource = new MatTableDataSource(this.shippings); + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + }, 0); + this.loading = false; + // + + /*this.http.get(this.coreUrl + '../../rest/shippings') .subscribe((data: any) => { this.shippings = data.shippings; @@ -67,7 +83,7 @@ export class ShippingsAdministrationComponent implements OnInit { }, 0); this.loading = false; - }); + });*/ } deleteShipping(id: number) {