Add.php 4.5 KB

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