<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

/** @var Form $block */

use Magento\Review\Block\Form;

//phpcs:disable Generic.Files.LineLength

if (!$block->getButtonLockManager() && class_exists(\Magento\Framework\View\Element\ButtonLockManager::class)) {
    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    $block->setButtonLockManager(
        $objectManager->get(\Magento\Framework\View\Element\ButtonLockManager::class)
    );
}
/** @var $escaper \Magento\Framework\Escaper */
?>
<div class="block review-add">
    <div class="block-title"><strong><?= $escaper->escapeHtml(__('Write Your Own Review')) ?></strong></div>
<div class="block-content">
<?php if ($block->getAllowWriteReviewFlag()): ?>
<form action="<?= $escaper->escapeUrl($block->getAction()) ?>" class="review-form" method="post" id="review-form" data-role="product-review-form" data-bind="scope: 'review-form'">
    <?= $block->getBlockHtml('formkey') ?>
    <?= $block->getChildHtml('form_fields_before') ?>
    <fieldset class="fieldset review-fieldset" data-hasrequired="<?= $escaper->escapeHtmlAttr(__('* Required Fields')) ?>">
        <legend class="legend review-legend"><span><?= $escaper->escapeHtml(__("Write a Review")) ?></span><strong><?= $escaper->escapeHtml($block->getProductInfo()->getName()) ?></strong></legend>
        <?php if ($block->getRatings() && $block->getRatings()->getSize()): ?>
        <span id="input-message-box"></span>
        <fieldset class="field required review-field-ratings">
            <div class="control">
                <div class="nested" id="product-review-table">
                    <?php foreach ($block->getRatings() as $_rating): ?>
                        <div class="field choice review-field-rating">
							<label class="label" id="<?= $escaper->escapeHtml($_rating->getRatingCode()) ?>_rating_label"><span><?= $escaper->escapeHtml($_rating->getRatingCode()) ?></span></label>
                            <div class="control review-control-vote">
                            <?php $options = $_rating->getOptions();?>
                            <?php $iterator = 1; foreach ($options as $_option): ?>
                                <input
                                    type="radio"
                                    name="ratings[<?= $escaper->escapeHtmlAttr($_rating->getId()) ?>]"
                                    id="<?= $escaper->escapeHtmlAttr(str_replace(' ', '_', $_rating->getRatingCode())) ?>_<?= $escaper->escapeHtmlAttr($_option->getValue()) ?>"
                                    value="<?= $escaper->escapeHtmlAttr($_option->getId()) ?>"
                                    class="radio"
                                    data-validate="{ 'rating-required':true}"
                                    aria-labelledby="<?= $escaper->escapeHtmlAttr(str_replace(' ', '_', $_rating->getRatingCode())) ?>_rating_label <?= $escaper->escapeHtmlAttr(str_replace(' ', '_', $_rating->getRatingCode())) ?>_<?= $escaper->escapeHtmlAttr($_option->getValue()) ?>_label" />
                                <label
                                    class="rating-<?= $escaper->escapeHtmlAttr($iterator) ?>"
                                    for="<?= $escaper->escapeHtmlAttr(str_replace(' ', '_', $_rating->getRatingCode())) ?>_<?= $escaper->escapeHtmlAttr($_option->getValue()) ?>"
                                    title="<?= $escaper->escapeHtmlAttr(__('%1 %2', $iterator, $iterator > 1 ? __('stars') : __('star'))) ?>"
                                    id="<?= $escaper->escapeHtmlAttr(str_replace(' ', '_', $_rating->getRatingCode())) ?>_<?= $escaper->escapeHtmlAttr($_option->getValue()) ?>_label">
                                    <span><?= $escaper->escapeHtml(__('%1 %2', $iterator, $iterator > 1 ? __('stars') : __('star'))) ?></span>
                                </label>
                            <?php $iterator++; ?>
                            <?php endforeach; ?>
                            </div>
                        </div>
                    <?php endforeach; ?>
                </div>
                <input type="hidden" name="validate_rating" class="validate-rating" value="" />
            </div>
        </fieldset>
    <?php endif ?>
		<div class="review-fields-wrapper">
        <div class="field review-field-nickname required">
            <label for="nickname_field" class="label"><span><?= $escaper->escapeHtml(__('Nickname')) ?></span></label>
            <div class="control">
                <input type="text" name="nickname" id="nickname_field" class="input-text" data-validate="{required:true}" data-bind="value: nickname()" />
            </div>
        </div>
        <div class="field review-field-summary required">
            <label for="summary_field" class="label"><span><?= $escaper->escapeHtml(__('Summary')) ?></span></label>
            <div class="control">
                <input type="text" name="title" id="summary_field" class="input-text" data-validate="{required:true}" data-bind="value: review().title" />
            </div>
        </div>
        <div class="field review-field-text required">
            <label for="review_field" class="label"><span><?= $escaper->escapeHtml(__('Review')) ?></span></label>
            <div class="control">
                <textarea name="detail" id="review_field" cols="5" rows="3" data-validate="{required:true}" data-bind="value: review().detail"></textarea>
            </div>
        </div>
		<!-- ox-add-fields -->
        <fieldset class="fieldset additional_info">
            <?= $block->getChildHtml('form_additional_review_info') ?>
        </fieldset>
		<div class="actions-toolbar review-form-actions">
			<div class="primary actions-primary">
                <button type="submit" class="action submit primary"
                    <?php if (method_exists($block, 'getButtonLockManager') && $block->getButtonLockManager()->isDisabled('review_form_submit')): ?>
                        disabled="disabled"
                    <?php endif; ?>>
                    <span><?= $escaper->escapeHtml(__('Submit Review')) ?></span>
                </button>
			</div>
		</div>
		</div>
    </fieldset>

</form>
<script type="text/x-magento-init">
{
    "[data-role=product-review-form]": {
        "Magento_Ui/js/core/app": <?= /* @noEscape */ $block->getJsLayout() ?>
    },
    "#review-form": {
        "Magento_Review/js/error-placement": {},
        "Magento_Review/js/validate-review": {},
        "Magento_Review/js/submit-review": {}
    }
}
</script>
<?php else: ?>
    <div class="message info notlogged" id="review-form">
        <div>
            <?= $escaper->escapeHtml(__('Only registered users can write reviews. Please <a href="%1">Sign in</a> or <a href="%2">create an account</a>', $block->getLoginLink(), $block->getRegisterUrl()), ['a']) ?>
        </div>
    </div>
<?php endif ?>
</div>
</div>
