You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

257 lines
13 KiB

  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. ?>
  7. <?php
  8. /**
  9. * Template for \Magento\Backend\Block\Widget\Grid
  10. *
  11. * getId()
  12. * getCollection()
  13. * getColumns()
  14. * getPagerVisibility()
  15. * getVarNamePage()
  16. *
  17. */
  18. /* @var $block \Magento\Backend\Block\Widget\Grid */
  19. /** @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer */
  20. $numColumns = $block->getColumns() !== null ? count($block->getColumns()): 0;
  21. ?>
  22. <?php if ($block->getCollection()): ?>
  23. <?php if ($block->canDisplayContainer()): ?>
  24. <div id="<?= $block->escapeHtml($block->getId()) ?>" data-grid-id="<?= $block->escapeHtml($block->getId()) ?>">
  25. <?php else: ?>
  26. <?= $block->getLayout()->getMessagesBlock()->getGroupedHtml() ?>
  27. <?php endif; ?>
  28. <div class="admin__data-grid-header admin__data-grid-toolbar">
  29. <?php $massActionAvailable = $block->getChildBlock('grid.massaction') &&
  30. $block->getChildBlock('grid.massaction')->isAvailable() ?>
  31. <?php if ($block->getPagerVisibility() || $block->getExportTypes() ||
  32. $block->getChildBlock('grid.columnSet')->getFilterVisibility() || $massActionAvailable): ?>
  33. <div class="admin__data-grid-header-row">
  34. <?php if ($massActionAvailable): ?>
  35. <?= $block->getMainButtonsHtml() ? '<div class="admin__filter-actions">' .
  36. $block->getMainButtonsHtml() . '</div>' : '' ?>
  37. <?php endif; ?>
  38. <?php if ($block->getChildBlock('grid.export')): ?>
  39. <?= $block->getChildHtml('grid.export') ?>
  40. <?php endif; ?>
  41. </div>
  42. <?php endif; ?>
  43. <div class="<?php if ($massActionAvailable) { echo '_massaction ';} ?>admin__data-grid-header-row">
  44. <?php if ($massActionAvailable): ?>
  45. <?= $block->getChildHtml('grid.massaction') ?>
  46. <?php else: ?>
  47. <?= $block->getMainButtonsHtml() ? '<div class="admin__filter-actions">' .
  48. $block->getMainButtonsHtml() . '</div>' : '' ?>
  49. <?php endif; ?>
  50. <?php $countRecords = $block->getCollection()->getSize(); ?>
  51. <div class="admin__control-support-text">
  52. <span id="<?= $block->escapeHtml($block->getHtmlId()) ?>-total-count"
  53. <?= /* @noEscape */ $block->getUiId('total-count') ?>>
  54. <?= /* @noEscape */ $countRecords ?>
  55. </span>
  56. <?= $block->escapeHtml(__('records found')) ?>
  57. <span id="<?= $block->escapeHtml($block->getHtmlId()) ?>_massaction-count"
  58. class="mass-select-info _empty"><strong data-role="counter">0</strong>
  59. <span><?= $block->escapeHtml(__('selected')) ?></span>
  60. </span>
  61. </div>
  62. <?php if ($block->getPagerVisibility()): ?>
  63. <div class="admin__data-grid-pager-wrap">
  64. <select name="<?= $block->escapeHtmlAttr($block->getVarNameLimit()) ?>"
  65. id="<?= $block->escapeHtml($block->getHtmlId()) ?>_page-limit"
  66. onchange="<?= /* @noEscape */ $block->getJsObjectName() ?>.loadByElement(this)"
  67. <?= /* @noEscape */ $block->getUiId('per-page') ?>
  68. class="admin__control-select">
  69. <option value="20"<?php if ($block->getCollection()->getPageSize() == 20): ?>
  70. selected="selected"<?php endif; ?>>20
  71. </option>
  72. <option value="30"<?php if ($block->getCollection()->getPageSize() == 30): ?>
  73. selected="selected"<?php endif; ?>>30
  74. </option>
  75. <option value="50"<?php if ($block->getCollection()->getPageSize() == 50): ?>
  76. selected="selected"<?php endif; ?>>50
  77. </option>
  78. <option value="100"<?php if ($block->getCollection()->getPageSize() == 100): ?>
  79. selected="selected"<?php endif; ?>>100
  80. </option>
  81. <option value="200"<?php if ($block->getCollection()->getPageSize() == 200): ?>
  82. selected="selected"<?php endif; ?>>200
  83. </option>
  84. </select>
  85. <label for="<?= $block->escapeHtml($block->getHtmlId()) ?>_page-limit"
  86. class="admin__control-support-text"><?= $block->escapeHtml(__('per page')) ?></label>
  87. <div class="admin__data-grid-pager">
  88. <?php $_curPage = $block->getCollection()->getCurPage() ?>
  89. <?php $_lastPage = $block->getCollection()->getLastPageNumber() ?>
  90. <?php if ($_curPage > 1): ?>
  91. <button class="action-previous" type="button">
  92. <span><?= $block->escapeHtml(__('Previous page')) ?></span>
  93. </button>
  94. <?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
  95. 'onclick',
  96. /* @noEscape */ $block->getJsObjectName() . '.setPage(\'' .
  97. /* @noEscape */ ($_curPage - 1) . '\');event.preventDefault();',
  98. 'div#' . $block->escapeJs($block->getId()) .
  99. ' .admin__data-grid-pager button.action-previous:not(.disabled)'
  100. ) ?>
  101. <?php else: ?>
  102. <button type="button" class="action-previous disabled">
  103. <span><?= $block->escapeHtml(__('Previous page')) ?></span>
  104. </button>
  105. <?php endif; ?>
  106. <input type="text"
  107. id="<?= $block->escapeHtml($block->getHtmlId()) ?>_page-current"
  108. name="<?= $block->escapeHtmlAttr($block->getVarNamePage()) ?>"
  109. value="<?= $block->escapeHtmlAttr($_curPage) ?>"
  110. class="admin__control-text"
  111. <?= /* @noEscape */ $block->getUiId('current-page') ?> />
  112. <?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
  113. 'onkeypress',
  114. /* @noEscape */ $block->getJsObjectName() . '.inputPage(event, \'' .
  115. /* @noEscape */ $_lastPage . '\')',
  116. '#' . $block->escapeHtml($block->getHtmlId()) . '_page-current'
  117. ) ?>
  118. <label class="admin__control-support-text" for="<?= $block->escapeHtml($block->getHtmlId())
  119. ?>_page-current">
  120. <?= /* @noEscape */ __('of %1', '<span>' .
  121. $block->getCollection()->getLastPageNumber() . '</span>') ?>
  122. </label>
  123. <?php if ($_curPage < $_lastPage): ?>
  124. <button type="button" title="<?= $block->escapeHtmlAttr(__('Next page')) ?>"
  125. class="action-next">
  126. <span><?= $block->escapeHtml(__('Next page')) ?></span>
  127. </button>
  128. <?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
  129. 'onclick',
  130. /* @noEscape */ $block->getJsObjectName() . '.setPage(\'' .
  131. /* @noEscape */ ($_curPage + 1) . '\');event.preventDefault();',
  132. 'div#' . $block->escapeJs($block->getId()) .
  133. ' .admin__data-grid-pager button.action-next:not(.disabled)'
  134. ) ?>
  135. <?php else: ?>
  136. <button type="button" class="action-next disabled">
  137. <span><?= $block->escapeHtml(__('Next page')) ?></span>
  138. </button>
  139. <?php endif; ?>
  140. </div>
  141. </div>
  142. <?php endif ?>
  143. </div>
  144. </div>
  145. <div class="admin__data-grid-wrap admin__data-grid-wrap-static">
  146. <?php if ($block->getGridCssClass()): ?>
  147. <table class="<?= $block->escapeHtmlAttr($block->getGridCssClass()) ?> data-grid"
  148. id="<?= $block->escapeHtml($block->getId()) ?>_table">
  149. <!-- Rendering column set -->
  150. <?= $block->getChildHtml('grid.columnSet') ?>
  151. </table>
  152. <?php else: ?>
  153. <table class="data-grid" id="<?= $block->escapeHtml($block->getId()) ?>_table">
  154. <!-- Rendering column set -->
  155. <?= $block->getChildHtml('grid.columnSet') ?>
  156. </table>
  157. <?php if ($block->getChildBlock('grid.bottom.links')): ?>
  158. <?= $block->getChildHtml('grid.bottom.links') ?>
  159. <?php endif; ?>
  160. <?php endif ?>
  161. </div>
  162. <?php if ($block->canDisplayContainer()): ?>
  163. </div>
  164. <?php
  165. $scriptString = 'var deps = [];' . PHP_EOL;
  166. if ($block->getDependencyJsObject()) {
  167. $scriptString .= 'deps.push(\'uiRegistry\');' . PHP_EOL;
  168. }
  169. if (strpos($block->getRowClickCallback(), 'order.') !== false) {
  170. $scriptString .= 'deps.push(\'Magento_Sales/order/create/form\');' . PHP_EOL;
  171. $scriptString .= 'deps.push(\'jquery\');' . PHP_EOL;
  172. }
  173. $scriptString .= 'deps.push(\'mage/adminhtml/grid\');' . PHP_EOL;
  174. $scriptString .= '
  175. require(deps, function('. ($block->getDependencyJsObject() ? 'registry' : '') .'){' . PHP_EOL;
  176. //TODO: getJsObjectName and getRowClickCallback has unexpected behavior. Should be removed
  177. if ($block->getDependencyJsObject()) {
  178. $scriptString .= 'registry.get(\'' . $block->escapeJs($block->getDependencyJsObject()) .
  179. '\', function ('. $block->escapeJs($block->getDependencyJsObject()) . ') {' . PHP_EOL;
  180. }
  181. $scriptString .= $block->escapeJs($block->getJsObjectName()) . ' = new varienGrid(\'' .
  182. $block->escapeJs($block->getId()) . '\', \'' . $block->escapeJs($block->getGridUrl()) . '\', \'' .
  183. $block->escapeJs($block->getVarNamePage()) .'\', \'' .
  184. $block->escapeJs($block->getVarNameSort()) . '\', \'' .
  185. $block->escapeJs($block->getVarNameDir()) . '\', \'' . $block->escapeJs($block->getVarNameFilter()) .'\');
  186. ' . PHP_EOL;
  187. $scriptString .= $block->escapeJs($block->getJsObjectName()) . '.useAjax = ' .
  188. (/* @noEscape */ $block->escapeJs($block->getUseAjax()) ? 'true' : 'false') . ';' . PHP_EOL;
  189. if ($block->getRowClickCallback()) {
  190. $scriptString .= $block->escapeJs($block->getJsObjectName()) . '.rowClickCallback = ' .
  191. /* @noEscape */ $block->getRowClickCallback() . ';' . PHP_EOL;
  192. }
  193. if ($block->getCheckboxCheckCallback()) {
  194. $scriptString .= $block->escapeJs($block->getJsObjectName()) . '.checkboxCheckCallback = ' .
  195. /* @noEscape */ $block->getCheckboxCheckCallback() . ';' . PHP_EOL;
  196. }
  197. if ($block->getSortableUpdateCallback()) {
  198. $scriptString .= $block->escapeJs($block->getJsObjectName()) . '.sortableUpdateCallback = ' .
  199. /* @noEscape */ $block->getSortableUpdateCallback() . ';' . PHP_EOL;
  200. }
  201. if ($block->getFilterKeyPressCallback()) {
  202. $scriptString .= $block->escapeJs($block->getJsObjectName()) . '.filterKeyPressCallback = ' .
  203. /* @noEscape */ $block->getFilterKeyPressCallback() . ';' . PHP_EOL;
  204. }
  205. $scriptString .= $block->escapeJs($block->getJsObjectName()) . '.bindSortable();' . PHP_EOL;
  206. if ($block->getRowInitCallback()) {
  207. $scriptString .= $block->escapeJs($block->getJsObjectName()) . '.initRowCallback = ' .
  208. /* @noEscape */ $block->getRowInitCallback() . ';' . PHP_EOL;
  209. $scriptString .= $block->escapeJs($block->getJsObjectName()) . '..initGridRows();' . PHP_EOL;
  210. }
  211. if ($block->getChildBlock('grid.massaction') &&
  212. $block->getChildBlock('grid.massaction')->isAvailable()) {
  213. $scriptString .= /* @noEscape */ $block->getChildBlock('grid.massaction')->getJavaScript() . PHP_EOL;
  214. }
  215. $scriptString .= /* @noEscape */ $block->getAdditionalJavaScript() . PHP_EOL;
  216. if ($block->getDependencyJsObject()) {
  217. $scriptString .= '});' . PHP_EOL;
  218. }
  219. $scriptString .= '});' . PHP_EOL;
  220. echo /* @noEscape */ $secureRenderer->renderTag('script', [], $scriptString, false);
  221. ?>
  222. <?php endif; ?>
  223. <?php if ($block->getChildBlock('grid.js')): ?>
  224. <?= $block->getChildHtml('grid.js') ?>
  225. <?php endif; ?>
  226. <?php endif ?>