Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.93 KB | None | 0 0
  1. namespace MyVendorLogViewerControllerAdminhtmlIndex;
  2.  
  3. use MagentoBackendAppActionContext;
  4. use MagentoFrameworkViewResultPageFactory;
  5. use MagentoBackendAppAction;
  6.  
  7. class Index extends Action
  8. {
  9. const ADMIN_RESOURCE = 'MyVendor_LogViewer::mylogviewer';
  10. /**
  11. * @var PageFactory
  12. */
  13. protected $resultPageFactory;
  14. /**
  15. * @param Context $context
  16. * @param PageFactory $resultPageFactory
  17. */
  18. public function __construct(
  19. Context $context,
  20. PageFactory $resultPageFactory
  21. )
  22. {
  23. $this->resultPageFactory = $resultPageFactory;
  24. parent::__construct($context);
  25. }
  26. /**
  27. * Index action
  28. *
  29. * @return MagentoBackendModelViewResultPage
  30. */
  31. public function execute()
  32. {
  33. /** @var MagentoBackendModelViewResultPage $resultPage */
  34. $resultPage = $this->resultPageFactory->create();
  35.  
  36. $resultPage->setActiveMenu('MyVendor_LogViewer::a_menu_item');
  37. $resultPage->addBreadcrumb(__('Log Viewer'), __('Log Viewer'));
  38. $resultPage->addBreadcrumb(__('Log Viewer'), __('Log Viewer'));
  39. $resultPage->getConfig()->getTitle()->prepend(__('Log Viewer'));
  40.  
  41. return $resultPage;
  42. }
  43. /**
  44. * {@inheritdoc}
  45. */
  46. protected function _isAllowed()
  47. {
  48. return $this->_authorization->isAllowed(self::ADMIN_RESOURCE);
  49. }
  50. }
  51.  
  52. <?xml version="1.0"?>
  53. <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
  54. <body>
  55. <referenceContainer name="content">
  56. <uiComponent name="my_logviewer_grid"/>
  57. </referenceContainer>
  58. </body>
  59. </page>
  60.  
  61. <settings>
  62. <spinner>my_logviewer_columns</spinner>
  63. <deps>
  64. <dep>my_logviewer_grid.my_logviewer_grid_data_source</dep>
  65. </deps>
  66. </settings>
  67.  
  68. <dataSource name="my_logviewer_grid_data_source">
  69. <argument name="dataProvider" xsi:type="configurableObject">
  70. <argument name="class" xsi:type="string">MyVendorLogViewerUiDataProviderLogsProvider</argument>
  71. <argument name="name" xsi:type="string">my_logviewer_grid_data_source</argument>
  72. <argument name="primaryFieldName" xsi:type="string">filename_id</argument>
  73. <argument name="requestFieldName" xsi:type="string">filename_id</argument>
  74. <argument name="data" xsi:type="array">
  75. <item name="config" xsi:type="array">
  76. <item name="update_url" xsi:type="url" path="mui/index/render"/>
  77. </item>
  78. </argument>
  79. </argument>
  80. <argument name="data" xsi:type="array">
  81. <item name="js_config" xsi:type="array">
  82. <item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
  83. </item>
  84. </argument>
  85. </dataSource>
  86. <listingToolbar name="listing_top">
  87. <argument name="data" xsi:type="array">
  88. <item name="config" xsi:type="array">
  89. <item name="sticky" xsi:type="boolean">true</item>
  90. </item>
  91. </argument>
  92.  
  93. <filters name="listing_filters" displayArea="dataGridFilters">
  94.  
  95. <settings>
  96. <dataScope>filters</dataScope>
  97. <childDefaults>
  98. <param name="imports" xsi:type="array">
  99. <item name="visible" xsi:type="string">my_logviewer_grid.my_logviewer_grid.listing_top.bookmarks:current.columns.${ $.index }.visible</item>
  100. </param>
  101. <param name="provider" xsi:type="string">my_logviewer_grid.my_logviewer_grid.listing_top.listing_filters</param>
  102. </childDefaults>
  103. <storageConfig>
  104. <namespace>current.filters</namespace>
  105. <provider>my_logviewer_grid.my_logviewer_grid.listing_top.bookmarks</provider>
  106. </storageConfig>
  107. </settings>
  108.  
  109. <filterInput name="filename_id" provider="${ $.parentName }">
  110. <settings>
  111. <label translate="true">Filename Id</label>
  112. <dataScope>filename_id</dataScope>
  113. </settings>
  114. </filterInput>
  115.  
  116. </filters>
  117.  
  118. <paging name="listing_paging">
  119. <argument name="data" xsi:type="array">
  120. <item name="config" xsi:type="array">
  121. <item name="selectProvider" xsi:type="string">my_logviewer_grid.my_logviewer_grid.my_logviewer_columns.ids</item>
  122. <item name="storageConfig" xsi:type="array">
  123. <item name="provider" xsi:type="string">my_logviewer_grid.my_logviewer_grid.listing_top.bookmarks</item>
  124. <item name="namespace" xsi:type="string">current.paging</item>
  125. </item>
  126. </item>
  127. </argument>
  128. </paging>
  129.  
  130. </listingToolbar>
  131.  
  132. <columns name="my_logviewer_columns">
  133. <argument name="data" xsi:type="array">
  134. <item name="config" xsi:type="array">
  135. <item name="childDefaults" xsi:type="array">
  136. <item name="fieldAction" xsi:type="array">
  137. <item name="provider" xsi:type="string">my_logviewer_grid.my_logviewer_grid.my_logviewer_columns.actions</item>
  138. <item name="target" xsi:type="string">applyAction</item>
  139. <item name="params" xsi:type="array">
  140. <item name="0" xsi:type="string">edit</item>
  141. <item name="1" xsi:type="string">${ $.$data.rowIndex }</item>
  142. </item>
  143. </item>
  144. <item name="controlVisibility" xsi:type="boolean">true</item>
  145. <item name="appendTo" xsi:type="string">my_logviewer_grid.my_logviewer_grid.listing_top.columns_controls</item>
  146. <item name="storageConfig" xsi:type="array">
  147. <item name="provider" xsi:type="string">my_logviewer_grid.my_logviewer_grid.listing_top.bookmarks</item>
  148. <item name="root" xsi:type="string">columns.${ $.index }</item>
  149. <item name="namespace" xsi:type="string">current.${ $.storageConfig.root}</item>
  150. </item>
  151. </item>
  152. </item>
  153. </argument>
  154. <column name="filename_id">
  155. <argument name="data" xsi:type="array">
  156. <item name="js_config" xsi:type="array">
  157. <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item>
  158. </item>
  159. <item name="config" xsi:type="array">
  160. <item name="dataType" xsi:type="string">text</item>
  161. <item name="align" xsi:type="string">left</item>
  162. <item name="label" xsi:type="string" translate="true">File name</item>
  163. <item name="sortOrder" xsi:type="number">10</item>
  164. </item>
  165. </argument>
  166. </column>
  167.  
  168. <column name="other_val">
  169. <argument name="data" xsi:type="array">
  170. <item name="js_config" xsi:type="array">
  171. <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item>
  172. </item>
  173. <item name="config" xsi:type="array">
  174. <item name="dataType" xsi:type="string">text</item>
  175. <item name="align" xsi:type="string">left</item>
  176. <item name="label" xsi:type="string" translate="true">Other val</item>
  177. <item name="sortOrder" xsi:type="number">10</item>
  178. </item>
  179. </argument>
  180. </column>
  181.  
  182. </columns>
  183. </listing>
  184.  
  185. use MagentoUiDataProviderAbstractDataProvider;
  186. use MagentoFrameworkAppRequestHttp;
  187.  
  188. /**
  189. * Class ProductDataProvider
  190. */
  191. class LogsProvider extends AbstractDataProvider
  192. {
  193.  
  194. /**
  195. * @var MagentoUiDataProviderAddFieldToCollectionInterface[]
  196. */
  197. protected $addFieldStrategies;
  198.  
  199. /**
  200. * @var MagentoUiDataProviderAddFilterToCollectionInterface[]
  201. */
  202. protected $addFilterStrategies;
  203.  
  204. /**
  205. * @var MagentoFrameworkAppRequestHttp
  206. */
  207. protected $request;
  208.  
  209. /**
  210. * Construct
  211. *
  212. * @param string $name
  213. * @param string $primaryFieldName
  214. * @param string $requestFieldName
  215. * @param array $meta
  216. * @param array $data
  217. */
  218. public function __construct(
  219. $name,
  220. $primaryFieldName,
  221. $requestFieldName,
  222. Http $request,
  223. array $meta = [],
  224. array $data = []
  225. ) {
  226. parent::__construct($name, $primaryFieldName, $requestFieldName, $meta, $data);
  227. $this->request = $request;
  228. }
  229.  
  230. /**
  231. * Get data
  232. *
  233. * @return array
  234. */
  235. public function getData()
  236. {
  237. $items = [
  238. ['filename_id' => "1", 'other_val' => 'dddd'],
  239. ['filename_id' => "2", 'other_val' => 'dddd'],
  240. ['filename_id' => "3", 'other_val' => 'dddd'],
  241. ['filename_id' => "4", 'other_val' => 'dddd'],
  242. ['filename_id' => "5", 'other_val' => 'dddd'],
  243. ['filename_id' => "6", 'other_val' => 'dddd'],
  244. ['filename_id' => "7", 'other_val' => 'dddd'],
  245. ['filename_id' => "8", 'other_val' => 'dddd'],
  246. ['filename_id' => "9", 'other_val' => 'dddd'],
  247. ['filename_id' => "10", 'other_val' => 'dddd'],
  248. ['filename_id' => "11", 'other_val' => 'dddd'],
  249. ['filename_id' => "12", 'other_val' => 'dddd'],
  250. ['filename_id' => "13", 'other_val' => 'dddd'],
  251. ['filename_id' => "14", 'other_val' => 'dddd'],
  252. ['filename_id' => "15", 'other_val' => 'dddd'],
  253. ['filename_id' => "16", 'other_val' => 'dddd'],
  254. ['filename_id' => "17", 'other_val' => 'dddd'],
  255. ['filename_id' => "18", 'other_val' => 'dddd'],
  256. ['filename_id' => "19", 'other_val' => 'dddd'],
  257. ['filename_id' => "20", 'other_val' => 'dddd'],
  258. ['filename_id' => "21", 'other_val' => 'dddd'],
  259. ['filename_id' => "22", 'other_val' => 'dddd'],
  260. ['filename_id' => "23", 'other_val' => 'dddd'],
  261. ['filename_id' => "24", 'other_val' => 'dddd'],
  262. ['filename_id' => "25", 'other_val' => 'dddd'],
  263. ['filename_id' => "26", 'other_val' => 'dddd'],
  264. ['filename_id' => "27", 'other_val' => 'dddd'],
  265. ];
  266.  
  267. $pagesize = intval($this->request->getParam('paging')['pageSize']);
  268. $pageCurrent = intval($this->request->getParam('paging')['current']);
  269. $pageoffset = ($pageCurrent - 1)*$pagesize;
  270.  
  271. return [
  272. 'totalRecords' => count($items),
  273. 'items' => array_slice($items,$pageoffset , $pageoffset+$pagesize),
  274. ];
  275. }
  276.  
  277. // ###########################################
  278.  
  279. public function setLimit($offset, $size)
  280. {
  281. }
  282.  
  283. public function addOrder($field, $direction)
  284. {
  285. }
  286.  
  287. public function addFilter(MagentoFrameworkApiFilter $filter)
  288. {
  289. }
  290. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement