salesrulejs.phtml 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. ?>
  7. <script>
  8. require([
  9. 'jquery',
  10. "uiRegistry",
  11. 'Magento_Ui/js/modal/alert',
  12. 'prototype'
  13. ], function(jQuery, registry, alert) {
  14. //<![CDATA[
  15. function refreshCouponCodesGrid(grid, gridMassAction, transport) {
  16. grid.reload();
  17. gridMassAction.unselectAll();
  18. }
  19. function generateCouponCodes(idPrefix, generateUrl, grid) {
  20. $(idPrefix + 'information_fieldset').removeClassName('ignore-validate');
  21. var validationResult = $(idPrefix + 'information_fieldset').select('input',
  22. 'select', 'textarea').collect( function(elm) {
  23. return jQuery.validator.validateElement(elm);
  24. }).all();
  25. $(idPrefix + 'information_fieldset').addClassName('ignore-validate');
  26. if (!validationResult) {
  27. return;
  28. }
  29. var elements = $(idPrefix + 'information_fieldset').select('input', 'select', 'textarea');
  30. elements = elements.concat(
  31. $$('#rule_uses_per_coupon'),
  32. $$('#rule_uses_per_customer'),
  33. $$('#rule_to_date')
  34. );
  35. var params = Form.serializeElements(elements, true);
  36. params.form_key = FORM_KEY;
  37. if ($$('#'+idPrefix + 'information_fieldset .messages')) {
  38. $$('#'+idPrefix + 'information_fieldset .messages')[0].update();
  39. }
  40. if ($('messages')) {
  41. $('messages').update();
  42. }
  43. var couponCodesGrid = eval(grid);
  44. new Ajax.Request(generateUrl, {
  45. parameters :params,
  46. method :'post',
  47. onComplete : function (transport, param){
  48. var response = false;
  49. if (transport && transport.responseText) {
  50. try {
  51. response = JSON.parse(transport.responseText);
  52. } catch (e) {
  53. console.warn('An error occured while parsing response');
  54. }
  55. }
  56. if (couponCodesGrid) {
  57. couponCodesGrid.reload();
  58. }
  59. if (response && response.messages) {
  60. if ($$('#'+idPrefix + 'information_fieldset .messages')) {
  61. $$('#'+idPrefix + 'information_fieldset .messages')[0].update(response.messages);
  62. } else if ($('messages')) {
  63. $('messages').update(response.messages);
  64. }
  65. }
  66. if (response && response.error) {
  67. alert({
  68. content: response.error
  69. });
  70. }
  71. }
  72. });
  73. }
  74. window.generateCouponCodes = generateCouponCodes;
  75. window.refreshCouponCodesGrid = refreshCouponCodesGrid;
  76. });
  77. </script>