Skip to content

Commit

Permalink
Add new field to the product specification (product collection) - Cus…
Browse files Browse the repository at this point in the history
…tom Name
  • Loading branch information
KrzysztofPajak committed Oct 14, 2021
1 parent 3a3d77a commit b695315
Show file tree
Hide file tree
Showing 10 changed files with 39 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public async Task<bool> Handle(AddProductSpecificationCommand request, Cancellat
AttributeTypeId = request.Model.AttributeTypeId,
SpecificationAttributeOptionId = request.Model.SpecificationAttributeOptionId,
SpecificationAttributeId = request.Model.SpecificationAttributeId,
CustomName = request.Model.CustomName,
CustomValue = request.Model.CustomValue,
AllowFiltering = request.Model.AllowFiltering,
ShowOnProductPage = request.Model.ShowOnProductPage,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ public async Task<bool> Handle(UpdateProductSpecificationCommand request, Cancel
}
else
{
psa.CustomName = request.Model.CustomName;
psa.CustomValue = request.Model.CustomValue;
}
psa.SpecificationAttributeId = request.Model.SpecificationAttributeId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ public partial class ProductSpecificationAttributeDto : BaseApiEntityModel
{
public string SpecificationAttributeId { get; set; }
public string SpecificationAttributeOptionId { get; set; }
public string CustomName { get; set; }
public string CustomValue { get; set; }
public bool AllowFiltering { get; set; }
public bool ShowOnProductPage { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ public partial class ProductSpecificationAttribute : SubBaseEntity
/// </summary>
public string SpecificationAttributeOptionId { get; set; }

/// <summary>
/// Gets or sets the custom name
/// </summary>
public string CustomName { get; set; }

/// <summary>
/// Gets or sets the custom value
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
asp-route-ProductId="@Context.Request.Query["ProductId"]"
asp-route-Id="@Context.Request.Query["Id"]">


<div asp-validation-summary="All"></div>
<input asp-for="ProductId" type="hidden" />
<input asp-for="Id" type="hidden" />
Expand Down Expand Up @@ -53,6 +52,13 @@
<span asp-validation-for="SpecificationAttributeOptionId"></span>
</div>
</div>
<div class="form-group" id="pnlCustomName">
<admin-label asp-for="CustomName" />
<div class="col-md-9 col-sm-9">
<admin-input asp-for="CustomName" />
<span asp-validation-for="CustomName"></span>
</div>
</div>
<div class="form-group" id="pnlCustomValue">
<admin-label asp-for="CustomValue" />
<div class="col-md-9 col-sm-9">
Expand Down Expand Up @@ -140,8 +146,12 @@
success: function (data) {
var ddlSpecOptions = $("#@Html.IdFor(model => model.SpecificationAttributeOptionId)");
ddlSpecOptions.html('');
$.each(data, function(id, option) {
ddlSpecOptions.append($('<option></option>').val(option.id).html(kendo.htmlEncode(option.name)));
$.each(data, function (id, option) {
var selected = '';
if ('@Model.SpecificationAttributeOptionId' == option.id) {
selected = ' selected '
}
ddlSpecOptions.append($('<option ' + selected+'></option>').val(option.id).html(kendo.htmlEncode(option.name)));
});
},
error: function(xhr, ajaxOptions, thrownError) {
Expand All @@ -162,20 +172,24 @@
if (selectedTypeId == @(((int)SpecificationAttributeType.Option).ToString())) {
$('#pnlSpecificationAttributeOptionId').show();
$('#pnlCustomValue').hide();
$('#pnlCustomName').hide();
$('#disableOnCustom').show();
$('#pnlAllowFiltering').show();
} else if (selectedTypeId == @(((int)SpecificationAttributeType.CustomText).ToString())) {
$('#pnlSpecificationAttributeOptionId').hide();
$('#pnlCustomName').show();
$('#pnlCustomValue').show();
$('#disableOnCustom').hide();
$('#pnlAllowFiltering').hide();
} else if (selectedTypeId == @(((int)SpecificationAttributeType.CustomHtmlText).ToString())) {
$('#pnlSpecificationAttributeOptionId').hide();
$('#pnlCustomName').show();
$('#pnlCustomValue').show();
$('#disableOnCustom').hide();
$('#pnlAllowFiltering').hide();
} else if (selectedTypeId == @(((int)SpecificationAttributeType.Hyperlink).ToString())) {
$('#pnlSpecificationAttributeOptionId').hide();
$('#pnlCustomName').show();
$('#pnlCustomValue').show();
$('#disableOnCustom').hide();
$('#pnlAllowFiltering').hide();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@
field: "ValueRaw",
encoded: false,
title: "@Loc["Admin.Catalog.Products.SpecificationAttributes.Fields.Value"]",
template: "# if(AttributeTypeId != 0) {# <a class='k-link btnMagnificPopup' href='@Url.Action("ProductSpecAttrPopup", "Product", new { area = Constants.AreaAdmin })/?productId=@(Model.Id)&id=#=Id#'>#=ValueRaw#</a> #} else {# <a class='k-link btnMagnificPopup' href='@Url.Action("ProductSpecAttrPopup", "Product", new { area = Constants.AreaAdmin })/?productId=@(Model.Id)&id=#=Id#'>#=AttributeName# : #=ValueRaw#</a> #} #"
template: "<a class='k-link btnMagnificPopup' href='@Url.Action("ProductSpecAttrPopup", "Product", new { area = Constants.AreaAdmin })/?productId=@(Model.Id)&id=#=Id#'>#=kendo.htmlEncode(AttributeName)# : #=ValueRaw# </a>"
}, {
field: "AllowFiltering",
title: "@Loc["Admin.Catalog.Products.SpecificationAttributes.Fields.AllowFiltering"]",
Expand Down
3 changes: 3 additions & 0 deletions src/Web/Grand.Web.Admin/Models/Catalog/ProductModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -474,6 +474,9 @@ public AddProductSpecificationAttributeModel()
[GrandResourceDisplayName("Admin.Catalog.Products.SpecificationAttributes.Fields.SpecificationAttributeOption")]
public string SpecificationAttributeOptionId { get; set; }

[GrandResourceDisplayName("Admin.Catalog.Products.SpecificationAttributes.Fields.CustomName")]
public string CustomName { get; set; }

[GrandResourceDisplayName("Admin.Catalog.Products.SpecificationAttributes.Fields.CustomValue")]
public string CustomValue { get; set; }

Expand Down
15 changes: 4 additions & 11 deletions src/Web/Grand.Web.Admin/Services/ProductViewModelService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2797,8 +2797,10 @@ public virtual async Task<IList<ProductSpecificationAttributeModel>> PrepareProd
AttributeTypeName = x.AttributeTypeId.GetTranslationEnum(_translationService, _workContext),
AllowFiltering = x.AllowFiltering,
ShowOnProductPage = x.ShowOnProductPage,
DisplayOrder = x.DisplayOrder
DisplayOrder = x.DisplayOrder,
AttributeName = x.CustomName
};

switch (x.AttributeTypeId)
{
case SpecificationAttributeType.Option:
Expand Down Expand Up @@ -2835,16 +2837,7 @@ public virtual async Task InsertProductSpecificationAttributeModel(ProductModel.
model.AllowFiltering = false;
model.SpecificationAttributeOptionId = null;
}

var psa = new ProductSpecificationAttribute {
AttributeTypeId = model.AttributeTypeId,
SpecificationAttributeOptionId = model.SpecificationAttributeOptionId,
SpecificationAttributeId = model.SpecificationAttributeId,
CustomValue = model.CustomValue,
AllowFiltering = model.AllowFiltering,
ShowOnProductPage = model.ShowOnProductPage,
DisplayOrder = model.DisplayOrder,
};
var psa = model.ToEntity();

await _specificationAttributeService.InsertProductSpecificationAttribute(psa, product.Id);
product.ProductSpecificationAttributes.Add(psa);
Expand Down
3 changes: 3 additions & 0 deletions src/Web/Grand.Web/App_Data/Resources/DefaultLanguage.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3699,6 +3699,9 @@
<Resource Name="Admin.Catalog.Products.SpecificationAttributes.Fields.AttributeType">
<Value>Attribute type</Value>
</Resource>
<Resource Name="Admin.Catalog.Products.SpecificationAttributes.Fields.CustomName">
<Value>Name</Value>
</Resource>
<Resource Name="Admin.Catalog.Products.SpecificationAttributes.Fields.CustomValue">
<Value>Value</Value>
</Resource>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ public async Task<IList<ProductSpecificationModel>> Handle(GetProductSpecificati
var spa = new List<ProductSpecificationModel>();
foreach (var item in request.Product.ProductSpecificationAttributes.Where(x => x.ShowOnProductPage).OrderBy(x => x.DisplayOrder))
{
var m = new ProductSpecificationModel();
var m = new ProductSpecificationModel {
SpecificationAttributeName = item.CustomName
};

switch (item.AttributeTypeId)
{
Expand Down

0 comments on commit b695315

Please sign in to comment.