Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 
 

224 lignes
7.7 KiB

  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. use Magento\Framework\App\TemplateTypesInterface;
  7. /* @var $block \Magento\Newsletter\Block\Adminhtml\Template\Edit */
  8. /** @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer */
  9. ?>
  10. <form action="<?= $block->escapeUrl($block->getSaveUrl()) ?>" method="post" id="newsletter_template_edit_form">
  11. <?= $block->getBlockHtml('formkey') ?>
  12. <div class="no-display">
  13. <input type="hidden" id="change_flag_element" name="_change_type_flag" value="" />
  14. <input type="hidden" id="save_as_flag" name="_save_as_flag"
  15. value="<?= $block->escapeHtmlAttr($block->getSaveAsFlag()) ?>" />
  16. </div>
  17. <?= /* @noEscape */ $block->getForm() ?>
  18. </form>
  19. <form action="<?= $block->escapeUrl($block->getPreviewUrl()) ?>" method="post" id="newsletter_template_preview_form"
  20. target="_blank">
  21. <div class="no-display">
  22. <input type="hidden" id="preview_type" name="type" value="<?= /* @noEscape */ $block->isTextType() ? 1 : 2 ?>"/>
  23. <input type="hidden" id="preview_text" name="text" value="" />
  24. <input type="hidden" id="preview_styles" name="styles" value="" />
  25. <input type="hidden" id="preview_id" name="id" value="" />
  26. <input type="hidden" name="form_key" value="<?= $block->escapeHtmlAttr($block->getFormKey()) ?>" >
  27. </div>
  28. </form>
  29. <?php $scriptString = <<<script
  30. require([
  31. 'jquery',
  32. 'wysiwygAdapter',
  33. 'Magento_Ui/js/modal/prompt',
  34. 'Magento_Ui/js/modal/confirm',
  35. 'mage/mage',
  36. 'prototype'
  37. ], function (jQuery, wysiwyg, prompt, confirm) {
  38. //<![CDATA[
  39. jQuery('#newsletter_template_edit_form').mage('form').mage('validation');
  40. jQuery('#newsletter_template_preview_form').mage('form').mage('validation');
  41. var templateControl = {
  42. unconvertedText: '',
  43. typeChange: false,
  44. templateName: false,
  45. id: 'text',
  46. events: {
  47. 'click [data-role=template-save]': 'save',
  48. 'click [data-role=template-save-as]': 'saveAs',
  49. 'click [data-role=template-preview]': 'preview',
  50. 'click [data-role=template-unstrip]': 'unStripTags',
  51. 'click [data-role=template-strip]': 'stripTags',
  52. 'click [data-role=template-delete]': 'deleteTemplate'
  53. },
  54. init: function () {
  55. if ($('convert_button_back')) {
  56. $('convert_button_back').hide();
  57. }
  58. wysiwyg.id = this.id;
  59. this.bindEvents();
  60. },
  61. bindEvents: function () {
  62. var events = this.events,
  63. eventName,
  64. selector,
  65. callback,
  66. key;
  67. for (key in events) {
  68. if (!events.hasOwnProperty(key)) {
  69. continue;
  70. }
  71. callback = this[events[key]];
  72. key = key.split(' ');
  73. eventName = key[0];
  74. selector = key.slice(1).join(' ');
  75. jQuery(selector).on(eventName, jQuery.proxy(callback, this));
  76. }
  77. },
  78. stripTags: function () {
  79. var self = this;
  80. confirm({
  81. content: "{$block->escapeJs(__('Are you sure that you want to strip all tags?'))}",
  82. actions: {
  83. confirm: function () {
  84. if (wysiwyg.activeEditor()) {
  85. wysiwyg.turnOff();
  86. wysiwyg.getToggleButton().hide();
  87. }
  88. self.unconvertedText = $(self.id).value;
  89. $('convert_button').hide();
  90. $('convert_button_back').show();
  91. $(self.id).value = $(self.id).value.stripScripts().stripTags();
  92. $('field_template_styles').hide();
  93. self.typeChange = true;
  94. }
  95. }
  96. });
  97. },
  98. unStripTags: function () {
  99. $('convert_button').show();
  100. $('convert_button_back').hide();
  101. $(this.id).value = this.unconvertedText;
  102. if (wysiwyg.activeEditor()) {
  103. wysiwyg.turnOn();
  104. wysiwyg.getToggleButton().show();
  105. }
  106. this.typeChange = false;
  107. $('field_template_styles').show();
  108. return false;
  109. },
  110. save: function () {
  111. if (this.typeChange) {
  112. $('change_flag_element').value = '1';
  113. }
  114. // Temporary solution will be replaced after refactoring of newsletter functionality
  115. jQuery('#newsletter_template_edit_form').triggerHandler('save');
  116. return false;
  117. },
  118. saveAs: function () {
  119. var self = this;
  120. if (this.typeChange) {
  121. $('change_flag_element').value = '1';
  122. }
  123. if (\$F('code').blank() || \$F('code') == templateControl.templateName) {
  124. prompt({
  125. content: '{$block->escapeJs(__('Please enter a new template name.'))}',
  126. value: templateControl.templateName + '{$block->escapeJs(__(' Copy'))}',
  127. actions: {
  128. confirm: function (value) {
  129. $('code').value = value;
  130. self._saveAs();
  131. return false;
  132. },
  133. cancel: function () {
  134. $('code').value = '';
  135. // Temporary solution will be replaced after refactoring of newsletter functionality
  136. jQuery('#newsletter_template_edit_form').triggerHandler('save');
  137. self._saveAs();
  138. return false;
  139. }
  140. }
  141. });
  142. }
  143. },
  144. _saveAs: function () {
  145. $('save_as_flag').value = '1';
  146. // Temporary solution will be replaced after refactoring of newsletter functionality
  147. jQuery('#newsletter_template_edit_form').triggerHandler('save');
  148. return false;
  149. },
  150. preview: function () {
  151. if (this.typeChange) {
  152. $('preview_type').value = {$block->escapeJs(TemplateTypesInterface::TYPE_TEXT)};
  153. } else {
  154. $('preview_type').value = {$block->escapeJs($block->getTemplateType())};
  155. }
  156. if (wysiwyg.activeEditor()) {
  157. $('preview_text').value = wysiwyg.getContent();
  158. } else {
  159. $('preview_text').value = $(this.id).value;
  160. }
  161. if ($('template_styles') != undefined) {
  162. $('preview_styles').value = $('template_styles').value;
  163. }
  164. if ($('id') != undefined) {
  165. $('preview_id').value = $('id').value;
  166. }
  167. // Temporary solution will be replaced after refactoring of newsletter functionality
  168. jQuery('#newsletter_template_preview_form').triggerHandler('save');
  169. return false;
  170. },
  171. deleteTemplate: function () {
  172. confirm({
  173. content: "{$block->escapeJs(__('Are you sure you want to delete this template?'))}",
  174. actions: {
  175. confirm: function () {
  176. window.location.href = '{$block->escapeJs($block->getDeleteUrl())}';
  177. }
  178. }
  179. });
  180. }
  181. };
  182. templateControl.init();
  183. templateControl.templateName = "{$block->escapeJs($block->getJsTemplateName())}";
  184. //]]>
  185. });
  186. script;
  187. ?>
  188. <?= /* @noEscape */ $secureRenderer->renderTag('script', [], $scriptString, false) ?>