<?php
/**
 * @author  Magediary
 * @package Magediary_ProductQuestion
 */

// @codingStandardsIgnoreFile

namespace Magediary\ProductQuestion\Block\Adminhtml\Answer;

use Magento\Backend\Block\Widget\Form\Container;

class Add extends Container
{
    /**
     * Initialize add answer
     *
     * @return void
     */
    protected function _construct()
    {
        parent::_construct();

        $this->_blockGroup = 'Magediary_ProductQuestion';
        $this->_controller = 'adminhtml_answer';
        $this->_mode = 'add';

        $this->buttonList->update('save', 'label', __('Save Answer'));
        $this->buttonList->update('save', 'id', 'save_button');

        $this->buttonList->update('reset', 'id', 'reset_button');

        $this->_formScripts[] = '
            require(["prototype"], function(){
                toggleParentVis("add_answer_form");
                toggleVis("save_button");
                toggleVis("reset_button");
            });
        ';

        $this->_formInitScripts[] = '
            require(["jquery","prototype"], function(jQuery){
            window.answer = function() {
                return {
                    questionInfoUrl : null,
                    formHidden : true,
                    gridRowClick : function(data, click) {
                        if(Event.findElement(click,\'TR\').title){
                            answer.questionInfoUrl = Event.findElement(click,\'TR\').title;
                            answer.loadProductData();
                            answer.showForm();
                            answer.formHidden = false;
                        }
                    },
                    loadProductData : function() {
                        jQuery.ajax({
                            type: "POST",
                            url: answer.questionInfoUrl,
                            data: {
                                form_key: FORM_KEY
                            },
                            showLoader: true,
                            success: answer.reqSuccess,
                            error: answer.reqFailure
                        });
                    },
                    showForm : function() {
                        toggleParentVis("add_answer_form");
                        toggleVis("questionGrid");
                        toggleVis("save_button");
                        toggleVis("reset_button");
                    },

                    reqSuccess :function(response) {
                        if( response.error ) {
                            alert(response.message);
                        } else if( response.id ){
                            $("question_id").value = response.id;

                            $("question_detail").innerHTML = \'<a href="' .
            $this->getUrl(
                'magediary_productquestion/question/edit'
            ) .
            'id/\' + response.question_id + \'" target="_blank">\' + response.detail + \'</a>\';
                        } else if ( response.message ) {
                            alert(response.message);
                        }
                    }
                }
            }();
            });
           //]]>
        ';
    }

    /**
     * Get add new answer header text
     *
     * @return \Magento\Framework\Phrase
     */
    public function getHeaderText()
    {
        return __('Add Answer');
    }
}
