diff --git a/app/code/Magento/AdminNotification/Ui/Component/DataProvider/DataProvider.php b/app/code/Magento/AdminNotification/Ui/Component/DataProvider/DataProvider.php new file mode 100644 index 0000000000000000000000000000000000000000..296fcf5c461ad4521fed496e376ed9289f50cf0c --- /dev/null +++ b/app/code/Magento/AdminNotification/Ui/Component/DataProvider/DataProvider.php @@ -0,0 +1,36 @@ +<?php +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\AdminNotification\Ui\Component\DataProvider; + +use Magento\AdminNotification\Model\ResourceModel\System\Message\Collection\SynchronizedFactory; + +/** + * Class DataProvider + */ +class DataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider +{ + /** + * DataProvider constructor. + * @param string $name + * @param string $primaryFieldName + * @param string $requestFieldName + * @param SynchronizedFactory $messageCollectionFactory + * @param array $meta + * @param array $data + */ + public function __construct( + $name, + $primaryFieldName, + $requestFieldName, + SynchronizedFactory $messageCollectionFactory, + array $meta = [], + array $data = [] + ) { + $this->collection = $messageCollectionFactory->create(); + parent::__construct($name, $primaryFieldName, $requestFieldName, $meta, $data); + } +} diff --git a/app/code/Magento/AdminNotification/composer.json b/app/code/Magento/AdminNotification/composer.json index 0a29908b77f6f4f6511fe5671702217ef95ceb90..527268df36b41efe5078528138342a03fa33745d 100644 --- a/app/code/Magento/AdminNotification/composer.json +++ b/app/code/Magento/AdminNotification/composer.json @@ -7,6 +7,7 @@ "magento/module-backend": "100.2.*", "magento/module-media-storage": "100.2.*", "magento/framework": "100.2.*", + "magento/module-ui": "100.2.*", "lib-libxml": "*" }, "type": "magento2-module", diff --git a/app/code/Magento/AdminNotification/view/adminhtml/layout/default.xml b/app/code/Magento/AdminNotification/view/adminhtml/layout/default.xml index e3d32f17b6356bc974627b0daaba5dca5c467eea..780e48378a3a4069c29b50153eb6ca013f36147e 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/layout/default.xml +++ b/app/code/Magento/AdminNotification/view/adminhtml/layout/default.xml @@ -8,11 +8,7 @@ <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <body> <referenceContainer name="notifications"> - <block class="Magento\AdminNotification\Block\System\Messages" - name="system_messages" - as="system_messages" - before="-" - template="Magento_AdminNotification::system/messages.phtml"/> + <uiComponent name="notification_area"/> <block class="Magento\AdminNotification\Block\System\Messages\UnreadMessagePopup" name="unread_system_messages" as="unread_system_messages" diff --git a/app/code/Magento/AdminNotification/view/adminhtml/ui_component/notification_area.xml b/app/code/Magento/AdminNotification/view/adminhtml/ui_component/notification_area.xml new file mode 100644 index 0000000000000000000000000000000000000000..e0149fff714deaa5fc95910169ec92a26e4c673c --- /dev/null +++ b/app/code/Magento/AdminNotification/view/adminhtml/ui_component/notification_area.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +--> +<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd"> + <argument name="data" xsi:type="array"> + <item name="js_config" xsi:type="array"> + <item name="provider" xsi:type="string">notification_area.notification_area_data_source</item> + <item name="deps" xsi:type="string">notification_area.notification_area_data_source</item> + </item> + <item name="spinner" xsi:type="string">columns</item> + </argument> + <dataSource name="notification_area_data_source"> + <argument name="dataProvider" xsi:type="configurableObject"> + <argument name="class" xsi:type="string">Magento\AdminNotification\Ui\Component\DataProvider\DataProvider</argument> + <argument name="name" xsi:type="string">notification_area_data_source</argument> + <argument name="primaryFieldName" xsi:type="string">identity</argument> + <argument name="requestFieldName" xsi:type="string">identity</argument> + <argument name="data" xsi:type="array"> + <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item> + <item name="update_url" xsi:type="url" path="mui/index/render"/> + <item name="storageConfig" xsi:type="array"> + <item name="indexField" xsi:type="string">identity</item> + </item> + </item> + </argument> + </argument> + </dataSource> + <columns name="columns"> + <argument name="data" xsi:type="array"> + <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_AdminNotification/js/grid/listing</item> + <item name="template" xsi:type="string">Magento_AdminNotification/grid/listing</item> + </item> + </argument> + <column name="created_at"> + <argument name="data" xsi:type="array"> + <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_AdminNotification/js/grid/columns/message</item> + <item name="label" xsi:type="string" translate="true"/> + <item name="dataType" xsi:type="string">text</item> + <item name="sorting" xsi:type="string">asc</item> + <item name="sortOrder" xsi:type="number">30</item> + </item> + </argument> + </column> + </columns> +</listing> diff --git a/app/code/Magento/AdminNotification/view/adminhtml/web/js/grid/columns/message.js b/app/code/Magento/AdminNotification/view/adminhtml/web/js/grid/columns/message.js new file mode 100644 index 0000000000000000000000000000000000000000..aa5477ebafcf0df511981f2f874c7a1e4c7081bb --- /dev/null +++ b/app/code/Magento/AdminNotification/view/adminhtml/web/js/grid/columns/message.js @@ -0,0 +1,46 @@ +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +define([ + 'Magento_Ui/js/grid/columns/column', + 'underscore' +], function (Column, _) { + 'use strict'; + + return Column.extend({ + defaults: { + bodyTmpl: 'Magento_AdminNotification/grid/cells/message', + messageIndex: 'text', + fieldClass: { + message: true, + 'message-warning': false, + 'message-progress': false, + 'message-success': false, + 'message-error': false + }, + statusMap: { + 0: 'info', + 1: 'progress', + 2: 'success', + 3: 'error' + } + }, + + /** @inheritdoc */ + getLabel: function (record) { + return record[this.messageIndex]; + }, + + /** @inheritdoc */ + getFieldClass: function ($row) { + var status = this.statusMap[$row.status] || 'warning', + result = {}; + + result['message-' + status] = true; + result = _.extend({}, this.fieldClass, result); + + return result; + } + }); +}); diff --git a/app/code/Magento/AdminNotification/view/adminhtml/web/js/grid/listing.js b/app/code/Magento/AdminNotification/view/adminhtml/web/js/grid/listing.js new file mode 100644 index 0000000000000000000000000000000000000000..1fbda8d0196ca1fa9e1b58f40d0804892bf70891 --- /dev/null +++ b/app/code/Magento/AdminNotification/view/adminhtml/web/js/grid/listing.js @@ -0,0 +1,63 @@ +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +define([ + 'Magento_Ui/js/grid/listing', + 'Magento_Ui/js/lib/spinner', + 'jquery' +], function (Listing, loader, $) { + 'use strict'; + + return Listing.extend({ + defaults: { + imports: { + totalRecords: '${ $.provider }:data.totalRecords' + }, + selectors: { + collapsible: '.message-system-collapsible', + messages: '.message-system' + } + }, + + /** @inheritdoc */ + initObservable: function () { + this._super() + .track({ + totalRecords: 0 + }); + + return this; + }, + + /** @inheritdoc */ + showLoader: function () { + if (!this.source.firstLoad) { + this.fixLoaderHeight(); + this._super(); + } + }, + + /** + * Calculates loader height + * + * @param {Boolean} [closed] + */ + fixLoaderHeight: function (closed) { + var $messagesBlock = $(this.selectors.messages), + $collapsibleBlock = $(this.selectors.collapsible), + resultHeight = 0; + + if ($messagesBlock.length) { + resultHeight += $messagesBlock.outerHeight(); + } + + if ($collapsibleBlock.length && $collapsibleBlock.is(':visible') && !closed) { + resultHeight += $collapsibleBlock.outerHeight(); + } + + loader.get(this.name).height(resultHeight); + } + }); +}); diff --git a/app/code/Magento/AdminNotification/view/adminhtml/web/template/grid/cells/message.html b/app/code/Magento/AdminNotification/view/adminhtml/web/template/grid/cells/message.html new file mode 100644 index 0000000000000000000000000000000000000000..869842e8ee87bcc9465d3763dc610c95361cad72 --- /dev/null +++ b/app/code/Magento/AdminNotification/view/adminhtml/web/template/grid/cells/message.html @@ -0,0 +1,8 @@ +<!-- +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +--> +<div css="$col.getFieldClass($row())" + html="$col.getLabel($row())"/> \ No newline at end of file diff --git a/app/code/Magento/AdminNotification/view/adminhtml/web/template/grid/listing.html b/app/code/Magento/AdminNotification/view/adminhtml/web/template/grid/listing.html new file mode 100644 index 0000000000000000000000000000000000000000..80f2f4f2423fbcad5ba9b8e030e56c806db5ef9a --- /dev/null +++ b/app/code/Magento/AdminNotification/view/adminhtml/web/template/grid/listing.html @@ -0,0 +1,32 @@ +<!-- +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +--> +<div id="system_messages" class="message-system" collapsible visible="totalRecords"> + <div class="message-system-inner" outerClick="fixLoaderHeight.bind($data, true)"> + <div class="message-system-short"> + <button class="message-system-action-dropdown" toggleCollapsible> + <span> + <translate args="'System Messages'"/>: + <text args="totalRecords"/> + </span> + </button> + <div class="message-system-short-wrapper" if="rows[0]" repeat="foreach: [rows[0]], item: '$row'" visible="!$collapsible.opened()"> + <fastForEach args="data: getVisible(), as: '$col'" > + <render args="$col.getBody()"/> + </fastForEach> + </div> + </div> + <div class="message-system-collapsible"> + <ul class="message-system-list"> + <li repeat="foreach: rows, item: '$row'"> + <fastForEach args="data: getVisible(), as: '$col'" > + <render args="$col.getBody()"/> + </fastForEach> + </li> + </ul> + </div> + </div> +</div> diff --git a/app/code/Magento/Ui/view/base/web/js/lib/validation/validator.js b/app/code/Magento/Ui/view/base/web/js/lib/validation/validator.js index 764b11dfbfea202bf40c8e631fdbcfdc0da1285e..7823871fd694c362912e0479a408d7befcf25450 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/validation/validator.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/validation/validator.js @@ -27,12 +27,16 @@ define([ message: '' }; + if (_.isObject(params)) { + message = params.message || ''; + } + if (!rulesList[id]) { return result; } rule = rulesList[id]; - message = rule.message; + message = message || rule.message; valid = rule.handler(value, params, additionalParams); if (!valid) { @@ -68,7 +72,7 @@ define([ }; _.every(rules, function (ruleParams, id) { - if (ruleParams !== false || additionalParams) { + if (ruleParams.validate || ruleParams !== false || additionalParams) { result = validate(id, value, ruleParams, additionalParams); return result.passed; diff --git a/app/design/adminhtml/Magento/backend/Magento_AdminNotification/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_AdminNotification/web/css/source/_module.less index 585269e14d685dd8bc3e2f4ebcd90e1b500881da..bdb94e3a8202f9dc0142d5e81c5d6941e1567835 100644 --- a/app/design/adminhtml/Magento/backend/Magento_AdminNotification/web/css/source/_module.less +++ b/app/design/adminhtml/Magento/backend/Magento_AdminNotification/web/css/source/_module.less @@ -8,7 +8,16 @@ // _____________________________________________ @message-system__background-color: @color-lazy-sun; -@message-system-short-message__padding-vertical: 1.8rem; +@message-system__border-color: @color-gray82; +@message-system__border-width: .1rem; +@message-system__color: @color-gray20; +@message-system-short__padding-vertical: 1.5rem; +@message-system-short-wrapper__height: 5rem; + +// Triangle marker +@message-system-triangle__height: .5rem; +@message-system-triangle__padding-right: 3rem; +@message-system-triangle__width: .8rem; // // Message system @@ -17,34 +26,124 @@ .message-system-inner { &:extend(.abs-clearfix all); background: @message-system__background-color; + border: solid @message-system__border-color; + border-width: 0 @message-system__border-width @message-system__border-width; + position: relative; + + .message-error { + background: none; + } + + .message { + background: none; + margin: 0 0 -3px; + overflow: hidden; + padding: @message-system-short__padding-vertical 0 @message-system-short__padding-vertical 3.3rem; + + &:before { + left: .3rem; + } + } - .message-system-list { - float: left; - width: 75%; + .action-menu-item { + &.action-close-wrapper { + width: 3.5rem; + } + + .action-close { + float: right; + } + + float: right; + padding: @message-system-short__padding-vertical 0 0; + vertical-align: top; } } .message-system-list { + border-bottom: 1px solid @message-system__border-color; + border-top: 1px solid @message-system__border-color; list-style: none; - margin: 0; - padding: 0; + margin: 0 0 1.5rem; + + li { + + li { + border-top: 1px dashed @message-system__border-color; + } + } } .message-system-short { + min-height: @message-system-short-wrapper__height; + + .action-close-wrapper { + display: none; + } +} + +.message-system-short-wrapper { overflow: hidden; - text-align: right; + padding: 0 1.5rem 0 @indent__l; +} - .message-system-short-label { - display: inline-block; - padding: @message-system-short-message__padding-vertical .3rem @message-system-short-message__padding-vertical 1rem; +.message-system-collapsible { + background: @message-system__background-color; + border: @message-system__border-width solid @message-system__border-color; + border-top: 0; + display: none; + left: -1px; + padding: 0 @indent__l @message-system-short__padding-vertical; + position: absolute; + right: -1px; + top: 100%; + z-index: @z-index-5 - 2; + + ._active & { + display: block; } +} - .message { +.message-system-action-dropdown { + .lib-button-reset(); + float: right; + margin: @message-system-short__padding-vertical 0; + position: relative; + + .action-toggle-triangle ( + @_dropdown__padding-right: @message-system-triangle__padding-right; + @_triangle__height: @message-system-triangle__height; + @_triangle__width: @message-system-triangle__width; + @_triangle__color: @message-system__color; + @_triangle__hover__color: darken(@message-system__color, 10%); + @_triangle__right: (@message-system-triangle__padding-right / 2) - (@message-system-triangle__width/ 2); + ); +} + +.message-system-summary { + text-align: right; + + .action__message-log { + border-right: 1px solid @message-system__border-color; display: inline-block; - padding: @message-system-short-message__padding-vertical 2rem @message-system-short-message__padding-vertical 3.3rem; + margin: 0 .2rem 0 @indent__xs; + padding-right: @indent__xs; - &:before { - left: .3rem; + &:last-child { + border-right: 0; + margin: 0; + padding: 0; } } } + +.notices-wrapper { + .admin__data-grid-loading-mask { + display: none; + min-height: @message-system-short-wrapper__height + @message-system__border-width; + z-index: @z-index-5 - 1; + } + + .admin__data-grid-outer-wrap { + min-height: 0; + } +} diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_messages.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_messages.less index 9d9a4cab990477f594601edefce714b2e1ad90ef..e955affe3fb4394a9daa38eeba643b64d8c1e658 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_messages.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_messages.less @@ -28,6 +28,9 @@ @alert-icon__warning__content: @icon-warning__content; @alert-icon__warning__color: @color-phoenix; +@alert-icon__progress__content: @icon-refresh__content; +@alert-icon__progress__color: @color-blue-dodger; + @alert-icon__success__content: @icon-check-mage__content; @alert-icon__success__color: @color-green-apple; @@ -93,6 +96,13 @@ } } +.message-progress { + &:before { + color: @alert-icon__progress__color; + content: @alert-icon__progress__content; + } +} + .message-error { background: @alert__error__background-color; @@ -128,4 +138,4 @@ .message-in-rating-edit { margin-left: 1.8rem; margin-right: 1.8rem; -} +} \ No newline at end of file diff --git a/dev/tests/functional/tests/app/Magento/Braintree/Test/Page/Adminhtml/BraintreeSettlementReport.xml b/dev/tests/functional/tests/app/Magento/Braintree/Test/Page/Adminhtml/BraintreeSettlementReport.xml index 20359c41bd55fb148c4dd407a0b75c4e2cda8f93..bd2a0e60b20ab032b034a2930f1bd1e24f54f7fc 100644 --- a/dev/tests/functional/tests/app/Magento/Braintree/Test/Page/Adminhtml/BraintreeSettlementReport.xml +++ b/dev/tests/functional/tests/app/Magento/Braintree/Test/Page/Adminhtml/BraintreeSettlementReport.xml @@ -7,6 +7,6 @@ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> <page name="BraintreeSettlementReportIndex" area="Adminhtml" mca="braintree/report/index" module="Magento_Braintree"> - <block name="settlementReportGrid" class="Magento\Braintree\Test\Block\Adminhtml\Report\Grid" locator=".admin__data-grid-outer-wrap" strategy="css selector"/> + <block name="settlementReportGrid" class="Magento\Braintree\Test\Block\Adminhtml\Report\Grid" locator="//div[contains(@data-bind, 'braintree_report')]" strategy="xpath"/> </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductIndex.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductIndex.xml index a1de0d5599564a5693604efea577ae2a14e0d76e..c6a125bfd4ed236e4c8a6db38f6bfd7fb11a3e85 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductIndex.xml +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductIndex.xml @@ -7,7 +7,7 @@ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> <page name="CatalogProductIndex" area="Adminhtml" mca="catalog/product/index" module="Magento_Catalog"> - <block name="productGrid" class="Magento\Catalog\Test\Block\Adminhtml\Product\Grid" locator=".admin__data-grid-outer-wrap" strategy="css selector"/> + <block name="productGrid" class="Magento\Catalog\Test\Block\Adminhtml\Product\Grid" locator="//div[contains(@data-bind, 'product_listing')]" strategy="xpath"/> <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> <block name="gridPageActionBlock" class="Magento\Catalog\Test\Block\Adminhtml\Product\GridPageAction" locator="#add_new_product" strategy="css selector"/> </page> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockIndex.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockIndex.xml index e23472508e83a83ca56d6e738bed43f3ca65bd88..c369a950df315087b09ff9528aa9c9227d258d18 100644 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockIndex.xml +++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockIndex.xml @@ -9,6 +9,6 @@ <page name="CmsBlockIndex" area="Adminhtml" mca="cms/block/index" module="Magento_Cms"> <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".messages .message" strategy="css selector" /> <block name="gridPageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector" /> - <block name="cmsBlockGrid" class="Magento\Cms\Test\Block\Adminhtml\Block\CmsGrid" locator=".admin__data-grid-outer-wrap" strategy="css selector" /> + <block name="cmsBlockGrid" class="Magento\Cms\Test\Block\Adminhtml\Block\CmsGrid" locator="//div[contains(@data-bind, 'cms_block_listing')]" strategy="xpath" /> </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageIndex.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageIndex.xml index ed2037cf893a39a14d6eee047f14c69da04f3dea..467d8f8a2ffe8309ef7964d4cdf925ab3544a347 100644 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageIndex.xml +++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageIndex.xml @@ -8,7 +8,7 @@ <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> <page name="CmsPageIndex" area="Adminhtml" mca="cms/page/index" module="Magento_Cms"> <block name="pageActionsBlock" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector" /> - <block name="cmsPageGridBlock" class="Magento\Cms\Test\Block\Adminhtml\Page\Grid" locator=".admin__data-grid-outer-wrap" strategy="css selector" /> + <block name="cmsPageGridBlock" class="Magento\Cms\Test\Block\Adminhtml\Page\Grid" locator="//div[contains(@data-bind, 'cms_page_listing')]" strategy="xpath" /> <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".messages .message" strategy="css selector" /> </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndex.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndex.xml index d0247118d2d3b4261da1ba0e288f270f7ebd8ab3..7b908210b6e7f58de28dcf8188da38748b9a6e05 100644 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndex.xml +++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndex.xml @@ -9,6 +9,6 @@ <page name="CustomerIndex" area="Adminhtml" mca="customer/index" module="Magento_Customer"> <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> <block name="pageActionsBlock" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="customerGridBlock" class="Magento\Customer\Test\Block\Adminhtml\CustomerGrid" locator=".admin__data-grid-outer-wrap" strategy="css selector"/> + <block name="customerGridBlock" class="Magento\Customer\Test\Block\Adminhtml\CustomerGrid" locator="//div[contains(@data-bind, 'customer_listing')]" strategy="xpath"/> </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderIndex.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderIndex.xml index 1382f1c2567ddc1aac85673369703e632676bd11..beee22011c69e80d0ab7d20516a2193518ae0371 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderIndex.xml +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderIndex.xml @@ -8,7 +8,7 @@ <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> <page name="OrderIndex" area="Adminhtml" mca="sales/order/index" module="Magento_Sales"> <block name="gridPageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="salesOrderGrid" class="Magento\Sales\Test\Block\Adminhtml\Order\Grid" locator=".admin__data-grid-outer-wrap" strategy="css selector"/> + <block name="salesOrderGrid" class="Magento\Sales\Test\Block\Adminhtml\Order\Grid" locator="//div[contains(@data-bind, 'sales_order_grid')]" strategy="xpath"/> <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Search/Test/Page/Adminhtml/SynonymGroupIndex.xml b/dev/tests/functional/tests/app/Magento/Search/Test/Page/Adminhtml/SynonymGroupIndex.xml index 85cc69ea56584e326ffabd656e694b11a1127681..a979454142f42adf17f8a566de68efd80b083bd6 100644 --- a/dev/tests/functional/tests/app/Magento/Search/Test/Page/Adminhtml/SynonymGroupIndex.xml +++ b/dev/tests/functional/tests/app/Magento/Search/Test/Page/Adminhtml/SynonymGroupIndex.xml @@ -9,6 +9,6 @@ <page name="synonymGroupIndex" area="Adminhtml" mca="search/synonyms/index" module="Magento_Search"> <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator=".messages .message" strategy="css selector" /> <block name="gridPageActions" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector" /> - <block name="synonymGroupGrid" class="Magento\Search\Test\Block\Adminhtml\Block\SynonymGroupGrid" locator=".admin__data-grid-outer-wrap" strategy="css selector" /> + <block name="synonymGroupGrid" class="Magento\Search\Test\Block\Adminhtml\Block\SynonymGroupGrid" locator="//div[contains(@data-bind, 'search_synonyms_grid')]" strategy="xpath" /> </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/ShipmentIndex.xml b/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/ShipmentIndex.xml index 81667dbbcc54dd5bf66c0c600a615d5709a01759..e9d5e1d21175ddb56d016c12af6c89e6c9fd20d0 100644 --- a/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/ShipmentIndex.xml +++ b/dev/tests/functional/tests/app/Magento/Shipping/Test/Page/Adminhtml/ShipmentIndex.xml @@ -7,7 +7,7 @@ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> <page name="ShipmentIndex" area="Adminhtml" mca="sales/shipment" module="Magento_Shipping"> - <block name="shipmentsGrid" class="Magento\Shipping\Test\Block\Adminhtml\Shipment\Grid" locator=".admin__data-grid-outer-wrap" strategy="css selector"/> + <block name="shipmentsGrid" class="Magento\Shipping\Test\Block\Adminhtml\Shipment\Grid" locator="//div[contains(@data-bind, 'sales_order_shipment_grid')]" strategy="xpath"/> <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> </page> </config>