1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Review\Block\Adminhtml;
/**
* Adminhtml add Review main block
*
* @author Magento Core Team <core@magentocommerce.com>
*/
class Add extends \Magento\Backend\Block\Widget\Form\Container
{
/**
* Initialize add review
*
* @return void
*/
protected function _construct()
{
parent::_construct();
$this->_blockGroup = 'Magento_Review';
$this->_controller = 'adminhtml';
$this->_mode = 'add';
$this->buttonList->update('save', 'label', __('Save Review'));
$this->buttonList->update('save', 'id', 'save_button');
$this->buttonList->update('reset', 'id', 'reset_button');
$this->_formScripts[] = '
require(["prototype"], function(){
toggleParentVis("add_review_form");
toggleVis("save_button");
toggleVis("reset_button");
});
';
// @codingStandardsIgnoreStart
$this->_formInitScripts[] = '
require(["jquery","prototype"], function(jQuery){
window.review = function() {
return {
productInfoUrl : null,
formHidden : true,
gridRowClick : function(data, click) {
if(Event.findElement(click,\'TR\').title){
review.productInfoUrl = Event.findElement(click,\'TR\').title;
review.loadProductData();
review.showForm();
review.formHidden = false;
}
},
loadProductData : function() {
jQuery.ajax({
type: "GET",
url: review.productInfoUrl,
data: {
form_key: FORM_KEY
},
showLoader: true,
success: review.reqSuccess,
error: review.reqFailure
});
},
showForm : function() {
toggleParentVis("add_review_form");
toggleVis("productGrid");
toggleVis("save_button");
toggleVis("reset_button");
},
updateRating: function() {
elements = [$("select_stores"), $("rating_detail").getElementsBySelector("input[type=\'radio\']")].flatten();
$(\'save_button\').disabled = true;
var params = Form.serializeElements(elements);
if (!params.isAjax) {
params.isAjax = "true";
}
if (!params.form_key) {
params.form_key = FORM_KEY;
}
new Ajax.Updater("rating_detail", "' .
$this->getUrl(
'review/product/ratingItems'
) .
'", {parameters:params, evalScripts: true, onComplete:function(){ $(\'save_button\').disabled = false; } });
},
reqSuccess :function(response) {
if( response.error ) {
alert(response.message);
} else if( response.id ){
$("product_id").value = response.id;
$("product_name").innerHTML = \'<a href="' .
$this->getUrl(
'catalog/product/edit'
) .
'id/\' + response.id + \'" target="_blank">\' + response.name + \'</a>\';
} else if ( response.message ) {
alert(response.message);
}
}
}
}();
Event.observe(window, \'load\', function(){
if ($("select_stores")) {
Event.observe($("select_stores"), \'change\', review.updateRating);
}
});
});
//]]>
';
// @codingStandardsIgnoreEnd
}
/**
* Get add new review header text
*
* @return \Magento\Framework\Phrase
*/
public function getHeaderText()
{
return __('New Review');
}
}