At the moment, there are a couple of things about the new rating functionalities on product reviews pages that can improved.
First, there is this hidden input element that uses the new HTML5 "hidden" attribute (hidden="hidden"). Please keep in mind that this attribute will not going to work in IE9 and IE10 browsers which nopCommerce still supports. In those browsers the element will go visible. Of course if nopCommerce is about to drop support for IE9 and 10, then this won't be an actual problem.
Another one. You have changed the rating elements markup from a html list layout (<ul>...</ul>) to a division layout (<div>...</div>), which is a good thing in this case. The problem is, that all the elements are now placed on the same html level, there is no wrapping element that separates the rating from the name. Also for any additional rating elements, the <label> element is missing and the name is rendered as unwrapped text, which is against the general logic of form elements in nopCommerce.
Please consider to improve these sections, by changing the markup to something like this for the main rating:
<div class="review-rating">
<div class="name-description">
<label asp-for="AddProductReview.Rating" asp-postfix=":"></label>
</div>
<div class="rating-wrapper">
<div class="label first">@T("Reviews.Fields.Rating.Bad")</div>
<div class="rating-options">
...
</div>
<div class="label last">@T("Reviews.Fields.Rating.Excellent")</div>
</div>
</div>
and like this for the additional ratings:
@if (Model.ReviewTypeList.Count > 0)
{
foreach (...)
{
...
<div class="review-rating">
<div class="name-description">
<label>@Html.Raw(additionalReview.Name):</label>
<div class="tooltip">
<span class="tooltiptext">@Html.Raw(additionalReview.Description)</span>
</div>
</div>
<div class="rating-wrapper">
<div class="label first">@T("Reviews.Fields.Rating.Bad")</div>
<div class="rating-options">
...
</div>
<div class="label last">@T("Reviews.Fields.Rating.Excellent")</div>
</div>
</div>
}
}
This way the form will be much more flexible for styling.
Thanks a lot
/ Hristo