Loading admin/website-angular/src/app/pages/+products/+product/product.component.html +41 −11 Original line number Diff line number Diff line <nb-card> <nb-card-header> <!-- back --> <svg viewBox="0 0 24 24" class="control-icon control-icon-left" (click)="back()" > <path d="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z" /> </svg> <h1>{{ getTranslatedValue(product?.title) }}</h1> </nb-card-header> </nb-card> <div class="media w-75"> <img class="align-self-center img-thumbnail mr-3 w-25" src="{{ getTranslatedValue(product?.images) }}" alt="{{ getTranslatedValue(product?.title) }}"> <img class="align-self-center img-thumbnail mr-3 w-25" src="{{ getTranslatedValue(product?.images) }}" alt="{{ getTranslatedValue(product?.title) }}" /> <div class="media-body"> <p class="mt-2"> <strong>{{"CUSTOMERS_VIEW.DESCRIPTION" | translate }}:</strong> <strong>{{ 'CUSTOMERS_VIEW.DESCRIPTION' | translate }}:</strong> {{ getTranslatedValue(product?.description) }} </p> <p> <strong>{{"CUSTOMERS_VIEW.DETAILS" | translate }}:</strong> <strong>{{ 'CUSTOMERS_VIEW.DETAILS' | translate }}:</strong> {{ getTranslatedValue(product?.details) }} </p> <div> <div> <strong>{{"CUSTOMERS_VIEW.CATEGORY" | translate }}: </strong> <span *ngFor="let category of productCategoriesArr; let isLast=last"> {{ getTranslatedValue(category.name)}}{{isLast ? '' : ', '}} </span> <strong>{{ 'CUSTOMERS_VIEW.CATEGORY' | translate }}: </strong> <span *ngFor=" let category of productCategoriesArr; let isLast = last " > {{ getTranslatedValue(category.name) }}{{ isLast ? '' : ', ' }} </span> </div> </div> <br> <br /> <div class="input-group w-25"> <div class="input-group-prepend"> Loading @@ -34,12 +56,20 @@ <strong>Lang</strong> </label> </div> <select class="custom-select form-control" id="inputGroupSelect01" #langSelect (change)="onProductLangChange(langSelect.value)"> <option *ngFor="let lang of translateService.getLangs()" [value]="lang" [selected]="lang === productLangToShow"> <select class="custom-select form-control" id="inputGroupSelect01" #langSelect (change)="onProductLangChange(langSelect.value)" > <option *ngFor="let lang of translateService.getLangs()" [value]="lang" [selected]="lang === productLangToShow" > {{ getLanguageFullName(lang) }} </option> </select> </div> </div> </div> admin/website-angular/src/app/pages/+products/+product/product.component.scss +15 −0 Original line number Diff line number Diff line Loading @@ -24,3 +24,18 @@ div.input-group { img { min-height: 200px; } nb-card-header { min-height: 71px; position: relative; .control-icon-left { cursor: pointer; overflow: hidden; vertical-align: middle; width: 1.4em; height: 1.4em; float: left !important; margin-right: 1.25rem; } } admin/website-angular/src/app/pages/+products/+product/product.component.ts +6 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import { Subject } from 'rxjs'; import { first, takeUntil } from 'rxjs/operators'; import { TranslateService } from '@ngx-translate/core'; import { ProductsCategoryService } from '../../../@core/data/productsCategory.service'; import { Location } from '@angular/common'; @Component({ selector: 'ea-product', Loading @@ -26,6 +27,7 @@ export class ProductComponent implements OnInit, OnDestroy { constructor( public readonly translateService: TranslateService, private readonly _location: Location, private readonly _router: ActivatedRoute, private readonly _productsService: ProductsService, private readonly _productLocalesService: ProductLocalesService, Loading Loading @@ -104,6 +106,10 @@ export class ProductComponent implements OnInit, OnDestroy { ); } back() { this._location.back(); } private _loadProduct() { this._productsService .getProductById(this._productId) Loading Loading
admin/website-angular/src/app/pages/+products/+product/product.component.html +41 −11 Original line number Diff line number Diff line <nb-card> <nb-card-header> <!-- back --> <svg viewBox="0 0 24 24" class="control-icon control-icon-left" (click)="back()" > <path d="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z" /> </svg> <h1>{{ getTranslatedValue(product?.title) }}</h1> </nb-card-header> </nb-card> <div class="media w-75"> <img class="align-self-center img-thumbnail mr-3 w-25" src="{{ getTranslatedValue(product?.images) }}" alt="{{ getTranslatedValue(product?.title) }}"> <img class="align-self-center img-thumbnail mr-3 w-25" src="{{ getTranslatedValue(product?.images) }}" alt="{{ getTranslatedValue(product?.title) }}" /> <div class="media-body"> <p class="mt-2"> <strong>{{"CUSTOMERS_VIEW.DESCRIPTION" | translate }}:</strong> <strong>{{ 'CUSTOMERS_VIEW.DESCRIPTION' | translate }}:</strong> {{ getTranslatedValue(product?.description) }} </p> <p> <strong>{{"CUSTOMERS_VIEW.DETAILS" | translate }}:</strong> <strong>{{ 'CUSTOMERS_VIEW.DETAILS' | translate }}:</strong> {{ getTranslatedValue(product?.details) }} </p> <div> <div> <strong>{{"CUSTOMERS_VIEW.CATEGORY" | translate }}: </strong> <span *ngFor="let category of productCategoriesArr; let isLast=last"> {{ getTranslatedValue(category.name)}}{{isLast ? '' : ', '}} </span> <strong>{{ 'CUSTOMERS_VIEW.CATEGORY' | translate }}: </strong> <span *ngFor=" let category of productCategoriesArr; let isLast = last " > {{ getTranslatedValue(category.name) }}{{ isLast ? '' : ', ' }} </span> </div> </div> <br> <br /> <div class="input-group w-25"> <div class="input-group-prepend"> Loading @@ -34,12 +56,20 @@ <strong>Lang</strong> </label> </div> <select class="custom-select form-control" id="inputGroupSelect01" #langSelect (change)="onProductLangChange(langSelect.value)"> <option *ngFor="let lang of translateService.getLangs()" [value]="lang" [selected]="lang === productLangToShow"> <select class="custom-select form-control" id="inputGroupSelect01" #langSelect (change)="onProductLangChange(langSelect.value)" > <option *ngFor="let lang of translateService.getLangs()" [value]="lang" [selected]="lang === productLangToShow" > {{ getLanguageFullName(lang) }} </option> </select> </div> </div> </div>
admin/website-angular/src/app/pages/+products/+product/product.component.scss +15 −0 Original line number Diff line number Diff line Loading @@ -24,3 +24,18 @@ div.input-group { img { min-height: 200px; } nb-card-header { min-height: 71px; position: relative; .control-icon-left { cursor: pointer; overflow: hidden; vertical-align: middle; width: 1.4em; height: 1.4em; float: left !important; margin-right: 1.25rem; } }
admin/website-angular/src/app/pages/+products/+product/product.component.ts +6 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import { Subject } from 'rxjs'; import { first, takeUntil } from 'rxjs/operators'; import { TranslateService } from '@ngx-translate/core'; import { ProductsCategoryService } from '../../../@core/data/productsCategory.service'; import { Location } from '@angular/common'; @Component({ selector: 'ea-product', Loading @@ -26,6 +27,7 @@ export class ProductComponent implements OnInit, OnDestroy { constructor( public readonly translateService: TranslateService, private readonly _location: Location, private readonly _router: ActivatedRoute, private readonly _productsService: ProductsService, private readonly _productLocalesService: ProductLocalesService, Loading Loading @@ -104,6 +106,10 @@ export class ProductComponent implements OnInit, OnDestroy { ); } back() { this._location.back(); } private _loadProduct() { this._productsService .getProductById(this._productId) Loading