From f8371ca655f958f5bb9d27edfec9b5dff6b59917 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Fri, 4 Sep 2015 13:45:24 +0300 Subject: [PATCH 001/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Remove js_config node from columns definition - Add base column constructor to definitions - Remove unused align property --- .../ui_component/product_listing.xml | 54 ++------- .../ui_component/product_listing.xml | 4 - .../ui_component/cms_block_listing.xml | 41 +------ .../ui_component/cms_page_listing.xml | 70 ++---------- .../product_attributes_listing.xml | 44 ++------ .../ui_component/customer_listing.xml | 106 +----------------- .../ui_component/customer_online_grid.xml | 55 ++------- .../product_attributes_listing.xml | 5 +- .../sales_order_creditmemo_grid.xml | 106 +++--------------- .../ui_component/sales_order_grid.xml | 92 ++------------- .../ui_component/sales_order_invoice_grid.xml | 89 ++------------- .../sales_order_shipment_grid.xml | 84 +++----------- .../sales_order_view_creditmemo_grid.xml | 106 +++--------------- .../sales_order_view_invoice_grid.xml | 90 +++------------ .../sales_order_view_shipment_grid.xml | 82 +++----------- .../view/base/ui_component/etc/definition.xml | 4 +- .../view/base/web/js/grid/columns/column.js | 1 + .../base/web/js/grid/columns/multiselect.js | 1 + 18 files changed, 146 insertions(+), 888 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml index 72d04010e15..f4b4889854e 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml @@ -294,7 +294,6 @@ <item name="1" xsi:type="string">${ $.$data.rowIndex }</item> </item> </item> - <item name="controlVisibility" xsi:type="boolean">true</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">product_listing.product_listing.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -305,11 +304,8 @@ </argument> <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - </item> <item name="config" xsi:type="array"> - <item name="controlVisibility" xsi:type="boolean">false</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">entity_id</item> <item name="sortOrder" xsi:type="number">0</item> </item> @@ -317,13 +313,9 @@ </column> <column name="entity_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">ID</item> <item name="sortOrder" xsi:type="number">10</item> </item> @@ -331,16 +323,13 @@ </column> <column name="thumbnail" class="Magento\Catalog\Ui\Component\Listing\Columns\Thumbnail"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/thumbnail</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/thumbnail</item> <item name="add_field" xsi:type="boolean">true</item> <item name="sortable" xsi:type="boolean">false</item> <item name="altField" xsi:type="string">name</item> <item name="has_preview" xsi:type="string">1</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Thumbnail</item> <item name="sortOrder" xsi:type="number">20</item> </item> @@ -348,13 +337,9 @@ </column> <column name="name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="add_field" xsi:type="boolean">true</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Name</item> <item name="sortOrder" xsi:type="number">30</item> </item> @@ -363,12 +348,9 @@ <column name="type_id"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Catalog\Model\Product\Type</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Type</item> <item name="sortOrder" xsi:type="number">40</item> </item> @@ -377,12 +359,9 @@ <column name="attribute_set_id"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Catalog\Model\Product\AttributeSet\Options</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Attribute Set</item> <item name="sortOrder" xsi:type="number">50</item> </item> @@ -390,12 +369,8 @@ </column> <column name="sku"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">SKU</item> <item name="sortOrder" xsi:type="number">60</item> </item> @@ -403,13 +378,9 @@ </column> <column name="price" class="Magento\Catalog\Ui\Component\Listing\Columns\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="add_field" xsi:type="boolean">true</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Price</item> <item name="sortOrder" xsi:type="number">70</item> </item> @@ -418,13 +389,10 @@ <column name="visibility"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Catalog\Model\Product\Visibility</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="add_field" xsi:type="boolean">true</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Visibility</item> <item name="sortOrder" xsi:type="number">80</item> </item> @@ -433,13 +401,10 @@ <column name="status"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Catalog\Model\Product\Attribute\Source\Status</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="add_field" xsi:type="boolean">true</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Status</item> <item name="sortOrder" xsi:type="number">90</item> </item> @@ -448,13 +413,10 @@ <column name="websites" class="Magento\Catalog\Ui\Component\Listing\Columns\Websites"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Store\Model\Resource\Website\Collection</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="add_field" xsi:type="boolean">true</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Websites</item> <item name="sortOrder" xsi:type="number">100</item> </item> @@ -463,9 +425,9 @@ <column name="actions" class="Magento\Catalog\Ui\Component\Listing\Columns\ProductActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> <item name="sortOrder" xsi:type="number">200</item> <item name="dataType" xsi:type="string">actions</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> <item name="filterable" xsi:type="boolean">false</item> diff --git a/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml b/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml index a1a5c6af091..1596400be77 100644 --- a/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml +++ b/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml @@ -42,13 +42,9 @@ <columns name="product_columns" class="Magento\Catalog\Ui\Component\Listing\Columns"> <column name="qty"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/sortable</item> - </item> <item name="config" xsi:type="array"> <item name="add_field" xsi:type="boolean">true</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Quantity</item> <item name="sortOrder" xsi:type="number">75</item> </item> diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml index 4e24c44d820..ed0c9de0abd 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml @@ -10,7 +10,7 @@ <item name="js_config" xsi:type="array"> <item name="provider" xsi:type="string">cms_block_listing.cms_block_listing_data_source</item> <item name="deps" xsi:type="string">cms_block_listing.cms_block_listing_data_source</item> - </item> + </item>f <item name="spinner" xsi:type="string">cms_block_columns</item> <item name="buttons" xsi:type="array"> <item name="add" xsi:type="array"> @@ -334,7 +334,6 @@ <item name="1" xsi:type="boolean">true</item> </item> </item> - <item name="controlVisibility" xsi:type="boolean">true</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -345,33 +344,23 @@ </argument> <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">block_id</item> - <item name="controlVisibility" xsi:type="boolean">false</item> </item> </argument> </column> <column name="block_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">ID</item> </item> </argument> </column> <column name="title"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="editor" xsi:type="array"> <item name="editorType" xsi:type="string">text</item> @@ -380,16 +369,12 @@ </item> </item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Title</item> </item> </argument> </column> <column name="identifier"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="editor" xsi:type="array"> <item name="editorType" xsi:type="string">text</item> @@ -399,30 +384,22 @@ </item> </item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Identifier</item> </item> </argument> </column> <column name="store_id" class="Magento\Store\Ui\Component\Listing\Column\Store"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="sortable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Store View</item> </item> </argument> </column> <column name="is_active"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="options" xsi:type="array"> <item name="disable" xsi:type="array"> <item name="value" xsi:type="string">0</item> @@ -434,33 +411,27 @@ </item> </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="editor" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Status</item> </item> </argument> </column> <column name="creation_time"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Created</item> </item> </argument> </column> <column name="update_time"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Modified</item> </item> </argument> @@ -468,10 +439,10 @@ <column name="actions" class="Magento\Cms\Ui\Component\Listing\Column\BlockActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">block_id</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> <item name="filterable" xsi:type="boolean">false</item> diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml index 03ea7269fcb..735ef78ca56 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml @@ -493,10 +493,8 @@ </argument> <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">page_id</item> <item name="controlVisibility" xsi:type="boolean">false</item> @@ -505,22 +503,15 @@ </column> <column name="page_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">ID</item> </item> </argument> </column> <column name="title"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="editor" xsi:type="array"> <item name="editorType" xsi:type="string">text</item> @@ -529,16 +520,12 @@ </item> </item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Title</item> </item> </argument> </column> <column name="identifier"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="editor" xsi:type="array"> <item name="editorType" xsi:type="string">text</item> @@ -547,7 +534,6 @@ </item> </item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">URL Key</item> </item> </argument> @@ -555,27 +541,20 @@ <column name="page_layout"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Cms\Model\Page\Source\PageLayout</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="editor" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Layout</item> </item> </argument> </column> <column name="store_id" class="Magento\Store\Ui\Component\Listing\Column\Store"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="sortable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Store View</item> </item> </argument> @@ -583,50 +562,38 @@ <column name="is_active"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Cms\Model\Page\Source\IsActive</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="editor" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Status</item> </item> </argument> </column> <column name="creation_time"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Created</item> </item> </argument> </column> <column name="update_time"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Modified</item> </item> </argument> </column> <column name="custom_theme_from"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="editor" xsi:type="string">date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Custom design from</item> <item name="dateFormat" xsi:type="string">MMM d, y</item> <item name="visible" xsi:type="boolean">false</item> @@ -635,13 +602,10 @@ </column> <column name="custom_theme_to"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="editor" xsi:type="string">date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Custom design to</item> <item name="dateFormat" xsi:type="string">MMM d, y</item> <item name="visible" xsi:type="boolean">false</item> @@ -651,13 +615,10 @@ <column name="custom_theme"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Cms\Model\Page\Source\Theme</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="editor" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Custom Theme</item> <item name="visible" xsi:type="boolean">false</item> </item> @@ -666,13 +627,10 @@ <column name="custom_root_template"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Cms\Model\Page\Source\PageLayout</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="editor" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Custom Layout</item> <item name="visible" xsi:type="boolean">false</item> </item> @@ -680,13 +638,9 @@ </column> <column name="meta_keywords"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="editor" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Meta Keywords</item> <item name="visible" xsi:type="boolean">false</item> </item> @@ -694,13 +648,9 @@ </column> <column name="meta_description"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="editor" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Meta Description</item> <item name="visible" xsi:type="boolean">false</item> </item> @@ -709,11 +659,11 @@ <column name="actions" class="Magento\Cms\Ui\Component\Listing\Column\PageActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">page_id</item> <item name="blockVisibility" xsi:type="boolean">true</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> <item name="filterable" xsi:type="boolean">false</item> diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml index 9fce22c2a82..80d2ac0964f 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml @@ -213,7 +213,6 @@ <item name="namespace" xsi:type="string">current</item> </item> <item name="childDefaults" xsi:type="array"> - <item name="controlVisibility" xsi:type="boolean">true</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">product_attributes_listing.product_attributes_listing.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -224,37 +223,26 @@ </argument> <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">attribute_id</item> <item name="sortOrder" xsi:type="number">0</item> - <item name="controlVisibility" xsi:type="string">false</item> </item> </argument> </column> <column name="attribute_code"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Attribute Code</item> </item> </argument> </column> <column name="frontend_label"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Attribute Label</item> </item> </argument> @@ -262,12 +250,9 @@ <column name="is_required"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Config\Model\Config\Source\Yesno</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Required</item> </item> </argument> @@ -275,12 +260,9 @@ <column name="is_user_defined"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Config\Model\Config\Source\Yesno</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">System</item> </item> </argument> @@ -288,12 +270,9 @@ <column name="is_visible"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Config\Model\Config\Source\Yesno</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Visible</item> </item> </argument> @@ -301,12 +280,9 @@ <column name="is_global"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Catalog\Model\Attribute\Source\Scopes</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Scope</item> </item> </argument> @@ -314,12 +290,9 @@ <column name="is_searchable"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Config\Model\Config\Source\Yesno</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Searchable</item> </item> </argument> @@ -327,12 +300,9 @@ <column name="is_comparable"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Config\Model\Config\Source\Yesno</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Comparable</item> </item> </argument> diff --git a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml index 89ce8a5f2d8..ea4d0359f08 100644 --- a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml +++ b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml @@ -370,10 +370,8 @@ </argument> <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">entity_id</item> <item name="controlVisibility" xsi:type="boolean">false</item> <item name="sortOrder" xsi:type="number">10</item> @@ -382,14 +380,9 @@ </column> <column name="entity_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> - <item name="sortable" xsi:type="string">true</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">ID</item> <item name="sortOrder" xsi:type="number">20</item> </item> @@ -397,13 +390,8 @@ </column> <column name="name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Name</item> <item name="sortOrder" xsi:type="number">30</item> </item> @@ -411,13 +399,8 @@ </column> <column name="email"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Email</item> <item name="sortOrder" xsi:type="number">40</item> </item> @@ -425,13 +408,9 @@ </column> <column name="group_id" class="Magento\Customer\Ui\Component\Listing\Column\AttributeColumn"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="sortable" xsi:type="string">true</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Group</item> <item name="sortOrder" xsi:type="number">50</item> </item> @@ -439,13 +418,8 @@ </column> <column name="billing_telephone"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Phone</item> <item name="sortOrder" xsi:type="number">60</item> </item> @@ -453,13 +427,9 @@ </column> <column name="billing_postcode"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="sortable" xsi:type="string">true</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">ZIP</item> <item name="sortOrder" xsi:type="number">70</item> </item> @@ -467,12 +437,8 @@ </column> <column name="billing_country_id" class="Magento\Customer\Ui\Component\Listing\Column\AttributeColumn"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Country</item> <item name="sortOrder" xsi:type="number">80</item> </item> @@ -480,13 +446,9 @@ </column> <column name="billing_region"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="sortable" xsi:type="string">true</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">State/Province</item> <item name="sortOrder" xsi:type="number">90</item> </item> @@ -494,13 +456,10 @@ </column> <column name="created_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="sortable" xsi:type="string">true</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Since</item> <item name="sortOrder" xsi:type="number">100</item> </item> @@ -508,12 +467,9 @@ </column> <column name="website_id" class="Magento\Customer\Ui\Component\Listing\Column\AttributeColumn"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Web Site</item> <item name="sortOrder" xsi:type="number">110</item> </item> @@ -521,14 +477,11 @@ </column> <column name="last_visit_at" > <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Last Logged In</item> <item name="sortOrder" xsi:type="number">120</item> </item> @@ -536,14 +489,10 @@ </column> <column name="confirmation"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Confirmed email</item> <item name="sortOrder" xsi:type="number">130</item> </item> @@ -551,14 +500,10 @@ </column> <column name="created_in"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Account Created in</item> <item name="sortOrder" xsi:type="number">140</item> </item> @@ -566,13 +511,9 @@ </column> <column name="billing_full"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> <item name="sortOrder" xsi:type="number">150</item> </item> @@ -580,13 +521,9 @@ </column> <column name="shipping_full"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> <item name="sortOrder" xsi:type="number">160</item> </item> @@ -594,14 +531,11 @@ </column> <column name="dob"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Date Of Birth</item> <item name="sortOrder" xsi:type="number">170</item> </item> @@ -609,14 +543,10 @@ </column> <column name="taxvat"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Tax VAT Number</item> <item name="sortOrder" xsi:type="number">180</item> </item> @@ -624,13 +554,9 @@ </column> <column name="gender" class="Magento\Customer\Ui\Component\Listing\Column\AttributeColumn"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Gender</item> <item name="sortOrder" xsi:type="number">190</item> </item> @@ -638,13 +564,9 @@ </column> <column name="billing_street"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Street Address</item> <item name="sortOrder" xsi:type="number">200</item> </item> @@ -652,14 +574,10 @@ </column> <column name="billing_city"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">City</item> <item name="sortOrder" xsi:type="number">210</item> </item> @@ -667,14 +585,10 @@ </column> <column name="billing_fax"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Fax</item> <item name="sortOrder" xsi:type="number">220</item> </item> @@ -682,14 +596,10 @@ </column> <column name="billing_vat_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">VAT Number</item> <item name="sortOrder" xsi:type="number">230</item> </item> @@ -697,14 +607,10 @@ </column> <column name="billing_company"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Company</item> <item name="sortOrder" xsi:type="number">240</item> </item> @@ -713,10 +619,10 @@ <column name="actions" class="Magento\Customer\Ui\Component\Listing\Column\Actions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> <item name="filterable" xsi:type="boolean">false</item> diff --git a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml index dbeef97b319..6dca92beb9b 100644 --- a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml +++ b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml @@ -218,9 +218,14 @@ <item name="namespace" xsi:type="string">current</item> </item> <item name="childDefaults" xsi:type="array"> - <item name="controlVisibility" xsi:type="boolean">true</item> - <item name="actionField" xsi:type="string">actions</item> - <item name="clickAction" xsi:type="string">view</item> + <item name="fieldAction" xsi:type="array"> + <item name="provider" xsi:type="string">customer_online_grid.customer_online_grid.customer_online_columns.actions</item> + <item name="target" xsi:type="string">applyAction</item> + <item name="params" xsi:type="array"> + <item name="0" xsi:type="string">view</item> + <item name="1" xsi:type="string">${ $.$data.rowIndex }</item> + </item> + </item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">customer_online_grid.customer_online_grid.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -231,120 +236,82 @@ </argument> <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">visitor_id</item> - <item name="controlVisibility" xsi:type="boolean">false</item> </item> </argument> </column> <column name="customer_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">ID</item> </item> </argument> </column> <column name="firstname"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">First Name</item> </item> </argument> </column> <column name="lastname"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Last Name</item> </item> </argument> </column> <column name="email"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> </column> <column name="remote_addr"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">IP Address</item> </item> </argument> </column> <column name="first_visit_at"> - <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> + <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Session Start Time</item> </item> </argument> </column> <column name="last_visit_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Last Activity</item> </item> </argument> </column> <column name="visitor_type" class="Magento\Customer\Ui\Component\Listing\Column\Online\Type"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Type</item> </item> </argument> </column> <column name="last_url"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Last URL</item> </item> </argument> diff --git a/app/code/Magento/LayeredNavigation/view/adminhtml/ui_component/product_attributes_listing.xml b/app/code/Magento/LayeredNavigation/view/adminhtml/ui_component/product_attributes_listing.xml index 916c8ae10a1..d205ef1988d 100644 --- a/app/code/Magento/LayeredNavigation/view/adminhtml/ui_component/product_attributes_listing.xml +++ b/app/code/Magento/LayeredNavigation/view/adminhtml/ui_component/product_attributes_listing.xml @@ -26,12 +26,9 @@ <column name="is_filterable"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\LayeredNavigation\Model\Attribute\Source\FilterableOptions</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Use in Layered Navigation</item> </item> </argument> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml index 36733ffa619..4d838aa0944 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml @@ -519,9 +519,14 @@ <item name="namespace" xsi:type="string">current</item> </item> <item name="childDefaults" xsi:type="array"> - <item name="controlVisibility" xsi:type="boolean">true</item> - <item name="actionField" xsi:type="string">actions</item> - <item name="clickAction" xsi:type="string">view</item> + <item name="fieldAction" xsi:type="array"> + <item name="provider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.sales_order_creditmemo_columns.actions</item> + <item name="target" xsi:type="string">applyAction</item> + <item name="params" xsi:type="array"> + <item name="0" xsi:type="string">view</item> + <item name="1" xsi:type="string">${ $.$data.rowIndex }</item> + </item> + </item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -532,282 +537,199 @@ </argument> <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="controlVisibility" xsi:type="boolean">false</item> </item> </argument> </column> <column name="increment_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Credit Memo</item> </item> </argument> </column> <column name="created_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Created</item> </item> </argument> </column> <column name="order_increment_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order</item> </item> </argument> </column> <column name="order_created_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order Date</item> </item> </argument> </column> <column name="billing_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> </argument> </column> <column name="state" class="Magento\Sales\Ui\Component\Listing\Column\Creditmemo\State"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Status</item> </item> </argument> </column> <column name="base_grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Refunded</item> </item> </argument> </column> <column name="order_status" class="Magento\Sales\Ui\Component\Listing\Column\Status"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order Status</item> </item> </argument> </column> <column name="store_id" class="Magento\Store\Ui\Component\Listing\Column\Store"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="sortable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Purchased From</item> </item> </argument> </column> <column name="billing_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> </item> </argument> </column> <column name="shipping_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> </item> </argument> </column> <column name="customer_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> </column> <column name="customer_email"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> </column> <column name="customer_group_id" class="Magento\Sales\Ui\Component\Listing\Column\CustomerGroup"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Group</item> </item> </argument> </column> <column name="payment_method" class="Magento\Sales\Ui\Component\Listing\Column\PaymentMethod"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Payment Method</item> </item> </argument> </column> <column name="shipping_information"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> </item> </argument> </column> <column name="subtotal" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> </item> </argument> </column> <column name="shipping_and_handling" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping & Handling</item> </item> </argument> </column> <column name="adjustment_positive" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Adjustment Refund</item> </item> </argument> </column> <column name="adjustment_negative" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Adjustment Fee</item> </item> </argument> </column> <column name="order_base_grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Grand Total</item> </item> </argument> @@ -815,10 +737,10 @@ <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderCreditmemoActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> <item name="filterable" xsi:type="boolean">false</item> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml index b0caec31484..fefac94d88a 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml @@ -518,9 +518,14 @@ <item name="namespace" xsi:type="string">current</item> </item> <item name="childDefaults" xsi:type="array"> - <item name="controlVisibility" xsi:type="boolean">true</item> - <item name="actionField" xsi:type="string">actions</item> - <item name="clickAction" xsi:type="string">view</item> + <item name="fieldAction" xsi:type="array"> + <item name="provider" xsi:type="string">sales_order_grid.sales_order_grid.sales_order_columns.actions</item> + <item name="target" xsi:type="string">applyAction</item> + <item name="params" xsi:type="array"> + <item name="0" xsi:type="string">view</item> + <item name="1" xsi:type="string">${ $.$data.rowIndex }</item> + </item> + </item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_grid.sales_order_grid.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -531,243 +536,170 @@ </argument> <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="controlVisibility" xsi:type="boolean">false</item> </item> </argument> </column> <column name="increment_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">desc</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">ID</item> </item> </argument> </column> <column name="store_id" class="Magento\Store\Ui\Component\Listing\Column\Store"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="sortable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Purchase Point</item> </item> </argument> </column> <column name="created_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Purchase Date</item> </item> </argument> </column> <column name="billing_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> </argument> </column> <column name="shipping_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Ship-to Name</item> </item> </argument> </column> <column name="base_grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Grand Total (Base)</item> </item> </argument> </column> <column name="grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Grand Total (Purchased)</item> </item> </argument> </column> <column name="status" class="Magento\Sales\Ui\Component\Listing\Column\Status"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Status</item> </item> </argument> </column> <column name="billing_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> </item> </argument> </column> <column name="shipping_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> </item> </argument> </column> <column name="shipping_information"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> </item> </argument> </column> <column name="customer_email"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Email</item> </item> </argument> </column> <column name="customer_group" class="Magento\Sales\Ui\Component\Listing\Column\CustomerGroup"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Group</item> </item> </argument> </column> <column name="subtotal" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> </item> </argument> </column> <column name="shipping_and_handling" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping and Handling</item> </item> </argument> </column> <column name="customer_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> </column> <column name="payment_method" class="Magento\Sales\Ui\Component\Listing\Column\PaymentMethod"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Payment Method</item> </item> </argument> </column> <column name="total_refunded" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Total Refunded</item> </item> </argument> @@ -775,10 +707,10 @@ <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> <item name="filterable" xsi:type="boolean">false</item> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml index 41d7a1d0f2a..94adb041f2a 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml @@ -420,9 +420,14 @@ <item name="namespace" xsi:type="string">current</item> </item> <item name="childDefaults" xsi:type="array"> - <item name="controlVisibility" xsi:type="boolean">true</item> - <item name="actionField" xsi:type="string">actions</item> - <item name="clickAction" xsi:type="string">view</item> + <item name="fieldAction" xsi:type="array"> + <item name="provider" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.sales_order_invoice_columns.actions</item> + <item name="target" xsi:type="string">applyAction</item> + <item name="params" xsi:type="array"> + <item name="0" xsi:type="string">view</item> + <item name="1" xsi:type="string">${ $.$data.rowIndex }</item> + </item> + </item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -433,232 +438,162 @@ </argument> <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="controlVisibility" xsi:type="boolean">false</item> </item> </argument> </column> <column name="increment_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Invoice</item> </item> </argument> </column> <column name="created_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Invoice Date</item> </item> </argument> </column> <column name="order_increment_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="sorting" xsi:type="string">asc</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order #</item> </item> </argument> </column> <column name="order_created_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order Date</item> </item> </argument> </column> <column name="billing_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> </argument> </column> <column name="state" class="Magento\Sales\Ui\Component\Listing\Column\Invoice\State"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Status</item> </item> </argument> </column> <column name="grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Amount</item> </item> </argument> </column> <column name="store_id" class="Magento\Store\Ui\Component\Listing\Column\Store"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="sortable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Purchased From</item> </item> </argument> </column> <column name="billing_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> </item> </argument> </column> <column name="shipping_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> </item> </argument> </column> <column name="customer_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> </column> <column name="customer_email"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> </column> <column name="customer_group_id" class="Magento\Sales\Ui\Component\Listing\Column\CustomerGroup"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Group</item> </item> </argument> </column> <column name="payment_method" class="Magento\Sales\Ui\Component\Listing\Column\PaymentMethod"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Payment Method</item> </item> </argument> </column> <column name="shipping_information"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> </item> </argument> </column> <column name="subtotal" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> </item> </argument> </column> <column name="shipping_and_handling" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping and Handling</item> </item> </argument> @@ -666,10 +601,10 @@ <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderInvoiceActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">increment_id</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> <item name="filterable" xsi:type="boolean">false</item> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml index 80d389a4172..5e880cf71c8 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml @@ -371,9 +371,14 @@ <item name="namespace" xsi:type="string">current</item> </item> <item name="childDefaults" xsi:type="array"> - <item name="controlVisibility" xsi:type="boolean">true</item> - <item name="actionField" xsi:type="string">actions</item> - <item name="clickAction" xsi:type="string">view</item> + <item name="fieldAction" xsi:type="array"> + <item name="provider" xsi:type="string">sales_order_shipment_grid.sales_order_shipment_grid.sales_order_shipment_columns.actions</item> + <item name="target" xsi:type="string">applyAction</item> + <item name="params" xsi:type="array"> + <item name="0" xsi:type="string">view</item> + <item name="1" xsi:type="string">${ $.$data.rowIndex }</item> + </item> + </item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_shipment_grid.sales_order_shipment_grid.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -384,207 +389,146 @@ </argument> <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="controlVisibility" xsi:type="boolean">false</item> </item> </argument> </column> <column name="increment_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipment</item> </item> </argument> </column> <column name="created_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Ship Date</item> </item> </argument> </column> <column name="order_increment_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="sorting" xsi:type="string">asc</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order</item> </item> </argument> </column> <column name="order_created_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order Date</item> </item> </argument> </column> <column name="shipping_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Ship-to Name</item> </item> </argument> </column> <column name="total_qty"> - <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> + <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Total Quantity</item> </item> </argument> </column> <column name="order_status" class="Magento\Sales\Ui\Component\Listing\Column\Status"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order Status</item> </item> </argument> </column> <column name="store_id" class="Magento\Store\Ui\Component\Listing\Column\Store"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="sortable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Purchased From</item> </item> </argument> </column> <column name="customer_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> </column> <column name="customer_email"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> </column> <column name="customer_group_id" class="Magento\Sales\Ui\Component\Listing\Column\CustomerGroup"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Group</item> </item> </argument> </column> <column name="billing_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> </item> </argument> </column> <column name="shipping_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> </item> </argument> </column> <column name="payment_method" class="Magento\Sales\Ui\Component\Listing\Column\PaymentMethod"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Payment Method</item> </item> </argument> </column> <column name="shipping_information"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> </item> </argument> @@ -592,10 +536,10 @@ <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderShipmentActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> <item name="filterable" xsi:type="boolean">false</item> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml index 035e2dbc57e..bb6eba32c92 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml @@ -464,9 +464,14 @@ <item name="namespace" xsi:type="string">current</item> </item> <item name="childDefaults" xsi:type="array"> - <item name="controlVisibility" xsi:type="boolean">true</item> - <item name="actionField" xsi:type="string">actions</item> - <item name="clickAction" xsi:type="string">view</item> + <item name="fieldAction" xsi:type="array"> + <item name="provider" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.sales_order_creditmemo_columns.actions</item> + <item name="target" xsi:type="string">applyAction</item> + <item name="params" xsi:type="array"> + <item name="0" xsi:type="string">view</item> + <item name="1" xsi:type="string">${ $.$data.rowIndex }</item> + </item> + </item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -477,282 +482,199 @@ </argument> <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="controlVisibility" xsi:type="boolean">false</item> </item> </argument> </column> <column name="increment_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Credit Memo</item> </item> </argument> </column> <column name="created_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Created</item> </item> </argument> </column> <column name="order_increment_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order</item> </item> </argument> </column> <column name="order_created_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order Date</item> </item> </argument> </column> <column name="billing_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> </argument> </column> <column name="state" class="Magento\Sales\Ui\Component\Listing\Column\Creditmemo\State"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Status</item> </item> </argument> </column> <column name="base_grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Refunded</item> </item> </argument> </column> <column name="order_status" class="Magento\Sales\Ui\Component\Listing\Column\Status"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order Status</item> </item> </argument> </column> <column name="store_id" class="Magento\Store\Ui\Component\Listing\Column\Store"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="sortable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Purchased From</item> </item> </argument> </column> <column name="billing_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> </item> </argument> </column> <column name="shipping_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> </item> </argument> </column> <column name="customer_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> </column> <column name="customer_email"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> </column> <column name="customer_group_id" class="Magento\Sales\Ui\Component\Listing\Column\CustomerGroup"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Group</item> </item> </argument> </column> <column name="payment_method" class="Magento\Sales\Ui\Component\Listing\Column\PaymentMethod"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Payment Method</item> </item> </argument> </column> <column name="shipping_information"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> </item> </argument> </column> <column name="subtotal" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> </item> </argument> </column> <column name="shipping_and_handling" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping & Handling</item> </item> </argument> </column> <column name="adjustment_positive" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Adjustment Refund</item> </item> </argument> </column> <column name="adjustment_negative" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Adjustment Fee</item> </item> </argument> </column> <column name="order_base_grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Grand Total</item> </item> </argument> @@ -760,10 +682,10 @@ <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderCreditmemoActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> <item name="filterable" xsi:type="boolean">false</item> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml index 38493a5be26..faf52b87b26 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml @@ -423,9 +423,14 @@ <item name="namespace" xsi:type="string">current</item> </item> <item name="childDefaults" xsi:type="array"> - <item name="controlVisibility" xsi:type="boolean">true</item> - <item name="actionField" xsi:type="string">actions</item> - <item name="clickAction" xsi:type="string">view</item> + <item name="fieldAction" xsi:type="array"> + <item name="provider" xsi:type="string">sales_order_view_invoice_grid.sales_order_view_invoice_grid.sales_order_invoice_columns.actions</item> + <item name="target" xsi:type="string">applyAction</item> + <item name="params" xsi:type="array"> + <item name="0" xsi:type="string">view</item> + <item name="1" xsi:type="string">${ $.$data.rowIndex }</item> + </item> + </item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_view_invoice_grid.sales_order_view_invoice_grid.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -436,232 +441,163 @@ </argument> <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="controlVisibility" xsi:type="boolean">false</item> </item> </argument> </column> <column name="increment_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Invoice</item> </item> </argument> </column> <column name="created_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Invoice Date</item> </item> </argument> </column> <column name="order_increment_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="sorting" xsi:type="string">asc</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order #</item> </item> </argument> </column> <column name="order_created_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order Date</item> </item> </argument> </column> <column name="billing_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> </argument> </column> <column name="state" class="Magento\Sales\Ui\Component\Listing\Column\Invoice\State"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Status</item> </item> </argument> </column> <column name="grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Amount</item> </item> </argument> </column> <column name="store_id" class="Magento\Store\Ui\Component\Listing\Column\Store"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="sortable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Purchased From</item> </item> </argument> </column> <column name="billing_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> </item> </argument> </column> <column name="shipping_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> </item> </argument> </column> <column name="customer_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> </column> <column name="customer_email"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> </column> <column name="customer_group_id" class="Magento\Sales\Ui\Component\Listing\Column\CustomerGroup"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Group</item> </item> </argument> </column> <column name="payment_method" class="Magento\Sales\Ui\Component\Listing\Column\PaymentMethod"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Payment Method</item> </item> </argument> </column> <column name="shipping_information"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> </item> </argument> </column> <column name="subtotal" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> </item> </argument> </column> <column name="shipping_and_handling" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping and Handling</item> </item> </argument> @@ -669,10 +605,10 @@ <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderInvoiceActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">increment_id</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> <item name="filterable" xsi:type="boolean">false</item> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml index 0c019005f02..b5932cc18fa 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml @@ -369,9 +369,14 @@ <item name="namespace" xsi:type="string">current</item> </item> <item name="childDefaults" xsi:type="array"> - <item name="controlVisibility" xsi:type="boolean">true</item> - <item name="actionField" xsi:type="string">actions</item> - <item name="clickAction" xsi:type="string">view</item> + <item name="fieldAction" xsi:type="array"> + <item name="provider" xsi:type="string">sales_order_view_shipment_grid.sales_order_view_shipment_grid.sales_order_shipment_columns.actions</item> + <item name="target" xsi:type="string">applyAction</item> + <item name="params" xsi:type="array"> + <item name="0" xsi:type="string">view</item> + <item name="1" xsi:type="string">${ $.$data.rowIndex }</item> + </item> + </item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_view_shipment_grid.sales_order_view_shipment_grid.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -382,207 +387,146 @@ </argument> <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="controlVisibility" xsi:type="boolean">false</item> </item> </argument> </column> <column name="increment_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipment</item> </item> </argument> </column> <column name="created_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Ship Date</item> </item> </argument> </column> <column name="order_increment_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="sorting" xsi:type="string">asc</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order</item> </item> </argument> </column> <column name="order_created_at"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order Date</item> </item> </argument> </column> <column name="shipping_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Ship-to Name</item> </item> </argument> </column> <column name="total_qty"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Total Quantity</item> </item> </argument> </column> <column name="order_status" class="Magento\Sales\Ui\Component\Listing\Column\Status"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Order Status</item> </item> </argument> </column> <column name="store_id" class="Magento\Store\Ui\Component\Listing\Column\Store"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="sortable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Purchased From</item> </item> </argument> </column> <column name="customer_name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> </column> <column name="customer_email"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> </column> <column name="customer_group_id" class="Magento\Sales\Ui\Component\Listing\Column\CustomerGroup"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Customer Group</item> </item> </argument> </column> <column name="billing_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> </item> </argument> </column> <column name="shipping_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> </item> </argument> </column> <column name="payment_method" class="Magento\Sales\Ui\Component\Listing\Column\PaymentMethod"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Payment Method</item> </item> </argument> </column> <column name="shipping_information"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> </item> </argument> @@ -590,10 +534,10 @@ <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderShipmentActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> <item name="filterable" xsi:type="boolean">false</item> diff --git a/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml b/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml index ff5a64d1ab8..5caf6ed693d 100755 --- a/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml +++ b/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml @@ -39,7 +39,6 @@ <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/search/search</item> <item name="displayArea" xsi:type="string">dataGridFilters</item> - </item> </argument> </filterSearch> @@ -112,6 +111,9 @@ <column class="Magento\Ui\Component\Listing\Columns\Column"> <argument name="data" xsi:type="array"> <item name="state_prefix" xsi:type="string">columns</item> + <item name="js_config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> + </item> </argument> </column> diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js index 06ee7dea8c3..b0f457497ea 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js @@ -15,6 +15,7 @@ define([ headerTmpl: 'ui/grid/columns/text', bodyTmpl: 'ui/grid/cells/text', disableAction: false, + controlVisibility: true, sortable: true, sorting: false, visible: true, diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js index acaa95915ee..6ae8354a0af 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js @@ -13,6 +13,7 @@ define([ defaults: { headerTmpl: 'ui/grid/columns/multiselect', bodyTmpl: 'ui/grid/cells/multiselect', + controlVisibility: false, sortable: false, menuVisible: false, excludeMode: false, -- GitLab From 8b5f521a847cef0ee45dd0369e512c77e6bf49a5 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Fri, 4 Sep 2015 14:17:07 +0300 Subject: [PATCH 002/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Migrate to new filters declaration on cms pages and cms blocks --- .../ui_component/cms_block_listing.xml | 135 +-------- .../ui_component/cms_page_listing.xml | 270 +----------------- .../view/base/web/js/grid/filters/filters.js | 165 ++++++++++- 3 files changed, 185 insertions(+), 385 deletions(-) diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml index ed0c9de0abd..17f7d7c7a42 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml @@ -10,7 +10,7 @@ <item name="js_config" xsi:type="array"> <item name="provider" xsi:type="string">cms_block_listing.cms_block_listing_data_source</item> <item name="deps" xsi:type="string">cms_block_listing.cms_block_listing_data_source</item> - </item>f + </item> <item name="spinner" xsi:type="string">cms_block_columns</item> <item name="buttons" xsi:type="array"> <item name="add" xsi:type="array"> @@ -86,6 +86,7 @@ <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="columnsProvider" xsi:type="string">cms_block_listing.cms_block_listing.cms_block_columns</item> <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> @@ -100,51 +101,6 @@ </item> </item> </argument> - <filterRange name="block_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">block_id</item> - <item name="label" xsi:type="string" translate="true">ID</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">from</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">to</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterInput name="title"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">title</item> - <item name="label" xsi:type="string" translate="true">Title</item> - </item> - </argument> - </filterInput> - <filterInput name="identifier"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">identifier</item> - <item name="label" xsi:type="string" translate="true">Identifier</item> - </item> - </argument> - </filterInput> <filterSelect name="store_id"> <argument name="optionsProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">Magento\Cms\Ui\Component\Listing\Column\Cms\Options</argument> @@ -157,87 +113,6 @@ </item> </argument> </filterSelect> - <filterSelect name="is_active"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="label" xsi:type="string" translate="true">Status</item> - <item name="dataScope" xsi:type="string">is_active</item> - <item name="options" xsi:type="array"> - <item name="disable" xsi:type="array"> - <item name="value" xsi:type="string">0</item> - <item name="label" xsi:type="string" translate="true">Disabled</item> - </item> - <item name="enable" xsi:type="array"> - <item name="value" xsi:type="string">1</item> - <item name="label" xsi:type="string" translate="true">Enabled</item> - </item> - </item> - </item> - </argument> - </filterSelect> - <filterRange name="creation_time" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">creation_time</item> - <item name="label" xsi:type="string" translate="true">Created</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterRange name="update_time" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">update_time</item> - <item name="label" xsi:type="string" translate="true">Modified</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> </filters> <massaction name="listing_massaction"> <argument name="data" xsi:type="array"> @@ -353,6 +228,7 @@ <column name="block_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">ID</item> @@ -368,6 +244,7 @@ <item name="required-entry" xsi:type="boolean">true</item> </item> </item> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Title</item> </item> @@ -383,6 +260,7 @@ <item name="required-entry" xsi:type="boolean">true</item> </item> </item> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Identifier</item> </item> @@ -411,6 +289,7 @@ </item> </item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="editor" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item> @@ -421,6 +300,7 @@ <column name="creation_time"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Created</item> @@ -430,6 +310,7 @@ <column name="update_time"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Modified</item> diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml index 735ef78ca56..ea9cd1d93d4 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml @@ -86,6 +86,7 @@ <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="columnsProvider" xsi:type="string">cms_page_listing.cms_page_listing.cms_page_columns</item> <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> @@ -100,63 +101,6 @@ </item> </item> </argument> - <filterRange name="page_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">page_id</item> - <item name="label" xsi:type="string" translate="true">ID</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">from</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">to</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterInput name="title"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">title</item> - <item name="label" xsi:type="string" translate="true">Title</item> - </item> - </argument> - </filterInput> - <filterInput name="identifier"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">identifier</item> - <item name="label" xsi:type="string" translate="true">URL Key</item> - </item> - </argument> - </filterInput> - <filterSelect name="page_layout"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Cms\Model\Page\Source\PageLayout</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">page_layout</item> - <item name="label" xsi:type="string" translate="true">Layout</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - </item> - </argument> - </filterSelect> <filterSelect name="store_id"> <argument name="optionsProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">Magento\Cms\Ui\Component\Listing\Column\Cms\Options</argument> @@ -169,205 +113,6 @@ </item> </argument> </filterSelect> - <filterSelect name="is_active"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">is_active</item> - <item name="label" xsi:type="string" translate="true">Status</item> - <item name="component" xsi:type="string">Magento_Ui/js/form/element/ui-select</item> - <item name="template" xsi:type="string">ui/grid/filters/elements/ui-select</item> - <item name="options" xsi:type="array"> - <item name="disable" xsi:type="array"> - <item name="value" xsi:type="string">0</item> - <item name="label" xsi:type="string" translate="true">Disabled</item> - </item> - <item name="enable" xsi:type="array"> - <item name="value" xsi:type="string">1</item> - <item name="label" xsi:type="string" translate="true">Published</item> - </item> - </item> - </item> - </argument> - </filterSelect> - <filterRange name="creation_time" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">creation_time</item> - <item name="label" xsi:type="string" translate="true">Created</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">from</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">to</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterRange name="update_time" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">update_time</item> - <item name="label" xsi:type="string" translate="true">Modified</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">from</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">to</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterRange name="custom_theme_from" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">custom_theme_from</item> - <item name="label" xsi:type="string" translate="true">Custom design from</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">from</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">to</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterRange name="custom_theme_to" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">custom_theme_to</item> - <item name="label" xsi:type="string" translate="true">Custom design to</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">from</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">to</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterSelect name="custom_theme"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Cms\Model\Page\Source\Theme</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">custom_theme</item> - <item name="label" xsi:type="string" translate="true">Custom Theme</item> - <item name="component" xsi:type="string">Magento_Ui/js/form/element/ui-select</item> - <item name="template" xsi:type="string">ui/grid/filters/elements/ui-select</item> - </item> - </argument> - </filterSelect> - <filterSelect name="custom_root_template"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Cms\Model\Page\Source\PageLayout</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">custom_root_template</item> - <item name="label" xsi:type="string" translate="true">Custom Layout</item> - <item name="component" xsi:type="string">Magento_Ui/js/form/element/ui-select</item> - <item name="template" xsi:type="string">ui/grid/filters/elements/ui-select</item> - </item> - </argument> - </filterSelect> - <filterInput name="meta_keywords"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">meta_keywords</item> - <item name="label" xsi:type="string" translate="true">Meta Keywords</item> - </item> - </argument> - </filterInput> - <filterInput name="meta_description"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">meta_description</item> - <item name="label" xsi:type="string" translate="true">Meta Description</item> - </item> - </argument> - </filterInput> - <filterSelect name="page_layout"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Cms\Model\Page\Source\PageLayout</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/form/element/ui-select</item> - <item name="template" xsi:type="string">ui/grid/filters/elements/ui-select</item> - <item name="dataScope" xsi:type="string">page_layout</item> - <item name="label" xsi:type="string" translate="true">Layout</item> - </item> - </argument> - </filterSelect> </filters> <massaction name="listing_massaction"> <argument name="data" xsi:type="array"> @@ -504,6 +249,7 @@ <column name="page_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">ID</item> @@ -513,6 +259,7 @@ <column name="title"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="array"> <item name="editorType" xsi:type="string">text</item> <item name="validation" xsi:type="array"> @@ -527,6 +274,7 @@ <column name="identifier"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="array"> <item name="editorType" xsi:type="string">text</item> <item name="validation" xsi:type="array"> @@ -542,6 +290,7 @@ <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Cms\Model\Page\Source\PageLayout</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="editor" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item> @@ -563,6 +312,7 @@ <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Cms\Model\Page\Source\IsActive</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="editor" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item> @@ -573,6 +323,7 @@ <column name="creation_time"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Created</item> @@ -582,6 +333,7 @@ <column name="update_time"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Modified</item> @@ -591,6 +343,7 @@ <column name="custom_theme_from"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="editor" xsi:type="string">date</item> <item name="dataType" xsi:type="string">date</item> @@ -603,6 +356,7 @@ <column name="custom_theme_to"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="editor" xsi:type="string">date</item> <item name="dataType" xsi:type="string">date</item> @@ -616,6 +370,7 @@ <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Cms\Model\Page\Source\Theme</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="editor" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item> @@ -626,6 +381,7 @@ </column> <column name="custom_root_template"> <argument name="data" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="options" xsi:type="object">Magento\Cms\Model\Page\Source\PageLayout</item> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> @@ -639,6 +395,7 @@ <column name="meta_keywords"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Meta Keywords</item> @@ -649,6 +406,7 @@ <column name="meta_description"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Meta Description</item> diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js index b0eca130b00..92e8920a72b 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js @@ -43,13 +43,73 @@ define([ filters: { placeholder: true }, + templates: { + filters: { + base: { + parent: '${ $.$data.filters.name }', + name: '${ $.$data.column.index }', + provider: '${ $.$data.filters.name }', + dataScope: 'filters.${ $.$data.column.index }', + label: '${ $.$data.column.label }', + imports: { + visible: '${ $.$data.column.name }:visible' + } + }, + text: { + component: 'Magento_Ui/js/form/element/abstract', + template: 'ui/grid/filters/elements/input' + }, + select: { + component: 'Magento_Ui/js/form/element/ui-select', + template: 'ui/grid/filters/elements/ui-select', + options: '${ JSON.stringify($.$data.column.options) }' + }, + dateRange: { + component: 'Magento_Ui/js/grid/filters/group', + childDefaults: { + component: 'Magento_Ui/js/form/element/date', + provider: '${ $.parent }.${ $.name }', + dateFormat: 'MM/dd/YYYY', + template: 'ui/grid/filters/elements/date' + }, + children: { + from: { + label: 'from', + dataScope: 'from' + }, + to: { + label: 'to', + dataScope: 'to' + } + } + }, + textRange: { + component: 'Magento_Ui/js/grid/filters/group', + childDefaults: { + component: 'Magento_Ui/js/form/element/abstract', + provider: '${ $.parent }.${ $.name }', + template: 'ui/grid/filters/elements/input' + }, + children: { + from: { + label: 'from', + dataScope: 'from' + }, + to: { + label: 'to', + dataScope: 'to' + } + } + } + } + }, chipsConfig: { name: '${ $.name }_chips', provider: '${ $.chipsConfig.name }', component: 'Magento_Ui/js/grid/filters/chips' }, listens: { - active: 'extractPreviews', + active: 'updatePreviews', applied: 'cancel extractActive' }, links: { @@ -58,7 +118,11 @@ define([ exports: { applied: '${ $.provider }:params.filters' }, + imports: { + 'onColumnsUpdate': '${ $.columnsProvider }:elems' + }, modules: { + columns: '${ $.columnsProvider }', chips: '${ $.chipsConfig.provider }' } }, @@ -105,6 +169,17 @@ define([ return this; }, + /** + * + * @param {Object} filter + * @returns {Filters} Chainable. + */ + initFilter: function (filter) { + layout([filter]); + + return this; + }, + /** * Called when another element was added to current component. * @@ -117,6 +192,17 @@ define([ return this; }, + /** + * + * @param {String} index + * @returns {Filter|Undefined} + */ + getFilter: function (index) { + return this.elems.findWhere({ + index: index + }); + }, + /** * Clears filters data. * @@ -157,6 +243,72 @@ define([ return this; }, + /** + * + * @param {Column} column + * @returns {Object} + */ + buildFilter: function (column) { + var filters = this.templates.filters, + filter = column.filter; + + if (_.isObject(filter) && filter.filterType) { + filter = utils.extend({}, filters[filter.filterType], filter); + } else if (_.isString(filter)) { + filter = filters[filter]; + } + + filter = utils.extend({}, filters.base, filter); + filter = utils.template(filter, { + filters: this, + column: column + }, true, true); + + return filter; + }, + + /** + * + * @param {Column} column + * @returns {Filters} Chainable + */ + createFilter: function (column) { + var index = column.index, + filter; + + if (!column.filter || this.getFilter(index)) { + return this; + } + + filter = this.buildFilter(column); + + this.initFilter(filter); + + return this; + }, + + /** + * + * @returns {Filters} Chainable + */ + updateFilters: function () { + var columns = this.columns().elems(), + filters = [], + filter; + + columns.forEach(function (column) { + filter = this.getFilter(column.index); + + if (filter) { + filters.push(filter); + } + }, this); + + this.insertChild(filters); + + return this; + }, + /** * Tells wether filters pannel should be opened. * @@ -213,12 +365,21 @@ define([ * @param {Array} filters - Filters to be processed. * @returns {Filters} Chainable. */ - extractPreviews: function (filters) { + updatePreviews: function (filters) { var previews = filters.map(extractPreview); this.previews(_.compact(previews)); return this; + }, + + /** + * + */ + onColumnsUpdate: function (columns) { + columns.forEach(this.createFilter, this); + + this.updateFilters(); } }); }); -- GitLab From 62f52e60f87e8416b9337f4e30ee58a85db8c68c Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Fri, 4 Sep 2015 18:55:50 +0300 Subject: [PATCH 003/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Apply new declaration on Orders and Invoices --- .../Catalog/Ui/Component/ColumnFactory.php | 1 - .../ui_component/sales_order_grid.xml | 311 ++---------------- .../ui_component/sales_order_invoice_grid.xml | 283 ++-------------- .../view/base/web/js/grid/filters/filters.js | 6 +- 4 files changed, 60 insertions(+), 541 deletions(-) diff --git a/app/code/Magento/Catalog/Ui/Component/ColumnFactory.php b/app/code/Magento/Catalog/Ui/Component/ColumnFactory.php index 85eaaf679f0..154580539cc 100644 --- a/app/code/Magento/Catalog/Ui/Component/ColumnFactory.php +++ b/app/code/Magento/Catalog/Ui/Component/ColumnFactory.php @@ -53,7 +53,6 @@ class ColumnFactory $config = array_merge([ 'label' => __($attribute->getDefaultFrontendLabel()), 'dataType' => $this->getDataType($attribute), - 'align' => 'left', 'add_field' => true, 'visible' => $attribute->getIsVisibleInGrid(), ], $config); diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml index fefac94d88a..fd2ef59f37a 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml @@ -91,6 +91,7 @@ <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="columnsProvider" xsi:type="string">sales_order_grid.sales_order_grid.sales_order_columns</item> <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> @@ -105,14 +106,6 @@ </item> </item> </argument> - <filterInput name="increment_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">increment_id</item> - <item name="label" xsi:type="string" translate="true">ID</item> - </item> - </argument> - </filterInput> <filterSelect name="store_id"> <argument name="optionsProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">Magento\Store\Ui\Component\Listing\Column\Store\Options</argument> @@ -125,274 +118,6 @@ </item> </argument> </filterSelect> - <filterRange name="created_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">created_at</item> - <item name="label" xsi:type="string" translate="true">Purchase Date</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_grid.sales_order_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterInput name="billing_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_name</item> - <item name="label" xsi:type="string" translate="true">Bill-to Name</item> - </item> - </argument> - </filterInput> - <filterInput name="shipping_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_name</item> - <item name="label" xsi:type="string" translate="true">Ship-to Name</item> - </item> - </argument> - </filterInput> - <filterRange name="base_grand_total"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">base_grand_total</item> - <item name="label" xsi:type="string" translate="true">Grand Total (Base)</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_grid.sales_order_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterRange name="grand_total"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">grand_total</item> - <item name="label" xsi:type="string" translate="true">Grand Total (Purchased)</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_grid.sales_order_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterSelect name="status"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Sales\Ui\Component\Listing\Column\Status\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">status</item> - <item name="label" xsi:type="string" translate="true">Status</item> - </item> - </argument> - </filterSelect> - <filterInput name="billing_address"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_address</item> - <item name="label" xsi:type="string" translate="true">Bill-to Name</item> - </item> - </argument> - </filterInput> - <filterInput name="shipping_address"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_address</item> - <item name="label" xsi:type="string" translate="true">Shipping Address</item> - </item> - </argument> - </filterInput> - <filterInput name="shipping_information"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_information</item> - <item name="label" xsi:type="string" translate="true">Shipping Information</item> - </item> - </argument> - </filterInput> - <filterInput name="customer_email"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_email</item> - <item name="label" xsi:type="string" translate="true">Customer Email</item> - </item> - </argument> - </filterInput> - <filterSelect name="customer_group"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Customer\Ui\Component\Listing\Column\Group\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">customer_group</item> - <item name="label" xsi:type="string" translate="true">Customer Group</item> - </item> - </argument> - </filterSelect> - <filterRange name="subtotal"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">subtotal</item> - <item name="label" xsi:type="string" translate="true">Subtotal</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_grid.sales_order_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterRange name="shipping_and_handling"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_and_handling</item> - <item name="label" xsi:type="string" translate="true">Shipping and Handling</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_grid.sales_order_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterInput name="customer_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_name</item> - <item name="label" xsi:type="string" translate="true">Customer Name</item> - </item> - </argument> - </filterInput> - <filterSelect name="payment_method"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Payment\Ui\Component\Listing\Column\Method\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">payment_method</item> - <item name="label" xsi:type="string" translate="true">Payment Method</item> - </item> - </argument> - </filterSelect> - <filterRange name="total_refunded"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">total_refunded</item> - <item name="label" xsi:type="string" translate="true">Total Refunded</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_grid.sales_order_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> </filters> <massaction name="listing_massaction"> <argument name="data" xsi:type="array"> @@ -546,6 +271,7 @@ <column name="increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">desc</item> <item name="label" xsi:type="string" translate="true">ID</item> @@ -565,6 +291,7 @@ <column name="created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Purchase Date</item> @@ -574,6 +301,7 @@ <column name="billing_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> @@ -582,6 +310,7 @@ <column name="shipping_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Ship-to Name</item> </item> @@ -590,6 +319,7 @@ <column name="base_grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Grand Total (Base)</item> </item> @@ -598,16 +328,19 @@ <column name="grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Grand Total (Purchased)</item> </item> </argument> </column> - <column name="status" class="Magento\Sales\Ui\Component\Listing\Column\Status"> + <column name="status"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Sales\Ui\Component\Listing\Column\Status\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Status</item> </item> </argument> @@ -615,6 +348,7 @@ <column name="billing_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> @@ -625,6 +359,7 @@ <column name="shipping_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> @@ -635,6 +370,7 @@ <column name="shipping_information"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> @@ -644,17 +380,21 @@ <column name="customer_email"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Email</item> </item> </argument> </column> - <column name="customer_group" class="Magento\Sales\Ui\Component\Listing\Column\CustomerGroup"> + <column name="customer_group"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Customer\Ui\Component\Listing\Column\Group\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Customer Group</item> </item> </argument> @@ -662,6 +402,7 @@ <column name="subtotal" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> @@ -671,6 +412,7 @@ <column name="shipping_and_handling" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping and Handling</item> @@ -680,17 +422,21 @@ <column name="customer_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> </column> - <column name="payment_method" class="Magento\Sales\Ui\Component\Listing\Column\PaymentMethod"> + <column name="payment_method"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Payment\Ui\Component\Listing\Column\Method\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Payment Method</item> </item> </argument> @@ -698,6 +444,7 @@ <column name="total_refunded" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Total Refunded</item> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml index 94adb041f2a..1af1f08e6e6 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml @@ -83,6 +83,7 @@ <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="columnsProvider" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.sales_order_invoice_columns</item> <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> @@ -97,104 +98,6 @@ </item> </item> </argument> - <filterInput name="increment_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">increment_id</item> - <item name="label" xsi:type="string" translate="true">Invoice #</item> - </item> - </argument> - </filterInput> - <filterRange name="created_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">created_at</item> - <item name="label" xsi:type="string" translate="true">Invoice Date</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterInput name="order_increment_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">order_increment_id</item> - <item name="label" xsi:type="string" translate="true">Order #</item> - </item> - </argument> - </filterInput> - <filterRange name="order_created_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">order_created_at</item> - <item name="label" xsi:type="string" translate="true">Order Date</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterInput name="billing_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_name</item> - <item name="label" xsi:type="string" translate="true">Bill-to Name</item> - </item> - </argument> - </filterInput> - <filterSelect name="state"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Sales\Ui\Component\Listing\Column\Invoice\State\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">state</item> - <item name="label" xsi:type="string" translate="true">Status</item> - </item> - </argument> - </filterSelect> <filterSelect name="store_id"> <argument name="optionsProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">Magento\Store\Ui\Component\Listing\Column\Store\Options</argument> @@ -207,157 +110,6 @@ </item> </argument> </filterSelect> - <filterInput name="billing_address"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_address</item> - <item name="label" xsi:type="string" translate="true">Billing Address</item> - </item> - </argument> - </filterInput> - <filterInput name="shipping_address"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_address</item> - <item name="label" xsi:type="string" translate="true">Shipping Address</item> - </item> - </argument> - </filterInput> - <filterInput name="customer_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_name</item> - <item name="label" xsi:type="string" translate="true">Customer Name</item> - </item> - </argument> - </filterInput> - <filterInput name="customer_email"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_email</item> - <item name="label" xsi:type="string" translate="true">Customer Email</item> - </item> - </argument> - </filterInput> - <filterSelect name="customer_group_id"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Customer\Ui\Component\Listing\Column\Group\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">customer_group_id</item> - <item name="label" xsi:type="string" translate="true">Customer Group</item> - </item> - </argument> - </filterSelect> - <filterSelect name="payment_method"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Payment\Ui\Component\Listing\Column\Method\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">payment_method</item> - <item name="label" xsi:type="string" translate="true">Payment Method</item> - </item> - </argument> - </filterSelect> - <filterInput name="shipping_information"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_information</item> - <item name="label" xsi:type="string" translate="true">Shipping Information</item> - </item> - </argument> - </filterInput> - <filterRange name="subtotal"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">subtotal</item> - <item name="label" xsi:type="string" translate="true">Subtotal</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterRange name="shipping_and_handling"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_and_handling</item> - <item name="label" xsi:type="string" translate="true">Shipping and Handling</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterRange name="grand_total"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">grand_total</item> - <item name="label" xsi:type="string" translate="true">Grand Total</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> </filters> <massaction name="listing_massaction"> <argument name="data" xsi:type="array"> @@ -448,6 +200,7 @@ <column name="increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">Invoice</item> @@ -457,6 +210,7 @@ <column name="created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Invoice Date</item> @@ -466,6 +220,7 @@ <column name="order_increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Order #</item> </item> @@ -474,6 +229,7 @@ <column name="order_created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Order Date</item> </item> @@ -482,16 +238,19 @@ <column name="billing_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> </argument> </column> - <column name="state" class="Magento\Sales\Ui\Component\Listing\Column\Invoice\State"> + <column name="state"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Sales\Ui\Component\Listing\Column\Invoice\State\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Status</item> </item> </argument> @@ -499,6 +258,7 @@ <column name="grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Amount</item> </item> @@ -518,6 +278,7 @@ <column name="billing_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> @@ -528,6 +289,7 @@ <column name="shipping_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> @@ -538,6 +300,7 @@ <column name="customer_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> @@ -547,26 +310,33 @@ <column name="customer_email"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> </column> - <column name="customer_group_id" class="Magento\Sales\Ui\Component\Listing\Column\CustomerGroup"> + <column name="customer_group_id"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Customer\Ui\Component\Listing\Column\Group\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Customer Group</item> </item> </argument> </column> - <column name="payment_method" class="Magento\Sales\Ui\Component\Listing\Column\PaymentMethod"> + <column name="payment_method"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Payment\Ui\Component\Listing\Column\Method\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Payment Method</item> </item> </argument> @@ -574,6 +344,7 @@ <column name="shipping_information"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> @@ -583,6 +354,7 @@ <column name="subtotal" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> @@ -592,6 +364,7 @@ <column name="shipping_and_handling" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping and Handling</item> diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js index 92e8920a72b..9b8b0ebfabe 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js @@ -49,7 +49,7 @@ define([ parent: '${ $.$data.filters.name }', name: '${ $.$data.column.index }', provider: '${ $.$data.filters.name }', - dataScope: 'filters.${ $.$data.column.index }', + dataScope: '${ $.$data.column.index }', label: '${ $.$data.column.label }', imports: { visible: '${ $.$data.column.name }:visible' @@ -68,7 +68,7 @@ define([ component: 'Magento_Ui/js/grid/filters/group', childDefaults: { component: 'Magento_Ui/js/form/element/date', - provider: '${ $.parent }.${ $.name }', + provider: '${ $.provider }', dateFormat: 'MM/dd/YYYY', template: 'ui/grid/filters/elements/date' }, @@ -87,7 +87,7 @@ define([ component: 'Magento_Ui/js/grid/filters/group', childDefaults: { component: 'Magento_Ui/js/form/element/abstract', - provider: '${ $.parent }.${ $.name }', + provider: '${ $.provider }', template: 'ui/grid/filters/elements/input' }, children: { -- GitLab From cf7dc141a6b7ac8f986ab0804887da9a2e607aca Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Fri, 4 Sep 2015 19:11:48 +0300 Subject: [PATCH 004/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Migrate to new format on product attributes --- .../product_attributes_listing.xml | 97 ++----------------- .../product_attributes_listing.xml | 18 +--- 2 files changed, 11 insertions(+), 104 deletions(-) diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml index 80d2ac0964f..0edccf93535 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml @@ -67,6 +67,7 @@ <item name="links" xsi:type="array"> <item name="applied" xsi:type="string">not-save-filter</item> </item> + <item name="columnsProvider" xsi:type="string">product_attributes_listing.product_attributes_listing.product_attributes_columns</item> <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> @@ -81,94 +82,6 @@ </item> </item> </argument> - <filterInput name="attribute_code"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">attribute_code</item> - <item name="label" xsi:type="string" translate="true">Attribute Code</item> - </item> - </argument> - </filterInput> - <filterInput name="frontend_label"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">frontend_label</item> - <item name="label" xsi:type="string" translate="true">Attribute Label</item> - </item> - </argument> - </filterInput> - <filterSelect name="is_required"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Config\Model\Config\Source\Yesno</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">is_required</item> - <item name="label" xsi:type="string" translate="true">Required</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - </item> - </argument> - </filterSelect> - <filterSelect name="is_user_defined"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Config\Model\Config\Source\Yesno</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">is_user_defined</item> - <item name="label" xsi:type="string" translate="true">System</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - </item> - </argument> - </filterSelect> - <filterSelect name="is_visible"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Config\Model\Config\Source\Yesno</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">is_visible</item> - <item name="label" xsi:type="string" translate="true">Visible</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - </item> - </argument> - </filterSelect> - <filterSelect name="is_global"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Catalog\Model\Attribute\Source\Scopes</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">is_global</item> - <item name="label" xsi:type="string" translate="true">Scope</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - </item> - </argument> - </filterSelect> - <filterSelect name="is_searchable"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Config\Model\Config\Source\Yesno</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">is_searchable</item> - <item name="label" xsi:type="string" translate="true">Searchable</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - </item> - </argument> - </filterSelect> - <filterSelect name="is_comparable"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Config\Model\Config\Source\Yesno</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">is_comparable</item> - <item name="label" xsi:type="string" translate="true">Comparable</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - </item> - </argument> - </filterSelect> </filters> <paging name="listing_paging"> <argument name="data" xsi:type="array"> @@ -233,6 +146,7 @@ <column name="attribute_code"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">Attribute Code</item> @@ -242,6 +156,7 @@ <column name="frontend_label"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Attribute Label</item> </item> @@ -251,6 +166,7 @@ <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Config\Model\Config\Source\Yesno</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Required</item> @@ -261,6 +177,7 @@ <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Config\Model\Config\Source\Yesno</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">System</item> @@ -271,6 +188,7 @@ <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Config\Model\Config\Source\Yesno</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Visible</item> @@ -281,6 +199,7 @@ <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Catalog\Model\Attribute\Source\Scopes</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Scope</item> @@ -291,6 +210,7 @@ <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Config\Model\Config\Source\Yesno</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Searchable</item> @@ -301,6 +221,7 @@ <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Config\Model\Config\Source\Yesno</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Comparable</item> diff --git a/app/code/Magento/LayeredNavigation/view/adminhtml/ui_component/product_attributes_listing.xml b/app/code/Magento/LayeredNavigation/view/adminhtml/ui_component/product_attributes_listing.xml index d205ef1988d..81487126084 100644 --- a/app/code/Magento/LayeredNavigation/view/adminhtml/ui_component/product_attributes_listing.xml +++ b/app/code/Magento/LayeredNavigation/view/adminhtml/ui_component/product_attributes_listing.xml @@ -6,27 +6,13 @@ */ --> <listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Ui/etc/ui_configuration.xsd"> - <container name="listing_top"> - <filters name="listing_filters"> - <filterSelect name="is_filterable"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\LayeredNavigation\Model\Attribute\Source\FilterableOptions</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">is_filterable</item> - <item name="label" xsi:type="string" translate="true">Use in Layered Navigation</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - </item> - </argument> - </filterSelect> - </filters> - </container> + <container name="listing_top"></container> <columns name="product_attributes_columns"> <column name="is_filterable"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\LayeredNavigation\Model\Attribute\Source\FilterableOptions</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Use in Layered Navigation</item> -- GitLab From 41f05fb013c84f96b4cbe38c2fc93241995cf5ab Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Mon, 7 Sep 2015 13:32:24 +0300 Subject: [PATCH 005/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Change filters definition on 'Credit memos' and' Shipments' listings --- .../sales_order_creditmemo_grid.xml | 389 ++---------------- .../sales_order_shipment_grid.xml | 223 ++-------- 2 files changed, 60 insertions(+), 552 deletions(-) diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml index 4d838aa0944..302b87e9fe3 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml @@ -83,6 +83,7 @@ <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="columnsProvider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.sales_order_creditmemo_columns</item> <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> @@ -97,145 +98,6 @@ </item> </item> </argument> - <filterInput name="increment_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">increment_id</item> - <item name="label" xsi:type="string" translate="true">Credit Memo #</item> - </item> - </argument> - </filterInput> - <filterRange name="created_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">created_at</item> - <item name="label" xsi:type="string" translate="true">Created</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterInput name="order_increment_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">order_increment_id</item> - <item name="label" xsi:type="string" translate="true">Order #</item> - </item> - </argument> - </filterInput> - <filterRange name="order_created_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">order_created_at</item> - <item name="label" xsi:type="string" translate="true">Order Date</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterInput name="billing_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_name</item> - <item name="label" xsi:type="string" translate="true">Bill-to Name</item> - </item> - </argument> - </filterInput> - <filterSelect name="state"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Sales\Ui\Component\Listing\Column\Creditmemo\State\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">state</item> - <item name="label" xsi:type="string" translate="true">Status</item> - </item> - </argument> - </filterSelect> - <filterRange name="base_grand_total"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">base_grand_total</item> - <item name="label" xsi:type="string" translate="true">Refunded</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterSelect name="order_status"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Sales\Ui\Component\Listing\Column\Status\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">order_status</item> - <item name="label" xsi:type="string" translate="true">Order Status</item> - </item> - </argument> - </filterSelect> <filterSelect name="store_id"> <argument name="optionsProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">Magento\Store\Ui\Component\Listing\Column\Store\Options</argument> @@ -248,215 +110,6 @@ </item> </argument> </filterSelect> - <filterInput name="billing_address"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_address</item> - <item name="label" xsi:type="string" translate="true">Billing Address</item> - </item> - </argument> - </filterInput> - <filterInput name="shipping_address"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_address</item> - <item name="label" xsi:type="string" translate="true">Shipping Address</item> - </item> - </argument> - </filterInput> - <filterInput name="customer_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_name</item> - <item name="label" xsi:type="string" translate="true">Customer Name</item> - </item> - </argument> - </filterInput> - <filterInput name="customer_email"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_email</item> - <item name="label" xsi:type="string" translate="true">Customer Email</item> - </item> - </argument> - </filterInput> - <filterSelect name="customer_group_id"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Customer\Ui\Component\Listing\Column\Group\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">customer_group_id</item> - <item name="label" xsi:type="string" translate="true">Customer Group</item> - </item> - </argument> - </filterSelect> - <filterSelect name="payment_method"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Payment\Ui\Component\Listing\Column\Method\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">payment_method</item> - <item name="label" xsi:type="string" translate="true">Payment Method</item> - </item> - </argument> - </filterSelect> - <filterInput name="shipping_information"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_information</item> - <item name="label" xsi:type="string" translate="true">Shipping Information</item> - </item> - </argument> - </filterInput> - <filterRange name="subtotal"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">subtotal</item> - <item name="label" xsi:type="string" translate="true">Subtotal</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterRange name="shipping_and_handling"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_and_handling</item> - <item name="label" xsi:type="string" translate="true">Shipping and Handling</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterRange name="adjustment_positive"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">adjustment_positive</item> - <item name="label" xsi:type="string" translate="true">Adjustment Refund</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterRange name="adjustment_negative"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">adjustment_negative</item> - <item name="label" xsi:type="string" translate="true">Adjustment Fee</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterRange name="order_base_grand_total"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">order_base_grand_total</item> - <item name="label" xsi:type="string" translate="true">Grand Total</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> </filters> <massaction name="listing_massaction"> <argument name="data" xsi:type="array"> @@ -547,6 +200,7 @@ <column name="increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Credit Memo</item> </item> @@ -555,6 +209,7 @@ <column name="created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Created</item> @@ -564,6 +219,7 @@ <column name="order_increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Order</item> </item> @@ -572,6 +228,7 @@ <column name="order_created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Order Date</item> @@ -581,16 +238,19 @@ <column name="billing_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> </argument> </column> - <column name="state" class="Magento\Sales\Ui\Component\Listing\Column\Creditmemo\State"> + <column name="state"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Sales\Ui\Component\Listing\Column\Creditmemo\State\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Status</item> </item> </argument> @@ -598,6 +258,7 @@ <column name="base_grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Refunded</item> </item> @@ -605,10 +266,12 @@ </column> <column name="order_status" class="Magento\Sales\Ui\Component\Listing\Column\Status"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Sales\Ui\Component\Listing\Column\Status\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Order Status</item> </item> </argument> @@ -627,6 +290,7 @@ <column name="billing_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> @@ -637,6 +301,7 @@ <column name="shipping_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> @@ -647,6 +312,7 @@ <column name="customer_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> @@ -656,26 +322,33 @@ <column name="customer_email"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> </column> - <column name="customer_group_id" class="Magento\Sales\Ui\Component\Listing\Column\CustomerGroup"> + <column name="customer_group_id"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Customer\Ui\Component\Listing\Column\Group\Options</item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> + <item name="filter" xsi:type="string">select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Customer Group</item> </item> </argument> </column> - <column name="payment_method" class="Magento\Sales\Ui\Component\Listing\Column\PaymentMethod"> + <column name="payment_method"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Payment\Ui\Component\Listing\Column\Method\Options</item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> + <item name="filter" xsi:type="string">select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Payment Method</item> </item> </argument> @@ -683,6 +356,7 @@ <column name="shipping_information"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> @@ -692,6 +366,7 @@ <column name="subtotal" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> @@ -701,6 +376,7 @@ <column name="shipping_and_handling" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping & Handling</item> @@ -710,6 +386,7 @@ <column name="adjustment_positive" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Adjustment Refund</item> @@ -719,6 +396,7 @@ <column name="adjustment_negative" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Adjustment Fee</item> @@ -728,6 +406,7 @@ <column name="order_base_grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Grand Total</item> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml index 5e880cf71c8..23f01b82821 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml @@ -83,6 +83,7 @@ <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="columnsProvider" xsi:type="string">sales_order_shipment_grid.sales_order_shipment_grid.sales_order_shipment_columns</item> <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> @@ -97,133 +98,6 @@ </item> </item> </argument> - <filterInput name="increment_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">increment_id</item> - <item name="label" xsi:type="string" translate="true">Shipment #</item> - </item> - </argument> - </filterInput> - <filterRange name="created_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">created_at</item> - <item name="label" xsi:type="string" translate="true">Ship Date</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_shipment_grid.sales_order_shipment_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterInput name="order_increment_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">order_increment_id</item> - <item name="label" xsi:type="string" translate="true">Order #</item> - </item> - </argument> - </filterInput> - <filterRange name="order_created_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">order_created_at</item> - <item name="label" xsi:type="string" translate="true">Order Date</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_shipment_grid.sales_order_shipment_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterInput name="shipping_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_name</item> - <item name="label" xsi:type="string" translate="true">Ship-to Name</item> - </item> - </argument> - </filterInput> - <filterRange name="total_qty"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">total_qty</item> - <item name="label" xsi:type="string" translate="true">Total Quantity</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_shipment_grid.sales_order_shipment_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterSelect name="order_status"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Sales\Ui\Component\Listing\Column\Status\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">order_status</item> - <item name="label" xsi:type="string" translate="true">Order Status</item> - </item> - </argument> - </filterSelect> <filterSelect name="store_id"> <argument name="optionsProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">Magento\Store\Ui\Component\Listing\Column\Store\Options</argument> @@ -236,70 +110,6 @@ </item> </argument> </filterSelect> - <filterInput name="customer_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_name</item> - <item name="label" xsi:type="string" translate="true">Customer Name</item> - </item> - </argument> - </filterInput> - <filterInput name="customer_email"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_email</item> - <item name="label" xsi:type="string" translate="true">Customer Email</item> - </item> - </argument> - </filterInput> - <filterSelect name="customer_group_id"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Customer\Ui\Component\Listing\Column\Group\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">customer_group_id</item> - <item name="label" xsi:type="string" translate="true">Customer Group</item> - </item> - </argument> - </filterSelect> - <filterInput name="billing_address"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_address</item> - <item name="label" xsi:type="string" translate="true">Billing Address</item> - </item> - </argument> - </filterInput> - <filterInput name="shipping_address"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_address</item> - <item name="label" xsi:type="string" translate="true">Shipping Address</item> - </item> - </argument> - </filterInput> - <filterSelect name="payment_method"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Payment\Ui\Component\Listing\Column\Method\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">payment_method</item> - <item name="label" xsi:type="string" translate="true">Payment Method</item> - </item> - </argument> - </filterSelect> - <filterInput name="shipping_information"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_information</item> - <item name="label" xsi:type="string" translate="true">Shipping Information</item> - </item> - </argument> - </filterInput> </filters> <massaction name="listing_massaction"> <argument name="data" xsi:type="array"> @@ -399,6 +209,7 @@ <column name="increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">Shipment</item> @@ -408,6 +219,7 @@ <column name="created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Ship Date</item> @@ -417,6 +229,7 @@ <column name="order_increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Order</item> </item> @@ -425,6 +238,7 @@ <column name="order_created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Order Date</item> @@ -434,6 +248,7 @@ <column name="shipping_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Ship-to Name</item> </item> @@ -442,17 +257,20 @@ <column name="total_qty"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Total Quantity</item> </item> </argument> </column> - <column name="order_status" class="Magento\Sales\Ui\Component\Listing\Column\Status"> + <column name="order_status"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Sales\Ui\Component\Listing\Column\Status\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Order Status</item> </item> </argument> @@ -471,6 +289,7 @@ <column name="customer_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> @@ -480,17 +299,21 @@ <column name="customer_email"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> </column> - <column name="customer_group_id" class="Magento\Sales\Ui\Component\Listing\Column\CustomerGroup"> + <column name="customer_group_id"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Customer\Ui\Component\Listing\Column\Group\Options</item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> + <item name="filter" xsi:type="string">select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Customer Group</item> </item> </argument> @@ -498,6 +321,7 @@ <column name="billing_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> @@ -508,6 +332,7 @@ <column name="shipping_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> @@ -515,11 +340,14 @@ </item> </argument> </column> - <column name="payment_method" class="Magento\Sales\Ui\Component\Listing\Column\PaymentMethod"> + <column name="payment_method"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Payment\Ui\Component\Listing\Column\Method\Options</item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> + <item name="filter" xsi:type="string">select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Payment Method</item> </item> </argument> @@ -527,6 +355,7 @@ <column name="shipping_information"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> -- GitLab From 1c75b90e6aabdc1f2c07fd585063e0315af90c93 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Mon, 7 Sep 2015 15:09:04 +0300 Subject: [PATCH 006/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Change declaration on sales views pages - Change declaration on products listing (except for custom attributes) --- .../Catalog/Ui/Component/ColumnFactory.php | 11 +- .../ui_component/product_listing.xml | 103 +----- .../sales_order_view_creditmemo_grid.xml | 333 ++---------------- .../sales_order_view_invoice_grid.xml | 284 ++------------- .../sales_order_view_shipment_grid.xml | 223 ++---------- 5 files changed, 106 insertions(+), 848 deletions(-) diff --git a/app/code/Magento/Catalog/Ui/Component/ColumnFactory.php b/app/code/Magento/Catalog/Ui/Component/ColumnFactory.php index 154580539cc..001facb345a 100644 --- a/app/code/Magento/Catalog/Ui/Component/ColumnFactory.php +++ b/app/code/Magento/Catalog/Ui/Component/ColumnFactory.php @@ -60,15 +60,20 @@ class ColumnFactory if ($attribute->usesSource()) { $config['options'] = $attribute->getSource()->getAllOptions(); } + + if ($attribute->getIsFilterableInGrid()) { + + } + + $config['component'] = $this->getJsComponent($config['dataType']); + $arguments = [ 'data' => [ - 'js_config' => [ - 'component' => $this->getJsComponent($config['dataType']), - ], 'config' => $config, ], 'context' => $context, ]; + return $this->componentFactory->create($columnName, 'column', $arguments); } diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml index f4b4889854e..e42a9732d9d 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml @@ -61,9 +61,10 @@ </item> </argument> </container> - <filters name="listing_filters" class="Magento\Catalog\Ui\Component\Listing\Filters"> + <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="columnsProvider" xsi:type="string">product_listing.product_listing.product_columns</item> <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> @@ -78,99 +79,6 @@ </item> </item> </argument> - <filterInput name="name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">name</item> - <item name="label" xsi:type="string" translate="true">Name</item> - </item> - </argument> - </filterInput> - <filterSelect name="type_id"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Catalog\Model\Product\Type</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">type_id</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="label" xsi:type="string" translate="true">Type</item> - </item> - </argument> - </filterSelect> - <filterSelect name="attribute_set_id"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Catalog\Model\Product\AttributeSet\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">attribute_set_id</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="label" xsi:type="string" translate="true">Attribute Set</item> - </item> - </argument> - </filterSelect> - <filterInput name="sku"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">sku</item> - <item name="label" xsi:type="string" translate="true">SKU</item> - </item> - </argument> - </filterInput> - <filterRange name="price"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">price</item> - <item name="label" xsi:type="string" translate="true">Price</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">product_listing.product_listing.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">from</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">to</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterSelect name="visibility"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Catalog\Model\Product\Visibility</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">visibility</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="label" xsi:type="string" translate="true">Visibility</item> - </item> - </argument> - </filterSelect> - <filterSelect name="status"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Catalog\Model\Product\Attribute\Source\Status</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">status</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="label" xsi:type="string" translate="true">Status</item> - </item> - </argument> - </filterSelect> <filterSelect name="store_id"> <argument name="optionsProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">Magento\Store\Ui\Component\Listing\Column\Store\Options</argument> @@ -338,6 +246,7 @@ <column name="name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="add_field" xsi:type="boolean">true</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Name</item> @@ -349,6 +258,7 @@ <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Catalog\Model\Product\Type</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Type</item> @@ -360,6 +270,7 @@ <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Catalog\Model\Product\AttributeSet\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Attribute Set</item> @@ -370,6 +281,7 @@ <column name="sku"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">SKU</item> <item name="sortOrder" xsi:type="number">60</item> @@ -379,6 +291,7 @@ <column name="price" class="Magento\Catalog\Ui\Component\Listing\Columns\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="add_field" xsi:type="boolean">true</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Price</item> @@ -390,6 +303,7 @@ <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Catalog\Model\Product\Visibility</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="add_field" xsi:type="boolean">true</item> <item name="dataType" xsi:type="string">select</item> @@ -402,6 +316,7 @@ <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Catalog\Model\Product\Attribute\Source\Status</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="add_field" xsi:type="boolean">true</item> <item name="dataType" xsi:type="string">select</item> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml index bb6eba32c92..9fcd25c569f 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml @@ -86,6 +86,7 @@ <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="columnsProvider" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.sales_order_creditmemo_columns</item> <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> @@ -100,145 +101,6 @@ </item> </item> </argument> - <filterInput name="increment_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">increment_id</item> - <item name="label" xsi:type="string" translate="true">Credit Memo</item> - </item> - </argument> - </filterInput> - <filterRange name="created_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">created_at</item> - <item name="label" xsi:type="string" translate="true">Created</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterInput name="order_increment_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">order_increment_id</item> - <item name="label" xsi:type="string" translate="true">Order</item> - </item> - </argument> - </filterInput> - <filterRange name="order_created_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">order_created_at</item> - <item name="label" xsi:type="string" translate="true">Order Date</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterInput name="billing_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_name</item> - <item name="label" xsi:type="string" translate="true">Bill-to Name</item> - </item> - </argument> - </filterInput> - <filterSelect name="state"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Sales\Ui\Component\Listing\Column\Creditmemo\State\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">state</item> - <item name="label" xsi:type="string" translate="true">Status</item> - </item> - </argument> - </filterSelect> - <filterRange name="base_grand_total"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">base_grand_total</item> - <item name="label" xsi:type="string" translate="true">Refunded</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterSelect name="order_status"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Sales\Ui\Component\Listing\Column\Status\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">order_status</item> - <item name="label" xsi:type="string" translate="true">Order Status</item> - </item> - </argument> - </filterSelect> <filterSelect name="store_id"> <argument name="optionsProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">Magento\Store\Ui\Component\Listing\Column\Store\Options</argument> @@ -251,157 +113,6 @@ </item> </argument> </filterSelect> - <filterInput name="billing_address"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_address</item> - <item name="label" xsi:type="string" translate="true">Billing Address</item> - </item> - </argument> - </filterInput> - <filterInput name="shipping_address"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_address</item> - <item name="label" xsi:type="string" translate="true">Shipping Address</item> - </item> - </argument> - </filterInput> - <filterInput name="customer_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_name</item> - <item name="label" xsi:type="string" translate="true">Customer Name</item> - </item> - </argument> - </filterInput> - <filterInput name="customer_email"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_email</item> - <item name="label" xsi:type="string" translate="true">Customer Email</item> - </item> - </argument> - </filterInput> - <filterSelect name="customer_group_id"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Customer\Ui\Component\Listing\Column\Group\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">customer_group_id</item> - <item name="label" xsi:type="string" translate="true">Customer Group</item> - </item> - </argument> - </filterSelect> - <filterSelect name="payment_method"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Payment\Ui\Component\Listing\Column\Method\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">payment_method</item> - <item name="label" xsi:type="string" translate="true">Payment Method</item> - </item> - </argument> - </filterSelect> - <filterInput name="shipping_information"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_information</item> - <item name="label" xsi:type="string" translate="true">Shipping Information</item> - </item> - </argument> - </filterInput> - <filterRange name="subtotal"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">subtotal</item> - <item name="label" xsi:type="string" translate="true">Subtotal</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterRange name="shipping_and_handling"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_and_handling</item> - <item name="label" xsi:type="string" translate="true">Shipping and Handling</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterRange name="order_base_grand_total"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">order_base_grand_total</item> - <item name="label" xsi:type="string" translate="true">Grand Total</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> </filters> <massaction name="listing_massaction"> <argument name="data" xsi:type="array"> @@ -480,7 +191,7 @@ </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> + <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> @@ -492,6 +203,7 @@ <column name="increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Credit Memo</item> </item> @@ -500,6 +212,7 @@ <column name="created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Created</item> @@ -509,6 +222,7 @@ <column name="order_increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Order</item> </item> @@ -517,6 +231,7 @@ <column name="order_created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Order Date</item> @@ -526,16 +241,19 @@ <column name="billing_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> </argument> </column> - <column name="state" class="Magento\Sales\Ui\Component\Listing\Column\Creditmemo\State"> + <column name="state"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Sales\Ui\Component\Listing\Column\Creditmemo\State\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Status</item> </item> </argument> @@ -543,6 +261,7 @@ <column name="base_grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Refunded</item> </item> @@ -550,10 +269,12 @@ </column> <column name="order_status" class="Magento\Sales\Ui\Component\Listing\Column\Status"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Sales\Ui\Component\Listing\Column\Status\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Order Status</item> </item> </argument> @@ -572,6 +293,7 @@ <column name="billing_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> @@ -582,6 +304,7 @@ <column name="shipping_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> @@ -592,6 +315,7 @@ <column name="customer_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> @@ -601,26 +325,33 @@ <column name="customer_email"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> </column> - <column name="customer_group_id" class="Magento\Sales\Ui\Component\Listing\Column\CustomerGroup"> + <column name="customer_group_id"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Customer\Ui\Component\Listing\Column\Group\Options</item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> + <item name="filter" xsi:type="string">select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Customer Group</item> </item> </argument> </column> - <column name="payment_method" class="Magento\Sales\Ui\Component\Listing\Column\PaymentMethod"> + <column name="payment_method"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Payment\Ui\Component\Listing\Column\Method\Options</item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> + <item name="filter" xsi:type="string">select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Payment Method</item> </item> </argument> @@ -628,6 +359,7 @@ <column name="shipping_information"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> @@ -637,6 +369,7 @@ <column name="subtotal" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> @@ -646,6 +379,7 @@ <column name="shipping_and_handling" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping & Handling</item> @@ -655,6 +389,7 @@ <column name="adjustment_positive" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Adjustment Refund</item> @@ -664,6 +399,7 @@ <column name="adjustment_negative" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Adjustment Fee</item> @@ -673,6 +409,7 @@ <column name="order_base_grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Grand Total</item> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml index faf52b87b26..a252cc1b3ef 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml @@ -86,6 +86,7 @@ <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="columnsProvider" xsi:type="string">sales_order_view_invoice_grid.sales_order_view_invoice_grid.sales_order_invoice_columns</item> <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> @@ -100,104 +101,6 @@ </item> </item> </argument> - <filterInput name="increment_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">increment_id</item> - <item name="label" xsi:type="string" translate="true">Invoice #</item> - </item> - </argument> - </filterInput> - <filterRange name="created_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">created_at</item> - <item name="label" xsi:type="string" translate="true">Invoice Date</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_view_invoice_grid.sales_order_view_invoice_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterInput name="order_increment_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">order_increment_id</item> - <item name="label" xsi:type="string" translate="true">Order #</item> - </item> - </argument> - </filterInput> - <filterRange name="order_created_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">order_created_at</item> - <item name="label" xsi:type="string" translate="true">Order Date</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_view_invoice_grid.sales_order_view_invoice_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterInput name="billing_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_name</item> - <item name="label" xsi:type="string" translate="true">Bill-to Name</item> - </item> - </argument> - </filterInput> - <filterSelect name="state"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Sales\Ui\Component\Listing\Column\Invoice\State\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">state</item> - <item name="label" xsi:type="string" translate="true">Status</item> - </item> - </argument> - </filterSelect> <filterSelect name="store_id"> <argument name="optionsProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">Magento\Store\Ui\Component\Listing\Column\Store\Options</argument> @@ -210,157 +113,6 @@ </item> </argument> </filterSelect> - <filterInput name="billing_address"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_address</item> - <item name="label" xsi:type="string" translate="true">Billing Address</item> - </item> - </argument> - </filterInput> - <filterInput name="shipping_address"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_address</item> - <item name="label" xsi:type="string" translate="true">Shipping Address</item> - </item> - </argument> - </filterInput> - <filterInput name="customer_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_name</item> - <item name="label" xsi:type="string" translate="true">Customer Name</item> - </item> - </argument> - </filterInput> - <filterInput name="customer_email"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_email</item> - <item name="label" xsi:type="string" translate="true">Customer Email</item> - </item> - </argument> - </filterInput> - <filterSelect name="customer_group_id"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Customer\Ui\Component\Listing\Column\Group\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">customer_group_id</item> - <item name="label" xsi:type="string" translate="true">Customer Group</item> - </item> - </argument> - </filterSelect> - <filterSelect name="payment_method"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Payment\Ui\Component\Listing\Column\Method\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">payment_method</item> - <item name="label" xsi:type="string" translate="true">Payment Method</item> - </item> - </argument> - </filterSelect> - <filterInput name="shipping_information"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_information</item> - <item name="label" xsi:type="string" translate="true">Shipping Information</item> - </item> - </argument> - </filterInput> - <filterRange name="subtotal"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">subtotal</item> - <item name="label" xsi:type="string" translate="true">Subtotal</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_view_invoice_grid.sales_order_view_invoice_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterRange name="shipping_and_handling"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_and_handling</item> - <item name="label" xsi:type="string" translate="true">Shipping and Handling</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_view_invoice_grid.sales_order_view_invoice_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterRange name="grand_total"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">grand_total</item> - <item name="label" xsi:type="string" translate="true">Grand Total</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_view_invoice_grid.sales_order_view_invoice_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> </filters> <massaction name="listing_massaction"> <argument name="data" xsi:type="array"> @@ -451,6 +203,7 @@ <column name="increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">Invoice</item> @@ -460,6 +213,7 @@ <column name="created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Invoice Date</item> @@ -469,6 +223,7 @@ <column name="order_increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Order #</item> </item> @@ -477,7 +232,7 @@ <column name="order_created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> + <item name="filter" xsi:type="string">dateRange</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Order Date</item> </item> @@ -486,16 +241,19 @@ <column name="billing_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> </argument> </column> - <column name="state" class="Magento\Sales\Ui\Component\Listing\Column\Invoice\State"> + <column name="state"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Sales\Ui\Component\Listing\Column\Invoice\State\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Status</item> </item> </argument> @@ -503,6 +261,7 @@ <column name="grand_total" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Amount</item> </item> @@ -522,6 +281,7 @@ <column name="billing_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> @@ -532,6 +292,7 @@ <column name="shipping_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> @@ -542,6 +303,7 @@ <column name="customer_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> @@ -551,26 +313,33 @@ <column name="customer_email"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> </column> - <column name="customer_group_id" class="Magento\Sales\Ui\Component\Listing\Column\CustomerGroup"> + <column name="customer_group_id"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Customer\Ui\Component\Listing\Column\Group\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Customer Group</item> </item> </argument> </column> - <column name="payment_method" class="Magento\Sales\Ui\Component\Listing\Column\PaymentMethod"> + <column name="payment_method"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Payment\Ui\Component\Listing\Column\Method\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Payment Method</item> </item> </argument> @@ -578,6 +347,7 @@ <column name="shipping_information"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> @@ -587,6 +357,7 @@ <column name="subtotal" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> @@ -596,6 +367,7 @@ <column name="shipping_and_handling" class="Magento\Sales\Ui\Component\Listing\Column\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping and Handling</item> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml index b5932cc18fa..14662cf099e 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml @@ -86,6 +86,7 @@ <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="columnsProvider" xsi:type="string">sales_order_view_shipment_grid.sales_order_view_shipment_grid.sales_order_shipment_columns</item> <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> @@ -100,133 +101,6 @@ </item> </item> </argument> - <filterInput name="increment_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">increment_id</item> - <item name="label" xsi:type="string" translate="true">Shipment #</item> - </item> - </argument> - </filterInput> - <filterRange name="created_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">created_at</item> - <item name="label" xsi:type="string" translate="true">Ship Date</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_view_shipment_grid.sales_order_view_shipment_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterInput name="order_increment_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">order_increment_id</item> - <item name="label" xsi:type="string" translate="true">Order #</item> - </item> - </argument> - </filterInput> - <filterRange name="order_created_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">order_created_at</item> - <item name="label" xsi:type="string" translate="true">Order Date</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_view_shipment_grid.sales_order_view_shipment_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterInput name="shipping_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_name</item> - <item name="label" xsi:type="string" translate="true">Ship-to Name</item> - </item> - </argument> - </filterInput> - <filterRange name="total_qty"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">total_qty</item> - <item name="label" xsi:type="string" translate="true">Total Quantity</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">sales_order_view_shipment_grid.sales_order_view_shipment_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterSelect name="order_status"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Sales\Ui\Component\Listing\Column\Status\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">order_status</item> - <item name="label" xsi:type="string" translate="true">Order Status</item> - </item> - </argument> - </filterSelect> <filterSelect name="store_id"> <argument name="optionsProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">Magento\Store\Ui\Component\Listing\Column\Store\Options</argument> @@ -239,70 +113,6 @@ </item> </argument> </filterSelect> - <filterInput name="customer_name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_name</item> - <item name="label" xsi:type="string" translate="true">Customer Name</item> - </item> - </argument> - </filterInput> - <filterInput name="customer_email"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_email</item> - <item name="label" xsi:type="string" translate="true">Customer Email</item> - </item> - </argument> - </filterInput> - <filterSelect name="customer_group_id"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Customer\Ui\Component\Listing\Column\Group\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">customer_group_id</item> - <item name="label" xsi:type="string" translate="true">Customer Group</item> - </item> - </argument> - </filterSelect> - <filterInput name="billing_address"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_address</item> - <item name="label" xsi:type="string" translate="true">Billing Address</item> - </item> - </argument> - </filterInput> - <filterInput name="shipping_address"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_address</item> - <item name="label" xsi:type="string" translate="true">Shipping Address</item> - </item> - </argument> - </filterInput> - <filterSelect name="payment_method"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Payment\Ui\Component\Listing\Column\Method\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">payment_method</item> - <item name="label" xsi:type="string" translate="true">Payment Method</item> - </item> - </argument> - </filterSelect> - <filterInput name="shipping_information"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">shipping_information</item> - <item name="label" xsi:type="string" translate="true">Shipping Information</item> - </item> - </argument> - </filterInput> </filters> <massaction name="listing_massaction"> <argument name="data" xsi:type="array"> @@ -397,6 +207,7 @@ <column name="increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">Shipment</item> @@ -406,6 +217,7 @@ <column name="created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Ship Date</item> @@ -415,6 +227,7 @@ <column name="order_increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Order</item> </item> @@ -423,6 +236,7 @@ <column name="order_created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Order Date</item> @@ -432,6 +246,7 @@ <column name="shipping_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Ship-to Name</item> </item> @@ -440,17 +255,20 @@ <column name="total_qty"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Total Quantity</item> </item> </argument> </column> - <column name="order_status" class="Magento\Sales\Ui\Component\Listing\Column\Status"> + <column name="order_status"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Sales\Ui\Component\Listing\Column\Status\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Order Status</item> </item> </argument> @@ -469,6 +287,7 @@ <column name="customer_name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> @@ -478,17 +297,21 @@ <column name="customer_email"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> </column> - <column name="customer_group_id" class="Magento\Sales\Ui\Component\Listing\Column\CustomerGroup"> + <column name="customer_group_id"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Customer\Ui\Component\Listing\Column\Group\Options</item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> + <item name="filter" xsi:type="string">select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Customer Group</item> </item> </argument> @@ -496,6 +319,7 @@ <column name="billing_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> @@ -506,6 +330,7 @@ <column name="shipping_address" class="Magento\Sales\Ui\Component\Listing\Column\Address"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> @@ -513,11 +338,14 @@ </item> </argument> </column> - <column name="payment_method" class="Magento\Sales\Ui\Component\Listing\Column\PaymentMethod"> + <column name="payment_method"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Payment\Ui\Component\Listing\Column\Method\Options</item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> + <item name="filter" xsi:type="string">select</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Payment Method</item> </item> </argument> @@ -525,6 +353,7 @@ <column name="shipping_information"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> -- GitLab From c1750d1984e5d229c2c852c70ad94362efb8470a Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Mon, 7 Sep 2015 15:58:51 +0300 Subject: [PATCH 007/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Remove old filter declaration from Catalog Inventory --- .../ui_component/product_listing.xml | 34 +------------------ 1 file changed, 1 insertion(+), 33 deletions(-) diff --git a/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml b/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml index 1596400be77..7d795608ee3 100644 --- a/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml +++ b/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml @@ -6,43 +6,11 @@ */ --> <listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Ui/etc/ui_configuration.xsd"> - <container name="listing_top"> - <filters name="listing_filters" class="Magento\Catalog\Ui\Component\Listing\Filters"> - <filterRange name="qty"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">qty</item> - <item name="label" xsi:type="string" translate="true">Quantity</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">product_listing.product_listing.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">from</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">to</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - </filters> - </container> <columns name="product_columns" class="Magento\Catalog\Ui\Component\Listing\Columns"> <column name="qty"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="add_field" xsi:type="boolean">true</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Quantity</item> -- GitLab From 6fa4995ecd5fe16fc79616cf4a171213694eddf6 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy <dpoperechnyy@ebay.com> Date: Tue, 18 Aug 2015 19:37:55 +0300 Subject: [PATCH 008/420] MAGETWO-41501: Wrong success mass delete message on cms pages and blocks --- .../Controller/Adminhtml/Block/MassDelete.php | 9 +- .../Controller/Adminhtml/Page/MassDelete.php | 9 +- .../Adminhtml/AbstractMassDeleteTest.php | 68 +++++++++++ .../Adminhtml/Block/MassDeleteTest.php | 114 ++++++++++++++++++ .../Adminhtml/Page/MassDeleteTest.php | 114 ++++++++++++++++++ 5 files changed, 306 insertions(+), 8 deletions(-) create mode 100644 app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassDeleteTest.php create mode 100644 app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php create mode 100644 app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php index d9a8c044873..42319679b92 100644 --- a/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php +++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php @@ -47,12 +47,13 @@ class MassDelete extends \Magento\Backend\App\Action public function execute() { $collection = $this->filter->getCollection($this->collectionFactory->create()); - - foreach ($collection as $item) { - $item->delete(); + $deletedBlocks = 0; + foreach ($collection as $block) { + $block->delete(); + $deletedBlocks++; } - $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $collection->getSize())); + $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $deletedBlocks)); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php index e5cfcf22966..e699a3a480e 100644 --- a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php +++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php @@ -46,12 +46,13 @@ class MassDelete extends \Magento\Backend\App\Action public function execute() { $collection = $this->filter->getCollection($this->collectionFactory->create()); - - foreach ($collection as $item) { - $item->delete(); + $deletedPages = 0; + foreach ($collection as $page) { + $page->delete(); + $deletedPages++; } - $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $collection->getSize())); + $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $deletedPages)); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassDeleteTest.php new file mode 100644 index 00000000000..0668edee3be --- /dev/null +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassDeleteTest.php @@ -0,0 +1,68 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Cms\Test\Unit\Controller\Adminhtml; + +use Magento\Framework\Controller\ResultFactory; + +abstract class AbstractMassDeleteTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager + */ + protected $objectManager; + + /** + * @var \Magento\Backend\App\Action\Context|\PHPUnit_Framework_MockObject_MockObject + */ + protected $contextMock; + + /** + * @var \Magento\Framework\Controller\ResultFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $resultFactoryMock; + + /** + * @var \Magento\Backend\Model\View\Result\Redirect|\PHPUnit_Framework_MockObject_MockObject + */ + protected $resultRedirectMock; + + /** + * @var \Magento\Framework\Message\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $messageManagerMock; + + /** + * @var \Magento\Ui\Component\MassAction\Filter|\PHPUnit_Framework_MockObject_MockObject + */ + protected $filterMock; + + protected function setUp() + { + $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + + $this->messageManagerMock = $this->getMock('Magento\Framework\Message\ManagerInterface', [], [], '', false); + + $this->resultFactoryMock = $this->getMockBuilder('Magento\Framework\Controller\ResultFactory') + ->disableOriginalConstructor() + ->getMock(); + $this->resultRedirectMock = $this->getMockBuilder('Magento\Backend\Model\View\Result\Redirect') + ->disableOriginalConstructor() + ->getMock(); + $this->resultFactoryMock->expects($this->any()) + ->method('create') + ->with(ResultFactory::TYPE_REDIRECT, []) + ->willReturn($this->resultRedirectMock); + + $this->contextMock = $this->getMock('\Magento\Backend\App\Action\Context', [], [], '', false); + + $this->filterMock = $this->getMockBuilder('Magento\Ui\Component\MassAction\Filter') + ->disableOriginalConstructor() + ->getMock(); + + $this->contextMock->expects($this->any())->method('getMessageManager')->willReturn($this->messageManagerMock); + $this->contextMock->expects($this->any())->method('getResultFactory')->willReturn($this->resultFactoryMock); + } +} diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php new file mode 100644 index 00000000000..7db8d7b28ca --- /dev/null +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php @@ -0,0 +1,114 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Cms\Test\Unit\Controller\Adminhtml\Block; + +use Magento\Cms\Test\Unit\Controller\Adminhtml\AbstractMassDeleteTest; + +class MassDeleteTest extends AbstractMassDeleteTest +{ + /** + * @var \Magento\Cms\Controller\Adminhtml\Block\MassDelete + */ + protected $massDeleteController; + + /** + * @var \Magento\Cms\Model\Resource\Block\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $collectionFactoryMock; + + /** + * @var \Magento\Cms\Model\Resource\Block\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $blockCollectionMock; + + /** + * @var \Magento\Cms\Model\Resource\Block\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $headerBlockCollectionMock; + + /** + * @var \Magento\Cms\Model\Resource\Block\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $footerBlockCollectionMock; + + protected function setUp() + { + parent::setUp(); + + $this->collectionFactoryMock = $this->getMock( + 'Magento\Cms\Model\Resource\Block\CollectionFactory', + ['create'], + [], + '', + false + ); + + $this->blockCollectionMock = $this->getMock( + 'Magento\Cms\Model\Resource\Block\Collection', + ['delete'], + [], + '', + false + ); + + $this->headerBlockCollectionMock = $this->getMock( + 'Magento\Cms\Model\Resource\Block\Collection', + ['delete'], + [], + '', + false + ); + + $this->footerBlockCollectionMock = $this->getMock( + 'Magento\Cms\Model\Resource\Block\Collection', + ['delete'], + [], + '', + false + ); + + $this->massDeleteController = $this->objectManager->getObject( + 'Magento\Cms\Controller\Adminhtml\Block\MassDelete', + [ + 'context' => $this->contextMock, + 'filter' => $this->filterMock, + 'collectionFactory' => $this->collectionFactoryMock + ] + ); + } + + public function testMassDeleteAction() + { + $deletedBlocks = 2; + + $collection = [ + $this->headerBlockCollectionMock, + $this->footerBlockCollectionMock + ]; + + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->blockCollectionMock); + + $this->filterMock->expects($this->once()) + ->method('getCollection') + ->with($this->blockCollectionMock) + ->willReturn($collection); + + $this->headerBlockCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); + $this->footerBlockCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with(__('A total of %1 record(s) have been deleted.', $deletedBlocks)); + $this->messageManagerMock->expects($this->never())->method('addError'); + + $this->resultRedirectMock->expects($this->once()) + ->method('setPath') + ->with('*/*/') + ->willReturnSelf(); + + $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute()); + } +} diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php new file mode 100644 index 00000000000..0bc28b3c52a --- /dev/null +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php @@ -0,0 +1,114 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Cms\Test\Unit\Controller\Adminhtml\Page; + +use Magento\Cms\Test\Unit\Controller\Adminhtml\AbstractMassDeleteTest; + +class MassDeleteTest extends AbstractMassDeleteTest +{ + /** + * @var \Magento\Cms\Controller\Adminhtml\Page\MassDelete + */ + protected $massDeleteController; + + /** + * @var \Magento\Cms\Model\Resource\Page\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $collectionFactoryMock; + + /** + * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageCollectionMock; + + /** + * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $homePageCollectionMock; + + /** + * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $welcomePageCollectionMock; + + protected function setUp() + { + parent::setUp(); + + $this->collectionFactoryMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\CollectionFactory', + ['create'], + [], + '', + false + ); + + $this->pageCollectionMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\Collection', + ['delete'], + [], + '', + false + ); + + $this->homePageCollectionMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\Collection', + ['delete'], + [], + '', + false + ); + + $this->welcomePageCollectionMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\Collection', + ['delete'], + [], + '', + false + ); + + $this->massDeleteController = $this->objectManager->getObject( + 'Magento\Cms\Controller\Adminhtml\Page\MassDelete', + [ + 'context' => $this->contextMock, + 'filter' => $this->filterMock, + 'collectionFactory' => $this->collectionFactoryMock + ] + ); + } + + public function testMassDeleteAction() + { + $deletedPages = 2; + + $collection = [ + $this->homePageCollectionMock, + $this->welcomePageCollectionMock + ]; + + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); + + $this->filterMock->expects($this->once()) + ->method('getCollection') + ->with($this->pageCollectionMock) + ->willReturn($collection); + + $this->homePageCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); + $this->welcomePageCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with(__('A total of %1 record(s) have been deleted.', $deletedPages)); + $this->messageManagerMock->expects($this->never())->method('addError'); + + $this->resultRedirectMock->expects($this->once()) + ->method('setPath') + ->with('*/*/') + ->willReturnSelf(); + + $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute()); + } +} -- GitLab From 4d5a2abcce5c8a4642bb65c9a96be455f1d743ac Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy <dpoperechnyy@ebay.com> Date: Wed, 19 Aug 2015 12:52:06 +0300 Subject: [PATCH 009/420] MAGETWO-41501: Wrong success mass delete message on cms pages and blocks - Unit tests updated; --- .../Adminhtml/Block/MassDeleteTest.php | 63 +++++-------------- .../Adminhtml/Page/MassDeleteTest.php | 63 +++++-------------- 2 files changed, 34 insertions(+), 92 deletions(-) diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php index 7db8d7b28ca..f27016e49d4 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php @@ -19,21 +19,6 @@ class MassDeleteTest extends AbstractMassDeleteTest */ protected $collectionFactoryMock; - /** - * @var \Magento\Cms\Model\Resource\Block\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $blockCollectionMock; - - /** - * @var \Magento\Cms\Model\Resource\Block\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $headerBlockCollectionMock; - - /** - * @var \Magento\Cms\Model\Resource\Block\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $footerBlockCollectionMock; - protected function setUp() { parent::setUp(); @@ -46,30 +31,6 @@ class MassDeleteTest extends AbstractMassDeleteTest false ); - $this->blockCollectionMock = $this->getMock( - 'Magento\Cms\Model\Resource\Block\Collection', - ['delete'], - [], - '', - false - ); - - $this->headerBlockCollectionMock = $this->getMock( - 'Magento\Cms\Model\Resource\Block\Collection', - ['delete'], - [], - '', - false - ); - - $this->footerBlockCollectionMock = $this->getMock( - 'Magento\Cms\Model\Resource\Block\Collection', - ['delete'], - [], - '', - false - ); - $this->massDeleteController = $this->objectManager->getObject( 'Magento\Cms\Controller\Adminhtml\Block\MassDelete', [ @@ -85,20 +46,17 @@ class MassDeleteTest extends AbstractMassDeleteTest $deletedBlocks = 2; $collection = [ - $this->headerBlockCollectionMock, - $this->footerBlockCollectionMock + $this->getBlockMock(), + $this->getBlockMock() ]; - $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->blockCollectionMock); + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->getBlockMock()); $this->filterMock->expects($this->once()) ->method('getCollection') - ->with($this->blockCollectionMock) + ->with($this->getBlockMock()) ->willReturn($collection); - $this->headerBlockCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); - $this->footerBlockCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); - $this->messageManagerMock->expects($this->once()) ->method('addSuccess') ->with(__('A total of %1 record(s) have been deleted.', $deletedBlocks)); @@ -111,4 +69,17 @@ class MassDeleteTest extends AbstractMassDeleteTest $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute()); } + + /** + * Create Cms Block Collection Mock + * + * @return \Magento\Cms\Model\Resource\Block\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected function getBlockMock() + { + $blockMock = $this->getMock('Magento\Cms\Model\Resource\Block\Collection', ['delete'], [], '', false); + $blockMock->expects($this->any())->method('delete')->willReturn(true); + + return $blockMock; + } } diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php index 0bc28b3c52a..f768a6480e6 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php @@ -19,21 +19,6 @@ class MassDeleteTest extends AbstractMassDeleteTest */ protected $collectionFactoryMock; - /** - * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $pageCollectionMock; - - /** - * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $homePageCollectionMock; - - /** - * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $welcomePageCollectionMock; - protected function setUp() { parent::setUp(); @@ -46,30 +31,6 @@ class MassDeleteTest extends AbstractMassDeleteTest false ); - $this->pageCollectionMock = $this->getMock( - 'Magento\Cms\Model\Resource\Page\Collection', - ['delete'], - [], - '', - false - ); - - $this->homePageCollectionMock = $this->getMock( - 'Magento\Cms\Model\Resource\Page\Collection', - ['delete'], - [], - '', - false - ); - - $this->welcomePageCollectionMock = $this->getMock( - 'Magento\Cms\Model\Resource\Page\Collection', - ['delete'], - [], - '', - false - ); - $this->massDeleteController = $this->objectManager->getObject( 'Magento\Cms\Controller\Adminhtml\Page\MassDelete', [ @@ -85,20 +46,17 @@ class MassDeleteTest extends AbstractMassDeleteTest $deletedPages = 2; $collection = [ - $this->homePageCollectionMock, - $this->welcomePageCollectionMock + $this->getPageMock(), + $this->getPageMock() ]; - $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->getPageMock()); $this->filterMock->expects($this->once()) ->method('getCollection') - ->with($this->pageCollectionMock) + ->with($this->getPageMock()) ->willReturn($collection); - $this->homePageCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); - $this->welcomePageCollectionMock->expects($this->exactly(1))->method('delete')->willReturn(true); - $this->messageManagerMock->expects($this->once()) ->method('addSuccess') ->with(__('A total of %1 record(s) have been deleted.', $deletedPages)); @@ -111,4 +69,17 @@ class MassDeleteTest extends AbstractMassDeleteTest $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute()); } + + /** + * Create Cms Page Collection Mock + * + * @return \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected function getPageMock() + { + $pageMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', ['delete'], [], '', false); + $pageMock->expects($this->any())->method('delete')->willReturn(true); + + return $pageMock; + } } -- GitLab From 8833dbec27cb205acf587fa828790d1c970a5fa4 Mon Sep 17 00:00:00 2001 From: Yuri Kovsher <ikovsher@ebay.com> Date: Fri, 21 Aug 2015 13:20:17 +0300 Subject: [PATCH 010/420] MAGETWO-41916: Production Mode does not Work for Authorize.net --- .../Authorizenet/etc/adminhtml/system.xml | 25 +++++++++++-------- app/code/Magento/Authorizenet/etc/config.xml | 2 ++ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/app/code/Magento/Authorizenet/etc/adminhtml/system.xml b/app/code/Magento/Authorizenet/etc/adminhtml/system.xml index 591d0951e2d..cfff3a92745 100644 --- a/app/code/Magento/Authorizenet/etc/adminhtml/system.xml +++ b/app/code/Magento/Authorizenet/etc/adminhtml/system.xml @@ -44,45 +44,48 @@ <field id="cgi_url" translate="label" type="text" sortOrder="90" showInDefault="1" showInWebsite="1" showInStore="0"> <label>Gateway URL</label> </field> - <field id="currency" translate="label" type="select" sortOrder="100" showInDefault="1" showInWebsite="1" showInStore="0"> + <field id="cgi_url_td" translate="label" type="text" sortOrder="100" showInDefault="1" showInWebsite="1" showInStore="0"> + <label>Transaction Details Url</label> + </field> + <field id="currency" translate="label" type="select" sortOrder="110" showInDefault="1" showInWebsite="1" showInStore="0"> <label>Accepted Currency</label> <source_model>Magento\Config\Model\Config\Source\Locale\Currency</source_model> </field> - <field id="debug" translate="label" type="select" sortOrder="110" showInDefault="1" showInWebsite="1" showInStore="0"> + <field id="debug" translate="label" type="select" sortOrder="120" showInDefault="1" showInWebsite="1" showInStore="0"> <label>Debug</label> <source_model>Magento\Config\Model\Config\Source\Yesno</source_model> </field> - <field id="email_customer" translate="label" type="select" sortOrder="120" showInDefault="1" showInWebsite="1" showInStore="0"> + <field id="email_customer" translate="label" type="select" sortOrder="130" showInDefault="1" showInWebsite="1" showInStore="0"> <label>Email Customer</label> <source_model>Magento\Config\Model\Config\Source\Yesno</source_model> </field> - <field id="merchant_email" translate="label" type="text" sortOrder="130" showInDefault="1" showInWebsite="1" showInStore="0"> + <field id="merchant_email" translate="label" type="text" sortOrder="140" showInDefault="1" showInWebsite="1" showInStore="0"> <label>Merchant's Email</label> <validate>validate-email</validate> </field> - <field id="cctypes" translate="label" type="multiselect" sortOrder="140" showInDefault="1" showInWebsite="1" showInStore="0"> + <field id="cctypes" translate="label" type="multiselect" sortOrder="150" showInDefault="1" showInWebsite="1" showInStore="0"> <label>Credit Card Types</label> <source_model>Magento\Authorizenet\Model\Source\Cctype</source_model> </field> - <field id="useccv" translate="label" type="select" sortOrder="150" showInDefault="1" showInWebsite="1" showInStore="0"> + <field id="useccv" translate="label" type="select" sortOrder="160" showInDefault="1" showInWebsite="1" showInStore="0"> <label>Credit Card Verification</label> <source_model>Magento\Config\Model\Config\Source\Yesno</source_model> </field> - <field id="allowspecific" translate="label" type="allowspecific" sortOrder="160" showInDefault="1" showInWebsite="1" showInStore="0"> + <field id="allowspecific" translate="label" type="allowspecific" sortOrder="170" showInDefault="1" showInWebsite="1" showInStore="0"> <label>Payment from Applicable Countries</label> <source_model>Magento\Payment\Model\Config\Source\Allspecificcountries</source_model> </field> - <field id="specificcountry" translate="label" type="multiselect" sortOrder="170" showInDefault="1" showInWebsite="1" showInStore="0"> + <field id="specificcountry" translate="label" type="multiselect" sortOrder="180" showInDefault="1" showInWebsite="1" showInStore="0"> <label>Payment from Specific Countries</label> <source_model>Magento\Directory\Model\Config\Source\Country</source_model> </field> - <field id="min_order_total" translate="label" type="text" sortOrder="180" showInDefault="1" showInWebsite="1" showInStore="0"> + <field id="min_order_total" translate="label" type="text" sortOrder="190" showInDefault="1" showInWebsite="1" showInStore="0"> <label>Minimum Order Total</label> </field> - <field id="max_order_total" translate="label" type="text" sortOrder="190" showInDefault="1" showInWebsite="1" showInStore="0"> + <field id="max_order_total" translate="label" type="text" sortOrder="200" showInDefault="1" showInWebsite="1" showInStore="0"> <label>Maximum Order Total</label> </field> - <field id="sort_order" translate="label" type="text" sortOrder="200" showInDefault="1" showInWebsite="1" showInStore="0"> + <field id="sort_order" translate="label" type="text" sortOrder="210" showInDefault="1" showInWebsite="1" showInStore="0"> <label>Sort Order</label> <frontend_class>validate-number</frontend_class> </field> diff --git a/app/code/Magento/Authorizenet/etc/config.xml b/app/code/Magento/Authorizenet/etc/config.xml index a620f157b10..d672c305df3 100644 --- a/app/code/Magento/Authorizenet/etc/config.xml +++ b/app/code/Magento/Authorizenet/etc/config.xml @@ -30,6 +30,8 @@ <place_order_url>authorizenet/directpost_payment/place</place_order_url> <cgi_url_test_mode>https://test.authorize.net/gateway/transact.dll</cgi_url_test_mode> <cgi_url>https://secure.authorize.net/gateway/transact.dll</cgi_url> + <cgi_url_td_test_mode>https://apitest.authorize.net/xml/v1/request.api</cgi_url_td_test_mode> + <cgi_url_td>https://api2.authorize.net/xml/v1/request.api</cgi_url_td> </authorizenet_directpost> </payment> </default> -- GitLab From 05561f977dd45a11ff6220b3798b1350ef14c85c Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy <dpoperechnyy@ebay.com> Date: Tue, 25 Aug 2015 19:23:36 +0300 Subject: [PATCH 011/420] MAGETWO-41501: Wrong success mass delete message on cms pages and blocks - Unit tests updated; --- .../Controller/Adminhtml/Block/MassDeleteTest.php | 13 ++++++++++--- .../Controller/Adminhtml/Page/MassDeleteTest.php | 13 ++++++++++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php index f27016e49d4..467295679e9 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php @@ -19,6 +19,11 @@ class MassDeleteTest extends AbstractMassDeleteTest */ protected $collectionFactoryMock; + /** + * @var \Magento\Cms\Model\Resource\Block\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $blockCollectionMock; + protected function setUp() { parent::setUp(); @@ -31,6 +36,8 @@ class MassDeleteTest extends AbstractMassDeleteTest false ); + $this->blockCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Block\Collection', [], [], '', false); + $this->massDeleteController = $this->objectManager->getObject( 'Magento\Cms\Controller\Adminhtml\Block\MassDelete', [ @@ -50,11 +57,11 @@ class MassDeleteTest extends AbstractMassDeleteTest $this->getBlockMock() ]; - $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->getBlockMock()); + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->blockCollectionMock); $this->filterMock->expects($this->once()) ->method('getCollection') - ->with($this->getBlockMock()) + ->with($this->blockCollectionMock) ->willReturn($collection); $this->messageManagerMock->expects($this->once()) @@ -78,7 +85,7 @@ class MassDeleteTest extends AbstractMassDeleteTest protected function getBlockMock() { $blockMock = $this->getMock('Magento\Cms\Model\Resource\Block\Collection', ['delete'], [], '', false); - $blockMock->expects($this->any())->method('delete')->willReturn(true); + $blockMock->expects($this->once())->method('delete')->willReturn(true); return $blockMock; } diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php index f768a6480e6..923d4dcfc1a 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php @@ -19,6 +19,11 @@ class MassDeleteTest extends AbstractMassDeleteTest */ protected $collectionFactoryMock; + /** + * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageCollectionMock; + protected function setUp() { parent::setUp(); @@ -31,6 +36,8 @@ class MassDeleteTest extends AbstractMassDeleteTest false ); + $this->pageCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', [], [], '', false); + $this->massDeleteController = $this->objectManager->getObject( 'Magento\Cms\Controller\Adminhtml\Page\MassDelete', [ @@ -50,11 +57,11 @@ class MassDeleteTest extends AbstractMassDeleteTest $this->getPageMock() ]; - $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->getPageMock()); + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); $this->filterMock->expects($this->once()) ->method('getCollection') - ->with($this->getPageMock()) + ->with($this->pageCollectionMock) ->willReturn($collection); $this->messageManagerMock->expects($this->once()) @@ -78,7 +85,7 @@ class MassDeleteTest extends AbstractMassDeleteTest protected function getPageMock() { $pageMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', ['delete'], [], '', false); - $pageMock->expects($this->any())->method('delete')->willReturn(true); + $pageMock->expects($this->once())->method('delete')->willReturn(true); return $pageMock; } -- GitLab From 406e289ece8a0f9c6ab9a4278e3f3f9d3f277dec Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy <dpoperechnyy@ebay.com> Date: Wed, 26 Aug 2015 12:19:07 +0300 Subject: [PATCH 012/420] MAGETWO-41501: Wrong success mass delete message on cms pages and blocks - Updated logic for deleted pages and blocks count; - Unit tests updated; --- .../Cms/Controller/Adminhtml/Block/MassDelete.php | 6 +++--- .../Cms/Controller/Adminhtml/Page/MassDelete.php | 6 +++--- .../Controller/Adminhtml/Block/MassDeleteTest.php | 11 ++++++++--- .../Unit/Controller/Adminhtml/Page/MassDeleteTest.php | 11 ++++++++--- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php b/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php index 42319679b92..6004e737bb0 100644 --- a/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php +++ b/app/code/Magento/Cms/Controller/Adminhtml/Block/MassDelete.php @@ -47,13 +47,13 @@ class MassDelete extends \Magento\Backend\App\Action public function execute() { $collection = $this->filter->getCollection($this->collectionFactory->create()); - $deletedBlocks = 0; + $collectionSize = $collection->getSize(); + foreach ($collection as $block) { $block->delete(); - $deletedBlocks++; } - $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $deletedBlocks)); + $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $collectionSize)); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php index e699a3a480e..6505b7e6b7d 100644 --- a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php +++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDelete.php @@ -46,13 +46,13 @@ class MassDelete extends \Magento\Backend\App\Action public function execute() { $collection = $this->filter->getCollection($this->collectionFactory->create()); - $deletedPages = 0; + $collectionSize = $collection->getSize(); + foreach ($collection as $page) { $page->delete(); - $deletedPages++; } - $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $deletedPages)); + $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $collectionSize)); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php index 467295679e9..f19d0c23d1d 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php @@ -50,7 +50,7 @@ class MassDeleteTest extends AbstractMassDeleteTest public function testMassDeleteAction() { - $deletedBlocks = 2; + $deletedBlocksCount = 2; $collection = [ $this->getBlockMock(), @@ -62,11 +62,16 @@ class MassDeleteTest extends AbstractMassDeleteTest $this->filterMock->expects($this->once()) ->method('getCollection') ->with($this->blockCollectionMock) - ->willReturn($collection); + ->willReturn($this->blockCollectionMock); + + $this->blockCollectionMock->expects($this->once())->method('getSize')->willReturn($deletedBlocksCount); + $this->blockCollectionMock->expects($this->once()) + ->method('getIterator') + ->willReturn(new \ArrayIterator($collection)); $this->messageManagerMock->expects($this->once()) ->method('addSuccess') - ->with(__('A total of %1 record(s) have been deleted.', $deletedBlocks)); + ->with(__('A total of %1 record(s) have been deleted.', $deletedBlocksCount)); $this->messageManagerMock->expects($this->never())->method('addError'); $this->resultRedirectMock->expects($this->once()) diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php index 923d4dcfc1a..e728187acbc 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php @@ -50,7 +50,7 @@ class MassDeleteTest extends AbstractMassDeleteTest public function testMassDeleteAction() { - $deletedPages = 2; + $deletedPagesCount = 2; $collection = [ $this->getPageMock(), @@ -62,11 +62,16 @@ class MassDeleteTest extends AbstractMassDeleteTest $this->filterMock->expects($this->once()) ->method('getCollection') ->with($this->pageCollectionMock) - ->willReturn($collection); + ->willReturn($this->pageCollectionMock); + + $this->pageCollectionMock->expects($this->once())->method('getSize')->willReturn($deletedPagesCount); + $this->pageCollectionMock->expects($this->once()) + ->method('getIterator') + ->willReturn(new \ArrayIterator($collection)); $this->messageManagerMock->expects($this->once()) ->method('addSuccess') - ->with(__('A total of %1 record(s) have been deleted.', $deletedPages)); + ->with(__('A total of %1 record(s) have been deleted.', $deletedPagesCount)); $this->messageManagerMock->expects($this->never())->method('addError'); $this->resultRedirectMock->expects($this->once()) -- GitLab From 85968e6bd122184a286fed2ff3b26565348e281b Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy <dpoperechnyy@ebay.com> Date: Fri, 28 Aug 2015 16:50:25 +0300 Subject: [PATCH 013/420] MAGETWO-41501: Wrong success mass delete message on cms pages and blocks - Changed success message for mass enable and mass disable actions; - Unit tests added; --- .../Controller/Adminhtml/Page/MassDisable.php | 2 +- .../Controller/Adminhtml/Page/MassEnable.php | 2 +- ...eteTest.php => AbstractMassActionTest.php} | 2 +- .../Adminhtml/Block/MassDeleteTest.php | 4 +- .../Adminhtml/Page/MassDeleteTest.php | 4 +- .../Adminhtml/Page/MassDisableTest.php | 103 ++++++++++++++++++ .../Adminhtml/Page/MassEnableTest.php | 103 ++++++++++++++++++ 7 files changed, 213 insertions(+), 7 deletions(-) rename app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/{AbstractMassDeleteTest.php => AbstractMassActionTest.php} (97%) create mode 100644 app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php create mode 100644 app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php index e572618c623..e3d39c9a6f2 100644 --- a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php +++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassDisable.php @@ -52,7 +52,7 @@ class MassDisable extends \Magento\Backend\App\Action $item->save(); } - $this->messageManager->addSuccess(__('A total of %1 record(s) have been updated.', $collection->getSize())); + $this->messageManager->addSuccess(__('A total of %1 record(s) have been disabled.', $collection->getSize())); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); diff --git a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php index b8f4a693069..a6c7415d9d5 100644 --- a/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php +++ b/app/code/Magento/Cms/Controller/Adminhtml/Page/MassEnable.php @@ -52,7 +52,7 @@ class MassEnable extends \Magento\Backend\App\Action $item->save(); } - $this->messageManager->addSuccess(__('A total of %1 record(s) have been updated.', $collection->getSize())); + $this->messageManager->addSuccess(__('A total of %1 record(s) have been enabled.', $collection->getSize())); /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassActionTest.php similarity index 97% rename from app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassDeleteTest.php rename to app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassActionTest.php index 0668edee3be..83802f3515b 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassActionTest.php @@ -7,7 +7,7 @@ namespace Magento\Cms\Test\Unit\Controller\Adminhtml; use Magento\Framework\Controller\ResultFactory; -abstract class AbstractMassDeleteTest extends \PHPUnit_Framework_TestCase +abstract class AbstractMassActionTest extends \PHPUnit_Framework_TestCase { /** * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php index f19d0c23d1d..2910d63641d 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Block/MassDeleteTest.php @@ -5,9 +5,9 @@ */ namespace Magento\Cms\Test\Unit\Controller\Adminhtml\Block; -use Magento\Cms\Test\Unit\Controller\Adminhtml\AbstractMassDeleteTest; +use Magento\Cms\Test\Unit\Controller\Adminhtml\AbstractMassActionTest; -class MassDeleteTest extends AbstractMassDeleteTest +class MassDeleteTest extends AbstractMassActionTest { /** * @var \Magento\Cms\Controller\Adminhtml\Block\MassDelete diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php index e728187acbc..6f87c8bca31 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php @@ -5,9 +5,9 @@ */ namespace Magento\Cms\Test\Unit\Controller\Adminhtml\Page; -use Magento\Cms\Test\Unit\Controller\Adminhtml\AbstractMassDeleteTest; +use Magento\Cms\Test\Unit\Controller\Adminhtml\AbstractMassActionTest; -class MassDeleteTest extends AbstractMassDeleteTest +class MassDeleteTest extends AbstractMassActionTest { /** * @var \Magento\Cms\Controller\Adminhtml\Page\MassDelete diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php new file mode 100644 index 00000000000..1eddcf295be --- /dev/null +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php @@ -0,0 +1,103 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Cms\Test\Unit\Controller\Adminhtml\Page; + +use Magento\Cms\Test\Unit\Controller\Adminhtml\AbstractMassActionTest; + +class MassDisableTest extends AbstractMassActionTest +{ + /** + * @var \Magento\Cms\Controller\Adminhtml\Page\MassDisable + */ + protected $massDisableController; + + /** + * @var \Magento\Cms\Model\Resource\Page\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $collectionFactoryMock; + + /** + * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageCollectionMock; + + protected function setUp() + { + parent::setUp(); + + $this->collectionFactoryMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\CollectionFactory', + ['create'], + [], + '', + false + ); + + $this->pageCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', [], [], '', false); + + $this->massDisableController = $this->objectManager->getObject( + 'Magento\Cms\Controller\Adminhtml\Page\MassDisable', + [ + 'context' => $this->contextMock, + 'filter' => $this->filterMock, + 'collectionFactory' => $this->collectionFactoryMock + ] + ); + } + + public function testMassDisableAction() + { + $disabledPagesCount = 2; + + $collection = [ + $this->getPageMock(), + $this->getPageMock() + ]; + + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); + + $this->filterMock->expects($this->once()) + ->method('getCollection') + ->with($this->pageCollectionMock) + ->willReturn($this->pageCollectionMock); + + $this->pageCollectionMock->expects($this->once())->method('getSize')->willReturn($disabledPagesCount); + $this->pageCollectionMock->expects($this->once()) + ->method('getIterator') + ->willReturn(new \ArrayIterator($collection)); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with(__('A total of %1 record(s) have been disabled.', $disabledPagesCount)); + $this->messageManagerMock->expects($this->never())->method('addError'); + + $this->resultRedirectMock->expects($this->once()) + ->method('setPath') + ->with('*/*/') + ->willReturnSelf(); + + $this->assertSame($this->resultRedirectMock, $this->massDisableController->execute()); + } + + /** + * Create Cms Page Collection Mock + * + * @return \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected function getPageMock() + { + $pageMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', + ['setIsActive', 'save'], + [], + '', + false + ); + $pageMock->expects($this->once())->method('setIsActive')->with(false)->willReturn(true); + $pageMock->expects($this->once())->method('save')->willReturn(true); + + return $pageMock; + } +} diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php new file mode 100644 index 00000000000..d40a15e4069 --- /dev/null +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php @@ -0,0 +1,103 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Cms\Test\Unit\Controller\Adminhtml\Page; + +use Magento\Cms\Test\Unit\Controller\Adminhtml\AbstractMassActionTest; + +class MassEnableTest extends AbstractMassActionTest +{ + /** + * @var \Magento\Cms\Controller\Adminhtml\Page\MassEnable + */ + protected $massEnableController; + + /** + * @var \Magento\Cms\Model\Resource\Page\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $collectionFactoryMock; + + /** + * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageCollectionMock; + + protected function setUp() + { + parent::setUp(); + + $this->collectionFactoryMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\CollectionFactory', + ['create'], + [], + '', + false + ); + + $this->pageCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', [], [], '', false); + + $this->massEnableController = $this->objectManager->getObject( + 'Magento\Cms\Controller\Adminhtml\Page\MassEnable', + [ + 'context' => $this->contextMock, + 'filter' => $this->filterMock, + 'collectionFactory' => $this->collectionFactoryMock + ] + ); + } + + public function testMassEnableAction() + { + $enabledPagesCount = 2; + + $collection = [ + $this->getPageMock(), + $this->getPageMock() + ]; + + $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); + + $this->filterMock->expects($this->once()) + ->method('getCollection') + ->with($this->pageCollectionMock) + ->willReturn($this->pageCollectionMock); + + $this->pageCollectionMock->expects($this->once())->method('getSize')->willReturn($enabledPagesCount); + $this->pageCollectionMock->expects($this->once()) + ->method('getIterator') + ->willReturn(new \ArrayIterator($collection)); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with(__('A total of %1 record(s) have been enabled.', $enabledPagesCount)); + $this->messageManagerMock->expects($this->never())->method('addError'); + + $this->resultRedirectMock->expects($this->once()) + ->method('setPath') + ->with('*/*/') + ->willReturnSelf(); + + $this->assertSame($this->resultRedirectMock, $this->massEnableController->execute()); + } + + /** + * Create Cms Page Collection Mock + * + * @return \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected function getPageMock() + { + $pageMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', + ['setIsActive', 'save'], + [], + '', + false + ); + $pageMock->expects($this->once())->method('setIsActive')->with(true)->willReturn(true); + $pageMock->expects($this->once())->method('save')->willReturn(true); + + return $pageMock; + } +} -- GitLab From 93ca0a23cb4c4b340900b75ab096c4e93d1356d0 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy <dpoperechnyy@ebay.com> Date: Fri, 28 Aug 2015 16:58:20 +0300 Subject: [PATCH 014/420] MAGETWO-41501: Wrong success mass delete message on cms pages and blocks - Code style updated; --- .../Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php | 3 ++- .../Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php index 1eddcf295be..7bc2ee03ecf 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php @@ -89,7 +89,8 @@ class MassDisableTest extends AbstractMassActionTest */ protected function getPageMock() { - $pageMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', + $pageMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\Collection', ['setIsActive', 'save'], [], '', diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php index d40a15e4069..2fbef8db334 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php @@ -89,7 +89,8 @@ class MassEnableTest extends AbstractMassActionTest */ protected function getPageMock() { - $pageMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', + $pageMock = $this->getMock( + 'Magento\Cms\Model\Resource\Page\Collection', ['setIsActive', 'save'], [], '', -- GitLab From 1de00758a8c8c0b6dd85df4de530642d20f59fd8 Mon Sep 17 00:00:00 2001 From: Oleh Posyniak <oposyniak@ebay.com> Date: Fri, 28 Aug 2015 18:34:28 +0300 Subject: [PATCH 015/420] MAGETWO-42092: CMS page preview not works when changing store view --- .../Magento/Backend/Block/Store/Switcher.php | 19 ++++++++++++++ .../adminhtml/templates/store/switcher.phtml | 25 ++++++++++++++++--- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Backend/Block/Store/Switcher.php b/app/code/Magento/Backend/Block/Store/Switcher.php index a224e2a3b40..80617c52ac3 100644 --- a/app/code/Magento/Backend/Block/Store/Switcher.php +++ b/app/code/Magento/Backend/Block/Store/Switcher.php @@ -87,6 +87,11 @@ class Switcher extends \Magento\Backend\Block\Template */ protected $_storeFactory; + /** + * @var bool + */ + protected $isUsingIframe = false; + /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Store\Model\WebsiteFactory $websiteFactory @@ -558,4 +563,18 @@ class Switcher extends \Magento\Backend\Block\Template } return $html; } + + /** + * @param $state + */ + public function setUseIframe($state = false) { + $this->isUsingIframe = (bool) $state; + } + + /** + * @return bool + */ + public function isUsingIframe() { + return $this->isUsingIframe; + } } diff --git a/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml b/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml index a2f94b3563c..f1e457f0367 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml @@ -30,7 +30,8 @@ class="admin__action-dropdown" data-mage-init='{"dropdown":{}}' data-toggle="dropdown" - aria-haspopup="true"> + aria-haspopup="true" + id="store-change-button"> <?php echo $block->getCurrentSelectionName() ?> </button> <ul class="dropdown-menu" data-role="stores-list"> @@ -168,15 +169,33 @@ require(['jquery'], function(jQuery){ }; scopeSwitcherHandler(switcherParams); } else { - var url = '<?php echo $block->getSwitchUrl() ?>' + scopeParams; + <?php if ($block->getUseConfirm()): ?> if (confirm("<?php echo __('Please confirm scope switching. All data that hasn\'t been saved will be lost.') ?>")) { - setLocation(url); + reload(); } else { obj.value = '<?php echo $block->getStoreId() ?>'; } <?php else: ?> + reload(); + <?php endif; ?> + } + + function reload() { + <?php if (!$block->isUsingIframe()): ?> + var url = '<?php echo $block->getSwitchUrl() ?>' + scopeParams; setLocation(url); + <?php else: ?> + jQuery('#preview_selected_store').val(scopeId); + jQuery('#preview_form').submit(); + + jQuery('.store-switcher .dropdown-menu li a').each(function() { + var $this = jQuery(this); + + if ($this.data('role') === 'store-view-id' && $this.data('value') == scopeId) { + jQuery('#store-change-button').html($this.text()); + } + }); <?php endif; ?> } } -- GitLab From c3cdd0475edb0acaed6c4bb994220c3e9dc44810 Mon Sep 17 00:00:00 2001 From: Oleh Posyniak <oposyniak@ebay.com> Date: Fri, 28 Aug 2015 19:08:10 +0300 Subject: [PATCH 016/420] MAGETWO-42092: CMS page preview not works when changing store view --- app/code/Magento/Backend/Block/Store/Switcher.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Backend/Block/Store/Switcher.php b/app/code/Magento/Backend/Block/Store/Switcher.php index 80617c52ac3..965d61cd1e3 100644 --- a/app/code/Magento/Backend/Block/Store/Switcher.php +++ b/app/code/Magento/Backend/Block/Store/Switcher.php @@ -565,16 +565,20 @@ class Switcher extends \Magento\Backend\Block\Template } /** - * @param $state + * @param bool $state + * @return $this */ - public function setUseIframe($state = false) { + public function setUseIframe($state = false) + { $this->isUsingIframe = (bool) $state; + return $this; } /** * @return bool */ - public function isUsingIframe() { + public function isUsingIframe() + { return $this->isUsingIframe; } } -- GitLab From 108a3e7fafefb00f8658c495e46da6fb6ca74eb8 Mon Sep 17 00:00:00 2001 From: Oleh Posyniak <oposyniak@ebay.com> Date: Mon, 31 Aug 2015 10:29:33 +0300 Subject: [PATCH 017/420] MAGETWO-42092: CMS page preview not works when changing store view --- .../Magento/Backend/Block/Store/Switcher.php | 20 ++++--------------- .../adminhtml/templates/store/switcher.phtml | 2 ++ 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/app/code/Magento/Backend/Block/Store/Switcher.php b/app/code/Magento/Backend/Block/Store/Switcher.php index 965d61cd1e3..cd74d82aa46 100644 --- a/app/code/Magento/Backend/Block/Store/Switcher.php +++ b/app/code/Magento/Backend/Block/Store/Switcher.php @@ -87,11 +87,6 @@ class Switcher extends \Magento\Backend\Block\Template */ protected $_storeFactory; - /** - * @var bool - */ - protected $isUsingIframe = false; - /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Store\Model\WebsiteFactory $websiteFactory @@ -564,21 +559,14 @@ class Switcher extends \Magento\Backend\Block\Template return $html; } - /** - * @param bool $state - * @return $this - */ - public function setUseIframe($state = false) - { - $this->isUsingIframe = (bool) $state; - return $this; - } - /** * @return bool */ public function isUsingIframe() { - return $this->isUsingIframe; + if ($this->hasData('is_using_iframe')) { + return (bool) $this->getData('is_using_iframe'); + } + return false; } } diff --git a/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml b/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml index f1e457f0367..ef976880242 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml @@ -196,6 +196,8 @@ require(['jquery'], function(jQuery){ jQuery('#store-change-button').html($this.text()); } }); + + jQuery('#store-change-button').click(); <?php endif; ?> } } -- GitLab From 0967105fb8d9a80dca123874beb1bed3d24da690 Mon Sep 17 00:00:00 2001 From: Oleh Posyniak <oposyniak@ebay.com> Date: Mon, 31 Aug 2015 11:28:55 +0300 Subject: [PATCH 018/420] MAGETWO-42092: CMS page preview not works when changing store view --- app/code/Magento/Backend/Block/Store/Switcher.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Backend/Block/Store/Switcher.php b/app/code/Magento/Backend/Block/Store/Switcher.php index cd74d82aa46..106a1fd4f1d 100644 --- a/app/code/Magento/Backend/Block/Store/Switcher.php +++ b/app/code/Magento/Backend/Block/Store/Switcher.php @@ -560,12 +560,14 @@ class Switcher extends \Magento\Backend\Block\Template } /** + * Return iframe usage status + * * @return bool */ public function isUsingIframe() { if ($this->hasData('is_using_iframe')) { - return (bool) $this->getData('is_using_iframe'); + return (bool)$this->getData('is_using_iframe'); } return false; } -- GitLab From 884be6e84f5a205827c306e4f1cf9a6431a0cfae Mon Sep 17 00:00:00 2001 From: Oleh Posyniak <oposyniak@ebay.com> Date: Mon, 31 Aug 2015 13:16:57 +0300 Subject: [PATCH 019/420] MAGETWO-42092: CMS page preview not works when changing store view --- app/code/Magento/Backend/Block/Store/Switcher.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Backend/Block/Store/Switcher.php b/app/code/Magento/Backend/Block/Store/Switcher.php index 106a1fd4f1d..8cf98be294f 100644 --- a/app/code/Magento/Backend/Block/Store/Switcher.php +++ b/app/code/Magento/Backend/Block/Store/Switcher.php @@ -560,7 +560,7 @@ class Switcher extends \Magento\Backend\Block\Template } /** - * Return iframe usage status + * Get whether iframe is being used * * @return bool */ -- GitLab From ce104eafb2b15f4e73f0d51dd1ef5ad8f9bf391c Mon Sep 17 00:00:00 2001 From: Bohdan Korablov <bkorablov@ebay.com> Date: Mon, 31 Aug 2015 17:46:17 +0300 Subject: [PATCH 020/420] MAGETWO-42096: The widgets are not rendered on the cms preview page --- .../Magento/Widget/Model/Template/Filter.php | 15 +- .../Widget/Model/Template/FilterEmulate.php | 20 ++ .../Unit/Model/Template/FilterEmulateTest.php | 59 ++++ .../Test/Unit/Model/Template/FilterTest.php | 265 +++++++++++++++++- app/code/Magento/Widget/etc/adminhtml/di.xml | 6 + 5 files changed, 349 insertions(+), 16 deletions(-) create mode 100644 app/code/Magento/Widget/Model/Template/FilterEmulate.php create mode 100644 app/code/Magento/Widget/Test/Unit/Model/Template/FilterEmulateTest.php diff --git a/app/code/Magento/Widget/Model/Template/Filter.php b/app/code/Magento/Widget/Model/Template/Filter.php index a07bdd85de4..d2a9f11772d 100644 --- a/app/code/Magento/Widget/Model/Template/Filter.php +++ b/app/code/Magento/Widget/Model/Template/Filter.php @@ -73,12 +73,12 @@ class Filter extends \Magento\Cms\Model\Template\Filter } /** - * Generate widget + * General method for generate widget * * @param string[] $construction * @return string */ - public function widgetDirective($construction) + public function generateWidget($construction) { $params = $this->getParameters($construction[2]); @@ -114,6 +114,17 @@ class Filter extends \Magento\Cms\Model\Template\Filter return $widget->toHtml(); } + /** + * Generate widget + * + * @param string[] $construction + * @return string + */ + public function widgetDirective($construction) + { + return $this->generateWidget($construction); + } + /** * Retrieve media file URL directive * diff --git a/app/code/Magento/Widget/Model/Template/FilterEmulate.php b/app/code/Magento/Widget/Model/Template/FilterEmulate.php new file mode 100644 index 00000000000..9c7aefc55af --- /dev/null +++ b/app/code/Magento/Widget/Model/Template/FilterEmulate.php @@ -0,0 +1,20 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Widget\Model\Template; + +class FilterEmulate extends Filter +{ + /** + * Generate widget with emulation frontend area + * + * @param string[] $construction + * @return string + */ + public function widgetDirective($construction) + { + return $this->_appState->emulateAreaCode('frontend', [$this, 'generateWidget'], [$construction]); + } +} diff --git a/app/code/Magento/Widget/Test/Unit/Model/Template/FilterEmulateTest.php b/app/code/Magento/Widget/Test/Unit/Model/Template/FilterEmulateTest.php new file mode 100644 index 00000000000..7a9115f5c4c --- /dev/null +++ b/app/code/Magento/Widget/Test/Unit/Model/Template/FilterEmulateTest.php @@ -0,0 +1,59 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Widget\Test\Unit\Model\Template; + +use \Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper; + +class FilterEmulateTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var ObjectManagerHelper + */ + protected $objectManagerHelper; + + /** + * @var \Magento\Widget\Model\Template\FilterEmulate + */ + protected $filterEmulate; + + /** + * @var \Magento\Framework\App\State|\PHPUnit_Framework_MockObject_MockObject + */ + protected $appStateMock; + + /** + * @return void + */ + protected function setUp() + { + $this->objectManagerHelper = new ObjectManagerHelper($this); + $this->appStateMock = $this->getMock('Magento\Framework\App\State', [], [], '', false); + + $this->filterEmulate = $this->objectManagerHelper->getObject( + 'Magento\Widget\Model\Template\FilterEmulate', + ['appState' => $this->appStateMock] + ); + } + + /** + * @return void + */ + public function testWidgetDirective() + { + $result = 'some text'; + $construction = [ + '{{widget type="Widget\\Link" anchor_text="Test" template="block.phtml" id_path="p/1"}}', + 'widget', + ' type="" anchor_text="Test" template="block.phtml" id_path="p/1"' + ]; + + $this->appStateMock->expects($this->once()) + ->method('emulateAreaCode') + ->with('frontend', [$this->filterEmulate, 'generateWidget'], [$construction]) + ->willReturn($result); + $this->assertSame($result, $this->filterEmulate->widgetDirective($construction)); + } +} diff --git a/app/code/Magento/Widget/Test/Unit/Model/Template/FilterTest.php b/app/code/Magento/Widget/Test/Unit/Model/Template/FilterTest.php index 82c845cfe85..3398f84b604 100644 --- a/app/code/Magento/Widget/Test/Unit/Model/Template/FilterTest.php +++ b/app/code/Magento/Widget/Test/Unit/Model/Template/FilterTest.php @@ -5,32 +5,269 @@ */ namespace Magento\Widget\Test\Unit\Model\Template; +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper; use Magento\Store\Model\StoreManagerInterface; class FilterTest extends \PHPUnit_Framework_TestCase { + /** + * @var \Magento\Widget\Model\Template\Filter + */ + protected $filter; + + /** + * @var ObjectManagerHelper + */ + protected $objectManagerHelper; + + /** + * @var \Magento\Store\Model\Store|\PHPUnit_Framework_MockObject_MockObject + */ + protected $storeMock; + + /** + * @var StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $storeManagerMock; + + /** + * @var \Magento\Widget\Model\Resource\Widget|\PHPUnit_Framework_MockObject_MockObject + */ + protected $widgetResourceMock; + + /** + * @var \Magento\Widget\Model\Widget|\PHPUnit_Framework_MockObject_MockObject + */ + protected $widgetMock; + + /** + * @var \Magento\Framework\View\LayoutInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $layoutMock; + + /** + * @return void + */ + protected function setUp() + { + $this->objectManagerHelper = new ObjectManagerHelper($this); + $this->storeMock = $this->getMock('Magento\Store\Model\Store', [], [], '', false); + $this->storeManagerMock = $this->getMock('Magento\Store\Model\StoreManagerInterface', [], [], '', false); + $this->widgetResourceMock = $this->getMock('Magento\Widget\Model\Resource\Widget', [], [], '', false); + $this->widgetMock = $this->getMock('Magento\Widget\Model\Widget', [], [], '', false); + $this->layoutMock = $this->getMock('Magento\Framework\View\LayoutInterface', [], [], '', false); + + $this->filter = $this->objectManagerHelper->getObject( + 'Magento\Widget\Model\Template\Filter', + [ + 'storeManager' => $this->storeManagerMock, + 'widgetResource' => $this->widgetResourceMock, + 'widget' => $this->widgetMock, + 'layout' => $this->layoutMock + ] + ); + } + + /** + * @param array $construction + * @param string $name + * @param string $type + * @param int $preConfigId + * @param array $params + * @param array $preconfigure + * @param string $widgetXml + * @param \Magento\Widget\Block\BlockInterface|null $widgetBlock + * @param string $expectedResult + * @return void + * @dataProvider generateWidgetDataProvider + */ + public function testGenerateWidget( + $construction, + $name, + $type, + $preConfigId, + $params, + $preconfigure, + $widgetXml, + $widgetBlock, + $expectedResult + ) { + $this->generalForGenerateWidget($name, $type, $preConfigId, $params, $preconfigure, $widgetXml, $widgetBlock); + $this->assertSame($expectedResult, $this->filter->generateWidget($construction)); + } + + /** + * @param array $construction + * @param string $name + * @param string $type + * @param int $preConfigId + * @param array $params + * @param array $preconfigure + * @param string $widgetXml + * @param \Magento\Widget\Block\BlockInterface|null $widgetBlock + * @param string $expectedResult + * @return void + * @dataProvider generateWidgetDataProvider + */ + public function testWidgetDirective( + $construction, + $name, + $type, + $preConfigId, + $params, + $preconfigure, + $widgetXml, + $widgetBlock, + $expectedResult + ) { + $this->generalForGenerateWidget($name, $type, $preConfigId, $params, $preconfigure, $widgetXml, $widgetBlock); + $this->assertSame($expectedResult, $this->filter->widgetDirective($construction)); + } + + /** + * @return array + */ + public function generateWidgetDataProvider() + { + return [ + [ + 'construction' => [ + '{{widget type="Widget\\Link" anchor_text="Test" template="block.phtml" id_path="p/1"}}', + 'widget', + ' type="" anchor_text="Test" template="block.phtml" id_path="p/1"' + ], + 'name' => null, + 'type' => 'Widget\Link', + 'preConfigId' => null, + 'params' => ['id' => ''], + 'preconfigure' => [], + 'widgetXml' => '', + 'widgetBlock' => null, + 'expectedResult' => '' + ], + [ + 'construction' => [ + '{{widget type="Widget\\Link" anchor_text="Test" template="block.phtml" id_path="p/1"}}', + 'widget', + ' type="" id="1" anchor_text="Test" template="block.phtml" id_path="p/1"' + ], + 'name' => null, + 'type' => null, + 'preConfigId' => 1, + 'params' => ['id' => '1'], + 'preconfigure' => ['widget_type' => '', 'parameters' => ''], + 'widgetXml' => null, + 'widgetBlock' => null, + 'expectedResult' => '' + ], + [ + 'construction' => [ + '{{widget type="Widget\\Link" anchor_text="Test" template="block.phtml" id_path="p/1"}}', + 'widget', + ' type="" name="testName" id="1" anchor_text="Test" template="block.phtml" id_path="p/1"' + ], + 'name' => 'testName', + 'type' => 'Widget\Link', + 'preConfigId' => 1, + 'params' => ['id' => '1'], + 'preconfigure' => ['widget_type' => "Widget\\Link", 'parameters' => ['id' => '1']], + 'widgetXml' => 'some xml', + 'widgetBlock' => $this->getBlockMock('widget text'), + 'expectedResult' => 'widget text' + ], + [ + 'construction' => [ + '{{widget type="Widget\\Link" anchor_text="Test" template="block.phtml" id_path="p/1"}}', + 'widget', + ' type="Widget\\Link" name="testName" anchor_text="Test" template="block.phtml" id_path="p/1"' + ], + 'name' => 'testName', + 'type' => 'Widget\Link', + 'preConfigId' => null, + 'params' => [ + 'type' => 'Widget\Link', + 'name' => 'testName', + 'anchor_text' => 'Test', + 'template' => 'block.phtml', + 'id_path' => 'p/1' + ], + 'preconfigure' => [], + 'widgetXml' => 'some xml', + 'widgetBlock' => $this->getBlockMock('widget text'), + 'expectedResult' => 'widget text' + ], + ]; + } + + /** + * @param string $name + * @param string $type + * @param int $preConfigId + * @param array $params + * @param array $preconfigure + * @param string $widgetXml + * @param \Magento\Widget\Block\BlockInterface|null $widgetBlock + * @return void + * @dataProvider generateWidgetDataProvider + */ + protected function generalForGenerateWidget( + $name, + $type, + $preConfigId, + $params, + $preconfigure, + $widgetXml, + $widgetBlock + ) { + $this->widgetResourceMock->expects($this->any()) + ->method('loadPreconfiguredWidget') + ->with($preConfigId) + ->willReturn($preconfigure); + $this->widgetMock->expects($this->any()) + ->method('getWidgetByClassType') + ->with($type) + ->willReturn($widgetXml); + $this->layoutMock->expects($this->any()) + ->method('createBlock') + ->with($type, $name, ['data' => $params]) + ->willReturn($widgetBlock); + } + + /** + * @param string $returnedResult + * @return \Magento\Widget\Block\BlockInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected function getBlockMock($returnedResult = '') + { + /** @var \Magento\Widget\Block\BlockInterface|\PHPUnit_Framework_MockObject_MockObject $blockMock */ + $blockMock = $this->getMockBuilder('Magento\Widget\Block\BlockInterface') + ->setMethods(['toHtml']) + ->getMockForAbstractClass(); + $blockMock->expects($this->any()) + ->method('toHtml') + ->willReturn($returnedResult); + + return $blockMock; + } + + /** + * @return void + */ public function testMediaDirective() { $image = 'wysiwyg/VB.png'; $construction = ['{{media url="' . $image . '"}}', 'media', ' url="' . $image . '"']; $baseUrl = 'http://localhost/pub/media/'; - /** @var \Magento\Store\Model\Store|\PHPUnit_Framework_MockObject_MockObject $storeMock */ - $storeMock = $this->getMock('Magento\Store\Model\Store', [], [], '', false); - $storeMock->expects($this->once())->method('getBaseUrl')->with(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA) + $this->storeMock->expects($this->once()) + ->method('getBaseUrl') + ->with(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA) ->willReturn($baseUrl); + $this->storeManagerMock->expects($this->once()) + ->method('getStore') + ->willReturn($this->storeMock); - /** @var StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject $storeManagerMock */ - $storeManagerMock = $this->getMock('Magento\Store\Model\StoreManagerInterface', [], [], '', false); - $storeManagerMock->expects($this->once())->method('getStore')->will($this->returnValue($storeMock)); - - /** @var \Magento\Widget\Model\Template\Filter $filter */ - $filter = (new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this)) - ->getObject( - 'Magento\Widget\Model\Template\Filter', - ['storeManager' => $storeManagerMock] - ); - $result = $filter->mediaDirective($construction); + $result = $this->filter->mediaDirective($construction); $this->assertEquals($baseUrl . $image, $result); } } diff --git a/app/code/Magento/Widget/etc/adminhtml/di.xml b/app/code/Magento/Widget/etc/adminhtml/di.xml index 723a652e454..52d47c1c939 100644 --- a/app/code/Magento/Widget/etc/adminhtml/di.xml +++ b/app/code/Magento/Widget/etc/adminhtml/di.xml @@ -14,4 +14,10 @@ </argument> </arguments> </type> + <type name="Magento\Cms\Model\Template\FilterProvider"> + <arguments> + <argument name="pageFilter" xsi:type="string">Magento\Widget\Model\Template\FilterEmulate</argument> + <argument name="blockFilter" xsi:type="string">Magento\Widget\Model\Template\FilterEmulate</argument> + </arguments> + </type> </config> -- GitLab From 2e2913541e63c99edf4044343cc9238670022817 Mon Sep 17 00:00:00 2001 From: Bohdan Korablov <bkorablov@ebay.com> Date: Mon, 31 Aug 2015 18:57:33 +0300 Subject: [PATCH 021/420] MAGETWO-42096: The widgets are not rendered on the cms preview page --- .../Magento/Widget/Test/Unit/Model/Template/FilterTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Widget/Test/Unit/Model/Template/FilterTest.php b/app/code/Magento/Widget/Test/Unit/Model/Template/FilterTest.php index 3398f84b604..77921c4b219 100644 --- a/app/code/Magento/Widget/Test/Unit/Model/Template/FilterTest.php +++ b/app/code/Magento/Widget/Test/Unit/Model/Template/FilterTest.php @@ -52,10 +52,10 @@ class FilterTest extends \PHPUnit_Framework_TestCase { $this->objectManagerHelper = new ObjectManagerHelper($this); $this->storeMock = $this->getMock('Magento\Store\Model\Store', [], [], '', false); - $this->storeManagerMock = $this->getMock('Magento\Store\Model\StoreManagerInterface', [], [], '', false); + $this->storeManagerMock = $this->getMock('Magento\Store\Model\StoreManagerInterface'); $this->widgetResourceMock = $this->getMock('Magento\Widget\Model\Resource\Widget', [], [], '', false); $this->widgetMock = $this->getMock('Magento\Widget\Model\Widget', [], [], '', false); - $this->layoutMock = $this->getMock('Magento\Framework\View\LayoutInterface', [], [], '', false); + $this->layoutMock = $this->getMock('Magento\Framework\View\LayoutInterface'); $this->filter = $this->objectManagerHelper->getObject( 'Magento\Widget\Model\Template\Filter', -- GitLab From e25c028994ececd158f371f5d2740dd546959402 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy <dpoperechnyy@ebay.com> Date: Mon, 31 Aug 2015 19:27:18 +0300 Subject: [PATCH 022/420] MAGETWO-41501: Wrong success mass delete message on cms pages and blocks - Abstract unit test class updated; --- .../Adminhtml/AbstractMassActionTest.php | 44 +++++++++++++++++++ .../Adminhtml/Page/MassDeleteTest.php | 35 ++------------- .../Adminhtml/Page/MassDisableTest.php | 35 ++------------- .../Adminhtml/Page/MassEnableTest.php | 35 ++------------- 4 files changed, 53 insertions(+), 96 deletions(-) diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassActionTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassActionTest.php index 83802f3515b..db1bd0b3053 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassActionTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassActionTest.php @@ -39,6 +39,11 @@ abstract class AbstractMassActionTest extends \PHPUnit_Framework_TestCase */ protected $filterMock; + /** + * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageCollectionMock; + protected function setUp() { $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); @@ -56,6 +61,8 @@ abstract class AbstractMassActionTest extends \PHPUnit_Framework_TestCase ->with(ResultFactory::TYPE_REDIRECT, []) ->willReturn($this->resultRedirectMock); + $this->pageCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', [], [], '', false); + $this->contextMock = $this->getMock('\Magento\Backend\App\Action\Context', [], [], '', false); $this->filterMock = $this->getMockBuilder('Magento\Ui\Component\MassAction\Filter') @@ -65,4 +72,41 @@ abstract class AbstractMassActionTest extends \PHPUnit_Framework_TestCase $this->contextMock->expects($this->any())->method('getMessageManager')->willReturn($this->messageManagerMock); $this->contextMock->expects($this->any())->method('getResultFactory')->willReturn($this->resultFactoryMock); } + + /** + * @param string $message + * @param int $size + */ + protected function processMassAction($message, $size) + { + $collection = [ + $this->getPageMock(), + $this->getPageMock() + ]; + + $this->filterMock->expects($this->once()) + ->method('getCollection') + ->with($this->pageCollectionMock) + ->willReturn($this->pageCollectionMock); + + $this->pageCollectionMock->expects($this->once())->method('getSize')->willReturn($size); + $this->pageCollectionMock->expects($this->once()) + ->method('getIterator') + ->willReturn(new \ArrayIterator($collection)); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with(__($message, $size)); + $this->messageManagerMock->expects($this->never())->method('addError'); + + $this->resultRedirectMock->expects($this->once()) + ->method('setPath') + ->with('*/*/') + ->willReturnSelf(); + } + + /** + * @return \Magento\Cms\Model\Resource\Page\Collection + */ + abstract protected function getPageMock(); } diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php index 6f87c8bca31..915fff29b5c 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php @@ -19,11 +19,6 @@ class MassDeleteTest extends AbstractMassActionTest */ protected $collectionFactoryMock; - /** - * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $pageCollectionMock; - protected function setUp() { parent::setUp(); @@ -36,8 +31,6 @@ class MassDeleteTest extends AbstractMassActionTest false ); - $this->pageCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', [], [], '', false); - $this->massDeleteController = $this->objectManager->getObject( 'Magento\Cms\Controller\Adminhtml\Page\MassDelete', [ @@ -50,34 +43,12 @@ class MassDeleteTest extends AbstractMassActionTest public function testMassDeleteAction() { - $deletedPagesCount = 2; - - $collection = [ - $this->getPageMock(), - $this->getPageMock() - ]; + $size = 2; + $message = 'A total of %1 record(s) have been deleted.'; $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); - $this->filterMock->expects($this->once()) - ->method('getCollection') - ->with($this->pageCollectionMock) - ->willReturn($this->pageCollectionMock); - - $this->pageCollectionMock->expects($this->once())->method('getSize')->willReturn($deletedPagesCount); - $this->pageCollectionMock->expects($this->once()) - ->method('getIterator') - ->willReturn(new \ArrayIterator($collection)); - - $this->messageManagerMock->expects($this->once()) - ->method('addSuccess') - ->with(__('A total of %1 record(s) have been deleted.', $deletedPagesCount)); - $this->messageManagerMock->expects($this->never())->method('addError'); - - $this->resultRedirectMock->expects($this->once()) - ->method('setPath') - ->with('*/*/') - ->willReturnSelf(); + $this->processMassAction($message, $size); $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute()); } diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php index 7bc2ee03ecf..c8fd29b239c 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php @@ -19,11 +19,6 @@ class MassDisableTest extends AbstractMassActionTest */ protected $collectionFactoryMock; - /** - * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $pageCollectionMock; - protected function setUp() { parent::setUp(); @@ -36,8 +31,6 @@ class MassDisableTest extends AbstractMassActionTest false ); - $this->pageCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', [], [], '', false); - $this->massDisableController = $this->objectManager->getObject( 'Magento\Cms\Controller\Adminhtml\Page\MassDisable', [ @@ -50,34 +43,12 @@ class MassDisableTest extends AbstractMassActionTest public function testMassDisableAction() { - $disabledPagesCount = 2; - - $collection = [ - $this->getPageMock(), - $this->getPageMock() - ]; + $size = 2; + $message = 'A total of %1 record(s) have been disabled.'; $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); - $this->filterMock->expects($this->once()) - ->method('getCollection') - ->with($this->pageCollectionMock) - ->willReturn($this->pageCollectionMock); - - $this->pageCollectionMock->expects($this->once())->method('getSize')->willReturn($disabledPagesCount); - $this->pageCollectionMock->expects($this->once()) - ->method('getIterator') - ->willReturn(new \ArrayIterator($collection)); - - $this->messageManagerMock->expects($this->once()) - ->method('addSuccess') - ->with(__('A total of %1 record(s) have been disabled.', $disabledPagesCount)); - $this->messageManagerMock->expects($this->never())->method('addError'); - - $this->resultRedirectMock->expects($this->once()) - ->method('setPath') - ->with('*/*/') - ->willReturnSelf(); + $this->processMassAction($message, $size); $this->assertSame($this->resultRedirectMock, $this->massDisableController->execute()); } diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php index 2fbef8db334..bdf289dcc33 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php @@ -19,11 +19,6 @@ class MassEnableTest extends AbstractMassActionTest */ protected $collectionFactoryMock; - /** - * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $pageCollectionMock; - protected function setUp() { parent::setUp(); @@ -36,8 +31,6 @@ class MassEnableTest extends AbstractMassActionTest false ); - $this->pageCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', [], [], '', false); - $this->massEnableController = $this->objectManager->getObject( 'Magento\Cms\Controller\Adminhtml\Page\MassEnable', [ @@ -50,34 +43,12 @@ class MassEnableTest extends AbstractMassActionTest public function testMassEnableAction() { - $enabledPagesCount = 2; - - $collection = [ - $this->getPageMock(), - $this->getPageMock() - ]; + $size = 2; + $message = 'A total of %1 record(s) have been enabled.'; $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); - $this->filterMock->expects($this->once()) - ->method('getCollection') - ->with($this->pageCollectionMock) - ->willReturn($this->pageCollectionMock); - - $this->pageCollectionMock->expects($this->once())->method('getSize')->willReturn($enabledPagesCount); - $this->pageCollectionMock->expects($this->once()) - ->method('getIterator') - ->willReturn(new \ArrayIterator($collection)); - - $this->messageManagerMock->expects($this->once()) - ->method('addSuccess') - ->with(__('A total of %1 record(s) have been enabled.', $enabledPagesCount)); - $this->messageManagerMock->expects($this->never())->method('addError'); - - $this->resultRedirectMock->expects($this->once()) - ->method('setPath') - ->with('*/*/') - ->willReturnSelf(); + $this->processMassAction($message, $size); $this->assertSame($this->resultRedirectMock, $this->massEnableController->execute()); } -- GitLab From 1496d119b60036d95e2cf79030e49b61159aed3a Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy <dpoperechnyy@ebay.com> Date: Mon, 31 Aug 2015 20:01:39 +0300 Subject: [PATCH 023/420] MAGETWO-41501: Wrong success mass delete message on cms pages and blocks - Unit tests updated; --- .../Adminhtml/AbstractMassActionTest.php | 44 ------------------- .../Adminhtml/Page/MassDeleteTest.php | 35 +++++++++++++-- .../Adminhtml/Page/MassDisableTest.php | 35 +++++++++++++-- .../Adminhtml/Page/MassEnableTest.php | 35 +++++++++++++-- 4 files changed, 96 insertions(+), 53 deletions(-) diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassActionTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassActionTest.php index db1bd0b3053..83802f3515b 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassActionTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/AbstractMassActionTest.php @@ -39,11 +39,6 @@ abstract class AbstractMassActionTest extends \PHPUnit_Framework_TestCase */ protected $filterMock; - /** - * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject - */ - protected $pageCollectionMock; - protected function setUp() { $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); @@ -61,8 +56,6 @@ abstract class AbstractMassActionTest extends \PHPUnit_Framework_TestCase ->with(ResultFactory::TYPE_REDIRECT, []) ->willReturn($this->resultRedirectMock); - $this->pageCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', [], [], '', false); - $this->contextMock = $this->getMock('\Magento\Backend\App\Action\Context', [], [], '', false); $this->filterMock = $this->getMockBuilder('Magento\Ui\Component\MassAction\Filter') @@ -72,41 +65,4 @@ abstract class AbstractMassActionTest extends \PHPUnit_Framework_TestCase $this->contextMock->expects($this->any())->method('getMessageManager')->willReturn($this->messageManagerMock); $this->contextMock->expects($this->any())->method('getResultFactory')->willReturn($this->resultFactoryMock); } - - /** - * @param string $message - * @param int $size - */ - protected function processMassAction($message, $size) - { - $collection = [ - $this->getPageMock(), - $this->getPageMock() - ]; - - $this->filterMock->expects($this->once()) - ->method('getCollection') - ->with($this->pageCollectionMock) - ->willReturn($this->pageCollectionMock); - - $this->pageCollectionMock->expects($this->once())->method('getSize')->willReturn($size); - $this->pageCollectionMock->expects($this->once()) - ->method('getIterator') - ->willReturn(new \ArrayIterator($collection)); - - $this->messageManagerMock->expects($this->once()) - ->method('addSuccess') - ->with(__($message, $size)); - $this->messageManagerMock->expects($this->never())->method('addError'); - - $this->resultRedirectMock->expects($this->once()) - ->method('setPath') - ->with('*/*/') - ->willReturnSelf(); - } - - /** - * @return \Magento\Cms\Model\Resource\Page\Collection - */ - abstract protected function getPageMock(); } diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php index 915fff29b5c..6f87c8bca31 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDeleteTest.php @@ -19,6 +19,11 @@ class MassDeleteTest extends AbstractMassActionTest */ protected $collectionFactoryMock; + /** + * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageCollectionMock; + protected function setUp() { parent::setUp(); @@ -31,6 +36,8 @@ class MassDeleteTest extends AbstractMassActionTest false ); + $this->pageCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', [], [], '', false); + $this->massDeleteController = $this->objectManager->getObject( 'Magento\Cms\Controller\Adminhtml\Page\MassDelete', [ @@ -43,12 +50,34 @@ class MassDeleteTest extends AbstractMassActionTest public function testMassDeleteAction() { - $size = 2; - $message = 'A total of %1 record(s) have been deleted.'; + $deletedPagesCount = 2; + + $collection = [ + $this->getPageMock(), + $this->getPageMock() + ]; $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); - $this->processMassAction($message, $size); + $this->filterMock->expects($this->once()) + ->method('getCollection') + ->with($this->pageCollectionMock) + ->willReturn($this->pageCollectionMock); + + $this->pageCollectionMock->expects($this->once())->method('getSize')->willReturn($deletedPagesCount); + $this->pageCollectionMock->expects($this->once()) + ->method('getIterator') + ->willReturn(new \ArrayIterator($collection)); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with(__('A total of %1 record(s) have been deleted.', $deletedPagesCount)); + $this->messageManagerMock->expects($this->never())->method('addError'); + + $this->resultRedirectMock->expects($this->once()) + ->method('setPath') + ->with('*/*/') + ->willReturnSelf(); $this->assertSame($this->resultRedirectMock, $this->massDeleteController->execute()); } diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php index c8fd29b239c..7bc2ee03ecf 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassDisableTest.php @@ -19,6 +19,11 @@ class MassDisableTest extends AbstractMassActionTest */ protected $collectionFactoryMock; + /** + * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageCollectionMock; + protected function setUp() { parent::setUp(); @@ -31,6 +36,8 @@ class MassDisableTest extends AbstractMassActionTest false ); + $this->pageCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', [], [], '', false); + $this->massDisableController = $this->objectManager->getObject( 'Magento\Cms\Controller\Adminhtml\Page\MassDisable', [ @@ -43,12 +50,34 @@ class MassDisableTest extends AbstractMassActionTest public function testMassDisableAction() { - $size = 2; - $message = 'A total of %1 record(s) have been disabled.'; + $disabledPagesCount = 2; + + $collection = [ + $this->getPageMock(), + $this->getPageMock() + ]; $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); - $this->processMassAction($message, $size); + $this->filterMock->expects($this->once()) + ->method('getCollection') + ->with($this->pageCollectionMock) + ->willReturn($this->pageCollectionMock); + + $this->pageCollectionMock->expects($this->once())->method('getSize')->willReturn($disabledPagesCount); + $this->pageCollectionMock->expects($this->once()) + ->method('getIterator') + ->willReturn(new \ArrayIterator($collection)); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with(__('A total of %1 record(s) have been disabled.', $disabledPagesCount)); + $this->messageManagerMock->expects($this->never())->method('addError'); + + $this->resultRedirectMock->expects($this->once()) + ->method('setPath') + ->with('*/*/') + ->willReturnSelf(); $this->assertSame($this->resultRedirectMock, $this->massDisableController->execute()); } diff --git a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php index bdf289dcc33..2fbef8db334 100644 --- a/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php +++ b/app/code/Magento/Cms/Test/Unit/Controller/Adminhtml/Page/MassEnableTest.php @@ -19,6 +19,11 @@ class MassEnableTest extends AbstractMassActionTest */ protected $collectionFactoryMock; + /** + * @var \Magento\Cms\Model\Resource\Page\Collection|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageCollectionMock; + protected function setUp() { parent::setUp(); @@ -31,6 +36,8 @@ class MassEnableTest extends AbstractMassActionTest false ); + $this->pageCollectionMock = $this->getMock('Magento\Cms\Model\Resource\Page\Collection', [], [], '', false); + $this->massEnableController = $this->objectManager->getObject( 'Magento\Cms\Controller\Adminhtml\Page\MassEnable', [ @@ -43,12 +50,34 @@ class MassEnableTest extends AbstractMassActionTest public function testMassEnableAction() { - $size = 2; - $message = 'A total of %1 record(s) have been enabled.'; + $enabledPagesCount = 2; + + $collection = [ + $this->getPageMock(), + $this->getPageMock() + ]; $this->collectionFactoryMock->expects($this->once())->method('create')->willReturn($this->pageCollectionMock); - $this->processMassAction($message, $size); + $this->filterMock->expects($this->once()) + ->method('getCollection') + ->with($this->pageCollectionMock) + ->willReturn($this->pageCollectionMock); + + $this->pageCollectionMock->expects($this->once())->method('getSize')->willReturn($enabledPagesCount); + $this->pageCollectionMock->expects($this->once()) + ->method('getIterator') + ->willReturn(new \ArrayIterator($collection)); + + $this->messageManagerMock->expects($this->once()) + ->method('addSuccess') + ->with(__('A total of %1 record(s) have been enabled.', $enabledPagesCount)); + $this->messageManagerMock->expects($this->never())->method('addError'); + + $this->resultRedirectMock->expects($this->once()) + ->method('setPath') + ->with('*/*/') + ->willReturnSelf(); $this->assertSame($this->resultRedirectMock, $this->massEnableController->execute()); } -- GitLab From 27b4225c20967ce5c89a8d896412ce933f1f0e24 Mon Sep 17 00:00:00 2001 From: Oleh Posyniak <oposyniak@ebay.com> Date: Tue, 25 Aug 2015 16:59:59 +0300 Subject: [PATCH 024/420] MAGETWO-40794: Widget not displaying after secondary creating widget --- app/code/Magento/Customer/Block/CustomerData.php | 9 +++++++++ .../view/frontend/templates/js/customer-data.phtml | 1 + .../Customer/view/frontend/web/js/customer-data.js | 7 +++++++ 3 files changed, 17 insertions(+) diff --git a/app/code/Magento/Customer/Block/CustomerData.php b/app/code/Magento/Customer/Block/CustomerData.php index 60f5a10b917..f7b0c252b3f 100644 --- a/app/code/Magento/Customer/Block/CustomerData.php +++ b/app/code/Magento/Customer/Block/CustomerData.php @@ -29,4 +29,13 @@ class CustomerData extends \Magento\Framework\View\Element\Template { return $this->getUrl($route, ['_secure' => $this->getRequest()->isSecure()]); } + + /** + * Get sections that can not be cached on client-side + * + * @return array + */ + public function getMutableSections() { + return ['banner']; + } } diff --git a/app/code/Magento/Customer/view/frontend/templates/js/customer-data.phtml b/app/code/Magento/Customer/view/frontend/templates/js/customer-data.phtml index 0be4fef69c4..f1f3a5e4f9d 100644 --- a/app/code/Magento/Customer/view/frontend/templates/js/customer-data.phtml +++ b/app/code/Magento/Customer/view/frontend/templates/js/customer-data.phtml @@ -13,6 +13,7 @@ '*' => ['Magento_Customer/js/customer-data' => [ 'sectionLoadUrl' => $block->getCustomerDataUrl('customer/section/load'), 'cookieLifeTime' => $block->getCookieLifeTime(), + 'mutableSections' => $block->getMutableSections(), ]], ]); ?> diff --git a/app/code/Magento/Customer/view/frontend/web/js/customer-data.js b/app/code/Magento/Customer/view/frontend/web/js/customer-data.js index f76913fee60..6025aefc640 100644 --- a/app/code/Magento/Customer/view/frontend/web/js/customer-data.js +++ b/app/code/Magento/Customer/view/frontend/web/js/customer-data.js @@ -33,6 +33,12 @@ define([ } }; + var invalidateCacheBySections = function(settings) { + if (settings.mutableSections && _.intersection(storage.keys(), settings.mutableSections).length > 0) { + storage.removeAll(); + } + } + var dataProvider = { getFromStorage: function (sectionNames) { var result = {}; @@ -129,6 +135,7 @@ define([ options = settings; invalidateCacheBySessionTimeOut(settings); invalidateCacheByCloseCookieSession(); + invalidateCacheBySections(settings); customerData.init(); } }; -- GitLab From b78bdad57087ece3ae7828aadb583872d73a136c Mon Sep 17 00:00:00 2001 From: Oleh Posyniak <oposyniak@ebay.com> Date: Tue, 25 Aug 2015 17:42:52 +0300 Subject: [PATCH 025/420] MAGETWO-40794: Widget not displaying after secondary creating widget --- app/code/Magento/Customer/Block/CustomerData.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Customer/Block/CustomerData.php b/app/code/Magento/Customer/Block/CustomerData.php index f7b0c252b3f..6aa592171ee 100644 --- a/app/code/Magento/Customer/Block/CustomerData.php +++ b/app/code/Magento/Customer/Block/CustomerData.php @@ -35,7 +35,8 @@ class CustomerData extends \Magento\Framework\View\Element\Template * * @return array */ - public function getMutableSections() { + public function getMutableSections() + { return ['banner']; } } -- GitLab From 23a3735e58b35756f3c02f93f474c2752e67e3ae Mon Sep 17 00:00:00 2001 From: Oleh Posyniak <oposyniak@ebay.com> Date: Mon, 31 Aug 2015 13:23:52 +0300 Subject: [PATCH 026/420] MAGETWO-40794: Widget not displaying after secondary creating widget --- app/code/Magento/Customer/Block/CustomerData.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Customer/Block/CustomerData.php b/app/code/Magento/Customer/Block/CustomerData.php index 6aa592171ee..00281e9a142 100644 --- a/app/code/Magento/Customer/Block/CustomerData.php +++ b/app/code/Magento/Customer/Block/CustomerData.php @@ -31,12 +31,19 @@ class CustomerData extends \Magento\Framework\View\Element\Template } /** - * Get sections that can not be cached on client-side + * Get sections that can not be cached on frontend-side * * @return array */ - public function getMutableSections() + public function getNotCachedSections() { + return $this->nonCachedSections; + } + + /** + * @return array + */ + public function getNonCachedSectionKeys() { - return ['banner']; + return array_keys($this->nonCachedSections); } } -- GitLab From c9256af23de4e7ff0112bf420a2d94e15ee7223f Mon Sep 17 00:00:00 2001 From: Oleh Posyniak <oposyniak@ebay.com> Date: Mon, 31 Aug 2015 13:29:57 +0300 Subject: [PATCH 027/420] MAGETWO-40794: Widget not displaying after secondary creating widget --- app/code/Magento/Customer/Block/CustomerData.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Customer/Block/CustomerData.php b/app/code/Magento/Customer/Block/CustomerData.php index 00281e9a142..50246705f98 100644 --- a/app/code/Magento/Customer/Block/CustomerData.php +++ b/app/code/Magento/Customer/Block/CustomerData.php @@ -35,7 +35,8 @@ class CustomerData extends \Magento\Framework\View\Element\Template * * @return array */ - public function getNotCachedSections() { + public function getNotCachedSections() + { return $this->nonCachedSections; } -- GitLab From 810f13a0d3307098f7fda4e69e00b06d4b30b51d Mon Sep 17 00:00:00 2001 From: Oleh Posyniak <oposyniak@ebay.com> Date: Tue, 1 Sep 2015 18:08:33 +0300 Subject: [PATCH 028/420] MAGETWO-40794: Widget not displaying after secondary creating widget --- .../Magento/Customer/Block/CustomerData.php | 23 +++++++++++++++++++ .../frontend/templates/js/customer-data.phtml | 2 +- .../view/frontend/web/js/customer-data.js | 11 +++++---- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/Customer/Block/CustomerData.php b/app/code/Magento/Customer/Block/CustomerData.php index 50246705f98..66d4043f152 100644 --- a/app/code/Magento/Customer/Block/CustomerData.php +++ b/app/code/Magento/Customer/Block/CustomerData.php @@ -7,6 +7,27 @@ namespace Magento\Customer\Block; class CustomerData extends \Magento\Framework\View\Element\Template { + /** + * Sections that can not be cached on frontend-side + * + * @var array + */ + protected $nonCachedSections = []; + + /** + * @param \Magento\Framework\View\Element\Template\Context $context + * @param array $data + * @param array $nonCachedSections + */ + public function __construct( + \Magento\Framework\View\Element\Template\Context $context, + array $data = [], + array $nonCachedSections = [] + ) { + $this->nonCachedSections = $nonCachedSections; + parent::__construct($context, $data); + } + /** * Get CookieLifeTime * @return null|string scopeCode @@ -41,6 +62,8 @@ class CustomerData extends \Magento\Framework\View\Element\Template } /** + * Get keys of sections that can not be cached on frontend-side + * * @return array */ public function getNonCachedSectionKeys() diff --git a/app/code/Magento/Customer/view/frontend/templates/js/customer-data.phtml b/app/code/Magento/Customer/view/frontend/templates/js/customer-data.phtml index f1f3a5e4f9d..9d609676551 100644 --- a/app/code/Magento/Customer/view/frontend/templates/js/customer-data.phtml +++ b/app/code/Magento/Customer/view/frontend/templates/js/customer-data.phtml @@ -13,7 +13,7 @@ '*' => ['Magento_Customer/js/customer-data' => [ 'sectionLoadUrl' => $block->getCustomerDataUrl('customer/section/load'), 'cookieLifeTime' => $block->getCookieLifeTime(), - 'mutableSections' => $block->getMutableSections(), + 'nonCachedSections' => $block->getNonCachedSectionKeys(), ]], ]); ?> diff --git a/app/code/Magento/Customer/view/frontend/web/js/customer-data.js b/app/code/Magento/Customer/view/frontend/web/js/customer-data.js index 6025aefc640..726fa0816d7 100644 --- a/app/code/Magento/Customer/view/frontend/web/js/customer-data.js +++ b/app/code/Magento/Customer/view/frontend/web/js/customer-data.js @@ -23,6 +23,8 @@ define([ storage.removeAll(); var date = new Date(Date.now() + parseInt(options.cookieLifeTime, 10) * 1000); $.localStorage.set('mage-cache-timeout', date); + } else { + invalidateNonCachedSections(options); } }; @@ -33,10 +35,10 @@ define([ } }; - var invalidateCacheBySections = function(settings) { - if (settings.mutableSections && _.intersection(storage.keys(), settings.mutableSections).length > 0) { - storage.removeAll(); - } + var invalidateNonCachedSections = function(options) { + _.each(options.nonCachedSections, function (sectionName) { + storageInvalidation.set(sectionName, true); + }); } var dataProvider = { @@ -135,7 +137,6 @@ define([ options = settings; invalidateCacheBySessionTimeOut(settings); invalidateCacheByCloseCookieSession(); - invalidateCacheBySections(settings); customerData.init(); } }; -- GitLab From 353bf43827176e3f289837bde4e7660489685e90 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Mon, 7 Sep 2015 19:47:32 +0300 Subject: [PATCH 029/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Move configuration duplicates to definitions --- .../ui_component/product_listing.xml | 14 +- .../ui_component/cms_block_listing.xml | 16 +-- .../ui_component/cms_page_listing.xml | 22 +-- .../product_attributes_listing.xml | 9 +- .../ui_component/customer_listing.xml | 31 +---- .../ui_component/customer_online_grid.xml | 125 ++---------------- .../sales_order_creditmemo_grid.xml | 15 +-- .../ui_component/sales_order_grid.xml | 17 +-- .../ui_component/sales_order_invoice_grid.xml | 15 +-- .../sales_order_shipment_grid.xml | 15 +-- .../sales_order_view_creditmemo_grid.xml | 15 +-- .../sales_order_view_invoice_grid.xml | 13 -- .../sales_order_view_shipment_grid.xml | 13 -- .../view/base/ui_component/etc/definition.xml | 41 +++--- .../view/base/web/js/grid/columns/actions.js | 2 + .../base/web/js/grid/columns/multiselect.js | 1 + 16 files changed, 51 insertions(+), 313 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml index e42a9732d9d..8279c622fb9 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml @@ -40,11 +40,7 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> - <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> - <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">product_listing</item> </item> </item> @@ -65,8 +61,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsProvider" xsi:type="string">product_listing.product_listing.product_columns</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">product_listing.product_listing.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -74,7 +68,7 @@ <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">product_listing.product_listing.listing_top.listing_filters</item> <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">product_listing.product_listing.listing_top.bookmarks:current.columns.${ $.index }.visible</item> + <item name="visible" xsi:type="string">product_listing.product_listing.product_columns.${ $.index }:visible</item> </item> </item> </item> @@ -100,7 +94,6 @@ <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">product_listing.product_listing.product_columns.ids</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/tree-massactions</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -159,7 +152,6 @@ <item name="provider" xsi:type="string">product_listing.product_listing.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.paging</item> </item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -344,10 +336,6 @@ <item name="sortOrder" xsi:type="number">200</item> <item name="dataType" xsi:type="string">actions</item> <item name="label" xsi:type="string" translate="true">Action</item> - <item name="data_type" xsi:type="string">actions</item> - <item name="filterable" xsi:type="boolean">false</item> - <item name="sortable" xsi:type="boolean">false</item> - <item name="draggable" xsi:type="boolean">false</item> </item> </argument> </column> diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml index 17f7d7c7a42..08e16f49546 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml @@ -48,11 +48,7 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> - <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> - <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">cms_block_listing</item> </item> </item> @@ -72,8 +68,6 @@ <filterSearch name="fulltext"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/search/search</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="provider" xsi:type="string">cms_block_listing.cms_block_listing_data_source</item> <item name="chipsProvider" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.listing_filters_chips</item> <item name="storageConfig" xsi:type="array"> @@ -87,8 +81,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsProvider" xsi:type="string">cms_block_listing.cms_block_listing.cms_block_columns</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -96,7 +88,7 @@ <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.listing_filters</item> <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">cms_block_listing.cms_block_listing.listing_top.bookmarks:current.columns.${ $.index }.visible</item> + <item name="visible" xsi:type="string">cms_block_listing.cms_block_listing.cms_block_columns.${ $.index }:visible</item> </item> </item> </item> @@ -118,7 +110,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">cms_block_listing.cms_block_listing.cms_block_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="indexField" xsi:type="string">block_id</item> </item> </argument> @@ -156,7 +147,6 @@ <item name="namespace" xsi:type="string">current.paging</item> </item> <item name="selectProvider" xsi:type="string">cms_block_listing.cms_block_listing.cms_block_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -321,13 +311,9 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">block_id</item> <item name="label" xsi:type="string" translate="true">Action</item> - <item name="data_type" xsi:type="string">actions</item> - <item name="filterable" xsi:type="boolean">false</item> - <item name="sortable" xsi:type="boolean">false</item> </item> </argument> </column> diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml index ea9cd1d93d4..adb855f7adf 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml @@ -48,11 +48,7 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> - <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> - <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">cms_page_listing</item> </item> </item> @@ -72,8 +68,6 @@ <filterSearch name="fulltext"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/search/search</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="provider" xsi:type="string">cms_page_listing.cms_page_listing_data_source</item> <item name="chipsProvider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.listing_filters_chips</item> <item name="storageConfig" xsi:type="array"> @@ -87,8 +81,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsProvider" xsi:type="string">cms_page_listing.cms_page_listing.cms_page_columns</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -96,7 +88,7 @@ <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.listing_filters</item> <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.bookmarks:current.columns.${ $.index }.visible</item> + <item name="visible" xsi:type="string">cms_page_listing.cms_page_listing.cms_page_columns.${ $.index }:visible</item> </item> </item> </item> @@ -118,7 +110,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">cms_page_listing.cms_page_listing.cms_page_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="indexField" xsi:type="string">page_id</item> </item> </argument> @@ -174,7 +165,6 @@ <item name="namespace" xsi:type="string">current.paging</item> </item> <item name="selectProvider" xsi:type="string">cms_page_listing.cms_page_listing.cms_page_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -227,7 +217,6 @@ <item name="1" xsi:type="boolean">true</item> </item> </item> - <item name="controlVisibility" xsi:type="boolean">true</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">cms_page_listing.cms_page_listing.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -240,9 +229,7 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">page_id</item> - <item name="controlVisibility" xsi:type="boolean">false</item> </item> </argument> </column> @@ -381,9 +368,9 @@ </column> <column name="custom_root_template"> <argument name="data" xsi:type="array"> - <item name="filter" xsi:type="string">select</item> <item name="options" xsi:type="object">Magento\Cms\Model\Page\Source\PageLayout</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="editor" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item> @@ -418,14 +405,9 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">page_id</item> - <item name="blockVisibility" xsi:type="boolean">true</item> <item name="label" xsi:type="string" translate="true">Action</item> - <item name="data_type" xsi:type="string">actions</item> - <item name="filterable" xsi:type="boolean">false</item> - <item name="sortable" xsi:type="boolean">false</item> </item> </argument> </column> diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml index 0edccf93535..aab49bb9e10 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml @@ -40,11 +40,7 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> - <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> - <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">product_attributes_listing</item> </item> </item> @@ -68,8 +64,6 @@ <item name="applied" xsi:type="string">not-save-filter</item> </item> <item name="columnsProvider" xsi:type="string">product_attributes_listing.product_attributes_listing.product_attributes_columns</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">product_attributes_listing.product_attributes_listing.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -77,7 +71,7 @@ <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">product_attributes_listing.product_attributes_listing.listing_top.listing_filters</item> <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">product_attributes_listing.product_attributes_listing.listing_top.bookmarks:current.columns.${ $.index }.visible</item> + <item name="visible" xsi:type="string">product_attributes_listing.product_attributes_listing.product_attributes_columns:${ $.index }.visible</item> </item> </item> </item> @@ -91,7 +85,6 @@ <item name="namespace" xsi:type="string">current.paging</item> </item> <item name="selectProvider" xsi:type="string">product_attributes_listing.product_attributes_listing.product_attributes_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> diff --git a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml index ea4d0359f08..b384a9becc0 100644 --- a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml +++ b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml @@ -48,11 +48,7 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> - <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> - <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">customer_listing</item> </item> </item> @@ -79,8 +75,6 @@ <filterSearch name="fulltext"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/search/search</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="provider" xsi:type="string">customer_listing.customer_listing_data_source</item> <item name="chipsProvider" xsi:type="string">customer_listing.customer_listing.listing_top.listing_filters_chips</item> <item name="storageConfig" xsi:type="array"> @@ -93,8 +87,7 @@ <filters name="listing_filters" class="Magento\Customer\Ui\Component\Listing\Filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> + <item name="columnsProvider" xsi:type="string">customer_listing.customer_listing.customer_columns</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">customer_listing.customer_listing.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -102,7 +95,7 @@ <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">customer_listing.customer_listing.listing_top.listing_filters</item> <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">customer_listing.customer_listing.listing_top.bookmarks:current.columns.${ $.index }.visible</item> + <item name="visible" xsi:type="string">customer_listing.customer_listing.customer_columns.${ $.index }:visible</item> </item> </item> </item> @@ -316,7 +309,6 @@ <item name="namespace" xsi:type="string">current.paging</item> </item> <item name="selectProvider" xsi:type="string">customer_listing.customer_listing.customer_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -359,7 +351,6 @@ <item name="1" xsi:type="string">${ $.$data.rowIndex }</item> </item> </item> - <item name="controlVisibility" xsi:type="boolean">true</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">customer_listing.customer_listing.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -373,7 +364,6 @@ <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="controlVisibility" xsi:type="boolean">false</item> <item name="sortOrder" xsi:type="number">10</item> </item> </argument> @@ -409,7 +399,6 @@ <column name="group_id" class="Magento\Customer\Ui\Component\Listing\Column\AttributeColumn"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Group</item> <item name="sortOrder" xsi:type="number">50</item> @@ -428,7 +417,6 @@ <column name="billing_postcode"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">ZIP</item> <item name="sortOrder" xsi:type="number">70</item> @@ -447,7 +435,6 @@ <column name="billing_region"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">State/Province</item> <item name="sortOrder" xsi:type="number">90</item> @@ -458,7 +445,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - <item name="sortable" xsi:type="string">true</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Customer Since</item> <item name="sortOrder" xsi:type="number">100</item> @@ -479,7 +465,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Last Logged In</item> @@ -490,7 +475,6 @@ <column name="confirmation"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Confirmed email</item> @@ -501,7 +485,6 @@ <column name="created_in"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Account Created in</item> @@ -533,7 +516,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Date Of Birth</item> @@ -544,7 +526,6 @@ <column name="taxvat"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Tax VAT Number</item> @@ -575,7 +556,6 @@ <column name="billing_city"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">City</item> @@ -586,7 +566,6 @@ <column name="billing_fax"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Fax</item> @@ -597,7 +576,6 @@ <column name="billing_vat_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">VAT Number</item> @@ -608,7 +586,6 @@ <column name="billing_company"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Company</item> @@ -620,13 +597,9 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> <item name="label" xsi:type="string" translate="true">Action</item> - <item name="data_type" xsi:type="string">actions</item> - <item name="filterable" xsi:type="boolean">false</item> - <item name="sortable" xsi:type="boolean">false</item> </item> </argument> </column> diff --git a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml index 6dca92beb9b..23e313066ac 100644 --- a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml +++ b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml @@ -40,11 +40,7 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> - <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> - <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">customer_online_grid</item> </item> </item> @@ -64,8 +60,7 @@ <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> + <item name="columnsProvider" xsi:type="string">customer_online_grid.customer_online_grid.customer_online_columns</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">customer_online_grid.customer_online_grid.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -73,107 +68,11 @@ <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">customer_online_grid.customer_online_grid.listing_top.listing_filters</item> <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">customer_online_grid.customer_online_grid.listing_top.bookmarks:current.columns.${ $.index }.visible</item> + <item name="visible" xsi:type="string">customer_online_grid.customer_online_grid.customer_online_columns.${ $.index }:visible</item> </item> </item> </item> </argument> - <filterRange name="customer_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">customer_id</item> - <item name="label" xsi:type="string" translate="true">ID</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">customer_online_grid.customer_online_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterInput name="firstname"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">firstname</item> - <item name="label" xsi:type="string" translate="true">First Name</item> - </item> - </argument> - </filterInput> - <filterInput name="lastname"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">lastname</item> - <item name="label" xsi:type="string" translate="true">Last Name</item> - </item> - </argument> - </filterInput> - <filterInput name="email"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">email</item> - <item name="label" xsi:type="string" translate="true">Email</item> - </item> - </argument> - </filterInput> - <filterRange name="last_visit_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">last_visit_at</item> - <item name="label" xsi:type="string" translate="true">Last Activity</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">customer_online_grid.customer_online_grid.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterSelect name="visitor_type"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Customer\Ui\Component\Listing\Column\Online\Type\Options</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="caption" xsi:type="string" translate="true">Select...</item> - <item name="dataScope" xsi:type="string">visitor_type</item> - <item name="label" xsi:type="string" translate="true">Type</item> - </item> - </argument> - </filterSelect> </filters> <paging name="listing_paging"> <argument name="data" xsi:type="array"> @@ -183,7 +82,6 @@ <item name="namespace" xsi:type="string">current.paging</item> </item> <item name="selectProvider" xsi:type="string">customer_online_grid.customer_online_grid.customer_online_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -234,19 +132,12 @@ </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - <item name="draggable" xsi:type="boolean">false</item> - <item name="indexField" xsi:type="string">visitor_id</item> - </item> - </argument> - </column> <column name="customer_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="dataType" xsi:type="string">text</item> + <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">ID</item> </item> </argument> @@ -254,6 +145,7 @@ <column name="firstname"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">First Name</item> </item> @@ -262,6 +154,7 @@ <column name="lastname"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Last Name</item> </item> @@ -270,6 +163,7 @@ <column name="email"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> @@ -294,6 +188,7 @@ <column name="last_visit_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">dateRange</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Last Activity</item> </item> @@ -301,9 +196,11 @@ </column> <column name="visitor_type" class="Magento\Customer\Ui\Component\Listing\Column\Online\Type"> <argument name="data" xsi:type="array"> + <item name="options" xsi:type="object">Magento\Customer\Ui\Component\Listing\Column\Online\Type\Options</item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - <item name="dataType" xsi:type="string">text</item> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Type</item> </item> </argument> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml index 302b87e9fe3..7e95b7ea028 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml @@ -40,11 +40,7 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> - <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> - <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">sales_order_creditmemo_grid</item> </item> </item> @@ -84,8 +80,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsProvider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.sales_order_creditmemo_columns</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -93,7 +87,7 @@ <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.listing_top.listing_filters</item> <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.listing_top.bookmarks:current.columns.${ $.index }.visible</item> + <item name="visible" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.sales_order_creditmemo_columns:${ $.index }.visible</item> </item> </item> </item> @@ -115,7 +109,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.sales_order_creditmemo_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -137,7 +130,6 @@ <item name="namespace" xsi:type="string">current.paging</item> </item> <item name="selectProvider" xsi:type="string">sales_order_creditmemo_grid.sales_order_creditmemo_grid.sales_order_creditmemo_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -192,7 +184,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -417,13 +408,9 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> <item name="label" xsi:type="string" translate="true">Action</item> - <item name="data_type" xsi:type="string">actions</item> - <item name="filterable" xsi:type="boolean">false</item> - <item name="sortable" xsi:type="boolean">false</item> </item> </argument> </column> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml index fd2ef59f37a..b8ca3f8f1fb 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml @@ -34,7 +34,7 @@ </argument> </argument> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> + <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item> </item> </argument> @@ -48,11 +48,7 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> - <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> - <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">sales_order_grid</item> </item> </item> @@ -92,8 +88,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsProvider" xsi:type="string">sales_order_grid.sales_order_grid.sales_order_columns</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_grid.sales_order_grid.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -101,7 +95,7 @@ <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_grid.sales_order_grid.listing_top.listing_filters</item> <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">sales_order_grid.sales_order_grid.listing_top.bookmarks:current.columns.${ $.index }.visible</item> + <item name="visible" xsi:type="string">sales_order_grid.sales_order_grid.sales_order_columns.${ $.index }:visible</item> </item> </item> </item> @@ -123,7 +117,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">sales_order_grid.sales_order_grid.sales_order_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -208,7 +201,6 @@ <item name="namespace" xsi:type="string">current.paging</item> </item> <item name="selectProvider" xsi:type="string">sales_order_grid.sales_order_grid.sales_order_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -263,7 +255,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -455,13 +446,9 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> <item name="label" xsi:type="string" translate="true">Action</item> - <item name="data_type" xsi:type="string">actions</item> - <item name="filterable" xsi:type="boolean">false</item> - <item name="sortable" xsi:type="boolean">false</item> </item> </argument> </column> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml index 1af1f08e6e6..2ec25de2dd6 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml @@ -40,11 +40,7 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> - <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> - <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">sales_order_invoice_grid</item> </item> </item> @@ -84,8 +80,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsProvider" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.sales_order_invoice_columns</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -93,7 +87,7 @@ <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.listing_top.listing_filters</item> <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.listing_top.bookmarks:current.columns.${ $.index }.visible</item> + <item name="visible" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.sales_order_invoice_columns.${ $.index }:visible</item> </item> </item> </item> @@ -115,7 +109,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.sales_order_invoice_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -137,7 +130,6 @@ <item name="namespace" xsi:type="string">current.paging</item> </item> <item name="selectProvider" xsi:type="string">sales_order_invoice_grid.sales_order_invoice_grid.sales_order_invoice_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -192,7 +184,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -375,13 +366,9 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">increment_id</item> <item name="label" xsi:type="string" translate="true">Action</item> - <item name="data_type" xsi:type="string">actions</item> - <item name="filterable" xsi:type="boolean">false</item> - <item name="sortable" xsi:type="boolean">false</item> </item> </argument> </column> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml index 23f01b82821..9f511674271 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml @@ -40,11 +40,7 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> - <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> - <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">sales_order_shipment_grid</item> </item> </item> @@ -84,8 +80,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsProvider" xsi:type="string">sales_order_shipment_grid.sales_order_shipment_grid.sales_order_shipment_columns</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_shipment_grid.sales_order_shipment_grid.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -93,7 +87,7 @@ <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_shipment_grid.sales_order_shipment_grid.listing_top.listing_filters</item> <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">sales_order_shipment_grid.sales_order_shipment_grid.listing_top.bookmarks:current.columns.${ $.index }.visible</item> + <item name="visible" xsi:type="string">sales_order_shipment_grid.sales_order_shipment_grid.sales_order_shipment_columns.${ $.index }:visible</item> </item> </item> </item> @@ -115,7 +109,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">sales_order_shipment_grid.sales_order_shipment_grid.sales_order_shipment_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -146,7 +139,6 @@ <item name="namespace" xsi:type="string">current.paging</item> </item> <item name="selectProvider" xsi:type="string">sales_order_shipment_grid.sales_order_shipment_grid.sales_order_shipment_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -201,7 +193,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -366,13 +357,9 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> <item name="label" xsi:type="string" translate="true">Action</item> - <item name="data_type" xsi:type="string">actions</item> - <item name="filterable" xsi:type="boolean">false</item> - <item name="sortable" xsi:type="boolean">false</item> </item> </argument> </column> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml index 9fcd25c569f..fd70f752bf6 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml @@ -43,11 +43,7 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> - <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> - <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">sales_order_view_creditmemo_grid</item> </item> </item> @@ -87,8 +83,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsProvider" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.sales_order_creditmemo_columns</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -96,7 +90,7 @@ <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.listing_top.listing_filters</item> <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.listing_top.bookmarks:current.columns.${ $.index }.visible</item> + <item name="visible" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.sales_order_creditmemo_columns.${ $.index }:visible</item> </item> </item> </item> @@ -118,7 +112,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.sales_order_creditmemo_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -140,7 +133,6 @@ <item name="namespace" xsi:type="string">current.paging</item> </item> <item name="selectProvider" xsi:type="string">sales_order_view_creditmemo_grid.sales_order_view_creditmemo_grid.sales_order_creditmemo_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -195,7 +187,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -420,13 +411,9 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> <item name="label" xsi:type="string" translate="true">Action</item> - <item name="data_type" xsi:type="string">actions</item> - <item name="filterable" xsi:type="boolean">false</item> - <item name="sortable" xsi:type="boolean">false</item> </item> </argument> </column> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml index a252cc1b3ef..e32957516d2 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml @@ -43,11 +43,7 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> - <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> - <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">sales_order_view_invoice_grid</item> </item> </item> @@ -87,8 +83,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsProvider" xsi:type="string">sales_order_view_invoice_grid.sales_order_view_invoice_grid.sales_order_invoice_columns</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_view_invoice_grid.sales_order_view_invoice_grid.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -118,7 +112,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">sales_order_view_invoice_grid.sales_order_view_invoice_grid.sales_order_invoice_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -140,7 +133,6 @@ <item name="namespace" xsi:type="string">current.paging</item> </item> <item name="selectProvider" xsi:type="string">sales_order_view_invoice_grid.sales_order_view_invoice_grid.sales_order_invoice_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -195,7 +187,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -378,13 +369,9 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">increment_id</item> <item name="label" xsi:type="string" translate="true">Action</item> - <item name="data_type" xsi:type="string">actions</item> - <item name="filterable" xsi:type="boolean">false</item> - <item name="sortable" xsi:type="boolean">false</item> </item> </argument> </column> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml index 14662cf099e..76a5d32c3a0 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml @@ -43,11 +43,7 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> - <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> - <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">sales_order_view_shipment_grid</item> </item> </item> @@ -87,8 +83,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsProvider" xsi:type="string">sales_order_view_shipment_grid.sales_order_view_shipment_grid.sales_order_shipment_columns</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">sales_order_view_shipment_grid.sales_order_view_shipment_grid.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -118,7 +112,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">sales_order_view_shipment_grid.sales_order_view_shipment_grid.sales_order_shipment_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="actions" xsi:type="array"> <item name="pdfshipments_order" xsi:type="array"> </item> @@ -144,7 +137,6 @@ <item name="namespace" xsi:type="string">current.paging</item> </item> <item name="selectProvider" xsi:type="string">sales_order_view_shipment_grid.sales_order_view_shipment_grid.sales_order_shipment_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -199,7 +191,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -364,13 +355,9 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="draggable" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> <item name="label" xsi:type="string" translate="true">Action</item> - <item name="data_type" xsi:type="string">actions</item> - <item name="filterable" xsi:type="boolean">false</item> - <item name="sortable" xsi:type="boolean">false</item> </item> </argument> </column> diff --git a/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml b/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml index 5caf6ed693d..77c98fd98f0 100755 --- a/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml +++ b/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml @@ -12,7 +12,7 @@ <item name="template" xsi:type="string">templates/listing/default</item> <item name="save_parameters_in_session" xsi:type="string">1</item> <item name="client_root" xsi:type="string">mui/index/render</item> - <item name="js_config" xsi:type="array"> + <item name="config" xsi:type="array"> <item name="component" xsi:type="string">uiComponent</item> </item> </argument> @@ -20,17 +20,19 @@ <paging class="Magento\Ui\Component\Paging"> <argument name="data" xsi:type="array"> - <item name="template" xsi:type="string">templates/paging/default</item> - <item name="js_config" xsi:type="array"> + <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/paging</item> + <item name="displayArea" xsi:type="string">bottom</item> </item> </argument> </paging> <filters class="Magento\Ui\Component\Filters"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> + <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/filters/filters</item> + <item name="displayArea" xsi:type="string">dataGridFilters</item> + <item name="dataScope" xsi:type="string">filters</item> </item> </argument> </filters> @@ -51,7 +53,7 @@ </filterSelect> <filterRange class="Magento\Ui\Component\Filters\Type\Range"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> + <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/filters/group</item> </item> </argument> @@ -72,7 +74,7 @@ </filterDate> <container class="Magento\Ui\Component\Container"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> + <item name="config" xsi:type="array"> <item name="component" xsi:type="string">uiComponent</item> </item> <item name="template" xsi:type="string">templates/container/default</item> @@ -80,22 +82,22 @@ </container> <massaction class="Magento\Ui\Component\MassAction"> <argument name="data" xsi:type="array"> - <item name="template" xsi:type="string">templates/listingcontainer/massaction/default</item> - <item name="js_config" xsi:type="array"> + <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/massactions</item> + <item name="displayArea" xsi:type="string">bottom</item> </item> </argument> </massaction> <actions class="Magento\Ui\Component\Control\Action"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> + <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> </item> </argument> </actions> <action class="Magento\Ui\Component\Action"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> + <item name="config" xsi:type="array"> <item name="component" xsi:type="string">uiComponent</item> </item> </argument> @@ -103,7 +105,7 @@ <columns class="Magento\Ui\Component\Listing\Columns"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> + <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/listing</item> </item> </argument> @@ -111,13 +113,13 @@ <column class="Magento\Ui\Component\Listing\Columns\Column"> <argument name="data" xsi:type="array"> <item name="state_prefix" xsi:type="string">columns</item> - <item name="js_config" xsi:type="array"> + <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> + <item name="dataType" xsi:type="string">text</item> </item> </argument> </column> - <form class="Magento\Ui\Component\Form"> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> @@ -281,15 +283,20 @@ <!-- bookmark --> <bookmark class="Magento\Ui\Component\Bookmark"> <argument name="data" xsi:type="array"> + <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> + <item name="displayArea" xsi:type="string">dataGridActions</item> + <item name="storageConfig" xsi:type="array"> + <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> + <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> + </item> + </item> </argument> </bookmark> <exportButton class="Magento\Ui\Component\ExportButton"> <argument name="data" xsi:type="array"> - <item name="template" xsi:type="string">templates/export/button</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/export</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/export</item> <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="options" xsi:type="array"> <item name="cvs" xsi:type="array"> diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/actions.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/actions.js index d4ccf416ed4..0993629dcbc 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/actions.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/actions.js @@ -14,6 +14,8 @@ define([ return Column.extend({ defaults: { bodyTmpl: 'ui/grid/cells/actions', + sortable: false, + draggable: false, actions: [], rows: [], templates: { diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js index 6ae8354a0af..c57057a19b8 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js @@ -15,6 +15,7 @@ define([ bodyTmpl: 'ui/grid/cells/multiselect', controlVisibility: false, sortable: false, + draggable: false, menuVisible: false, excludeMode: false, allSelected: false, -- GitLab From c9c41320b9e97d9e93543498599bb1cfcc15ee16 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Mon, 7 Sep 2015 20:11:28 +0300 Subject: [PATCH 030/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Rename data provider config node --- .../Sales/view/adminhtml/ui_component/sales_order_grid.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml index b8ca3f8f1fb..c9cbb330884 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml @@ -34,7 +34,7 @@ </argument> </argument> <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> + <item name="js_config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item> </item> </argument> -- GitLab From 8cc27a5ef628adb68b4d479c16cc5efee9815de3 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Tue, 8 Sep 2015 14:47:36 +0300 Subject: [PATCH 031/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Add 'actions' and 'selections' columns definitions - Add component definition - Use dataType="text" by default --- .../ui_component/product_listing.xml | 22 ++++--------- .../ui_component/product_listing.xml | 1 - .../ui_component/cms_block_listing.xml | 21 ++++-------- .../ui_component/cms_page_listing.xml | 22 ++++--------- .../product_attributes_listing.xml | 11 +++---- .../ui_component/customer_listing.xml | 32 +++--------------- .../ui_component/customer_online_grid.xml | 20 ++--------- .../sales_order_creditmemo_grid.xml | 33 ++++--------------- .../ui_component/sales_order_grid.xml | 30 ++++------------- .../ui_component/sales_order_invoice_grid.xml | 28 ++++------------ .../sales_order_shipment_grid.xml | 26 ++++----------- .../sales_order_view_creditmemo_grid.xml | 33 ++++--------------- .../sales_order_view_invoice_grid.xml | 28 ++++------------ .../sales_order_view_shipment_grid.xml | 26 ++++----------- app/code/Magento/Ui/etc/ui_components.xsd | 27 +++++++++++++++ app/code/Magento/Ui/etc/ui_configuration.xsd | 5 +++ app/code/Magento/Ui/etc/ui_definition.xsd | 3 ++ .../view/base/ui_component/etc/definition.xml | 25 ++++++++++++++ 18 files changed, 134 insertions(+), 259 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml index 8279c622fb9..33bc5f9c1f7 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml @@ -46,7 +46,7 @@ </item> </argument> </bookmark> - <container name="columns_controls"> + <component name="columns_controls"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/columns</item> @@ -56,7 +56,7 @@ </item> </item> </argument> - </container> + </component> <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -202,19 +202,17 @@ </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> + <selectionsColumn name="ids"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">entity_id</item> <item name="sortOrder" xsi:type="number">0</item> </item> </argument> - </column> + </selectionsColumn> <column name="entity_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">ID</item> <item name="sortOrder" xsi:type="number">10</item> @@ -229,7 +227,6 @@ <item name="sortable" xsi:type="boolean">false</item> <item name="altField" xsi:type="string">name</item> <item name="has_preview" xsi:type="string">1</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Thumbnail</item> <item name="sortOrder" xsi:type="number">20</item> </item> @@ -240,7 +237,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="add_field" xsi:type="boolean">true</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Name</item> <item name="sortOrder" xsi:type="number">30</item> </item> @@ -274,7 +270,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">SKU</item> <item name="sortOrder" xsi:type="number">60</item> </item> @@ -285,7 +280,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="add_field" xsi:type="boolean">true</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Price</item> <item name="sortOrder" xsi:type="number">70</item> </item> @@ -329,15 +323,13 @@ </item> </argument> </column> - <column name="actions" class="Magento\Catalog\Ui\Component\Listing\Columns\ProductActions"> + <actionsColumn name="actions" class="Magento\Catalog\Ui\Component\Listing\Columns\ProductActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> + <item name="indexField" xsi:type="string">entity_id</item> <item name="sortOrder" xsi:type="number">200</item> - <item name="dataType" xsi:type="string">actions</item> - <item name="label" xsi:type="string" translate="true">Action</item> </item> </argument> - </column> + </actionsColumn> </columns> </listing> diff --git a/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml b/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml index 7d795608ee3..354885b27f4 100644 --- a/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml +++ b/app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_listing.xml @@ -12,7 +12,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="add_field" xsi:type="boolean">true</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Quantity</item> <item name="sortOrder" xsi:type="number">75</item> </item> diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml index 08e16f49546..dea2edc64ff 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml @@ -54,7 +54,7 @@ </item> </argument> </bookmark> - <container name="columns_controls"> + <component name="columns_controls"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsData" xsi:type="array"> @@ -64,7 +64,7 @@ <item name="displayArea" xsi:type="string">dataGridActions</item> </item> </argument> - </container> + </component> <filterSearch name="fulltext"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -186,7 +186,6 @@ <item name="indexField" xsi:type="string">block_id</item> <item name="clientConfig" xsi:type="array"> <item name="saveUrl" xsi:type="string">cms/block/inlineEdit</item> - <item name="validateUrl" xsi:type="string">/path/to</item> <item name="validateBeforeSave" xsi:type="boolean">false</item> </item> </item> @@ -207,19 +206,17 @@ </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> + <selectionsColumn name="ids"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">block_id</item> </item> </argument> - </column> + </selectionsColumn> <column name="block_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> - <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">ID</item> </item> @@ -235,7 +232,6 @@ </item> </item> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Title</item> </item> </argument> @@ -251,7 +247,6 @@ </item> </item> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Identifier</item> </item> </argument> @@ -261,7 +256,6 @@ <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="sortable" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Store View</item> </item> </argument> @@ -307,15 +301,12 @@ </item> </argument> </column> - <column name="actions" class="Magento\Cms\Ui\Component\Listing\Column\BlockActions"> + <actionsColumn name="actions" class="Magento\Cms\Ui\Component\Listing\Column\BlockActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">block_id</item> - <item name="label" xsi:type="string" translate="true">Action</item> </item> </argument> - </column> + </actionsColumn> </columns> </listing> diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml index adb855f7adf..30fc75eb0bd 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml @@ -54,7 +54,7 @@ </item> </argument> </bookmark> - <container name="columns_controls"> + <component name="columns_controls"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsData" xsi:type="array"> @@ -64,7 +64,7 @@ <item name="displayArea" xsi:type="string">dataGridActions</item> </item> </argument> - </container> + </component> <filterSearch name="fulltext"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -225,19 +225,17 @@ </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> + <selectionsColumn name="ids"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">page_id</item> </item> </argument> - </column> + </selectionsColumn> <column name="page_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> - <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">ID</item> </item> @@ -253,7 +251,6 @@ <item name="required-entry" xsi:type="boolean">true</item> </item> </item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Title</item> </item> </argument> @@ -268,7 +265,6 @@ <item name="validate-identifier" xsi:type="boolean">true</item> </item> </item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">URL Key</item> </item> </argument> @@ -290,7 +286,6 @@ <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="sortable" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Store View</item> </item> </argument> @@ -384,7 +379,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Meta Keywords</item> <item name="visible" xsi:type="boolean">false</item> </item> @@ -395,21 +389,17 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Meta Description</item> <item name="visible" xsi:type="boolean">false</item> </item> </argument> </column> - <column name="actions" class="Magento\Cms\Ui\Component\Listing\Column\PageActions"> + <actionsColumn name="actions" class="Magento\Cms\Ui\Component\Listing\Column\PageActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">page_id</item> - <item name="label" xsi:type="string" translate="true">Action</item> </item> </argument> - </column> + </actionsColumn> </columns> </listing> diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml index aab49bb9e10..da7279dde3e 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/product_attributes_listing.xml @@ -46,7 +46,7 @@ </item> </argument> </bookmark> - <container name="columns_controls"> + <component name="columns_controls"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/columns</item> @@ -56,7 +56,7 @@ </item> </item> </argument> - </container> + </component> <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -127,20 +127,18 @@ </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> + <selectionsColumn name="ids"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">attribute_id</item> <item name="sortOrder" xsi:type="number">0</item> </item> </argument> - </column> + </selectionsColumn> <column name="attribute_code"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">Attribute Code</item> </item> @@ -150,7 +148,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Attribute Label</item> </item> </argument> diff --git a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml index b384a9becc0..5a4b3dd0538 100644 --- a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml +++ b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml @@ -359,19 +359,17 @@ </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> + <selectionsColumn name="ids"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">entity_id</item> <item name="sortOrder" xsi:type="number">10</item> </item> </argument> - </column> + </selectionsColumn> <column name="entity_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">ID</item> <item name="sortOrder" xsi:type="number">20</item> @@ -381,7 +379,6 @@ <column name="name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Name</item> <item name="sortOrder" xsi:type="number">30</item> </item> @@ -390,7 +387,6 @@ <column name="email"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> <item name="sortOrder" xsi:type="number">40</item> </item> @@ -399,7 +395,6 @@ <column name="group_id" class="Magento\Customer\Ui\Component\Listing\Column\AttributeColumn"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Group</item> <item name="sortOrder" xsi:type="number">50</item> </item> @@ -408,7 +403,6 @@ <column name="billing_telephone"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Phone</item> <item name="sortOrder" xsi:type="number">60</item> </item> @@ -417,7 +411,6 @@ <column name="billing_postcode"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">ZIP</item> <item name="sortOrder" xsi:type="number">70</item> </item> @@ -426,7 +419,6 @@ <column name="billing_country_id" class="Magento\Customer\Ui\Component\Listing\Column\AttributeColumn"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Country</item> <item name="sortOrder" xsi:type="number">80</item> </item> @@ -435,7 +427,6 @@ <column name="billing_region"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">State/Province</item> <item name="sortOrder" xsi:type="number">90</item> </item> @@ -455,7 +446,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Web Site</item> <item name="sortOrder" xsi:type="number">110</item> </item> @@ -476,7 +466,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Confirmed email</item> <item name="sortOrder" xsi:type="number">130</item> </item> @@ -486,7 +475,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Account Created in</item> <item name="sortOrder" xsi:type="number">140</item> </item> @@ -496,7 +484,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> <item name="sortOrder" xsi:type="number">150</item> </item> @@ -506,7 +493,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> <item name="sortOrder" xsi:type="number">160</item> </item> @@ -527,7 +513,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Tax VAT Number</item> <item name="sortOrder" xsi:type="number">180</item> </item> @@ -537,7 +522,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Gender</item> <item name="sortOrder" xsi:type="number">190</item> </item> @@ -547,7 +531,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Street Address</item> <item name="sortOrder" xsi:type="number">200</item> </item> @@ -557,7 +540,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">City</item> <item name="sortOrder" xsi:type="number">210</item> </item> @@ -567,7 +549,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Fax</item> <item name="sortOrder" xsi:type="number">220</item> </item> @@ -577,7 +558,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">VAT Number</item> <item name="sortOrder" xsi:type="number">230</item> </item> @@ -587,21 +567,17 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Company</item> <item name="sortOrder" xsi:type="number">240</item> </item> </argument> </column> - <column name="actions" class="Magento\Customer\Ui\Component\Listing\Column\Actions"> + <actionsColumn name="actions" class="Magento\Customer\Ui\Component\Listing\Column\Actions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="label" xsi:type="string" translate="true">Action</item> </item> </argument> - </column> + </actionsColumn> </columns> </listing> diff --git a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml index 23e313066ac..e98e11b77e9 100644 --- a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml +++ b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml @@ -46,7 +46,7 @@ </item> </argument> </bookmark> - <container name="columns_controls"> + <component name="columns_controls"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsData" xsi:type="array"> @@ -56,7 +56,7 @@ <item name="displayArea" xsi:type="string">dataGridActions</item> </item> </argument> - </container> + </component> <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -116,14 +116,6 @@ <item name="namespace" xsi:type="string">current</item> </item> <item name="childDefaults" xsi:type="array"> - <item name="fieldAction" xsi:type="array"> - <item name="provider" xsi:type="string">customer_online_grid.customer_online_grid.customer_online_columns.actions</item> - <item name="target" xsi:type="string">applyAction</item> - <item name="params" xsi:type="array"> - <item name="0" xsi:type="string">view</item> - <item name="1" xsi:type="string">${ $.$data.rowIndex }</item> - </item> - </item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">customer_online_grid.customer_online_grid.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -136,7 +128,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> - <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">ID</item> </item> @@ -146,7 +137,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">First Name</item> </item> </argument> @@ -155,7 +145,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Last Name</item> </item> </argument> @@ -164,7 +153,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> @@ -172,7 +160,6 @@ <column name="remote_addr"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">IP Address</item> </item> </argument> @@ -194,7 +181,7 @@ </item> </argument> </column> - <column name="visitor_type" class="Magento\Customer\Ui\Component\Listing\Column\Online\Type"> + <column name="visitor_type"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Customer\Ui\Component\Listing\Column\Online\Type\Options</item> <item name="config" xsi:type="array"> @@ -208,7 +195,6 @@ <column name="last_url"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Last URL</item> </item> </argument> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml index 7e95b7ea028..54c97e065c4 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml @@ -46,7 +46,7 @@ </item> </argument> </bookmark> - <container name="columns_controls"> + <component name="columns_controls"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsData" xsi:type="array"> @@ -56,7 +56,7 @@ <item name="displayArea" xsi:type="string">dataGridActions</item> </item> </argument> - </container> + </component> <exportButton name="export_button"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -180,19 +180,17 @@ </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> + <selectionsColumn name="ids"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> - </column> + </selectionsColumn> <column name="increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Credit Memo</item> </item> </argument> @@ -211,7 +209,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Order</item> </item> </argument> @@ -230,7 +227,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> </argument> @@ -250,12 +246,11 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Refunded</item> </item> </argument> </column> - <column name="order_status" class="Magento\Sales\Ui\Component\Listing\Column\Status"> + <column name="order_status"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Sales\Ui\Component\Listing\Column\Status\Options</item> <item name="config" xsi:type="array"> @@ -273,7 +268,6 @@ <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="sortable" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Purchased From</item> </item> </argument> @@ -284,7 +278,6 @@ <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> </item> </argument> @@ -295,7 +288,6 @@ <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> </item> </argument> @@ -305,7 +297,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> @@ -315,7 +306,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> @@ -349,7 +339,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> </item> </argument> @@ -359,7 +348,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> </item> </argument> @@ -369,7 +357,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping & Handling</item> </item> </argument> @@ -379,7 +366,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Adjustment Refund</item> </item> </argument> @@ -389,7 +375,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Adjustment Fee</item> </item> </argument> @@ -399,20 +384,16 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Grand Total</item> </item> </argument> </column> - <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderCreditmemoActions"> + <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderCreditmemoActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="label" xsi:type="string" translate="true">Action</item> </item> </argument> - </column> + </actionsColumn> </columns> </listing> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml index c9cbb330884..dbdd8594cd5 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml @@ -54,7 +54,7 @@ </item> </argument> </bookmark> - <container name="columns_controls"> + <component name="columns_controls"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsData" xsi:type="array"> @@ -64,7 +64,7 @@ <item name="displayArea" xsi:type="string">dataGridActions</item> </item> </argument> - </container> + </component> <exportButton name="export_button"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -251,19 +251,17 @@ </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> + <selectionsColumn name="ids"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> - </column> + </selectionsColumn> <column name="increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">desc</item> <item name="label" xsi:type="string" translate="true">ID</item> </item> @@ -274,7 +272,6 @@ <item name="config" xsi:type="array"> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="sortable" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Purchase Point</item> </item> </argument> @@ -293,7 +290,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> </argument> @@ -302,7 +298,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Ship-to Name</item> </item> </argument> @@ -311,7 +306,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Grand Total (Base)</item> </item> </argument> @@ -320,7 +314,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Grand Total (Purchased)</item> </item> </argument> @@ -342,7 +335,6 @@ <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> </item> </argument> @@ -353,7 +345,6 @@ <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> </item> </argument> @@ -363,7 +354,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> </item> </argument> @@ -373,7 +363,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Email</item> </item> </argument> @@ -395,7 +384,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> </item> </argument> @@ -405,7 +393,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping and Handling</item> </item> </argument> @@ -415,7 +402,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> @@ -437,20 +423,16 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Total Refunded</item> </item> </argument> </column> - <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderActions"> + <actionsColumn name="actions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="label" xsi:type="string" translate="true">Action</item> </item> </argument> - </column> + </actionsColumn> </columns> </listing> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml index 2ec25de2dd6..11cedb7de24 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml @@ -46,7 +46,7 @@ </item> </argument> </bookmark> - <container name="columns_controls"> + <component name="columns_controls"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsData" xsi:type="array"> @@ -56,7 +56,7 @@ <item name="displayArea" xsi:type="string">dataGridActions</item> </item> </argument> - </container> + </component> <exportButton name="export_button"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -180,19 +180,17 @@ </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> + <selectionsColumn name="ids"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> - </column> + </selectionsColumn> <column name="increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">Invoice</item> </item> @@ -212,7 +210,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Order #</item> </item> </argument> @@ -230,7 +227,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> </argument> @@ -250,7 +246,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Amount</item> </item> </argument> @@ -261,7 +256,6 @@ <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="sortable" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Purchased From</item> </item> </argument> @@ -272,7 +266,6 @@ <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> </item> </argument> @@ -283,7 +276,6 @@ <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> </item> </argument> @@ -293,7 +285,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> @@ -303,7 +294,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> @@ -337,7 +327,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> </item> </argument> @@ -347,7 +336,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> </item> </argument> @@ -357,20 +345,16 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping and Handling</item> </item> </argument> </column> - <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderInvoiceActions"> + <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderInvoiceActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">increment_id</item> - <item name="label" xsi:type="string" translate="true">Action</item> </item> </argument> - </column> + </actionsColumn> </columns> </listing> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml index 9f511674271..5a6d5b51736 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml @@ -46,7 +46,7 @@ </item> </argument> </bookmark> - <container name="columns_controls"> + <component name="columns_controls"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsData" xsi:type="array"> @@ -56,7 +56,7 @@ <item name="displayArea" xsi:type="string">dataGridActions</item> </item> </argument> - </container> + </component> <exportButton name="export_button"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -189,19 +189,17 @@ </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> + <selectionsColumn name="ids"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> - </column> + </selectionsColumn> <column name="increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">Shipment</item> </item> @@ -221,7 +219,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Order</item> </item> </argument> @@ -240,7 +237,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Ship-to Name</item> </item> </argument> @@ -249,7 +245,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Total Quantity</item> </item> </argument> @@ -272,7 +267,6 @@ <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="sortable" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Purchased From</item> </item> </argument> @@ -282,7 +276,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> @@ -292,7 +285,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> @@ -315,7 +307,6 @@ <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> </item> </argument> @@ -326,7 +317,6 @@ <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> </item> </argument> @@ -348,20 +338,16 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> </item> </argument> </column> - <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderShipmentActions"> + <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderShipmentActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="label" xsi:type="string" translate="true">Action</item> </item> </argument> - </column> + </actionsColumn> </columns> </listing> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml index fd70f752bf6..c7d137a1501 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml @@ -49,7 +49,7 @@ </item> </argument> </bookmark> - <container name="columns_controls"> + <component name="columns_controls"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsData" xsi:type="array"> @@ -59,7 +59,7 @@ <item name="displayArea" xsi:type="string">dataGridActions</item> </item> </argument> - </container> + </component> <exportButton name="export_button"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -183,19 +183,17 @@ </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> + <selectionsColumn name="ids"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> - </column> + </selectionsColumn> <column name="increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Credit Memo</item> </item> </argument> @@ -214,7 +212,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Order</item> </item> </argument> @@ -233,7 +230,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> </argument> @@ -253,12 +249,11 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Refunded</item> </item> </argument> </column> - <column name="order_status" class="Magento\Sales\Ui\Component\Listing\Column\Status"> + <column name="order_status"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Sales\Ui\Component\Listing\Column\Status\Options</item> <item name="config" xsi:type="array"> @@ -276,7 +271,6 @@ <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="sortable" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Purchased From</item> </item> </argument> @@ -287,7 +281,6 @@ <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> </item> </argument> @@ -298,7 +291,6 @@ <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> </item> </argument> @@ -308,7 +300,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> @@ -318,7 +309,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> @@ -352,7 +342,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> </item> </argument> @@ -362,7 +351,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> </item> </argument> @@ -372,7 +360,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping & Handling</item> </item> </argument> @@ -382,7 +369,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Adjustment Refund</item> </item> </argument> @@ -392,7 +378,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Adjustment Fee</item> </item> </argument> @@ -402,20 +387,16 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Grand Total</item> </item> </argument> </column> - <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderCreditmemoActions"> + <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderCreditmemoActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="label" xsi:type="string" translate="true">Action</item> </item> </argument> - </column> + </actionsColumn> </columns> </listing> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml index e32957516d2..2e4ac95b8ee 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml @@ -49,7 +49,7 @@ </item> </argument> </bookmark> - <container name="columns_controls"> + <component name="columns_controls"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsData" xsi:type="array"> @@ -59,7 +59,7 @@ <item name="displayArea" xsi:type="string">dataGridActions</item> </item> </argument> - </container> + </component> <exportButton name="export_button"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -183,19 +183,17 @@ </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> + <selectionsColumn name="ids"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> - </column> + </selectionsColumn> <column name="increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">Invoice</item> </item> @@ -215,7 +213,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Order #</item> </item> </argument> @@ -233,7 +230,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Bill-to Name</item> </item> </argument> @@ -253,7 +249,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Amount</item> </item> </argument> @@ -264,7 +259,6 @@ <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="sortable" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Purchased From</item> </item> </argument> @@ -275,7 +269,6 @@ <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> </item> </argument> @@ -286,7 +279,6 @@ <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> </item> </argument> @@ -296,7 +288,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> @@ -306,7 +297,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> @@ -340,7 +330,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> </item> </argument> @@ -350,7 +339,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Subtotal</item> </item> </argument> @@ -360,20 +348,16 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping and Handling</item> </item> </argument> </column> - <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderInvoiceActions"> + <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderInvoiceActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">increment_id</item> - <item name="label" xsi:type="string" translate="true">Action</item> </item> </argument> - </column> + </actionsColumn> </columns> </listing> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml index 76a5d32c3a0..f9b77990788 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml @@ -49,7 +49,7 @@ </item> </argument> </bookmark> - <container name="columns_controls"> + <component name="columns_controls"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsData" xsi:type="array"> @@ -59,7 +59,7 @@ <item name="displayArea" xsi:type="string">dataGridActions</item> </item> </argument> - </container> + </component> <exportButton name="export_button"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -187,19 +187,17 @@ </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> + <selectionsColumn name="ids"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> - </column> + </selectionsColumn> <column name="increment_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">Shipment</item> </item> @@ -219,7 +217,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Order</item> </item> </argument> @@ -238,7 +235,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Ship-to Name</item> </item> </argument> @@ -247,7 +243,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">textRange</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Total Quantity</item> </item> </argument> @@ -270,7 +265,6 @@ <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> <item name="sortable" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Purchased From</item> </item> </argument> @@ -280,7 +274,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Customer Name</item> </item> </argument> @@ -290,7 +283,6 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> </item> </argument> @@ -313,7 +305,6 @@ <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Billing Address</item> </item> </argument> @@ -324,7 +315,6 @@ <item name="filter" xsi:type="string">text</item> <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> </item> </argument> @@ -346,20 +336,16 @@ <item name="config" xsi:type="array"> <item name="filter" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Shipping Information</item> </item> </argument> </column> - <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderShipmentActions"> + <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderShipmentActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> - <item name="dataType" xsi:type="string">actions</item> <item name="indexField" xsi:type="string">entity_id</item> - <item name="label" xsi:type="string" translate="true">Action</item> </item> </argument> - </column> + </actionsColumn> </columns> </listing> diff --git a/app/code/Magento/Ui/etc/ui_components.xsd b/app/code/Magento/Ui/etc/ui_components.xsd index 79c3c684786..0dce99e31b6 100644 --- a/app/code/Magento/Ui/etc/ui_components.xsd +++ b/app/code/Magento/Ui/etc/ui_components.xsd @@ -114,6 +114,33 @@ <xs:extension base="input"/> </xs:complexContent> </xs:complexType> + <xs:complexType name="component"> + <xs:complexContent> + <xs:extension base="ui_element"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="configurable"/> + </xs:choice> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="actionsColumn"> + <xs:complexContent> + <xs:extension base="ui_element"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="configurable"/> + </xs:choice> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="selectionsColumn"> + <xs:complexContent> + <xs:extension base="ui_element"> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="configurable"/> + </xs:choice> + </xs:extension> + </xs:complexContent> + </xs:complexType> <xs:complexType name="container"> <xs:complexContent> <xs:extension base="ui_element"> diff --git a/app/code/Magento/Ui/etc/ui_configuration.xsd b/app/code/Magento/Ui/etc/ui_configuration.xsd index 2cf581c0e9b..9cdf1056494 100644 --- a/app/code/Magento/Ui/etc/ui_configuration.xsd +++ b/app/code/Magento/Ui/etc/ui_configuration.xsd @@ -34,6 +34,9 @@ <xs:element type="argumentType" name="argument"/> <xs:element type="bookmark" name="bookmark"/> <xs:element name="filterSearch" type="filterSearch" /> + <xs:element name="component" type="component" /> + <xs:element name="actionsColumn" type="actionsColumn" /> + <xs:element name="selectionsColumn" type="selectionsColumn" /> <xs:element type="exportButton" name="exportButton"/> </xs:choice> </xs:extension> @@ -80,6 +83,8 @@ <xs:extension base="columns"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="column" type="column" /> + <xs:element name="actionsColumn" type="actionsColumn" /> + <xs:element name="selectionsColumn" type="selectionsColumn" /> </xs:choice> </xs:extension> </xs:complexContent> diff --git a/app/code/Magento/Ui/etc/ui_definition.xsd b/app/code/Magento/Ui/etc/ui_definition.xsd index 75b710a0e8b..90a1f245af7 100644 --- a/app/code/Magento/Ui/etc/ui_definition.xsd +++ b/app/code/Magento/Ui/etc/ui_definition.xsd @@ -53,6 +53,9 @@ <xs:element type="bookmark" name="bookmark"/> <xs:element type="exportButton" name="exportButton"/> <xs:element type="action" name="action"/> + <xs:element name="component" type="component" /> + <xs:element name="actionsColumn" type="actionsColumn" /> + <xs:element name="selectionsColumn" type="selectionsColumn" /> </xs:all> </xs:complexType> <!-- Custom configuration --> diff --git a/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml b/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml index 77c98fd98f0..88c55fb5aa9 100755 --- a/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml +++ b/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml @@ -119,6 +119,31 @@ </item> </argument> </column> + <actionsColumn class="Magento\Ui\Component\Listing\Columns\Column"> + <argument name="data" xsi:type="array"> + <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/actions</item> + <item name="dataType" xsi:type="string">actions</item> + <item name="label" xsi:type="string" translate="true">Action</item> + </item> + </argument> + </actionsColumn> + <selectionsColumn class="Magento\Ui\Component\MassAction\Columns\Column"> + <argument name="data" xsi:type="array"> + <item name="state_prefix" xsi:type="string">columns</item> + <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> + </item> + </argument> + </selectionsColumn> + + <component class="Magento\Ui\Component\Container"> + <argument name="data" xsi:type="array"> + <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">uiComponent</item> + </item> + </argument> + </component> <form class="Magento\Ui\Component\Form"> <argument name="data" xsi:type="array"> -- GitLab From 48c34c8f87eaa844a7519275ed3807642f7a782a Mon Sep 17 00:00:00 2001 From: Oleksandr Karpenko <okarpenko@ebay.com> Date: Tue, 8 Sep 2015 14:59:54 +0300 Subject: [PATCH 032/420] MAGETWO-38562: PHP - Customer - Inline editing --- .../Customer/Controller/Adminhtml/Index/InlineEdit.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Customer/Controller/Adminhtml/Index/InlineEdit.php b/app/code/Magento/Customer/Controller/Adminhtml/Index/InlineEdit.php index 2ac1295ba00..f97c48b0ebc 100644 --- a/app/code/Magento/Customer/Controller/Adminhtml/Index/InlineEdit.php +++ b/app/code/Magento/Customer/Controller/Adminhtml/Index/InlineEdit.php @@ -10,6 +10,9 @@ use Magento\Customer\Ui\Component\Listing\AttributeRepository; use Magento\Customer\Api\Data\CustomerInterface; use Magento\Customer\Api\CustomerRepositoryInterface; +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ class InlineEdit extends \Magento\Backend\App\Action { /** @var CustomerInterface */ @@ -54,7 +57,6 @@ class InlineEdit extends \Magento\Backend\App\Action parent::__construct($context); } - /** * @return \Magento\Framework\Controller\Result\Json */ -- GitLab From e55a041d0e5b8efeba437ceb430d2ea2289b9de0 Mon Sep 17 00:00:00 2001 From: Maxim Medinskiy <mmedinskiy@ebay.com> Date: Tue, 8 Sep 2015 15:54:59 +0300 Subject: [PATCH 033/420] MAGETWO-35926: PHP - CMS - Apply Multi Select in Filters --- .../ui_component/customer_listing.xml | 174 ++++++++++++++++-- 1 file changed, 161 insertions(+), 13 deletions(-) diff --git a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml index 5a4b3dd0538..0f2cb4d1a53 100644 --- a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml +++ b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml @@ -48,7 +48,11 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> + <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> + <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> + <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">customer_listing</item> </item> </item> @@ -75,6 +79,8 @@ <filterSearch name="fulltext"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/search/search</item> + <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="provider" xsi:type="string">customer_listing.customer_listing_data_source</item> <item name="chipsProvider" xsi:type="string">customer_listing.customer_listing.listing_top.listing_filters_chips</item> <item name="storageConfig" xsi:type="array"> @@ -87,7 +93,8 @@ <filters name="listing_filters" class="Magento\Customer\Ui\Component\Listing\Filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="columnsProvider" xsi:type="string">customer_listing.customer_listing.customer_columns</item> + <item name="displayArea" xsi:type="string">dataGridFilters</item> + <item name="dataScope" xsi:type="string">filters</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">customer_listing.customer_listing.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -95,7 +102,7 @@ <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">customer_listing.customer_listing.listing_top.listing_filters</item> <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">customer_listing.customer_listing.customer_columns.${ $.index }:visible</item> + <item name="visible" xsi:type="string">customer_listing.customer_listing.listing_top.bookmarks:current.columns.${ $.index }.visible</item> </item> </item> </item> @@ -300,6 +307,18 @@ </argument> </argument> </action> + <action name="edit"> + <argument name="data" xsi:type="array"> + <item name="config" xsi:type="array"> + <item name="type" xsi:type="string">edit</item> + <item name="label" xsi:type="string" translate="true">Edit</item> + <item name="callback" xsi:type="array"> + <item name="provider" xsi:type="string">customer_listing.customer_listing.customer_columns_editor</item> + <item name="target" xsi:type="string">editSelected</item> + </item> + </item> + </argument> + </action> </massaction> <paging name="listing_paging"> <argument name="data" xsi:type="array"> @@ -309,6 +328,7 @@ <item name="namespace" xsi:type="string">current.paging</item> </item> <item name="selectProvider" xsi:type="string">customer_listing.customer_listing.customer_columns.ids</item> + <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -342,15 +362,26 @@ <item name="provider" xsi:type="string">customer_listing.customer_listing.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current</item> </item> + <item name="editorConfig" xsi:type="array"> + <item name="selectProvider" xsi:type="string">customer_listing.customer_listing.customer_columns.ids</item> + <item name="enabled" xsi:type="boolean">true</item> + <item name="indexField" xsi:type="string">entity_id</item> + <item name="clientConfig" xsi:type="array"> + <item name="saveUrl" xsi:type="string">customer/index/inlineEdit</item> + <item name="validateUrl" xsi:type="string">/path/to</item> + <item name="validateBeforeSave" xsi:type="boolean">false</item> + </item> + </item> <item name="childDefaults" xsi:type="array"> <item name="fieldAction" xsi:type="array"> - <item name="provider" xsi:type="string">customer_listing.customer_listing.customer_columns.actions</item> - <item name="target" xsi:type="string">applyAction</item> + <item name="provider" xsi:type="string">customer_listing.customer_listing.customer_columns_editor</item> + <item name="target" xsi:type="string">startEdit</item> <item name="params" xsi:type="array"> - <item name="0" xsi:type="string">edit</item> - <item name="1" xsi:type="string">${ $.$data.rowIndex }</item> + <item name="0" xsi:type="string">${ $.$data.rowIndex }</item> + <item name="1" xsi:type="boolean">true</item> </item> </item> + <item name="controlVisibility" xsi:type="boolean">true</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">customer_listing.customer_listing.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -363,6 +394,7 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="indexField" xsi:type="string">entity_id</item> + <item name="controlVisibility" xsi:type="boolean">false</item> <item name="sortOrder" xsi:type="number">10</item> </item> </argument> @@ -371,6 +403,7 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="sorting" xsi:type="string">asc</item> + <item name="sortable" xsi:type="string">true</item> <item name="label" xsi:type="string" translate="true">ID</item> <item name="sortOrder" xsi:type="number">20</item> </item> @@ -379,6 +412,8 @@ <column name="name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="sortable" xsi:type="string">true</item> + <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Name</item> <item name="sortOrder" xsi:type="number">30</item> </item> @@ -387,14 +422,25 @@ <column name="email"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="editor" xsi:type="array"> + <item name="editorType" xsi:type="string">text</item> + </item> + <item name="sortable" xsi:type="string">true</item> + <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> <item name="sortOrder" xsi:type="number">40</item> </item> </argument> </column> - <column name="group_id" class="Magento\Customer\Ui\Component\Listing\Column\AttributeColumn"> + <column name="group_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="editor" xsi:type="array"> + <item name="editorType" xsi:type="string">select</item> + </item> + <item name="sortable" xsi:type="string">true</item> + <item name="dataType" xsi:type="string">select</item> + <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Group</item> <item name="sortOrder" xsi:type="number">50</item> </item> @@ -403,6 +449,9 @@ <column name="billing_telephone"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="editor" xsi:type="string">text</item> + <item name="sortable" xsi:type="string">true</item> + <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Phone</item> <item name="sortOrder" xsi:type="number">60</item> </item> @@ -411,14 +460,19 @@ <column name="billing_postcode"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="editor" xsi:type="string">text</item> + <item name="sortable" xsi:type="string">true</item> + <item name="dataType" xsi:type="string">text</item> + <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">ZIP</item> <item name="sortOrder" xsi:type="number">70</item> </item> </argument> </column> - <column name="billing_country_id" class="Magento\Customer\Ui\Component\Listing\Column\AttributeColumn"> + <column name="billing_country_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Country</item> <item name="sortOrder" xsi:type="number">80</item> </item> @@ -427,6 +481,8 @@ <column name="billing_region"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="sortable" xsi:type="string">true</item> + <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">State/Province</item> <item name="sortOrder" xsi:type="number">90</item> </item> @@ -435,16 +491,21 @@ <column name="created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> + <item name="sortable" xsi:type="string">true</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Customer Since</item> <item name="sortOrder" xsi:type="number">100</item> </item> </argument> </column> - <column name="website_id" class="Magento\Customer\Ui\Component\Listing\Column\AttributeColumn"> + <column name="website_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="editor" xsi:type="array"> + <item name="editorType" xsi:type="string">select</item> + </item> + <item name="dataType" xsi:type="string">select</item> + <item name="align" xsi:type="string">left</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="label" xsi:type="string" translate="true">Web Site</item> <item name="sortOrder" xsi:type="number">110</item> @@ -454,7 +515,7 @@ <column name="last_visit_at" > <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> + <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Last Logged In</item> @@ -465,6 +526,7 @@ <column name="confirmation"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="label" xsi:type="string" translate="true">Confirmed email</item> <item name="sortOrder" xsi:type="number">130</item> @@ -474,6 +536,7 @@ <column name="created_in"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="label" xsi:type="string" translate="true">Account Created in</item> <item name="sortOrder" xsi:type="number">140</item> @@ -493,6 +556,8 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> + <item name="dataType" xsi:type="string">text</item> + <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> <item name="sortOrder" xsi:type="number">160</item> </item> @@ -500,10 +565,15 @@ </column> <column name="dob"> <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> + <item name="js_config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> + </item> + <item name="config" xsi:type="array"> + <item name="editor" xsi:type="string">date</item> + <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">date</item> + <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Date Of Birth</item> <item name="sortOrder" xsi:type="number">170</item> </item> @@ -511,17 +581,30 @@ </column> <column name="taxvat"> <argument name="data" xsi:type="array"> + <item name="js_config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> + </item> <item name="config" xsi:type="array"> + <item name="editor" xsi:type="string">text</item> + <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> + <item name="dataType" xsi:type="string">text</item> + <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Tax VAT Number</item> <item name="sortOrder" xsi:type="number">180</item> </item> </argument> </column> - <column name="gender" class="Magento\Customer\Ui\Component\Listing\Column\AttributeColumn"> + <column name="gender"> <argument name="data" xsi:type="array"> + <item name="js_config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> + </item> <item name="config" xsi:type="array"> + <item name="editor" xsi:type="string">select</item> <item name="visible" xsi:type="boolean">false</item> + <item name="dataType" xsi:type="string">select</item> + <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Gender</item> <item name="sortOrder" xsi:type="number">190</item> </item> @@ -529,8 +612,13 @@ </column> <column name="billing_street"> <argument name="data" xsi:type="array"> + <item name="js_config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> + </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> + <item name="dataType" xsi:type="string">text</item> + <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Street Address</item> <item name="sortOrder" xsi:type="number">200</item> </item> @@ -538,8 +626,15 @@ </column> <column name="billing_city"> <argument name="data" xsi:type="array"> + <item name="js_config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> + </item> <item name="config" xsi:type="array"> + <item name="editor" xsi:type="string">text</item> + <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> + <item name="dataType" xsi:type="string">text</item> + <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">City</item> <item name="sortOrder" xsi:type="number">210</item> </item> @@ -547,8 +642,15 @@ </column> <column name="billing_fax"> <argument name="data" xsi:type="array"> + <item name="js_config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> + </item> <item name="config" xsi:type="array"> + <item name="editor" xsi:type="string">text</item> + <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> + <item name="dataType" xsi:type="string">text</item> + <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Fax</item> <item name="sortOrder" xsi:type="number">220</item> </item> @@ -556,8 +658,15 @@ </column> <column name="billing_vat_id"> <argument name="data" xsi:type="array"> + <item name="js_config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> + </item> <item name="config" xsi:type="array"> + <item name="editor" xsi:type="string">text</item> + <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> + <item name="dataType" xsi:type="string">text</item> + <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">VAT Number</item> <item name="sortOrder" xsi:type="number">230</item> </item> @@ -565,13 +674,52 @@ </column> <column name="billing_company"> <argument name="data" xsi:type="array"> + <item name="js_config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> + </item> <item name="config" xsi:type="array"> + <item name="editor" xsi:type="string">text</item> + <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> + <item name="dataType" xsi:type="string">text</item> + <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Company</item> <item name="sortOrder" xsi:type="number">240</item> </item> </argument> </column> + <column name="billing_firstname"> + <argument name="data" xsi:type="array"> + <item name="js_config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> + </item> + <item name="config" xsi:type="array"> + <item name="editor" xsi:type="string">text</item> + <item name="sortable" xsi:type="string">true</item> + <item name="visible" xsi:type="boolean">false</item> + <item name="dataType" xsi:type="string">text</item> + <item name="align" xsi:type="string">left</item> + <item name="label" xsi:type="string" translate="true">Billing Firstname</item> + <item name="sortOrder" xsi:type="number">250</item> + </item> + </argument> + </column> + <column name="billing_lastname"> + <argument name="data" xsi:type="array"> + <item name="js_config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> + </item> + <item name="config" xsi:type="array"> + <item name="editor" xsi:type="string">text</item> + <item name="sortable" xsi:type="string">true</item> + <item name="visible" xsi:type="boolean">false</item> + <item name="dataType" xsi:type="string">text</item> + <item name="align" xsi:type="string">left</item> + <item name="label" xsi:type="string" translate="true">Billing Lastname</item> + <item name="sortOrder" xsi:type="number">260</item> + </item> + </argument> + </column> <actionsColumn name="actions" class="Magento\Customer\Ui\Component\Listing\Column\Actions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> -- GitLab From dc3a536dc2dc1bbbb6034192d26808939a697fb4 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Tue, 8 Sep 2015 17:02:28 +0300 Subject: [PATCH 034/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Apply filters on customer grid - Add class to actions column --- .../ui_component/cms_page_listing.xml | 1 - .../ui_component/customer_listing.xml | 267 ++---------------- .../ui_component/sales_order_grid.xml | 2 +- 3 files changed, 26 insertions(+), 244 deletions(-) diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml index 30fc75eb0bd..24c3b2bd936 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml @@ -204,7 +204,6 @@ <item name="indexField" xsi:type="string">page_id</item> <item name="clientConfig" xsi:type="array"> <item name="saveUrl" xsi:type="string">cms/page/inlineEdit</item> - <item name="validateUrl" xsi:type="string">/path/to</item> <item name="validateBeforeSave" xsi:type="boolean">false</item> </item> </item> diff --git a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml index 0f2cb4d1a53..c9282b6cead 100644 --- a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml +++ b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml @@ -48,17 +48,13 @@ <bookmark name="bookmarks"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/controls/bookmarks/bookmarks</item> - <item name="displayArea" xsi:type="string">dataGridActions</item> <item name="storageConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="url" path="mui/bookmark/save"/> - <item name="deleteUrl" xsi:type="url" path="mui/bookmark/delete"/> <item name="namespace" xsi:type="string">customer_listing</item> </item> </item> </argument> </bookmark> - <container name="columns_controls"> + <component name="columns_controls"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsData" xsi:type="array"> @@ -68,7 +64,7 @@ <item name="displayArea" xsi:type="string">dataGridActions</item> </item> </argument> - </container> + </component> <exportButton name="export_button"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -79,8 +75,6 @@ <filterSearch name="fulltext"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/search/search</item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="provider" xsi:type="string">customer_listing.customer_listing_data_source</item> <item name="chipsProvider" xsi:type="string">customer_listing.customer_listing.listing_top.listing_filters_chips</item> <item name="storageConfig" xsi:type="array"> @@ -90,11 +84,10 @@ </item> </argument> </filterSearch> - <filters name="listing_filters" class="Magento\Customer\Ui\Component\Listing\Filters"> + <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> + <item name="columnsProvider" xsi:type="string">customer_listing.customer_listing.customer_columns</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">customer_listing.customer_listing.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> @@ -102,154 +95,17 @@ <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">customer_listing.customer_listing.listing_top.listing_filters</item> <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">customer_listing.customer_listing.listing_top.bookmarks:current.columns.${ $.index }.visible</item> + <item name="visible" xsi:type="string">customer_listing.customer_listing.customer_columns.${ $.index }:visible</item> </item> </item> </item> </argument> - <filterRange name="entity_id"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">entity_id</item> - <item name="label" xsi:type="string" translate="true">ID</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">customer_listing.customer_listing.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">from</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">to</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> - <filterInput name="name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">name</item> - <item name="label" xsi:type="string" translate="true">Name</item> - </item> - </argument> - </filterInput> - <filterInput name="email"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">email</item> - <item name="label" xsi:type="string" translate="true">Email</item> - </item> - </argument> - </filterInput> - <filterSelect name="group_id"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Customer\Model\Config\Source\Group\Multiselect</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">group_id</item> - <item name="label" xsi:type="string" translate="true">Group</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - </item> - </argument> - </filterSelect> - <filterInput name="billing_telephone"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_telephone</item> - <item name="label" xsi:type="string" translate="true">Phone</item> - </item> - </argument> - </filterInput> - <filterInput name="billing_postcode"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_postcode</item> - <item name="label" xsi:type="string" translate="true">ZIP</item> - </item> - </argument> - </filterInput> - <filterSelect name="billing_country_id"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Directory\Model\Resource\Country\Collection</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_country_id</item> - <item name="label" xsi:type="string" translate="true">Country</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - </item> - </argument> - </filterSelect> - <filterInput name="billing_region"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">billing_region</item> - <item name="label" xsi:type="string" translate="true">State/Province</item> - </item> - </argument> - </filterInput> - <filterRange name="created_at" class="Magento\Ui\Component\Filters\Type\DateRange"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">created_at</item> - <item name="label" xsi:type="string" translate="true">Customer Since</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">customer_listing.customer_listing.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterDate name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">From</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - <filterDate name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">To</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - <item name="dateFormat" xsi:type="string" translate="true">MM/dd/YYYY</item> - </item> - </argument> - </filterDate> - </filterRange> - <filterSelect name="website_id"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Config\Model\Config\Source\Website</argument> - </argument> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">website_id</item> - <item name="label" xsi:type="string" translate="true">Website</item> - <item name="caption" xsi:type="string" translate="true">Select...</item> - </item> - </argument> - </filterSelect> </filters> <massaction name="listing_massaction"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">customer_listing.customer_listing.customer_columns.ids</item> <item name="component" xsi:type="string">Magento_Ui/js/grid/tree-massactions</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> @@ -328,7 +184,6 @@ <item name="namespace" xsi:type="string">current.paging</item> </item> <item name="selectProvider" xsi:type="string">customer_listing.customer_listing.customer_columns.ids</item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -368,7 +223,6 @@ <item name="indexField" xsi:type="string">entity_id</item> <item name="clientConfig" xsi:type="array"> <item name="saveUrl" xsi:type="string">customer/index/inlineEdit</item> - <item name="validateUrl" xsi:type="string">/path/to</item> <item name="validateBeforeSave" xsi:type="boolean">false</item> </item> </item> @@ -381,7 +235,6 @@ <item name="1" xsi:type="boolean">true</item> </item> </item> - <item name="controlVisibility" xsi:type="boolean">true</item> <item name="storageConfig" xsi:type="array"> <item name="provider" xsi:type="string">customer_listing.customer_listing.listing_top.bookmarks</item> <item name="root" xsi:type="string">columns.${ $.index }</item> @@ -394,7 +247,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="indexField" xsi:type="string">entity_id</item> - <item name="controlVisibility" xsi:type="boolean">false</item> <item name="sortOrder" xsi:type="number">10</item> </item> </argument> @@ -402,8 +254,8 @@ <column name="entity_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="sorting" xsi:type="string">asc</item> - <item name="sortable" xsi:type="string">true</item> <item name="label" xsi:type="string" translate="true">ID</item> <item name="sortOrder" xsi:type="number">20</item> </item> @@ -412,8 +264,7 @@ <column name="name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> - <item name="dataType" xsi:type="string">text</item> + <item name="filter" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Name</item> <item name="sortOrder" xsi:type="number">30</item> </item> @@ -422,11 +273,8 @@ <column name="email"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="editor" xsi:type="array"> - <item name="editorType" xsi:type="string">text</item> - </item> - <item name="sortable" xsi:type="string">true</item> - <item name="dataType" xsi:type="string">text</item> + <item name="filter" xsi:type="string">text</item> + <item name="editor" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Email</item> <item name="sortOrder" xsi:type="number">40</item> </item> @@ -435,12 +283,10 @@ <column name="group_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="editor" xsi:type="array"> - <item name="editorType" xsi:type="string">select</item> - </item> - <item name="sortable" xsi:type="string">true</item> + <item name="filter" xsi:type="string">select</item> + <item name="editor" xsi:type="string">select</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Group</item> <item name="sortOrder" xsi:type="number">50</item> </item> @@ -449,9 +295,8 @@ <column name="billing_telephone"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> - <item name="sortable" xsi:type="string">true</item> - <item name="dataType" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">Phone</item> <item name="sortOrder" xsi:type="number">60</item> </item> @@ -460,10 +305,8 @@ <column name="billing_postcode"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> - <item name="sortable" xsi:type="string">true</item> - <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">ZIP</item> <item name="sortOrder" xsi:type="number">70</item> </item> @@ -472,6 +315,8 @@ <column name="billing_country_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">select</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="dataType" xsi:type="string">select</item> <item name="label" xsi:type="string" translate="true">Country</item> <item name="sortOrder" xsi:type="number">80</item> @@ -481,8 +326,7 @@ <column name="billing_region"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> - <item name="dataType" xsi:type="string">text</item> + <item name="filter" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">State/Province</item> <item name="sortOrder" xsi:type="number">90</item> </item> @@ -491,7 +335,7 @@ <column name="created_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> + <item name="filter" xsi:type="string">dateRange</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Customer Since</item> <item name="sortOrder" xsi:type="number">100</item> @@ -501,21 +345,19 @@ <column name="website_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="editor" xsi:type="array"> - <item name="editorType" xsi:type="string">select</item> - </item> + <item name="filter" xsi:type="string">select</item> + <item name="editor" xsi:type="string">select</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="label" xsi:type="string" translate="true">Web Site</item> <item name="sortOrder" xsi:type="number">110</item> </item> </argument> </column> - <column name="last_visit_at" > + <column name="last_visit_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Last Logged In</item> @@ -526,7 +368,6 @@ <column name="confirmation"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="label" xsi:type="string" translate="true">Confirmed email</item> <item name="sortOrder" xsi:type="number">130</item> @@ -536,7 +377,6 @@ <column name="created_in"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> <item name="label" xsi:type="string" translate="true">Account Created in</item> <item name="sortOrder" xsi:type="number">140</item> @@ -556,8 +396,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Shipping Address</item> <item name="sortOrder" xsi:type="number">160</item> </item> @@ -565,15 +403,10 @@ </column> <column name="dob"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> - </item> <item name="config" xsi:type="array"> - <item name="editor" xsi:type="string">date</item> - <item name="sortable" xsi:type="string">true</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">date</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Date Of Birth</item> <item name="sortOrder" xsi:type="number">170</item> </item> @@ -581,15 +414,9 @@ </column> <column name="taxvat"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="editor" xsi:type="string">text</item> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Tax VAT Number</item> <item name="sortOrder" xsi:type="number">180</item> </item> @@ -597,14 +424,11 @@ </column> <column name="gender"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> <item name="editor" xsi:type="string">select</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">select</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Gender</item> <item name="sortOrder" xsi:type="number">190</item> </item> @@ -612,13 +436,8 @@ </column> <column name="billing_street"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Street Address</item> <item name="sortOrder" xsi:type="number">200</item> </item> @@ -626,15 +445,9 @@ </column> <column name="billing_city"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="editor" xsi:type="string">text</item> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">City</item> <item name="sortOrder" xsi:type="number">210</item> </item> @@ -642,15 +455,9 @@ </column> <column name="billing_fax"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="editor" xsi:type="string">text</item> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Fax</item> <item name="sortOrder" xsi:type="number">220</item> </item> @@ -658,15 +465,9 @@ </column> <column name="billing_vat_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="editor" xsi:type="string">text</item> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">VAT Number</item> <item name="sortOrder" xsi:type="number">230</item> </item> @@ -674,15 +475,9 @@ </column> <column name="billing_company"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="editor" xsi:type="string">text</item> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Company</item> <item name="sortOrder" xsi:type="number">240</item> </item> @@ -690,15 +485,9 @@ </column> <column name="billing_firstname"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="editor" xsi:type="string">text</item> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Billing Firstname</item> <item name="sortOrder" xsi:type="number">250</item> </item> @@ -706,15 +495,9 @@ </column> <column name="billing_lastname"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> <item name="editor" xsi:type="string">text</item> - <item name="sortable" xsi:type="string">true</item> <item name="visible" xsi:type="boolean">false</item> - <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Billing Lastname</item> <item name="sortOrder" xsi:type="number">260</item> </item> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml index dbdd8594cd5..9edbbaf780f 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml @@ -427,7 +427,7 @@ </item> </argument> </column> - <actionsColumn name="actions"> + <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderActions"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="indexField" xsi:type="string">entity_id</item> -- GitLab From e29d2452ad95f207fcfb180c8f4fc23f968a19b5 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Tue, 8 Sep 2015 19:30:44 +0300 Subject: [PATCH 035/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Change declaration on Associated Products --- ...onfigurable_associated_product_listing.xml | 106 ++---------------- .../view/base/ui_component/customer_form.xml | 8 +- app/code/Magento/Ui/etc/ui_components.xsd | 12 +- 3 files changed, 12 insertions(+), 114 deletions(-) diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml index aee041d2b5b..83132d42f7b 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml @@ -40,31 +40,18 @@ <filters name="listing_filters" class="Magento\ConfigurableProduct\Ui\Component\Listing\AssociatedProduct\Filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="columnsProvider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.product_columns</item> <item name="links" xsi:type="array"> <item name="applied" xsi:type="string">not-save-filter</item> </item> - <item name="displayArea" xsi:type="string">dataGridFilters</item> - <item name="dataScope" xsi:type="string">filters</item> - <item name="storageConfig" xsi:type="array"> - <item name="provider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.listing_top.bookmarks</item> - <item name="namespace" xsi:type="string">current.filters</item> - </item> <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.listing_top.listing_filters</item> <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.listing_top.bookmarks:current.columns.${ $.index }.visible</item> + <item name="visible" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.product_columns.${ $.index }:visible</item> </item> </item> </item> </argument> - <filterInput name="name"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">name</item> - <item name="label" xsi:type="string" translate="true">Name</item> - </item> - </argument> - </filterInput> <filterSelect name="attribute_set_id"> <argument name="optionsProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">Magento\Catalog\Model\Product\AttributeSet\Options</argument> @@ -77,43 +64,6 @@ </item> </argument> </filterSelect> - <filterInput name="sku"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">sku</item> - <item name="label" xsi:type="string" translate="true">SKU</item> - </item> - </argument> - </filterInput> - <filterRange name="price"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">price</item> - <item name="label" xsi:type="string" translate="true">Price</item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.listing_top.listing_filters</item> - </item> - </item> - </argument> - <filterInput name="from"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">from</item> - <item name="label" xsi:type="string" translate="true">from</item> - <item name="placeholder" xsi:type="string" translate="true">From</item> - </item> - </argument> - </filterInput> - <filterInput name="to"> - <argument name="data" xsi:type="array"> - <item name="config" xsi:type="array"> - <item name="dataScope" xsi:type="string">to</item> - <item name="label" xsi:type="string" translate="true">to</item> - <item name="placeholder" xsi:type="string" translate="true">To</item> - </item> - </argument> - </filterInput> - </filterRange> <filterSelect name="status"> <argument name="optionsProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">Magento\Catalog\Model\Product\Attribute\Source\Status</argument> @@ -131,11 +81,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.product_columns.ids</item> - <item name="storageConfig" xsi:type="array"> - <item name="provider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.listing_top.bookmarks</item> - <item name="namespace" xsi:type="string">current.paging</item> - </item> - <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> <item name="value" xsi:type="number">20</item> @@ -165,10 +110,6 @@ <columns name="product_columns" class="Magento\Catalog\Ui\Component\Listing\Columns"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="storageConfig" xsi:type="array"> - <item name="provider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.listing_top.bookmarks</item> - <item name="namespace" xsi:type="string">current</item> - </item> <item name="childDefaults" xsi:type="array"> <item name="fieldAction" xsi:type="array"> <item name="provider" xsi:type="string">configurableVariations</item> @@ -177,36 +118,21 @@ <item name="0" xsi:type="string">${ $.$data.rowIndex }</item> </item> </item> - <item name="controlVisibility" xsi:type="boolean">true</item> - <item name="storageConfig" xsi:type="array"> - <item name="provider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.listing_top.bookmarks</item> - <item name="root" xsi:type="string">columns.${ $.index }</item> - <item name="namespace" xsi:type="string">current.${ $.storageConfig.root}</item> - </item> </item> </item> </argument> - <column name="ids" class="Magento\Ui\Component\MassAction\Columns\Column"> + <selectionsColumn name="ids"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/multiselect</item> - </item> <item name="config" xsi:type="array"> - <item name="controlVisibility" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> <item name="sortOrder" xsi:type="number">0</item> </item> </argument> - </column> + </selectionsColumn> <column name="entity_id"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> - <item name="dataType" xsi:type="string">text</item> <item name="sorting" xsi:type="string">asc</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">ID</item> <item name="sortOrder" xsi:type="number">10</item> </item> @@ -214,16 +140,12 @@ </column> <column name="thumbnail" class="Magento\Catalog\Ui\Component\Listing\Columns\Thumbnail"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/thumbnail</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/thumbnail</item> <item name="add_field" xsi:type="boolean">true</item> <item name="sortable" xsi:type="boolean">false</item> <item name="altField" xsi:type="string">name</item> <item name="has_preview" xsi:type="string">1</item> - <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Thumbnail</item> <item name="sortOrder" xsi:type="number">20</item> </item> @@ -231,13 +153,9 @@ </column> <column name="name"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="add_field" xsi:type="boolean">true</item> - <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Name</item> <item name="sortOrder" xsi:type="number">30</item> </item> @@ -245,12 +163,8 @@ </column> <column name="sku"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> - <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> + <item name="filter" xsi:type="string">text</item> <item name="label" xsi:type="string" translate="true">SKU</item> <item name="sortOrder" xsi:type="number">60</item> </item> @@ -258,13 +172,9 @@ </column> <column name="price" class="Magento\Catalog\Ui\Component\Listing\Columns\Price"> <argument name="data" xsi:type="array"> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item> - </item> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="add_field" xsi:type="boolean">true</item> - <item name="dataType" xsi:type="string">text</item> - <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Price</item> <item name="sortOrder" xsi:type="number">70</item> </item> diff --git a/app/code/Magento/Customer/view/base/ui_component/customer_form.xml b/app/code/Magento/Customer/view/base/ui_component/customer_form.xml index 4a4305c82fd..e540414d377 100644 --- a/app/code/Magento/Customer/view/base/ui_component/customer_form.xml +++ b/app/code/Magento/Customer/view/base/ui_component/customer_form.xml @@ -120,10 +120,8 @@ <container name="container_group"> <argument name="data" xsi:type="array"> <item name="type" xsi:type="string">group</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/form/components/group</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/form/components/group</item> <item name="label" xsi:type="string" translate="true">Group</item> <item name="required" xsi:type="boolean">true</item> <item name="dataScope" xsi:type="boolean">false</item> @@ -351,10 +349,8 @@ <container name="street_container"> <argument name="data" xsi:type="array"> <item name="type" xsi:type="string">group</item> - <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/form/components/group</item> - </item> <item name="config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/form/components/group</item> <item name="label" xsi:type="string" translate="true">Street Address</item> <item name="required" xsi:type="boolean">true</item> <item name="dataScope" xsi:type="string">street</item> diff --git a/app/code/Magento/Ui/etc/ui_components.xsd b/app/code/Magento/Ui/etc/ui_components.xsd index 0dce99e31b6..f431c3ae0c7 100644 --- a/app/code/Magento/Ui/etc/ui_components.xsd +++ b/app/code/Magento/Ui/etc/ui_components.xsd @@ -125,20 +125,12 @@ </xs:complexType> <xs:complexType name="actionsColumn"> <xs:complexContent> - <xs:extension base="ui_element"> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:group ref="configurable"/> - </xs:choice> - </xs:extension> + <xs:extension base="column"/> </xs:complexContent> </xs:complexType> <xs:complexType name="selectionsColumn"> <xs:complexContent> - <xs:extension base="ui_element"> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:group ref="configurable"/> - </xs:choice> - </xs:extension> + <xs:extension base="column"/> </xs:complexContent> </xs:complexType> <xs:complexType name="container"> -- GitLab From a9574a468ca7bbaadf38bc65ac8d464b06147926 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Tue, 8 Sep 2015 20:31:29 +0300 Subject: [PATCH 036/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Remove unnecessary page sizes --- .../Catalog/Ui/Component/ColumnFactory.php | 4 ---- ...onfigurable_associated_product_listing.xml | 22 ------------------- 2 files changed, 26 deletions(-) diff --git a/app/code/Magento/Catalog/Ui/Component/ColumnFactory.php b/app/code/Magento/Catalog/Ui/Component/ColumnFactory.php index 001facb345a..58de2b262c8 100644 --- a/app/code/Magento/Catalog/Ui/Component/ColumnFactory.php +++ b/app/code/Magento/Catalog/Ui/Component/ColumnFactory.php @@ -61,10 +61,6 @@ class ColumnFactory $config['options'] = $attribute->getSource()->getAllOptions(); } - if ($attribute->getIsFilterableInGrid()) { - - } - $config['component'] = $this->getJsComponent($config['dataType']); $arguments = [ diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml index 83132d42f7b..b497b3b385f 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml @@ -81,28 +81,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.product_columns.ids</item> - <item name="options" xsi:type="array"> - <item name="20" xsi:type="array"> - <item name="value" xsi:type="number">20</item> - <item name="label" xsi:type="string" translate="true">20</item> - </item> - <item name="30" xsi:type="array"> - <item name="value" xsi:type="number">30</item> - <item name="label" xsi:type="string" translate="true">30</item> - </item> - <item name="50" xsi:type="array"> - <item name="value" xsi:type="number">50</item> - <item name="label" xsi:type="string" translate="true">50</item> - </item> - <item name="100" xsi:type="array"> - <item name="value" xsi:type="number">100</item> - <item name="label" xsi:type="string" translate="true">100</item> - </item> - <item name="200" xsi:type="array"> - <item name="value" xsi:type="number">200</item> - <item name="label" xsi:type="string" translate="true">200</item> - </item> - </item> </item> </argument> </paging> -- GitLab From c80ad5af85c29ccb6322d289d69caf98f9273323 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Wed, 9 Sep 2015 11:50:26 +0300 Subject: [PATCH 037/420] MAGETWO-42479: Refactor all entries modal windows --- .../catalog/product/composite/configure.js | 42 ++++--------------- 1 file changed, 9 insertions(+), 33 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js index 648632e2aac..1461078d6b6 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js @@ -6,7 +6,8 @@ define([ "jquery", "jquery/ui", "mage/translate", - "prototype" + "prototype", + 'Magento_Ui/js/modal/modal' ], function(jQuery){ window.ProductConfigure = Class.create(); @@ -41,45 +42,20 @@ ProductConfigure.prototype = { * Initialize object */ initialize: function() { - this._initWindowElements(); var self = this; - this.dialog = jQuery('#product_composite_configure').dialog({ - autoOpen: false, + + this.dialog = jQuery('#product_composite_configure').modal({ title: jQuery.mage.__('Configure Product'), - modal: true, - minWidth: 500, - width: '75%', - dialogClass: 'popup-window', - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, - open: function () { - jQuery(this).addClass('magento_message').css('max-height', '500px'); - jQuery(this).closest('.ui-dialog').addClass('ui-dialog-active'); - - var topMargin = jQuery(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30; - jQuery(this).closest('.ui-dialog').css('margin-top', topMargin); - }, - close: function() { - jQuery(this).closest('.ui-dialog').removeClass('ui-dialog-active'); - }, + type: 'slide', buttons: [{ text: jQuery.mage.__('OK'), 'class': 'action-primary', - click: function() { + click: function () { self.onConfirmBtn(); } - }, { - id: "product_composite_configure_form_cancel", - text: "Cancel", - 'class': 'action-close', - click: function() { - jQuery(this).dialog("close"); - } }] }); + this._initWindowElements(); }, /** @@ -440,7 +416,7 @@ ProductConfigure.prototype = { * Show configuration window */ _showWindow: function() { - this.dialog.dialog('open'); + this.dialog.modal('openModal'); //this._toggleSelectsExceptBlock(false); if (Object.isFunction(this.showWindowCallback[this.current.listType])) { @@ -472,7 +448,7 @@ ProductConfigure.prototype = { * Close configuration window */ _closeWindow: function() { - this.dialog.dialog('close'); + this.dialog.modal('closeModal'); //this.blockWindow.style.display = 'none'; //this.clean('window'); }, -- GitLab From ced0f0093097127c73aef3357685de2948435b6d Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Wed, 9 Sep 2015 13:19:40 +0300 Subject: [PATCH 038/420] MAGETWO-32170: [Vanilla] Gallery Widget on Configurable Product --- .../Catalog/Block/Product/View/Gallery.php | 39 +- app/code/Magento/Catalog/Model/Product.php | 1 + .../Magento/Catalog/Model/Product/Image.php | 3 + .../templates/product/view/gallery.phtml | 35 +- .../Block/Product/View/Type/Configurable.php | 1 + .../ConfigurableProduct/Helper/Data.php | 55 ++- .../Model/Product/Type/Configurable.php | 6 +- .../view/frontend/web/js/configurable.js | 237 +++++++----- .../frontend/Magento/blank/etc/view.xml | 55 ++- app/design/frontend/Magento/luma/etc/view.xml | 55 ++- .../Magento/Framework/Config/View.php | 37 +- .../Magento/Framework/Config/etc/view.xsd | 17 +- lib/web/mage/gallery/gallery.js | 352 ++++++++---------- 13 files changed, 525 insertions(+), 368 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/View/Gallery.php b/app/code/Magento/Catalog/Block/Product/View/Gallery.php index f8b77d46d3c..4be631e6182 100644 --- a/app/code/Magento/Catalog/Block/Product/View/Gallery.php +++ b/app/code/Magento/Catalog/Block/Product/View/Gallery.php @@ -12,6 +12,7 @@ namespace Magento\Catalog\Block\Product\View; use Magento\Framework\Data\Collection; +use Magento\Framework\Json\EncoderInterface; class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView { @@ -20,6 +21,22 @@ class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView */ protected $configView; + /** + * @var \Magento\Framework\Json\EncoderInterface + */ + protected $jsonEncoder; + + public function __construct( + \Magento\Catalog\Block\Product\Context $context, + \Magento\Framework\Stdlib\ArrayUtils $arrayUtils, + EncoderInterface $jsonEncoder, + array $data = [] + ) + { + $this->jsonEncoder = $jsonEncoder; + parent::__construct($context, $arrayUtils, $data); + } + /** * Retrieve collection of gallery images * @@ -56,6 +73,26 @@ class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView return $images; } + /** + * Return magnifier options + * + * @return string + */ + public function getMagnifier() + { + return $this->jsonEncoder->encode($this->getVar('magnifier')); + } + + /** + * Return breakpoints options + * + * @return string + */ + public function getBreakpoints() + { + return $this->jsonEncoder->encode($this->getVar('breakpoints')); + } + /** * Retrieve product images in JSON format * @@ -128,4 +165,4 @@ class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView } return $this->configView; } -} +} \ No newline at end of file diff --git a/app/code/Magento/Catalog/Model/Product.php b/app/code/Magento/Catalog/Model/Product.php index dd0f5ec4ead..d83299c1cdd 100644 --- a/app/code/Magento/Catalog/Model/Product.php +++ b/app/code/Magento/Catalog/Model/Product.php @@ -18,6 +18,7 @@ use Magento\Framework\Api\Data\ImageContentInterface; * Catalog product model * * @method Product setHasError(bool $value) + * @method \Magento\Catalog\Model\Resource\Product getResource() * @method null|bool getHasError() * @method Product setAssociatedProductIds(array $productIds) * @method array getAssociatedProductIds() diff --git a/app/code/Magento/Catalog/Model/Product/Image.php b/app/code/Magento/Catalog/Model/Product/Image.php index f669b73ca51..87af2b3c815 100644 --- a/app/code/Magento/Catalog/Model/Product/Image.php +++ b/app/code/Magento/Catalog/Model/Product/Image.php @@ -19,6 +19,9 @@ use Magento\Store\Model\Store; * @SuppressWarnings(PHPMD.TooManyFields) * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @method string getFile() + * @method string getLabel() + * @method string getPosition() */ class Image extends \Magento\Framework\Model\AbstractModel { diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 3089c2cf50f..9ab7c65ab91 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -16,21 +16,14 @@ ".gallery-placeholder": { "mage/gallery/gallery": { "mixins":["magnifier/magnify"], - "magnifierOpts": { - "enabled": <?php echo $block->getVar("magnifier:enabled"); ?>, - "eventType": "<?php echo $block->getVar("magnifier:action"); ?>", - "width": "<?php echo $block->getVar("magnifier:width"); ?>", - "height": "<?php echo $block->getVar("magnifier:height"); ?>", - "top": "<?php echo $block->getVar("magnifier:top"); ?>", - "left": "<?php echo $block->getVar("magnifier:left"); ?>" - }, + "magnifierOpts": <?php echo $block->getMagnifier(); ?>, "data": <?php echo $block->getGalleryImagesJson(); ?>, "options": { - "nav": "<?php echo $block->getVar("gallery:navigation"); ?>", - "loop": <?php echo $block->getVar("gallery:loop"); ?>, - "keyboard": <?php echo $block->getVar("gallery:keyboard"); ?>, - "arrows": <?php echo $block->getVar("gallery:arrows"); ?>, - "showCaption": <?php echo $block->getVar("gallery:show_caption"); ?>, + "nav": "<?php echo $block->getVar("gallery/navigation"); ?>", + "loop": <?php echo $block->getVar("gallery/loop"); ?>, + "keyboard": <?php echo $block->getVar("gallery/keyboard"); ?>, + "arrows": <?php echo $block->getVar("gallery/arrows"); ?>, + "showCaption": <?php echo $block->getVar("gallery/show_caption"); ?>, "width": <?php echo $block->getImageAttribute('product_page_image_medium', 'width'); ?>, "thumbwidth": <?php echo $block->getImageAttribute('product_page_image_small', 'width'); ?>, "thumbheight": <?php echo $block->getImageAttribute('product_page_image_small', 'height') @@ -38,21 +31,7 @@ "height": <?php echo $block->getImageAttribute('product_page_image_medium', 'height') ?: $block->getImageAttribute('product_page_image_medium', 'width'); ?> }, - "breakpoints": { - "mobile": { - "conditions": { - "max-width": "767px" - }, - "options": { - "options": { - "nav": "dots" - }, - "magnifierOpts": { - "enabled": false - } - } - } - } + "breakpoints": <?php echo $block->getBreakpoints(); ?> } } } diff --git a/app/code/Magento/ConfigurableProduct/Block/Product/View/Type/Configurable.php b/app/code/Magento/ConfigurableProduct/Block/Product/View/Type/Configurable.php index b67361c4fcc..14973a48c11 100644 --- a/app/code/Magento/ConfigurableProduct/Block/Product/View/Type/Configurable.php +++ b/app/code/Magento/ConfigurableProduct/Block/Product/View/Type/Configurable.php @@ -198,6 +198,7 @@ class Configurable extends \Magento\Catalog\Block\Product\View\AbstractView 'productId' => $currentProduct->getId(), 'chooseText' => __('Choose an Option...'), 'images' => isset($options['images']) ? $options['images'] : [], + 'index' => isset($options['index']) ? $options['index'] : [], ]; if ($currentProduct->hasPreconfiguredValues() && !empty($attributesData['defaultValues'])) { diff --git a/app/code/Magento/ConfigurableProduct/Helper/Data.php b/app/code/Magento/ConfigurableProduct/Helper/Data.php index bfd993d7541..45302ad89f8 100644 --- a/app/code/Magento/ConfigurableProduct/Helper/Data.php +++ b/app/code/Magento/ConfigurableProduct/Helper/Data.php @@ -30,6 +30,42 @@ class Data $this->imageHelper = $imageHelper; } + /** + * Retrieve collection of gallery images + * + * @param \Magento\Catalog\Api\Data\ProductInterface $product + * @return \Magento\Catalog\Model\Product\Image[]|null + */ + public function getGalleryImages(\Magento\Catalog\Api\Data\ProductInterface $product) + { + $images = $product->getMediaGalleryImages(); + if ($images instanceof \Magento\Framework\Data\Collection) { + foreach ($images as &$image) { + /** @var $image \Magento\Catalog\Model\Product\Image */ + $image->setData( + 'small_image_url', + $this->imageHelper->init($product, 'product_page_image_small') + ->setImageFile($image->getFile()) + ->getUrl() + ); + $image->setData( + 'medium_image_url', + $this->imageHelper->init($product, 'product_page_image_medium') + ->setImageFile($image->getFile()) + ->getUrl() + ); + $image->setData( + 'large_image_url', + $this->imageHelper->init($product, 'product_page_image_large') + ->setImageFile($image->getFile()) + ->getUrl() + ); + } + } + + return $images; + } + /** * Get Options for Configurable Product Options * @@ -42,16 +78,27 @@ class Data $options = []; foreach ($allowedProducts as $product) { $productId = $product->getId(); + $images = $this->getGalleryImages($product); + if ($images) { + foreach ($images as $image) { + $options['images'][$productId][] = + [ + 'thumb' => $image->getData('small_image_url'), + 'img' => $image->getData('medium_image_url'), + 'original' => $image->getData('large_image_url'), + 'caption' => $image->getLabel(), + 'position' => $image->getPosition(), + 'isMain' => $image->getFile() == $product->getImage(), + ]; + } + } foreach ($this->getAllowAttributes($currentProduct) as $attribute) { $productAttribute = $attribute->getProductAttribute(); $productAttributeId = $productAttribute->getId(); $attributeValue = $product->getData($productAttribute->getAttributeCode()); $options[$productAttributeId][$attributeValue][] = $productId; - $imageUrl = (!$product->getImage() || $product->getImage() === 'no_selection') - ? $this->imageHelper->init($currentProduct, 'product_page_image_large')->getUrl() - : $this->imageHelper->init($product, 'product_page_image_large')->getUrl(); - $options['images'][$productAttributeId][$attributeValue][$productId] = $imageUrl; + $options['index'][$productId][$productAttributeId] = $attributeValue; } } return $options; diff --git a/app/code/Magento/ConfigurableProduct/Model/Product/Type/Configurable.php b/app/code/Magento/ConfigurableProduct/Model/Product/Type/Configurable.php index 4c8c10f0147..d6c5da4b6e7 100644 --- a/app/code/Magento/ConfigurableProduct/Model/Product/Type/Configurable.php +++ b/app/code/Magento/ConfigurableProduct/Model/Product/Type/Configurable.php @@ -440,7 +440,9 @@ class Configurable extends \Magento\Catalog\Model\Product\Type\AbstractType } $usedProducts = []; - $collection = $this->getUsedProductCollection($product)->addAttributeToSelect('*') + $collection = $this->getUsedProductCollection($product) + ->addAttributeToSelect('*') + ->addAttributeToSelect('media_gallery') ->addFilterByRequiredOptions() ->setStoreId($product->getStoreId()); @@ -454,6 +456,8 @@ class Configurable extends \Magento\Catalog\Model\Product\Type\AbstractType } foreach ($collection as $item) { + /** @var \Magento\Catalog\Model\Product $item */ + $item->getResource()->getAttribute('media_gallery')->getBackend()->afterLoad($item); $usedProducts[] = $item; } diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js b/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js index b793612a5eb..f4dc170bbb3 100644 --- a/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js +++ b/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js @@ -4,14 +4,14 @@ */ /*jshint browser:true jquery:true*/ define([ - "jquery", - "underscore", - "mage/template", - "priceUtils", - "priceBox", - "jquery/ui", - "jquery/jquery.parsequery" -], function($, _, mageTemplate, utils){ + 'jquery', + 'underscore', + 'mage/template', + 'priceUtils', + 'priceBox', + 'jquery/ui', + 'jquery/jquery.parsequery' +], function ($, _, mageTemplate) { $.widget('mage.configurable', { options: { @@ -21,13 +21,16 @@ define([ state: {}, priceFormat: {}, optionTemplate: '<%- data.label %>' + - '<% if (data.finalPrice.value) { %>' + - ' <%- data.finalPrice.formatted %>' + - '<% } %>', - mediaGallerySelector: '[data-role=media-gallery]' + '<% if (data.finalPrice.value) { %>' + + ' <%- data.finalPrice.formatted %>' + + '<% } %>', + mediaGallerySelector: '[data-gallery-role=gallery]' }, - - _create: function() { + /** + * Creates widget + * @private + */ + _create: function () { // Initial setting of various option values this._initializeOptions(); @@ -51,14 +54,14 @@ define([ * Initialize tax configuration, initial settings, and options values. * @private */ - _initializeOptions: function() { + _initializeOptions: function () { var priceBoxOptions = $(this.options.priceHolderSelector).priceBox('option'); - if(priceBoxOptions.priceConfig && priceBoxOptions.priceConfig.optionTemplate) { + if (priceBoxOptions.priceConfig && priceBoxOptions.priceConfig.optionTemplate) { this.options.optionTemplate = priceBoxOptions.priceConfig.optionTemplate; } - if(priceBoxOptions.priceConfig && priceBoxOptions.priceConfig.priceFormat) { + if (priceBoxOptions.priceConfig && priceBoxOptions.priceConfig.priceFormat) { this.options.priceFormat = priceBoxOptions.priceConfig.priceFormat; } this.options.optionTemplate = mageTemplate(this.options.optionTemplate); @@ -70,8 +73,8 @@ define([ this.options.values = this.options.spConfig.defaultValues || {}; this.options.parentImage = $('[data-role=base-image-container] img').attr('src'); - this.initialGalleryImages = $(this.options.mediaGallerySelector).data('mageGallery') - ? $(this.options.mediaGallerySelector).gallery('option', 'images') + this.initialGalleryImages = $(this.options.mediaGallerySelector).data('mageGallery') ? + $(this.options.mediaGallerySelector).gallery('option', 'images') : []; this.inputSimpleProduct = this.element.find(this.options.selectSimpleProduct); }, @@ -81,11 +84,13 @@ define([ * initialized inputs values. * @private */ - _overrideDefaults: function() { + _overrideDefaults: function () { var hashIndex = window.location.href.indexOf('#'); + if (hashIndex !== -1) { this._parseQueryParams(window.location.href.substr(hashIndex + 1)); } + if (this.options.spConfig.inputsInitialized) { this._setValuesByAttribute(); } @@ -94,12 +99,15 @@ define([ /** * Parse query parameters from a query string and set options values based on the * key value pairs of the parameters. - * @param queryString URL query string containing query parameters. + * @param {*} queryString - URL query string containing query parameters. * @private */ - _parseQueryParams: function(queryString) { - var queryParams = $.parseQuery({query: queryString}); - $.each(queryParams, $.proxy(function(key, value) { + _parseQueryParams: function (queryString) { + var queryParams = $.parseQuery({ + query: queryString + }); + + $.each(queryParams, $.proxy(function (key, value) { this.options.values[key] = value; }, this)); }, @@ -109,9 +117,9 @@ define([ * identifier. * @private */ - _setValuesByAttribute: function() { + _setValuesByAttribute: function () { this.options.values = {}; - $.each(this.options.settings, $.proxy(function(index, element) { + $.each(this.options.settings, $.proxy(function (index, element) { if (element.value) { var attributeId = element.id.replace(/[a-z]*/, ''); this.options.values[attributeId] = element.value; @@ -123,8 +131,8 @@ define([ * Set up .on('change') events for each option element to configure the option. * @private */ - _setupChangeEvents: function() { - $.each(this.options.settings, $.proxy(function(index, element) { + _setupChangeEvents: function () { + $.each(this.options.settings, $.proxy(function (index, element) { $(element).on('change', this, this._configure); }, this)); }, @@ -134,9 +142,10 @@ define([ * attribute identifier. Set the state based on the attribute identifier. * @private */ - _fillState: function() { - $.each(this.options.settings, $.proxy(function(index, element) { + _fillState: function () { + $.each(this.options.settings, $.proxy(function (index, element) { var attributeId = element.id.replace(/[a-z]*/, ''); + if (attributeId && this.options.spConfig.attributes[attributeId]) { element.config = this.options.spConfig.attributes[attributeId]; element.attributeId = attributeId; @@ -150,10 +159,10 @@ define([ * an option's list of selections as needed or disable an option's setting. * @private */ - _setChildSettings: function() { - var childSettings = [], - settings = this.options.settings, - index = settings.length, + _setChildSettings: function () { + var childSettings = [], + settings = this.options.settings, + index = settings.length, option; while (index--) { @@ -164,9 +173,9 @@ define([ (option.disabled = true); _.extend(option, { - childSettings: childSettings.slice(), - prevSetting: settings[index - 1], - nextSetting: settings[index + 1] + childSettings: childSettings.slice(), + prevSetting: settings[index - 1], + nextSetting: settings[index + 1] }); childSettings.push(option); @@ -178,11 +187,11 @@ define([ * the option, which sets its state, and initializes the option's choices, etc. * @private */ - _configureForValues: function() { + _configureForValues: function () { if (this.options.values) { - this.options.settings.each($.proxy(function(index, element) { + this.options.settings.each($.proxy(function (index, element) { var attributeId = element.attributeId; - element.value = (typeof(this.options.values[attributeId]) === 'undefined') ? + element.value = (typeof (this.options.values[attributeId]) === 'undefined') ? '' : this.options.values[attributeId]; this._configureElement(element); @@ -193,9 +202,9 @@ define([ /** * Event handler for configuring an option. * @private - * @param event Event triggered to configure an option. + * @param {Object} event - Event triggered to configure an option. */ - _configure: function(event) { + _configure: function (event) { event.data._configureElement(this); }, @@ -203,11 +212,12 @@ define([ * Configure an option, initializing it's state and enabling related options, which * populates the related option's selection and resets child option selections. * @private - * @param element The element associated with a configurable option. + * @param {*} element - The element associated with a configurable option. */ - _configureElement: function(element) { + _configureElement: function (element) { if (element.value) { this.options.state[element.config.id] = element.value; + if (element.nextSetting) { element.nextSetting.disabled = false; this._fillSelect(element.nextSetting); @@ -215,8 +225,7 @@ define([ } else { this.inputSimpleProduct.val(element.selectedOptions[0].config.allowedProducts[0]); } - } - else { + } else { this._resetChildren(element); } this._reloadPrice(); @@ -228,38 +237,41 @@ define([ * @private */ _changeProductImage: function () { - var images = this.options.spConfig.images, - imagesArray = null, - galleryElement = $(this.options.mediaGallerySelector); - $.each(this.options.settings, function (k, v) { - var selectValue = parseInt(v.value, 10), - attributeId = v.id.replace(/[a-z]*/, ''); - if (selectValue > 0 && attributeId) { - if (!imagesArray) { - imagesArray = images[attributeId][selectValue]; - } else { - var intersectedArray = {}; - $.each(imagesArray, function (productId) { - if (images[attributeId][selectValue][productId]) { - intersectedArray[productId] = images[attributeId][selectValue][productId]; - } - }); - imagesArray = intersectedArray; + var state = (function () { + var p, + state = JSON.stringify(this.options.state); + + for (p in this.options.spConfig.index) { + + if (JSON.stringify(this.options.spConfig.index[p]) === state) { + return p; + } } - } - }); - var result = []; - $.each(imagesArray || {}, function (k, v) { - result.push({ - small: v, - medium: v, - large: v - }); - }); + return false; + }.bind(this)()), + option = (function () { + return this.options.state[state] ? this.options.state[state] : false; + }.bind(this)()), + images, + galleryObject = $(this.options.mediaGallerySelector).data('gallery'); + + if (state && state !== this.options.previousState) { + this.options.previousState = state; + images = this.options.spConfig.images[state]; + } - if (galleryElement.length && galleryElement.data('mageGallery')) { - galleryElement.gallery('option', 'images', result.length > 0 ? result : this.initialGalleryImages); + if (galleryObject) { + + if (!this.options.initialState) { + this.options.initialState = galleryObject.returnCurrentImages(); + } + + if (images) { + galleryObject.updateData(images); + } else if (!option) { + galleryObject.updateData(this.options.initialState); + } } }, @@ -267,13 +279,14 @@ define([ * For a given option element, reset all of its selectable options. Clear any selected * index, disable the option choice, and reset the option's state if necessary. * @private - * @param element The element associated with a configurable option. + * @param {*} element - The element associated with a configurable option. */ - _resetChildren: function(element) { + _resetChildren: function (element) { if (element.childSettings) { for (var i = 0; i < element.childSettings.length; i++) { element.childSettings[i].selectedIndex = 0; element.childSettings[i].disabled = true; + if (element.config) { this.options.state[element.config.id] = false; } @@ -284,25 +297,32 @@ define([ /** * Populates an option's selectable choices. * @private - * @param element Element associated with a configurable option. + * @param {*} element - Element associated with a configurable option. */ - _fillSelect: function(element) { + _fillSelect: function (element) { var attributeId = element.id.replace(/[a-z]*/, ''), - options = this._getAttributeOptions(attributeId); + options = this._getAttributeOptions(attributeId), + prevConfig, + index = 1, + allowedProducts, + i, + j; + this._clearSelect(element); element.options[0] = new Option('', ''); element.options[0].innerHTML = this.options.spConfig.chooseText; + prevConfig = false; - var prevConfig = false; if (element.prevSetting) { prevConfig = element.prevSetting.options[element.prevSetting.selectedIndex]; } + if (options) { - var index = 1; - for (var i = 0; i < options.length; i++) { - var allowedProducts = []; + for (i = 0; i < options.length; i++) { + allowedProducts = []; + if (prevConfig) { - for (var j = 0; j < options[i].products.length; j++) { + for (j = 0; j < options[i].products.length; j++) { // prevConfig.config can be undefined if (prevConfig.config && prevConfig.config.allowedProducts && @@ -313,12 +333,15 @@ define([ } else { allowedProducts = options[i].products.slice(0); } + if (allowedProducts.length > 0) { options[i].allowedProducts = allowedProducts; element.options[index] = new Option(this._getOptionLabel(options[i]), options[i].id); + if (typeof options[i].price !== 'undefined') { element.options[index].setAttribute('price', options[i].prices); } + element.options[index].config = options[i]; index++; } @@ -330,20 +353,19 @@ define([ * Generate the label associated with a configurable option. This includes the option's * label or value and the option's price. * @private - * @param option A single choice among a group of choices for a configurable option. - * @param selOption Current selected option. + * @param {*} option - A single choice among a group of choices for a configurable option. * @return {String} The option label with option value and price (e.g. Black +1.99) */ - _getOptionLabel: function(option, selOption) { + _getOptionLabel: function (option) { return option.label; }, /** * Removes an option's selections. * @private - * @param element The element associated with a configurable option. + * @param {*} element - The element associated with a configurable option. */ - _clearSelect: function(element) { + _clearSelect: function (element) { for (var i = element.options.length - 1; i >= 0; i--) { element.remove(i); } @@ -352,10 +374,10 @@ define([ /** * Retrieve the attribute options associated with a specific attribute Id. * @private - * @param attributeId The id of the attribute whose configurable options are sought. + * @param {Number} attributeId - The id of the attribute whose configurable options are sought. * @return {Object} Object containing the attribute options. */ - _getAttributeOptions: function(attributeId) { + _getAttributeOptions: function (attributeId) { if (this.options.spConfig.attributes[attributeId]) { return this.options.spConfig.attributes[attributeId].options; } @@ -364,38 +386,47 @@ define([ /** * Reload the price of the configurable product incorporating the prices of all of the * configurable product's option selections. - * @private - * @return {Number} The price of the configurable product including selected options. */ - _reloadPrice: function() { + _reloadPrice: function () { $(this.options.priceHolderSelector).trigger('updatePrice', this._getPrices()); }, - + /** + * Get product various prices + * @returns {{}} + * @private + */ _getPrices: function () { var prices = {}, elements = _.toArray(this.options.settings); - _.each(elements, function(element) { + _.each(elements, function (element) { var selected = element.options[element.selectedIndex], config = selected && selected.config; - prices[element.attributeId] = config && config.allowedProducts.length === 1 - ? this._calculatePrice(config) + prices[element.attributeId] = config && config.allowedProducts.length === 1 ? + this._calculatePrice(config) : {}; }, this); return prices; }, - + /** + * Returns pracies for configured products + * + * @param {*} config - Products configuration + * @returns {*} + * @private + */ _calculatePrice: function (config) { - var displayPrices = $(this.options.priceHolderSelector).priceBox('option').prices; - var newPrices = this.options.spConfig.optionPrices[_.first(config.allowedProducts)]; + var displayPrices = $(this.options.priceHolderSelector).priceBox('option').prices, + newPrices = this.options.spConfig.optionPrices[_.first(config.allowedProducts)]; _.each(displayPrices, function (price, code) { if (newPrices[code]) { - displayPrices[code].amount = newPrices[code].amount - displayPrices[code].amount + displayPrices[code].amount = newPrices[code].amount - displayPrices[code].amount } }); + return displayPrices; } diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 897a3c54b3b..50693074218 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -180,18 +180,51 @@ <vars module="Magento_Catalog"> <!-- New gallery and magnifier theme settings --> - <var name="gallery:navigation">thumbs</var> <!-- Gallery navigation style (false/thumbs/dots) --> - <var name="gallery:loop">true</var> <!-- Gallery navigation loop (true/false) --> - <var name="gallery:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false) --> - <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> - <var name="gallery:show_caption">false</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery"> + <var name="navigation">thumbs</var> <!-- Gallery navigation style (false/thumbs/dots) --> + <var name="loop">true</var> <!-- Gallery navigation loop (true/false) --> + <var name="keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false) --> + <var name="arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> + <var name="show_caption">false</var> <!-- Display alt text as image title (true/false) --> + </var> - <var name="magnifier:top"></var> <!-- Top position of magnifier --> - <var name="magnifier:left"></var> <!-- Left position of magnifier --> - <var name="magnifier:width"></var> <!-- Width of magnifier block --> - <var name="magnifier:height"></var> <!-- Height of magnifier block --> - <var name="magnifier:action">hover</var> <!-- Action that atcivates zoom (hover/click) --> - <var name="magnifier:enabled">true</var> <!-- Turn on/off magnifier (true/false) --> + <var name="magnifier"> + <var name="top"></var> <!-- Top position of magnifier --> + <var name="left"></var> <!-- Left position of magnifier --> + <var name="width"></var> <!-- Width of magnifier block --> + <var name="height"></var> <!-- Height of magnifier block --> + <var name="action">hover</var> <!-- Action that atcivates zoom (hover/click) --> + <var name="enabled">true</var> <!-- Turn on/off magnifier (true/false) --> + </var> + + <var name="breakpoints"> + <var name="mobile"> + <var name="conditions"> + <var name="max-width">767px</var> + </var> + <var name="options"> + <var name="options"> + <var name="nav">dots</var> + </var> + <var name="magnifierOpts"> + <var name="enabled">false</var> + </var> + </var> + </var> + <var name="desktop"> + <var name="conditions"> + <var name="max-width">768px</var> + </var> + <var name="options"> + <var name="options"> + <var name="nav">thumbs</var> + </var> + <var name="magnifierOpts"> + <var name="enabled">true</var> + </var> + </var> + </var> + </var> <!-- end --> <var name="product_small_image_sidebar_size">100</var> <!-- Override for small product image --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index 573f628d526..ed9439f3381 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -184,18 +184,51 @@ <vars module="Magento_Catalog"> <!-- New gallery and magnifier theme settings --> - <var name="gallery:navigation">dots</var> <!-- Gallery navigation style (false/thumbs/dots) --> - <var name="gallery:loop">false</var> <!-- Gallery navigation loop (true/false) --> - <var name="gallery:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false) --> - <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> - <var name="gallery:caption">true</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery"> + <var name="navigation">thumbs</var> <!-- Gallery navigation style (false/thumbs/dots) --> + <var name="loop">true</var> <!-- Gallery navigation loop (true/false) --> + <var name="keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false) --> + <var name="arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> + <var name="show_caption">false</var> <!-- Display alt text as image title (true/false) --> + </var> - <var name="magnifier:top"></var> <!-- Top position of magnifier --> - <var name="magnifier:left"></var> <!-- Right position of magnifier --> - <var name="magnifier:width"></var> <!-- Width of magnifier block --> - <var name="magnifier:height"></var> <!-- Height of magnifier block --> - <var name="magnifier:action">click</var> <!-- Action that atcivates zoom (hover/click) --> - <var name="magnifier:enabled">true</var> <!-- Turn on/off magnifier (true/false) --> + <var name="magnifier"> + <var name="top"></var> <!-- Top position of magnifier --> + <var name="left"></var> <!-- Left position of magnifier --> + <var name="width"></var> <!-- Width of magnifier block --> + <var name="height"></var> <!-- Height of magnifier block --> + <var name="action">hover</var> <!-- Action that atcivates zoom (hover/click) --> + <var name="enabled">true</var> <!-- Turn on/off magnifier (true/false) --> + </var> + + <var name="breakpoints"> + <var name="mobile"> + <var name="conditions"> + <var name="max-width">767px</var> + </var> + <var name="options"> + <var name="options"> + <var name="nav">dots</var> + </var> + <var name="magnifierOpts"> + <var name="enabled">false</var> + </var> + </var> + </var> + <var name="desktop"> + <var name="conditions"> + <var name="max-width">768px</var> + </var> + <var name="options"> + <var name="options"> + <var name="nav">thumbs</var> + </var> + <var name="magnifierOpts"> + <var name="enabled">true</var> + </var> + </var> + </var> + </var> <!-- end --> <var name="product_small_image_sidebar_size">100</var> <!-- Override for small product image --> diff --git a/lib/internal/Magento/Framework/Config/View.php b/lib/internal/Magento/Framework/Config/View.php index 3221b201c99..fb294bbbd0e 100644 --- a/lib/internal/Magento/Framework/Config/View.php +++ b/lib/internal/Magento/Framework/Config/View.php @@ -36,12 +36,7 @@ class View extends \Magento\Framework\Config\AbstractXml switch ($childNode->tagName) { case 'vars': $moduleName = $childNode->getAttribute('module'); - /** @var $varNode \DOMElement */ - foreach ($childNode->getElementsByTagName('var') as $varNode) { - $varName = $varNode->getAttribute('name'); - $varValue = $varNode->nodeValue; - $result[$childNode->tagName][$moduleName][$varName] = $varValue; - } + $result[$childNode->tagName][$moduleName] = $this->parseVarElement($childNode); break; case 'images': $moduleName = $childNode->getAttribute('module'); @@ -70,6 +65,24 @@ class View extends \Magento\Framework\Config\AbstractXml return $result; } + /** + * @param \DOMElement $node + * @return string|[] + */ + protected function parseVarElement(\DOMElement $node) + { + if ($node->getElementsByTagName('var')->length) { + $result = []; + foreach ($node->getElementsByTagName('var') as $varNode) { + $varName = $varNode->getAttribute('name'); + $result[$varName] = $this->parseVarElement($varNode); + } + } else { + $result = $node->nodeValue; + } + return $result; + } + /** * Get a list of variables in scope of specified module * @@ -88,11 +101,19 @@ class View extends \Magento\Framework\Config\AbstractXml * * @param string $module * @param string $var - * @return string|false + * @return string|false|array */ public function getVarValue($module, $var) { - return isset($this->_data['vars'][$module][$var]) ? $this->_data['vars'][$module][$var] : false; + $value = $this->_data['vars'][$module]; + foreach (explode('/', $var) as $node) { + if (is_array($value) && isset($value[$node])) { + $value = $value[$node]; + } else { + return false; + } + } + return $value; } /** diff --git a/lib/internal/Magento/Framework/Config/etc/view.xsd b/lib/internal/Magento/Framework/Config/etc/view.xsd index a9fb9593b25..0f6c53c1cc3 100644 --- a/lib/internal/Magento/Framework/Config/etc/view.xsd +++ b/lib/internal/Magento/Framework/Config/etc/view.xsd @@ -12,15 +12,7 @@ <xs:element name="vars" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> - <xs:element name="var" maxOccurs="unbounded"> - <xs:complexType> - <xs:simpleContent> - <xs:extension base="xs:string"> - <xs:attribute name="name" type="xs:string" use="required"/> - </xs:extension> - </xs:simpleContent> - </xs:complexType> - </xs:element> + <xs:element name="var" type="varType" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="module" type="xs:string" use="required"/> </xs:complexType> @@ -38,6 +30,13 @@ <xs:field xpath="@module"/> </xs:unique> </xs:element> + <xs:complexType name="varType" mixed="true"> + <xs:sequence minOccurs="0" maxOccurs="unbounded"> + <xs:element name="var" type="varType"/> + </xs:sequence> + <xs:attribute name="name" type="xs:string" use="required"/> + <xs:attribute name="value" type="xs:string"/> + </xs:complexType> <xs:complexType name="imagesType"> <xs:sequence> <xs:element name="image" maxOccurs="unbounded"> diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index 9f81daba85b..e81d584239e 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -7,93 +7,47 @@ define([ 'fotorama/fotorama', 'underscore', 'matchMedia', - 'text!mage/gallery/gallery.html', - 'Magento_Ui/js/lib/class' -], function ($, fotorama, _, mediaCheck, template, Class) { + 'text!mage/gallery/gallery.html' +], function ($, fotorama, _, mediaCheck, template) { 'use strict'; - return Class.extend({ + return function (config, element) { - defaults: { - settings: {}, - config: {}, - startConfig: {} - }, + var triggeredBreakpoints = 0, + settings = {}, + isTouchEnabled, + initGallery, + setupBreakpoints, + initApi, + initConfig = {}; - /** - * Checks if device has touch interface. - * @return {Boolean} The result of searching touch events on device. - */ - isTouchEnabled: (function () { - return 'ontouchstart' in document.documentElement; - })(), - - /** - * Initializes gallery. - * @param {Object} config - Gallery configuration. - * @param {String} element - String selector of gallery DOM element. - */ - initialize: function (config, element) { - this._super(); - - this.config = config; - - this.settings = { - $element: $(element), - currentConfig: config, - defaultConfig: _.clone(config), - fullscreenConfig: _.clone(config.fullscreen), - breakpoints: config.breakpoints, - activeBreakpoint: {}, - fotoramaApi: null, - isFullscreen: false, - api: null - }; + config.options.ratio = config.options.width / config.options.height; + config.options.height = null; - config.options.ratio = config.options.width / config.options.height; - config.options.height = null; - config.options.allowfullscreen = false; + settings = { + $element: $(element), + currentConfig: config.options, + defaultConfig: config.options, + breakpoints: config.breakpoints, + fotoramaApi: null, + api: null + }; - $.extend(true, this.startConfig, config); - - this.initGallery(); - this.initApi(); - this.setupBreakpoints(); - this.initFullscreenSettings(); - }, + $.extend(true, initConfig, config); /** - * Gallery fullscreen settings. + * Checks if device has touch interface. + * @return {Boolean} The result of searching touch events on device. */ - initFullscreenSettings: function () { - var settings = this.settings; - settings.$element.on('fotorama:fullscreenenter', function () { - settings.api.updateOptions(settings.defaultConfig.options, true); - settings.api.updateOptions(settings.fullscreenConfig, true); - - if (!_.isEqual(settings.activeBreakpoint, {})) { - settings.api.updateOptions(settings.activeBreakpoint.options, true); - } - settings.isFullscreen = true; - }); - - settings.$element.on('fotorama:fullscreenexit', function () { - settings.api.updateOptions(settings.defaultConfig.options, true); - - if (!_.isEqual(settings.activeBreakpoint, {})) { - settings.api.updateOptions(settings.activeBreakpoint.options, true); - } - settings.isFullscreen = false; - }); - }, + isTouchEnabled = (function () { + return 'ontouchstart' in document.documentElement; + })(); /** * Initializes gallery with configuration options. */ - initGallery: function () { + initGallery = function () { var breakpoints = {}, - settings = this.settings, - config = this.config, mainImage; if (settings.breakpoints) { @@ -111,7 +65,7 @@ define([ _.extend(config, config.options); config.options = undefined; - if (this.isTouchEnabled) { + if (isTouchEnabled) { config.arrows = false; } @@ -126,26 +80,25 @@ define([ config.breakpoints = null; config.startindex = mainImage; settings.currentConfig = config; + $.extend(true, settings.defaultConfig, config); settings.$element.html(template); settings.$element = $(settings.$element.children()[0]); settings.$element.fotorama(config); settings.fotoramaApi = settings.$element.data('fotorama'); - $.extend(true, config, this.startConfig); - }, + $.extend(true, config, initConfig); + }; /** * Creates breakpoints for gallery. + * @param {Object} breakpoints - Object with keys as media queries and values as configurations. */ - setupBreakpoints: function () { - var pairs, - settings = this.settings, - config = this.config, - startConfig = this.startConfig, - triggeredBreakpoints = 0; - - if (_.isObject(settings.breakpoints)) { - pairs = _.pairs(settings.breakpoints); + setupBreakpoints = function (breakpoints) { + var pairs; + + if (_.isObject(breakpoints)) { + pairs = _.pairs(breakpoints); _.each(pairs, function (pair) { + var initialized = 0; mediaCheck({ media: pair[0], @@ -154,139 +107,154 @@ define([ */ entry: function () { triggeredBreakpoints++; - $.extend(true, config, _.clone(startConfig)); + initialized = initialized < pairs.length ? initialized++ : initialized; + settings.api.updateOptions(settings.defaultConfig, true); + $.extend(true, config, initConfig); settings.api.updateOptions(settings.defaultConfig.options, true); + settings.currentConfig = settings.breakpoints[pair[0]]; + settings.api.updateOptions(settings.currentConfig.options, true); - if (settings.isFullscreen) { - settings.api.updateOptions(settings.fullscreenConfig, true); - } - settings.api.updateOptions(settings.breakpoints[pair[0]].options, true); - $.extend(true, config, settings.breakpoints[pair[0]]); - settings.activeBreakpoint = settings.breakpoints[pair[0]]; + $.extend(true, config, settings.currentConfig); + settings.$element.trigger('gallery:updated', $('.fotorama-item').data('fotorama')); }, /** * Is triggered when breakpoint exits. */ exit: function () { - if (triggeredBreakpoints < 1) { - $.extend(true, config, _.clone(startConfig)); - settings.api.updateOptions(settings.defaultConfig.options, true); - - if (settings.isFullscreen) { - settings.api.updateOptions(settings.fullscreenConfig, true); - } - settings.activeBreakpoint = {}; + triggeredBreakpoints = triggeredBreakpoints > 0 ? triggeredBreakpoints-- : 0; + initialized = initialized < pairs.length ? initialized++ : initialized; + + if (!triggeredBreakpoints && initialized === pairs.length) { + settings.currentConfig = settings.defaultConfig; + settings.api.updateOptions(settings.currentConfig.options, true); + $.extend(true, config, initConfig); + settings.$element.trigger('gallery:updated', settings.fotoramaApi); } - triggeredBreakpoints--; } }); }); } - }, + }; /** * Creates gallery's API. */ - initApi: function () { - var settings = this.settings, - config = this.config, - api = { - - /** - * Contains fotorama's API methods. - */ - fotorama: settings.fotoramaApi, - - /** - * Displays the last image on preview. - */ - last: function () { - this.fotorama.show('>>'); - }, - - /** - * Displays the first image on preview. - */ - first: function () { - this.fotorama.show('<<'); - }, - - /** - * Displays previous element on preview. - */ - prev: function () { - this.fotorama.show('<'); - }, - - /** - * Displays next element on preview. - */ - next: function () { - this.fotorama.show('>'); - }, - - /** - * Displays image with appropriate count number on preview. - * @param {Number} index - Number of image that should be displayed. - */ - seek: function (index) { - if (_.isNumber(index) && index !== 0) { - - if (index > 0) { - index -= 1; - } - this.fotorama.show(index); + initApi = function () { + var api = { + + /** + * Contains fotorama's API methods. + */ + fotorama: settings.fotoramaApi, + + /** + * Displays the last image on preview. + */ + last: function () { + this.fotorama.show('>>'); + }, + + /** + * Displays the first image on preview. + */ + first: function () { + this.fotorama.show('<<'); + }, + + /** + * Displays previous element on preview. + */ + prev: function () { + this.fotorama.show('<'); + }, + + /** + * Displays next element on preview. + */ + next: function () { + this.fotorama.show('>'); + }, + + /** + * Displays image with appropriate count number on preview. + * @param {Number} index - Number of image that should be displayed. + */ + seek: function (index) { + + if (_.isNumber(index) && index !== 0) { + + if (index > 0) { + index -= 1; } - }, - - /** - * Updates gallery with new set of options. - * @param {Object} configuration - Standart gallery configuration object. - * @param {Boolean} isInternal - Is this function called via breakpoints. - */ - updateOptions: function (configuration, isInternal) { - if (_.isObject(configuration)) { - if (this.isTouchEnabled) { - configuration.arrows = false; - } - configuration.click = false; - configuration.breakpoints = null; + this.fotorama.show(index); + } + }, - if (!isInternal) { - !_.isEqual(settings.activeBreakpoint, {}) ? - $.extend(true, settings.activeBreakpoint.options, configuration) : + /** + * Updates gallery with new set of options. + * @param {Object} configuration - Standart gallery configuration object. + * @param {Boolean} isInternal - Is this function called via breakpoints. + */ + updateOptions: function (configuration, isInternal) { - settings.isFullscreen ? - $.extend(true, settings.fullscreenConfig, configuration) : - $.extend(true, settings.defaultConfig.options, configuration); + if (_.isObject(configuration)) { - } - $.extend(true, settings.currentConfig.options, configuration); - this.fotorama.setOptions(settings.currentConfig.options); + if (isTouchEnabled) { + configuration.arrows = false; } - }, - - /** - * Updates gallery with specific set of items. - * @param {Array.<Object>} data - Set of gallery items to update. - */ - updateData: function (data) { - if (_.isArray(data)) { - this.fotorama.load(data); - $.extend(false, settings.defaultConfig, { - data: data - }); - $.extend(false, config, { - data: data - }); + configuration.click = false; + setupBreakpoints(configuration.breakpoints); + configuration.breakpoints = null; + + if (!isInternal) { + $.extend(true, settings.currentConfig.options, configuration); } + this.fotorama.setOptions(settings.currentConfig.options); } - }; + }, + + /** + * Updates gallery with specific set of items. + * @param {Array.<Object>} data - Set of gallery items to update. + */ + updateData: function (data) { + + if (_.isArray(data)) { + this.fotorama.load(data); + $.extend(false, settings.defaultConfig, { + data: data + }); + $.extend(false, config, { + data: data + }); + } + }, + + /**Returns current images list + * + * @returns {*} + */ + returnCurrentImages: function () { + var images = []; + + _.forEach(this.fotorama.data, function (item) { + images.push({ + 'img': item.img + }) + }); + + return images; + } + }; settings.$element.data('gallery', api); settings.api = settings.$element.data('gallery'); settings.$element.trigger('gallery:loaded'); - } - }); + }; + + initGallery(); + initApi(); + setupBreakpoints(settings.breakpoints); + }; }); -- GitLab From c09c01cc773ecaf566eacc2c333783ccb6a8cb6c Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Wed, 9 Sep 2015 18:13:26 +0300 Subject: [PATCH 039/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Move range filters creation --- .../view/base/ui_component/etc/definition.xml | 2 +- .../view/base/web/js/grid/editing/record.js | 9 +- .../view/base/web/js/grid/filters/filters.js | 160 +++++++++--------- .../Ui/view/base/web/js/grid/filters/group.js | 37 ---- .../Ui/view/base/web/js/grid/filters/range.js | 118 +++++++++++++ .../Ui/view/base/web/js/grid/listing.js | 2 +- .../web/templates/grid/filters/filters.html | 17 +- .../module/components/_steps-wizard.less | 4 - .../data-grid-header/_data-grid-pager.less | 1 + .../filters/{group.test.js => range.test.js} | 4 +- 10 files changed, 214 insertions(+), 140 deletions(-) delete mode 100644 app/code/Magento/Ui/view/base/web/js/grid/filters/group.js create mode 100644 app/code/Magento/Ui/view/base/web/js/grid/filters/range.js rename dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/filters/{group.test.js => range.test.js} (95%) diff --git a/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml b/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml index 95bc732984c..1fb6abdb7a5 100755 --- a/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml +++ b/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml @@ -54,7 +54,7 @@ <filterRange class="Magento\Ui\Component\Filters\Type\Range"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/grid/filters/group</item> + <item name="component" xsi:type="string">Magento_Ui/js/grid/filters/range</item> </item> </argument> </filterRange> diff --git a/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js b/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js index a6ba6aca19b..21b24b0873f 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js @@ -119,19 +119,18 @@ define([ var fields = this.templates.fields, field = column.editor; - if (typeof field === 'object' && field.editorType) { + if (_.isObject(field) && field.editorType) { field = utils.extend({}, fields[field.editorType], field); - } else if (typeof field == 'string') { + } else if (_.isString(field)) { field = fields[field]; } field = utils.extend({}, fields.base, field); - field = utils.template(field, { + + return utils.template(field, { record: this, column: column }, true, true); - - return field; }, /** diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js index 9b8b0ebfabe..0025db4a190 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js @@ -65,41 +65,12 @@ define([ options: '${ JSON.stringify($.$data.column.options) }' }, dateRange: { - component: 'Magento_Ui/js/grid/filters/group', - childDefaults: { - component: 'Magento_Ui/js/form/element/date', - provider: '${ $.provider }', - dateFormat: 'MM/dd/YYYY', - template: 'ui/grid/filters/elements/date' - }, - children: { - from: { - label: 'from', - dataScope: 'from' - }, - to: { - label: 'to', - dataScope: 'to' - } - } + component: 'Magento_Ui/js/grid/filters/range', + rangeType: 'date' }, textRange: { - component: 'Magento_Ui/js/grid/filters/group', - childDefaults: { - component: 'Magento_Ui/js/form/element/abstract', - provider: '${ $.provider }', - template: 'ui/grid/filters/elements/input' - }, - children: { - from: { - label: 'from', - dataScope: 'from' - }, - to: { - label: 'to', - dataScope: 'to' - } - } + component: 'Magento_Ui/js/grid/filters/range', + rangeType: 'text' } } }, @@ -110,7 +81,7 @@ define([ }, listens: { active: 'updatePreviews', - applied: 'cancel extractActive' + applied: 'cancel updateActive' }, links: { applied: '${ $.storageConfig.path }' @@ -136,7 +107,7 @@ define([ this._super() .initChips() .cancel() - .extractActive(); + .updateActive(); return this; }, @@ -170,32 +141,43 @@ define([ }, /** + * Creates instance of a filter associated with the provided column. * - * @param {Object} filter + * @param {Column} column - Column component for which to create a filter. * @returns {Filters} Chainable. */ - initFilter: function (filter) { + initFilter: function (column) { + var index = column.index, + filter; + + if (!column.filter || this.getFilter(index)) { + return this; + } + + filter = this.buildFilter(column); + layout([filter]); return this; }, /** - * Called when another element was added to current component. + * Called when another element was added to filters collection. * * @returns {Filters} Chainable. */ initElement: function () { this._super() - .extractActive(); + .updateActive(); return this; }, /** + * Returns instance of a filter found by provided index. * - * @param {String} index - * @returns {Filter|Undefined} + * @param {String} index - Index of a filter (e.g. 'title'). + * @returns {Filter} */ getFilter: function (index) { return this.elems.findWhere({ @@ -204,11 +186,32 @@ define([ }, /** - * Clears filters data. + * Returns an array of range filters. * - * @param {Object} [filter] - If provided, then only specified filter will be cleared. - * Otherwise, clears all data. + * @returns {Array} + */ + getRanges: function () { + return this.elems.filter(function (filter) { + return filter.isRange; + }); + }, + + /** + * Returns an array of non-range filters. * + * @returns {Array} + */ + getPlain: function () { + return this.elems.filter(function (filter) { + return !filter.isRange; + }); + }, + + /** + * Clears filters data. + * + * @param {Object} [filter] - If provided, then only specified + * filter will be cleared. Otherwise, clears all data. * @returns {Filters} Chainable. */ clear: function (filter) { @@ -244,60 +247,59 @@ define([ }, /** + * Sets provided data to filter components (without applying it). * - * @param {Column} column - * @returns {Object} + * @param {Object} data - Filters data. + * @param {Boolean} [partial=false] - Flag that defines whether + * to completely replace current filters data or to extend it. + * @returns {Filters} Chainable. */ - buildFilter: function (column) { - var filters = this.templates.filters, - filter = column.filter; + setData: function (data, partial) { + var filters = partial ? this.filters : {}; - if (_.isObject(filter) && filter.filterType) { - filter = utils.extend({}, filters[filter.filterType], filter); - } else if (_.isString(filter)) { - filter = filters[filter]; - } + data = utils.extend({}, filters, data); - filter = utils.extend({}, filters.base, filter); - filter = utils.template(filter, { - filters: this, - column: column - }, true, true); + this.set('filters', data); - return filter; + return this; }, /** + * Creates filter component configuration associated with the provided column. * - * @param {Column} column - * @returns {Filters} Chainable + * @param {Column} column - Column component whith a basic filter declaration. + * @returns {Object} Filters' configuration. */ - createFilter: function (column) { - var index = column.index, - filter; + buildFilter: function (column) { + var filters = this.templates.filters, + filter = column.filter, + type = filters[filter.filterType]; - if (!column.filter || this.getFilter(index)) { - return this; + if (_.isObject(filter) && type) { + filter = utils.extend({}, type, filter); + } else if (_.isString(filter)) { + filter = filters[filter]; } - filter = this.buildFilter(column); - - this.initFilter(filter); + filter = utils.extend({}, filters.base, filter); - return this; + return utils.template(filter, { + filters: this, + column: column + }, true, true); }, /** + * Sorts filters by associated columns positions. * * @returns {Filters} Chainable */ - updateFilters: function () { + resortByColumns: function () { var columns = this.columns().elems(), - filters = [], - filter; + filters = []; columns.forEach(function (column) { - filter = this.getFilter(column.index); + var filter = this.getFilter(column.index); if (filter) { filters.push(filter); @@ -353,7 +355,7 @@ define([ * * @returns {Filters} Chainable. */ - extractActive: function () { + updateActive: function () { this.active(this.elems.filter('hasData')); return this; @@ -374,12 +376,14 @@ define([ }, /** + * Listener of the columns provider children array changes. * + * @param {Array} columns - Current columns list. */ onColumnsUpdate: function (columns) { - columns.forEach(this.createFilter, this); + columns.forEach(this.initFilter, this); - this.updateFilters(); + this.resortByColumns(); } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/group.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/group.js deleted file mode 100644 index 405436d7353..00000000000 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/group.js +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -define([ - 'underscore', - 'Magento_Ui/js/form/components/group' -], function (_, Group) { - 'use strict'; - - return Group.extend({ - defaults: { - template: 'ui/grid/filters/elements/group', - isGroup: true - }, - - reset: function () { - this.elems.each('reset'); - - return this; - }, - - clear: function () { - this.elems.each('clear'); - - return this; - }, - - hasData: function () { - return this.elems.some('hasData'); - }, - - getPreview: function () { - return this.elems.map('getPreview'); - } - }); -}); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/range.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/range.js new file mode 100644 index 00000000000..1c9c04705b0 --- /dev/null +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/range.js @@ -0,0 +1,118 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +define([ + 'underscore', + 'uiLayout', + 'mageUtils', + 'Magento_Ui/js/form/components/group' +], function (_, layout, utils, Group) { + 'use strict'; + + return Group.extend({ + defaults: { + template: 'ui/grid/filters/elements/group', + isRange: true, + templates: { + base: { + parent: '${ $.$data.group.name }', + provider: '${ $.$data.group.provider }' + }, + date: { + component: 'Magento_Ui/js/form/element/date', + template: 'ui/grid/filters/elements/date', + dateFormat: 'MM/dd/YYYY' + }, + text: { + component: 'Magento_Ui/js/form/element/abstract', + template: 'ui/grid/filters/elements/input' + }, + ranges: { + from: { + label: 'from', + dataScope: 'from' + }, + to: { + label: 'to', + dataScope: 'to' + } + } + } + }, + + /** + * Initializes range component. + * + * @returns {Range} Chainable. + */ + initialize: function () { + this._super() + .initChildren(); + + return this; + }, + + /** + * Creates instances of child components. + * + * @returns {Range} Chainable. + */ + initChildren: function () { + var children = this.buildChildren(); + + layout(children); + + return this; + }, + + /** + * Creates configuration for the child components. + * + * @returns {Object} + */ + buildChildren: function () { + var templates = this.templates, + typeTmpl = templates[this.rangeType], + tmpl = utils.extend({}, templates.base, typeTmpl), + children = {}; + + _.each(templates.ranges, function (range, key) { + children[key] = utils.extend({}, tmpl, range); + }); + + return utils.template(children, { + group: this + }, true, true); + }, + + /** + * Clears childrens data. + * + * @returns {Range} Chainable. + */ + clear: function () { + this.elems.each('clear'); + + return this; + }, + + /** + * Checks if some children has data. + * + * @returns {Boolean} + */ + hasData: function () { + return this.elems.some('hasData'); + }, + + /** + * Returns an array of child components previews. + * + * @returns {Array} + */ + getPreview: function () { + return this.elems.map('getPreview'); + } + }); +}); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/listing.js b/app/code/Magento/Ui/view/base/web/js/grid/listing.js index 2713816a168..de3ac330d7c 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/listing.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/listing.js @@ -39,7 +39,7 @@ define([ divsAttrParams: { 'data-cl-elem': 'shadow-div' }, - enabled: true + enabled: false }, imports: { rows: '${ $.provider }:data.items' diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/filters/filters.html b/app/code/Magento/Ui/view/base/web/templates/grid/filters/filters.html index e81c1fd1dbf..2fbcebdc168 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/filters/filters.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/filters/filters.html @@ -28,18 +28,11 @@ <legend class="admin__filters-legend"> <span data-bind="i18n: 'Advanced filter'"></span> </legend> - <!-- ko foreach: elems --> - <!-- ko if: $data.isGroup --> - <fieldset class="admin__form-field" data-bind="visible: $parent.isFilterVisible($data)"> - <!-- ko template: getTemplate() --><!-- /ko --> - </fieldset> - <!-- /ko --> - - <!-- ko ifnot: $data.isGroup --> - <div class="admin__form-field" data-bind="visible: $parent.isFilterVisible($data)"> - <!-- ko template: getTemplate() --><!-- /ko --> - </div> - <!-- /ko --> + <!-- ko foreach: getRanges() --> + <fieldset class="admin__form-field" data-bind="visible: $parent.isFilterVisible($data), template: getTemplate()"></fieldset> + <!-- /ko --> + <!-- ko foreach: getPlain() --> + <div class="admin__form-field" data-bind="visible: $parent.isFilterVisible($data), template: getTemplate()"></div> <!-- /ko --> </fieldset> diff --git a/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module/components/_steps-wizard.less b/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module/components/_steps-wizard.less index d4d0f23d07a..7faca5b9d0d 100644 --- a/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module/components/_steps-wizard.less +++ b/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module/components/_steps-wizard.less @@ -64,8 +64,4 @@ margin: @indent__base 0; } } - - .admin__data-grid-pager-wrap { - float: right; - } } diff --git a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/data-grid/data-grid-header/_data-grid-pager.less b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/data-grid/data-grid-header/_data-grid-pager.less index a30087cb5a6..ec5761b7b2a 100644 --- a/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/data-grid/data-grid-header/_data-grid-pager.less +++ b/app/design/adminhtml/Magento/backend/Magento_Ui/web/css/source/module/data-grid/data-grid-header/_data-grid-pager.less @@ -17,6 +17,7 @@ .admin__data-grid-pager-wrap { text-align: right; + float: right; } .admin__data-grid-pager { diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/filters/group.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/filters/range.test.js similarity index 95% rename from dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/filters/group.test.js rename to dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/filters/range.test.js index 59e46e213d7..29267c110c5 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/filters/group.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/filters/range.test.js @@ -5,11 +5,11 @@ define([ 'underscore', - 'Magento_Ui/js/grid/filters/group' + 'Magento_Ui/js/grid/filters/range' ], function (_, Group) { 'use strict'; - describe('ui/js/grid/filters/filters', function () { + describe('ui/js/grid/filters/range', function () { var group; beforeEach(function () { -- GitLab From 78a54c8c79e27b4e866230ab202feb5f843f6a85 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Thu, 10 Sep 2015 10:23:24 +0300 Subject: [PATCH 040/420] MAGETWO-32170: [Vanilla] Gallery Widget on Configurable Product --- lib/web/mage/gallery/gallery.js | 366 ++++++++++++++++++-------------- 1 file changed, 206 insertions(+), 160 deletions(-) diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index e81d584239e..9f7aa62bec7 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -7,47 +7,93 @@ define([ 'fotorama/fotorama', 'underscore', 'matchMedia', - 'text!mage/gallery/gallery.html' -], function ($, fotorama, _, mediaCheck, template) { + 'text!mage/gallery/gallery.html', + 'Magento_Ui/js/lib/class' +], function ($, fotorama, _, mediaCheck, template, Class) { 'use strict'; - return function (config, element) { + return Class.extend({ - var triggeredBreakpoints = 0, - settings = {}, - isTouchEnabled, - initGallery, - setupBreakpoints, - initApi, - initConfig = {}; - - config.options.ratio = config.options.width / config.options.height; - config.options.height = null; - - settings = { - $element: $(element), - currentConfig: config.options, - defaultConfig: config.options, - breakpoints: config.breakpoints, - fotoramaApi: null, - api: null - }; - - $.extend(true, initConfig, config); + defaults: { + settings: {}, + config: {}, + startConfig: {} + }, /** * Checks if device has touch interface. * @return {Boolean} The result of searching touch events on device. */ - isTouchEnabled = (function () { + isTouchEnabled: (function () { return 'ontouchstart' in document.documentElement; - })(); + })(), + + /** + * Initializes gallery. + * @param {Object} config - Gallery configuration. + * @param {String} element - String selector of gallery DOM element. + */ + initialize: function (config, element) { + this._super(); + + this.config = config; + + this.settings = { + $element: $(element), + currentConfig: config, + defaultConfig: _.clone(config), + fullscreenConfig: _.clone(config.fullscreen), + breakpoints: config.breakpoints, + activeBreakpoint: {}, + fotoramaApi: null, + isFullscreen: false, + api: null + }; + + config.options.ratio = config.options.width / config.options.height; + config.options.height = null; + config.options.allowfullscreen = false; + + $.extend(true, this.startConfig, config); + + this.initGallery(); + this.initApi(); + this.setupBreakpoints(); + this.initFullscreenSettings(); + }, + + /** + * Gallery fullscreen settings. + */ + initFullscreenSettings: function () { + var settings = this.settings; + settings.$element.on('fotorama:fullscreenenter', function () { + settings.api.updateOptions(settings.defaultConfig.options, true); + settings.api.updateOptions(settings.fullscreenConfig, true); + + if (!_.isEqual(settings.activeBreakpoint, {})) { + settings.api.updateOptions(settings.activeBreakpoint.options, true); + } + settings.isFullscreen = true; + }); + + settings.$element.on('fotorama:fullscreenexit', function () { + settings.api.updateOptions(settings.defaultConfig.options, true); + + if (!_.isEqual(settings.activeBreakpoint, {})) { + settings.api.updateOptions(settings.activeBreakpoint.options, true); + } + settings.isFullscreen = false; + }); + }, /** * Initializes gallery with configuration options. */ - initGallery = function () { + initGallery: function () { var breakpoints = {}, + settings = this.settings, + config = this.config, mainImage; if (settings.breakpoints) { @@ -55,7 +101,7 @@ define([ var conditions; _.each(_.pairs(breakpoint.conditions), function (pair) { conditions = conditions ? conditions + ' and (' + pair[0] + ': ' + pair[1] + ')' : - '(' + pair[0] + ': ' + pair[1] + ')'; + '(' + pair[0] + ': ' + pair[1] + ')'; }); breakpoints[conditions] = breakpoint.options; }); @@ -65,7 +111,7 @@ define([ _.extend(config, config.options); config.options = undefined; - if (isTouchEnabled) { + if (this.isTouchEnabled) { config.arrows = false; } @@ -80,25 +126,26 @@ define([ config.breakpoints = null; config.startindex = mainImage; settings.currentConfig = config; - $.extend(true, settings.defaultConfig, config); settings.$element.html(template); settings.$element = $(settings.$element.children()[0]); settings.$element.fotorama(config); settings.fotoramaApi = settings.$element.data('fotorama'); - $.extend(true, config, initConfig); - }; + $.extend(true, config, this.startConfig); + }, /** * Creates breakpoints for gallery. - * @param {Object} breakpoints - Object with keys as media queries and values as configurations. */ - setupBreakpoints = function (breakpoints) { - var pairs; - - if (_.isObject(breakpoints)) { - pairs = _.pairs(breakpoints); + setupBreakpoints: function () { + var pairs, + settings = this.settings, + config = this.config, + startConfig = this.startConfig, + triggeredBreakpoints = 0; + + if (_.isObject(settings.breakpoints)) { + pairs = _.pairs(settings.breakpoints); _.each(pairs, function (pair) { - var initialized = 0; mediaCheck({ media: pair[0], @@ -107,154 +154,153 @@ define([ */ entry: function () { triggeredBreakpoints++; - initialized = initialized < pairs.length ? initialized++ : initialized; - settings.api.updateOptions(settings.defaultConfig, true); - $.extend(true, config, initConfig); + $.extend(true, config, _.clone(startConfig)); settings.api.updateOptions(settings.defaultConfig.options, true); - settings.currentConfig = settings.breakpoints[pair[0]]; - settings.api.updateOptions(settings.currentConfig.options, true); - $.extend(true, config, settings.currentConfig); - settings.$element.trigger('gallery:updated', $('.fotorama-item').data('fotorama')); + if (settings.isFullscreen) { + settings.api.updateOptions(settings.fullscreenConfig, true); + } + settings.api.updateOptions(settings.breakpoints[pair[0]].options, true); + $.extend(true, config, settings.breakpoints[pair[0]]); + settings.activeBreakpoint = settings.breakpoints[pair[0]]; }, /** * Is triggered when breakpoint exits. */ exit: function () { - triggeredBreakpoints = triggeredBreakpoints > 0 ? triggeredBreakpoints-- : 0; - initialized = initialized < pairs.length ? initialized++ : initialized; - - if (!triggeredBreakpoints && initialized === pairs.length) { - settings.currentConfig = settings.defaultConfig; - settings.api.updateOptions(settings.currentConfig.options, true); - $.extend(true, config, initConfig); - settings.$element.trigger('gallery:updated', settings.fotoramaApi); + if (triggeredBreakpoints < 1) { + $.extend(true, config, _.clone(startConfig)); + settings.api.updateOptions(settings.defaultConfig.options, true); + + if (settings.isFullscreen) { + settings.api.updateOptions(settings.fullscreenConfig, true); + } + settings.activeBreakpoint = {}; } + triggeredBreakpoints--; } }); }); } - }; + }, /** * Creates gallery's API. */ - initApi = function () { - var api = { - - /** - * Contains fotorama's API methods. - */ - fotorama: settings.fotoramaApi, - - /** - * Displays the last image on preview. - */ - last: function () { - this.fotorama.show('>>'); - }, - - /** - * Displays the first image on preview. - */ - first: function () { - this.fotorama.show('<<'); - }, - - /** - * Displays previous element on preview. - */ - prev: function () { - this.fotorama.show('<'); - }, - - /** - * Displays next element on preview. - */ - next: function () { - this.fotorama.show('>'); - }, - - /** - * Displays image with appropriate count number on preview. - * @param {Number} index - Number of image that should be displayed. - */ - seek: function (index) { - - if (_.isNumber(index) && index !== 0) { - - if (index > 0) { - index -= 1; + initApi: function () { + var settings = this.settings, + config = this.config, + api = { + + /** + * Contains fotorama's API methods. + */ + fotorama: settings.fotoramaApi, + + /** + * Displays the last image on preview. + */ + last: function () { + this.fotorama.show('>>'); + }, + + /** + * Displays the first image on preview. + */ + first: function () { + this.fotorama.show('<<'); + }, + + /** + * Displays previous element on preview. + */ + prev: function () { + this.fotorama.show('<'); + }, + + /** + * Displays next element on preview. + */ + next: function () { + this.fotorama.show('>'); + }, + + /** + * Displays image with appropriate count number on preview. + * @param {Number} index - Number of image that should be displayed. + */ + seek: function (index) { + if (_.isNumber(index) && index !== 0) { + + if (index > 0) { + index -= 1; + } + this.fotorama.show(index); } - this.fotorama.show(index); - } - }, - - /** - * Updates gallery with new set of options. - * @param {Object} configuration - Standart gallery configuration object. - * @param {Boolean} isInternal - Is this function called via breakpoints. - */ - updateOptions: function (configuration, isInternal) { + }, + + /** + * Updates gallery with new set of options. + * @param {Object} configuration - Standart gallery configuration object. + * @param {Boolean} isInternal - Is this function called via breakpoints. + */ + updateOptions: function (configuration, isInternal) { + if (_.isObject(configuration)) { + if (this.isTouchEnabled) { + configuration.arrows = false; + } + configuration.click = false; + configuration.breakpoints = null; - if (_.isObject(configuration)) { + if (!isInternal) { + !_.isEqual(settings.activeBreakpoint, {}) ? + $.extend(true, settings.activeBreakpoint.options, configuration) : - if (isTouchEnabled) { - configuration.arrows = false; - } - configuration.click = false; - setupBreakpoints(configuration.breakpoints); - configuration.breakpoints = null; + settings.isFullscreen ? + $.extend(true, settings.fullscreenConfig, configuration) : + $.extend(true, settings.defaultConfig.options, configuration); - if (!isInternal) { + } $.extend(true, settings.currentConfig.options, configuration); + this.fotorama.setOptions(settings.currentConfig.options); } - this.fotorama.setOptions(settings.currentConfig.options); - } - }, - - /** - * Updates gallery with specific set of items. - * @param {Array.<Object>} data - Set of gallery items to update. - */ - updateData: function (data) { - - if (_.isArray(data)) { - this.fotorama.load(data); - $.extend(false, settings.defaultConfig, { - data: data - }); - $.extend(false, config, { - data: data + }, + + /** + * Updates gallery with specific set of items. + * @param {Array.<Object>} data - Set of gallery items to update. + */ + updateData: function (data) { + if (_.isArray(data)) { + this.fotorama.load(data); + $.extend(false, settings.defaultConfig, { + data: data + }); + $.extend(false, config, { + data: data + }); + } + }, + + /**Returns curent images list + * + * @return {Array} + */ + returnCurrentImages: function () { + var images = []; + + _.forEach(this.fotorama.data, function (item) { + images.push({ + 'img': item.img + }) }); } - }, - - /**Returns current images list - * - * @returns {*} - */ - returnCurrentImages: function () { - var images = []; - - _.forEach(this.fotorama.data, function (item) { - images.push({ - 'img': item.img - }) - }); - - return images; - } - }; + }; settings.$element.data('gallery', api); settings.api = settings.$element.data('gallery'); settings.$element.trigger('gallery:loaded'); - }; - - initGallery(); - initApi(); - setupBreakpoints(settings.breakpoints); - }; + } + }); }); -- GitLab From b2596432abff86ef4a8a5996324670564710d689 Mon Sep 17 00:00:00 2001 From: Maxim Medinskiy <mmedinskiy@ebay.com> Date: Thu, 10 Sep 2015 16:38:25 +0300 Subject: [PATCH 041/420] MAGETWO-3592: PHP - CMS - Apply Multi Select in Filters --- .../ui_component/cms_block_listing.xml | 2 +- .../ui_component/cms_page_listing.xml | 2 +- .../ui_component/customer_listing.xml | 2 +- .../Magento/Ui/Component/Listing/Columns.php | 20 +------------------ 4 files changed, 4 insertions(+), 22 deletions(-) diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml index ecc4c44b7ce..5722a3fbf72 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_block_listing.xml @@ -163,7 +163,7 @@ <item name="enabled" xsi:type="boolean">true</item> <item name="indexField" xsi:type="string">block_id</item> <item name="clientConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="string">cms/block/inlineEdit</item> + <item name="saveUrl" xsi:type="url" path="cms/block/inlineEdit"/> <item name="validateBeforeSave" xsi:type="boolean">false</item> </item> </item> diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml index 88f61af9da3..9421069dd62 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml @@ -181,7 +181,7 @@ <item name="enabled" xsi:type="boolean">true</item> <item name="indexField" xsi:type="string">page_id</item> <item name="clientConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="string">cms/page/inlineEdit</item> + <item name="saveUrl" xsi:type="url" path="cms/page/inlineEdit"/> <item name="validateBeforeSave" xsi:type="boolean">false</item> </item> </item> diff --git a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml index 660ba38c3c4..c467751948f 100644 --- a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml +++ b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml @@ -200,7 +200,7 @@ <item name="enabled" xsi:type="boolean">true</item> <item name="indexField" xsi:type="string">entity_id</item> <item name="clientConfig" xsi:type="array"> - <item name="saveUrl" xsi:type="string">customer/index/inlineEdit</item> + <item name="saveUrl" xsi:type="url" path="customer/index/inlineEdit"/> <item name="validateBeforeSave" xsi:type="boolean">false</item> </item> </item> diff --git a/app/code/Magento/Ui/Component/Listing/Columns.php b/app/code/Magento/Ui/Component/Listing/Columns.php index b0f3142b920..29eaf63f6ba 100644 --- a/app/code/Magento/Ui/Component/Listing/Columns.php +++ b/app/code/Magento/Ui/Component/Listing/Columns.php @@ -44,25 +44,7 @@ class Columns extends AbstractComponent } } } - $this->buildUrlsForInlineEditing(); - parent::prepare(); - } - /** - * Build urls for inline editing - * - * @return void - */ - protected function buildUrlsForInlineEditing() - { - $config = $this->getConfiguration(); - if (isset($config['editorConfig']) && isset($config['editorConfig']['clientConfig'])) { - foreach ($config['editorConfig']['clientConfig'] as $key => &$value) { - if (in_array($key, ['saveUrl', 'validateUrl'])) { - $value = $this->getContext()->getUrl($value); - } - } - } - $this->setData('config', $config); + parent::prepare(); } } -- GitLab From 5d1ac7fc6a7072511dd0617d267279156741a97f Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Thu, 10 Sep 2015 17:28:02 +0300 Subject: [PATCH 042/420] MAGETWO-42479: Refactor all entries modal windows --- .../web/catalog/product-attributes.js | 111 +++++++++--------- .../product/attribute/new/created.phtml | 2 +- 2 files changed, 55 insertions(+), 58 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js index f4624937f02..06df40c13a8 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js @@ -4,8 +4,9 @@ */ define([ 'jquery', + 'underscore', 'jquery/ui' -], function ($) { +], function ($, _) { 'use strict'; $.widget('mage.productAttributes', { @@ -15,74 +16,70 @@ define([ }); }, - _prepareUrl: function () { - var name = $('[data-role=product-attribute-search]').val(); + _initModal: function() { + var self = this; - return this.options.url + - (/\?/.test(this.options.url) ? '&' : '?') + - 'set=' + $('#attribute_set_id').val() + - '&attribute[frontend_label]=' + - window.encodeURIComponent(name); - }, - - _showPopup: function (event) { - var wrapper, - iframe; - - wrapper = $('<div id="create_new_attribute"/>').appendTo('body').dialog({ - // ToDo: refactor to a sliding panel + this.modal = $('<div id="create_new_attribute"/>').modal({ title: 'New Attribute', - width: '75%', - minHeight: 650, - modal: true, - resizable: false, - resizeStop: function () { - iframe.height($(this).outerHeight() + 'px'); - iframe.width($(this).outerWidth() + 'px'); + modalClass: 'AAAAA', + type: 'slide', + buttons: [], + opened: function () { + self.iframe = $('<iframe id="create_new_attribute_container">').attr({ + src: self._prepareUrl(event), + frameborder: 0 + }); + self.modal.append(self.iframe); + self._changeIframeSize(); + $(window).off().on('resize', _.debounce(self._changeIframeSize.bind(self), 400)); }, - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, - open: function () { - $(this).closest('.ui-dialog').addClass('ui-dialog-active'); + closed: function () { + var doc = self.iframe.get(0).document; - var topMargin = jQuery(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 45; - jQuery(this).closest('.ui-dialog').css('margin-top', topMargin); - }, - close: function () { - $(this).closest('.ui-dialog').removeClass('ui-dialog-active'); + if (doc && $.isFunction(doc.execCommand)) { + //IE9 break script loading but not execution on iframe removing + doc.execCommand('stop'); + self.iframe.remove(); + } + self.modal.data('modal').modal.remove() } }); + }, - iframe = $('<iframe id="create_new_attribute_container">').attr({ - src: this._prepareUrl(event), - frameborder: 0, - style: 'position:absolute;top:58px;left:0px;right:0px;bottom:0px' - }); + _getHeight: function () { + var modal = this.modal.data('modal').modal, + modalHead = modal.find('header'), + modalHeadHeight = modalHead.outerHeight(), + modalHeight = modal.outerHeight(), + modalContentPadding = this.modal.parent().outerHeight() - this.modal.parent().height(); - iframe.on('load', function () { - $(this).css({ - height: wrapper.outerHeight() + 'px', - width: wrapper.outerWidth() + 'px' - }); - }); + return modalHeight - modalHeadHeight - modalContentPadding; + }, - wrapper.append(iframe); + _getWidth: function () { + return this.modal.width(); + }, - wrapper.on('dialogclose', function () { - var dialog = this, - doc = iframe.get(0).document; + _changeIframeSize: function () { + this.modal.parent().outerHeight(this._getHeight()); + this.iframe.outerHeight(this._getHeight()); + this.iframe.outerWidth(this._getWidth()); - if (doc && $.isFunction(doc.execCommand)) { - //IE9 break script loading but not execution on iframe removing - doc.execCommand('stop'); - iframe.remove(); - } + }, - $(dialog).remove(); - }); + _prepareUrl: function () { + var name = $('[data-role=product-attribute-search]').val(); + + return this.options.url + + (/\?/.test(this.options.url) ? '&' : '?') + + 'set=' + $('#attribute_set_id').val() + + '&attribute[frontend_label]=' + + window.encodeURIComponent(name); + }, + + _showPopup: function () { + this._initModal(); + this.modal.modal('openModal'); } }); diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/attribute/new/created.phtml b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/attribute/new/created.phtml index c92d432da68..a24357f2bce 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/attribute/new/created.phtml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/attribute/new/created.phtml @@ -15,7 +15,7 @@ } else { $('[data-form=edit-product]').trigger('changeAttributeSet', set); } - $('#create_new_attribute').dialog('close'); + $('#create_new_attribute').modal('closeModal'); })(window.parent.jQuery); </script> -- GitLab From 049f9f4590b7ce37cc1579533bb953198f69e77a Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Thu, 10 Sep 2015 17:34:44 +0300 Subject: [PATCH 043/420] MAGETWO-42479: Refactor all entries modal windows --- .../templates/catalog/wysiwyg/js.phtml | 68 +++++++++---------- lib/web/mage/adminhtml/browser.js | 58 +++++++--------- 2 files changed, 56 insertions(+), 70 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/wysiwyg/js.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/wysiwyg/js.phtml index dec1418fba3..0b66f070b51 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/wysiwyg/js.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/wysiwyg/js.phtml @@ -5,15 +5,15 @@ */ // @codingStandardsIgnoreFile - ?> <script> require([ "jquery", "tinymce", + "Magento_Ui/js/modal/modal", "prototype", "mage/adminhtml/events" -], function(jQuery, tinyMCE){ +], function(jQuery, tinyMCE, modal){ //<![CDATA[ @@ -21,6 +21,7 @@ Window.keepMultiModalWindow = true; var catalogWysiwygEditor = { overlayShowEffectOptions : null, overlayHideEffectOptions : null, + modal: null, open : function(editorUrl, elementId) { if (editorUrl && elementId) { jQuery.ajax({ @@ -32,43 +33,40 @@ var catalogWysiwygEditor = { showLoader: true, dataType: 'html', success: function(data, textStatus, transport) { - try { - this.openDialogWindow(data, elementId); - } catch(e) { - alert(e.message); - } + this.openDialogWindow(data, elementId); }.bind(this) }); } }, - openDialogWindow : function(content, elementId) { - this.overlayShowEffectOptions = Windows.overlayShowEffectOptions; - this.overlayHideEffectOptions = Windows.overlayHideEffectOptions; - Windows.overlayShowEffectOptions = {duration:0}; - Windows.overlayHideEffectOptions = {duration:0}; - tinyMCE.editors[elementId].save(); - Dialog.confirm(content, { - draggable:true, - resizable:true, - closable:true, - className:"magento", - windowClassName:"popup-window", - title:'WYSIWYG Editor', - width:950, - height:555, - recenterAuto:false, - hideEffect:Element.hide, - showEffect:Element.show, - id:"catalog-wysiwyg-editor", - buttonClass:"form-button", - okLabel:"Submit", - ok: this.okDialogWindow.bind(this), - cancel: this.closeDialogWindow.bind(this), - onClose: this.closeDialogWindow.bind(this), - firedElementId: elementId - }); + openDialogWindow : function(data, elementId) { + var self = this; + + if (this.modal) { + this.modal.html(jQuery(data).html()); + } else { + this.modal = jQuery(data).modal({ + title: 'WYSIWYG Editor', + modalClass: 'magento', + type: 'slide', + firedElementId: elementId, + buttons: [{ + text: 'Submit', + click: function () { + self.okDialogWindow(this); + } + }, { + text: 'Cancel', + click: function () { + self.closeDialogWindow(this); + } + }], + close: function () { + self.closeDialogWindow(this); + } + }); + } + this.modal.modal('openModal'); $(elementId + '_editor').value = $(elementId).value; - content.evalScripts.bind(content).defer(); }, okDialogWindow : function(dialogWindow) { if (dialogWindow.options.firedElementId) { @@ -104,7 +102,7 @@ var catalogWysiwygEditor = { tinyMCE.execCommand('mceRemoveControl', true, wysiwygObj.id); } - dialogWindow.close(); + dialogWindow.closeModal(); Windows.overlayShowEffectOptions = this.overlayShowEffectOptions; Windows.overlayHideEffectOptions = this.overlayHideEffectOptions; } diff --git a/lib/web/mage/adminhtml/browser.js b/lib/web/mage/adminhtml/browser.js index 2abf3a9b022..5b801e3bd20 100644 --- a/lib/web/mage/adminhtml/browser.js +++ b/lib/web/mage/adminhtml/browser.js @@ -6,6 +6,7 @@ define([ "jquery", "tinymce", + "Magento_Ui/js/modal/modal", "jquery/ui", "jquery/jstree/jquery.jstree", "mage/mage" @@ -27,44 +28,31 @@ define([ }, openDialog: function(url, width, height, title, options) { var windowId = this.windowId, - content = '<div class="popup-window magento_message" id="' + windowId + '"></div>'; - $(content).dialog($.extend({ - autoOpen: true, - title: title || 'Insert File...', - modal: true, - resizable: false, - width: width || 1000, - height: height || 600, - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, - open: function() { - $(this).closest('.ui-dialog').addClass('ui-dialog-active'); + content = '<div class="popup-window magento_message" "id="' + windowId + '"></div>', + self = this; - var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 35; - $(this).closest('.ui-dialog').css('margin-top', topMargin); + if (this.modal) { + this.modal.html($(content).html()); + } else { + this.modal = $(content).modal({ + title: title || 'Insert File...', + modalClass: 'magento', + type: 'slide' + }); + } + this.modal.modal('openModal'); + $.ajax({ + url: url, + type: 'get', + context: $(this), + showLoader: true - $.ajax({ - url: url, - type: 'get', - context: $(this), - showLoader: true - }).done(function(data) { - this.html(data).trigger('contentUpdated'); - }); - }, - close: function(event, ui) { - $(this).closest('.ui-dialog').removeClass('ui-dialog-active'); - $(this).dialog('destroy'); - $('#' + windowId).remove(); - } - }, options)); + }).done(function(data) { + self.modal.html(data).trigger('contentUpdated'); + }); }, - closeDialog: function(win) { - win = win || window; - win.jQuery('#' + this.windowId).dialog('close'); + closeDialog: function() { + this.modal.modal('closeModal'); } }; -- GitLab From d4c9eb50f16d4dfc8af21a9345bfc7734fc74719 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Thu, 10 Sep 2015 18:12:40 +0300 Subject: [PATCH 044/420] MAGETWO-42479: Refactor all entries modal windows --- .../view/adminhtml/web/js/custom-options.js | 121 +++++++----------- 1 file changed, 48 insertions(+), 73 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js index b7a16ce3db8..ae0c4e07298 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js @@ -7,12 +7,14 @@ define([ 'jquery', 'mage/template', + 'Magento_Ui/js/modal/alert', 'jquery/ui', 'useDefault', 'collapsable', 'mage/translate', - 'mage/backend/validation' -], function ($, mageTemplate) { + 'mage/backend/validation', + 'Magento_Ui/js/modal/modal' +], function ($, mageTemplate, alert) { 'use strict'; $.widget('mage.customOptions', { @@ -120,90 +122,63 @@ define([ var importContainer = $('#import-container'), widget = this; - importContainer.dialog({ + importContainer.modal({ title: $.mage.__('Select Product'), - autoOpen: false, - minWidth: 980, - width: '75%', - modal: true, - resizable: true, - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, - create: function (event, ui) { - $(document).on('click', '#productGrid_massaction-form button', function () { - $('#import-custom-options-apply-button').trigger('click', 'massActionTrigger'); + type: 'slide', + opened: function () { + $(document).off().on('click', '#productGrid_massaction-form button', function () { + $('.import-custom-options-apply-button').trigger('click', 'massActionTrigger'); }); }, - open: function () { - $(this).closest('.ui-dialog').addClass('ui-dialog-active'); - - var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 135; - $(this).closest('.ui-dialog').css('margin-top', topMargin); - - $(this).addClass('admin__scope-old'); // ToDo UI: remove with old styles removal - }, - close: function () { - $(this).closest('.ui-dialog').removeClass('ui-dialog-active'); - }, - buttons: [ - { - text: $.mage.__('Import'), - id: 'import-custom-options-apply-button', - 'class': 'action-primary action-import', - click: function (event, massActionTrigger) { - var request = []; - $(this).find('input[name=product]:checked').map(function () { - request.push(this.value); - }); - - if (request.length === 0) { - if (!massActionTrigger) { - alert($.mage.__('Please select items.')); - } + buttons: [{ + text: $.mage.__('Import'), + 'class': 'action-primary action-import import-custom-options-apply-button', + click: function (event, massActionTrigger) { + var request = []; + + $(this.element).find('input[name=product]:checked').map(function () { + request.push(this.value); + }); - return; + if (request.length === 0) { + if (!massActionTrigger) { + alert({ + content: $.mage.__('Please select items.') + }); } - $.post(widget.options.customOptionsUrl, { - 'products[]': request, - form_key: widget.options.formKey - }, function ($data) { - $.parseJSON($data).each(function (el) { - el.id = widget.getFreeOptionId(el.id); - el.option_id = el.id; - - if (typeof el.optionValues !== 'undefined') { - for (var i = 0; i < el.optionValues.length; i++) { - el.optionValues[i].option_id = el.id; - } + return; + } + + $.post(widget.options.customOptionsUrl, { + 'products[]': request, + form_key: widget.options.formKey + }, function ($data) { + $.parseJSON($data).each(function (el) { + el.id = widget.getFreeOptionId(el.id); + el.option_id = el.id; + + if (typeof el.optionValues !== 'undefined') { + for (var i = 0; i < el.optionValues.length; i++) { + el.optionValues[i].option_id = el.id; } - //Adding option - widget.addOption(el); - //Will save new option on server side - $('#product_option_' + el.id + '_option_id').val(0); - $('#option_' + el.id + ' input[name$="option_type_id]"]').val(-1); - }); - importContainer.dialog('close'); + } + //Adding option + widget.addOption(el); + //Will save new option on server side + $('#product_option_' + el.id + '_option_id').val(0); + $('#option_' + el.id + ' input[name$="option_type_id]"]').val(-1); }); - } - }, - { - text: $.mage.__('Cancel'), - id: 'import-custom-options-close-button', - 'class': 'action-close', - click: function () { - $(this).dialog('close'); - } - }] + importContainer.modal('closeModal'); + }); + } + }] }); importContainer.load( this.options.productGridUrl, {form_key: this.options.formKey}, function () { - importContainer.dialog('open'); + importContainer.modal('openModal'); } ); }, -- GitLab From 5578e12c5686ea9f3561d2e347251895f794a9ad Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Thu, 10 Sep 2015 20:17:52 +0300 Subject: [PATCH 045/420] MAGETWO-42479: Refactor all entries modal windows --- .../Variable/view/adminhtml/web/variables.js | 52 ++++++------------- lib/web/mage/adminhtml/wysiwyg/widget.js | 36 ++++--------- 2 files changed, 28 insertions(+), 60 deletions(-) diff --git a/app/code/Magento/Variable/view/adminhtml/web/variables.js b/app/code/Magento/Variable/view/adminhtml/web/variables.js index 2b71f6bc50c..20292ecdf3c 100644 --- a/app/code/Magento/Variable/view/adminhtml/web/variables.js +++ b/app/code/Magento/Variable/view/adminhtml/web/variables.js @@ -3,10 +3,12 @@ * See COPYING.txt for license details. */ define([ - "jquery", - "jquery/ui", - "prototype" -], function(jQuery){ + 'jquery', + 'mage/translate', + 'Magento_Ui/js/modal/modal', + 'jquery/ui', + 'prototype', +], function(jQuery, $t){ window.Variables = { textareaElementId: null, @@ -50,43 +52,23 @@ window.Variables = { this.openDialogWindow(this.variablesContent); } }, - openDialogWindow: function(variablesContent) { + openDialogWindow: function (variablesContent) { var windowId = this.dialogWindowId; - jQuery('body').append('<div id="' + windowId + '">'+ Variables.variablesContent +'</div>'); - jQuery('#' + windowId).dialog({ - autoOpen: false, - title: "Insert Variable...", - modal: true, - resizable: false, - minWidth: 500, - width: '75%', - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, - open: function () { - jQuery(this).closest('.ui-dialog').addClass('ui-dialog-active'); - - var topMargin = jQuery(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30; - jQuery(this).closest('.ui-dialog').css('margin-top', topMargin); - }, - close: function(event, ui) { - jQuery(this).closest('.ui-dialog').removeClass('ui-dialog-active'); - jQuery(this).dialog('destroy'); - jQuery('#' + windowId).remove(); + jQuery('<div id="' + windowId + '">' + Variables.variablesContent + '</div>').modal({ + title: $t('Insert Variable...'), + type: 'slide', + buttons: [], + closed: function (e, modal) { + modal.modal.remove(); } }); - jQuery('#' + windowId).dialog('open'); + jQuery('#' + windowId).modal('openModal'); variablesContent.evalScripts.bind(variablesContent).defer(); }, - closeDialogWindow: function(window) { - var windowId = this.dialogWindowId; - if(jQuery('#' + windowId).length){ - jQuery('#' + windowId).dialog('close'); - } + closeDialogWindow: function() { + jQuery('#' + this.dialogWindowId).modal('closeModal'); }, prepareVariableRow: function(varValue, varLabel) { var value = (varValue).replace(/"/g, '"').replace(/'/g, '\\''); @@ -95,7 +77,7 @@ window.Variables = { }, insertVariable: function(value) { var windowId = this.dialogWindowId; - jQuery('#' + windowId).dialog('close'); + jQuery('#' + windowId).modal('closeModal'); var textareaElm = $(this.textareaElementId); if (textareaElm) { var scrollPos = textareaElm.scrollTop; diff --git a/lib/web/mage/adminhtml/wysiwyg/widget.js b/lib/web/mage/adminhtml/wysiwyg/widget.js index 363da71f2d9..38960d90591 100644 --- a/lib/web/mage/adminhtml/wysiwyg/widget.js +++ b/lib/web/mage/adminhtml/wysiwyg/widget.js @@ -11,7 +11,8 @@ define([ "mage/mage", "mage/validation", "mage/adminhtml/events", - "prototype" + "prototype", + 'Magento_Ui/js/modal/modal' ], function(jQuery, tinyMCE){ var widgetTools = { @@ -51,39 +52,24 @@ define([ return } var oThis = this; - this.dialogWindow = jQuery('<div/>').dialog({ - autoOpen: false, - title: jQuery.mage.__('Insert Frontend App...'), - modal: true, - resizable: false, - width: '75%', - dialogClass: 'popup-window', - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, - open: function () { + this.dialogWindow = jQuery('<div/>').modal({ + title: jQuery.mage.__('Insert Frontend App...'), + type: 'slide', + buttons: [], + opened: function () { var dialog = jQuery(this).addClass('loading magento_message') new Ajax.Updater($(this), widgetUrl, {evalScripts: true, onComplete: function () { dialog.removeClass('loading'); } }); - jQuery(this).closest('.ui-dialog').addClass('ui-dialog-active'); - - var topMargin = jQuery(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 35; - jQuery(this).closest('.ui-dialog').css('margin-top', topMargin); - - jQuery(this).addClass('admin__scope-old'); // ToDo UI: remove with old styles removal }, - close: function(event, ui) { - jQuery(this).closest('.ui-dialog').removeClass('ui-dialog-active'); - jQuery(this).dialog('destroy').remove(); + closed: function (e, modal) { + modal.modal.remove(); oThis.dialogOpened = false; } }); this.dialogOpened = true; - this.dialogWindow.dialog('open'); + this.dialogWindow.modal('openModal'); } }; @@ -257,7 +243,7 @@ define([ onComplete: function(transport) { try { widgetTools.onAjaxSuccess(transport); - widgetTools.dialogWindow.dialog('close'); + widgetTools.dialogWindow.modal('closeModal'); if (typeof(tinyMCE) != "undefined" && tinyMCE.activeEditor) { tinyMCE.activeEditor.focus(); -- GitLab From 2ea12f14235c09904cc4a5f0960aa369368ddade Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Fri, 11 Sep 2015 13:21:05 +0300 Subject: [PATCH 046/420] MAGETWO-42479: Refactor all entries modal windows --- lib/web/mage/adminhtml/wysiwyg/widget.js | 40 ++++++------------------ 1 file changed, 10 insertions(+), 30 deletions(-) diff --git a/lib/web/mage/adminhtml/wysiwyg/widget.js b/lib/web/mage/adminhtml/wysiwyg/widget.js index 38960d90591..ea4d602dc96 100644 --- a/lib/web/mage/adminhtml/wysiwyg/widget.js +++ b/lib/web/mage/adminhtml/wysiwyg/widget.js @@ -363,44 +363,24 @@ define([ }, openDialogWindow: function(content) { - this.dialogWindow = jQuery('<div/>').dialog({ - autoOpen: false, - title: this.config.buttons.open, - modal: true, - resizable: false, - width: '75%', - dialogClass: 'popup-window', - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, - open: function () { - jQuery(this).closest('.ui-dialog').addClass('ui-dialog-active'); + this.dialogWindow = jQuery('<div/>').modal({ + title: this.config.buttons.open, + type: 'slide', + buttons: [], + opened: function () { jQuery(this).addClass('magento_message'); - - var topMargin = jQuery(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() - 30; - jQuery(this).closest('.ui-dialog').css('margin-top', topMargin); - - jQuery(this).addClass('admin__scope-old'); // ToDo UI: remove with old styles removal }, - close: function(event, ui) { - jQuery(this).closest('.ui-dialog').removeClass('ui-dialog-active'); - jQuery(this).dialog('destroy').remove(); + closed: function(e, modal) { + modal.modal.remove(); + this.dialogWindow = null; } }); - this.dialogWindow.dialog('open').append(content); + this.dialogWindow.modal('openModal').append(content); }, closeDialogWindow: function(dialogWindow) { - if (!dialogWindow) { - dialogWindow = this.dialogWindow; - } - if (dialogWindow) { - this.dialogWindow.dialog('destroy').remove(); - } - this.dialogWindow = null; + dialogWindow.modal('closeModal'); }, getElementValue: function(value) { -- GitLab From 983ba8e8a350e56aef67d4bfe6cb2195a29a8ba8 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Fri, 11 Sep 2015 13:35:25 +0300 Subject: [PATCH 047/420] MAGETWO-42479: Refactor all entries modal windows --- .../view/adminhtml/web/js/bundle-product.js | 90 +++++++------------ .../templates/catalog/wysiwyg/js.phtml | 10 +-- lib/web/mage/adminhtml/browser.js | 3 +- 3 files changed, 41 insertions(+), 62 deletions(-) diff --git a/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js b/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js index 5b6515db33f..0d9a60d6469 100644 --- a/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js +++ b/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js @@ -8,11 +8,12 @@ /*global $H*/ define([ "jquery", + "Magento_Ui/js/modal/modal", "jquery/ui", "mage/translate", "Magento_Theme/js/sortable", "prototype" -], function($){ +], function($, modal){ 'use strict'; $.widget('mage.bundleProduct', { @@ -113,61 +114,38 @@ define([ delete selectedProductList[$(this).val()]; } }); - $selectionGrid.dialog({ - title: $optionBox.find('input[name$="[title]"]').val() === '' ? - $.mage.__('Add Products to New Option') : - $.mage.__('Add Products to Option "%1"') - .replace('%1',($('<div>').text($optionBox.find('input[name$="[title]"]').val()).html())), - autoOpen: false, - minWidth: 980, - width: '75%', - dialogClass: 'bundle', - modal: true, - resizable: true, - buttons: [{ - text: $.mage.__('Add Selected Products'), - 'class': 'action-primary action-add', - click: function() { - $.each(selectedProductList, function() { - window.bSelection.addRow(optionIndex, this); - }); - bSelection.gridRemoval.each( - function(pair) { - $optionBox.find('.col-sku').filter(function () { - return $.trim($(this).text()) === pair.key; // find row by SKU - }).closest('tr').find('button.delete').trigger('click'); - } - ); - widget.refreshSortableElements(); - widget._updateSelectionsPositions.apply(widget.element); - $selectionGrid.dialog('close'); - } - }, { - text: $.mage.__('Cancel'), - 'class': 'action-close', - click: function() { - $selectionGrid.dialog('close'); - } - }], - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, - open: function () { - $(this).closest('.ui-dialog').addClass('ui-dialog-active'); - - var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 45; - $(this).closest('.ui-dialog').css('margin-top', topMargin); - - $(this).addClass('admin__scope-old'); // ToDo UI: remove with old styles removal - }, - close: function() { - $(this).closest('.ui-dialog').removeClass('ui-dialog-active'); - $(this).dialog('destroy'); - } - }); + if (this.modal) { + this.modal.html($selectionGrid.html()); + } else { + this.modal = $selectionGrid.modal({ + title: $optionBox.find('input[name$="[title]"]').val() === '' ? + $.mage.__('Add Products to New Option') : + $.mage.__('Add Products to Option "%1"') + .replace('%1',($('<div>').text($optionBox.find('input[name$="[title]"]').val()).html())), + modalClass: 'bundle', + type: 'slide', + buttons: [{ + text: $.mage.__('Add Selected Products'), + 'class': 'action-primary action-add', + click: function () { + $.each(selectedProductList, function() { + window.bSelection.addRow(optionIndex, this); + }); + bSelection.gridRemoval.each( + function(pair) { + $optionBox.find('.col-sku').filter(function () { + return $.trim($(this).text()) === pair.key; // find row by SKU + }).closest('tr').find('button.delete').trigger('click'); + } + ); + widget.refreshSortableElements(); + widget._updateSelectionsPositions.apply(widget.element); + widget.modal.modal('closeModal'); + } + }] + }); + } $.ajax({ url: bSelection.selectionSearchUrl, dataType: 'html', @@ -178,7 +156,7 @@ define([ form_key: FORM_KEY }, success: function(data) { - $selectionGrid.html(data).dialog('open'); + widget.modal.html(data).modal('openModal'); }, context: $('body'), showLoader: true diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/wysiwyg/js.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/wysiwyg/js.phtml index 0b66f070b51..2a95f42a28c 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/wysiwyg/js.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/wysiwyg/js.phtml @@ -50,15 +50,15 @@ var catalogWysiwygEditor = { type: 'slide', firedElementId: elementId, buttons: [{ - text: 'Submit', - click: function () { - self.okDialogWindow(this); - } - }, { text: 'Cancel', click: function () { self.closeDialogWindow(this); } + },{ + text: 'Submit', + click: function () { + self.okDialogWindow(this); + } }], close: function () { self.closeDialogWindow(this); diff --git a/lib/web/mage/adminhtml/browser.js b/lib/web/mage/adminhtml/browser.js index 5b801e3bd20..68fe9233e81 100644 --- a/lib/web/mage/adminhtml/browser.js +++ b/lib/web/mage/adminhtml/browser.js @@ -37,7 +37,8 @@ define([ this.modal = $(content).modal({ title: title || 'Insert File...', modalClass: 'magento', - type: 'slide' + type: 'slide', + buttons: [] }); } this.modal.modal('openModal'); -- GitLab From 9bf47df4268d4f491f12a01b39ac65f685a67628 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Fri, 11 Sep 2015 13:42:47 +0300 Subject: [PATCH 048/420] MAGETWO-42479: Refactor all entries modal windows --- lib/web/mage/adminhtml/wysiwyg/widget.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/web/mage/adminhtml/wysiwyg/widget.js b/lib/web/mage/adminhtml/wysiwyg/widget.js index ea4d602dc96..a037065f29e 100644 --- a/lib/web/mage/adminhtml/wysiwyg/widget.js +++ b/lib/web/mage/adminhtml/wysiwyg/widget.js @@ -362,7 +362,7 @@ define([ ); }, - openDialogWindow: function(content) { + openDialogWindow: function (content) { this.dialogWindow = jQuery('<div/>').modal({ title: this.config.buttons.open, type: 'slide', @@ -370,7 +370,7 @@ define([ opened: function () { jQuery(this).addClass('magento_message'); }, - closed: function(e, modal) { + closed: function (e, modal) { modal.modal.remove(); this.dialogWindow = null; } @@ -379,8 +379,8 @@ define([ this.dialogWindow.modal('openModal').append(content); }, - closeDialogWindow: function(dialogWindow) { - dialogWindow.modal('closeModal'); + closeDialogWindow: function () { + this.dialogWindow.modal('closeModal').remove(); }, getElementValue: function(value) { -- GitLab From fc54ae7cf16c4cad0b1f53dfdfe3c1b874f80473 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Fri, 11 Sep 2015 13:45:35 +0300 Subject: [PATCH 049/420] MAGETWO-42479: Refactor all entries modal windows --- .../templates/catalog/category/tree.phtml | 948 ++++++++---------- 1 file changed, 445 insertions(+), 503 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml index ade5b5af579..1a37b2eb2a1 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml @@ -16,536 +16,478 @@ </div> <div class="tree-actions"> <?php if ($block->getRoot()): ?> - <?php //echo $block->getCollapseButtonHtml() ?> - <?php //echo $block->getExpandButtonHtml() ?> - <a href="#" - onclick="tree.collapseTree(); return false;"><?php echo __('Collapse All'); ?></a> - <span class="separator">|</span> <a href="#" - onclick="tree.expandTree(); return false;"><?php echo __('Expand All'); ?></a> + <?php //echo $block->getCollapseButtonHtml() ?> + <?php //echo $block->getExpandButtonHtml() ?> + <a href="#" + onclick="tree.collapseTree(); return false;"><?php echo __('Collapse All'); ?></a> + <span class="separator">|</span> <a href="#" + onclick="tree.expandTree(); return false;"><?php echo __('Expand All'); ?></a> <?php endif; ?> </div> -<?php if ($block->getRoot()): ?> + <?php if ($block->getRoot()): ?> <div class="tree-holder"> <div id="tree-div" class="tree-wrapper"></div> </div> </div> -<div data-id="information-dialog-tree" class="messages" style="display: none;"> - <div class="message message-notice"> - <div><?php echo __('This operation can take a long time'); ?></div> + <div data-id="information-dialog-tree" class="messages" style="display: none;"> + <div class="message message-notice"> + <div><?php echo __('This operation can take a long time'); ?></div> + </div> </div> -</div> -<!--[if IE]> -<script id="ie-deferred-loader" defer="defer" src=""></script> -<![endif]--> -<script> -var tree; -require([ - "jquery", - "jquery/ui", - "prototype", - "extjs/ext-tree-checkbox", - "mage/adminhtml/form", - "mage/translate" -], function(jQuery){ - -/** - * Fix ext compatibility with prototype 1.6 - */ -Ext.lib.Event.getTarget = function (e) { - var ee = e.browserEvent || e; - return ee.target ? Event.element(ee) : null; -}; - -Ext.tree.TreePanel.Enhanced = function (el, config) { - Ext.tree.TreePanel.Enhanced.superclass.constructor.call(this, el, config); -}; - -Ext.extend(Ext.tree.TreePanel.Enhanced, Ext.tree.TreePanel, { - - loadTree:function (config, firstLoad) { - var parameters = config['parameters']; - var data = config['data']; - - this.storeId = parameters['store_id']; - - if (this.storeId != 0 && $('add_root_category_button')) { - $('add_root_category_button').hide(); - } - - if ((typeof parameters['root_visible']) != 'undefined') { - this.rootVisible = parameters['root_visible'] * 1; - } - - var root = new Ext.tree.TreeNode(parameters); - - this.nodeHash = {}; - this.setRootNode(root); - - if (firstLoad) { - this.addListener('click', this.categoryClick); - this.addListener('beforenodedrop', categoryMove.createDelegate(this)); - } - - this.loader.buildCategoryTree(root, data); - this.el.dom.innerHTML = ''; - // render the tree - this.render(); - if (parameters['expanded']) { - this.expandAll(); - } else { - root.expand(); - } - - var selectedNode = this.getNodeById(parameters['category_id']); - if (selectedNode) { - this.currentNodeId = parameters['category_id']; - } - this.selectCurrentNode(); - - // Temporary solution will be replaced after refactoring of tree functionality - jQuery('body').off('tabsactivate.tree').on('tabsactivate.tree', jQuery.proxy(function (e, ui) { - this.activeTab = jQuery(ui.newTab).find('a').prop('id'); - }, this)) - }, - - request:function (url, params) { - if (!params) { - if (this.activeTab) { - var params = {active_tab_id:this.activeTab}; - } - else { - var params = {}; - } - } - if (!params.form_key) { - params.form_key = FORM_KEY; - } - var result = new Ajax.Request( - url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true' ), - { - parameters:params, - method:'post' - } - ); - - return result; - }, - - selectCurrentNode:function () { - if (this.currentNodeId) { - var selectedNode = this.getNodeById(this.currentNodeId); - if ((typeof selectedNode.attributes.path) != 'undefined') { - var path = selectedNode.attributes.path; - if (!this.storeId) { - path = '0/' + path; - } - this.selectPath(path); - } else { - this.getSelectionModel().select(selectedNode); - } - } - }, - - collapseTree:function () { - this.collapseAll(); - - this.selectCurrentNode(); - - if (!this.collapsed) { - this.collapsed = true; - this.loader.dataUrl = '<?php echo $block->getLoadTreeUrl(false) ?>'; - this.request(this.loader.dataUrl, false); - } - }, - - expandTree:function () { - this.expandAll(); - if (this.collapsed) { - this.collapsed = false; - this.loader.dataUrl = '<?php echo $block->getLoadTreeUrl(true) ?>'; - this.request(this.loader.dataUrl, false); - } - }, - - categoryClick:function (node, e) { - var url = this.buildUrl(node.id); - - this.currentNodeId = node.id; - if (!this.useAjax) { - setLocation(url); - return; - } - if (this.activeTab) { - var params = {active_tab_id:this.activeTab}; - } - updateContent(url, params); - }, - - buildUrl: function(id){ - var urlExt = (this.storeId ? 'store/' + this.storeId + '/' : '') + 'id/' + id + '/'; - - return parseSidUrl(this.baseUrl, urlExt); - }, - - getBaseUrl: function(){ - return this.baseUrl; - } -}); - -function reRenderTree(switcherParams) { - // re-render tree by store switcher - if (tree && switcherParams) { - var url; - if (switcherParams.useConfirm) { - if (!confirm("<?php echo __('Please confirm site switching. All data that hasn\'t been saved will be lost.') ?>")) { - return false; - } - } + <!--[if IE]> + <script id="ie-deferred-loader" defer="defer" src=""></script> + <![endif]--> + <script> + var tree; + require([ + "jquery", + 'Magento_Ui/js/modal/modal', + "jquery/ui", + "prototype", + "extjs/ext-tree-checkbox", + "mage/adminhtml/form", + "mage/translate" + ], function (jQuery, modal) { + + /** + * Fix ext compatibility with prototype 1.6 + */ + Ext.lib.Event.getTarget = function (e) { + var ee = e.browserEvent || e; + return ee.target ? Event.element(ee) : null; + }; - if ($('add_root_category_button')) { - if (!switcherParams.scopeId) { - $('add_root_category_button').show(); - } - else { - $('add_root_category_button').hide(); - } - } - - if (tree.useAjax) { - // retain current selected category id - url = tree.switchTreeUrl + switcherParams.scopeParams + 'id/' + tree.currentNodeId + '/'; - // load from cache - // load from ajax - // add form key - var params = { - form_key : FORM_KEY + Ext.tree.TreePanel.Enhanced = function (el, config) { + Ext.tree.TreePanel.Enhanced.superclass.constructor.call(this, el, config); }; - new Ajax.Request(url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true' ), { - parameters:params, - method:'post', - onComplete:function (transport) { - var response = eval('(' + transport.responseText + ')'); - if (!response['parameters']) { - return false; + + Ext.extend(Ext.tree.TreePanel.Enhanced, Ext.tree.TreePanel, { + + loadTree: function (config, firstLoad) { + var parameters = config['parameters']; + var data = config['data']; + + this.storeId = parameters['store_id']; + + if (this.storeId != 0 && $('add_root_category_button')) { + $('add_root_category_button').hide(); } - _renderNewTree(response, switcherParams.scopeParams); + if ((typeof parameters['root_visible']) != 'undefined') { + this.rootVisible = parameters['root_visible'] * 1; + } + + var root = new Ext.tree.TreeNode(parameters); + + this.nodeHash = {}; + this.setRootNode(root); + this.modal = modal; + + if (firstLoad) { + this.addListener('click', this.categoryClick); + this.addListener('beforenodedrop', categoryMove.bind(this)); + } + + this.loader.buildCategoryTree(root, data); + this.el.dom.innerHTML = ''; + // render the tree + this.render(); + if (parameters['expanded']) { + this.expandAll(); + } else { + root.expand(); + } + + var selectedNode = this.getNodeById(parameters['category_id']); + if (selectedNode) { + this.currentNodeId = parameters['category_id']; + } + this.selectCurrentNode(); + + // Temporary solution will be replaced after refactoring of tree functionality + jQuery('body').off('tabsactivate.tree').on('tabsactivate.tree', jQuery.proxy(function (e, ui) { + this.activeTab = jQuery(ui.newTab).find('a').prop('id'); + }, this)) + }, + + request: function (url, params) { + if (!params) { + if (this.activeTab) { + var params = {active_tab_id: this.activeTab}; + } + else { + var params = {}; + } + } + if (!params.form_key) { + params.form_key = FORM_KEY; + } + var result = new Ajax.Request( + url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true' ), + { + parameters: params, + method: 'post' + } + ); + + return result; + }, + + selectCurrentNode: function () { + if (this.currentNodeId) { + var selectedNode = this.getNodeById(this.currentNodeId); + if ((typeof selectedNode.attributes.path) != 'undefined') { + var path = selectedNode.attributes.path; + if (!this.storeId) { + path = '0/' + path; + } + this.selectPath(path); + } else { + this.getSelectionModel().select(selectedNode); + } + } + }, + + collapseTree: function () { + this.collapseAll(); + + this.selectCurrentNode(); + + if (!this.collapsed) { + this.collapsed = true; + this.loader.dataUrl = '<?php echo $block->getLoadTreeUrl(false) ?>'; + this.request(this.loader.dataUrl, false); + } + }, + + expandTree: function () { + this.expandAll(); + if (this.collapsed) { + this.collapsed = false; + this.loader.dataUrl = '<?php echo $block->getLoadTreeUrl(true) ?>'; + this.request(this.loader.dataUrl, false); + } + }, + + categoryClick: function (node, e) { + var url = this.buildUrl(node.id); + + this.currentNodeId = node.id; + if (!this.useAjax) { + setLocation(url); + return; + } + if (this.activeTab) { + var params = {active_tab_id: this.activeTab}; + } + updateContent(url, params); + }, + + buildUrl: function (id) { + var urlExt = (this.storeId ? 'store/' + this.storeId + '/' : '') + 'id/' + id + '/'; + + return parseSidUrl(this.baseUrl, urlExt); + }, + + getBaseUrl: function () { + return this.baseUrl; } }); - } else { - var baseUrl = '<?php echo $block->getEditUrl() ?>'; - var urlExt = switcherParams.scopeParams + 'id/' + tree.currentNodeId + '/'; - url = parseSidUrl(baseUrl, urlExt); - setLocation(url); - } - } - // render default tree - else { - _renderNewTree(); - } -} - -function _renderNewTree(config, scopeParams) { - if (!config) { - var config = defaultLoadTreeParams; - } - if (tree) { - tree.purgeListeners(); - tree.el.dom.innerHTML = ''; - } - tree = new Ext.tree.TreePanel.Enhanced('tree-div', newTreeParams); - - tree.loadTree(config, true); - - // try to select current category - var selectedNode = tree.getNodeById(config.parameters.category_id); - if (selectedNode) { - tree.currentNodeId = config.parameters.category_id; - } - tree.selectCurrentNode(); - - // update content area - var url = tree.editUrl; - if (scopeParams) { - url = url + scopeParams; - } - <?php if ($block->isClearEdit()): ?> - if (selectedNode) { - url = url + 'id/' + config.parameters.category_id; - } - <?php endif;?> - //updateContent(url); //commented since ajax requests replaced with http ones to load a category -} - -jQuery(function () { - categoryLoader = new Ext.tree.TreeLoader({ - dataUrl:'<?php echo $block->getLoadTreeUrl() ?>' - }); - - categoryLoader.processResponse = function(response, parent, callback) { - var config = JSON.parse(response.responseText); - - this.buildCategoryTree(parent, config); - - if (typeof callback == "function") { - callback(this, parent); - } - }; - - categoryLoader.buildCategoryTree = function (parent, config) { - if (!config) return null; - - if (parent && config && config.length) { - for (var i = 0; i < config.length; i++) { - var node; - var _node = Object.clone(config[i]); - if (_node.children && !_node.children.length) { - delete(_node.children); - node = new Ext.tree.AsyncTreeNode(_node); - } else { - node = new Ext.tree.TreeNode(config[i]); + + function reRenderTree(switcherParams) { + // re-render tree by store switcher + if (tree && switcherParams) { + var url; + if (switcherParams.useConfirm) { + if (!confirm("<?php echo __('Please confirm site switching. All data that hasn\'t been saved will be lost.') ?>")) { + return false; + } + } + + if ($('add_root_category_button')) { + if (!switcherParams.scopeId) { + $('add_root_category_button').show(); + } + else { + $('add_root_category_button').hide(); + } + } + + if (tree.useAjax) { + // retain current selected category id + url = tree.switchTreeUrl + switcherParams.scopeParams + 'id/' + tree.currentNodeId + '/'; + // load from cache + // load from ajax + // add form key + var params = { + form_key: FORM_KEY + }; + new Ajax.Request(url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true' ), { + parameters: params, + method: 'post', + onComplete: function (transport) { + var response = eval('(' + transport.responseText + ')'); + if (!response['parameters']) { + return false; + } + + _renderNewTree(response, switcherParams.scopeParams); + } + }); + } else { + var baseUrl = '<?php echo $block->getEditUrl() ?>'; + var urlExt = switcherParams.scopeParams + 'id/' + tree.currentNodeId + '/'; + url = parseSidUrl(baseUrl, urlExt); + setLocation(url); + } } - parent.appendChild(node); - node.loader = node.getOwnerTree().loader; - if (_node.children) { - this.buildCategoryTree(node, _node.children); + // render default tree + else { + _renderNewTree(); } } - } - }; - categoryLoader.buildHash = function (node) { - var hash = {}; + function _renderNewTree(config, scopeParams) { + if (!config) { + var config = defaultLoadTreeParams; + } + if (tree) { + tree.purgeListeners(); + tree.el.dom.innerHTML = ''; + } + tree = new Ext.tree.TreePanel.Enhanced('tree-div', newTreeParams); - hash = this.toArray(node.attributes); + tree.loadTree(config, true); - if (node.childNodes.length > 0 || (node.loaded == false && node.loading == false)) { - hash['children'] = new Array; + // try to select current category + var selectedNode = tree.getNodeById(config.parameters.category_id); + if (selectedNode) { + tree.currentNodeId = config.parameters.category_id; + } + tree.selectCurrentNode(); - for (var i = 0, len = node.childNodes.length; i < len; i++) { - if (!hash['children']) { - hash['children'] = new Array; + // update content area + var url = tree.editUrl; + if (scopeParams) { + url = url + scopeParams; + } + <?php if ($block->isClearEdit()): ?> + if (selectedNode) { + url = url + 'id/' + config.parameters.category_id; } - hash['children'].push(this.buildHash(node.childNodes[i])); + <?php endif;?> + //updateContent(url); //commented since ajax requests replaced with http ones to load a category } - } - - return hash; - }; - - categoryLoader.toArray = function (attributes) { - var data = {form_key:FORM_KEY}; - for (var key in attributes) { - var value = attributes[key]; - data[key] = value; - } - - return data; - }; - - categoryLoader.on("beforeload", function (treeLoader, node) { - treeLoader.baseParams.id = node.attributes.id; - treeLoader.baseParams.store = node.attributes.store; - treeLoader.baseParams.form_key = FORM_KEY; - }); - - categoryLoader.on("load", function (treeLoader, node, config) { - //varienWindowOnload(); - }); - - scopeSwitcherHandler = reRenderTree; - - newTreeParams = { - animate:false, - loader:categoryLoader, - enableDD:true, - containerScroll:true, - selModel:new Ext.tree.CheckNodeMultiSelectionModel(), - rootVisible:'<?php echo $block->getRoot()->getIsVisible() ?>', - useAjax: <?php echo $block->getUseAjax() ?>, - switchTreeUrl:'<?php echo $block->getSwitchTreeUrl() ?>', - editUrl:'<?php echo $block->getEditUrl() ?>', - currentNodeId: <?php echo (int)$block->getCategoryId() ?>, - baseUrl: '<?php echo $block->getEditUrl() ?>' - }; - - defaultLoadTreeParams = { - parameters:{ - text:'<?php echo htmlentities($block->getRoot()->getName()) ?>', - draggable:false, - allowDrop : <?php if ($block->getRoot()->getIsVisible()): ?>true<?php else : ?>false<?php endif; ?>, - id: <?php echo (int)$block->getRoot()->getId() ?>, - expanded: <?php echo (int)$block->getIsWasExpanded() ?>, - store_id: <?php echo (int)$block->getStore()->getId() ?>, - category_id: <?php echo (int)$block->getCategoryId() ?> - }, - data: <?php echo $block->getTreeJson() ?> - }; - - reRenderTree(); -}); - -function addNew(url, isRoot) { - if (isRoot) { - tree.currentNodeId = tree.root.id; - } - - if (/store\/\d+/.test(url)) { - url = url.replace(/store\/\d+/, "store/" + tree.storeId); - } - else { - url += "store/" + tree.storeId + "/"; - } - - url += 'parent/' + tree.currentNodeId; - updateContent(url); -} - -var mageDialog = (function($) { - var self = {dialogOpened: false, callback: []}; - - self.callback = {ok: [], cancel: []}; - self.createDialog = function () { - var onEvent = function (type, dialog) { - self.callback[type].forEach(function(call) { - call(); - }); - $(dialog).dialog( "close" ); - }; - var _resetState = function() { - self.dialogOpened = false; - self.callback = {ok: [], cancel: []}; - delete self.dialog; - }; - self.dialog = $('[data-id="information-dialog-category"]').dialog({ - autoOpen: false, - modal: true, - dialogClass: 'popup-window ui-popup-message', - resizable: false, - width: '75%', - title: $.mage.__('Warning message'), - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, - buttons: [{ - text: $.mage.__('Ok'), - 'class': 'action-primary', - click: function () { - onEvent('ok', this); + + jQuery(function () { + categoryLoader = new Ext.tree.TreeLoader({ + dataUrl: '<?php echo $block->getLoadTreeUrl() ?>' + }); + + categoryLoader.processResponse = function (response, parent, callback) { + var config = JSON.parse(response.responseText); + + this.buildCategoryTree(parent, config); + + if (typeof callback == "function") { + callback(this, parent); + } + }; + + categoryLoader.buildCategoryTree = function (parent, config) { + if (!config) return null; + + if (parent && config && config.length) { + for (var i = 0; i < config.length; i++) { + var node; + var _node = Object.clone(config[i]); + if (_node.children && !_node.children.length) { + delete(_node.children); + node = new Ext.tree.AsyncTreeNode(_node); + } else { + node = new Ext.tree.TreeNode(config[i]); + } + parent.appendChild(node); + node.loader = node.getOwnerTree().loader; + if (_node.children) { + this.buildCategoryTree(node, _node.children); + } + } + } + }; + + categoryLoader.buildHash = function (node) { + var hash = {}; + + hash = this.toArray(node.attributes); + + if (node.childNodes.length > 0 || (node.loaded == false && node.loading == false)) { + hash['children'] = new Array; + + for (var i = 0, len = node.childNodes.length; i < len; i++) { + if (!hash['children']) { + hash['children'] = new Array; + } + hash['children'].push(this.buildHash(node.childNodes[i])); + } } - }, { - text: $.mage.__('Cancel'), - 'class': 'action-close', - click: function () { - onEvent('cancel', this); + + return hash; + }; + + categoryLoader.toArray = function (attributes) { + var data = {form_key: FORM_KEY}; + for (var key in attributes) { + var value = attributes[key]; + data[key] = value; } + + return data; + }; + + categoryLoader.on("beforeload", function (treeLoader, node) { + treeLoader.baseParams.id = node.attributes.id; + treeLoader.baseParams.store = node.attributes.store; + treeLoader.baseParams.form_key = FORM_KEY; + }); + + categoryLoader.on("load", function (treeLoader, node, config) { + //varienWindowOnload(); + }); + + scopeSwitcherHandler = reRenderTree; + + newTreeParams = { + animate: false, + loader: categoryLoader, + enableDD: true, + containerScroll: true, + selModel: new Ext.tree.CheckNodeMultiSelectionModel(), + rootVisible: '<?php echo $block->getRoot()->getIsVisible() ?>', + useAjax: <?php echo $block->getUseAjax() ?>, + switchTreeUrl: '<?php echo $block->getSwitchTreeUrl() ?>', + editUrl: '<?php echo $block->getEditUrl() ?>', + currentNodeId: <?php echo (int)$block->getCategoryId() ?>, + baseUrl: '<?php echo $block->getEditUrl() ?>' + }; + + defaultLoadTreeParams = { + parameters: { + text: '<?php echo htmlentities($block->getRoot()->getName()) ?>', + draggable: false, + allowDrop: <?php if ($block->getRoot()->getIsVisible()): ?>true<?php else : ?>false<?php endif; ?>, + id: <?php echo (int)$block->getRoot()->getId() ?>, + expanded: <?php echo (int)$block->getIsWasExpanded() ?>, + store_id: <?php echo (int)$block->getStore()->getId() ?>, + category_id: <?php echo (int)$block->getCategoryId() ?> + }, + data: <?php echo $block->getTreeJson() ?> + }; + + reRenderTree(); + }); + + function addNew(url, isRoot) { + if (isRoot) { + tree.currentNodeId = tree.root.id; } - ], - open: function () { - $(this).closest('.ui-dialog').addClass('ui-dialog-active'); - self.dialogOpened = true; - - var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30; - $(this).closest('.ui-dialog').css('margin-top', topMargin); - }, - close: function(event, ui) { - $(this).dialog('destroy'); - _resetState(); - } - }); - }; - - return { - onOk: function(call) { - self.callback.ok.push(call); - return this; - }, - onCancel: function(call) { - self.callback.cancel.push(call); - return this; - }, - show: function() { - if (self.dialog == undefined) { - self.createDialog(); - } - if (self.dialogOpened == false) { - self.dialog.dialog('open'); - } - return this; - } - }; -})(jQuery); - -function categoryMove(obj) { - var data = {id:obj.dropNode.id, form_key:FORM_KEY}; - - data.point = obj.point; - switch (obj.point) { - case 'above' : - data.pid = obj.target.parentNode.id; - data.paid = obj.dropNode.parentNode.id; - if (obj.target.previousSibling) { - data.aid = obj.target.previousSibling.id; - } else { - data.aid = 0; - } - break; - case 'below' : - data.pid = obj.target.parentNode.id; - data.aid = obj.target.id; - break; - case 'append' : - data.pid = obj.target.id; - data.paid = obj.dropNode.parentNode.id; - if (obj.target.lastChild) { - data.aid = obj.target.lastChild.id; - } else { - data.aid = 0; - } - break; - default : - obj.cancel = true; - return obj; - } - - var pd = []; - for (var key in data) { - pd.push(encodeURIComponent(key), "=", encodeURIComponent(data[key]), "&"); - } - pd.splice(pd.length - 1, 1); - - mageDialog.onOk(function() { - (function($){ - $.ajax({ - url: '<?php echo $block->getMoveUrl() ?>', - method : 'POST', - data: pd.join(""), - showLoader: true - }).done(function(data) { - if (data.messages && data.messages.length > 0) { - $('[name=category-edit-form] .messages').html(data.messages); + + if (/store\/\d+/.test(url)) { + url = url.replace(/store\/\d+/, "store/" + tree.storeId); } - if (data.error) { - reRenderTree(); - } else { - $(obj.tree.container.dom).trigger('categoryMove.tree'); + else { + url += "store/" + tree.storeId + "/"; } - }).fail(function(jqXHR, textStatus) { - if (window.console) { - console.log(textStatus); + + url += 'parent/' + tree.currentNodeId; + updateContent(url); + } + + function categoryMove(obj) { + var data = {id: obj.dropNode.id, form_key: FORM_KEY}; + + data.point = obj.point; + switch (obj.point) { + case 'above' : + data.pid = obj.target.parentNode.id; + data.paid = obj.dropNode.parentNode.id; + if (obj.target.previousSibling) { + data.aid = obj.target.previousSibling.id; + } else { + data.aid = 0; + } + break; + case 'below' : + data.pid = obj.target.parentNode.id; + data.aid = obj.target.id; + break; + case 'append' : + data.pid = obj.target.id; + data.paid = obj.dropNode.parentNode.id; + if (obj.target.lastChild) { + data.aid = obj.target.lastChild.id; + } else { + data.aid = 0; + } + break; + default : + obj.cancel = true; + return obj; } - location.reload(); - }); - })(jQuery); - }).onCancel(function() { - reRenderTree(); - }).show(); -} - window.addNew = addNew; - -}); -</script> + + var pd = []; + for (var key in data) { + pd.push(encodeURIComponent(key), "=", encodeURIComponent(data[key]), "&"); + } + pd.splice(pd.length - 1, 1); + + jQuery('[data-id="information-dialog-category"]').modal({ + type: 'popup', + buttons: [{ + text: 'Ok', + class: '', + click: function () { + (function ($) { + $.ajax({ + url: '<?php echo $block->getMoveUrl() ?>//', + method: 'POST', + data: pd.join(""), + showLoader: true + }).done(function (data) { + if (data.messages && data.messages.length > 0) { + $('[name=category-edit-form] .messages').html(data.messages); + } + if (data.error) { + reRenderTree(); + } else { + $(obj.tree.container.dom).trigger('categoryMove.tree'); + } + }).fail(function (jqXHR, textStatus) { + if (window.console) { + console.log(textStatus); + } + location.reload(); + }); + })(jQuery); + this.closeModal(); + } + + }, { + text: 'Cancel', + class: '', + click: function () { + reRenderTree(); + this.closeModal(); + } + }] + + }).trigger('openModal'); + + } + + window.addNew = addNew; + + }); + </script> <?php endif; ?> -- GitLab From 1030911cb760df1182618423a2cabc0f57c0e531 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Mon, 7 Sep 2015 16:04:54 +0300 Subject: [PATCH 050/420] JS-153: Magnifier preview must be hidden, while start swiping or dragging --- lib/web/mage/gallery/gallery.html | 4 ++-- lib/web/magnifier/magnify.js | 40 +++++++++++++++++++++++++++---- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/lib/web/mage/gallery/gallery.html b/lib/web/mage/gallery/gallery.html index 6a9a3cfbe3c..69a196d86c6 100644 --- a/lib/web/mage/gallery/gallery.html +++ b/lib/web/mage/gallery/gallery.html @@ -8,13 +8,13 @@ <div class="fotorama__wrap fotorama__wrap--css3 fotorama__wrap--slide fotorama__wrap--toggle-arrows"> <div class="fotorama__stage"> <div class="fotorama__arr fotorama__arr--prev" tabindex="0" role="button" aria-label="Previos"> - <div class="fotorama__arr__arr"></div> + <div class="fotorama__arr__arr" data-gallery-role="arrow"></div> </div> <div class="fotorama__stage__shaft" tabindex="0" data-gallery-role="stage-shaft"> </div> <div class="fotorama__arr fotorama__arr--next fotorama__arr--disabled" tabindex="-1" role="button" aria-label="Next"> - <div class="fotorama__arr__arr"></div> + <div class="fotorama__arr__arr" data-gallery-role="arrow"></div> </div> <div class="fotorama__video-close"></div> </div> diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index a30a827aabd..146c014b444 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -13,7 +13,9 @@ define([ var isTouchEnabled = 'ontouchstart' in document.documentElement, gallerySelector = '[data-gallery-role="gallery"]', magnifierSelector = '[data-gallery-role="magnifier"]', - magnifierZoomSelector = '[data-gallery-role="magnifier-zoom"]'; + magnifierZoomSelector = '[data-gallery-role="magnifier-zoom"]', + hideMagnifier, + behaveOnHover; if (isTouchEnabled) { $(element).on('fotorama:showend fotorama:load', function () { @@ -23,8 +25,38 @@ define([ return config; } + /** + * Hides magnifier preview and zoom blocks. + */ + hideMagnifier = function () { + $(magnifierSelector).empty().hide(); + $(magnifierZoomSelector).remove(); + }; + + /** + * Hides magnifier on drag and while arrow click. + */ + behaveOnHover = function (e, initPos) { + var pos = [e.pageX, e.pageY], + isArrow = $(e.target).data('gallery-role') === 'arrow', + isClick = initPos[0] === pos[0] && initPos[1] === pos[1]; + if (isArrow || !isClick) { + hideMagnifier(); + } + }; + if (config.magnifierOpts.eventType === 'click') { config.options.swipe = false; + } else if (config.magnifierOpts.eventType === 'hover') { + $(element).on('pointerdown mousedown MSPointerDown', function (e) { + var pos = [e.pageX, e.pageY]; + $(element).on('mousemove pointermove MSPointerMove', function (ev) { + navigator.msPointerEnabled ? hideMagnifier() : behaveOnHover(ev, pos); + }); + $(document).on('mouseup pointerup MSPointerUp', function () { + $(element).off('mousemove pointermove MSPointerMove'); + }); + }); } $.extend(config.magnifierOpts, { @@ -48,15 +80,13 @@ define([ }); $(element).on('fotorama:showend fotorama:load', function (e, fotorama) { - $(magnifierSelector).empty().hide(); - $(magnifierZoomSelector).remove(); + hideMagnifier(); config.magnifierOpts.large = $(gallerySelector).data('fotorama').activeFrame.img; config.magnifierOpts.original = fotorama.data[fotorama.activeIndex].original; $($(gallerySelector).data('fotorama').activeFrame.$stageFrame).magnify(config.magnifierOpts); }); $(element).on('fotorama:show', function () { - $(magnifierSelector).empty().hide(); - $(magnifierZoomSelector).remove(); + hideMagnifier(); }); return config; -- GitLab From fc20660d3b079106c31e14ee8c8d56f0e642b0b7 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Mon, 7 Sep 2015 16:13:45 +0300 Subject: [PATCH 051/420] JS-182: Magnifier doesn't appear on gallery arrows hover --- lib/web/magnifier/magnifier.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 3a31236832e..6e5a05cfd68 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -394,7 +394,7 @@ onThumbLeave(); } handleEvents(e); - isOverThumb = true; + isOverThumb = inBounds; } }).trigger('mouseover'); } @@ -564,6 +564,10 @@ getMousePos(); + if (gEventType === 'hover') { + isOverThumb = inBounds; + } + if (inBounds && isOverThumb) { $largeWrapper.removeClass(MagnifyCls.magnifyHidden); move(); -- GitLab From 1f1e43b79c77185e8117bf0e1119ea7762d8f5cd Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Mon, 7 Sep 2015 16:23:41 +0300 Subject: [PATCH 052/420] JS-160: Erratic behaviour when changing slides --- lib/web/fotorama/fotorama.js | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 592f9d4cff0..7ae347e8dd7 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -1573,17 +1573,9 @@ fotoramaVersion = '4.6.4'; if (typeof options.overPos !== 'undefined' && options.overPos !== options.pos) { elPos = options.overPos; - onEndFn = function () { - slide($el, $.extend({}, options, { - overPos: options.pos, - time: Math.max(TRANSITION_DURATION, options.time / 2) - })); - }; } - ////////console.time('var translate = $.extend'); var translate = $.extend(getTranslate(elPos/*, options._001*/), options.width && {width: options.width}); - ////////console.timeEnd('var translate = $.extend'); if (elData && elData.sliding) { elData.sliding = true; } @@ -1591,9 +1583,7 @@ fotoramaVersion = '4.6.4'; if (CSS3) { $el.css($.extend(getDuration(options.time), translate)); if (options.time > 10) { - ////////console.time('afterTransition'); afterTransition($el, 'transform', onEndFn, options.time); - ////////console.timeEnd('afterTransition'); } else { onEndFn(); } -- GitLab From 8885c3ea99c1106d09b82ecc381111c5c41429f0 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Mon, 7 Sep 2015 16:49:16 +0300 Subject: [PATCH 053/420] JS-171: Implement enabling/disabling of full-screen mode --- .../templates/product/view/gallery.phtml | 1 + .../frontend/Magento/blank/etc/view.xml | 1 + app/design/frontend/Magento/luma/etc/view.xml | 3 +- lib/web/mage/gallery/gallery.js | 2 +- lib/web/mage/gallery/gallery.less | 32 ++++++++----------- 5 files changed, 19 insertions(+), 20 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 3089c2cf50f..5c81ceb6209 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -30,6 +30,7 @@ "loop": <?php echo $block->getVar("gallery:loop"); ?>, "keyboard": <?php echo $block->getVar("gallery:keyboard"); ?>, "arrows": <?php echo $block->getVar("gallery:arrows"); ?>, + "allowfullscreen": <?php echo $block->getVar("gallery:allowfullscreen"); ?>, "showCaption": <?php echo $block->getVar("gallery:show_caption"); ?>, "width": <?php echo $block->getImageAttribute('product_page_image_medium', 'width'); ?>, "thumbwidth": <?php echo $block->getImageAttribute('product_page_image_small', 'width'); ?>, diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 897a3c54b3b..4c3a737ee7e 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -185,6 +185,7 @@ <var name="gallery:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false) --> <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:show_caption">false</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Left position of magnifier --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index 2795d84c168..4b3777ba944 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -188,7 +188,8 @@ <var name="gallery:loop">false</var> <!-- Gallery navigation loop (true/false) --> <var name="gallery:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false) --> <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> - <var name="gallery:show_caption">true</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:caption">true</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Right position of magnifier --> diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index 9f81daba85b..7eeed339a86 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -42,7 +42,7 @@ define([ $element: $(element), currentConfig: config, defaultConfig: _.clone(config), - fullscreenConfig: _.clone(config.fullscreen), + fullscreenConfig: _.clone(config.allowfullscreen), breakpoints: config.breakpoints, activeBreakpoint: {}, fotoramaApi: null, diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 9fd58e8b302..0e5d52ae073 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -58,16 +58,6 @@ width: 100%; } -.fotorama-image-reset { - border-radius: 0 !important; - box-shadow: none !important; - max-height: 99999px !important; - max-width: 99999px !important; - min-height: 0 !important; - min-width: 0 !important; - padding: 0 !important; -} - .fotorama-grab-cursor { cursor: move; cursor: -webkit-grab; @@ -202,8 +192,7 @@ } .fotorama--fullscreen { - &:extend(.fotorama-image-reset); - background: @color-black; + background: @color-white; bottom: 0 !important; float: none !important; height: 100% !important; @@ -214,9 +203,8 @@ top: 0 !important; width: 100% !important; z-index: @z-index-10 !important; - .fotorama__stage, - .fotorama__nav { - background: @color-black; + .fotorama__wrap { + max-width: 100% !important; } } @@ -583,6 +571,14 @@ &:extend(.fotorama-no-tap); cursor: pointer; position: absolute; +} + +.fotorama__arr { + z-index: @z-index-9; + +} +.fotorama__fullscreen-icon, +.fotorama__video-close { z-index: @z-index-10; } @@ -629,7 +625,7 @@ right: 2px; top: 2px; width: @size-fotorama-block; - z-index: 20; + z-index: @z-index-10; } .fotorama__fullscreen-icon { @@ -642,7 +638,7 @@ .fotorama--fullscreen { .fotorama__fullscreen-icon { - background-position: (-@fotorama_fullscreen_button) (-@fotorama_fullscreen_button); + background-position: (-@size-fotorama-block) 0; } } @@ -859,7 +855,7 @@ overflow: hidden; position: absolute; top: 0; - z-index: @z-index-10; + z-index: @z-index-9; } .magnify-lens { -- GitLab From 634c32d50db5ceee61ccf90e122774f942c90c9a Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Wed, 9 Sep 2015 16:49:25 +0300 Subject: [PATCH 054/420] JS-175: Implement transition options support from theme level --- .../templates/product/view/gallery.phtml | 6 +++ .../frontend/Magento/blank/etc/view.xml | 2 + app/design/frontend/Magento/luma/etc/view.xml | 2 + .../js/jasmine/assets/gallery/config.json | 9 ++++- .../js/jasmine/tests/lib/mage/gallery.test.js | 37 ++++++++++++++++++- 5 files changed, 53 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 5c81ceb6209..a36f9bccf20 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -38,6 +38,12 @@ ?: $block->getImageAttribute('product_page_image_small', 'width'); ?>, "height": <?php echo $block->getImageAttribute('product_page_image_medium', 'height') ?: $block->getImageAttribute('product_page_image_medium', 'width'); ?> + "transitionduration": <?php echo $block->getVar("gallery:transition:duration"); ?>, + "transition": "<?php echo $block->getVar("gallery:transition:effect"); ?>" + }, + "fullscreen": { + "nav": "thumbs", + "swipe": false }, "breakpoints": { "mobile": { diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 4c3a737ee7e..de5711efd7e 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -186,6 +186,8 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:show_caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> + <var name="gallery:transition:effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> + <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Left position of magnifier --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index 4b3777ba944..518193199c5 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -190,6 +190,8 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:caption">true</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> + <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> + <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Right position of magnifier --> diff --git a/dev/tests/js/jasmine/assets/gallery/config.json b/dev/tests/js/jasmine/assets/gallery/config.json index b3c8b8bc0b3..d1d8e94d7f2 100644 --- a/dev/tests/js/jasmine/assets/gallery/config.json +++ b/dev/tests/js/jasmine/assets/gallery/config.json @@ -59,12 +59,17 @@ "arrows": "false", "thumbwidth": "90", "thumbheight": "90", - "ratio": "1" + "ratio": "1", + "allowfullscreen": true + }, + "fullscreen": { + "nav": false }, "breakpoints": { "alias": { "conditions": { - "min-width": "0px" + "min-width": "0px", + "max-width": "1px" }, "options": { "options": { diff --git a/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js b/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js index 3f076659b49..dd29ec79a64 100644 --- a/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js +++ b/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js @@ -19,6 +19,7 @@ define([ stageSelector = '[data-gallery-role="stage-shaft"]', navSelector = '[data-gallery-role="nav-frame"]', dotSelector = '[data-nav-type="dot"]', + navWrap = '[data-gallery-role="nav-wrap"]', dataToUpdate = [ { img: 'data:image/png;base64,' + @@ -33,7 +34,16 @@ define([ img: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAw' + 'CAAAAC0lEQVR42mP4Xw8AAoABf5/NhYYAAAAASUVORK5CYII=' } - ]; + ], + waitsFor = function (test, fn) { + if (test()) { + fn(); + } else { + setTimeout(function () { + waitsFor(test, fn); + }, 10); + } + }; gallery(magnifier(conf, body), body); @@ -115,5 +125,30 @@ define([ it('breakpoints override configs', function () { expect($('.fotorama__arr').css('display')).toBe('none'); }); + + it('fullscreen enter', function (done) { + expect($(navWrap).css('display') === 'block').toBeTruthy(); + galleryAPI.fotorama.requestFullScreen(); + + waitsFor(function () { + return $(navWrap).css('display') !== 'block'; + }, function () { + expect($(navWrap).css('display') === 'none').toBeTruthy(); + done(); + }); + }); + + + it('fullscreen exit', function (done) { + expect($(navWrap).css('display') === 'none').toBeTruthy(); + galleryAPI.fotorama.cancelFullScreen(); + + waitsFor(function () { + return $(navWrap).css('display') !== 'none'; + }, function () { + expect($(navWrap).css('display') === 'block').toBeTruthy(); + done(); + }); + }); }); }); -- GitLab From 6b15356040a3a9d4150060732ad35929c4e7b24a Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Wed, 9 Sep 2015 17:34:32 +0300 Subject: [PATCH 055/420] JS-157: Implement drag for image on desktops --- .../templates/product/view/gallery.phtml | 8 +- .../frontend/Magento/blank/etc/view.xml | 9 +- app/design/frontend/Magento/luma/etc/view.xml | 8 ++ lib/web/fotorama/fotorama.js | 2 +- lib/web/mage/gallery/gallery.js | 5 +- lib/web/mage/gallery/gallery.less | 15 ++ lib/web/magnifier/magnifier.js | 131 ++++++++++++++++++ lib/web/magnifier/magnify.js | 5 +- 8 files changed, 175 insertions(+), 8 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index a36f9bccf20..024df1446a5 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -42,8 +42,12 @@ "transition": "<?php echo $block->getVar("gallery:transition:effect"); ?>" }, "fullscreen": { - "nav": "thumbs", - "swipe": false + "nav": "<?php echo $block->getVar("gallery:fullscreen:navigation"); ?>", + "loop": <?php echo $block->getVar("gallery:fullscreen:loop"); ?>, + "arrows": <?php echo $block->getVar("gallery:fullscreen:arrows"); ?>, + "showCaption": <?php echo $block->getVar("gallery:fullscreen:show_caption"); ?>, + "transitionduration": <?php echo $block->getVar("gallery:fullscreen:transition:duration"); ?>, + "transition": "<?php echo $block->getVar("gallery:fullscreen:transition:effect"); ?>" }, "breakpoints": { "mobile": { diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index de5711efd7e..15a8191641f 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -186,9 +186,16 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:show_caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> - <var name="gallery:transition:effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> + <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> + <var name="gallery:fullscreen:loop">false</var> <!-- Fullscreen navigation loop (true/false) --> + <var name="gallery:fullscreen:arrows">null</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> + <var name="gallery:fullscreen:show_caption">null</var> <!-- Display alt text as image title (true/false/null) --> + <var name="gallery:fullscreen:transition:effect">crossfade</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> + <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Left position of magnifier --> <var name="magnifier:width"></var> <!-- Width of magnifier block --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index 518193199c5..df358d1629b 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -193,6 +193,14 @@ <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> + <var name="gallery:fullscreen:loop">true</var> <!-- Fullscreen navigation loop (true/false/null) --> + <var name="gallery:fullscreen:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> + <var name="gallery:fullscreen:arrows">false</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> + <var name="gallery:fullscreen:show_caption">false</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:fullscreen:transition:effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> + <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Right position of magnifier --> <var name="magnifier:width"></var> <!-- Width of magnifier block --> diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 7ae347e8dd7..5f34cd9820e 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -977,7 +977,7 @@ fotoramaVersion = '4.6.4'; arrows: true, click: true, - swipe: true, + swipe: false, trackpad: false, shuffle: false, diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index 7eeed339a86..ed4e12dde1f 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -36,6 +36,7 @@ define([ initialize: function (config, element) { this._super(); + config.options.swipe = true; this.config = config; this.settings = { @@ -52,7 +53,6 @@ define([ config.options.ratio = config.options.width / config.options.height; config.options.height = null; - config.options.allowfullscreen = false; $.extend(true, this.startConfig, config); @@ -67,6 +67,9 @@ define([ */ initFullscreenSettings: function () { var settings = this.settings; + + settings.fullscreenConfig.swipe = false; + settings.$element.on('fotorama:fullscreenenter', function () { settings.api.updateOptions(settings.defaultConfig.options, true); settings.api.updateOptions(settings.fullscreenConfig, true); diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 0e5d52ae073..1f7eac04d2d 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -897,6 +897,21 @@ } } +.fotorama--fullscreen { + .fotorama__stage__frame { + .fotorama__img { + position: absolute; + max-width: inherit; + max-height: inherit; + margin: auto; + top: 0px; + bottom: 0px; + left: 0px; + right: 0px; + } + } +} + .fotorama__stage__frame { text-align: center; .fotorama__img { diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 6e5a05cfd68..acfd548bcca 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -578,6 +578,99 @@ } } + function magnifierFullscreen () { + var isDragActive = false, + startX, + startY, + imagePosX, + imagePosY, + touch, + isTouchEnabled = 'ontouchstart' in document.documentElement; + + $('[data-gallery-role="gallery"]').on('fotorama:fullscreenenter fotorama:showend fotorama:load', function () { + + var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + $imageContainer = $image.parent(), + gallery = $('[data-gallery-role="gallery"]'); + + gallery.on('fotorama:fullscreenexit', function () { + $thumb.css({ + 'top': '', + 'left': '' + }); + }); + + $image.on(isTouchEnabled ? 'touchstart' : 'mousedown', function (e) { + if (gallery.data('fotorama').fullScreen) { + e.preventDefault(); + + $image.css('cursor', 'move'); + imagePosY = $image.offset().top; + imagePosX = $image.offset().left; + + if (isTouchEnabled) { + touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; + e.clientX = touch.pageX; + e.clientY = touch.pageY; + } + startX = e.clientX; + startY = e.clientY; + isDragActive = true; + } + }); + + $image.on(isTouchEnabled ? 'touchmove' : 'mousemove', function (e) { + if (gallery.data('fotorama').fullScreen && isDragActive) { + + var top, + left, + startOffset = $image.offset(); + + e.preventDefault(); + + if (isTouchEnabled) { + touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; + e.clientX = touch.pageX; + e.clientY = touch.pageY; + } + top = +imagePosY + (e.clientY - startY); + left = +imagePosX + (e.clientX - startX); + + if ($image.height() > $imageContainer.height()) { + + if (($imageContainer.offset().top + $imageContainer.height()) > (top + $image.height())) { + top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); + } else { + top = ($imageContainer.offset().top < top) ? 0 : top; + } + $image.offset({ + 'top': top + }); + } + + if ($image.width() > $imageContainer.width()) { + + if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width())) { + left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); + } else { + left = ($imageContainer.offset().left < left) ? 0 : left; + } + $image.offset({ + 'left': left + }); + } + } + }); + + $image.on(isTouchEnabled ? 'touchend' : 'mouseup', function (e) { + if (gallery.data('fotorama').fullScreen) { + isDragActive = false; + $image.css('cursor', 'pointer'); + } + }); + }); + }; + function onScroll() { if (curThumb !== null) { @@ -587,9 +680,47 @@ $(window).on('scroll', onScroll); $(window).resize(function() { + + if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { + + var $image = $('[data-gallery-role="stage-shaft"] > [data-active="true"] > img'), + $imageContainer = $image.parent(), + top, left; + + if (($imageContainer.offset().top + $imageContainer.height()) > ($image.offset().top + $image.height())) { + top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); + } else { + top = ($imageContainer.offset().top < $image.offset().top) ? 0 : top; + } + + if (top !== undefined) { + $image.css('top', top); + } + + if (($imageContainer.offset().left + $imageContainer.width()) > ($image.offset().left + $image.width())) { + left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); + } else { + left = ($imageContainer.offset().left < $image.offset().left) ? 0 : left; + } + + if (left !== undefined) { + $image.css('left', left); + } + + if ($image.width() < $imageContainer.width()) { + $image.css('left', ''); + } + + if ($image.height() < $imageContainer.height()) { + $image.css('top', ''); + } + } + _init($box, gOptions); + }); $(document).on('mousemove', onMousemove); _init($box, gOptions); + magnifierFullscreen(); } }(jQuery)); diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index 146c014b444..d6f7c9931f3 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -20,9 +20,8 @@ define([ if (isTouchEnabled) { $(element).on('fotorama:showend fotorama:load', function () { $(magnifierSelector).remove(); + $(magnifierZoomSelector).remove(); }); - - return config; } /** @@ -79,7 +78,7 @@ define([ } }); - $(element).on('fotorama:showend fotorama:load', function (e, fotorama) { + $(element).on('fotorama:showend fotorama:load fotorama:fullscreenexit', function (e, fotorama) { hideMagnifier(); config.magnifierOpts.large = $(gallerySelector).data('fotorama').activeFrame.img; config.magnifierOpts.original = fotorama.data[fotorama.activeIndex].original; -- GitLab From a763b3534d5acd59385d38cc57b8c351042e8164 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Fri, 11 Sep 2015 14:20:47 +0300 Subject: [PATCH 056/420] MAGETWO-42479: Refactor all entries modal windows --- .../view/adminhtml/templates/catalog/category/tree.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml index 1a37b2eb2a1..28d2fd4c94f 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml @@ -251,7 +251,7 @@ function _renderNewTree(config, scopeParams) { if (!config) { var config = defaultLoadTreeParams; - } + }Are you sure you want to delete this integration? You can't undo this action if (tree) { tree.purgeListeners(); tree.el.dom.innerHTML = ''; -- GitLab From 32aac373e9008f4767d63d596c8142360f05b880 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Fri, 11 Sep 2015 15:10:15 +0300 Subject: [PATCH 057/420] MAGETWO-42150: Add ability to declare filter components inside of the column definition - Remove filters sorting --- .../view/base/web/js/grid/filters/filters.js | 80 +++++++------------ 1 file changed, 28 insertions(+), 52 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js index 0025db4a190..59dcb4c29d6 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js @@ -173,40 +173,6 @@ define([ return this; }, - /** - * Returns instance of a filter found by provided index. - * - * @param {String} index - Index of a filter (e.g. 'title'). - * @returns {Filter} - */ - getFilter: function (index) { - return this.elems.findWhere({ - index: index - }); - }, - - /** - * Returns an array of range filters. - * - * @returns {Array} - */ - getRanges: function () { - return this.elems.filter(function (filter) { - return filter.isRange; - }); - }, - - /** - * Returns an array of non-range filters. - * - * @returns {Array} - */ - getPlain: function () { - return this.elems.filter(function (filter) { - return !filter.isRange; - }); - }, - /** * Clears filters data. * @@ -288,27 +254,39 @@ define([ column: column }, true, true); }, - + /** - * Sorts filters by associated columns positions. + * Returns instance of a filter found by provided index. * - * @returns {Filters} Chainable + * @param {String} index - Index of a filter (e.g. 'title'). + * @returns {Filter} */ - resortByColumns: function () { - var columns = this.columns().elems(), - filters = []; - - columns.forEach(function (column) { - var filter = this.getFilter(column.index); - - if (filter) { - filters.push(filter); - } - }, this); + getFilter: function (index) { + return this.elems.findWhere({ + index: index + }); + }, - this.insertChild(filters); + /** + * Returns an array of range filters. + * + * @returns {Array} + */ + getRanges: function () { + return this.elems.filter(function (filter) { + return filter.isRange; + }); + }, - return this; + /** + * Returns an array of non-range filters. + * + * @returns {Array} + */ + getPlain: function () { + return this.elems.filter(function (filter) { + return !filter.isRange; + }); }, /** @@ -382,8 +360,6 @@ define([ */ onColumnsUpdate: function (columns) { columns.forEach(this.initFilter, this); - - this.resortByColumns(); } }); }); -- GitLab From 7824644c77dcd13c509a3dee44ef9be6b80a1eb0 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Fri, 11 Sep 2015 15:46:46 +0300 Subject: [PATCH 058/420] MAGETWO-42479: Refactor all entries modal windows --- .../view/adminhtml/templates/rule/edit.phtml | 74 ++++++------------- 1 file changed, 22 insertions(+), 52 deletions(-) diff --git a/app/code/Magento/Tax/view/adminhtml/templates/rule/edit.phtml b/app/code/Magento/Tax/view/adminhtml/templates/rule/edit.phtml index 843c57903ca..3c103e553cf 100644 --- a/app/code/Magento/Tax/view/adminhtml/templates/rule/edit.phtml +++ b/app/code/Magento/Tax/view/adminhtml/templates/rule/edit.phtml @@ -11,23 +11,22 @@ require([ "jquery", "jquery/ui", "jquery/editableMultiselect/js/jquery.multiselect", - "mage/mage" + "mage/mage", + 'Magento_Ui/js/modal/modal' ], function($){ - $.widget("adminhtml.dialogRates", $.ui.dialog, { + $.widget("adminhtml.dialogRates", $.mage.modal, { options: { itemRate: {}, itemRateDefault: {} }, _create: function() { - $.ui.dialog.prototype._create.apply(this); + this._super(); this._getFormData(this.options.itemRateDefault); }, - open: function() { - var zipIsRange = this.uiDialog.find('#zip_is_range'); - if (this._trigger('beforeOpen', null, this) === false) { - return; - } + openModal: function() { + var zipIsRange = this.modal.find('#zip_is_range'); + this._applyItem(this.options.itemRateDefault); if (this.options.itemRate && !$.isEmptyObject(this.options.itemRate)) { this._applyItem(this.options.itemRate); @@ -35,13 +34,14 @@ require([ zipIsRange.attr('checked', zipIsRange.val() == 1); zipIsRange.trigger('change'); updater.update(); - $.ui.dialog.prototype.open.apply(this); + this._super(); }, - close: function() { - $.ui.dialog.prototype.close.apply(this); + closeModal: function() { + this._super(); }, _applyItem: function(rate) { - var dialogElement = this.uiDialog; + var dialogElement = this.modal; + $.each(rate, function(key, value) { if (!value) { value = ''; @@ -53,7 +53,7 @@ require([ this._getFormData(this.options.itemRate); }, _getFormData: function(data) { - $.each(this.uiDialog.find(':input'), function() { + $.each(this.modal.find(':input'), function() { if (this.name) { data[this.name] = this.value } @@ -191,7 +191,7 @@ require([ .on('click.mselectAdd', '.mselect-button-add', function () { taxRateForm .dialogRates({itemRate: {}}) - .dialogRates('open'); + .dialogRates('openModal'); }) .on('click.mselect-checked', '.mselect-list-item input', function (event) { var el = $(this), @@ -203,42 +203,20 @@ require([ taxRateForm.dialogRates({ title: '<?php echo __('Tax Rate'); ?>', - autoOpen: false, + type: 'slide', id: '<?php echo $block->getJsId() ?>', - minWidth: 560, - modal: true, - dialogClass: 'tax-rate-popup', - resizable: false, - width: '75%', - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, - open: function () { - var topMargin; - - $(this).closest('.ui-dialog').addClass('ui-dialog-active'); - topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 80; - $(this).closest('.ui-dialog').css({ - top: '1%', - position: 'absolute', - left: '10%' - }); - $(this).closest('.ui-dialog').css('margin-top', topMargin); - $(this).addClass('admin__scope-old'); // ToDo UI: remove with old styles removal - }, - close: function() { - $(this).closest('.ui-dialog').removeClass('ui-dialog-active'); + modalClass: 'tax-rate-popup', + closed: function () { + taxRateFormElement.data('validation').clearError(); }, buttons: [{ text: '<?php echo __('Save'); ?>', - id: '<?php echo $block->getJsId('apply-button') ?>', 'class': 'action-save action-primary', click: function() { - $(this).dialogRates('updateItemRate'); - var itemRate = $(this).dialogRates('option').itemRate, + this.updateItemRate(); + var itemRate = this.option('itemRate'), itemRateData = $.extend({}, itemRate); + if (itemRateData.itemElement) { delete itemRateData.itemElement; } @@ -270,7 +248,7 @@ require([ taxRateField.find('option[value=""]:last') .val(itemRate.tax_calculation_rate_id); } - taxRateForm.dialogRates("close"); + taxRateForm.dialogRates('closeModal'); } else { if (result.error_message) alert(result.error_message); @@ -285,14 +263,6 @@ require([ }; $.ajax(ajaxOptions); } - }, { - text: '<?php echo __('Cancel'); ?>', - id: '<?php echo $block->getJsId('close-button') ?>', - 'class': 'action-close', - click: function() { - $(this).dialogRates("close"); - taxRateFormElement.data('validation').clearError(); - } }] }); $('.grid-loading-mask').hide(); -- GitLab From 255e22e4afb471d3ba92559fbf51bec7df2a9c0c Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Fri, 11 Sep 2015 16:12:29 +0300 Subject: [PATCH 059/420] MAGETWO-42479: Refactor all entries modal windows --- .../integration/popup_container.phtml | 86 ++++++++++++------- 1 file changed, 53 insertions(+), 33 deletions(-) diff --git a/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml b/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml index 8e9d1d18451..3f26feb2265 100644 --- a/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml +++ b/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml @@ -11,9 +11,10 @@ <script> require([ "jquery", + 'Magento_Ui/js/modal/modal', "jquery/ui", "Magento_Integration/js/integration" -], function($){ +], function($, modal){ window.integration = new Integration( '<?php echo $block->getUrl('*/*/permissionsDialog', ['id' => ':id', 'reauthorize' => ':isReauthorize']); ?>', @@ -28,42 +29,61 @@ require([ */ $(function () { $('div#integrationGrid').on('click', 'button#delete', function (e) { - $('#integration-delete-container').dialog({ - modal: true, - autoOpen: true, - resizable: false, - minHeight: 0, - width: '75%', - dialogClass: 'no-close ui-popup-message', - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, - open: function () { - $(this).closest('.ui-dialog').addClass('ui-dialog-active'); - - var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight(); - $(this).closest('.ui-dialog').css('margin-top', topMargin); - }, - close: function () { - $(this).closest('.ui-dialog').removeClass('ui-dialog-active'); - }, + $('#integration-delete-container').modal({ + type: 'popup', buttons: [{ - text: $.mage.__('Delete'), - 'class': 'action-primary', + text: 'Cancel', + class: '', click: function () { - $(this).dialog("close"); - window.location.href = $(e.target).data('url'); + this.closeModal(); } - }, { - text: $.mage.__('Cancel'), - 'class': 'action-close', - click: function () { - $(this).dialog('close'); + }, + { + text: 'Delete', + class: '', + click: function (e) { + window.location.href = $(e.target).data('url'); + } } - }] - }); + ] + }).trigger('openModal'); + +// $('#integration-delete-container').dialog({ +// modal: true, +// autoOpen: true, +// resizable: false, +// minHeight: 0, +// width: '75%', +// dialogClass: 'no-close ui-popup-message', +// position: { +// my: 'left top', +// at: 'center top', +// of: 'body' +// }, +// open: function () { +// $(this).closest('.ui-dialog').addClass('ui-dialog-active'); +// +// var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight(); +// $(this).closest('.ui-dialog').css('margin-top', topMargin); +// }, +// close: function () { +// $(this).closest('.ui-dialog').removeClass('ui-dialog-active'); +// }, +// buttons: [{ +// text: $.mage.__('Delete'), +// 'class': 'action-primary', +// click: function () { +// $(this).dialog("close"); +// window.location.href = $(e.target).data('url'); +// } +// }, { +// text: $.mage.__('Cancel'), +// 'class': 'action-close', +// click: function () { +// $(this).dialog('close'); +// } +// }] +// }); e.stopPropagation(); }); }); -- GitLab From 7775e9b8a71de9205c79dceb2400d3c74fa76b40 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Fri, 11 Sep 2015 16:25:36 +0300 Subject: [PATCH 060/420] MAGETWO-42479: Refactor all entries modal windows --- .../integration/popup_container.phtml | 36 ------------------- 1 file changed, 36 deletions(-) diff --git a/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml b/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml index 3f26feb2265..2de7d391add 100644 --- a/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml +++ b/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml @@ -48,42 +48,6 @@ require([ ] }).trigger('openModal'); -// $('#integration-delete-container').dialog({ -// modal: true, -// autoOpen: true, -// resizable: false, -// minHeight: 0, -// width: '75%', -// dialogClass: 'no-close ui-popup-message', -// position: { -// my: 'left top', -// at: 'center top', -// of: 'body' -// }, -// open: function () { -// $(this).closest('.ui-dialog').addClass('ui-dialog-active'); -// -// var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight(); -// $(this).closest('.ui-dialog').css('margin-top', topMargin); -// }, -// close: function () { -// $(this).closest('.ui-dialog').removeClass('ui-dialog-active'); -// }, -// buttons: [{ -// text: $.mage.__('Delete'), -// 'class': 'action-primary', -// click: function () { -// $(this).dialog("close"); -// window.location.href = $(e.target).data('url'); -// } -// }, { -// text: $.mage.__('Cancel'), -// 'class': 'action-close', -// click: function () { -// $(this).dialog('close'); -// } -// }] -// }); e.stopPropagation(); }); }); -- GitLab From aafe3ff5da7ab59b4651bff21d81236f62fe9ef2 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Fri, 11 Sep 2015 16:39:25 +0300 Subject: [PATCH 061/420] MAGETWO-42479: Refactor all entries modal windows --- .../view/adminhtml/templates/integration/popup_container.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml b/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml index 2de7d391add..a7d284b7e78 100644 --- a/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml +++ b/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml @@ -41,7 +41,7 @@ require([ { text: 'Delete', class: '', - click: function (e) { + click: function () { window.location.href = $(e.target).data('url'); } } -- GitLab From 39ecfe2093298377ee6ce63daac1da4b75025a06 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Fri, 11 Sep 2015 18:11:28 +0300 Subject: [PATCH 062/420] MAGETWO-42479: Refactor all entries modal windows --- .../integration/popup_container.phtml | 64 ++++++++----------- 1 file changed, 27 insertions(+), 37 deletions(-) diff --git a/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml b/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml index a7d284b7e78..f9dedb155fc 100644 --- a/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml +++ b/app/code/Magento/Integration/view/adminhtml/templates/integration/popup_container.phtml @@ -9,50 +9,40 @@ */ ?> <script> -require([ - "jquery", - 'Magento_Ui/js/modal/modal', - "jquery/ui", - "Magento_Integration/js/integration" -], function($, modal){ + require([ + "jquery", + 'Magento_Ui/js/modal/confirm', + "jquery/ui", + "Magento_Integration/js/integration" + ], function ($, Confirm) { - window.integration = new Integration( - '<?php echo $block->getUrl('*/*/permissionsDialog', ['id' => ':id', 'reauthorize' => ':isReauthorize']); ?>', - '<?php echo $block->getUrl('*/*/tokensDialog', ['id' => ':id', 'reauthorize' => ':isReauthorize']); ?>', - '<?php echo $block->getUrl('*/*/tokensExchange', ['id' => ':id', 'reauthorize' => ':isReauthorize']); ?>', - '<?php echo $block->getUrl('*/*'); ?>', - '<?php echo $block->getUrl('*/*/loginSuccessCallback'); ?>' - ); + window.integration = new Integration( + '<?php echo $block->getUrl('*/*/permissionsDialog', ['id' => ':id', 'reauthorize' => ':isReauthorize']); ?>', + '<?php echo $block->getUrl('*/*/tokensDialog', ['id' => ':id', 'reauthorize' => ':isReauthorize']); ?>', + '<?php echo $block->getUrl('*/*/tokensExchange', ['id' => ':id', 'reauthorize' => ':isReauthorize']); ?>', + '<?php echo $block->getUrl('*/*'); ?>', + '<?php echo $block->getUrl('*/*/loginSuccessCallback'); ?>' + ); - /** - * Confirm dialog for delete integration action - */ - $(function () { - $('div#integrationGrid').on('click', 'button#delete', function (e) { - $('#integration-delete-container').modal({ - type: 'popup', - buttons: [{ - text: 'Cancel', - class: '', - click: function () { - this.closeModal(); - } - }, - { - text: 'Delete', - class: '', - click: function () { + /** + * Confirm dialog for delete integration action + */ + $(function () { + $('div#integrationGrid').on('click', 'button#delete', function (e) { + + new Confirm({ + title: 'Are you sure?', + content: "Are you sure you want to delete this integration? You can't undo this action.", + actions: { + confirm: function () { window.location.href = $(e.target).data('url'); } } - ] - }).trigger('openModal'); - - e.stopPropagation(); + }); + e.stopPropagation(); + }); }); }); - -}); </script> <div id="integration-popup-container" style="display: none;"></div> -- GitLab From 7a125ae72f6a62f8bee1ef9a17e0cab94cddddfc Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Fri, 11 Sep 2015 18:19:51 +0300 Subject: [PATCH 063/420] MAGETWO-42479: Refactor all entries modal windows --- .../view/adminhtml/web/js/integration.js | 68 ++++++------------- .../Ui/view/base/web/js/modal/modal.js | 4 ++ 2 files changed, 26 insertions(+), 46 deletions(-) diff --git a/app/code/Magento/Integration/view/adminhtml/web/js/integration.js b/app/code/Magento/Integration/view/adminhtml/web/js/integration.js index 3e299ddf77e..0dd90489499 100644 --- a/app/code/Magento/Integration/view/adminhtml/web/js/integration.js +++ b/app/code/Magento/Integration/view/adminhtml/web/js/integration.js @@ -8,7 +8,8 @@ define([ "jquery", "jquery/ui", - "mage/translate" + "mage/translate", + 'Magento_Ui/js/modal/modal' ], function($){ "use strict"; @@ -168,12 +169,12 @@ define([ $('body').trigger('processStart'); //Check for window closed window.location.reload(); - IdentityLogin.jqInfoDialog.dialog('close'); + IdentityLogin.jqInfoDialog.modal('closeModal'); } } catch (e) { //squash. In case Window closed without success callback, clear polling if (IdentityLogin.win.closed) { - IdentityLogin.jqInfoDialog.dialog('close'); + IdentityLogin.jqInfoDialog.modal('closeModal'); clearInterval(IdentityLogin.checker); } return; @@ -217,53 +218,24 @@ define([ } catch (e) { //This is expected if result is not json. Do nothing. } + if (identityLinkUrl && consumerId && popupHtml) { IdentityLogin.invokePopup(identityLinkUrl, consumerId, popup); } else { popupHtml = result; } + if (popup.length === 0){ + popup = $('<div/>'); + } popup.html(popupHtml); var buttons = [], dialogProperties = { title: title, - modal: true, - autoOpen: true, - minHeight: 450, - minWidth: 600, - width: '75%', + type: 'slide', dialogClass: dialog == 'permissions' ? 'integration-dialog' : 'integration-dialog no-close', - closeOnEscape: false, - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, - open: function () { - $(this).closest('.ui-dialog').addClass('ui-dialog-active'); - - var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30; - $(this).closest('.ui-dialog').css('margin-top', topMargin); - }, - close: function () { - $(this).closest('.ui-dialog').removeClass('ui-dialog-active'); - } }; - if (dialog == 'permissions') { - // We don't need this button in 'tokens' dialog, since if you got there - integration is - // already activated and have necessary tokens - buttons.push({ - text: $.mage.__('Cancel'), - 'class': 'action-close', - click: function () { - $(this).dialog('close'); - } - }); - } else if (dialog == 'tokensExchange') { - dialogProperties['minHeight'] = 150; - dialogProperties['minWidth'] = 500; - } // Add confirmation button to the list of dialog buttons. okButton not set for tokenExchange dialog if (okButton) { @@ -273,7 +245,8 @@ define([ if (buttons.length > 0) { dialogProperties['buttons'] = buttons } - popup.dialog(dialogProperties); + popup.modal(dialogProperties); + popup.modal('openModal'); }, error: function (jqXHR, status, error) { alert($.mage.__('Sorry, something went wrong. Please try again later.')); @@ -322,17 +295,20 @@ define([ permissions: { text: (isReauthorize == '1') ? $.mage.__('Reauthorize') : $.mage.__('Allow'), 'class': 'action-primary', - // This data is going to be used in the next dialog - 'data-row-id': integrationId, - 'data-row-name': integrationName, - 'data-row-dialog': (isTokenExchange == '1') ? 'tokensExchange' : 'tokens', - 'data-row-is-reauthorize': isReauthorize, - 'data-row-is-token-exchange': isTokenExchange, + attr: { + 'data-row-id': integrationId, + 'data-row-name': integrationName, + 'data-row-dialog': (isTokenExchange == '1') ? 'tokensExchange' : 'tokens', + 'data-row-is-reauthorize': isReauthorize, + 'data-row-is-token-exchange': isTokenExchange + }, click: function () { // Find the 'Allow' button and clone - it has all necessary data, but is going to be // destroyed along with the current dialog - var ctx = $(this).parent().find('button.action-primary').clone(true); - $(this).dialog('destroy'); + var ctx = this.modal.find('button.action-primary').clone(true); + + this.closeModal(); + this.modal.remove(); // Make popup out of data we saved from 'Allow' button window.integration.popup.show(ctx); } diff --git a/app/code/Magento/Ui/view/base/web/js/modal/modal.js b/app/code/Magento/Ui/view/base/web/js/modal/modal.js index 84074ebf980..b1ef9210907 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/modal.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/modal.js @@ -66,6 +66,7 @@ define([ buttons: [{ text: $.mage.__('Ok'), class: '', + attr: {}, /** * Default action on button click @@ -246,6 +247,9 @@ define([ _.each(this.options.buttons, function (btn, key) { var button = that.buttons[key]; + if (btn.attr) { + $(button).attr(btn.attr); + } $(button).on('click', _.bind(btn.click, that)); }); }, -- GitLab From e61c81aba24ba67cc81ff6a6b89010354c7208a4 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Fri, 11 Sep 2015 19:29:06 +0300 Subject: [PATCH 064/420] MAGETWO-42479: Refactor all entries modal windows --- .../affected-attribute-set-selector/js.phtml | 148 ++++++++---------- 1 file changed, 68 insertions(+), 80 deletions(-) diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/js.phtml b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/js.phtml index 4db2417ab52..fc7506ff4bf 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/js.phtml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/js.phtml @@ -16,7 +16,8 @@ require([ "jquery", - "jquery/ui" + "jquery/ui", + 'Magento_Ui/js/modal/modal' ], function($){ $form = $('#affected-attribute-set-form'); @@ -31,89 +32,76 @@ id: 'new-variations-attribute-set-id' })); - $form - .dialog({ - title: '<?php echo __('Choose Affected Product Template'); ?>', - autoOpen: false, - id: '<?php echo $block->getJsId() ?>', - width: '75%', - modal: true, - resizable: false, - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, - open: function () { - $(this).closest('.ui-dialog').addClass('ui-dialog-active'); - - var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight(); - $(this).closest('.ui-dialog').css('margin-top', topMargin); - }, - close: function () { - resetValidation(); - $(this).closest('.ui-dialog').removeClass('ui-dialog-active'); + $form.modal({ + title: '<?php echo __('Choose Affected Product Template'); ?>', + type: 'popup', + closed: function () { + resetValidation(); + }, + buttons: [{ + text: '<?php echo __('Confirm'); ?>', + 'class': 'action-primary', + attr: { + 'id': '<?php echo $block->getJsId('confirm-button') ?>' }, - buttons: [{ - text: '<?php echo __('Confirm'); ?>', - id: '<?php echo $block->getJsId('confirm-button') ?>', - 'class': 'action-primary', - click: function() { - if ($form.find('input[name=affected-attribute-set]:checked').val() == 'current') { - $('#new-variations-attribute-set-id').val($('#attribute_set_id').val()); - $form.dialog('close') - .data('target').click(); - return; - } - - $form.find('.messages .message.error').hide(); - if (!$form.find('form').validation().valid()) { - $form.find('input[name=new-attribute-set-name]').focus(); - return false; - } - - $.ajax({ - type: 'POST', - url: '<?php echo $block->getAttributeSetCreationUrl()?>', - data: { - gotoEdit: 1, - attribute_set_name: $form.find('input[name=new-attribute-set-name]').val(), - skeleton_set: $('#attribute_set_id').val(), - form_key: '<?php echo $block->getFormKey()?>', - return_session_messages_only: 1 - }, - dataType: 'json', - showLoader: true, - context: $form - }) - .success(function (data) { - if (!data.error) { - $('#new-variations-attribute-set-id').val(data.id); - $form.dialog('close') - .data('target').click(); - } else { - $form.find('.messages .message.error').replaceWith($(data.messages).find('.message.error')); - } - }); + click: function() { + if ($form.find('input[name=affected-attribute-set]:checked').val() == 'current') { + $('#new-variations-attribute-set-id').val($('#attribute_set_id').val()); + $form.modal('closeModal') + .data('target').click(); + return; + } + $form.find('.messages .message.error').hide(); + if (!$form.find('form').validation().valid()) { + $form.find('input[name=new-attribute-set-name]').focus(); return false; } - },{ - text: '<?php echo __('Cancel'); ?>', - id: '<?php echo $block->getJsId('close-button') ?>', - 'class': 'action-close', - click: function() { - $form.dialog('close'); - } - }] - }) - .find('input[name=affected-attribute-set]').on('change', function() { - $('#affected-attribute-set-new-name-container')[$(this).val() == 'new' ? 'show' : 'hide'](); - resetValidation(); - if ($(this).val() == 'new') { - $form.find('input[name=new-attribute-set-name]').focus(); + + $.ajax({ + type: 'POST', + url: '<?php echo $block->getAttributeSetCreationUrl()?>', + data: { + gotoEdit: 1, + attribute_set_name: $form.find('input[name=new-attribute-set-name]').val(), + skeleton_set: $('#attribute_set_id').val(), + form_key: '<?php echo $block->getFormKey()?>', + return_session_messages_only: 1 + }, + dataType: 'json', + showLoader: true, + context: $form + }) + .success(function (data) { + if (!data.error) { + $('#new-variations-attribute-set-id').val(data.id); + $form.modal('closeModal') + .data('target').click(); + } else { + $form.find('.messages .message.error').replaceWith($(data.messages).find('.message.error')); + } + }); + + return false; } - }); + },{ + text: '<?php echo __('Cancel'); ?>', + 'class': 'action-close', + attr: { + 'id': '<?php echo $block->getJsId('close-button') ?>' + }, + click: function() { + this.closeModal(); + } + }] + }) + .find('input[name=affected-attribute-set]').on('change', function() { + $('#affected-attribute-set-new-name-container')[$(this).val() == 'new' ? 'show' : 'hide'](); + resetValidation(); + if ($(this).val() == 'new') { + $form.find('input[name=new-attribute-set-name]').focus(); + } + }); }); require([ @@ -168,7 +156,7 @@ event.stopImmediatePropagation(); - $form.data('target', event.target).dialog('open'); + $form.data('target', event.target).modal('openModal'); }); }); -- GitLab From ac8a7f8e5d24f5c8f037645047a97b43e8e18c68 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Sun, 13 Sep 2015 12:52:14 +0300 Subject: [PATCH 065/420] MAGETWO-42479: Refactor all entries modal windows --- .../view/adminhtml/templates/catalog/category/tree.phtml | 2 +- .../view/adminhtml/web/catalog/product-attributes.js | 7 +++---- .../Adminhtml/Catalog/Product/Edit/Tab/Bundle/Option.php | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml index 28d2fd4c94f..1a37b2eb2a1 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml @@ -251,7 +251,7 @@ function _renderNewTree(config, scopeParams) { if (!config) { var config = defaultLoadTreeParams; - }Are you sure you want to delete this integration? You can't undo this action + } if (tree) { tree.purgeListeners(); tree.el.dom.innerHTML = ''; diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js index 06df40c13a8..b48cfec50ea 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product-attributes.js @@ -16,17 +16,16 @@ define([ }); }, - _initModal: function() { + _initModal: function () { var self = this; this.modal = $('<div id="create_new_attribute"/>').modal({ title: 'New Attribute', - modalClass: 'AAAAA', type: 'slide', buttons: [], opened: function () { self.iframe = $('<iframe id="create_new_attribute_container">').attr({ - src: self._prepareUrl(event), + src: self._prepareUrl(), frameborder: 0 }); self.modal.append(self.iframe); @@ -41,7 +40,7 @@ define([ doc.execCommand('stop'); self.iframe.remove(); } - self.modal.data('modal').modal.remove() + self.modal.data('modal').modal.remove(); } }); }, diff --git a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Tab/Bundle/Option.php b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Tab/Bundle/Option.php index 20688802c89..7f973d398b8 100644 --- a/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Tab/Bundle/Option.php +++ b/dev/tests/functional/tests/app/Magento/Bundle/Test/Block/Adminhtml/Catalog/Product/Edit/Tab/Bundle/Option.php @@ -22,7 +22,7 @@ class Option extends Form * * @var string */ - protected $searchGridBlock = "ancestor::body//div[contains(@style,'display: block') and @role='dialog']"; + protected $searchGridBlock = "ancestor::body//aside[contains(@class,'_show') and @data-role='modal']"; /** * Added product row -- GitLab From f678e417ad488206dac4ac259e54ea498490ff84 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Mon, 14 Sep 2015 09:48:34 +0300 Subject: [PATCH 066/420] MAGETWO-42479: Refactor all entries modal windows --- .../Block/System/Messages.php | 7 +- .../templates/system/messages/popup.phtml | 33 +++---- .../view/adminhtml/web/system/notification.js | 14 ++- lib/web/mage/adminhtml/browser.js | 96 ++++++++++++------- 4 files changed, 81 insertions(+), 69 deletions(-) diff --git a/app/code/Magento/AdminNotification/Block/System/Messages.php b/app/code/Magento/AdminNotification/Block/System/Messages.php index 949ba575abe..4ba73969e8d 100644 --- a/app/code/Magento/AdminNotification/Block/System/Messages.php +++ b/app/code/Magento/AdminNotification/Block/System/Messages.php @@ -120,11 +120,8 @@ class Messages extends \Magento\Backend\Block\Template return $this->jsonHelper->jsonEncode( [ 'systemMessageDialog' => [ - 'autoOpen' => false, - 'width' => '75%', - 'modal' => true, - 'minHeight' => '0', - 'dialogClass' => 'ui-dialog-active ui-popup-message', + 'buttons' => [], + 'modalClass' => 'ui-dialog-active ui-popup-message', 'ajaxUrl' => $this->_getMessagesUrl() ], ] diff --git a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml index 3652e763a1c..0c19d8be9d8 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml +++ b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml @@ -22,29 +22,18 @@ <script> require([ "jquery", - "jquery/ui" + "jquery/ui", + "Magento_Ui/js/modal/modal" ], function($){ - - $(function() { - $("#system_messages_list").dialog({ - autoOpen: true, - resizable: false, - width: '75%', - modal: true, - minHeight: '0', - dialogClass: 'ui-popup-message', - position: { - my: 'left+12.5% top', - at: 'center top', - of: 'body' - }, - open: function() { - $(this).closest('.ui-dialog').addClass('ui-dialog-active'); - - var topMargin = $(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 10; - $(this).closest('.ui-dialog').css('margin-top', topMargin); - } + if (this.modal) { + this.modal.html($("#system_messages_list").html()); + } else { + this.modal = $("#system_messages_list").modal({ + modalClass: 'ui-popup-message', + type: 'popup', + buttons: [] }); - }); + } + this.modal.modal('openModal'); }); </script> diff --git a/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js b/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js index 95a228c6fa9..5cab64ddd03 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js +++ b/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js @@ -5,11 +5,12 @@ define([ 'jquery', 'mage/template', - 'jquery/ui' + 'jquery/ui', + 'Magento_Ui/js/modal/modal' ], function ($, mageTemplate) { 'use strict'; - $.widget('mage.systemMessageDialog', $.ui.dialog, { + $.widget('mage.systemMessageDialog', $.mage.modal, { options: { systemMessageTemplate: '<% _.each(data.items, function(item) { %>' + @@ -19,7 +20,7 @@ define([ '<% }); %>' }, - open: function (severity) { + openModal: function (severity) { var superMethod = $.proxy(this._super, this); $.ajax({ @@ -47,16 +48,19 @@ define([ }, this)); return this; + }, + closeModal: function () { + this._super(); } }); $(document).ready(function () { $('#system_messages .message-system-short .error').on('click', function () { - $('#message-system-all').systemMessageDialog('open', 1); + $('#message-system-all').systemMessageDialog('openModal', 1); }); $('#system_messages .message-system-short .warning').on('click', function () { - $('#message-system-all').systemMessageDialog('open', 2); + $('#message-system-all').systemMessageDialog('openModal', 2); }); }); diff --git a/lib/web/mage/adminhtml/browser.js b/lib/web/mage/adminhtml/browser.js index 68fe9233e81..8d33b001ab2 100644 --- a/lib/web/mage/adminhtml/browser.js +++ b/lib/web/mage/adminhtml/browser.js @@ -6,11 +6,13 @@ define([ "jquery", "tinymce", + "Magento_Ui/js/modal/prompt", + "Magento_Ui/js/modal/confirm", "Magento_Ui/js/modal/modal", "jquery/ui", "jquery/jstree/jquery.jstree", "mage/mage" -], function($, tinyMCE){ +], function($, tinyMCEm, prompt, confirm){ MediabrowserUtility = { windowId: 'modal_dialog_message', @@ -245,7 +247,10 @@ define([ }, newFolder: function() { - var folderName = prompt(this.options.newFolderPrompt, ''); + var folderName = prompt({ + content: this.options.newFolderPrompt + }); + debugger; if (!folderName) { return false; } @@ -270,46 +275,63 @@ define([ }, deleteFolder: function() { - if (!confirm(this.options.deleteFolderConfirmationMessage)) { - return false; - } + var self = this; - return $.ajax({ - url: this.options.deleteFolderUrl, - dataType: 'json', - data: { - node: this.activeNode.id, - store: this.options.storeId, - form_key: FORM_KEY - }, - context: this.element, - showLoader: true - }).done($.proxy(function(data) { - this.tree.jstree('refresh', this.activeNode.id); - }, this)); + confirm({ + content: this.options.deleteFolderConfirmationMessage, + actions: { + confirm: function () { + return $.ajax({ + url: self.options.deleteFolderUrl, + dataType: 'json', + data: { + node: self.activeNode.id, + store: self.options.storeId, + form_key: FORM_KEY + }, + context: self.element, + showLoader: true + }).done($.proxy(function(data) { + self.tree.jstree('refresh', self.activeNode.id); + }, this)); + }, + cancel: function () { + return false; + } + } + }); }, deleteFiles: function() { - if (!confirm(this.options.deleteFileConfirmationMessage)) { - return false; - } - var selectedFiles = this.element.find('[data-row=file].selected'); - var ids = selectedFiles.map(function(index, file) { - return $(this).attr('id'); - }).toArray(); + var self = this; - return $.ajax({ - url: this.options.deleteFilesUrl, - data: { - files: ids, - store: this.options.storeId, - form_key: FORM_KEY - }, - context: this.element, - showLoader: true - }).done($.proxy(function(data) { - this.reload(); - }, this)); + confirm({ + content: this.options.deleteFileConfirmationMessage, + actions: { + confirm: function () { + var selectedFiles = self.element.find('[data-row=file].selected'); + var ids = selectedFiles.map(function(index, file) { + return $(this).attr('id'); + }).toArray(); + + return $.ajax({ + url: self.options.deleteFilesUrl, + data: { + files: ids, + store: self.options.storeId, + form_key: FORM_KEY + }, + context: self.element, + showLoader: true + }).done($.proxy(function(data) { + self.reload(); + }, this)); + }, + cancel: function () { + return false; + } + } + }); }, drawBreadcrumbs: function(data) { -- GitLab From f8c1e3b502e47219e7959fe4ad50702de5188eb8 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Mon, 14 Sep 2015 10:58:54 +0300 Subject: [PATCH 067/420] MAGETWO-42479: Refactor all entries modal windows --- .../Ui/view/base/web/js/modal/prompt.js | 70 +++++++++++++++++++ lib/web/mage/adminhtml/browser.js | 50 ++++++------- 2 files changed, 96 insertions(+), 24 deletions(-) create mode 100644 app/code/Magento/Ui/view/base/web/js/modal/prompt.js diff --git a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js new file mode 100644 index 00000000000..60ea4e7f0c8 --- /dev/null +++ b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js @@ -0,0 +1,70 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +define([ + 'jquery', + 'underscore', + 'jquery/ui', + 'Magento_Ui/js/modal/modal', + 'mage/translate' +], function ($, _) { + 'use strict'; + + $.widget('mage.prompt', $.mage.modal, { + options: { + modalClass: 'prompt', + promptField: '[data-role="promptField"]', + actions: { + always: function(){}, + confirm: function(){}, + cancel: function(){} + }, + buttons: [{ + text: $.mage.__('Cancel'), + class: 'action-tertiary', + click: function(){ + this.closeModal(); + } + }, { + text: $.mage.__('OK'), + class: 'action-secondary', + click: function() { + this.closeModal(true); + } + }] + }, + _create: function() { + this._super(); + this.modal.find(this.options.modalContent).append('<input value="" data-role="promptField" type="text"/>'); + this.modal.find(this.options.modalCloseBtn).off().on('click', _.bind(this.closeModal, this, false)); + this.openModal(); + }, + _remove: function() { + this.modal.remove(); + }, + openModal: function() { + return this._super(); + }, + closeModal: function(result) { + var value; + + result = result || false; + + if (result) { + value = this.modal.find(this.options.promptField).val(); + this.options.actions.confirm(value); + } else { + this.options.actions.cancel(); + } + this.options.actions.always(); + this.element.bind('confirmclosed', _.bind(this._remove, this)); + + return this._super(); + } + }); + + return function (config) { + return $('<div></div>').html(config.content).prompt(config); + }; +}); diff --git a/lib/web/mage/adminhtml/browser.js b/lib/web/mage/adminhtml/browser.js index 8d33b001ab2..05fa6f7fedd 100644 --- a/lib/web/mage/adminhtml/browser.js +++ b/lib/web/mage/adminhtml/browser.js @@ -247,31 +247,33 @@ define([ }, newFolder: function() { - var folderName = prompt({ - content: this.options.newFolderPrompt - }); - debugger; - if (!folderName) { - return false; - } - return $.ajax({ - url: this.options.newFolderUrl, - dataType: 'json', - data: { - name: folderName, - node: this.activeNode.id, - store: this.options.storeId, - form_key: FORM_KEY - }, - context: this.element, - showLoader: true - }).done($.proxy(function(data) { - if (data.error) { - window.alert(data.message); - } else { - this.tree.jstree('refresh', this.element.find('[data-id="' + this.activeNode.id + '"]')); + var self = this; + + prompt({ + title: this.options.newFolderPrompt, + actions: { + confirm: function (folderName) { + return $.ajax({ + url: self.options.newFolderUrl, + dataType: 'json', + data: { + name: folderName, + node: self.activeNode.id, + store: self.options.storeId, + form_key: FORM_KEY + }, + context: self.element, + showLoader: true + }).done($.proxy(function(data) { + if (data.error) { + window.alert(data.message); + } else { + self.tree.jstree('refresh', self.element.find('[data-id="' + self.activeNode.id + '"]')); + } + }, this)); + } } - }, this)); + }); }, deleteFolder: function() { -- GitLab From b15d9507d529fa922b53ff5803545412e21c62bd Mon Sep 17 00:00:00 2001 From: Tibor Kotosz <tkotosz@inviqa.com> Date: Fri, 4 Sep 2015 17:24:49 +0200 Subject: [PATCH 068/420] Fix invalid @method phpdoc to prevent prophecy mocking error --- .../Magento/Backend/Block/Widget/Button/Item.php | 12 ++++++------ .../Block/Widget/Button/Toolbar/Container.php | 4 ++-- .../Product/Attribute/Edit/Tab/Options.php | 2 +- app/code/Magento/Catalog/Model/Product.php | 2 +- .../Model/Config/Backend/Address/Street.php | 2 +- .../Block/Adminhtml/Shopcart/Abandoned/Grid.php | 2 +- .../Adminhtml/Order/CreditmemoLoader.php | 16 ++++++++-------- .../Adminhtml/Order/ShipmentLoader.php | 16 ++++++++-------- .../Adminhtml/Wysiwyg/Files/Content/Files.php | 2 +- 9 files changed, 29 insertions(+), 29 deletions(-) diff --git a/app/code/Magento/Backend/Block/Widget/Button/Item.php b/app/code/Magento/Backend/Block/Widget/Button/Item.php index a500f836312..73ed2c5f50e 100644 --- a/app/code/Magento/Backend/Block/Widget/Button/Item.php +++ b/app/code/Magento/Backend/Block/Widget/Button/Item.php @@ -7,12 +7,12 @@ namespace Magento\Backend\Block\Widget\Button; /** - * @method string getButtonKey - * @method string getRegion - * @method string getName - * @method int getLevel - * @method int getSortOrder - * @method string getTitle + * @method string getButtonKey() + * @method string getRegion() + * @method string getName() + * @method int getLevel() + * @method int getSortOrder() + * @method string getTitle() */ class Item extends \Magento\Framework\DataObject { diff --git a/app/code/Magento/Backend/Block/Widget/Button/Toolbar/Container.php b/app/code/Magento/Backend/Block/Widget/Button/Toolbar/Container.php index e7c199cf478..959ef806acf 100644 --- a/app/code/Magento/Backend/Block/Widget/Button/Toolbar/Container.php +++ b/app/code/Magento/Backend/Block/Widget/Button/Toolbar/Container.php @@ -9,8 +9,8 @@ namespace Magento\Backend\Block\Widget\Button\Toolbar; use Magento\Backend\Block\Widget\Button\ContextInterface; /** - * @method \Magento\Backend\Block\Widget\Button\Item getButtonItem - * @method ContextInterface getContext + * @method \Magento\Backend\Block\Widget\Button\Item getButtonItem() + * @method ContextInterface getContext() * @method ContextInterface setContext(ContextInterface $context) */ class Container extends \Magento\Framework\View\Element\AbstractBlock diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Options.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Options.php index eabcac9f715..b08fdb85de1 100644 --- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Options.php +++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Options.php @@ -8,7 +8,7 @@ * Product attribute add/edit form options tab * * @method \Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Options setReadOnly(bool $value) - * @method null|bool getReadOnly + * @method null|bool getReadOnly() * * @author Magento Core Team <core@magentocommerce.com> */ diff --git a/app/code/Magento/Catalog/Model/Product.php b/app/code/Magento/Catalog/Model/Product.php index dd0f5ec4ead..26a6f10defd 100644 --- a/app/code/Magento/Catalog/Model/Product.php +++ b/app/code/Magento/Catalog/Model/Product.php @@ -23,7 +23,7 @@ use Magento\Framework\Api\Data\ImageContentInterface; * @method array getAssociatedProductIds() * @method Product setNewVariationsAttributeSetId(int $value) * @method int getNewVariationsAttributeSetId() - * @method int getPriceType + * @method int getPriceType() * @method Resource\Product\Collection getCollection() * @method string getUrlKey() * @method Product setUrlKey(string $urlKey) diff --git a/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php b/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php index 5870718e463..4f4c92edd0d 100644 --- a/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php +++ b/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php @@ -10,7 +10,7 @@ use Magento\Framework\App\Config\ScopeConfigInterface; /** * Line count config model for customer address street attribute * - * @method string getWebsiteCode + * @method string getWebsiteCode() */ class Street extends \Magento\Framework\App\Config\Value { diff --git a/app/code/Magento/Reports/Block/Adminhtml/Shopcart/Abandoned/Grid.php b/app/code/Magento/Reports/Block/Adminhtml/Shopcart/Abandoned/Grid.php index 04e370c9736..70abcd68459 100644 --- a/app/code/Magento/Reports/Block/Adminhtml/Shopcart/Abandoned/Grid.php +++ b/app/code/Magento/Reports/Block/Adminhtml/Shopcart/Abandoned/Grid.php @@ -8,7 +8,7 @@ namespace Magento\Reports\Block\Adminhtml\Shopcart\Abandoned; /** * Adminhtml abandoned shopping carts report grid block * - * @method \Magento\Reports\Model\Resource\Quote\Collection getCollection + * @method \Magento\Reports\Model\Resource\Quote\Collection getCollection() * * @author Magento Core Team <core@magentocommerce.com> * @SuppressWarnings(PHPMD.DepthOfInheritance) diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/CreditmemoLoader.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/CreditmemoLoader.php index cf69855c148..5918bdb0326 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/CreditmemoLoader.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/CreditmemoLoader.php @@ -14,14 +14,14 @@ use \Magento\Sales\Model\Order\CreditmemoFactory; * Class CreditmemoLoader * * @package Magento\Sales\Controller\Adminhtml\Order - * @method CreditmemoLoader setCreditmemoId - * @method CreditmemoLoader setCreditmemo - * @method CreditmemoLoader setInvoiceId - * @method CreditmemoLoader setOrderId - * @method int getCreditmemoId - * @method string getCreditmemo - * @method int getInvoiceId - * @method int getOrderId + * @method CreditmemoLoader setCreditmemoId($id) + * @method CreditmemoLoader setCreditmemo($creditMemo) + * @method CreditmemoLoader setInvoiceId($id) + * @method CreditmemoLoader setOrderId($id) + * @method int getCreditmemoId() + * @method string getCreditmemo() + * @method int getInvoiceId() + * @method int getOrderId() */ class CreditmemoLoader extends DataObject { diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/ShipmentLoader.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/ShipmentLoader.php index 6bbaac5a04d..c837623ac8f 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/ShipmentLoader.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/ShipmentLoader.php @@ -12,14 +12,14 @@ use Magento\Framework\DataObject; * Class ShipmentLoader * * @package Magento\Shipping\Controller\Adminhtml\Order - * @method ShipmentLoader setOrderId - * @method ShipmentLoader setShipmentId - * @method ShipmentLoader setShipment - * @method ShipmentLoader setTracking - * @method int getOrderId - * @method int getShipmentId - * @method array getShipment - * @method array getTracking + * @method ShipmentLoader setOrderId($id) + * @method ShipmentLoader setShipmentId($id) + * @method ShipmentLoader setShipment($shipment) + * @method ShipmentLoader setTracking($tracking) + * @method int getOrderId() + * @method int getShipmentId() + * @method array getShipment() + * @method array getTracking() */ class ShipmentLoader extends DataObject { diff --git a/app/code/Magento/Theme/Block/Adminhtml/Wysiwyg/Files/Content/Files.php b/app/code/Magento/Theme/Block/Adminhtml/Wysiwyg/Files/Content/Files.php index 9b11f465787..1af3ea8e4bc 100644 --- a/app/code/Magento/Theme/Block/Adminhtml/Wysiwyg/Files/Content/Files.php +++ b/app/code/Magento/Theme/Block/Adminhtml/Wysiwyg/Files/Content/Files.php @@ -9,7 +9,7 @@ * * @method * \Magento\Theme\Block\Adminhtml\Wysiwyg\Files\Content\Files setStorage(\Magento\Theme\Model\Wysiwyg\Storage $storage) - * @method \Magento\Theme\Model\Wysiwyg\Storage getStorage + * @method \Magento\Theme\Model\Wysiwyg\Storage getStorage() */ namespace Magento\Theme\Block\Adminhtml\Wysiwyg\Files\Content; -- GitLab From d016df6ef1d6bd27e83fa6715c2aab6781c237b5 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Mon, 14 Sep 2015 16:21:25 +0300 Subject: [PATCH 069/420] MAGETWO-42479: Refactor all entries modal windows --- .../view/adminhtml/web/js/bundle-product.js | 65 +++++++++---------- .../Adminhtml/Product/Composite/Configure.php | 2 +- .../Test/Page/Adminhtml/OrderCreateIndex.xml | 2 +- 3 files changed, 34 insertions(+), 35 deletions(-) diff --git a/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js b/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js index 0d9a60d6469..17db65ef272 100644 --- a/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js +++ b/app/code/Magento/Bundle/view/adminhtml/web/js/bundle-product.js @@ -81,7 +81,7 @@ define([ var widget = this; this._on({'click .add-selection': function (event) { var $optionBox = $(event.target).closest('.option-box'), - $selectionGrid = $optionBox.find('.selection-search'), + $selectionGrid = $optionBox.find('.selection-search').clone(), optionIndex = $optionBox.attr('id').replace('bundle_option_', ''), productIds = [], productSkus = [], @@ -115,37 +115,36 @@ define([ } }); - if (this.modal) { - this.modal.html($selectionGrid.html()); - } else { - this.modal = $selectionGrid.modal({ - title: $optionBox.find('input[name$="[title]"]').val() === '' ? - $.mage.__('Add Products to New Option') : - $.mage.__('Add Products to Option "%1"') - .replace('%1',($('<div>').text($optionBox.find('input[name$="[title]"]').val()).html())), - modalClass: 'bundle', - type: 'slide', - buttons: [{ - text: $.mage.__('Add Selected Products'), - 'class': 'action-primary action-add', - click: function () { - $.each(selectedProductList, function() { - window.bSelection.addRow(optionIndex, this); - }); - bSelection.gridRemoval.each( - function(pair) { - $optionBox.find('.col-sku').filter(function () { - return $.trim($(this).text()) === pair.key; // find row by SKU - }).closest('tr').find('button.delete').trigger('click'); - } - ); - widget.refreshSortableElements(); - widget._updateSelectionsPositions.apply(widget.element); - widget.modal.modal('closeModal'); - } - }] - }); - } + $selectionGrid.modal({ + title: $optionBox.find('input[name$="[title]"]').val() === '' ? + $.mage.__('Add Products to New Option') : + $.mage.__('Add Products to Option "%1"') + .replace('%1',($('<div>').text($optionBox.find('input[name$="[title]"]').val()).html())), + modalClass: 'bundle', + type: 'slide', + closed: function(e, modal) { + modal.modal.remove(); + }, + buttons: [{ + text: $.mage.__('Add Selected Products'), + 'class': 'action-primary action-add', + click: function () { + $.each(selectedProductList, function() { + window.bSelection.addRow(optionIndex, this); + }); + bSelection.gridRemoval.each( + function(pair) { + $optionBox.find('.col-sku').filter(function () { + return $.trim($(this).text()) === pair.key; // find row by SKU + }).closest('tr').find('button.delete').trigger('click'); + } + ); + widget.refreshSortableElements(); + widget._updateSelectionsPositions.apply(widget.element); + $selectionGrid.modal('closeModal'); + } + }] + }); $.ajax({ url: bSelection.selectionSearchUrl, dataType: 'html', @@ -156,7 +155,7 @@ define([ form_key: FORM_KEY }, success: function(data) { - widget.modal.html(data).modal('openModal'); + $selectionGrid.html(data).modal('openModal'); }, context: $('body'), showLoader: true diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Composite/Configure.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Composite/Configure.php index 6416c7c9c7a..9af022411c2 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Composite/Configure.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Composite/Configure.php @@ -44,7 +44,7 @@ class Configure extends AbstractConfigureBlock * * @var string */ - protected $okButton = '.ui-button.action-primary'; + protected $okButton = '.action-primary[data-role="action"]'; /** * Backend abstract block. diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderCreateIndex.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderCreateIndex.xml index 9ca28ac5ddd..cdfafdfa832 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderCreateIndex.xml +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Page/Adminhtml/OrderCreateIndex.xml @@ -13,6 +13,6 @@ <block name="actionsBlock" class="Magento\Backend\Test\Block\GridPageActions" locator=".page-main-actions" strategy="css selector"/> <block name="couponsBlock" class="Magento\Sales\Test\Block\Adminhtml\Order\Create\Coupons" locator="#order-coupons" strategy="css selector"/> <block name="customerActivitiesBlock" class="Magento\Sales\Test\Block\Adminhtml\Order\Create\CustomerActivities" locator=".customer-current-activity" strategy="css selector"/> - <block name="configureProductBlock" class="Magento\Catalog\Test\Block\Adminhtml\Product\Composite\Configure" locator="//*[@role='dialog' and ./*[@id='product_composite_configure'] and contains(@style,'display: block')]" strategy="xpath"/> + <block name="configureProductBlock" class="Magento\Catalog\Test\Block\Adminhtml\Product\Composite\Configure" locator="//*[@data-role='modal' and .//*[@id='product_composite_configure'] and contains(@class,'_show')]" strategy="xpath"/> </page> </config> -- GitLab From 2c00c1037dff96be377885b11262ed326873e4dd Mon Sep 17 00:00:00 2001 From: Dubovyk Oleksandr <odubovyk@ebay.com> Date: Mon, 14 Sep 2015 17:02:16 +0300 Subject: [PATCH 070/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget - Fixed styles for WYSIWYG add image --- .../adminhtml/templates/browser/content.phtml | 2 +- .../adminhtml/templates/browser/content.phtml | 2 +- .../css/source/components/_modals_extend.less | 203 +++++++++++++----- 3 files changed, 156 insertions(+), 51 deletions(-) diff --git a/app/code/Magento/Cms/view/adminhtml/templates/browser/content.phtml b/app/code/Magento/Cms/view/adminhtml/templates/browser/content.phtml index 7838058ef1d..c325b7e9012 100644 --- a/app/code/Magento/Cms/view/adminhtml/templates/browser/content.phtml +++ b/app/code/Magento/Cms/view/adminhtml/templates/browser/content.phtml @@ -20,7 +20,7 @@ <div class="title"><?php echo $block->getHeaderText() ?></div> </div> </div> - <div id="contents-uploader"><?php echo $block->getChildHtml('wysiwyg_images.uploader') ?></div> + <div id="contents-uploader" class="contents-uploader"><?php echo $block->getChildHtml('wysiwyg_images.uploader') ?></div> <div id="contents"></div> </div> </div> diff --git a/app/code/Magento/Theme/view/adminhtml/templates/browser/content.phtml b/app/code/Magento/Theme/view/adminhtml/templates/browser/content.phtml index 771617e8286..6f815e72074 100644 --- a/app/code/Magento/Theme/view/adminhtml/templates/browser/content.phtml +++ b/app/code/Magento/Theme/view/adminhtml/templates/browser/content.phtml @@ -24,6 +24,6 @@ </table> </div> -<div id="contents-uploader"><?php echo $block->getChildHtml('wysiwyg_files.uploader') ?></div> +<div id="contents-uploader" class="contents-uploader"><?php echo $block->getChildHtml('wysiwyg_files.uploader') ?></div> <div id="contents"></div> <div id="contents-newfolder" class="no-display"><?php echo $block->getChildHtml('wysiwyg_files.newfolder') ?></div> diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less index 6575810401f..4b2349af7c5 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less @@ -26,62 +26,167 @@ .modal-popup, .modal-slide { - .action-close { - color: @modal-action-close__color; - position: absolute; - right: 0; - top: 0; - &:active { - transform: none; - &:before { - font-size: @modal-action-close__active__font-size; - } - } - &:hover { - &:before { - color: @modal-action-close__hover__color; - } - } - &:before { - font-size: @modal-action-close__font-size; - } - } + .action-close { + color: @modal-action-close__color; + position: absolute; + right: 0; + top: 0; + &:active { + transform: none; + &:before { + font-size: @modal-action-close__active__font-size; + } + } + &:hover { + &:before { + color: @modal-action-close__hover__color; + } + } + &:before { + font-size: @modal-action-close__font-size; + } + } } .modal-popup { - .modal-title { - font-size: @modal-popup-title__font-size; - margin-right: @modal-popup-title__font-size + @modal-popup__padding + 1rem; - } - .action-close { - padding: @modal-popup__padding; - &:active { - padding-top: @modal-popup__padding + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 2; - padding-right: @modal-popup__padding + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 2; - } - } + .modal-title { + font-size: @modal-popup-title__font-size; + margin-right: @modal-popup-title__font-size + @modal-popup__padding + 1rem; + } + .action-close { + padding: @modal-popup__padding; + &:active { + padding-top: @modal-popup__padding + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 2; + padding-right: @modal-popup__padding + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 2; + } + } } .modal-slide { - .modal-title { - font-size: @modal-slide-title__font-size; - margin-right: @modal-slide-title__font-size + @modal-slide__padding + 1rem; - } - .action-close { - padding: @modal-slide-header__padding-vertical @modal-slide__padding; - &:active { - padding-top: @modal-slide-header__padding-vertical + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 2; - padding-right: @modal-slide__padding + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 2; - } - } - .page-main-actions { - margin-top: @modal-slide-header__padding-vertical; - margin-bottom: @modal-slide-header__padding-vertical - @page-main-actions__padding; - } + .modal-title { + font-size: @modal-slide-title__font-size; + margin-right: @modal-slide-title__font-size + @modal-slide__padding + 1rem; + } + .action-close { + padding: @modal-slide-header__padding-vertical @modal-slide__padding; + &:active { + padding-top: @modal-slide-header__padding-vertical + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 2; + padding-right: @modal-slide__padding + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 2; + } + } + .page-main-actions { + margin-top: @modal-slide-header__padding-vertical; + margin-bottom: @modal-slide-header__padding-vertical - @page-main-actions__padding; + } + + .modal-content { + height: auto !important; + .buttons-set { + margin: 0 0 15px; + button { + margin-right: 4px; + } + } + } + + .main-col, + .side-col { + float: left; + padding-bottom: 0; + &:after { + display: none; + } + } + + .side-col { + width: 20%; + } + + .main-col { + padding-right: 0; + width: 80%; + } + + // + // Block 'Insert File' + // ----------------------------------------- + + .main-col { + .insert-title-inner { + &:extend(.abs-clearfix all); + border-bottom: 1px solid @color-gray68; + margin: 0 0 @indent__base; + padding-bottom: @indent__xs; + } + .insert-actions { + float: right; + } + .title { + font-size: @font-size__l; + padding-top: @indent__xs; + } + } + + .contents-uploader { + margin: 0 0 @indent__base; + } + + .fileinput-button { + cursor: pointer; + display: inline-block; + float: none; + vertical-align: middle; + span { + display: none; + } + input { + border: none; + -moz-transform: none; + opacity: 1; + position: static; + } + } + + .breadcrumbs { + list-style: none; + padding-left: 0; + li { + display: inline-block; + margin: 0 @indent__xs @indent__xs 0; + &:after { + content: ''; + margin: 0 @indent__xs 0 0; + } + } + } + + .file-row { + border: 1px solid @color-gray68; + margin: @indent__xs 0; + padding: 2px; + } + + .filecnt { + border: 1px solid @color-gray68; + display: inline-block; + margin: 0 @indent__xs 15px 0; + padding: 3px; + width: 100px; + overflow: hidden; + cursor: pointer; + &.selected { + border-color: @color-blue-dodger; + } + p { + text-align: center; + } + } + + } .modal-title { - font-weight: @font-weight__regular; - margin-bottom: 0; - min-height: 1em; + font-weight: @font-weight__regular; + margin-bottom: 0; + min-height: 1em; } -- GitLab From 31c7fdbb22e2cd1cc8f2c841780c59246724a268 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Tue, 15 Sep 2015 01:27:22 +0300 Subject: [PATCH 071/420] JS-50: Different configurations for Page and Full Screen Gallery Widget modes --- .../templates/product/view/gallery.phtml | 13 +- .../frontend/Magento/blank/etc/view.xml | 5 +- app/design/frontend/Magento/luma/etc/view.xml | 3 +- .../js/jasmine/tests/lib/mage/gallery.test.js | 2 +- lib/web/fotorama/fotorama.js | 239 +++++++++---- lib/web/mage/gallery/gallery.html | 4 +- lib/web/mage/gallery/gallery.js | 22 +- lib/web/mage/gallery/gallery.less | 324 +++++++++++++++--- lib/web/magnifier/magnifier.js | 54 +++ lib/web/magnifier/magnify.js | 3 +- 10 files changed, 548 insertions(+), 121 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 024df1446a5..7bf679228f9 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -29,15 +29,14 @@ "nav": "<?php echo $block->getVar("gallery:navigation"); ?>", "loop": <?php echo $block->getVar("gallery:loop"); ?>, "keyboard": <?php echo $block->getVar("gallery:keyboard"); ?>, - "arrows": <?php echo $block->getVar("gallery:arrows"); ?>, + "navdir": "<?php echo $block->getVar("gallery:navdir"); ?>", "allowfullscreen": <?php echo $block->getVar("gallery:allowfullscreen"); ?>, - "showCaption": <?php echo $block->getVar("gallery:show_caption"); ?>, + "showCaption": <?php echo $block->getVar("gallery:caption"); ?>, "width": <?php echo $block->getImageAttribute('product_page_image_medium', 'width'); ?>, - "thumbwidth": <?php echo $block->getImageAttribute('product_page_image_small', 'width'); ?>, - "thumbheight": <?php echo $block->getImageAttribute('product_page_image_small', 'height') - ?: $block->getImageAttribute('product_page_image_small', 'width'); ?>, + "thumbwidth": 120, + "thumbheight": 90, "height": <?php echo $block->getImageAttribute('product_page_image_medium', 'height') - ?: $block->getImageAttribute('product_page_image_medium', 'width'); ?> + ?: $block->getImageAttribute('product_page_image_medium', 'width'); ?>, "transitionduration": <?php echo $block->getVar("gallery:transition:duration"); ?>, "transition": "<?php echo $block->getVar("gallery:transition:effect"); ?>" }, @@ -45,7 +44,7 @@ "nav": "<?php echo $block->getVar("gallery:fullscreen:navigation"); ?>", "loop": <?php echo $block->getVar("gallery:fullscreen:loop"); ?>, "arrows": <?php echo $block->getVar("gallery:fullscreen:arrows"); ?>, - "showCaption": <?php echo $block->getVar("gallery:fullscreen:show_caption"); ?>, + "showCaption": <?php echo $block->getVar("gallery:fullscreen:caption"); ?>, "transitionduration": <?php echo $block->getVar("gallery:fullscreen:transition:duration"); ?>, "transition": "<?php echo $block->getVar("gallery:fullscreen:transition:effect"); ?>" }, diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 15a8191641f..93815d880aa 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -184,15 +184,16 @@ <var name="gallery:loop">true</var> <!-- Gallery navigation loop (true/false) --> <var name="gallery:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false) --> <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> - <var name="gallery:show_caption">false</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> + <var name="gallery:navdir">vertical</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="gallery:fullscreen:loop">false</var> <!-- Fullscreen navigation loop (true/false) --> <var name="gallery:fullscreen:arrows">null</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> - <var name="gallery:fullscreen:show_caption">null</var> <!-- Display alt text as image title (true/false/null) --> + <var name="gallery:fullscreen:caption">null</var> <!-- Display alt text as image title (true/false/null) --> <var name="gallery:fullscreen:transition:effect">crossfade</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index df358d1629b..b5f49bfde17 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -190,6 +190,7 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:caption">true</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> + <var name="gallery:navdir">horizontal</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> @@ -197,7 +198,7 @@ <var name="gallery:fullscreen:loop">true</var> <!-- Fullscreen navigation loop (true/false/null) --> <var name="gallery:fullscreen:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="gallery:fullscreen:arrows">false</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> - <var name="gallery:fullscreen:show_caption">false</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:fullscreen:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:fullscreen:transition:effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> diff --git a/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js b/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js index dd29ec79a64..d762ca5fe9f 100644 --- a/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js +++ b/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js @@ -138,7 +138,6 @@ define([ }); }); - it('fullscreen exit', function (done) { expect($(navWrap).css('display') === 'none').toBeTruthy(); galleryAPI.fotorama.cancelFullScreen(); @@ -150,5 +149,6 @@ define([ done(); }); }); + }); }); diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 5f34cd9820e..d7f64c62bc1 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -5,7 +5,7 @@ fotoramaVersion = '4.6.4'; (function (window, document, location, $, undefined) { "use strict"; var _fotoramaClass = 'fotorama', - _fullscreenClass = 'fullscreen', + _fullscreenClass = 'fotorama__fullscreen', wrapClass = _fotoramaClass + '__wrap', wrapCss2Class = wrapClass + '--css2', @@ -37,6 +37,9 @@ fotoramaVersion = '4.6.4'; navClass = _fotoramaClass + '__nav', navWrapClass = navClass + '-wrap', navShaftClass = navClass + '__shaft', + navShaftVerticalClass = navWrapClass + '--vertical', + navShaftListClass = navWrapClass + '--list', + navShaftHorisontalClass = navWrapClass + '--horisontal', navDotsClass = navClass + '--dots', navThumbsClass = navClass + '--thumbs', navFrameClass = navClass + '__frame', @@ -49,6 +52,8 @@ fotoramaVersion = '4.6.4'; shadowsClass = shadowClass + 's', shadowsLeftClass = shadowsClass + '--left', shadowsRightClass = shadowsClass + '--right', + shadowsTopClass = shadowsClass + '--top', + shadowsBottomClass = shadowsClass + '--bottom', activeClass = _fotoramaClass + '__active', selectClass = _fotoramaClass + '__select', @@ -482,7 +487,7 @@ fotoramaVersion = '4.6.4'; , n for (n in prop) el[n] = prop[n] - return el; + return el } /** @@ -986,7 +991,8 @@ fotoramaVersion = '4.6.4'; shadows: true, spinner: null, - showcaption: true + showcaption: true, + navdir: 'horisontal' }, KEYBOARD_OPTIONS = { @@ -1005,24 +1011,40 @@ fotoramaVersion = '4.6.4'; return Math.max(isNaN(min) ? -Infinity : min, Math.min(isNaN(max) ? Infinity : max, value)); } - function readTransform(css) { - return css.match(/ma/) && css.match(/-?\d+(?!d)/g)[css.match(/3d/) ? 12 : 4]; + function readTransform(css, dir) { + return css.match(/ma/) && css.match(/-?\d+(?!d)/g)[css.match(/3d/) ? + (dir === 'vertical' ? 13: 12) : (dir === 'vertical' ? 5 : 4) + ] } - function readPosition($el) { + function readPosition($el, dir) { if (CSS3) { - return +readTransform($el.css('transform')); + return +readTransform($el.css('transform'), dir); } else { - return +$el.css('left').replace('px', ''); + return +$el.css(dir === 'vertical' ? 'top': 'left').replace('px', ''); } } - function getTranslate(pos/*, _001*/) { + function getTranslate(pos, direction) { var obj = {}; + if (CSS3) { - obj.transform = 'translate3d(' + (pos/* + (_001 ? 0.001 : 0)*/) + 'px,0,0)'; // 0.001 to remove Retina artifacts + + switch (direction){ + case 'vertical': + obj.transform = 'translate3d(0, ' + (pos) + 'px,0)'; + break; + case 'list': + //console.warn("transition not implemented"); + break; + default : + obj.transform = 'translate3d(' + (pos) + 'px,0,0)'; + break; + } } else { - obj.left = pos; + direction === 'vertical' ? + obj.top = pos : + obj.left = pos; } return obj; } @@ -1103,7 +1125,8 @@ fotoramaVersion = '4.6.4'; } - function stop($el, left/*, _001*/) { + function stop($el, pos/*, _001*/) { + var dir = $el.navdir || 'horizontal'; if ($el.length) { var elData = $el.data(); if (CSS3) { @@ -1113,12 +1136,12 @@ fotoramaVersion = '4.6.4'; } else { $el.stop(); } - var lockedLeft = getNumber(left, function () { - return readPosition($el); + var lockedPos = getNumber(pos, function () { + return readPosition($el, dir); }); - $el.css(getTranslate(lockedLeft/*, _001*/));//.width(); // `.width()` for reflow - return lockedLeft; + $el.css(getTranslate(lockedPos, dir/*, _001*/));//.width(); // `.width()` for reflow + return lockedPos; } } @@ -1353,8 +1376,11 @@ fotoramaVersion = '4.6.4'; } } - function findShadowEdge(pos, min, max) { - return min === max ? false : pos <= min ? 'left' : pos >= max ? 'right' : 'left right'; + function findShadowEdge(pos, min, max, dir) { + return min === max ? false : + dir === 'vertical' ? + (pos <= min ? 'top' : pos >= max ? 'bottom' : 'top bottom') : + (pos <= min ? 'left' : pos >= max ? 'right' : 'left right'); } function smartClick($el, fn, _options) { @@ -1377,7 +1403,6 @@ fotoramaVersion = '4.6.4'; onMove: _options.onMove || noop, onTouchEnd: _options.onTouchEnd || noop, onEnd: function (result) { - ////console.log('smartClick → result.moved', result.moved); if (result.moved) return; fn.call(this, startEvent); } @@ -1575,7 +1600,7 @@ fotoramaVersion = '4.6.4'; elPos = options.overPos; } - var translate = $.extend(getTranslate(elPos/*, options._001*/), options.width && {width: options.width}); + var translate = $.extend(getTranslate(elPos, options.direction), options.width && {width: options.width}, options.height && {height: options.height}); if (elData && elData.sliding) { elData.sliding = true; } @@ -1635,7 +1660,8 @@ fotoramaVersion = '4.6.4'; var lastEvent, moveEventType, preventEvent, - preventEventTimeout; + preventEventTimeout, + dragDomEl; function extendEvent(e) { var touch = (e.touches || [])[0] || e; @@ -1709,7 +1735,6 @@ fotoramaVersion = '4.6.4'; stopEvent(e); } } else { - ////console.log('onMove e.preventDefault'); stopEvent(e); (options.onMove || noop).call(el, e, {touch: touchFLAG}); } @@ -1786,11 +1811,12 @@ fotoramaVersion = '4.6.4'; .on('mousemove', onMove) .on('mouseup', onEnd); } - - $el.on('click', 'a', function (e) { - if (!Modernizr.touch) { - e.preventDefault(); - } + if (Modernizr.touch) { + dragDomEl = 'a'; + } else { + dragDomEl = 'div'; + } + $el.on('click', dragDomEl, function (e) { tail.checked && stopEvent(e); }); @@ -1812,6 +1838,7 @@ fotoramaVersion = '4.6.4'; min, max, snap, + dir = options.direction || 'horizontal', slowFLAG, controlFLAG, moved, @@ -1819,9 +1846,10 @@ fotoramaVersion = '4.6.4'; function startTracking(e, noStop) { tracked = true; - startCoo = coo = e._x; + startCoo = coo = (dir === 'vertical') ? e._y : e._x; startTime = e._now; + moveTrack = [ [startTime, startCoo] ]; @@ -1834,7 +1862,9 @@ fotoramaVersion = '4.6.4'; function onStart(e, result) { min = tail.min; max = tail.max; - snap = tail.snap; + snap = tail.snap, + dir = tail.direction||'horizontal', + $el.navdir = dir; slowFLAG = e.altKey; tracked = moved = false; @@ -1851,14 +1881,13 @@ fotoramaVersion = '4.6.4'; if (!tracked) { startTracking(e); } - - coo = e._x; + coo = (dir === 'vertical') ? e._y : e._x; moveTrack.push([e._now, coo]); moveElPos = startElPos - (startCoo - coo); - edge = findShadowEdge(moveElPos, min, max); + edge = findShadowEdge(moveElPos, min, max, dir); if (moveElPos <= min) { moveElPos = edgeResistance(moveElPos, min); @@ -1867,7 +1896,7 @@ fotoramaVersion = '4.6.4'; } if (!tail.noMove) { - $el.css(getTranslate(moveElPos/*, options._001*/)); + $el.css(getTranslate(moveElPos, dir)); if (!moved) { moved = true; // only for mouse @@ -1959,7 +1988,8 @@ fotoramaVersion = '4.6.4'; pos: moveElPos, newPos: newPos, overPos: overPos, - time: time + time: time, + dir:dir })); } @@ -2118,7 +2148,11 @@ fotoramaVersion = '4.6.4'; stageLeft = 0, fadeStack = []; - $wrap[STAGE_FRAME_KEY] = $('<a class="' + stageFrameClass + '" target="_blank"></a>'); + if (Modernizr.touch) { + $wrap[STAGE_FRAME_KEY] = $('<a class="' + stageFrameClass + '" target="_blank"></a>'); + } else { + $wrap[STAGE_FRAME_KEY] = $('<div class="' + stageFrameClass + '"></div>'); + } $wrap[NAV_THUMB_FRAME_KEY] = $($.Fotorama.jst.thumb()); @@ -2160,6 +2194,25 @@ fotoramaVersion = '4.6.4'; return o_keyboard[key] || that.fullScreen; } + function setStagePosition() { + if ($stage !== undefined) { + + if (opts.navdir == 'vertical') { + var padding = opts.thumbwidth + opts.thumbmargin; + + $stage.css('left', padding); + $arrNext.css('right', padding); + $wrap.css('width', $wrap.css('width') + padding); + $stageShaft.css('max-width', $wrap.width() - padding); + } else { + $stage.css('left', ''); + $arrNext.css('right', ''); + $wrap.css('width', $wrap.css('width') + padding); + $stageShaft.css('max-width', ''); + } + } + } + function bindGlobalEvents(FLAG) { var keydownCommon = 'keydown.' + _fotoramaClass, localStamp = _fotoramaClass + stamp, @@ -2266,6 +2319,10 @@ fotoramaVersion = '4.6.4'; * Options on the fly * */ function setOptions() { + if (opts.nav === 'dots') { + opts.navdir = 'horizontal' + } + that.options = opts = optionsToLowerCase(opts); o_fade = (opts.transition === 'crossfade' || opts.transition === 'dissolve'); @@ -2386,6 +2443,7 @@ fotoramaVersion = '4.6.4'; .removeClass(classes.remove.join(' ')); lastOptions = $.extend({}, opts); + setStagePosition(); } function normalizeIndex(index) { @@ -2415,8 +2473,13 @@ fotoramaVersion = '4.6.4'; } function setNavShaftMinMax() { - navShaftTouchTail.min = Math.min(0, measures.nw - $navShaft.width()); + + var isVerticalDir = (opts.navdir === 'vertical'); + var param = isVerticalDir ? $navShaft.height() : $navShaft.width(); + var mainParam = isVerticalDir ? measures.h : measures.nw; + navShaftTouchTail.min = Math.min(0, mainParam - param); navShaftTouchTail.max = 0; + navShaftTouchTail.direction = opts.navdir; $navShaft.toggleClass(grabClass, !(navShaftTouchTail.noMove = navShaftTouchTail.min === navShaftTouchTail.max)); } @@ -2724,6 +2787,10 @@ fotoramaVersion = '4.6.4'; } function thumbsDraw(pos, loadFLAG) { + if (opts.navdir === 'vertical') { + pos = pos - opts.thumbheight; + } + if (o_nav !== 'thumbs' || isNaN(pos)) return; var leftLimit = -pos, @@ -2739,8 +2806,7 @@ fotoramaVersion = '4.6.4'; w: thisData.w } }, - specialMeasures = getSpecialMeasures(), - dataFrame = data[eq] || {}; + specialMeasures = getSpecialMeasures(); specialMeasures.w = thisData.w; @@ -2756,7 +2822,8 @@ fotoramaVersion = '4.6.4'; if (!frameAppend[type]) { var thumbsFLAG = type === 'nav' && o_navThumbs, - left = 0; + left = 0, + top = 0; $shaft.append( $frames @@ -2787,13 +2854,16 @@ fotoramaVersion = '4.6.4'; var $this = $(this), frameData = $this.data(), - thumbwidth = Math.round(o_thumbSide2 * frameData.data.thumbratio) || o_thumbSide; - + thumbwidth = Math.round(o_thumbSide2 * frameData.data.thumbratio) || o_thumbSide, + thumbheight = Math.round(o_thumbSide / frameData.data.thumbratio) || o_thumbSide2; + frameData.t = top; + frameData.h = thumbheight; frameData.l = left; frameData.w = thumbwidth; $this.css({width: thumbwidth}); + top += thumbheight + opts.thumbmargin; left += thumbwidth + opts.thumbmargin; }) ); @@ -2830,29 +2900,43 @@ fotoramaVersion = '4.6.4'; function getNavFrameBounds($navFrame) { var navFrameData = $navFrame.data(), left, - width; + top, + width, + height; if (o_navThumbs) { left = navFrameData.l; + top = navFrameData.t; width = navFrameData.w; + height = navFrameData.h; } else { left = $navFrame.position().left; width = $navFrame.width(); } - return { + var horizontalBounds = { c: left + width / 2, min: -left + opts.thumbmargin * 10, max: -left + measures.w - width - opts.thumbmargin * 10 }; + + var verticalBounds = { + c: top + height / 2, + min: -top + opts.thumbmargin * 10, + max: -top + measures.h - height - opts.thumbmargin * 10 + }; + + return opts.navdir === 'vertical' ? verticalBounds : horizontalBounds; } function slideThumbBorder(time) { var navFrameData = activeFrame[navFrameKey].data(); slide($thumbBorder, { time: time * 1.2, - pos: navFrameData.l, - width: navFrameData.w + pos: (opts.navdir === 'vertical' ? navFrameData.t : navFrameData.l), + width: navFrameData.w, + height: navFrameData.h, + direction: opts.navdir }); } @@ -2861,19 +2945,22 @@ fotoramaVersion = '4.6.4'; if ($guessNavFrame) { var overflowFLAG = navShaftTouchTail.min !== navShaftTouchTail.max, minMax = options.minMax || overflowFLAG && getNavFrameBounds(activeFrame[navFrameKey]), - l = overflowFLAG && (options.keep && slideNavShaft.l ? slideNavShaft.l : minMaxLimit((options.coo || measures.nw / 2) - getNavFrameBounds($guessNavFrame).c, minMax.min, minMax.max)), + boundTop = overflowFLAG && (options.keep && slideNavShaft.t ? slideNavShaft.l : minMaxLimit((options.coo || measures.nw / 2) - getNavFrameBounds($guessNavFrame).c, minMax.min, minMax.max)), + boundLeft = overflowFLAG && (options.keep && slideNavShaft.l ? slideNavShaft.l : minMaxLimit((options.coo || measures.nw / 2) - getNavFrameBounds($guessNavFrame).c, minMax.min, minMax.max)), + l = (opts.navdir === 'vertical' ? boundTop : boundLeft), pos = overflowFLAG && minMaxLimit(l, navShaftTouchTail.min, navShaftTouchTail.max), time = options.time * 1.1; slide($navShaft, { time: time, pos: pos || 0, + direction: opts.navdir, onEnd: function () { thumbsDraw(pos, true); } }); - setShadow($nav, findShadowEdge(pos, navShaftTouchTail.min, navShaftTouchTail.max)); + setShadow($nav, findShadowEdge(pos, navShaftTouchTail.min, navShaftTouchTail.max, opts.navdir)); slideNavShaft.l = l; } } @@ -3120,8 +3207,7 @@ fotoramaVersion = '4.6.4'; pos: -getPosByIndex(dirtyIndex, measures.w, opts.margin, repositionIndex), overPos: overPos, time: time, - onEnd: onEnd/*, - _001: true*/ + onEnd: onEnd }); } else { var $activeFrame = activeFrame[STAGE_FRAME_KEY], @@ -3264,11 +3350,11 @@ fotoramaVersion = '4.6.4'; if (measureIsValid(width)) { $stage.css({width: ''}); $stage.css({height: ''}); + $stage.css({'line-height': ''}); $stageShaft.css({width: ''}); $stageShaft.css({height: ''}); $nav.css({width: ''}); $nav.css({height: ''}); - $stage.css({'line-height': ''}); $wrap.css({minWidth: measures.minwidth || 0, maxWidth: measures.maxwidth || MAX_WIDTH}); width = measures.W = measures.w = $wrap.width(); @@ -3283,16 +3369,35 @@ fotoramaVersion = '4.6.4'; if (height) { width = Math.round(width); height = measures.h = Math.round(minMaxLimit(height, numberFromWhatever(measures.minheight, windowHeight), numberFromWhatever(measures.maxheight, windowHeight))); - $stage.css({'width': width, 'height': height, 'line-height': height + 'px'}); - stageShaftReposition(); - if (o_nav) { - $nav - .stop() - .animate({width: measures.nw}, time); + switch (opts.navdir) { + case 'vertical': + $navWrap.removeClass(navShaftHorisontalClass); + $navWrap.removeClass(navShaftListClass); + $navWrap.addClass(navShaftVerticalClass); + $nav + .stop() + .animate({height: measures.h, width: opts.thumbwidth}, time); + break; + case 'list': + $navWrap.removeClass(navShaftVerticalClass); + $navWrap.removeClass(navShaftHorisontalClass); + $navWrap.addClass(navShaftListClass); + //console.warn("List not implemented"); + break; + default: + $navWrap.removeClass(navShaftVerticalClass); + $navWrap.removeClass(navShaftListClass); + $navWrap.addClass(navShaftHorisontalClass); + $nav + .stop() + .animate({width: measures.nw}, time); + break; + } + stageShaftReposition(); slideNavShaft({guessIndex: activeIndex, time: time, keep: true}); if (o_navThumbs && frameAppend.nav) slideThumbBorder(time); } @@ -3304,6 +3409,7 @@ fotoramaVersion = '4.6.4'; } stageLeft = $stage.offset().left; + setStagePosition(); return this; }; @@ -3322,6 +3428,7 @@ fotoramaVersion = '4.6.4'; function setShadow($el, edge) { if (o_shadows) { $el.removeClass(shadowsLeftClass + ' ' + shadowsRightClass); + $el.removeClass(shadowsTopClass + ' ' + shadowsBottomClass); edge && !$videoPlaying && $el.addClass(edge.replace(/^|\s/g, ' ' + shadowsClass + '--')); } } @@ -3492,7 +3599,9 @@ fotoramaVersion = '4.6.4'; timeHigh: 1, friction: 2, select: '.' + selectClass + ', .' + selectClass + ' *', - $wrap: $stage + $wrap: $stage, + direction: 'horizontal' + }); navShaftTouchTail = moveOnTouch($navShaft, { @@ -3519,10 +3628,11 @@ fotoramaVersion = '4.6.4'; time: result.time, pos: result.newPos, overPos: result.overPos, + direction: opts.navdir, onEnd: onEnd }); thumbsDraw(result.newPos); - o_shadows && setShadow($nav, findShadowEdge(result.newPos, navShaftTouchTail.min, navShaftTouchTail.max)); + o_shadows && setShadow($nav, findShadowEdge(result.newPos, navShaftTouchTail.min, navShaftTouchTail.max, result.dir)); } else { onEnd(); } @@ -3530,7 +3640,8 @@ fotoramaVersion = '4.6.4'; timeLow: .5, timeHigh: 2, friction: 5, - $wrap: $nav + $wrap: $nav, + direction: opts.navdir }); stageWheelTail = wheel($stage, { @@ -3547,8 +3658,8 @@ fotoramaVersion = '4.6.4'; onTouchStart(); onTouchEnd(); var newPos = stop($navShaft) + direction * .25; - $navShaft.css(getTranslate(minMaxLimit(newPos, navShaftTouchTail.min, navShaftTouchTail.max))); - o_shadows && setShadow($nav, findShadowEdge(newPos, navShaftTouchTail.min, navShaftTouchTail.max)); + $navShaft.css(getTranslate(minMaxLimit(newPos, navShaftTouchTail.min, navShaftTouchTail.max), opts.navdir)); + o_shadows && setShadow($nav, findShadowEdge(newPos, navShaftTouchTail.min, navShaftTouchTail.max, opts.navdir)); navWheelTail.prevent = {'<': newPos >= navShaftTouchTail.max, '>': newPos <= navShaftTouchTail.min}; clearTimeout(navWheelTail.t); navWheelTail.t = setTimeout(function () { @@ -3567,7 +3678,7 @@ fotoramaVersion = '4.6.4'; }, 0); }, function () { - //console.log("click"); + ////console.log("click"); if (!hoverFLAG) return; toggleControlsClass(!(hoverFLAG = false)); } @@ -3676,8 +3787,6 @@ fotoramaVersion = '4.6.4'; reset(); }; - - $.fn.fotorama = function (opts) { return this.each(function () { var that = this, @@ -3730,7 +3839,7 @@ fotoramaVersion = '4.6.4'; $.Fotorama.jst.dots = function(v) { var __t, __p = '', __e = _.escape; - __p += '<div class="fotorama__nav__frame fotorama__nav__frame--dot" tabindex="0" role="button" data-gallery-role="nav-frame" data-nav-type="dot" aria-label>\r\n <div class="fotorama__dot"></div>\r\n</div>'; + __p += '<div class="fotorama__nav__frame fotorama__nav__frame--dot" tabindex="0" role="button" data-gallery-role="nav-frame" data-nav-type="thumb" aria-label>\r\n <div class="fotorama__dot"></div>\r\n</div>'; return __p }; diff --git a/lib/web/mage/gallery/gallery.html b/lib/web/mage/gallery/gallery.html index 69a196d86c6..473d784d22c 100644 --- a/lib/web/mage/gallery/gallery.html +++ b/lib/web/mage/gallery/gallery.html @@ -17,6 +17,8 @@ <div class="fotorama__arr__arr" data-gallery-role="arrow"></div> </div> <div class="fotorama__video-close"></div> + <div class="fotorama__zoom-in"></div> + <div class="fotorama__zoom-out"></div> </div> <div class="fotorama__nav-wrap" data-gallery-role="nav-wrap"> <div class="fotorama__nav fotorama__nav--thumbs"> @@ -28,4 +30,4 @@ </div> </div> </div> -<div class="magnifier-preview" id="preview" data-gallery-role="magnifier"></div> +<div class="magnifier-preview" data-gallery-role="magnifier" id="preview"></div> diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index ed4e12dde1f..b66c45363e4 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -34,6 +34,8 @@ define([ * @param {String} element - String selector of gallery DOM element. */ initialize: function (config, element) { + var fullscreenData = []; + this._super(); config.options.swipe = true; @@ -43,14 +45,24 @@ define([ $element: $(element), currentConfig: config, defaultConfig: _.clone(config), - fullscreenConfig: _.clone(config.allowfullscreen), + fullscreenConfig: _.clone(config.fullscreen), breakpoints: config.breakpoints, activeBreakpoint: {}, fotoramaApi: null, isFullscreen: false, - api: null + api: null, + data: _.clone(config.data), + fullscreenData: [] }; + _.each(_.clone(this.settings.data), function (item) { + fullscreenData.push({ + img: item.original, + thumb: item.thumb + }); + }); + this.settings.fullscreenData = fullscreenData; + config.options.ratio = config.options.width / config.options.height; config.options.height = null; @@ -66,17 +78,20 @@ define([ * Gallery fullscreen settings. */ initFullscreenSettings: function () { - var settings = this.settings; + var settings = this.settings, + items = []; settings.fullscreenConfig.swipe = false; settings.$element.on('fotorama:fullscreenenter', function () { + settings.api.updateOptions(settings.defaultConfig.options, true); settings.api.updateOptions(settings.fullscreenConfig, true); if (!_.isEqual(settings.activeBreakpoint, {})) { settings.api.updateOptions(settings.activeBreakpoint.options, true); } + settings.api.updateData(_.clone(settings.fullscreenData)); settings.isFullscreen = true; }); @@ -86,6 +101,7 @@ define([ if (!_.isEqual(settings.activeBreakpoint, {})) { settings.api.updateOptions(settings.activeBreakpoint.options, true); } + settings.api.updateData(_.clone(settings.data)); settings.isFullscreen = false; }); }, diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 1f7eac04d2d..195dd5dec43 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -6,7 +6,6 @@ @fotorama-duration-time: 0.3s; @fotorama-arw-size: 95px; @fotorama_close_size: 30px; -@fotorama_fullscreen_button: 32px; @size-fotorama-block: 50px; @import '../../css/source/lib/_lib.less'; // Global lib @@ -21,22 +20,21 @@ } .translateX(@value) { + -webkit-transform: translateX(@value); -ms-transform: translateX(@value); -o-transform: translateX(@value); - -webkit-transform: translateX(@value); transform: translateX(@value); } .translateY(@value) { + -webkit-transform: translateY(@value); -ms-transform: translateY(@value); -o-transform: translateY(@value); - -webkit-transform: translateY(@value); transform: translateY(@value); } -.translate3d(@x, @y, @z) { - -webkit-transform: translate3d(@x, @y, @z); - transform: translate3d(@x, @y, @z); +.fotorama-shadow-gradient(@x, @y) { + background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.2) 25%, rgba(0, 0, 0, 0.3) 75%, transparent), radial-gradient(farthest-side at @x @y, rgba(0, 0, 0, 0.4), transparent); } .fotorama-inline-block(@va: middle) { @@ -48,6 +46,86 @@ vertical-align: @va; } +.fotorama__zoom-in, +.fotorama__zoom-out { + display: none; +} +.fotorama__fullscreen { + .fotorama__zoom-in, + .fotorama__zoom-out { + position: absolute; + width: 50px; + height: 50px; + display: block; + margin-left: 20px; + } + .fotorama__zoom-out { + top: 51px; + &:extend(.fotorama-sprite); + background-position: 0 (-@size-fotorama-block) !important; + } + + .fotorama__zoom-in { + top: 0; + &:extend(.fotorama-sprite); + background-position: 0 0 !important; + } +} + +.fotorama__zoom-in, +.fotorama__zoom-out { + display: none; +} +.fotorama__fullscreen { + .fotorama__zoom-in, + .fotorama__zoom-out { + position: absolute; + width: 50px; + height: 50px; + display: block; + margin-left: 20px; + cursor: pointer; + } + .fotorama__zoom-out { + top: 51px; + &:extend(.fotorama-sprite); + background-position: 0 (-@size-fotorama-block) !important; + } + + .fotorama__zoom-in { + top: 0; + &:extend(.fotorama-sprite); + background-position: 0 0 !important; + } +} + +.fotorama__zoom-in, +.fotorama__zoom-out { + display: none; +} +.fotorama__fullscreen { + .fotorama__zoom-in, + .fotorama__zoom-out { + position: absolute; + width: 50px; + height: 50px; + display: block; + margin-left: 20px; + cursor: pointer; + } + .fotorama__zoom-out { + top: 51px; + &:extend(.fotorama-sprite); + background-position: 0 (-@size-fotorama-block) !important; + } + + .fotorama__zoom-in { + top: 0; + &:extend(.fotorama-sprite); + background-position: 0 0 !important; + } +} + .fotorama-stretch { bottom: 0; height: 100%; @@ -682,7 +760,7 @@ } .fotorama__wrap--css3 & { - .translate3d(@fotorama-arw-size, -@fotorama-arw-size, 0); + .fotorama-translate3d(@fotorama-arw-size, -@fotorama-arw-size, 0); } .fotorama__wrap--video & { @@ -707,6 +785,60 @@ } } +.fotorama__wrap--toggle-arrows { + &:not(.fotorama__wrap--video) { + .fotorama__video-close { + display: none; + } + } +} + +.fotorama__wrap--toggle-arrows { + &.fotorama__wrap--video { + .fotorama__video-close { + top: 97px; + right: 93px; + opacity: 1; + } + } +} + +.fotorama__wrap--toggle-arrows { + &:not(.fotorama__wrap--video) { + .fotorama__video-close { + display: none; + } + } +} + +.fotorama__wrap--toggle-arrows { + &.fotorama__wrap--video { + .fotorama__video-close { + top: 97px; + right: 93px; + opacity: 1; + } + } +} + +.fotorama__wrap--toggle-arrows { + &:not(.fotorama__wrap--video) { + .fotorama__video-close { + display: none; + } + } +} + +.fotorama__wrap--toggle-arrows { + &.fotorama__wrap--video { + .fotorama__video-close { + top: 97px; + right: 93px; + opacity: 1; + } + } +} + .fotorama__wrap--video { .fotorama__arr, .fotorama__fullscreen-icon { @@ -735,24 +867,24 @@ .fotorama__wrap--css3 { &.fotorama__wrap--no-controls.fotorama__wrap--slide.fotorama__wrap--toggle-arrows { .fotorama__fullscreen-icon:not(:focus) { - .translate3d(@fotorama-arw-size, -@fotorama-arw-size, 0); + .fotorama-translate3d(@fotorama-arw-size, -@fotorama-arw-size, 0); } .fotorama__arr--prev:not(:focus) { - .translate3d(-@fotorama-arw-size * 1.5, 0, 0); + .fotorama-translate3d(-@fotorama-arw-size * 1.5, 0, 0); } .fotorama__arr--next:not(:focus) { - .translate3d(@fotorama-arw-size * 1.5, 0, 0); + .fotorama-translate3d(@fotorama-arw-size * 1.5, 0, 0); } } &.fotorama__wrap--video { .fotorama__fullscreen-icon { - .translate3d(@fotorama-arw-size, -@fotorama-arw-size, 0) !important; + .fotorama-translate3d(@fotorama-arw-size, -@fotorama-arw-size, 0) !important; } .fotorama__arr--prev { - .translate3d(-@fotorama-arw-size * 1.5, 0, 0) !important; + .fotorama-translate3d(-@fotorama-arw-size * 1.5, 0, 0) !important; } .fotorama__arr--next { - .translate3d(@fotorama-arw-size * 1.5, 0, 0) !important; + .fotorama-translate3d(@fotorama-arw-size * 1.5, 0, 0) !important; } } } @@ -773,34 +905,59 @@ &:after { &:extend(.fotorama-gpu); background-repeat: no-repeat; - background-size: 1px 100%, 5px 100%; - bottom: 0; content: ''; display: block; - height: auto; pointer-events: none; position: absolute; text-decoration: none; - top: 0; - width: 10px; z-index: 10; } &:before { - background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.2) 25%, rgba(0, 0, 0, 0.3) 75%, transparent), radial-gradient(farthest-side at 0 50%, rgba(0, 0, 0, 0.4), transparent); - background-position: 0 0, 0 0; left: -10px; - } - &.fotorama__shadows--left:before { - left: 0; + top: -10px; } &:after { - background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.2) 25%, rgba(0, 0, 0, 0.3) 75%, transparent), radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.4), transparent); - background-position: 100% 0, 100% 0; right: -10px; + bottom: -10px; } + &.fotorama__shadows--left:before, &.fotorama__shadows--right:after { + top: 0; + bottom: 0; + background-size: 1px 100%, 5px 100%; + height: auto; + width: 10px; + } + &.fotorama__shadows--top:before, + &.fotorama__shadows--bottom:after { + left: 0; + right:0; + background-size: 100% 1px, 100% 5px ; + height:10px; + width:auto; + } + &.fotorama__shadows--left:before { + .fotorama-shadow-gradient(0, 50%); + background-position: 0 0, 0 0; + left: 0; + } + + &.fotorama__shadows--right:after { + .fotorama-shadow-gradient(100%, 50%); + background-position: 100% 0, 100% 0; right: 0; } + &.fotorama__shadows--top:before { + .fotorama-shadow-gradient(50%, 0); + background-position: 0 0, 0 0; + top:0; + + } + &.fotorama__shadows--bottom:after { + .fotorama-shadow-gradient(50%, 100%); + background-position: 0 100%, 0 100%; + bottom:0; + } } .fotorama--fullscreen .fotorama__stage, @@ -897,21 +1054,6 @@ } } -.fotorama--fullscreen { - .fotorama__stage__frame { - .fotorama__img { - position: absolute; - max-width: inherit; - max-height: inherit; - margin: auto; - top: 0px; - bottom: 0px; - left: 0px; - right: 0px; - } - } -} - .fotorama__stage__frame { text-align: center; .fotorama__img { @@ -930,3 +1072,105 @@ .magnify-hidden { display: none; } + +.fotorama__nav-wrap--vertical { + &.fotorama__nav-wrap { + display: inline-block; + position: absolute; + top: 0; + left: 0; + } + + .fotorama__nav__shaft { + width: 100%; + background-color: white; + .fotorama__nav__frame--thumb { + display: block; + padding-bottom: inherit !important; + } + } +} + +.fotorama--fullscreen { + .fotorama__stage__frame { + .fotorama__img { + position: absolute; + max-width: inherit; + max-height: inherit; + margin: auto; + top: 0; + bottom: 0; + left: 0; + right: 0; + } + } +} + + +.fotorama__nav-wrap--vertical { + &.fotorama__nav-wrap { + display: inline-block; + position: absolute; + top: 0; + left: 0; + } + + .fotorama__nav__shaft { + width: 100%; + background-color: white; + .fotorama__nav__frame--thumb { + display: block; + padding-bottom: inherit !important; + } + } +} + +.fotorama--fullscreen { + .fotorama__stage__frame { + .fotorama__img { + position: absolute; + max-width: inherit; + max-height: inherit; + margin: auto; + top: 0; + bottom: 0; + left: 0; + right: 0; + } + } +} + + +.fotorama__nav-wrap--vertical { + &.fotorama__nav-wrap { + display: inline-block; + position: absolute; + top: 0; + left: 0; + } + + .fotorama__nav__shaft { + width: 100%; + background-color: white; + .fotorama__nav__frame--thumb { + display: block; + padding-bottom: inherit !important; + } + } +} + +.fotorama--fullscreen { + .fotorama__stage__frame { + .fotorama__img { + position: absolute; + max-width: inherit; + max-height: inherit; + margin: auto; + top: 0; + bottom: 0; + left: 0; + right: 0; + } + } +} + diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index acfd548bcca..6a9f279d9e5 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -719,8 +719,62 @@ _init($box, gOptions); }); + function zoomIn(e) { + var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + gallery = $('[data-gallery-role="gallery"]'), + imgOriginalSize = getImageSize($image[0].src), + setedResult = Math.round($image.width() + 10); + e.preventDefault(); + + if (setedResult >imgOriginalSize.rw) { + setedResult = imgOriginalSize.rw; + } + $image.css('width', setedResult); + } + + function zoomOut(e) { + var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + gallery = $('[data-gallery-role="gallery"]'), + imgOriginalSize = getImageSize($image[0].src), + setedResult = Math.round($image.width() - 10); + e.preventDefault(); + + if (setedResult < imgOriginalSize.rw/2) { + setedResult = imgOriginalSize.rw/2; + } + $image.css('width', setedResult); + } + + /** + * Return width and height of original image + * @param src path for original image + * @returns {{rw: number, rh: number}} + */ + function getImageSize(src) { + var img = new Image(), + imgSize = { + rw: 0, + rh: 0 + }; + img.src = src; + imgSize.rw = img.width; + imgSize.rh = img.height; + return imgSize; + } + + + function setEventOnce() { + $('.fotorama__zoom-in') + .off('click', zoomIn) + .on('click', zoomIn); + $('.fotorama__zoom-out') + .off('click', zoomOut) + .on('click', zoomOut); + } + $(document).on('mousemove', onMousemove); _init($box, gOptions); magnifierFullscreen(); + setEventOnce(); } }(jQuery)); diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index d6f7c9931f3..3544ad6b6c3 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -84,7 +84,8 @@ define([ config.magnifierOpts.original = fotorama.data[fotorama.activeIndex].original; $($(gallerySelector).data('fotorama').activeFrame.$stageFrame).magnify(config.magnifierOpts); }); - $(element).on('fotorama:show', function () { + $(element).on('fotorama:show fotorama:fullscreenenter ', function () { + console.log('AAAAAA') hideMagnifier(); }); -- GitLab From 987cd9ce4e4d7b458f45c1c681083715b0fb354d Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Tue, 15 Sep 2015 11:18:16 +0300 Subject: [PATCH 072/420] MAGETWO-42479: Refactor all entries modal windows --- .../adminhtml/templates/backup/dialogs.phtml | 10 -- lib/web/mage/adminhtml/backup.js | 92 +++++++++++++++++-- 2 files changed, 82 insertions(+), 20 deletions(-) diff --git a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml index b8e7ba06b8b..87e5e91454e 100644 --- a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml +++ b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml @@ -93,11 +93,6 @@ </div> </fieldset> </form> - - <div class="actions"> - <button type="button" class="action primary" data-mage-init='{"button":{"event":"submit","target":"#backup-form"}}'><?php /* @escapeNotVerified */ echo __('OK')?></button> - <button type="button" class="action cancel" onclick="backup.hidePopups()"><?php /* @escapeNotVerified */ echo __('Cancel')?></button> - </div> </div> </div> </div> @@ -158,11 +153,6 @@ </fieldset> </div> </form> - - <div class="actions"> - <button type="button" class="action primary" data-mage-init='{"button":{"event":"submit","target":"#rollback-form"}}'><?php /* @escapeNotVerified */ echo __('OK')?></button> - <button type="button" class="action cancel" onclick="backup.hidePopups()"><?php /* @escapeNotVerified */ echo __('Cancel')?></button> - </div> </div> </div> </div> diff --git a/lib/web/mage/adminhtml/backup.js b/lib/web/mage/adminhtml/backup.js index f8dde89519d..b37d9731076 100644 --- a/lib/web/mage/adminhtml/backup.js +++ b/lib/web/mage/adminhtml/backup.js @@ -4,6 +4,7 @@ */ define([ "jquery", + "Magento_Ui/js/modal/modal", "mage/mage", "prototype" ], function(jQuery){ @@ -97,7 +98,6 @@ define([ }, submitBackup: function () { - this.hidePopups(); var data = { 'type': this.type, 'maintenance_mode': $('backup_maintenance_mode').checked ? 1 : 0, @@ -105,6 +105,8 @@ define([ 'exclude_media': $('exclude_media').checked ? 1 : 0 }; + this.modal.modal('closeModal'); + new Ajax.Request(this.backupUrl, { onSuccess: function(transport) { this.processResponse(transport, 'backup-options'); @@ -160,17 +162,87 @@ define([ data['type'] = this.type; return data; }, - + backupConfig: { + 'backup-warning': { + title: jQuery.mage.__('Warning'), + content: function () { + return jQuery('#backup-warning .message.message-warning').html(); + }, + actionOk: function () { + this.modal.modal('closeModal'); + this.requestBackupOptions(); + } + }, + 'rollback-warning': { + title: jQuery.mage.__('Warning'), + content: function () { + return jQuery('#rollback-warning .message.message-warning').html(); + }, + actionOk: function () { + this.modal.modal('closeModal'); + this.requestPassword(); + } + }, + 'backup-options': { + title: jQuery.mage.__('Backup options'), + content: function () { + return jQuery('#backup-options .popup-content').html(); + }, + actionOk: function () { + this.modal.find('#backup-form').validation({ + submitHandler: jQuery.proxy(this.submitBackup, this) + }); + this.modal.find('#backup-form').submit(); + }, + opened: function () { + this.modal.find('*:hidden').show(); + } + }, + 'rollback-request-password': { + title: jQuery.mage.__('Backup options'), + content: function () { + return jQuery('#rollback-request-password .popup-content').html(); + }, + actionOk: function () { + this.modal.find('#rollback-request-password').validation({ + submitHandler: jQuery.proxy(this.submitRollback, this) + }); + this.modal.find('#rollback-request-password').submit(); + }, + opened: function () { + this.modal.find('*:hidden').show(); + } + } + }, showPopup: function(divId) { - $(divId).show().setStyle({ - 'marginTop': -$(divId).getDimensions().height / 2 + 'px' + var self = this; + + this.modal = jQuery('<div/>').html(this.backupConfig[divId].content()).modal({ + modalClass: 'magento', + title: this.backupConfig[divId].title, + closed: function(e, modal){ + modal.modal.remove(); + }, + opened: function () { + if (self.backupConfig[divId].opened) { + self.backupConfig[divId].opened.call(self); + } + }, + buttons: [{ + text: jQuery.mage.__('Cancel'), + 'class': 'action cancel', + click: function () { + this.closeModal(); + } + }, { + text: jQuery.mage.__('Ok'), + 'class': 'action primary', + click: function () { + self.backupConfig[divId].actionOk.call(self); + } + }] }); - var mask = $('popup-window-mask'); - if (mask) { - $('popup-window-mask').setStyle({ - height: $('html-body').getHeight() + 'px' - }).show(); - } + this.modal.modal('openModal'); }, hidePopups: function() { -- GitLab From 10efdbfc3c7164fe530a2f303e879d781764af78 Mon Sep 17 00:00:00 2001 From: Dubovyk Oleksandr <odubovyk@ebay.com> Date: Tue, 15 Sep 2015 11:43:39 +0300 Subject: [PATCH 073/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget - Set styles as generic module --- .../css/source/components/_modals_extend.less | 83 ++----------------- .../modals_extend/_wysiwyg_images.less | 74 +++++++++++++++++ 2 files changed, 80 insertions(+), 77 deletions(-) create mode 100644 app/design/adminhtml/Magento/backend/web/css/source/components/modals_extend/_wysiwyg_images.less diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less index 4b2349af7c5..186dcb8fdf1 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less @@ -80,7 +80,6 @@ } .modal-content { - height: auto !important; .buttons-set { margin: 0 0 15px; button { @@ -107,82 +106,6 @@ width: 80%; } - // - // Block 'Insert File' - // ----------------------------------------- - - .main-col { - .insert-title-inner { - &:extend(.abs-clearfix all); - border-bottom: 1px solid @color-gray68; - margin: 0 0 @indent__base; - padding-bottom: @indent__xs; - } - .insert-actions { - float: right; - } - .title { - font-size: @font-size__l; - padding-top: @indent__xs; - } - } - - .contents-uploader { - margin: 0 0 @indent__base; - } - - .fileinput-button { - cursor: pointer; - display: inline-block; - float: none; - vertical-align: middle; - span { - display: none; - } - input { - border: none; - -moz-transform: none; - opacity: 1; - position: static; - } - } - - .breadcrumbs { - list-style: none; - padding-left: 0; - li { - display: inline-block; - margin: 0 @indent__xs @indent__xs 0; - &:after { - content: ''; - margin: 0 @indent__xs 0 0; - } - } - } - - .file-row { - border: 1px solid @color-gray68; - margin: @indent__xs 0; - padding: 2px; - } - - .filecnt { - border: 1px solid @color-gray68; - display: inline-block; - margin: 0 @indent__xs 15px 0; - padding: 3px; - width: 100px; - overflow: hidden; - cursor: pointer; - &.selected { - border-color: @color-blue-dodger; - } - p { - text-align: center; - } - } - - } .modal-title { @@ -190,3 +113,9 @@ margin-bottom: 0; min-height: 1em; } + + +// +// Imports +// --------------------------------------------- +@import 'modals_extend/_wysiwyg_images.less'; \ No newline at end of file diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/modals_extend/_wysiwyg_images.less b/app/design/adminhtml/Magento/backend/web/css/source/components/modals_extend/_wysiwyg_images.less new file mode 100644 index 00000000000..ccf7b100864 --- /dev/null +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/modals_extend/_wysiwyg_images.less @@ -0,0 +1,74 @@ +// /** +// * Copyright © 2015 Magento. All rights reserved. +// * See COPYING.txt for license details. +// */ + +// +// Wysiwyg images +// --------------------------------------------- + +.modal-slide { + + + // + // Block 'Insert File' + // ----------------------------------------- + + .main-col { + .insert-title-inner { + &:extend(.abs-clearfix all); + border-bottom: 1px solid @color-gray68; + margin: 0 0 @indent__base; + padding-bottom: @indent__xs; + } + .insert-actions { + float: right; + } + .title { + font-size: @font-size__l; + padding-top: @indent__xs; + } + } + + .contents-uploader { + margin: 0 0 @indent__base; + } + + .fileinput-button { + cursor: pointer; + display: inline-block; + float: none; + vertical-align: middle; + span { + display: none; + } + input { + border: none; + -moz-transform: none; + opacity: 1; + position: static; + } + } + + .file-row { + border: 1px solid @color-gray68; + margin: @indent__xs 0; + padding: 2px; + } + + .filecnt { + border: 1px solid @color-gray68; + display: inline-block; + margin: 0 @indent__xs 15px 0; + padding: 3px; + width: 100px; + overflow: hidden; + cursor: pointer; + &.selected { + border-color: @color-blue-dodger; + } + p { + text-align: center; + } + } +} \ No newline at end of file -- GitLab From 2c20e6555627d6eec8718b9ced8cf4261e56292e Mon Sep 17 00:00:00 2001 From: Siarhei Andreyeu <siarhei_andreyeu@epam.com> Date: Tue, 15 Sep 2015 13:02:37 +0300 Subject: [PATCH 074/420] PV-5: General video settings - added API key to admin --- .../ProductVideo/etc/adminhtml/system.xml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 app/code/Magento/ProductVideo/etc/adminhtml/system.xml diff --git a/app/code/Magento/ProductVideo/etc/adminhtml/system.xml b/app/code/Magento/ProductVideo/etc/adminhtml/system.xml new file mode 100644 index 00000000000..b295e662803 --- /dev/null +++ b/app/code/Magento/ProductVideo/etc/adminhtml/system.xml @@ -0,0 +1,19 @@ +<?xml version="1.0"?> +<!-- +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +--> +<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Config/etc/system_file.xsd"> + <system> + <section id="catalog"> + <group id="product_video" translate="label" type="text" sortOrder="350" showInDefault="1" showInWebsite="1" showInStore="1"> + <label>Product Video</label> + <field id="youtube_api_key" translate="label" type="text" sortOrder="20" showInDefault="1" showInWebsite="1" showInStore="1"> + <label>YouTube API key</label> + </field> + </group> + </section> + </system> +</config> -- GitLab From 36ea2788f6dc476e4b788efd9209c702da977ada Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Tue, 15 Sep 2015 14:09:11 +0300 Subject: [PATCH 075/420] MAGETWO-42480: Stabialize functional tests --- .../templates/catalog/category/tree.phtml | 19 ++++++------------- .../adminhtml/web/order/create/scripts.js | 2 +- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml index ec212659d64..ad7979e4870 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml @@ -252,19 +252,12 @@ if (!config) { var config = defaultLoadTreeParams; } - }); - } else { - var baseUrl = '<?php /* @escapeNotVerified */ echo $block->getEditUrl() ?>'; - var urlExt = switcherParams.scopeParams + 'id/' + tree.currentNodeId + '/'; - url = parseSidUrl(baseUrl, urlExt); - setLocation(url); - } - } - // render default tree - else { - _renderNewTree(); - } -} + + if (tree) { + tree.purgeListeners(); + tree.el.dom.innerHTML = ''; + } + tree = new Ext.tree.TreePanel.Enhanced('tree-div', newTreeParams); tree.loadTree(config, true); diff --git a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js index da408242575..938f24992aa 100644 --- a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js +++ b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js @@ -34,7 +34,7 @@ AdminOrder.prototype = { this.isOnlyVirtualProduct = false; this.excludedPaymentMethods = []; this.summarizePrice = true; - Event.observe(window, 'load', (function(){ + window.addEventListener('load', (function(){ this.dataArea = new OrderFormArea('data', $(this.getAreaId('data')), this); this.itemsArea = Object.extend(new OrderFormArea('items', $(this.getAreaId('items')), this), { addControlButton: function(button){ -- GitLab From 55e26cce339c21ba73bb4ece62b9309372cda932 Mon Sep 17 00:00:00 2001 From: Siarhei Andreyeu <siarhei_andreyeu@epam.com> Date: Tue, 15 Sep 2015 16:19:55 +0300 Subject: [PATCH 076/420] PV-5: General video settings - import youtube api key to backend --- .../Block/Adminhtml/Product/Edit/NewVideo.php | 16 +++++++++++++++ .../Magento/ProductVideo/Helper/Media.php | 20 ++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php index 70fbfe35d6b..fd0513dfe8c 100644 --- a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php +++ b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php @@ -12,6 +12,11 @@ use Magento\Framework\Data\Form\Element\Fieldset; */ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic { + /** + * @var \Magento\ProductVideo\Helper\Media + */ + protected $mediaHelper; + /** * @var \Magento\Framework\Json\EncoderInterface */ @@ -19,6 +24,7 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic /** * @param \Magento\Backend\Block\Template\Context $context + * @param \Magento\ProductVideo\Helper\Media $mediaHelper * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Data\FormFactory $formFactory @@ -29,9 +35,11 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic \Magento\Framework\Registry $registry, \Magento\Framework\Data\FormFactory $formFactory, \Magento\Framework\Json\EncoderInterface $jsonEncoder, + \Magento\ProductVideo\Helper\Media $mediaHelper, array $data = [] ) { parent::__construct($context, $registry, $formFactory, $data); + $this->mediaHelper = $mediaHelper; $this->jsonEncoder = $jsonEncoder; $this->setUseContainer(true); } @@ -170,6 +178,11 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic $this->setForm($form); } + /** + * Get html id + * + * @return mixed + */ public function getHtmlId() { if (null === $this->getData('id')) { @@ -179,6 +192,8 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic } /** + * Get widget options + * * @return string */ public function getWidgetOptions() @@ -188,6 +203,7 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic 'saveVideoUrl' => $this->getUrl('catalog/product_gallery/upload'), 'saveRemoteVideoUrl' => $this->getUrl('product_video/product_gallery/retrieveImage'), 'htmlId' => $this->getHtmlId(), + 'youTubeApiKey' => $this->mediaHelper->getYouTubeApiKey() ] ); } diff --git a/app/code/Magento/ProductVideo/Helper/Media.php b/app/code/Magento/ProductVideo/Helper/Media.php index 023fdb28f78..6076e96ac99 100644 --- a/app/code/Magento/ProductVideo/Helper/Media.php +++ b/app/code/Magento/ProductVideo/Helper/Media.php @@ -7,6 +7,7 @@ namespace Magento\ProductVideo\Helper; use Magento\Framework\App\Area; +use Magento\Framework\App\Helper\Context; use Magento\Framework\View\ConfigInterface; use Magento\Framework\View\DesignInterface; @@ -35,6 +36,11 @@ class Media extends \Magento\Framework\App\Helper\AbstractHelper */ const NODE_CONFIG_VIDEO_AUTO_RESTART = 'video_auto_restart'; + /** + * Configuration path + */ + const XML_PATH_YOUTUBE_API_KEY = 'catalog/product_video/youtube_api_key'; + /** * @var ConfigInterface */ @@ -55,14 +61,17 @@ class Media extends \Magento\Framework\App\Helper\AbstractHelper /** * @param ConfigInterface $configInterface * @param DesignInterface $designInterface + * @param Context $context */ public function __construct( ConfigInterface $configInterface, - DesignInterface $designInterface + DesignInterface $designInterface, + Context $context ) { $this->viewConfig = $configInterface; $this->currentTheme = $designInterface->getDesignTheme(); $this->initConfig(); + parent::__construct($context); } /** @@ -123,4 +132,13 @@ class Media extends \Magento\Framework\App\Helper\AbstractHelper ); } + /** + * Retrieve YouTube API key + * + * @return string + */ + public function getYouTubeApiKey() + { + return $this->scopeConfig->getValue(self::XML_PATH_YOUTUBE_API_KEY); + } } -- GitLab From 240286e31a7c08228ee7c9f2801d9d757de698f5 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Tue, 15 Sep 2015 16:34:17 +0300 Subject: [PATCH 077/420] MAGETWO-42479: Refactor all entries modal windows --- .../view/adminhtml/templates/system/messages/popup.phtml | 7 +++---- .../Integration/view/adminhtml/web/js/integration.js | 9 ++++++--- app/code/Magento/Ui/view/base/web/js/modal/prompt.js | 4 +--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml index f57500358c4..6bf89e17d48 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml +++ b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml @@ -9,7 +9,7 @@ ?> <?php /** @var $block \Magento\AdminNotification\Block\System\Messages\UnreadMessagePopup */ ?> -<div id="system_messages_list" title="<?php echo $block->escapeHtml($block->getPopupTitle()); ?>"> +<div id="system_messages_list" data-role="system_messages_list" title="<?php echo $block->escapeHtml($block->getPopupTitle()); ?>"> <ul class="message-system-list"> <?php foreach ($block->getUnreadMessages() as $message): ?> <li class="message message-warning <?php /* @escapeNotVerified */ echo $block->getItemClass($message);?>"> @@ -22,13 +22,12 @@ <script> require([ "jquery", - "jquery/ui", "Magento_Ui/js/modal/modal" ], function($){ if (this.modal) { - this.modal.html($("#system_messages_list").html()); + this.modal.html($('[data-role="system_messages_list"]').html()); } else { - this.modal = $("#system_messages_list").modal({ + this.modal = $('[data-role="system_messages_list"]').modal({ modalClass: 'ui-popup-message', type: 'popup', buttons: [] diff --git a/app/code/Magento/Integration/view/adminhtml/web/js/integration.js b/app/code/Magento/Integration/view/adminhtml/web/js/integration.js index 0dd90489499..c95ef6c671e 100644 --- a/app/code/Magento/Integration/view/adminhtml/web/js/integration.js +++ b/app/code/Magento/Integration/view/adminhtml/web/js/integration.js @@ -7,10 +7,11 @@ /*global integration*/ define([ "jquery", + "Magento_Ui/js/modal/alert", "jquery/ui", "mage/translate", - 'Magento_Ui/js/modal/modal' -], function($){ + "Magento_Ui/js/modal/modal" +], function($, alert){ "use strict"; $.widget('mage.integration', { @@ -81,7 +82,9 @@ define([ } }, error: function (jqXHR, status, error) { - alert($.mage.__('Sorry, something went wrong. Please try again later.')); + alert({ + content: $.mage.__('Sorry, something went wrong. Please try again later.') + }); window.console && console.log(status + ': ' + error + "\nResponse text:\n" + jqXHR.responseText); }, complete: function () { diff --git a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js index 60ea4e7f0c8..5013730502b 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js @@ -2,6 +2,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ + define([ 'jquery', 'underscore', @@ -43,9 +44,6 @@ define([ _remove: function() { this.modal.remove(); }, - openModal: function() { - return this._super(); - }, closeModal: function(result) { var value; -- GitLab From 73e3989daef06b7be6a6cd9414d573643fb84590 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Tue, 15 Sep 2015 18:14:41 +0300 Subject: [PATCH 078/420] MAGETWO-36504: UI popup for Cancel Order button --- lib/web/mage/adminhtml/globals.js | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/lib/web/mage/adminhtml/globals.js b/lib/web/mage/adminhtml/globals.js index de0e06295e0..1933b73e0c7 100644 --- a/lib/web/mage/adminhtml/globals.js +++ b/lib/web/mage/adminhtml/globals.js @@ -2,7 +2,9 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -define([], function () { +define([ + 'Magento_Ui/js/modal/confirm' +], function (confirm) { 'use strict'; /** @@ -20,10 +22,23 @@ define([], function () { * @returns {boolean} */ window.deleteConfirm = function (message, url) { - if (confirm(message)) { - setLocation(url); - } + confirm({ + content: message, + actions: { + confirm: function () { + setLocation(url); + } + } + }); return false; }; + + /** + * Helper for onclick action. + * @param {String} message + * @param {String} url + * @returns {boolean} + */ + window.confirmSetLocation = window.deleteConfirm; }); -- GitLab From 5ef22a8584e22279258a59cbc534c0370b207608 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Tue, 15 Sep 2015 18:41:22 +0300 Subject: [PATCH 079/420] JS-52: Zoom on Full Screen Mode --- .../templates/product/view/gallery.phtml | 10 +- .../frontend/Magento/blank/etc/view.xml | 5 +- app/design/frontend/Magento/luma/etc/view.xml | 2 + lib/web/fotorama/fotorama.js | 51 ++++++-- lib/web/mage/gallery/gallery.js | 16 +-- lib/web/mage/gallery/gallery.less | 68 +--------- lib/web/magnifier/magnifier.js | 116 +++++++++++++++--- lib/web/magnifier/magnify.js | 3 +- 8 files changed, 158 insertions(+), 113 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 7bf679228f9..2c598b2f5e4 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -22,7 +22,8 @@ "width": "<?php echo $block->getVar("magnifier:width"); ?>", "height": "<?php echo $block->getVar("magnifier:height"); ?>", "top": "<?php echo $block->getVar("magnifier:top"); ?>", - "left": "<?php echo $block->getVar("magnifier:left"); ?>" + "left": "<?php echo $block->getVar("magnifier:left"); ?>", + "inc": "<?php echo $block->getVar("magnifier:fullscreenzoom"); ?>" }, "data": <?php echo $block->getGalleryImagesJson(); ?>, "options": { @@ -30,11 +31,13 @@ "loop": <?php echo $block->getVar("gallery:loop"); ?>, "keyboard": <?php echo $block->getVar("gallery:keyboard"); ?>, "navdir": "<?php echo $block->getVar("gallery:navdir"); ?>", + "arrows": <?php echo $block->getVar("gallery:arrows"); ?>, "allowfullscreen": <?php echo $block->getVar("gallery:allowfullscreen"); ?>, "showCaption": <?php echo $block->getVar("gallery:caption"); ?>, "width": <?php echo $block->getImageAttribute('product_page_image_medium', 'width'); ?>, - "thumbwidth": 120, - "thumbheight": 90, + "thumbwidth": <?php echo $block->getImageAttribute('product_page_image_small', 'width'); ?>, + "thumbheight": <?php echo $block->getImageAttribute('product_page_image_small', 'height') + ?: $block->getImageAttribute('product_page_image_small', 'width'); ?>, "height": <?php echo $block->getImageAttribute('product_page_image_medium', 'height') ?: $block->getImageAttribute('product_page_image_medium', 'width'); ?>, "transitionduration": <?php echo $block->getVar("gallery:transition:duration"); ?>, @@ -43,6 +46,7 @@ "fullscreen": { "nav": "<?php echo $block->getVar("gallery:fullscreen:navigation"); ?>", "loop": <?php echo $block->getVar("gallery:fullscreen:loop"); ?>, + "navdir": "<?php echo $block->getVar("gallery:fullscreen:navdir"); ?>", "arrows": <?php echo $block->getVar("gallery:fullscreen:arrows"); ?>, "showCaption": <?php echo $block->getVar("gallery:fullscreen:caption"); ?>, "transitionduration": <?php echo $block->getVar("gallery:fullscreen:transition:duration"); ?>, diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 93815d880aa..14f7695e7b3 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -181,7 +181,7 @@ <!-- New gallery and magnifier theme settings --> <var name="gallery:navigation">thumbs</var> <!-- Gallery navigation style (false/thumbs/dots) --> - <var name="gallery:loop">true</var> <!-- Gallery navigation loop (true/false) --> + <var name="gallery:loop">false</var> <!-- Gallery navigation loop (true/false) --> <var name="gallery:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false) --> <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:caption">false</var> <!-- Display alt text as image title (true/false) --> @@ -192,11 +192,14 @@ <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="gallery:fullscreen:loop">false</var> <!-- Fullscreen navigation loop (true/false) --> + <var name="gallery:fullscreen:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="gallery:fullscreen:arrows">null</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> <var name="gallery:fullscreen:caption">null</var> <!-- Display alt text as image title (true/false/null) --> + <var name="gallery:fullscreen:navdir">horizontal</var> <!--Sliding direction of thumbnails in full screen(horizontal/vertical) --> <var name="gallery:fullscreen:transition:effect">crossfade</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="magnifier:fullscreenzoom">20</var> <!-- Zoom for fullscreen --> <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Left position of magnifier --> <var name="magnifier:width"></var> <!-- Width of magnifier block --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index b5f49bfde17..b2d2d21ad4d 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -199,9 +199,11 @@ <var name="gallery:fullscreen:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="gallery:fullscreen:arrows">false</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> <var name="gallery:fullscreen:caption">false</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:fullscreen:navdir">horizontal</var> <!--Sliding direction of thumbnails in full screen(horizontal/vertical) --> <var name="gallery:fullscreen:transition:effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="magnifier:fullscreenzoom">5</var> <!-- Zoom for fullscreen (integer)--> <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Right position of magnifier --> <var name="magnifier:width"></var> <!-- Width of magnifier block --> diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index d7f64c62bc1..453597325f4 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -2202,11 +2202,13 @@ fotoramaVersion = '4.6.4'; $stage.css('left', padding); $arrNext.css('right', padding); + $fullscreenIcon.css('right', padding); $wrap.css('width', $wrap.css('width') + padding); $stageShaft.css('max-width', $wrap.width() - padding); } else { $stage.css('left', ''); $arrNext.css('right', ''); + $fullscreenIcon.css('right', ''); $wrap.css('width', $wrap.css('width') + padding); $stageShaft.css('max-width', ''); } @@ -2319,7 +2321,7 @@ fotoramaVersion = '4.6.4'; * Options on the fly * */ function setOptions() { - if (opts.nav === 'dots') { + if (!opts.nav || opts.nav === 'dots') { opts.navdir = 'horizontal' } @@ -2787,14 +2789,20 @@ fotoramaVersion = '4.6.4'; } function thumbsDraw(pos, loadFLAG) { - if (opts.navdir === 'vertical') { - pos = pos - opts.thumbheight; - } + var leftLimit, + rightLimit, + exceedLimit; + if (o_nav !== 'thumbs' || isNaN(pos)) return; - var leftLimit = -pos, - rightLimit = -pos + measures.nw; + leftLimit = -pos; + rightLimit = -pos + measures.nw; + + if (opts.navdir === 'vertical') { + pos = pos - opts.thumbheight; + rightLimit = -pos + measures.h; + } $navThumbFrame.each(function () { var $this = $(this), @@ -2806,12 +2814,13 @@ fotoramaVersion = '4.6.4'; w: thisData.w } }, - specialMeasures = getSpecialMeasures(); - - specialMeasures.w = thisData.w; + specialMeasures = getSpecialMeasures(), + exceedLimit = opts.navdir === 'vertical' ? + thisData.t > rightLimit : thisData.l > rightLimit; + specialMeasures.w = thisData.w; if (thisData.l + thisData.w < leftLimit - || thisData.l > rightLimit + || exceedLimit || callFit(thisData.$img, specialMeasures)) return; loadFLAG && loadImg([eq], 'navThumb', getSpecialMeasures); @@ -3334,10 +3343,10 @@ fotoramaVersion = '4.6.4'; setFLAG = arguments[2]; extendMeasures(!that.fullScreen ? optionsToLowerCase(options) : { - width: '100%', + width: $(window).width(), maxwidth: null, minwidth: null, - height: '100%', + height: $(window).height(), maxheight: null, minheight: null }, [measures, setFLAG || that.fullScreen || opts]); @@ -3348,6 +3357,8 @@ fotoramaVersion = '4.6.4'; windowHeight = $WINDOW.height() - (o_nav ? $nav.height() : 0); if (measureIsValid(width)) { + $wrap.css({width: ''}); + $wrap.css({height: ''}); $stage.css({width: ''}); $stage.css({height: ''}); $stage.css({'line-height': ''}); @@ -3371,6 +3382,22 @@ fotoramaVersion = '4.6.4'; height = measures.h = Math.round(minMaxLimit(height, numberFromWhatever(measures.minheight, windowHeight), numberFromWhatever(measures.maxheight, windowHeight))); $stage.css({'width': width, 'height': height, 'line-height': height + 'px'}); + if (opts.navdir === 'vertical' && !that.fullscreen) { + $nav.width(opts.thumbwidth + opts.thumbmargin * 2); + } + + if (opts.navdir === 'horizontal' && !that.fullscreen) { + $nav.height(opts.thumbheight + opts.thumbmargin * 2); + } + + if (opts.navdir === 'vertical' && that.fullScreen) { + $stage.css('height', $(window).height()); + } + + if (opts.navdir === 'horizontal' && that.fullScreen) { + $stage.css('height', $(window).height() - (opts.thumbheight + opts.thumbmargin * 2)); + } + if (o_nav) { switch (opts.navdir) { case 'vertical': diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index b66c45363e4..78c5b4b91a8 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -172,7 +172,6 @@ define([ * Is triggered when breakpoint enties. */ entry: function () { - triggeredBreakpoints++; $.extend(true, config, _.clone(startConfig)); settings.api.updateOptions(settings.defaultConfig.options, true); @@ -189,16 +188,13 @@ define([ * Is triggered when breakpoint exits. */ exit: function () { - if (triggeredBreakpoints < 1) { - $.extend(true, config, _.clone(startConfig)); - settings.api.updateOptions(settings.defaultConfig.options, true); - - if (settings.isFullscreen) { - settings.api.updateOptions(settings.fullscreenConfig, true); - } - settings.activeBreakpoint = {}; + $.extend(true, config, _.clone(startConfig)); + settings.api.updateOptions(settings.defaultConfig.options, true); + + if (settings.isFullscreen) { + settings.api.updateOptions(settings.fullscreenConfig, true); } - triggeredBreakpoints--; + settings.activeBreakpoint = {}; } }); }); diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 195dd5dec43..05fb94cd6aa 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -1058,6 +1058,7 @@ text-align: center; .fotorama__img { height: auto; + width: auto; max-height: 100%; max-width: 100%; vertical-align: middle; @@ -1102,75 +1103,12 @@ bottom: 0; left: 0; right: 0; - } - } -} - -.fotorama__nav-wrap--vertical { - &.fotorama__nav-wrap { - display: inline-block; - position: absolute; - top: 0; - left: 0; - } - - .fotorama__nav__shaft { - width: 100%; - background-color: white; - .fotorama__nav__frame--thumb { - display: block; - padding-bottom: inherit !important; - } - } -} - -.fotorama--fullscreen { - .fotorama__stage__frame { - .fotorama__img { - position: absolute; - max-width: inherit; - max-height: inherit; - margin: auto; - top: 0; - bottom: 0; - left: 0; - right: 0; } - } -} - -.fotorama__nav-wrap--vertical { - &.fotorama__nav-wrap { - display: inline-block; - position: absolute; - top: 0; - left: 0; - } - - .fotorama__nav__shaft { - width: 100%; - background-color: white; - .fotorama__nav__frame--thumb { - display: block; - padding-bottom: inherit !important; - } } } -.fotorama--fullscreen { - .fotorama__stage__frame { - .fotorama__img { - position: absolute; - max-width: inherit; - max-height: inherit; - margin: auto; - top: 0; - bottom: 0; - left: 0; - right: 0; - } - } +body.fotorama__fullscreen { + overflow-y: hidden; } - diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 6a9f279d9e5..294d1b4c651 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -187,7 +187,7 @@ data[idx].lensH = data[idx].lensH > $thumb.height() ? $thumb.height() : data[idx].lensH; lens.css({ width: data[idx].lensW + 1 + 'px', - height: data[idx].lensH + 'px' + height: data[idx].lensH + 0.5 + 'px' }); } @@ -301,8 +301,8 @@ pos.l = pos.l <= 0 ? 0 : pos.l; //pos.l = pos.l > 0 ? pos.l : pos.l; curLens.css({ - left: pos.l + paddingX + 'px', - top: pos.t + paddingY + 'px' + left: pos.l + paddingX +'px', + top: pos.t + paddingY + 1.75 + 'px' }); if (lensbg) { @@ -587,7 +587,7 @@ touch, isTouchEnabled = 'ontouchstart' in document.documentElement; - $('[data-gallery-role="gallery"]').on('fotorama:fullscreenenter fotorama:showend fotorama:load', function () { + $('[data-gallery-role="gallery"]').on('fotorama:fullscreenenter fotorama:showend fotorama:load fotorama:ready', function () { var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), $imageContainer = $image.parent(), @@ -600,7 +600,32 @@ }); }); - $image.on(isTouchEnabled ? 'touchstart' : 'mousedown', function (e) { + if (gallery.data('fotorama').fullScreen) { + + $('.fotorama__stage__frame .fotorama__img').each(function () { + var image = new Image(); + image.src = $(this).attr("src"); + + if ( (image.height > $(this).parent().height()) || (image.width > $(this).parent().width()) ) { + + if (image.height / image.width < $(this).parent().height() / $(this).parent().width()) { + $(this).width($(this).parent().width()); + $(this).height('auto'); + } else { + $(this).height($(this).parent().height()); + $(this).width('auto'); + } + + $(this).css({ + 'top': '', + 'left': '' + }); + } + + }); + } + + $image.on(isTouchEnabled ? 'touchstart' : 'pointerdown mousedown MSPointerDow', function (e) { if (gallery.data('fotorama').fullScreen) { e.preventDefault(); @@ -613,18 +638,23 @@ e.clientX = touch.pageX; e.clientY = touch.pageY; } - startX = e.clientX; - startY = e.clientY; + startX = e.clientX || e.originalEvent.clientX; + startY = e.clientY || e.originalEvent.clientY; isDragActive = true; } }); - $image.on(isTouchEnabled ? 'touchmove' : 'mousemove', function (e) { + + + $image.on(isTouchEnabled ? 'touchmove' : 'mousemove pointermove MSPointerMove', function (e) { if (gallery.data('fotorama').fullScreen && isDragActive) { var top, left, - startOffset = $image.offset(); + startOffset = $image.offset(), + clientX = e.clientX || e.originalEvent.clientX, + clientY = e.clientY || e.originalEvent.clientY; + e.preventDefault(); @@ -633,8 +663,8 @@ e.clientX = touch.pageX; e.clientY = touch.pageY; } - top = +imagePosY + (e.clientY - startY); - left = +imagePosX + (e.clientX - startX); + top = +imagePosY + (clientY - startY); + left = +imagePosX + (clientX - startX); if ($image.height() > $imageContainer.height()) { @@ -653,7 +683,7 @@ if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width())) { left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); } else { - left = ($imageContainer.offset().left < left) ? 0 : left; + left = ($imageContainer.offset().left < left) ? $imageContainer.offset().left : left; } $image.offset({ 'left': left @@ -662,7 +692,7 @@ } }); - $image.on(isTouchEnabled ? 'touchend' : 'mouseup', function (e) { + $image.on(isTouchEnabled ? 'touchend' : 'mouseup pointerup MSPointerUp', function (e) { if (gallery.data('fotorama').fullScreen) { isDragActive = false; $image.css('cursor', 'pointer'); @@ -678,9 +708,51 @@ } } + if ($('.fotorama-item').data('fotorama').fullScreen) { + $('.fotorama__stage__frame .fotorama__img').each(function () { + var image = new Image(); + image.src = $(this).attr("src"); + + if ( (image.height > $(this).parent().height()) || (image.width > $(this).parent().width()) ) { + + if (image.height / image.width < $(this).parent().height() / $(this).parent().width()) { + $(this).width($(this).parent().width()); + $(this).height(''); + } else { + $(this).height($(this).parent().height()); + $(this).width(''); + } + } + }); + } + $(window).on('scroll', onScroll); $(window).resize(function() { + if ($('.fotorama-item').data('fotorama').fullScreen) { + $('.fotorama__stage__frame .fotorama__img').each(function () { + var image = new Image(); + image.src = $(this).attr("src"); + + if ( (image.height > $(this).parent().height()) || (image.width > $(this).parent().width()) ) { + + if (image.height / image.width < $(this).parent().height() / $(this).parent().width()) { + $(this).width($(this).parent().width()); + $(this).height(''); + } else { + $(this).height($(this).parent().height()); + $(this).width(''); + } + } + }); + } + + + _init($box, gOptions); + + }); + + function checkFullscreenImagePosition() { if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { var $image = $('[data-gallery-role="stage-shaft"] > [data-active="true"] > img'), @@ -715,10 +787,8 @@ $image.css('top', ''); } } + } - _init($box, gOptions); - - }); function zoomIn(e) { var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), gallery = $('[data-gallery-role="gallery"]'), @@ -729,7 +799,8 @@ if (setedResult >imgOriginalSize.rw) { setedResult = imgOriginalSize.rw; } - $image.css('width', setedResult); + $image.css({'width': setedResult, height: 'auto'}); + checkFullscreenImagePosition(); } function zoomOut(e) { @@ -737,12 +808,15 @@ gallery = $('[data-gallery-role="gallery"]'), imgOriginalSize = getImageSize($image[0].src), setedResult = Math.round($image.width() - 10); - e.preventDefault(); + if(e) { + e.preventDefault(); + } if (setedResult < imgOriginalSize.rw/2) { setedResult = imgOriginalSize.rw/2; } - $image.css('width', setedResult); + $image.css({'width': setedResult, height: 'auto'}); + checkFullscreenImagePosition(); } /** @@ -774,7 +848,9 @@ $(document).on('mousemove', onMousemove); _init($box, gOptions); - magnifierFullscreen(); setEventOnce(); + //checkFullscreenImagePosition(); + magnifierFullscreen(); + } }(jQuery)); diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index 3544ad6b6c3..cd96c0f6328 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -63,7 +63,7 @@ define([ thumb: '.fotorama__img', largeWrapper: '[data-gallery-role="magnifier"]', height: config.magnifierOpts.height || function () { - return $('[data-active="true"]').width() / config.options.ratio; + return $('[data-active="true"]').height(); }, width: config.magnifierOpts.width || function () { var productMedia = $(gallerySelector).parent().parent(); @@ -85,7 +85,6 @@ define([ $($(gallerySelector).data('fotorama').activeFrame.$stageFrame).magnify(config.magnifierOpts); }); $(element).on('fotorama:show fotorama:fullscreenenter ', function () { - console.log('AAAAAA') hideMagnifier(); }); -- GitLab From d7bfee080c90802b348c94513af6b9d6d6d89a4e Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Wed, 16 Sep 2015 15:17:27 +0300 Subject: [PATCH 080/420] JS-51: Gallery Widget Configuration and Extension on theme level --- lib/web/fotorama/fotorama.js | 13 ++---- lib/web/magnifier/magnifier.js | 74 ++++++++++++++++------------------ lib/web/magnifier/magnify.js | 2 +- 3 files changed, 40 insertions(+), 49 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 453597325f4..ef45700a3ed 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -1035,7 +1035,6 @@ fotoramaVersion = '4.6.4'; obj.transform = 'translate3d(0, ' + (pos) + 'px,0)'; break; case 'list': - //console.warn("transition not implemented"); break; default : obj.transform = 'translate3d(' + (pos) + 'px,0,0)'; @@ -1909,15 +1908,12 @@ fotoramaVersion = '4.6.4'; } function onEnd(result) { - //////console.time('moveontouch.js onEnd'); if (tail.noSwipe && result.moved) return; if (!tracked) { startTracking(result.startEvent, true); } - ////console.log('onEnd'); - result.touch || MS_POINTER || $el.removeClass(grabbingClass); endTime = $.now(); @@ -2294,7 +2290,7 @@ fotoramaVersion = '4.6.4'; data = that.data = data || clone(opts.data) || getDataFromHtml($fotorama); size = that.size = data.length; - !ready.ok && opts.shuffle && shuffle(data); + ready.ok && opts.shuffle && shuffle(data); checkForVideo(); @@ -3412,7 +3408,6 @@ fotoramaVersion = '4.6.4'; $navWrap.removeClass(navShaftVerticalClass); $navWrap.removeClass(navShaftHorisontalClass); $navWrap.addClass(navShaftListClass); - //console.warn("List not implemented"); break; default: $navWrap.removeClass(navShaftVerticalClass); @@ -3431,6 +3426,7 @@ fotoramaVersion = '4.6.4'; measuresSetFLAG = setFLAG || true; + ready.ok = true; ready(); } } @@ -3705,7 +3701,6 @@ fotoramaVersion = '4.6.4'; }, 0); }, function () { - ////console.log("click"); if (!hoverFLAG) return; toggleControlsClass(!(hoverFLAG = false)); } @@ -3806,8 +3801,8 @@ fotoramaVersion = '4.6.4'; }); function ready() { - if (!ready.ok) { - ready.ok = true; + if (ready.ok) { + ready.ok = false; triggerEvent('ready'); } } diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 294d1b4c651..355321a00f5 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -116,42 +116,6 @@ _init($box, options); }; - /** - * Delete events and created block for magnify - * - */ - that.destroy = function () { - console.warn("API not implemented."); - }; - - /** - * @todo - */ - that.zoomIn = function () { - console.warn("API not implemented."); - }; - - /** - * @todo - */ - that.zoomOut = function () { - console.warn("API not implemented."); - }; - - /** - * @todo - */ - that.show = function () { - console.warn("API not implemented."); - }; - - /** - * @todo - */ - that.hide = function () { - console.warn("API not implemented."); - }; - function createLens(thumb) { if ($(thumb).siblings('.magnify-lens').length) { return false; @@ -587,8 +551,7 @@ touch, isTouchEnabled = 'ontouchstart' in document.documentElement; - $('[data-gallery-role="gallery"]').on('fotorama:fullscreenenter fotorama:showend fotorama:load fotorama:ready', function () { - + $('[data-gallery-role="gallery"]').on('fotorama:fullscreenenter fotorama:showend fotorama:load', function () { var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), $imageContainer = $image.parent(), gallery = $('[data-gallery-role="gallery"]'); @@ -849,8 +812,41 @@ $(document).on('mousemove', onMousemove); _init($box, gOptions); setEventOnce(); - //checkFullscreenImagePosition(); magnifierFullscreen(); + $('.fotorama-item').on('fotorama:load', function () { + if (document.querySelector('.fotorama__stage').addEventListener) { + if ('onwheel' in document) { + // IE9+, FF17+, Ch31+ + document.querySelector('.fotorama__stage').addEventListener("wheel", onWheel); + } else if ('onmousewheel' in document) { + + document.querySelector('.fotorama__stage').addEventListener("mousewheel", onWheel); + } else { + // Firefox < 17 + document.querySelector('.fotorama__stage').addEventListener("MozMousePixelScroll", onWheel); + } + } else { // IE8- + document.querySelector('.fotorama__stage').attachEvent("onmousewheel", onWheel); + } + + function onWheel(e) { + if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { + e = e || window.event; + + + var delta = e.deltaY || e.detail || e.wheelDelta; + + if (delta > 0) { + zoomOut(e) + } else { + zoomIn(e) + } + + e.preventDefault ? e.preventDefault() : (e.returnValue = false); + } + } + }) + } }(jQuery)); diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index cd96c0f6328..c78f1705517 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -78,7 +78,7 @@ define([ } }); - $(element).on('fotorama:showend fotorama:load fotorama:fullscreenexit', function (e, fotorama) { + $(element).on('fotorama:showend fotorama:load fotorama:fullscreenexit fotorama:ready', function (e, fotorama) { hideMagnifier(); config.magnifierOpts.large = $(gallerySelector).data('fotorama').activeFrame.img; config.magnifierOpts.original = fotorama.data[fotorama.activeIndex].original; -- GitLab From aefc2f5c952bf679e663f3ef2ab62dfca29ade36 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Wed, 16 Sep 2015 16:04:33 +0300 Subject: [PATCH 081/420] MAGETWO-42478: Stabialize - --- .../templates/product/view/gallery.phtml | 4 +- .../view/frontend/web/js/configurable.js | 106 +++++++++++------- lib/web/mage/gallery/gallery.js | 34 +++--- 3 files changed, 83 insertions(+), 61 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 9ab7c65ab91..e0708dceabb 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -10,10 +10,10 @@ * @var $block \Magento\Catalog\Block\Product\View\Gallery */ ?> -<div class="gallery-placeholder"></div> +<div class="gallery-placeholder" data-gallery-role="gallery-placeholder"></div> <script type="text/x-magento-init"> { - ".gallery-placeholder": { + "[data-gallery-role=gallery-placeholder]": { "mage/gallery/gallery": { "mixins":["magnifier/magnify"], "magnifierOpts": <?php echo $block->getMagnifier(); ?>, diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js b/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js index f4dc170bbb3..0f64cdd1a2d 100644 --- a/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js +++ b/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js @@ -12,6 +12,7 @@ define([ 'jquery/ui', 'jquery/jquery.parsequery' ], function ($, _, mageTemplate) { + 'use strict'; $.widget('mage.configurable', { options: { @@ -24,13 +25,17 @@ define([ '<% if (data.finalPrice.value) { %>' + ' <%- data.finalPrice.formatted %>' + '<% } %>', - mediaGallerySelector: '[data-gallery-role=gallery]' + mediaGallerySelector: '[data-gallery-role=gallery-placeholder]', + mediaGalleryInitial: null }, + /** * Creates widget * @private */ _create: function () { + this._setDefaults(); + // Initial setting of various option values this._initializeOptions(); @@ -50,6 +55,21 @@ define([ this._configureForValues(); }, + /** + * Prepare Gallery state + * + * @private + */ + _setDefaults: function () { + var options = this.options, + gallery = $(options.mediaGallerySelector); + + gallery.on('gallery:loaded', function () { + var galleryObject = gallery.data('gallery'); + options.mediaGalleryInitial = galleryObject.returnCurrentImages(); + }); + }, + /** * Initialize tax configuration, initial settings, and options values. * @private @@ -66,7 +86,7 @@ define([ } this.options.optionTemplate = mageTemplate(this.options.optionTemplate); - this.options.settings = (this.options.spConfig.containerId) ? + this.options.settings = this.options.spConfig.containerId ? $(this.options.spConfig.containerId).find(this.options.superSelector) : $(this.options.superSelector); @@ -120,8 +140,10 @@ define([ _setValuesByAttribute: function () { this.options.values = {}; $.each(this.options.settings, $.proxy(function (index, element) { + var attributeId; + if (element.value) { - var attributeId = element.id.replace(/[a-z]*/, ''); + attributeId = element.id.replace(/[a-z]*/, ''); this.options.values[attributeId] = element.value; } }, this)); @@ -191,9 +213,7 @@ define([ if (this.options.values) { this.options.settings.each($.proxy(function (index, element) { var attributeId = element.attributeId; - element.value = (typeof (this.options.values[attributeId]) === 'undefined') ? - '' : - this.options.values[attributeId]; + element.value = this.options.values[attributeId] || ''; this._configureElement(element); }, this)); } @@ -215,6 +235,8 @@ define([ * @param {*} element - The element associated with a configurable option. */ _configureElement: function (element) { + this.simpleProduct = this._getSimpleProductId(element); + if (element.value) { this.options.state[element.config.id] = element.value; @@ -237,40 +259,14 @@ define([ * @private */ _changeProductImage: function () { - var state = (function () { - var p, - state = JSON.stringify(this.options.state); - - for (p in this.options.spConfig.index) { - - if (JSON.stringify(this.options.spConfig.index[p]) === state) { - return p; - } - } - - return false; - }.bind(this)()), - option = (function () { - return this.options.state[state] ? this.options.state[state] : false; - }.bind(this)()), - images, + var images = this.options.spConfig.images[this.simpleProduct], galleryObject = $(this.options.mediaGallerySelector).data('gallery'); - if (state && state !== this.options.previousState) { - this.options.previousState = state; - images = this.options.spConfig.images[state]; - } - if (galleryObject) { - - if (!this.options.initialState) { - this.options.initialState = galleryObject.returnCurrentImages(); - } - if (images) { galleryObject.updateData(images); - } else if (!option) { - galleryObject.updateData(this.options.initialState); + } else { + galleryObject.updateData(this.options.mediaGalleryInitial); } } }, @@ -283,13 +279,13 @@ define([ */ _resetChildren: function (element) { if (element.childSettings) { - for (var i = 0; i < element.childSettings.length; i++) { - element.childSettings[i].selectedIndex = 0; - element.childSettings[i].disabled = true; + _.each(element.childSettings, function (set) { + set.selectedIndex = 0; + set.disabled = true; + }); - if (element.config) { - this.options.state[element.config.id] = false; - } + if (element.config) { + this.options.state[element.config.id] = false; } } }, @@ -390,6 +386,7 @@ define([ _reloadPrice: function () { $(this.options.priceHolderSelector).trigger('updatePrice', this._getPrices()); }, + /** * Get product various prices * @returns {{}} @@ -410,6 +407,7 @@ define([ return prices; }, + /** * Returns pracies for configured products * @@ -423,11 +421,35 @@ define([ _.each(displayPrices, function (price, code) { if (newPrices[code]) { - displayPrices[code].amount = newPrices[code].amount - displayPrices[code].amount + displayPrices[code].amount = newPrices[code].amount - displayPrices[code].amount; } }); return displayPrices; + }, + + /** + * _getState + * + * @private + */ + _getSimpleProductId: function (element) { + //element.config + //element.value + + var allOptions = element.config.options, + value = element.value, + config; + + config = _.filter(allOptions, function(option) { + return option.id === value; + }); + + config = _.first(config); + console.log(config.allowedProducts); + + return _.first(config.allowedProducts); + } }); diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index 9f7aa62bec7..ae2c8e468e8 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -127,9 +127,9 @@ define([ config.startindex = mainImage; settings.currentConfig = config; settings.$element.html(template); - settings.$element = $(settings.$element.children()[0]); - settings.$element.fotorama(config); - settings.fotoramaApi = settings.$element.data('fotorama'); + settings.$elementF = $(settings.$element.children()[0]); + settings.$elementF.fotorama(config); + settings.fotoramaApi = settings.$elementF.data('fotorama'); $.extend(true, config, this.startConfig); }, @@ -203,28 +203,28 @@ define([ * Displays the last image on preview. */ last: function () { - this.fotorama.show('>>'); + settings.fotoramaApi.show('>>'); }, /** * Displays the first image on preview. */ first: function () { - this.fotorama.show('<<'); + settings.fotoramaApi.show('<<'); }, /** * Displays previous element on preview. */ prev: function () { - this.fotorama.show('<'); + settings.fotoramaApi.show('<'); }, /** * Displays next element on preview. */ next: function () { - this.fotorama.show('>'); + settings.fotoramaApi.show('>'); }, /** @@ -237,7 +237,7 @@ define([ if (index > 0) { index -= 1; } - this.fotorama.show(index); + settings.fotoramaApi.show(index); } }, @@ -264,7 +264,7 @@ define([ } $.extend(true, settings.currentConfig.options, configuration); - this.fotorama.setOptions(settings.currentConfig.options); + settings.fotoramaApi.setOptions(settings.currentConfig.options); } }, @@ -274,7 +274,7 @@ define([ */ updateData: function (data) { if (_.isArray(data)) { - this.fotorama.load(data); + settings.fotoramaApi.load(data); $.extend(false, settings.defaultConfig, { data: data }); @@ -284,20 +284,20 @@ define([ } }, - /**Returns curent images list + /** + * Returns current images list * - * @return {Array} + * @returns {Array} */ returnCurrentImages: function () { var images = []; - _.forEach(this.fotorama.data, function (item) { - images.push({ - 'img': item.img - }) - }); + _(settings.fotoramaApi.data).each(images.push, images); + + return images; } }; + settings.$element.data('gallery', api); settings.api = settings.$element.data('gallery'); settings.$element.trigger('gallery:loaded'); -- GitLab From 3a45835e61f64da9c11fc73e931aa8c66e86e3d8 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Wed, 16 Sep 2015 17:22:00 +0300 Subject: [PATCH 082/420] MAGETWO-42439: Customer custom attribute of 'file' type isn't supported by UI Form Component - Add support of file uploading --- app/code/Magento/Ui/etc/ui_definition.xsd | 1 + .../view/base/ui_component/etc/definition.xml | 13 ++++- .../Ui/view/base/web/js/form/client.js | 15 +----- .../view/base/web/js/form/element/abstract.js | 11 +++-- .../Ui/view/base/web/js/form/element/media.js | 48 +++++++++++++++++++ .../base/web/js/form/element/ui-select.js | 13 ++--- .../Magento/Ui/view/base/web/js/form/form.js | 5 +- .../Ui/view/base/web/js/form/provider.js | 32 ++++++++++--- .../web/templates/form/element/media.html | 3 +- lib/web/mage/utils/misc.js | 28 ++++++++--- 10 files changed, 126 insertions(+), 43 deletions(-) create mode 100644 app/code/Magento/Ui/view/base/web/js/form/element/media.js diff --git a/app/code/Magento/Ui/etc/ui_definition.xsd b/app/code/Magento/Ui/etc/ui_definition.xsd index 75b710a0e8b..a5eac2fd7db 100644 --- a/app/code/Magento/Ui/etc/ui_definition.xsd +++ b/app/code/Magento/Ui/etc/ui_definition.xsd @@ -48,6 +48,7 @@ <xs:element type="dataTypeMedia" name="image"/> <xs:element type="dataTypeDate" name="date"/> <xs:element type="dataTypeEmail" name="email"/> + <xs:element type="dataTypeMedia" name="file"/> <xs:element type="nav" name="nav"/> <xs:element type="actions" name="actions"/> <xs:element type="bookmark" name="bookmark"/> diff --git a/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml b/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml index a3a7bd17d65..1ae97790525 100755 --- a/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml +++ b/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml @@ -212,7 +212,7 @@ <image class="Magento\Ui\Component\Form\Element\DataType\Media"> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> - <item name="component" xsi:type="string">Magento_Ui/js/form/element/abstract</item> + <item name="component" xsi:type="string">Magento_Ui/js/form/element/media</item> <item name="config" xsi:type="array"> <item name="template" xsi:type="string">ui/form/field</item> <item name="elementTmpl" xsi:type="string">ui/form/element/media</item> @@ -220,6 +220,17 @@ </item> </argument> </image> + <file class="Magento\Ui\Component\Form\Element\DataType\Media"> + <argument name="data" xsi:type="array"> + <item name="js_config" xsi:type="array"> + <item name="component" xsi:type="string">Magento_Ui/js/form/element/media</item> + <item name="config" xsi:type="array"> + <item name="template" xsi:type="string">ui/form/field</item> + <item name="elementTmpl" xsi:type="string">ui/form/element/media</item> + </item> + </item> + </argument> + </file> <date class="Magento\Ui\Component\Form\Element\DataType\Date"> <argument name="data" xsi:type="array"> <item name="js_config" xsi:type="array"> diff --git a/app/code/Magento/Ui/view/base/web/js/form/client.js b/app/code/Magento/Ui/view/base/web/js/form/client.js index 6c6bdbfcf30..7f5904ab432 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/client.js +++ b/app/code/Magento/Ui/view/base/web/js/form/client.js @@ -15,7 +15,7 @@ define([ data = utils.serialize(data); - data.form_key = FORM_KEY; + data.form_key = window.FORM_KEY; if (!url) { save.resolve(); @@ -52,15 +52,6 @@ define([ } return Class.extend({ - /** - * Initializes DataProvider instance. - * @param {Object} settings - Settings to initialize object with. - */ - initialize: function (config) { - _.extend(this, config); - - return this; - }, /** * Assembles data and submits it using 'utils.submit' method @@ -79,8 +70,6 @@ define([ options = options || {}; - data.form_key = FORM_KEY; - if (!options.redirect) { url += 'back/edit'; } @@ -88,7 +77,7 @@ define([ utils.submit({ url: url, data: data - }); + }, options.attributes); return this; } diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js b/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js index b9efcbef944..807679106bb 100755 --- a/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js @@ -18,7 +18,6 @@ define([ focused: false, required: false, disabled: false, - tmpPath: 'ui/form/element/', tooltipTpl: 'ui/form/element/helper/tooltip', 'input_type': 'input', placeholder: '', @@ -78,14 +77,16 @@ define([ * @returns {Abstract} Chainable. */ initProperties: function () { - var uid = utils.uniqueid(); + var uid = utils.uniqueid(), + scope = this.dataScope, + name = scope.split('.').slice(1); this._super(); _.extend(this, { - 'uid': uid, - 'noticeId': 'notice-' + uid, - 'inputName': utils.serializeName(this.dataScope) + uid: uid, + noticeId: 'notice-' + uid, + inputName: utils.serializeName(name.join('.')) }); return this; diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/media.js b/app/code/Magento/Ui/view/base/web/js/form/element/media.js new file mode 100644 index 00000000000..31b610c481b --- /dev/null +++ b/app/code/Magento/Ui/view/base/web/js/form/element/media.js @@ -0,0 +1,48 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +define([ + 'mageUtils', + './abstract' +], function (utils, Abstract) { + 'use strict'; + + return Abstract.extend({ + defaults: { + links: { + value: '' + } + }, + + /** + * Initializes file component. + * + * @returns {Media} Chainable. + */ + initialize: function () { + this._super() + .initFormId(); + + return this; + }, + + /** + * Defines form ID with which file input will be associated. + * + * @returns {Media} Chainable. + */ + initFormId: function () { + var namespace; + + if (this.formId) { + return this; + } + + namespace = this.name.split('.'); + this.formId = namespace[0]; + + return this; + } + }); +}); diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js b/app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js index 638f78341d6..f7fc12d5f1d 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js @@ -490,16 +490,11 @@ define([ * @returns {String} */ getPreview: function () { - var i = 0, - selected = this.getSelected(), - length = selected.length, - result = []; - - for (i; i < length; i++) { - result.push(selected[i].label); - } + var selected = this.getSelected(); - return result.join(', '); + return selected.map(function (option) { + return option.label; + }).join(', '); } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/form/form.js b/app/code/Magento/Ui/view/base/web/js/form/form.js index 2a192c20c24..ad64e867403 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/form.js +++ b/app/code/Magento/Ui/view/base/web/js/form/form.js @@ -76,7 +76,10 @@ define([ }); source.save({ - redirect: redirect + redirect: redirect, + attributes: { + id: this.namespace + } }); }, diff --git a/app/code/Magento/Ui/view/base/web/js/form/provider.js b/app/code/Magento/Ui/view/base/web/js/form/provider.js index 8b182d2b8f2..5587fe95f2b 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/provider.js +++ b/app/code/Magento/Ui/view/base/web/js/form/provider.js @@ -10,6 +10,20 @@ define([ 'use strict'; return Component.extend({ + defaults: { + clientConfig: { + urls: { + save: '${ $.submit_url }', + beforeSave: '${ $.validate_url }' + } + } + }, + + /** + * Initializes provider component. + * + * @returns {Provider} Chainable. + */ initialize: function () { this._super() .initClient(); @@ -17,17 +31,23 @@ define([ return this; }, + /** + * Initializes client component. + * + * @returns {Provider} Chainable. + */ initClient: function () { - this.client = new Client({ - urls: { - beforeSave: this.validate_url, - save: this.submit_url - } - }); + this.client = new Client(this.clientConfig); return this; }, + /** + * Saves currently available data. + * + * @param {Object} [options] - Addtitional request options. + * @returns {Provider} Chainable. + */ save: function (options) { var data = this.get('data'); diff --git a/app/code/Magento/Ui/view/base/web/templates/form/element/media.html b/app/code/Magento/Ui/view/base/web/templates/form/element/media.html index 64c9f82070d..627d6689262 100644 --- a/app/code/Magento/Ui/view/base/web/templates/form/element/media.html +++ b/app/code/Magento/Ui/view/base/web/templates/form/element/media.html @@ -12,6 +12,7 @@ placeholder: placeholder, 'aria-describedby': noticeId, id: uid, - disabled: disabled + disabled: disabled, + form: formId }" /> diff --git a/lib/web/mage/utils/misc.js b/lib/web/mage/utils/misc.js index 8885679a61c..afbdf70ae45 100644 --- a/lib/web/mage/utils/misc.js +++ b/lib/web/mage/utils/misc.js @@ -7,7 +7,15 @@ define([ ], function (_) { 'use strict'; - var map = { + var defaultAttributes, + map; + + defaultAttributes = { + method: 'post', + enctype: 'multipart/form-data' + }; + + map = { 'D': 'DDD', 'dd': 'DD', 'd': 'D', @@ -106,15 +114,21 @@ define([ * @param {Object} options - Options object that consists of * a 'url' and 'data' properties. */ - submit: function (options) { - var form = document.createElement('form'), - data = this.serialize(options.data), + submit: function (options, attrs) { + var form = document.createElement('form'), + data = this.serialize(options.data), + attributes = _.extend({}, defaultAttributes, attrs || {}), field; - data.form_key = FORM_KEY; + if (!attributes.action) { + attributes.action = options.url; + } + + data.form_key = window.FORM_KEY; - form.setAttribute('action', options.url); - form.setAttribute('method', 'post'); + _.each(attributes, function (value, name) { + form.setAttribute(name, value); + }); _.each(data, function (value, name) { field = document.createElement('input'); -- GitLab From eff5137842d7ee8ceaf06df10acc7540676a1224 Mon Sep 17 00:00:00 2001 From: Dubovyk Oleksandr <odubovyk@ebay.com> Date: Wed, 16 Sep 2015 18:43:12 +0300 Subject: [PATCH 083/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget --- .../catalog/product/attribute/form.phtml | 7 +- .../adminhtml/templates/browser/content.phtml | 11 --- .../backend/web/css/source/_components.less | 1 + .../backend/web/css/source/_forms.less | 1 + .../source/components/_file-insertion.less | 54 ++++++++++++++ .../css/source/components/_modals_extend.less | 40 +++++++--- .../web/css/source/components/_popups.less | 3 +- .../modals_extend/_wysiwyg_images.less | 74 ------------------- .../web/css/source/forms/form-wysiwyg.less | 15 ++++ 9 files changed, 105 insertions(+), 101 deletions(-) create mode 100644 app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less delete mode 100644 app/design/adminhtml/Magento/backend/web/css/source/components/modals_extend/_wysiwyg_images.less create mode 100644 app/design/adminhtml/Magento/backend/web/css/source/forms/form-wysiwyg.less diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/form.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/form.phtml index 98f5a0a6505..8bc0b649753 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/form.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/form.phtml @@ -13,14 +13,15 @@ */ ?> <?php /* @escapeNotVerified */ echo $block->getFormInitScripts() ?> +<div data-mage-init='{"floatingHeader": {}}' class="page-actions attribute-popup-actions" <?php /* @escapeNotVerified */ echo $block->getUiId('content-header') ?>> + <?php echo $block->getButtonsHtml('header') ?> +</div> + <form id="edit_form" class="admin__scope-old" action="<?php echo $block->escapeHtml($block->getSaveUrl()) ?>" method="post"> <input name="form_key" type="hidden" value="<?php echo $block->escapeHtml($block->getFormKey()) ?>" /> <?php echo $block->getChildHtml('form') ?> </form> -<div data-mage-init='{"floatingHeader": {}}' class="page-actions attribute-popup-actions" <?php /* @escapeNotVerified */ echo $block->getUiId('content-header') ?>> - <?php echo $block->getButtonsHtml('header') ?> -</div> <script> require(['jquery', "mage/mage"], function(jQuery){ diff --git a/app/code/Magento/Theme/view/adminhtml/templates/browser/content.phtml b/app/code/Magento/Theme/view/adminhtml/templates/browser/content.phtml index 76f1c808e3c..e2413267b89 100644 --- a/app/code/Magento/Theme/view/adminhtml/templates/browser/content.phtml +++ b/app/code/Magento/Theme/view/adminhtml/templates/browser/content.phtml @@ -13,17 +13,6 @@ ?> <?php echo $block->getChildHtml('wysiwyg_files.js') ?> -<div class="content-header skip-header" id="content_header"> - <table> - <tr> - <td><h3 id="content_header_text"><?php /* @escapeNotVerified */ echo $block->getHeaderText() ?></h3></td> - <td class="form-buttons"> - <?php echo $block->getButtonsHtml() ?> - </td> - </tr> - </table> -</div> - <div id="contents-uploader" class="contents-uploader"><?php echo $block->getChildHtml('wysiwyg_files.uploader') ?></div> <div id="contents"></div> <div id="contents-newfolder" class="no-display"><?php echo $block->getChildHtml('wysiwyg_files.newfolder') ?></div> diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_components.less b/app/design/adminhtml/Magento/backend/web/css/source/_components.less index a9ee8f523cc..b376a1a2bd2 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/_components.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/_components.less @@ -13,3 +13,4 @@ @import 'components/_popups.less'; @import 'components/_modals.less'; @import 'components/_modals_extend.less'; +@import 'components/_file-insertion.less'; diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_forms.less b/app/design/adminhtml/Magento/backend/web/css/source/_forms.less index 2e18751ca49..7abfeb8ef90 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/_forms.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/_forms.less @@ -7,3 +7,4 @@ @import 'forms/_controls.less'; @import 'forms/_fields.less'; @import 'forms/_temp.less'; +@import 'forms/form-wysiwyg.less'; diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less new file mode 100644 index 00000000000..b1e17f9a69d --- /dev/null +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less @@ -0,0 +1,54 @@ +// /** +// * Copyright © 2015 Magento. All rights reserved. +// * See COPYING.txt for license details. +// */ + + +// +// Block 'Insert File' +// _________________________________________ + +.modal-slide { +} + +.contents-uploader { + margin: 0 0 @indent__base; +} + +.fileinput-button { + cursor: pointer; + display: inline-block; + float: none; + vertical-align: middle; + span { + display: none; + } + input { + border: none; + -moz-transform: none; + opacity: 1; + position: static; + } +} + +.file-row { + border: 1px solid @color-gray68; + margin: @indent__xs 0; + padding: 2px; +} + +.filecnt { + border: 1px solid @color-gray68; + cursor: pointer; + display: inline-block; + margin: 0 @indent__xs 15px 0; + overflow: hidden; + padding: 3px; + width: 100px; + &.selected { + border-color: @color-blue-dodger; + } + p { + text-align: center; + } +} diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less index 186dcb8fdf1..8f848d44d49 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less @@ -80,11 +80,28 @@ } .modal-content { - .buttons-set { - margin: 0 0 15px; - button { - margin-right: 4px; - } + + } + + .magento_message { + padding: 0 @popup__padding__horizontal @popup__padding__vertical; + position: relative; + } + + .main-col, + .magento_message { + .insert-title-inner { + &:extend(.abs-clearfix all); + border-bottom: 1px solid @color-gray68; + margin: 0 0 @indent__base; + padding-bottom: @indent__xs; + } + .insert-actions { + float: right; + } + .title { + font-size: @font-size__l; + padding-top: @indent__xs; } } @@ -106,16 +123,15 @@ width: 80%; } + .content-footer { + .form-buttons { + float: right; + } + } } .modal-title { font-weight: @font-weight__regular; margin-bottom: 0; min-height: 1em; -} - - -// -// Imports -// --------------------------------------------- -@import 'modals_extend/_wysiwyg_images.less'; \ No newline at end of file +} \ No newline at end of file diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less index 6586433b784..49b6c9e0849 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less @@ -389,7 +389,8 @@ // Attribute Popup // _____________________________________________ -.attribute-popup-actions { + +.attribute-popup-actions { // ToDo UI: remove or refactor after New attribute popup refactored to sliding panel background: @color-white; border-top: 1px solid @color-gray68; bottom: 0; diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/modals_extend/_wysiwyg_images.less b/app/design/adminhtml/Magento/backend/web/css/source/components/modals_extend/_wysiwyg_images.less deleted file mode 100644 index ccf7b100864..00000000000 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/modals_extend/_wysiwyg_images.less +++ /dev/null @@ -1,74 +0,0 @@ -// /** -// * Copyright © 2015 Magento. All rights reserved. -// * See COPYING.txt for license details. -// */ - -// -// Wysiwyg images -// --------------------------------------------- - -.modal-slide { - - - // - // Block 'Insert File' - // ----------------------------------------- - - .main-col { - .insert-title-inner { - &:extend(.abs-clearfix all); - border-bottom: 1px solid @color-gray68; - margin: 0 0 @indent__base; - padding-bottom: @indent__xs; - } - .insert-actions { - float: right; - } - .title { - font-size: @font-size__l; - padding-top: @indent__xs; - } - } - - .contents-uploader { - margin: 0 0 @indent__base; - } - - .fileinput-button { - cursor: pointer; - display: inline-block; - float: none; - vertical-align: middle; - span { - display: none; - } - input { - border: none; - -moz-transform: none; - opacity: 1; - position: static; - } - } - - .file-row { - border: 1px solid @color-gray68; - margin: @indent__xs 0; - padding: 2px; - } - - .filecnt { - border: 1px solid @color-gray68; - display: inline-block; - margin: 0 @indent__xs 15px 0; - padding: 3px; - width: 100px; - overflow: hidden; - cursor: pointer; - &.selected { - border-color: @color-blue-dodger; - } - p { - text-align: center; - } - } -} \ No newline at end of file diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/form-wysiwyg.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/form-wysiwyg.less new file mode 100644 index 00000000000..aa55a49a6fd --- /dev/null +++ b/app/design/adminhtml/Magento/backend/web/css/source/forms/form-wysiwyg.less @@ -0,0 +1,15 @@ +// /** +// * Copyright © 2015 Magento. All rights reserved. +// * See COPYING.txt for license details. +// */ + +// +// Wysiwyg form control styles +// --------------------------------------------- + +.buttons-set { + margin: 0 0 15px; + button { + margin-right: 4px; + } +} \ No newline at end of file -- GitLab From 06ee1f5e187c33fff16a1d6e754338d32fa25c76 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Thu, 17 Sep 2015 14:52:52 +0300 Subject: [PATCH 084/420] JS-185: Zoom buttons don't hide when picture size is small enough for full-screen mode --- lib/web/magnifier/magnifier.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 355321a00f5..2adcc955bac 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -542,6 +542,18 @@ } } + function toggleZoomButtons($image) { + var image = new Image(); + image.src = $image.attr("src"); + if ( (image.height > $image.parent().height()) || (image.width > $image.parent().width()) ) { + $('.fotorama__zoom-in').show(); + $('.fotorama__zoom-out').show(); + } else { + $('.fotorama__zoom-in').hide(); + $('.fotorama__zoom-out').hide(); + } + } + function magnifierFullscreen () { var isDragActive = false, startX, @@ -565,6 +577,8 @@ if (gallery.data('fotorama').fullScreen) { + toggleZoomButtons($image); + $('.fotorama__stage__frame .fotorama__img').each(function () { var image = new Image(); image.src = $(this).attr("src"); @@ -693,6 +707,7 @@ $(window).resize(function() { if ($('.fotorama-item').data('fotorama').fullScreen) { + $('.fotorama__stage__frame .fotorama__img').each(function () { var image = new Image(); image.src = $(this).attr("src"); @@ -708,6 +723,8 @@ } } }); + + toggleZoomButtons($('[data-gallery-role="stage-shaft"] [data-active="true"] img')); } -- GitLab From 512ab2e52f0489ba30afcc39503b3d90d625db05 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Thu, 17 Sep 2015 17:12:59 +0300 Subject: [PATCH 085/420] MAGETWO-42831: JS error "default is not defined" in some environment conditions --- lib/web/mage/cookies.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/web/mage/cookies.js b/lib/web/mage/cookies.js index d30b49924a2..2b53a7a10ae 100644 --- a/lib/web/mage/cookies.js +++ b/lib/web/mage/cookies.js @@ -44,7 +44,7 @@ * @return {Date|null} Calculated cookie expiration date or null if no lifetime provided. * @private */ - function lifetimeToExpires(options) { + function lifetimeToExpires(options, defaults) { var expires, lifetime; @@ -71,7 +71,7 @@ secure; options = $.extend({}, this.defaults, options || {}); - expires = lifetimeToExpires(options) || options.expires; + expires = lifetimeToExpires(options, this.defaults) || options.expires; path = options.path; domain = options.domain; secure = options.secure; -- GitLab From 0d90d7112c8fb1f15aa0f250b59c3ad7dd7b17a2 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Thu, 17 Sep 2015 17:22:54 +0300 Subject: [PATCH 086/420] MAGETWO-42831: JS error "default is not defined" in some environment conditions --- lib/web/mage/cookies.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/web/mage/cookies.js b/lib/web/mage/cookies.js index 2b53a7a10ae..d4b98a23e64 100644 --- a/lib/web/mage/cookies.js +++ b/lib/web/mage/cookies.js @@ -52,6 +52,7 @@ if (lifetime && lifetime > 0) { expires = options.expires || new Date(); + return new Date(expires.getTime() + lifetime * 1000); } -- GitLab From ec8101f9a240c102a9ab02f77d041c7e46d58ee5 Mon Sep 17 00:00:00 2001 From: Dubovyk Oleksandr <odubovyk@ebay.com> Date: Thu, 17 Sep 2015 19:01:55 +0300 Subject: [PATCH 087/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget --- .../form/renderer/fieldset/element.phtml | 2 +- .../source/components/_file-insertion.less | 33 +++++++++---------- .../css/source/components/_modals_extend.less | 5 +-- .../web/css/source/components/_popups.less | 25 +++++++++----- .../Framework/Data/Form/Element/Editor.php | 2 +- 5 files changed, 35 insertions(+), 32 deletions(-) diff --git a/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset/element.phtml b/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset/element.phtml index 824c0e92d6c..5d4ebd0ad27 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset/element.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset/element.phtml @@ -37,7 +37,7 @@ $fieldAttributes = $fieldId . ' class="' . $fieldClass . '" ' <?php else: ?> <?php echo $element->getLabelHtml() ?> <div class="admin__field-control control"> - <?php /* @escapeNotVerified */ echo($addOn) ? '<div class="admin__field admin__field-option">' . $element->getElementHtml() . '</div>' : $element->getElementHtml(); ?> + <?php /* @escapeNotVerified */ echo($addOn) ? '<div class="admin__field">' . $element->getElementHtml() . '</div>' : $element->getElementHtml(); ?> <?php /* @escapeNotVerified */ echo $note ?> </div> <?php endif; ?> diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less index b1e17f9a69d..ded39e78caf 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less @@ -8,29 +8,26 @@ // Block 'Insert File' // _________________________________________ -.modal-slide { -} - .contents-uploader { margin: 0 0 @indent__base; -} - -.fileinput-button { - cursor: pointer; - display: inline-block; - float: none; - vertical-align: middle; - span { - display: none; - } - input { - border: none; - -moz-transform: none; - opacity: 1; - position: static; + .fileinput-button { + cursor: pointer; + display: inline-block; + float: none; + vertical-align: middle; + span { + display: none; + } + input { + border: none; + -moz-transform: none; + opacity: 1; + position: static; + } } } + .file-row { border: 1px solid @color-gray68; margin: @indent__xs 0; diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less index 8f848d44d49..12c122edb51 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less @@ -67,6 +67,7 @@ font-size: @modal-slide-title__font-size; margin-right: @modal-slide-title__font-size + @modal-slide__padding + 1rem; } + .action-close { padding: @modal-slide-header__padding-vertical @modal-slide__padding; &:active { @@ -79,10 +80,6 @@ margin-bottom: @modal-slide-header__padding-vertical - @page-main-actions__padding; } - .modal-content { - - } - .magento_message { padding: 0 @popup__padding__horizontal @popup__padding__vertical; position: relative; diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less index 49b6c9e0849..c11280a1b89 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less @@ -390,15 +390,24 @@ // _____________________________________________ +.catalog-product-attribute-edit { + .page-wrapper { + width: 100%; + .page-content { + padding-left: 0; + } + } +} + .attribute-popup-actions { // ToDo UI: remove or refactor after New attribute popup refactored to sliding panel - background: @color-white; - border-top: 1px solid @color-gray68; - bottom: 0; - left: 0; - padding: @popup__padding; - position: fixed; - right: 0; - top: auto !important; + &:extend(.abs-clearfix all); + background: @page-main-actions__background-color; + border-bottom: 1px solid @page-main-actions__border-color; + border-top: 1px solid @page-main-actions__border-color; + padding: @page-main-actions__padding; + &.page-actions { + float: none; + } &.fixed { // ToDo UI: remove or refactor after New attribute popup refactored to sliding panel background: @color-white !important; border-bottom: 0 !important; diff --git a/lib/internal/Magento/Framework/Data/Form/Element/Editor.php b/lib/internal/Magento/Framework/Data/Form/Element/Editor.php index 730f5c2810f..25ec2f57616 100644 --- a/lib/internal/Magento/Framework/Data/Form/Element/Editor.php +++ b/lib/internal/Magento/Framework/Data/Form/Element/Editor.php @@ -385,7 +385,7 @@ class Editor extends Textarea protected function _wrapIntoContainer($html) { if (!$this->getConfig('use_container')) { - return $html; + return '<div class="admin__control-wysiwig">' .$html . '</div>'; } $html = '<div id="editor' . $this->getHtmlId() . '"' . ($this->getConfig( -- GitLab From b0d47fa2fc57c342defc36d071a20b8154b081e6 Mon Sep 17 00:00:00 2001 From: Dubovyk Oleksandr <odubovyk@ebay.com> Date: Thu, 17 Sep 2015 19:59:22 +0300 Subject: [PATCH 088/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget - Added wrapper and styles for wysiwyg module --- .../web/css/source/forms/form-wysiwyg.less | 15 ++++++++++----- .../Framework/Data/Form/Element/Editor.php | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/form-wysiwyg.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/form-wysiwyg.less index aa55a49a6fd..8ce2fedb661 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/forms/form-wysiwyg.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/forms/form-wysiwyg.less @@ -7,9 +7,14 @@ // Wysiwyg form control styles // --------------------------------------------- -.buttons-set { - margin: 0 0 15px; - button { - margin-right: 4px; +.admin__control-wysiwig { + .buttons-set { + margin: 0 0 15px; + button { + margin-right: 4px; + } } -} \ No newline at end of file + textarea{ + width: 100%; + } +} diff --git a/lib/internal/Magento/Framework/Data/Form/Element/Editor.php b/lib/internal/Magento/Framework/Data/Form/Element/Editor.php index 25ec2f57616..b4f5f29270d 100644 --- a/lib/internal/Magento/Framework/Data/Form/Element/Editor.php +++ b/lib/internal/Magento/Framework/Data/Form/Element/Editor.php @@ -392,7 +392,7 @@ class Editor extends Textarea 'no_display' ) ? ' style="display:none;"' : '') . ($this->getConfig( 'container_class' - ) ? ' class="' . $this->getConfig( + ) ? ' class="admin__control-wysiwig ' . $this->getConfig( 'container_class' ) . '"' : '') . '>' . $html . '</div>'; -- GitLab From a3a1db102da63b0dc8aea10cb2f101828d3ab227 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Fri, 18 Sep 2015 11:58:45 +0300 Subject: [PATCH 089/420] MAGETWO-32170: [Vanilla] Gallery Widget on Configurable Product --- .../view/frontend/web/js/configurable.js | 80 +++++++++---------- 1 file changed, 36 insertions(+), 44 deletions(-) diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js b/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js index 0f64cdd1a2d..7baf45232b8 100644 --- a/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js +++ b/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js @@ -19,6 +19,7 @@ define([ superSelector: '.super-attribute-select', selectSimpleProduct: '[name="selected_configurable_option"]', priceHolderSelector: '.price-box', + spConfig: {}, state: {}, priceFormat: {}, optionTemplate: '<%- data.label %>' + @@ -34,8 +35,6 @@ define([ * @private */ _create: function () { - this._setDefaults(); - // Initial setting of various option values this._initializeOptions(); @@ -55,48 +54,37 @@ define([ this._configureForValues(); }, - /** - * Prepare Gallery state - * - * @private - */ - _setDefaults: function () { - var options = this.options, - gallery = $(options.mediaGallerySelector); - - gallery.on('gallery:loaded', function () { - var galleryObject = gallery.data('gallery'); - options.mediaGalleryInitial = galleryObject.returnCurrentImages(); - }); - }, - /** * Initialize tax configuration, initial settings, and options values. * @private */ _initializeOptions: function () { - var priceBoxOptions = $(this.options.priceHolderSelector).priceBox('option'); + var options = this.options, + gallery = $(options.mediaGallerySelector), + priceBoxOptions = $(this.options.priceHolderSelector).priceBox('option').priceConfig || null; - if (priceBoxOptions.priceConfig && priceBoxOptions.priceConfig.optionTemplate) { - this.options.optionTemplate = priceBoxOptions.priceConfig.optionTemplate; + if (priceBoxOptions && priceBoxOptions.optionTemplate) { + options.optionTemplate = priceBoxOptions.optionTemplate; } - if (priceBoxOptions.priceConfig && priceBoxOptions.priceConfig.priceFormat) { - this.options.priceFormat = priceBoxOptions.priceConfig.priceFormat; + if (priceBoxOptions && priceBoxOptions.priceFormat) { + options.priceFormat = priceBoxOptions.priceFormat; } - this.options.optionTemplate = mageTemplate(this.options.optionTemplate); + options.optionTemplate = mageTemplate(options.optionTemplate); + + options.settings = options.spConfig.containerId ? + $(options.spConfig.containerId).find(options.superSelector) : + $(options.superSelector); - this.options.settings = this.options.spConfig.containerId ? - $(this.options.spConfig.containerId).find(this.options.superSelector) : - $(this.options.superSelector); + options.values = options.spConfig.defaultValues || {}; + options.parentImage = $('[data-role=base-image-container] img').attr('src'); - this.options.values = this.options.spConfig.defaultValues || {}; - this.options.parentImage = $('[data-role=base-image-container] img').attr('src'); + this.inputSimpleProduct = this.element.find(options.selectSimpleProduct); - this.initialGalleryImages = $(this.options.mediaGallerySelector).data('mageGallery') ? - $(this.options.mediaGallerySelector).gallery('option', 'images') - : []; - this.inputSimpleProduct = this.element.find(this.options.selectSimpleProduct); + gallery.on('gallery:loaded', function () { + var galleryObject = gallery.data('gallery'); + options.mediaGalleryInitial = galleryObject.returnCurrentImages(); + }); }, /** @@ -190,9 +178,11 @@ define([ while (index--) { option = settings[index]; - !index ? - this._fillSelect(option) : - (option.disabled = true); + if (index) { + option.disabled = true; + } else { + this._fillSelect(option); + } _.extend(option, { childSettings: childSettings.slice(), @@ -362,7 +352,9 @@ define([ * @param {*} element - The element associated with a configurable option. */ _clearSelect: function (element) { - for (var i = element.options.length - 1; i >= 0; i--) { + var i; + + for (i = element.options.length - 1; i >= 0; i--) { element.remove(i); } }, @@ -429,26 +421,26 @@ define([ }, /** - * _getState + * Returns Simple product Id + * depending on current selected option. * * @private + * @param {HTMLElement} element + * @returns {String|undefined} */ _getSimpleProductId: function (element) { - //element.config - //element.value - var allOptions = element.config.options, value = element.value, config; - config = _.filter(allOptions, function(option) { + config = _.filter(allOptions, function (option) { return option.id === value; }); - config = _.first(config); - console.log(config.allowedProducts); - return _.first(config.allowedProducts); + return _.isEmpty(config) ? + undefined : + _.first(config.allowedProducts); } -- GitLab From 3732ae67387ccc9375780976ea4dcb004f922aee Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Mon, 21 Sep 2015 12:00:08 +0300 Subject: [PATCH 090/420] JS-52: Zoom on Full Screen Mode --- .../view/frontend/templates/product/view/gallery.phtml | 3 +++ app/design/frontend/Magento/blank/etc/view.xml | 4 +++- app/design/frontend/Magento/luma/etc/view.xml | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 2c598b2f5e4..8767701ea37 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -49,6 +49,9 @@ "navdir": "<?php echo $block->getVar("gallery:fullscreen:navdir"); ?>", "arrows": <?php echo $block->getVar("gallery:fullscreen:arrows"); ?>, "showCaption": <?php echo $block->getVar("gallery:fullscreen:caption"); ?>, + "thumbwidth": <?php echo $block->getVar("gallery:fullscreen:thumbwidth"); ?>, + "thumbheight": <?php echo $block->getVar("gallery:fullscreen:thumbheight") + ?: $block->getVar("gallery:fullscreen:thumbwidth"); ?>, "transitionduration": <?php echo $block->getVar("gallery:fullscreen:transition:duration"); ?>, "transition": "<?php echo $block->getVar("gallery:fullscreen:transition:effect"); ?>" }, diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 14f7695e7b3..3983c7bc483 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -195,7 +195,9 @@ <var name="gallery:fullscreen:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="gallery:fullscreen:arrows">null</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> <var name="gallery:fullscreen:caption">null</var> <!-- Display alt text as image title (true/false/null) --> - <var name="gallery:fullscreen:navdir">horizontal</var> <!--Sliding direction of thumbnails in full screen(horizontal/vertical) --> + <var name="gallery:fullscreen:navdir">horizontal</var> <!--Sliding direction of thumbnails in fullscreen(horizontal/vertical) --> + <var name="gallery:fullscreen:thumbwidth">100</var> <!-- Width of thumbnails in fullscreen --> + <var name="gallery:fullscreen:thumbheight">100</var> <!-- Height of thumbnails in fullscreen --> <var name="gallery:fullscreen:transition:effect">crossfade</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index b2d2d21ad4d..354455eaefc 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -200,6 +200,8 @@ <var name="gallery:fullscreen:arrows">false</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> <var name="gallery:fullscreen:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:fullscreen:navdir">horizontal</var> <!--Sliding direction of thumbnails in full screen(horizontal/vertical) --> + <var name="gallery:fullscreen:thumbwidth">150</var> <!-- Width of thumbnails in fullscreen --> + <var name="gallery:fullscreen:thumbheight">150</var> <!-- Height of thumbnails in fullscreen --> <var name="gallery:fullscreen:transition:effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> -- GitLab From d0bc1cd56c5e20c484735a91e5df850c9c1651f4 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Mon, 21 Sep 2015 12:11:02 +0300 Subject: [PATCH 091/420] JS-201: Implement preview buttons actions --- .../frontend/Magento/blank/etc/view.xml | 2 +- lib/web/fotorama/fotorama.js | 108 +++++++++++++++++- 2 files changed, 104 insertions(+), 6 deletions(-) diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 3983c7bc483..6cd076e51d2 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -186,7 +186,7 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> - <var name="gallery:navdir">vertical</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> + <var name="gallery:navdir">horizontal</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index ef45700a3ed..6f6e5b71371 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -89,6 +89,8 @@ fotoramaVersion = '4.6.4'; verticalImageClass = _fotoramaClass + '_vertical_ratio'; var JQUERY_VERSION = $ && $.fn.jquery.split('.'); + var borderPos = 0; + if (!JQUERY_VERSION || JQUERY_VERSION[0] < 1 || (JQUERY_VERSION[0] == 1 && JQUERY_VERSION[1] < 8)) { @@ -962,6 +964,7 @@ fotoramaVersion = '4.6.4'; thumbheight: THUMB_SIZE, thumbmargin: MARGIN, thumbborderwidth: MARGIN, + areSlides: true, allowfullscreen: false, // true || 'native' @@ -1598,14 +1601,59 @@ fotoramaVersion = '4.6.4'; if (typeof options.overPos !== 'undefined' && options.overPos !== options.pos) { elPos = options.overPos; } - var translate = $.extend(getTranslate(elPos, options.direction), options.width && {width: options.width}, options.height && {height: options.height}); if (elData && elData.sliding) { elData.sliding = true; } if (CSS3) { - $el.css($.extend(getDuration(options.time), translate)); + + if (!options.thumb || !OPTIONS.areSlides) { + + $el.css($.extend(getDuration(options.time), translate)); + } else { + + if ($el.selector !== '.fotorama__nav-wrap .fotorama__nav .fotorama__nav__shaft') { + $el.css($.extend(getDuration(options.time), translate)); + + if ($el.selector === ".fotorama__thumb-border") { + var slideLength = 4, + borderStep, + slidePosition; + + if (options.navdir === 'vertical') { + borderStep = options.thumb.height + options.thumb.margin; + slideLength = 4; + $('.fotorama__nav--thumbs').css('height', borderStep * slideLength); + } else { + borderStep = options.thumb.width + options.thumb.margin; + slideLength = 4; + $('.fotorama__nav--thumbs').css('width', borderStep * slideLength); + } + + if (((borderPos < options.pos) || (options.pos === 0)) && ((borderPos !== 0) || (options.pos <= borderStep))) { + + if (Math.abs(Math.round(options.pos / borderStep)) % slideLength === 0) { + slidePosition = - options.pos; + shiftSlide(slidePosition, options, borderStep, slideLength); + } + } else { + + if (Math.abs(Math.round(options.pos / borderStep)) % slideLength === slideLength - 1) { + slidePosition = borderStep * (slideLength - 1) - options.pos; + shiftSlide(slidePosition, options, borderStep, slideLength); + } else { + if (borderPos === 0) { + slidePosition = borderStep * ((options.pos / borderStep + 1) % slideLength - 1) - options.pos; + shiftSlide(slidePosition, options, borderStep, slideLength); + } + } + } + borderPos = options.pos; + } + } + } + if (options.time > 10) { afterTransition($el, 'transform', onEndFn, options.time); } else { @@ -1613,9 +1661,17 @@ fotoramaVersion = '4.6.4'; } } else { $el.stop().animate(translate, options.time, BEZIER, onEndFn); + options.measures.nw = -slidePosition + borderStep * (slideLength - 1); + $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate1)); } } + function shiftSlide(slidePosition, options, borderStep, slideLength) { + var translate1 = $.extend(getTranslate(slidePosition, options.direction), options.width && {width: options.width}, options.height && {height: options.height}); + options.measures.nw = -slidePosition + borderStep * (slideLength - 1); + $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate1)); + } + function fade($el1, $el2, $frames, options, fadeStack, chain) { var chainedFLAG = typeof chain !== 'undefined'; if (!chainedFLAG) { @@ -2789,7 +2845,6 @@ fotoramaVersion = '4.6.4'; rightLimit, exceedLimit; - if (o_nav !== 'thumbs' || isNaN(pos)) return; leftLimit = -pos; @@ -2941,7 +2996,15 @@ fotoramaVersion = '4.6.4'; pos: (opts.navdir === 'vertical' ? navFrameData.t : navFrameData.l), width: navFrameData.w, height: navFrameData.h, - direction: opts.navdir + direction: opts.navdir, + thumb: { + width: opts.thumbwidth, + height: opts.thumbheight, + margin: opts.thumbmargin, + areSlides: opts.areSlides, + measures: measures + }, + measures: measures }); } @@ -2962,6 +3025,13 @@ fotoramaVersion = '4.6.4'; direction: opts.navdir, onEnd: function () { thumbsDraw(pos, true); + }, + thumb: { + width: opts.thumbwidth, + height: opts.thumbheight, + margin: opts.thumbmargin, + areSlides: opts.areSlides, + measures: measures } }); @@ -3114,6 +3184,27 @@ fotoramaVersion = '4.6.4'; } + that.showSlide = function(index) { + if ((index > 0) && (index <= $navShaft.children().length - 1)) { + index --; + var borderStep = opts.navdir === 'vertical' ? + opts.thumbheight + opts.thumbmargin : + borderStep = opts.thumbwidth + opts.thumbmargin, + slideLength = 4, + options = { + time: opts.transitionduration, + direction: opts.navdir, + width: activeFrame[navFrameKey].data().w, + width: activeFrame[navFrameKey].data().h, + measures: measures + }, + slidePosition; + slidePosition = -(index * borderStep * slideLength); + shiftSlide(slidePosition, options, borderStep, slideLength); + thumbsDraw(false, true); + } + } + that.startAutoplay = function (interval) { if (that.autoplay) return this; pausedAutoplayFLAG = stoppedAutoplayFLAG = false; @@ -3652,7 +3743,14 @@ fotoramaVersion = '4.6.4'; pos: result.newPos, overPos: result.overPos, direction: opts.navdir, - onEnd: onEnd + onEnd: onEnd, + thumb: { + width: opts.thumbwidth, + height: opts.thumbheight, + margin: opts.thumbmargin, + areSlides: opts.areSlides, + measures: measures + } }); thumbsDraw(result.newPos); o_shadows && setShadow($nav, findShadowEdge(result.newPos, navShaftTouchTail.min, navShaftTouchTail.max, result.dir)); -- GitLab From 5637a5b76f13e073a915e8311b72039d42231543 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Mon, 21 Sep 2015 13:17:45 +0300 Subject: [PATCH 092/420] MAGETWO-42989: Implementation --- .../Ui/view/base/web/js/modal/modal.js | 135 +++++++++++++++++- .../web/templates/modal/modal-custom.html | 4 +- .../base/web/templates/modal/modal-popup.html | 4 +- .../base/web/templates/modal/modal-slide.html | 4 +- 4 files changed, 142 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/modal/modal.js b/app/code/Magento/Ui/view/base/web/js/modal/modal.js index 84074ebf980..51bbb74abd6 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/modal.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/modal.js @@ -10,9 +10,10 @@ define([ 'text!ui/template/modal/modal-popup.html', 'text!ui/template/modal/modal-slide.html', 'text!ui/template/modal/modal-custom.html', + 'Magento_Ui/js/lib/key-codes', 'jquery/ui', 'mage/translate' -], function ($, _, template, popupTpl, slideTpl, customTpl) { +], function ($, _, template, popupTpl, slideTpl, customTpl, keyCodes) { 'use strict'; /** @@ -44,6 +45,7 @@ define([ type: 'popup', title: '', modalClass: '', + focus: '', popupTpl: popupTpl, slideTpl: slideTpl, customTpl: customTpl, @@ -56,6 +58,9 @@ define([ modalCloseBtn: '[data-role="closeBtn"]', modalContent: '[data-role="content"]', modalAction: '[data-role="action"]', + focusableScope: '[data-role="focusable-scope"]', + focusableStart: '[data-role="focusable-start"]', + focusableEnd: '[data-role="focusable-end"]', appendTo: 'body', wrapperClass: 'modals-wrapper', overlayClass: 'modals-overlay', @@ -66,6 +71,7 @@ define([ buttons: [{ text: $.mage.__('Ok'), class: '', + attr: {}, /** * Default action on button click @@ -75,16 +81,56 @@ define([ } }] }, + previosFocused: null, + keyeventHandlers: { + + /** + * Tab key press handler, + * set focus to elements + */ + tabKey: function () { + if (document.activeElement === this.modal.find(this.options.focusableStart)[0]) { + this._setFocus('start'); + } + + if (document.activeElement === this.modal.find(this.options.focusableScope)[0] && + this.previosFocused === this.modal.find(this.options.modalCloseBtn)[0]) { + this._setFocus('start'); + } + + if (document.activeElement === this.modal.find(this.options.focusableEnd)[0]) { + this._setFocus('end'); + } + + this.previosFocused = document.activeElement; + }, + + /** + * Escape key press handler, + * close modal window + */ + escapeKey: function () { + if (this.options.isOpen && this.modal.find(document.activeElement).length || + this.options.isOpen && this.modal[0] === document.activeElement) { + this.closeModal(); + } + } + }, /** * Creates modal widget. */ _create: function () { + _.bindAll( + this, + 'keyeventSwitcher' + ); + this.options.transitionEvent = transitionEvent; this._createWrapper(); this._renderModal(); this._createButtons(); - + this._createFocusableElements(); $(this.options.trigger).on('click', _.bind(this.toggleModal, this)); this._on(this.modal.find(this.options.modalCloseBtn), { 'click': this.closeModal @@ -95,6 +141,20 @@ define([ }); }, + /** + * Create focusable scope in modal window. + * append to focusable scope element with start + * and element with end position + */ + _createFocusableElements: function() { + var startFocusableTemplate = '<div data-role="focusable-start" tabindex="0"></div>', + endFocusableTemplate = '<div data-role="focusable-end" tabindex="0"></div>', + scopeFocusable = this.modal.find(this.options.focusableScope); + + $(startFocusableTemplate).insertBefore(scopeFocusable); + $(endFocusableTemplate).insertAfter(scopeFocusable); + }, + /** * Returns element from modal node. * @return {Object} - element. @@ -123,6 +183,18 @@ define([ return elems.filter('.' + this.options.modalVisibleClass).length; }, + /** + * Listener key events. + * Call handler function if it exists + */ + keyeventSwitcher: function (event) { + var key = keyCodes[event.keyCode]; + + if (this.keyeventHandlers.hasOwnProperty(key)) { + this.keyeventHandlers[key].apply(this, arguments); + } + }, + /** * Toggle modal. * * @return {Element} - current element. @@ -141,9 +213,12 @@ define([ */ openModal: function () { this.options.isOpen = true; + this.focussedElement = document.activeElement; this._createOverlay(); this._setActive(); + this._setKeyListener(); this.modal.one(this.options.transitionEvent, _.bind(this._trigger, this, 'opened')); + this.modal.one(this.options.transitionEvent, _.bind(this._setFocus, this, 'end', 'opened')); this.modal.addClass(this.options.modalVisibleClass); if (!this.options.transitionEvent) { @@ -153,6 +228,56 @@ define([ return this.element; }, + /** + * Set focus to element. + * @param {string} position - can be "start" and "end" + * positions. + * If position is "end" - sets focus to first + * focusable element in modal window scope. + * If position is "start" - sets focus to last + * focusable element in modal window scope + * + * @param {string} type - can be "opened" or false + * If type is "opened" - looks to "this.options.focus" + * property and sets focus + */ + _setFocus: function (position, type) { + var focusableElements, + infelicity; + + if (type === 'opened' && this.options.focus) { + if (typeof this.options.focus === 'object') { + this.options.focus.focus(); + } else if (this.options.focus !== 'none') { + this.modal.find(this.options.focus).focus(); + } else { + this.modal.find(this.options.focusableScope).focus(); + } + } else { + if (position === 'end') { + this.modal.find(this.options.modalCloseBtn).focus(); + } else if (position === 'start') { + infelicity = 2; //Constant for find last focusable element + focusableElements = this.modal.find(':focusable'); + focusableElements.eq(focusableElements.length - infelicity).focus(); + } + } + }, + + /** + * Set keyup listener when modal is opened. + */ + _setKeyListener: function () { + this.modal.bind('keyup', this.keyeventSwitcher); + }, + + /** + * Remove keyup listener when modal is closed. + */ + _removeKeyListener: function () { + this.modal.unbind('keyup', this.keyeventSwitcher); + }, + /** * Close modal. * * @return {Element} - current element. @@ -160,8 +285,11 @@ define([ closeModal: function () { var that = this; + this._removeKeyListener(); this.options.isOpen = false; + this.previosFocused = null; this.modal.one(this.options.transitionEvent, function () { + $(that.focussedElement).focus(); that._close(); }); this.modal.removeClass(this.options.modalVisibleClass); @@ -246,6 +374,9 @@ define([ _.each(this.options.buttons, function (btn, key) { var button = that.buttons[key]; + if (btn.attr) { + $(button).attr(btn.attr); + } $(button).on('click', _.bind(btn.click, that)); }); }, diff --git a/app/code/Magento/Ui/view/base/web/templates/modal/modal-custom.html b/app/code/Magento/Ui/view/base/web/templates/modal/modal-custom.html index 990630aa02b..11d623f2875 100644 --- a/app/code/Magento/Ui/view/base/web/templates/modal/modal-custom.html +++ b/app/code/Magento/Ui/view/base/web/templates/modal/modal-custom.html @@ -10,7 +10,9 @@ <% if(data.innerScroll){ %><%= data.innerScrollClass %><% } %>" data-role="modal" data-type="<%= data.type %>"> - <div class="modal-inner-wrap"> + <div class="modal-inner-wrap" + data-role="focusable-scope" + tabindex="0"> <header class="modal-header"> <% if(data.title){ %> <h1 class="modal-title" diff --git a/app/code/Magento/Ui/view/base/web/templates/modal/modal-popup.html b/app/code/Magento/Ui/view/base/web/templates/modal/modal-popup.html index 43ac20b2aeb..bd6b33e9cf6 100644 --- a/app/code/Magento/Ui/view/base/web/templates/modal/modal-popup.html +++ b/app/code/Magento/Ui/view/base/web/templates/modal/modal-popup.html @@ -11,7 +11,9 @@ <% if(data.innerScroll){ %><%= data.innerScrollClass %><% } %>" data-role="modal" data-type="<%= data.type %>"> - <div class="modal-inner-wrap"> + <div class="modal-inner-wrap" + data-role="focusable-scope" + tabindex="0"> <header class="modal-header"> <% if(data.title){ %> <h1 class="modal-title" diff --git a/app/code/Magento/Ui/view/base/web/templates/modal/modal-slide.html b/app/code/Magento/Ui/view/base/web/templates/modal/modal-slide.html index abffa457396..58381ad0f98 100644 --- a/app/code/Magento/Ui/view/base/web/templates/modal/modal-slide.html +++ b/app/code/Magento/Ui/view/base/web/templates/modal/modal-slide.html @@ -10,7 +10,9 @@ <% if(data.innerScroll){ %><%= data.innerScrollClass %><% } %>" data-role="modal" data-type="<%= data.type %>"> - <div class="modal-inner-wrap"> + <div class="modal-inner-wrap" + data-role="focusable-scope" + tabindex="0"> <header class="modal-header"> <% if(data.title){ %> <h1 class="modal-title" -- GitLab From d520b2cd6bf5b88d715a321bba68cee920aa3f96 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Mon, 21 Sep 2015 13:56:07 +0300 Subject: [PATCH 093/420] MAGETWO-43091: Failed on Configurable with ColorSwatches --- .../view/frontend/web/js/configurable.js | 2 + .../view/frontend/web/js/SwatchRenderer.js | 47 ++++++++++++------- 2 files changed, 33 insertions(+), 16 deletions(-) diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js b/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js index 7baf45232b8..97c667e56cf 100644 --- a/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js +++ b/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js @@ -429,6 +429,8 @@ define([ * @returns {String|undefined} */ _getSimpleProductId: function (element) { + // TODO: Rewrite algorithm. It should return ID of + // simple product based on selected options. var allOptions = element.config.options, value = element.value, config; diff --git a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js index c6feb68cd62..dfc5ef1fa64 100644 --- a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js +++ b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js @@ -694,7 +694,8 @@ define(["jquery", "jquery/ui"], function ($) { * @private */ _ProductMediaCallback: function ($this, response) { - var $main = ($('body.catalog-product-view').size() > 0) + var isProductViewExist = $('body.catalog-product-view').size() > 0, + $main = isProductViewExist ? $this.parents('.column.main') : $this.parents('.product-item-info'), $widget = this, @@ -703,24 +704,38 @@ define(["jquery", "jquery/ui"], function ($) { return e.hasOwnProperty('large') && e.hasOwnProperty('medium') && e.hasOwnProperty('small'); }; - if ($widget._ObjectLength(response) > 0) { - if (support(response)) { - images.push({large: response.large, medium: response.medium, small: response.small}); - if (response.hasOwnProperty('gallery')) { - $.each(response.gallery, function () { - if (!support(this) || response.large == this.large) { - return; - } - images.push({large: this.large, medium: this.medium, small: this.small}); + if ($widget._ObjectLength(response) < 1) { + return; + } + + if (support(response)) { + images.push({ + large: response.large, + img: response.medium, + thumb: response.small + }); + + if (response.hasOwnProperty('gallery')) { + $.each(response.gallery, function () { + if (!support(this) || response.large == this.large) { + return; + } + images.push({ + large: this.large, + img: this.medium, + thumb: this.small }); - } + }); } + } - if ($('body.catalog-product-view').size() > 0) { - $main.find('[data-role=media-gallery]').gallery('option', 'images', images); - } else { - $main.find('.product-image-photo').attr('src', images.shift().medium); - } + if (isProductViewExist) { + $main + .find('[data-gallery-role=gallery-placeholder]') + .data('gallery') + .updateData(images); + } else { + $main.find('.product-image-photo').attr('src', images.shift().medium); } }, -- GitLab From 045739167131c0de5870b02293f5b6a1f3ba3f67 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Mon, 21 Sep 2015 17:13:45 +0300 Subject: [PATCH 094/420] JS-192: Enhanced thumbnails support in configuration/theme --- .../templates/product/view/gallery.phtml | 6 ++- .../frontend/Magento/blank/etc/view.xml | 5 ++- app/design/frontend/Magento/luma/etc/view.xml | 2 + lib/web/fotorama/fotorama.js | 41 ++++++++----------- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 8767701ea37..f8987a2265e 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -41,7 +41,8 @@ "height": <?php echo $block->getImageAttribute('product_page_image_medium', 'height') ?: $block->getImageAttribute('product_page_image_medium', 'width'); ?>, "transitionduration": <?php echo $block->getVar("gallery:transition:duration"); ?>, - "transition": "<?php echo $block->getVar("gallery:transition:effect"); ?>" + "transition": "<?php echo $block->getVar("gallery:transition:effect"); ?>", + "carouselNavigation": <?php echo $block->getVar("gallery:navigation:carousel"); ?> }, "fullscreen": { "nav": "<?php echo $block->getVar("gallery:fullscreen:navigation"); ?>", @@ -53,7 +54,8 @@ "thumbheight": <?php echo $block->getVar("gallery:fullscreen:thumbheight") ?: $block->getVar("gallery:fullscreen:thumbwidth"); ?>, "transitionduration": <?php echo $block->getVar("gallery:fullscreen:transition:duration"); ?>, - "transition": "<?php echo $block->getVar("gallery:fullscreen:transition:effect"); ?>" + "transition": "<?php echo $block->getVar("gallery:fullscreen:transition:effect"); ?>", + "carouselNavigation": <?php echo $block->getVar("gallery:fullscreen:navigation:carousel"); ?> }, "breakpoints": { "mobile": { diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 6cd076e51d2..fe2d06fcdbc 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -186,20 +186,23 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> - <var name="gallery:navdir">horizontal</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> + <var name="gallery:navdir">vertical</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="gallery:navigation:carousel">false</var> <!-- Display navigation thumbs as carousel (true/false) --> <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="gallery:fullscreen:loop">false</var> <!-- Fullscreen navigation loop (true/false) --> <var name="gallery:fullscreen:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="gallery:fullscreen:arrows">null</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> <var name="gallery:fullscreen:caption">null</var> <!-- Display alt text as image title (true/false/null) --> + <var name="gallery:fullscreen:navdir">vertical</var> <!--Sliding direction of thumbnails in full screen(horizontal/vertical) --> <var name="gallery:fullscreen:navdir">horizontal</var> <!--Sliding direction of thumbnails in fullscreen(horizontal/vertical) --> <var name="gallery:fullscreen:thumbwidth">100</var> <!-- Width of thumbnails in fullscreen --> <var name="gallery:fullscreen:thumbheight">100</var> <!-- Height of thumbnails in fullscreen --> <var name="gallery:fullscreen:transition:effect">crossfade</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="gallery:fullscreen:navigation:carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> <var name="magnifier:fullscreenzoom">20</var> <!-- Zoom for fullscreen --> <var name="magnifier:top"></var> <!-- Top position of magnifier --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index 354455eaefc..7c0bd016c0e 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -193,6 +193,7 @@ <var name="gallery:navdir">horizontal</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="gallery:navigation:carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="gallery:fullscreen:loop">true</var> <!-- Fullscreen navigation loop (true/false/null) --> @@ -204,6 +205,7 @@ <var name="gallery:fullscreen:thumbheight">150</var> <!-- Height of thumbnails in fullscreen --> <var name="gallery:fullscreen:transition:effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="gallery:fullscreen:navigation:carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> <var name="magnifier:fullscreenzoom">5</var> <!-- Zoom for fullscreen (integer)--> <var name="magnifier:top"></var> <!-- Top position of magnifier --> diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 6f6e5b71371..8e9864d67f2 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -964,7 +964,7 @@ fotoramaVersion = '4.6.4'; thumbheight: THUMB_SIZE, thumbmargin: MARGIN, thumbborderwidth: MARGIN, - areSlides: true, + carouselnavigation: true, allowfullscreen: false, // true || 'native' @@ -1608,28 +1608,18 @@ fotoramaVersion = '4.6.4'; if (CSS3) { - if (!options.thumb || !OPTIONS.areSlides) { - + if (!options.thumb || !options.thumb.areSlides) { $el.css($.extend(getDuration(options.time), translate)); } else { - if ($el.selector !== '.fotorama__nav-wrap .fotorama__nav .fotorama__nav__shaft') { $el.css($.extend(getDuration(options.time), translate)); if ($el.selector === ".fotorama__thumb-border") { var slideLength = 4, - borderStep, + borderStep = options.thumb.margin, slidePosition; - if (options.navdir === 'vertical') { - borderStep = options.thumb.height + options.thumb.margin; - slideLength = 4; - $('.fotorama__nav--thumbs').css('height', borderStep * slideLength); - } else { - borderStep = options.thumb.width + options.thumb.margin; - slideLength = 4; - $('.fotorama__nav--thumbs').css('width', borderStep * slideLength); - } + borderStep += options.navdir === 'vertical' ? options.thumb.height : options.thumb.width; if (((borderPos < options.pos) || (options.pos === 0)) && ((borderPos !== 0) || (options.pos <= borderStep))) { @@ -1662,14 +1652,18 @@ fotoramaVersion = '4.6.4'; } else { $el.stop().animate(translate, options.time, BEZIER, onEndFn); options.measures.nw = -slidePosition + borderStep * (slideLength - 1); - $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate1)); + $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate)); } } function shiftSlide(slidePosition, options, borderStep, slideLength) { - var translate1 = $.extend(getTranslate(slidePosition, options.direction), options.width && {width: options.width}, options.height && {height: options.height}); - options.measures.nw = -slidePosition + borderStep * (slideLength - 1); - $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate1)); + var translate = $.extend(getTranslate(slidePosition, options.direction), options.width && {width: options.width}, options.height && {height: options.height}); + if (options.direction === 'vertical') { + options.measures.h = -slidePosition + borderStep * (slideLength - 1); + } else { + options.measures.nw = -slidePosition + borderStep * (slideLength - 1); + } + $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate)); } function fade($el1, $el2, $frames, options, fadeStack, chain) { @@ -2805,6 +2799,7 @@ fotoramaVersion = '4.6.4'; addNavFrameEvents(frame); frameData.$wrap = $frame.children(':first'); + $navThumbFrame = $navThumbFrame.add($frame); if (dataFrame.video) { frameData.$wrap.append($videoPlay.clone()); @@ -3001,7 +2996,7 @@ fotoramaVersion = '4.6.4'; width: opts.thumbwidth, height: opts.thumbheight, margin: opts.thumbmargin, - areSlides: opts.areSlides, + areSlides: opts.carouselnavigation, measures: measures }, measures: measures @@ -3018,7 +3013,6 @@ fotoramaVersion = '4.6.4'; l = (opts.navdir === 'vertical' ? boundTop : boundLeft), pos = overflowFLAG && minMaxLimit(l, navShaftTouchTail.min, navShaftTouchTail.max), time = options.time * 1.1; - slide($navShaft, { time: time, pos: pos || 0, @@ -3030,7 +3024,7 @@ fotoramaVersion = '4.6.4'; width: opts.thumbwidth, height: opts.thumbheight, margin: opts.thumbmargin, - areSlides: opts.areSlides, + areSlides: opts.carouselnavigation, measures: measures } }); @@ -3737,8 +3731,7 @@ fotoramaVersion = '4.6.4'; var target = result.$target.closest('.' + navFrameClass, $navShaft)[0]; target && onNavFrameClick.call(target, result.startEvent); } else if (result.pos !== result.newPos) { - pausedAutoplayFLAG = true; - slide($navShaft, { + pausedAutoplayFLAG = true; slide($navShaft, { time: result.time, pos: result.newPos, overPos: result.overPos, @@ -3748,7 +3741,7 @@ fotoramaVersion = '4.6.4'; width: opts.thumbwidth, height: opts.thumbheight, margin: opts.thumbmargin, - areSlides: opts.areSlides, + areSlides: opts.carouselnavigation, measures: measures } }); -- GitLab From 0e96d86cb18b6e9ba259de361dd53fc10cae7358 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Mon, 21 Sep 2015 17:46:33 +0300 Subject: [PATCH 095/420] MAGETWO-43132: Gallery missed placeholder image --- .../Catalog/Block/Product/View/Gallery.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/code/Magento/Catalog/Block/Product/View/Gallery.php b/app/code/Magento/Catalog/Block/Product/View/Gallery.php index 4be631e6182..dc8d204e76c 100644 --- a/app/code/Magento/Catalog/Block/Product/View/Gallery.php +++ b/app/code/Magento/Catalog/Block/Product/View/Gallery.php @@ -16,6 +16,11 @@ use Magento\Framework\Json\EncoderInterface; class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView { + /** + * @var \Magento\Framework\View\Asset\Repository + */ + protected $_assetRepo; + /** * @var \Magento\Framework\Config\View */ @@ -29,11 +34,13 @@ class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView public function __construct( \Magento\Catalog\Block\Product\Context $context, \Magento\Framework\Stdlib\ArrayUtils $arrayUtils, + \Magento\Framework\View\Asset\Repository $assetRepo, EncoderInterface $jsonEncoder, array $data = [] ) { $this->jsonEncoder = $jsonEncoder; + $this->_assetRepo = $assetRepo; parent::__construct($context, $arrayUtils, $data); } @@ -111,6 +118,16 @@ class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView 'isMain' => $this->isMainImage($image), ]; } + if(empty($imagesItems)) { + $imagesItems[] = [ + 'thumb' => $this->_assetRepo->getUrl('Magento_Catalog::images/product/placeholder/small_image.jpg'), + 'img' => $this->_assetRepo->getUrl('Magento_Catalog::images/product/placeholder/image.jpg'), + 'original' => $this->_assetRepo->getUrl('Magento_Catalog::images/product/placeholder/image.jpg'), + 'caption' => '', + 'position' => '0', + 'isMain' => true, + ]; + } return json_encode($imagesItems); } -- GitLab From 1501ecba4b77b44fd48b173f5648c003a7681431 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Mon, 21 Sep 2015 17:48:31 +0300 Subject: [PATCH 096/420] MAGETWO-42991: Fix unit tests --- .../Magento/Ui/base/js/modal/alert.test.js | 27 +++++++++++++++++++ .../Magento/Ui/base/js/modal/confirm.test.js | 27 +++++++++++++++++++ .../Magento/Ui/base/js/modal/modal.test.js | 7 +++-- 3 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/alert.test.js create mode 100644 dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/confirm.test.js diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/alert.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/alert.test.js new file mode 100644 index 00000000000..d5f32f1e3b3 --- /dev/null +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/alert.test.js @@ -0,0 +1,27 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +define([ + 'jquery', + 'Magento_Ui/js/modal/alert' +], function ($) { + 'use strict'; + + describe('ui/js/modal/alert', function () { + var element = $('<div>some element</div>'), + alert = element.alert({}); + + it('Check for modal definition', function () { + expect(alert).toBeDefined(); + }); + it('Show/hide function check', function () { + expect(element.trigger('openModal')).toBe(element); + expect(element.trigger('closeModal')).toBe(element); + }); + it('Integration: modal created on page', function(){ + expect(alert.length).toEqual(1); + }); + }); +}); diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/confirm.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/confirm.test.js new file mode 100644 index 00000000000..866bd215a45 --- /dev/null +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/confirm.test.js @@ -0,0 +1,27 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +define([ + 'jquery', + 'Magento_Ui/js/modal/confirm' +], function ($) { + 'use strict'; + + describe('ui/js/modal/confirm', function () { + var element = $('<div>some element</div>'), + confirm = element.confirm({}); + + it('Check for modal definition', function () { + expect(confirm).toBeDefined(); + }); + it('Show/hide function check', function () { + expect(element.trigger('openModal')).toBe(element); + expect(element.trigger('closeModal')).toBe(element); + }); + it('Integration: modal created on page', function(){ + expect(confirm.length).toEqual(1); + }); + }); +}); diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/modal.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/modal.test.js index 2b1496d56e2..ee0c8d2894f 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/modal.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/modal.test.js @@ -17,8 +17,11 @@ define([ expect(modal).toBeDefined(); }); it('Show/hide function check', function () { - expect(element.trigger('openDialog')).toBe(element); - expect(element.trigger('closeDialog')).toBe(element); + expect(element.trigger('openModal')).toBe(element); + expect(element.trigger('closeModal')).toBe(element); + }); + it('Integration: modal created on page', function(){ + expect($(modal).length).toEqual(1); }); }); }); -- GitLab From 0facb917a65f4562045c3e069513eccbae0904a6 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Tue, 22 Sep 2015 10:27:35 +0300 Subject: [PATCH 097/420] MAGETWO-42991: Fix unit tests --- .../Magento/Ui/base/js/modal/prompt.test.js | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/prompt.test.js diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/prompt.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/prompt.test.js new file mode 100644 index 00000000000..e2783b2e49d --- /dev/null +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/prompt.test.js @@ -0,0 +1,27 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +define([ + 'jquery', + 'Magento_Ui/js/modal/prompt' +], function ($) { + 'use strict'; + + describe('ui/js/modal/prompt', function () { + var element = $('<div>some element</div>'), + prompt = element.prompt({}); + + it('Check for modal definition', function () { + expect(prompt).toBeDefined(); + }); + it('Show/hide function check', function () { + expect(element.trigger('openModal')).toBe(element); + expect(element.trigger('closeModal')).toBe(element); + }); + it('Integration: modal created on page', function(){ + expect(prompt.length).toEqual(1); + }); + }); +}); -- GitLab From b3ab9150db878aa3b8f4da8edf447ba1a082d138 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Tue, 22 Sep 2015 12:12:49 +0300 Subject: [PATCH 098/420] JS-203: Video container class add --- lib/web/fotorama/fotorama.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 8e9864d67f2..a075d11174c 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -79,6 +79,7 @@ fotoramaVersion = '4.6.4'; htmlClass = _fotoramaClass + '__html', + videoContainerClass = _fotoramaClass + '-video-container', videoClass = _fotoramaClass + '__video', videoPlayClass = videoClass + '-play', videoCloseClass = videoClass + '-close', @@ -2642,7 +2643,7 @@ fotoramaVersion = '4.6.4'; .addClass(imgClass + (fullFLAG ? ' ' + imgFullClass : '')) .prependTo($frame); - if ($frame.hasClass(stageFrameClass)) { + if ($frame.hasClass(stageFrameClass) && !$frame.hasClass(videoContainerClass)) { $frame.attr("href", $img.attr("src")); } -- GitLab From ef3b517dca190f3bfae697443d1da91b3ea486c6 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Tue, 22 Sep 2015 13:22:06 +0300 Subject: [PATCH 099/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- lib/web/mage/adminhtml/backup.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/web/mage/adminhtml/backup.js b/lib/web/mage/adminhtml/backup.js index b37d9731076..9a820297fdd 100644 --- a/lib/web/mage/adminhtml/backup.js +++ b/lib/web/mage/adminhtml/backup.js @@ -220,6 +220,7 @@ define([ this.modal = jQuery('<div/>').html(this.backupConfig[divId].content()).modal({ modalClass: 'magento', title: this.backupConfig[divId].title, + type: 'slide', closed: function(e, modal){ modal.modal.remove(); }, -- GitLab From 981e3fde688dcbbc0a8eaa8af120a726d6b5ad0d Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Tue, 22 Sep 2015 13:39:07 +0300 Subject: [PATCH 100/420] MAGETWO-43133: Create custom prompt widget --- app/code/Magento/Ui/view/base/web/js/modal/prompt.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js index 5013730502b..3a5463172e1 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js @@ -47,8 +47,6 @@ define([ closeModal: function(result) { var value; - result = result || false; - if (result) { value = this.modal.find(this.options.promptField).val(); this.options.actions.confirm(value); -- GitLab From 599898a54fc38bb9a2c7b66ea31c6e745522327c Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Tue, 22 Sep 2015 20:25:28 +0300 Subject: [PATCH 101/420] JS-187: Implement drag event --- .../frontend/Magento/blank/etc/view.xml | 4 +- lib/web/fotorama/fotorama.js | 113 ++++++++++++++---- 2 files changed, 89 insertions(+), 28 deletions(-) diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index fe2d06fcdbc..40f9cd12af4 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -186,10 +186,10 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> - <var name="gallery:navdir">vertical</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> + <var name="gallery:navdir">horizontal</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> - <var name="gallery:navigation:carousel">false</var> <!-- Display navigation thumbs as carousel (true/false) --> + <var name="gallery:navigation:carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="gallery:fullscreen:loop">false</var> <!-- Fullscreen navigation loop (true/false) --> diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index a075d11174c..bce922827ea 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -43,6 +43,7 @@ fotoramaVersion = '4.6.4'; navDotsClass = navClass + '--dots', navThumbsClass = navClass + '--thumbs', navFrameClass = navClass + '__frame', + navFrameThumbClass = navFrameClass + '--thumb', fadeClass = _fotoramaClass + '__fade', fadeFrontClass = fadeClass + '-front', @@ -1616,6 +1617,7 @@ fotoramaVersion = '4.6.4'; $el.css($.extend(getDuration(options.time), translate)); if ($el.selector === ".fotorama__thumb-border") { + var slideLength = 4, borderStep = options.thumb.margin, slidePosition; @@ -1652,7 +1654,7 @@ fotoramaVersion = '4.6.4'; } } else { $el.stop().animate(translate, options.time, BEZIER, onEndFn); - options.measures.nw = -slidePosition + borderStep * (slideLength - 1); + options.measures.nw = -slidePosition + borderStep * (slideLength - 1); $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate)); } } @@ -1888,7 +1890,7 @@ fotoramaVersion = '4.6.4'; min, max, snap, - dir = options.direction || 'horizontal', + dir, slowFLAG, controlFLAG, moved, @@ -1899,7 +1901,6 @@ fotoramaVersion = '4.6.4'; startCoo = coo = (dir === 'vertical') ? e._y : e._x; startTime = e._now; - moveTrack = [ [startTime, startCoo] ]; @@ -1913,8 +1914,8 @@ fotoramaVersion = '4.6.4'; min = tail.min; max = tail.max; snap = tail.snap, - dir = tail.direction||'horizontal', - $el.navdir = dir; + dir = tail.direction || 'horizontal', + $el.navdir = dir; slowFLAG = e.altKey; tracked = moved = false; @@ -1939,10 +1940,12 @@ fotoramaVersion = '4.6.4'; edge = findShadowEdge(moveElPos, min, max, dir); - if (moveElPos <= min) { - moveElPos = edgeResistance(moveElPos, min); - } else if (moveElPos >= max) { - moveElPos = edgeResistance(moveElPos, max); + if (!options.carouselnavigation) { + if (moveElPos <= min) { + moveElPos = edgeResistance(moveElPos, min); + } else if (moveElPos >= max) { + moveElPos = edgeResistance(moveElPos, max); + } } if (!tail.noMove) { @@ -2034,6 +2037,7 @@ fotoramaVersion = '4.6.4'; moved: result.moved || longTouchFLAG && snap, pos: moveElPos, newPos: newPos, + cooDiff: (startCoo - coo), overPos: overPos, time: time, dir:dir @@ -2150,6 +2154,7 @@ fotoramaVersion = '4.6.4'; nextIndex, nextAutoplayIndex, startIndex, + slidesNumb, o_loop, o_nav, @@ -2522,10 +2527,12 @@ fotoramaVersion = '4.6.4'; } function setNavShaftMinMax() { - - var isVerticalDir = (opts.navdir === 'vertical'); - var param = isVerticalDir ? $navShaft.height() : $navShaft.width(); - var mainParam = isVerticalDir ? measures.h : measures.nw; + var isVerticalDir = (opts.navdir === 'vertical'), + measureToCalculate = opts.thumbmargin + $('.' + navFrameThumbClass).length * ( + isVerticalDir ? opts.thumbheight : opts.thumbwidth + opts.thumbmargin), + param = (opts.carouselnavigation ? measureToCalculate : + isVerticalDir ? $navShaft.height(): $navShaft.width()), + mainParam = isVerticalDir ? measures.h : measures.nw; navShaftTouchTail.min = Math.min(0, mainParam - param); navShaftTouchTail.max = 0; navShaftTouchTail.direction = opts.navdir; @@ -3184,7 +3191,7 @@ fotoramaVersion = '4.6.4'; index --; var borderStep = opts.navdir === 'vertical' ? opts.thumbheight + opts.thumbmargin : - borderStep = opts.thumbwidth + opts.thumbmargin, + opts.thumbwidth + opts.thumbmargin, slideLength = 4, options = { time: opts.transitionduration, @@ -3459,6 +3466,8 @@ fotoramaVersion = '4.6.4'; height = height || (ratio && width / ratio); + slidesNumb = Math.floor($wrap.width()/opts.thumbwidth); + if (height) { width = Math.round(width); height = measures.h = Math.round(minMaxLimit(height, numberFromWhatever(measures.minheight, windowHeight), numberFromWhatever(measures.maxheight, windowHeight))); @@ -3712,6 +3721,57 @@ fotoramaVersion = '4.6.4'; direction: 'horizontal' }); + function slideDrag (pos, newPos,cooDiff) { + console.log(pos, newPos); + if (opts.carouselnavigation) { + var borderStep = opts.navdir === 'vertical' ? + opts.thumbheight + opts.thumbmargin : + opts.thumbwidth + opts.thumbmargin, + slidePosition, + options = { + time: opts.transitionduration, + direction: opts.navdir, + width: activeFrame[navFrameKey].data().w, + height: activeFrame[navFrameKey].data().h, + measures: measures + }; + + if (newPos !== 0 && pos < 0) { + if(pos >= newPos) { + console.log('>>') + if (pos < navShaftTouchTail.min) { + slidePosition = newPos + (-Math.ceil(newPos % (borderStep * slidesNumb))); + shiftSlide(slidePosition, options, borderStep, slidesNumb); + } else { + slidePosition = newPos - (borderStep * slidesNumb + Math.round(newPos % (borderStep * slidesNumb) - 1)); + shiftSlide(slidePosition, options, borderStep, slidesNumb); + } + } else { + console.log('<<') + if (pos < navShaftTouchTail.min) { + if(cooDiff < 0) { + slidePosition = newPos + (-Math.ceil(newPos % (borderStep * slidesNumb))); + shiftSlide(slidePosition, options, borderStep, slidesNumb); + } else { + slidePosition = newPos - (borderStep * slidesNumb + Math.round(newPos % (borderStep * slidesNumb)- 1)); + shiftSlide(slidePosition, options, borderStep, slidesNumb); + } + + } else { + slidePosition = newPos + (-Math.ceil(newPos % (borderStep * slidesNumb))); + shiftSlide(slidePosition, options, borderStep, slidesNumb); + } + } + } + + if (newPos === 0) { + console.log('dont move') + slidePosition = borderStep * ((newPos/ borderStep + 1) % slidesNumb - 1) - newPos; + shiftSlide(slidePosition, options, borderStep, slidesNumb); + } + } + slideDrag.slidePosition = slidePosition; + } navShaftTouchTail = moveOnTouch($navShaft, { onStart: onTouchStart, @@ -3722,7 +3782,7 @@ fotoramaVersion = '4.6.4'; onEnd: function (result) { function onEnd() { - slideNavShaft.l = result.newPos; + slideNavShaft.l = opts.carouselnavigation ? slideDrag.slidePosition : result.newPos; releaseAutoplay(); changeAutoplay(); thumbsDraw(result.newPos, true); @@ -3732,23 +3792,23 @@ fotoramaVersion = '4.6.4'; var target = result.$target.closest('.' + navFrameClass, $navShaft)[0]; target && onNavFrameClick.call(target, result.startEvent); } else if (result.pos !== result.newPos) { - pausedAutoplayFLAG = true; slide($navShaft, { + console.log('catch'); + opts.carouselnavigation && slideDrag(result.pos, result.newPos,result.cooDiff); + pausedAutoplayFLAG = true; + !opts.carouselnavigation && slide($navShaft, { time: result.time, pos: result.newPos, overPos: result.overPos, direction: opts.navdir, - onEnd: onEnd, - thumb: { - width: opts.thumbwidth, - height: opts.thumbheight, - margin: opts.thumbmargin, - areSlides: opts.carouselnavigation, - measures: measures - } + onEnd: onEnd }); - thumbsDraw(result.newPos); + + thumbsDraw(opts.carouselnavigation ? slideDrag.slidePosition : result.newPos, true); o_shadows && setShadow($nav, findShadowEdge(result.newPos, navShaftTouchTail.min, navShaftTouchTail.max, result.dir)); + } else { + console.log('else worked'); + opts.carouselnavigation &&slideDrag(result.pos, result.newPos,result.cooDiff); onEnd(); } }, @@ -3756,7 +3816,8 @@ fotoramaVersion = '4.6.4'; timeHigh: 2, friction: 5, $wrap: $nav, - direction: opts.navdir + direction: opts.navdir, + carouselnavigation: opts.carouselnavigation }); stageWheelTail = wheel($stage, { -- GitLab From 9aa88eb7dc1024d6b453bef6e7e9b2f4c1a89bb6 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Wed, 23 Sep 2015 09:25:13 +0300 Subject: [PATCH 102/420] MAGETWO-42989: Implementation --- .../Ui/view/base/web/js/modal/modal.js | 31 +++++-------------- .../web/templates/modal/modal-custom.html | 2 ++ .../base/web/templates/modal/modal-popup.html | 2 ++ .../base/web/templates/modal/modal-slide.html | 2 ++ 4 files changed, 14 insertions(+), 23 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/modal/modal.js b/app/code/Magento/Ui/view/base/web/js/modal/modal.js index 51bbb74abd6..575eb78a44d 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/modal.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/modal.js @@ -82,7 +82,7 @@ define([ }] }, previosFocused: null, - keyeventHandlers: { + keyEventHandlers: { /** * Tab key press handler, @@ -123,14 +123,13 @@ define([ _create: function () { _.bindAll( this, - 'keyeventSwitcher' + 'keyEventSwitcher' ); this.options.transitionEvent = transitionEvent; this._createWrapper(); this._renderModal(); this._createButtons(); - this._createFocusableElements(); $(this.options.trigger).on('click', _.bind(this.toggleModal, this)); this._on(this.modal.find(this.options.modalCloseBtn), { 'click': this.closeModal @@ -141,20 +140,6 @@ define([ }); }, - /** - * Create focusable scope in modal window. - * append to focusable scope element with start - * and element with end position - */ - _createFocusableElements: function() { - var startFocusableTemplate = '<div data-role="focusable-start" tabindex="0"></div>', - endFocusableTemplate = '<div data-role="focusable-end" tabindex="0"></div>', - scopeFocusable = this.modal.find(this.options.focusableScope); - - $(startFocusableTemplate).insertBefore(scopeFocusable); - $(endFocusableTemplate).insertAfter(scopeFocusable); - }, - /** * Returns element from modal node. * @return {Object} - element. @@ -187,11 +172,11 @@ define([ * Listener key events. * Call handler function if it exists */ - keyeventSwitcher: function (event) { + keyEventSwitcher: function (event) { var key = keyCodes[event.keyCode]; - if (this.keyeventHandlers.hasOwnProperty(key)) { - this.keyeventHandlers[key].apply(this, arguments); + if (this.keyEventHandlers.hasOwnProperty(key)) { + this.keyEventHandlers[key].apply(this, arguments); } }, @@ -268,14 +253,14 @@ define([ * Set keyup listener when modal is opened. */ _setKeyListener: function () { - this.modal.bind('keyup', this.keyeventSwitcher); + this.modal.bind('keyup', this.keyEventSwitcher); }, /** * Remove keyup listener when modal is closed. */ _removeKeyListener: function () { - this.modal.unbind('keyup', this.keyeventSwitcher); + this.modal.unbind('keyup', this.keyEventSwitcher); }, /** @@ -289,7 +274,6 @@ define([ this.options.isOpen = false; this.previosFocused = null; this.modal.one(this.options.transitionEvent, function () { - $(that.focussedElement).focus(); that._close(); }); this.modal.removeClass(this.options.modalVisibleClass); @@ -307,6 +291,7 @@ define([ _close: function () { var trigger = _.bind(this._trigger, this, 'closed', this.modal); + $(that.focussedElement).focus(); this._destroyOverlay(); this._unsetActive(); _.defer(trigger, this); diff --git a/app/code/Magento/Ui/view/base/web/templates/modal/modal-custom.html b/app/code/Magento/Ui/view/base/web/templates/modal/modal-custom.html index 11d623f2875..3d83df47319 100644 --- a/app/code/Magento/Ui/view/base/web/templates/modal/modal-custom.html +++ b/app/code/Magento/Ui/view/base/web/templates/modal/modal-custom.html @@ -10,6 +10,7 @@ <% if(data.innerScroll){ %><%= data.innerScrollClass %><% } %>" data-role="modal" data-type="<%= data.type %>"> + <div data-role="focusable-start" tabindex="0"></div> <div class="modal-inner-wrap" data-role="focusable-scope" tabindex="0"> @@ -37,4 +38,5 @@ </footer> <% } %> </div> + <div data-role="focusable-end" tabindex="0"></div> </aside> diff --git a/app/code/Magento/Ui/view/base/web/templates/modal/modal-popup.html b/app/code/Magento/Ui/view/base/web/templates/modal/modal-popup.html index bd6b33e9cf6..52cf0807531 100644 --- a/app/code/Magento/Ui/view/base/web/templates/modal/modal-popup.html +++ b/app/code/Magento/Ui/view/base/web/templates/modal/modal-popup.html @@ -11,6 +11,7 @@ <% if(data.innerScroll){ %><%= data.innerScrollClass %><% } %>" data-role="modal" data-type="<%= data.type %>"> + <div data-role="focusable-start" tabindex="0"></div> <div class="modal-inner-wrap" data-role="focusable-scope" tabindex="0"> @@ -40,4 +41,5 @@ </footer> <% } %> </div> + <div data-role="focusable-end" tabindex="0"></div> </aside> diff --git a/app/code/Magento/Ui/view/base/web/templates/modal/modal-slide.html b/app/code/Magento/Ui/view/base/web/templates/modal/modal-slide.html index 58381ad0f98..42d8ae63a92 100644 --- a/app/code/Magento/Ui/view/base/web/templates/modal/modal-slide.html +++ b/app/code/Magento/Ui/view/base/web/templates/modal/modal-slide.html @@ -10,6 +10,7 @@ <% if(data.innerScroll){ %><%= data.innerScrollClass %><% } %>" data-role="modal" data-type="<%= data.type %>"> + <div data-role="focusable-start" tabindex="0"></div> <div class="modal-inner-wrap" data-role="focusable-scope" tabindex="0"> @@ -42,4 +43,5 @@ </header> <div class="modal-content" data-role="content"></div> </div> + <div data-role="focusable-end" tabindex="0"></div> </aside> -- GitLab From dcab46a2f46a308aaa4eb641bebc8eb43b810e95 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Wed, 23 Sep 2015 10:03:56 +0300 Subject: [PATCH 103/420] MAGETWO-42989: Implementation --- app/code/Magento/Ui/view/base/web/js/modal/modal.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Ui/view/base/web/js/modal/modal.js b/app/code/Magento/Ui/view/base/web/js/modal/modal.js index 575eb78a44d..6c868ae782c 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/modal.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/modal.js @@ -291,7 +291,7 @@ define([ _close: function () { var trigger = _.bind(this._trigger, this, 'closed', this.modal); - $(that.focussedElement).focus(); + $(this.focussedElement).focus(); this._destroyOverlay(); this._unsetActive(); _.defer(trigger, this); -- GitLab From e195ffb658b9a1a08c8d512eb2ebd50152af5ea7 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Wed, 23 Sep 2015 11:20:13 +0300 Subject: [PATCH 104/420] MAGETWO-42995: Stabilize functional tests --- .../view/adminhtml/templates/catalog/category/tree.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml index ad7979e4870..791e4dbd96b 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml @@ -383,7 +383,7 @@ store_id: <?php /* @escapeNotVerified */ echo (int)$block->getStore()->getId() ?>, category_id: <?php /* @escapeNotVerified */ echo (int)$block->getCategoryId() ?> }, - data: <?php echo $block->getTreeJson() ?> + data: <?php /* @escapeNotVerified */ echo $block->getTreeJson() ?> }; reRenderTree(); -- GitLab From 85e6843333496fb64544f5c35a4627c1ca1b2eab Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Mon, 7 Sep 2015 16:04:54 +0300 Subject: [PATCH 105/420] JS-153: Magnifier preview must be hidden, while start swiping or dragging --- lib/web/mage/gallery/gallery.html | 4 ++-- lib/web/magnifier/magnify.js | 40 +++++++++++++++++++++++++++---- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/lib/web/mage/gallery/gallery.html b/lib/web/mage/gallery/gallery.html index 6a9a3cfbe3c..69a196d86c6 100644 --- a/lib/web/mage/gallery/gallery.html +++ b/lib/web/mage/gallery/gallery.html @@ -8,13 +8,13 @@ <div class="fotorama__wrap fotorama__wrap--css3 fotorama__wrap--slide fotorama__wrap--toggle-arrows"> <div class="fotorama__stage"> <div class="fotorama__arr fotorama__arr--prev" tabindex="0" role="button" aria-label="Previos"> - <div class="fotorama__arr__arr"></div> + <div class="fotorama__arr__arr" data-gallery-role="arrow"></div> </div> <div class="fotorama__stage__shaft" tabindex="0" data-gallery-role="stage-shaft"> </div> <div class="fotorama__arr fotorama__arr--next fotorama__arr--disabled" tabindex="-1" role="button" aria-label="Next"> - <div class="fotorama__arr__arr"></div> + <div class="fotorama__arr__arr" data-gallery-role="arrow"></div> </div> <div class="fotorama__video-close"></div> </div> diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index a30a827aabd..146c014b444 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -13,7 +13,9 @@ define([ var isTouchEnabled = 'ontouchstart' in document.documentElement, gallerySelector = '[data-gallery-role="gallery"]', magnifierSelector = '[data-gallery-role="magnifier"]', - magnifierZoomSelector = '[data-gallery-role="magnifier-zoom"]'; + magnifierZoomSelector = '[data-gallery-role="magnifier-zoom"]', + hideMagnifier, + behaveOnHover; if (isTouchEnabled) { $(element).on('fotorama:showend fotorama:load', function () { @@ -23,8 +25,38 @@ define([ return config; } + /** + * Hides magnifier preview and zoom blocks. + */ + hideMagnifier = function () { + $(magnifierSelector).empty().hide(); + $(magnifierZoomSelector).remove(); + }; + + /** + * Hides magnifier on drag and while arrow click. + */ + behaveOnHover = function (e, initPos) { + var pos = [e.pageX, e.pageY], + isArrow = $(e.target).data('gallery-role') === 'arrow', + isClick = initPos[0] === pos[0] && initPos[1] === pos[1]; + if (isArrow || !isClick) { + hideMagnifier(); + } + }; + if (config.magnifierOpts.eventType === 'click') { config.options.swipe = false; + } else if (config.magnifierOpts.eventType === 'hover') { + $(element).on('pointerdown mousedown MSPointerDown', function (e) { + var pos = [e.pageX, e.pageY]; + $(element).on('mousemove pointermove MSPointerMove', function (ev) { + navigator.msPointerEnabled ? hideMagnifier() : behaveOnHover(ev, pos); + }); + $(document).on('mouseup pointerup MSPointerUp', function () { + $(element).off('mousemove pointermove MSPointerMove'); + }); + }); } $.extend(config.magnifierOpts, { @@ -48,15 +80,13 @@ define([ }); $(element).on('fotorama:showend fotorama:load', function (e, fotorama) { - $(magnifierSelector).empty().hide(); - $(magnifierZoomSelector).remove(); + hideMagnifier(); config.magnifierOpts.large = $(gallerySelector).data('fotorama').activeFrame.img; config.magnifierOpts.original = fotorama.data[fotorama.activeIndex].original; $($(gallerySelector).data('fotorama').activeFrame.$stageFrame).magnify(config.magnifierOpts); }); $(element).on('fotorama:show', function () { - $(magnifierSelector).empty().hide(); - $(magnifierZoomSelector).remove(); + hideMagnifier(); }); return config; -- GitLab From 1b7acfb90e377142f2fc5f734e92a35c3e5fba58 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Mon, 7 Sep 2015 16:13:45 +0300 Subject: [PATCH 106/420] JS-182: Magnifier doesn't appear on gallery arrows hover --- lib/web/magnifier/magnifier.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 3a31236832e..6e5a05cfd68 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -394,7 +394,7 @@ onThumbLeave(); } handleEvents(e); - isOverThumb = true; + isOverThumb = inBounds; } }).trigger('mouseover'); } @@ -564,6 +564,10 @@ getMousePos(); + if (gEventType === 'hover') { + isOverThumb = inBounds; + } + if (inBounds && isOverThumb) { $largeWrapper.removeClass(MagnifyCls.magnifyHidden); move(); -- GitLab From bdab3ad82d929f59a85b3f25cefe5c456ee745d4 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Mon, 7 Sep 2015 16:23:41 +0300 Subject: [PATCH 107/420] JS-160: Erratic behaviour when changing slides --- lib/web/fotorama/fotorama.js | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 592f9d4cff0..7ae347e8dd7 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -1573,17 +1573,9 @@ fotoramaVersion = '4.6.4'; if (typeof options.overPos !== 'undefined' && options.overPos !== options.pos) { elPos = options.overPos; - onEndFn = function () { - slide($el, $.extend({}, options, { - overPos: options.pos, - time: Math.max(TRANSITION_DURATION, options.time / 2) - })); - }; } - ////////console.time('var translate = $.extend'); var translate = $.extend(getTranslate(elPos/*, options._001*/), options.width && {width: options.width}); - ////////console.timeEnd('var translate = $.extend'); if (elData && elData.sliding) { elData.sliding = true; } @@ -1591,9 +1583,7 @@ fotoramaVersion = '4.6.4'; if (CSS3) { $el.css($.extend(getDuration(options.time), translate)); if (options.time > 10) { - ////////console.time('afterTransition'); afterTransition($el, 'transform', onEndFn, options.time); - ////////console.timeEnd('afterTransition'); } else { onEndFn(); } -- GitLab From 8f28b8bdfdd9ddb10f9b1c9c7365dc921e6ae487 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Mon, 7 Sep 2015 16:49:16 +0300 Subject: [PATCH 108/420] JS-171: Implement enabling/disabling of full-screen mode --- .../templates/product/view/gallery.phtml | 3 +- .../frontend/Magento/blank/etc/view.xml | 3 +- app/design/frontend/Magento/luma/etc/view.xml | 3 +- lib/web/mage/gallery/gallery.js | 2 +- lib/web/mage/gallery/gallery.less | 32 ++++++++----------- 5 files changed, 21 insertions(+), 22 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index e2ec81f81a8..dd7a93a1fdb 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -32,7 +32,8 @@ "loop": <?php /* @escapeNotVerified */ echo $block->getVar("gallery:loop"); ?>, "keyboard": <?php /* @escapeNotVerified */ echo $block->getVar("gallery:keyboard"); ?>, "arrows": <?php /* @escapeNotVerified */ echo $block->getVar("gallery:arrows"); ?>, - "showCaption": <?php /* @escapeNotVerified */ echo $block->getVar("gallery:showCaption"); ?>, + "allowfullscreen": <?php /* @escapeNotVerified */ echo $block->getVar("gallery:allowfullscreen"); ?>, + "showCaption": <?php /* @escapeNotVerified */ echo $block->getVar("gallery:caption"); ?>, "width": <?php /* @escapeNotVerified */ echo $block->getImageAttribute('product_page_image_medium', 'width'); ?>, "thumbwidth": <?php /* @escapeNotVerified */ echo $block->getImageAttribute('product_page_image_small', 'width'); ?>, "thumbheight": <?php /* @escapeNotVerified */ echo $block->getImageAttribute('product_page_image_small', 'height') diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 4762130b122..8da258fc1a7 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -184,7 +184,8 @@ <var name="gallery:loop">true</var> <!-- Gallery navigation loop (true/false) --> <var name="gallery:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false) --> <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> - <var name="gallery:showCaption">false</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:caption">false</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Left position of magnifier --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index 57e50681c00..26deae4a1be 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -188,7 +188,8 @@ <var name="gallery:loop">false</var> <!-- Gallery navigation loop (true/false) --> <var name="gallery:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false) --> <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> - <var name="gallery:showCaption">true</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:caption">true</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Right position of magnifier --> diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index 9f81daba85b..7eeed339a86 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -42,7 +42,7 @@ define([ $element: $(element), currentConfig: config, defaultConfig: _.clone(config), - fullscreenConfig: _.clone(config.fullscreen), + fullscreenConfig: _.clone(config.allowfullscreen), breakpoints: config.breakpoints, activeBreakpoint: {}, fotoramaApi: null, diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 9fd58e8b302..0e5d52ae073 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -58,16 +58,6 @@ width: 100%; } -.fotorama-image-reset { - border-radius: 0 !important; - box-shadow: none !important; - max-height: 99999px !important; - max-width: 99999px !important; - min-height: 0 !important; - min-width: 0 !important; - padding: 0 !important; -} - .fotorama-grab-cursor { cursor: move; cursor: -webkit-grab; @@ -202,8 +192,7 @@ } .fotorama--fullscreen { - &:extend(.fotorama-image-reset); - background: @color-black; + background: @color-white; bottom: 0 !important; float: none !important; height: 100% !important; @@ -214,9 +203,8 @@ top: 0 !important; width: 100% !important; z-index: @z-index-10 !important; - .fotorama__stage, - .fotorama__nav { - background: @color-black; + .fotorama__wrap { + max-width: 100% !important; } } @@ -583,6 +571,14 @@ &:extend(.fotorama-no-tap); cursor: pointer; position: absolute; +} + +.fotorama__arr { + z-index: @z-index-9; + +} +.fotorama__fullscreen-icon, +.fotorama__video-close { z-index: @z-index-10; } @@ -629,7 +625,7 @@ right: 2px; top: 2px; width: @size-fotorama-block; - z-index: 20; + z-index: @z-index-10; } .fotorama__fullscreen-icon { @@ -642,7 +638,7 @@ .fotorama--fullscreen { .fotorama__fullscreen-icon { - background-position: (-@fotorama_fullscreen_button) (-@fotorama_fullscreen_button); + background-position: (-@size-fotorama-block) 0; } } @@ -859,7 +855,7 @@ overflow: hidden; position: absolute; top: 0; - z-index: @z-index-10; + z-index: @z-index-9; } .magnify-lens { -- GitLab From fecbdcfc8317a7e5b38366ac6b7728d980e42200 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Wed, 9 Sep 2015 16:49:25 +0300 Subject: [PATCH 109/420] JS-175: Implement transition options support from theme level --- .../templates/product/view/gallery.phtml | 6 +++ .../frontend/Magento/blank/etc/view.xml | 2 + app/design/frontend/Magento/luma/etc/view.xml | 2 + .../js/jasmine/assets/gallery/config.json | 9 ++++- .../js/jasmine/tests/lib/mage/gallery.test.js | 37 ++++++++++++++++++- 5 files changed, 53 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index dd7a93a1fdb..ec8f67a70a3 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -40,6 +40,12 @@ ?: $block->getImageAttribute('product_page_image_small', 'width'); ?>, "height": <?php /* @escapeNotVerified */ echo $block->getImageAttribute('product_page_image_medium', 'height') ?: $block->getImageAttribute('product_page_image_medium', 'width'); ?> + "transitionduration": <?php echo $block->getVar("gallery:transition:duration"); ?>, + "transition": "<?php echo $block->getVar("gallery:transition:effect"); ?>" + }, + "fullscreen": { + "nav": "thumbs", + "swipe": false }, "breakpoints": { "mobile": { diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 8da258fc1a7..9375a531af2 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -186,6 +186,8 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> + <var name="gallery:transition:effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> + <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Left position of magnifier --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index 26deae4a1be..e6587fe25dc 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -190,6 +190,8 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:caption">true</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> + <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> + <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Right position of magnifier --> diff --git a/dev/tests/js/jasmine/assets/gallery/config.json b/dev/tests/js/jasmine/assets/gallery/config.json index b3c8b8bc0b3..d1d8e94d7f2 100644 --- a/dev/tests/js/jasmine/assets/gallery/config.json +++ b/dev/tests/js/jasmine/assets/gallery/config.json @@ -59,12 +59,17 @@ "arrows": "false", "thumbwidth": "90", "thumbheight": "90", - "ratio": "1" + "ratio": "1", + "allowfullscreen": true + }, + "fullscreen": { + "nav": false }, "breakpoints": { "alias": { "conditions": { - "min-width": "0px" + "min-width": "0px", + "max-width": "1px" }, "options": { "options": { diff --git a/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js b/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js index 3f076659b49..dd29ec79a64 100644 --- a/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js +++ b/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js @@ -19,6 +19,7 @@ define([ stageSelector = '[data-gallery-role="stage-shaft"]', navSelector = '[data-gallery-role="nav-frame"]', dotSelector = '[data-nav-type="dot"]', + navWrap = '[data-gallery-role="nav-wrap"]', dataToUpdate = [ { img: 'data:image/png;base64,' + @@ -33,7 +34,16 @@ define([ img: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAw' + 'CAAAAC0lEQVR42mP4Xw8AAoABf5/NhYYAAAAASUVORK5CYII=' } - ]; + ], + waitsFor = function (test, fn) { + if (test()) { + fn(); + } else { + setTimeout(function () { + waitsFor(test, fn); + }, 10); + } + }; gallery(magnifier(conf, body), body); @@ -115,5 +125,30 @@ define([ it('breakpoints override configs', function () { expect($('.fotorama__arr').css('display')).toBe('none'); }); + + it('fullscreen enter', function (done) { + expect($(navWrap).css('display') === 'block').toBeTruthy(); + galleryAPI.fotorama.requestFullScreen(); + + waitsFor(function () { + return $(navWrap).css('display') !== 'block'; + }, function () { + expect($(navWrap).css('display') === 'none').toBeTruthy(); + done(); + }); + }); + + + it('fullscreen exit', function (done) { + expect($(navWrap).css('display') === 'none').toBeTruthy(); + galleryAPI.fotorama.cancelFullScreen(); + + waitsFor(function () { + return $(navWrap).css('display') !== 'none'; + }, function () { + expect($(navWrap).css('display') === 'block').toBeTruthy(); + done(); + }); + }); }); }); -- GitLab From a2cb6017efa9875bffdbaedad6d9f8178ed1b215 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Wed, 9 Sep 2015 17:34:32 +0300 Subject: [PATCH 110/420] JS-157: Implement drag for image on desktops --- .../templates/product/view/gallery.phtml | 8 +- .../frontend/Magento/blank/etc/view.xml | 9 +- app/design/frontend/Magento/luma/etc/view.xml | 8 ++ lib/web/fotorama/fotorama.js | 2 +- lib/web/mage/gallery/gallery.js | 5 +- lib/web/mage/gallery/gallery.less | 15 ++ lib/web/magnifier/magnifier.js | 131 ++++++++++++++++++ lib/web/magnifier/magnify.js | 5 +- 8 files changed, 175 insertions(+), 8 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index ec8f67a70a3..0c979222139 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -44,8 +44,12 @@ "transition": "<?php echo $block->getVar("gallery:transition:effect"); ?>" }, "fullscreen": { - "nav": "thumbs", - "swipe": false + "nav": "<?php echo $block->getVar("gallery:fullscreen:navigation"); ?>", + "loop": <?php echo $block->getVar("gallery:fullscreen:loop"); ?>, + "arrows": <?php echo $block->getVar("gallery:fullscreen:arrows"); ?>, + "showCaption": <?php echo $block->getVar("gallery:fullscreen:show_caption"); ?>, + "transitionduration": <?php echo $block->getVar("gallery:fullscreen:transition:duration"); ?>, + "transition": "<?php echo $block->getVar("gallery:fullscreen:transition:effect"); ?>" }, "breakpoints": { "mobile": { diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 9375a531af2..f61618b4907 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -186,9 +186,16 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> - <var name="gallery:transition:effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> + <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> + <var name="gallery:fullscreen:loop">false</var> <!-- Fullscreen navigation loop (true/false) --> + <var name="gallery:fullscreen:arrows">null</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> + <var name="gallery:fullscreen:show_caption">null</var> <!-- Display alt text as image title (true/false/null) --> + <var name="gallery:fullscreen:transition:effect">crossfade</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> + <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Left position of magnifier --> <var name="magnifier:width"></var> <!-- Width of magnifier block --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index e6587fe25dc..c622504ac0e 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -193,6 +193,14 @@ <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> + <var name="gallery:fullscreen:loop">true</var> <!-- Fullscreen navigation loop (true/false/null) --> + <var name="gallery:fullscreen:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> + <var name="gallery:fullscreen:arrows">false</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> + <var name="gallery:fullscreen:show_caption">false</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:fullscreen:transition:effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> + <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Right position of magnifier --> <var name="magnifier:width"></var> <!-- Width of magnifier block --> diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 7ae347e8dd7..5f34cd9820e 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -977,7 +977,7 @@ fotoramaVersion = '4.6.4'; arrows: true, click: true, - swipe: true, + swipe: false, trackpad: false, shuffle: false, diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index 7eeed339a86..ed4e12dde1f 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -36,6 +36,7 @@ define([ initialize: function (config, element) { this._super(); + config.options.swipe = true; this.config = config; this.settings = { @@ -52,7 +53,6 @@ define([ config.options.ratio = config.options.width / config.options.height; config.options.height = null; - config.options.allowfullscreen = false; $.extend(true, this.startConfig, config); @@ -67,6 +67,9 @@ define([ */ initFullscreenSettings: function () { var settings = this.settings; + + settings.fullscreenConfig.swipe = false; + settings.$element.on('fotorama:fullscreenenter', function () { settings.api.updateOptions(settings.defaultConfig.options, true); settings.api.updateOptions(settings.fullscreenConfig, true); diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 0e5d52ae073..1f7eac04d2d 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -897,6 +897,21 @@ } } +.fotorama--fullscreen { + .fotorama__stage__frame { + .fotorama__img { + position: absolute; + max-width: inherit; + max-height: inherit; + margin: auto; + top: 0px; + bottom: 0px; + left: 0px; + right: 0px; + } + } +} + .fotorama__stage__frame { text-align: center; .fotorama__img { diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 6e5a05cfd68..acfd548bcca 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -578,6 +578,99 @@ } } + function magnifierFullscreen () { + var isDragActive = false, + startX, + startY, + imagePosX, + imagePosY, + touch, + isTouchEnabled = 'ontouchstart' in document.documentElement; + + $('[data-gallery-role="gallery"]').on('fotorama:fullscreenenter fotorama:showend fotorama:load', function () { + + var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + $imageContainer = $image.parent(), + gallery = $('[data-gallery-role="gallery"]'); + + gallery.on('fotorama:fullscreenexit', function () { + $thumb.css({ + 'top': '', + 'left': '' + }); + }); + + $image.on(isTouchEnabled ? 'touchstart' : 'mousedown', function (e) { + if (gallery.data('fotorama').fullScreen) { + e.preventDefault(); + + $image.css('cursor', 'move'); + imagePosY = $image.offset().top; + imagePosX = $image.offset().left; + + if (isTouchEnabled) { + touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; + e.clientX = touch.pageX; + e.clientY = touch.pageY; + } + startX = e.clientX; + startY = e.clientY; + isDragActive = true; + } + }); + + $image.on(isTouchEnabled ? 'touchmove' : 'mousemove', function (e) { + if (gallery.data('fotorama').fullScreen && isDragActive) { + + var top, + left, + startOffset = $image.offset(); + + e.preventDefault(); + + if (isTouchEnabled) { + touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; + e.clientX = touch.pageX; + e.clientY = touch.pageY; + } + top = +imagePosY + (e.clientY - startY); + left = +imagePosX + (e.clientX - startX); + + if ($image.height() > $imageContainer.height()) { + + if (($imageContainer.offset().top + $imageContainer.height()) > (top + $image.height())) { + top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); + } else { + top = ($imageContainer.offset().top < top) ? 0 : top; + } + $image.offset({ + 'top': top + }); + } + + if ($image.width() > $imageContainer.width()) { + + if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width())) { + left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); + } else { + left = ($imageContainer.offset().left < left) ? 0 : left; + } + $image.offset({ + 'left': left + }); + } + } + }); + + $image.on(isTouchEnabled ? 'touchend' : 'mouseup', function (e) { + if (gallery.data('fotorama').fullScreen) { + isDragActive = false; + $image.css('cursor', 'pointer'); + } + }); + }); + }; + function onScroll() { if (curThumb !== null) { @@ -587,9 +680,47 @@ $(window).on('scroll', onScroll); $(window).resize(function() { + + if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { + + var $image = $('[data-gallery-role="stage-shaft"] > [data-active="true"] > img'), + $imageContainer = $image.parent(), + top, left; + + if (($imageContainer.offset().top + $imageContainer.height()) > ($image.offset().top + $image.height())) { + top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); + } else { + top = ($imageContainer.offset().top < $image.offset().top) ? 0 : top; + } + + if (top !== undefined) { + $image.css('top', top); + } + + if (($imageContainer.offset().left + $imageContainer.width()) > ($image.offset().left + $image.width())) { + left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); + } else { + left = ($imageContainer.offset().left < $image.offset().left) ? 0 : left; + } + + if (left !== undefined) { + $image.css('left', left); + } + + if ($image.width() < $imageContainer.width()) { + $image.css('left', ''); + } + + if ($image.height() < $imageContainer.height()) { + $image.css('top', ''); + } + } + _init($box, gOptions); + }); $(document).on('mousemove', onMousemove); _init($box, gOptions); + magnifierFullscreen(); } }(jQuery)); diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index 146c014b444..d6f7c9931f3 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -20,9 +20,8 @@ define([ if (isTouchEnabled) { $(element).on('fotorama:showend fotorama:load', function () { $(magnifierSelector).remove(); + $(magnifierZoomSelector).remove(); }); - - return config; } /** @@ -79,7 +78,7 @@ define([ } }); - $(element).on('fotorama:showend fotorama:load', function (e, fotorama) { + $(element).on('fotorama:showend fotorama:load fotorama:fullscreenexit', function (e, fotorama) { hideMagnifier(); config.magnifierOpts.large = $(gallerySelector).data('fotorama').activeFrame.img; config.magnifierOpts.original = fotorama.data[fotorama.activeIndex].original; -- GitLab From 95228e482516b5af2aa5aec1287d30ad85d8e64c Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Tue, 15 Sep 2015 01:27:22 +0300 Subject: [PATCH 111/420] JS-50: Different configurations for Page and Full Screen Gallery Widget modes --- .../templates/product/view/gallery.phtml | 2 +- .../frontend/Magento/blank/etc/view.xml | 3 +- app/design/frontend/Magento/luma/etc/view.xml | 3 +- .../js/jasmine/tests/lib/mage/gallery.test.js | 2 +- lib/web/fotorama/fotorama.js | 239 +++++++++---- lib/web/mage/gallery/gallery.html | 4 +- lib/web/mage/gallery/gallery.js | 22 +- lib/web/mage/gallery/gallery.less | 324 +++++++++++++++--- lib/web/magnifier/magnifier.js | 54 +++ lib/web/magnifier/magnify.js | 3 +- 10 files changed, 542 insertions(+), 114 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 0c979222139..3add5dee58c 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -47,7 +47,7 @@ "nav": "<?php echo $block->getVar("gallery:fullscreen:navigation"); ?>", "loop": <?php echo $block->getVar("gallery:fullscreen:loop"); ?>, "arrows": <?php echo $block->getVar("gallery:fullscreen:arrows"); ?>, - "showCaption": <?php echo $block->getVar("gallery:fullscreen:show_caption"); ?>, + "showCaption": <?php echo $block->getVar("gallery:fullscreen:caption"); ?>, "transitionduration": <?php echo $block->getVar("gallery:fullscreen:transition:duration"); ?>, "transition": "<?php echo $block->getVar("gallery:fullscreen:transition:effect"); ?>" }, diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index f61618b4907..178841f20db 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -186,13 +186,14 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> + <var name="gallery:navdir">vertical</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="gallery:fullscreen:loop">false</var> <!-- Fullscreen navigation loop (true/false) --> <var name="gallery:fullscreen:arrows">null</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> - <var name="gallery:fullscreen:show_caption">null</var> <!-- Display alt text as image title (true/false/null) --> + <var name="gallery:fullscreen:caption">null</var> <!-- Display alt text as image title (true/false/null) --> <var name="gallery:fullscreen:transition:effect">crossfade</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index c622504ac0e..0d69ff8dee8 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -190,6 +190,7 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:caption">true</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> + <var name="gallery:navdir">horizontal</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> @@ -197,7 +198,7 @@ <var name="gallery:fullscreen:loop">true</var> <!-- Fullscreen navigation loop (true/false/null) --> <var name="gallery:fullscreen:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="gallery:fullscreen:arrows">false</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> - <var name="gallery:fullscreen:show_caption">false</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:fullscreen:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:fullscreen:transition:effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> diff --git a/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js b/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js index dd29ec79a64..d762ca5fe9f 100644 --- a/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js +++ b/dev/tests/js/jasmine/tests/lib/mage/gallery.test.js @@ -138,7 +138,6 @@ define([ }); }); - it('fullscreen exit', function (done) { expect($(navWrap).css('display') === 'none').toBeTruthy(); galleryAPI.fotorama.cancelFullScreen(); @@ -150,5 +149,6 @@ define([ done(); }); }); + }); }); diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 5f34cd9820e..d7f64c62bc1 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -5,7 +5,7 @@ fotoramaVersion = '4.6.4'; (function (window, document, location, $, undefined) { "use strict"; var _fotoramaClass = 'fotorama', - _fullscreenClass = 'fullscreen', + _fullscreenClass = 'fotorama__fullscreen', wrapClass = _fotoramaClass + '__wrap', wrapCss2Class = wrapClass + '--css2', @@ -37,6 +37,9 @@ fotoramaVersion = '4.6.4'; navClass = _fotoramaClass + '__nav', navWrapClass = navClass + '-wrap', navShaftClass = navClass + '__shaft', + navShaftVerticalClass = navWrapClass + '--vertical', + navShaftListClass = navWrapClass + '--list', + navShaftHorisontalClass = navWrapClass + '--horisontal', navDotsClass = navClass + '--dots', navThumbsClass = navClass + '--thumbs', navFrameClass = navClass + '__frame', @@ -49,6 +52,8 @@ fotoramaVersion = '4.6.4'; shadowsClass = shadowClass + 's', shadowsLeftClass = shadowsClass + '--left', shadowsRightClass = shadowsClass + '--right', + shadowsTopClass = shadowsClass + '--top', + shadowsBottomClass = shadowsClass + '--bottom', activeClass = _fotoramaClass + '__active', selectClass = _fotoramaClass + '__select', @@ -482,7 +487,7 @@ fotoramaVersion = '4.6.4'; , n for (n in prop) el[n] = prop[n] - return el; + return el } /** @@ -986,7 +991,8 @@ fotoramaVersion = '4.6.4'; shadows: true, spinner: null, - showcaption: true + showcaption: true, + navdir: 'horisontal' }, KEYBOARD_OPTIONS = { @@ -1005,24 +1011,40 @@ fotoramaVersion = '4.6.4'; return Math.max(isNaN(min) ? -Infinity : min, Math.min(isNaN(max) ? Infinity : max, value)); } - function readTransform(css) { - return css.match(/ma/) && css.match(/-?\d+(?!d)/g)[css.match(/3d/) ? 12 : 4]; + function readTransform(css, dir) { + return css.match(/ma/) && css.match(/-?\d+(?!d)/g)[css.match(/3d/) ? + (dir === 'vertical' ? 13: 12) : (dir === 'vertical' ? 5 : 4) + ] } - function readPosition($el) { + function readPosition($el, dir) { if (CSS3) { - return +readTransform($el.css('transform')); + return +readTransform($el.css('transform'), dir); } else { - return +$el.css('left').replace('px', ''); + return +$el.css(dir === 'vertical' ? 'top': 'left').replace('px', ''); } } - function getTranslate(pos/*, _001*/) { + function getTranslate(pos, direction) { var obj = {}; + if (CSS3) { - obj.transform = 'translate3d(' + (pos/* + (_001 ? 0.001 : 0)*/) + 'px,0,0)'; // 0.001 to remove Retina artifacts + + switch (direction){ + case 'vertical': + obj.transform = 'translate3d(0, ' + (pos) + 'px,0)'; + break; + case 'list': + //console.warn("transition not implemented"); + break; + default : + obj.transform = 'translate3d(' + (pos) + 'px,0,0)'; + break; + } } else { - obj.left = pos; + direction === 'vertical' ? + obj.top = pos : + obj.left = pos; } return obj; } @@ -1103,7 +1125,8 @@ fotoramaVersion = '4.6.4'; } - function stop($el, left/*, _001*/) { + function stop($el, pos/*, _001*/) { + var dir = $el.navdir || 'horizontal'; if ($el.length) { var elData = $el.data(); if (CSS3) { @@ -1113,12 +1136,12 @@ fotoramaVersion = '4.6.4'; } else { $el.stop(); } - var lockedLeft = getNumber(left, function () { - return readPosition($el); + var lockedPos = getNumber(pos, function () { + return readPosition($el, dir); }); - $el.css(getTranslate(lockedLeft/*, _001*/));//.width(); // `.width()` for reflow - return lockedLeft; + $el.css(getTranslate(lockedPos, dir/*, _001*/));//.width(); // `.width()` for reflow + return lockedPos; } } @@ -1353,8 +1376,11 @@ fotoramaVersion = '4.6.4'; } } - function findShadowEdge(pos, min, max) { - return min === max ? false : pos <= min ? 'left' : pos >= max ? 'right' : 'left right'; + function findShadowEdge(pos, min, max, dir) { + return min === max ? false : + dir === 'vertical' ? + (pos <= min ? 'top' : pos >= max ? 'bottom' : 'top bottom') : + (pos <= min ? 'left' : pos >= max ? 'right' : 'left right'); } function smartClick($el, fn, _options) { @@ -1377,7 +1403,6 @@ fotoramaVersion = '4.6.4'; onMove: _options.onMove || noop, onTouchEnd: _options.onTouchEnd || noop, onEnd: function (result) { - ////console.log('smartClick → result.moved', result.moved); if (result.moved) return; fn.call(this, startEvent); } @@ -1575,7 +1600,7 @@ fotoramaVersion = '4.6.4'; elPos = options.overPos; } - var translate = $.extend(getTranslate(elPos/*, options._001*/), options.width && {width: options.width}); + var translate = $.extend(getTranslate(elPos, options.direction), options.width && {width: options.width}, options.height && {height: options.height}); if (elData && elData.sliding) { elData.sliding = true; } @@ -1635,7 +1660,8 @@ fotoramaVersion = '4.6.4'; var lastEvent, moveEventType, preventEvent, - preventEventTimeout; + preventEventTimeout, + dragDomEl; function extendEvent(e) { var touch = (e.touches || [])[0] || e; @@ -1709,7 +1735,6 @@ fotoramaVersion = '4.6.4'; stopEvent(e); } } else { - ////console.log('onMove e.preventDefault'); stopEvent(e); (options.onMove || noop).call(el, e, {touch: touchFLAG}); } @@ -1786,11 +1811,12 @@ fotoramaVersion = '4.6.4'; .on('mousemove', onMove) .on('mouseup', onEnd); } - - $el.on('click', 'a', function (e) { - if (!Modernizr.touch) { - e.preventDefault(); - } + if (Modernizr.touch) { + dragDomEl = 'a'; + } else { + dragDomEl = 'div'; + } + $el.on('click', dragDomEl, function (e) { tail.checked && stopEvent(e); }); @@ -1812,6 +1838,7 @@ fotoramaVersion = '4.6.4'; min, max, snap, + dir = options.direction || 'horizontal', slowFLAG, controlFLAG, moved, @@ -1819,9 +1846,10 @@ fotoramaVersion = '4.6.4'; function startTracking(e, noStop) { tracked = true; - startCoo = coo = e._x; + startCoo = coo = (dir === 'vertical') ? e._y : e._x; startTime = e._now; + moveTrack = [ [startTime, startCoo] ]; @@ -1834,7 +1862,9 @@ fotoramaVersion = '4.6.4'; function onStart(e, result) { min = tail.min; max = tail.max; - snap = tail.snap; + snap = tail.snap, + dir = tail.direction||'horizontal', + $el.navdir = dir; slowFLAG = e.altKey; tracked = moved = false; @@ -1851,14 +1881,13 @@ fotoramaVersion = '4.6.4'; if (!tracked) { startTracking(e); } - - coo = e._x; + coo = (dir === 'vertical') ? e._y : e._x; moveTrack.push([e._now, coo]); moveElPos = startElPos - (startCoo - coo); - edge = findShadowEdge(moveElPos, min, max); + edge = findShadowEdge(moveElPos, min, max, dir); if (moveElPos <= min) { moveElPos = edgeResistance(moveElPos, min); @@ -1867,7 +1896,7 @@ fotoramaVersion = '4.6.4'; } if (!tail.noMove) { - $el.css(getTranslate(moveElPos/*, options._001*/)); + $el.css(getTranslate(moveElPos, dir)); if (!moved) { moved = true; // only for mouse @@ -1959,7 +1988,8 @@ fotoramaVersion = '4.6.4'; pos: moveElPos, newPos: newPos, overPos: overPos, - time: time + time: time, + dir:dir })); } @@ -2118,7 +2148,11 @@ fotoramaVersion = '4.6.4'; stageLeft = 0, fadeStack = []; - $wrap[STAGE_FRAME_KEY] = $('<a class="' + stageFrameClass + '" target="_blank"></a>'); + if (Modernizr.touch) { + $wrap[STAGE_FRAME_KEY] = $('<a class="' + stageFrameClass + '" target="_blank"></a>'); + } else { + $wrap[STAGE_FRAME_KEY] = $('<div class="' + stageFrameClass + '"></div>'); + } $wrap[NAV_THUMB_FRAME_KEY] = $($.Fotorama.jst.thumb()); @@ -2160,6 +2194,25 @@ fotoramaVersion = '4.6.4'; return o_keyboard[key] || that.fullScreen; } + function setStagePosition() { + if ($stage !== undefined) { + + if (opts.navdir == 'vertical') { + var padding = opts.thumbwidth + opts.thumbmargin; + + $stage.css('left', padding); + $arrNext.css('right', padding); + $wrap.css('width', $wrap.css('width') + padding); + $stageShaft.css('max-width', $wrap.width() - padding); + } else { + $stage.css('left', ''); + $arrNext.css('right', ''); + $wrap.css('width', $wrap.css('width') + padding); + $stageShaft.css('max-width', ''); + } + } + } + function bindGlobalEvents(FLAG) { var keydownCommon = 'keydown.' + _fotoramaClass, localStamp = _fotoramaClass + stamp, @@ -2266,6 +2319,10 @@ fotoramaVersion = '4.6.4'; * Options on the fly * */ function setOptions() { + if (opts.nav === 'dots') { + opts.navdir = 'horizontal' + } + that.options = opts = optionsToLowerCase(opts); o_fade = (opts.transition === 'crossfade' || opts.transition === 'dissolve'); @@ -2386,6 +2443,7 @@ fotoramaVersion = '4.6.4'; .removeClass(classes.remove.join(' ')); lastOptions = $.extend({}, opts); + setStagePosition(); } function normalizeIndex(index) { @@ -2415,8 +2473,13 @@ fotoramaVersion = '4.6.4'; } function setNavShaftMinMax() { - navShaftTouchTail.min = Math.min(0, measures.nw - $navShaft.width()); + + var isVerticalDir = (opts.navdir === 'vertical'); + var param = isVerticalDir ? $navShaft.height() : $navShaft.width(); + var mainParam = isVerticalDir ? measures.h : measures.nw; + navShaftTouchTail.min = Math.min(0, mainParam - param); navShaftTouchTail.max = 0; + navShaftTouchTail.direction = opts.navdir; $navShaft.toggleClass(grabClass, !(navShaftTouchTail.noMove = navShaftTouchTail.min === navShaftTouchTail.max)); } @@ -2724,6 +2787,10 @@ fotoramaVersion = '4.6.4'; } function thumbsDraw(pos, loadFLAG) { + if (opts.navdir === 'vertical') { + pos = pos - opts.thumbheight; + } + if (o_nav !== 'thumbs' || isNaN(pos)) return; var leftLimit = -pos, @@ -2739,8 +2806,7 @@ fotoramaVersion = '4.6.4'; w: thisData.w } }, - specialMeasures = getSpecialMeasures(), - dataFrame = data[eq] || {}; + specialMeasures = getSpecialMeasures(); specialMeasures.w = thisData.w; @@ -2756,7 +2822,8 @@ fotoramaVersion = '4.6.4'; if (!frameAppend[type]) { var thumbsFLAG = type === 'nav' && o_navThumbs, - left = 0; + left = 0, + top = 0; $shaft.append( $frames @@ -2787,13 +2854,16 @@ fotoramaVersion = '4.6.4'; var $this = $(this), frameData = $this.data(), - thumbwidth = Math.round(o_thumbSide2 * frameData.data.thumbratio) || o_thumbSide; - + thumbwidth = Math.round(o_thumbSide2 * frameData.data.thumbratio) || o_thumbSide, + thumbheight = Math.round(o_thumbSide / frameData.data.thumbratio) || o_thumbSide2; + frameData.t = top; + frameData.h = thumbheight; frameData.l = left; frameData.w = thumbwidth; $this.css({width: thumbwidth}); + top += thumbheight + opts.thumbmargin; left += thumbwidth + opts.thumbmargin; }) ); @@ -2830,29 +2900,43 @@ fotoramaVersion = '4.6.4'; function getNavFrameBounds($navFrame) { var navFrameData = $navFrame.data(), left, - width; + top, + width, + height; if (o_navThumbs) { left = navFrameData.l; + top = navFrameData.t; width = navFrameData.w; + height = navFrameData.h; } else { left = $navFrame.position().left; width = $navFrame.width(); } - return { + var horizontalBounds = { c: left + width / 2, min: -left + opts.thumbmargin * 10, max: -left + measures.w - width - opts.thumbmargin * 10 }; + + var verticalBounds = { + c: top + height / 2, + min: -top + opts.thumbmargin * 10, + max: -top + measures.h - height - opts.thumbmargin * 10 + }; + + return opts.navdir === 'vertical' ? verticalBounds : horizontalBounds; } function slideThumbBorder(time) { var navFrameData = activeFrame[navFrameKey].data(); slide($thumbBorder, { time: time * 1.2, - pos: navFrameData.l, - width: navFrameData.w + pos: (opts.navdir === 'vertical' ? navFrameData.t : navFrameData.l), + width: navFrameData.w, + height: navFrameData.h, + direction: opts.navdir }); } @@ -2861,19 +2945,22 @@ fotoramaVersion = '4.6.4'; if ($guessNavFrame) { var overflowFLAG = navShaftTouchTail.min !== navShaftTouchTail.max, minMax = options.minMax || overflowFLAG && getNavFrameBounds(activeFrame[navFrameKey]), - l = overflowFLAG && (options.keep && slideNavShaft.l ? slideNavShaft.l : minMaxLimit((options.coo || measures.nw / 2) - getNavFrameBounds($guessNavFrame).c, minMax.min, minMax.max)), + boundTop = overflowFLAG && (options.keep && slideNavShaft.t ? slideNavShaft.l : minMaxLimit((options.coo || measures.nw / 2) - getNavFrameBounds($guessNavFrame).c, minMax.min, minMax.max)), + boundLeft = overflowFLAG && (options.keep && slideNavShaft.l ? slideNavShaft.l : minMaxLimit((options.coo || measures.nw / 2) - getNavFrameBounds($guessNavFrame).c, minMax.min, minMax.max)), + l = (opts.navdir === 'vertical' ? boundTop : boundLeft), pos = overflowFLAG && minMaxLimit(l, navShaftTouchTail.min, navShaftTouchTail.max), time = options.time * 1.1; slide($navShaft, { time: time, pos: pos || 0, + direction: opts.navdir, onEnd: function () { thumbsDraw(pos, true); } }); - setShadow($nav, findShadowEdge(pos, navShaftTouchTail.min, navShaftTouchTail.max)); + setShadow($nav, findShadowEdge(pos, navShaftTouchTail.min, navShaftTouchTail.max, opts.navdir)); slideNavShaft.l = l; } } @@ -3120,8 +3207,7 @@ fotoramaVersion = '4.6.4'; pos: -getPosByIndex(dirtyIndex, measures.w, opts.margin, repositionIndex), overPos: overPos, time: time, - onEnd: onEnd/*, - _001: true*/ + onEnd: onEnd }); } else { var $activeFrame = activeFrame[STAGE_FRAME_KEY], @@ -3264,11 +3350,11 @@ fotoramaVersion = '4.6.4'; if (measureIsValid(width)) { $stage.css({width: ''}); $stage.css({height: ''}); + $stage.css({'line-height': ''}); $stageShaft.css({width: ''}); $stageShaft.css({height: ''}); $nav.css({width: ''}); $nav.css({height: ''}); - $stage.css({'line-height': ''}); $wrap.css({minWidth: measures.minwidth || 0, maxWidth: measures.maxwidth || MAX_WIDTH}); width = measures.W = measures.w = $wrap.width(); @@ -3283,16 +3369,35 @@ fotoramaVersion = '4.6.4'; if (height) { width = Math.round(width); height = measures.h = Math.round(minMaxLimit(height, numberFromWhatever(measures.minheight, windowHeight), numberFromWhatever(measures.maxheight, windowHeight))); - $stage.css({'width': width, 'height': height, 'line-height': height + 'px'}); - stageShaftReposition(); - if (o_nav) { - $nav - .stop() - .animate({width: measures.nw}, time); + switch (opts.navdir) { + case 'vertical': + $navWrap.removeClass(navShaftHorisontalClass); + $navWrap.removeClass(navShaftListClass); + $navWrap.addClass(navShaftVerticalClass); + $nav + .stop() + .animate({height: measures.h, width: opts.thumbwidth}, time); + break; + case 'list': + $navWrap.removeClass(navShaftVerticalClass); + $navWrap.removeClass(navShaftHorisontalClass); + $navWrap.addClass(navShaftListClass); + //console.warn("List not implemented"); + break; + default: + $navWrap.removeClass(navShaftVerticalClass); + $navWrap.removeClass(navShaftListClass); + $navWrap.addClass(navShaftHorisontalClass); + $nav + .stop() + .animate({width: measures.nw}, time); + break; + } + stageShaftReposition(); slideNavShaft({guessIndex: activeIndex, time: time, keep: true}); if (o_navThumbs && frameAppend.nav) slideThumbBorder(time); } @@ -3304,6 +3409,7 @@ fotoramaVersion = '4.6.4'; } stageLeft = $stage.offset().left; + setStagePosition(); return this; }; @@ -3322,6 +3428,7 @@ fotoramaVersion = '4.6.4'; function setShadow($el, edge) { if (o_shadows) { $el.removeClass(shadowsLeftClass + ' ' + shadowsRightClass); + $el.removeClass(shadowsTopClass + ' ' + shadowsBottomClass); edge && !$videoPlaying && $el.addClass(edge.replace(/^|\s/g, ' ' + shadowsClass + '--')); } } @@ -3492,7 +3599,9 @@ fotoramaVersion = '4.6.4'; timeHigh: 1, friction: 2, select: '.' + selectClass + ', .' + selectClass + ' *', - $wrap: $stage + $wrap: $stage, + direction: 'horizontal' + }); navShaftTouchTail = moveOnTouch($navShaft, { @@ -3519,10 +3628,11 @@ fotoramaVersion = '4.6.4'; time: result.time, pos: result.newPos, overPos: result.overPos, + direction: opts.navdir, onEnd: onEnd }); thumbsDraw(result.newPos); - o_shadows && setShadow($nav, findShadowEdge(result.newPos, navShaftTouchTail.min, navShaftTouchTail.max)); + o_shadows && setShadow($nav, findShadowEdge(result.newPos, navShaftTouchTail.min, navShaftTouchTail.max, result.dir)); } else { onEnd(); } @@ -3530,7 +3640,8 @@ fotoramaVersion = '4.6.4'; timeLow: .5, timeHigh: 2, friction: 5, - $wrap: $nav + $wrap: $nav, + direction: opts.navdir }); stageWheelTail = wheel($stage, { @@ -3547,8 +3658,8 @@ fotoramaVersion = '4.6.4'; onTouchStart(); onTouchEnd(); var newPos = stop($navShaft) + direction * .25; - $navShaft.css(getTranslate(minMaxLimit(newPos, navShaftTouchTail.min, navShaftTouchTail.max))); - o_shadows && setShadow($nav, findShadowEdge(newPos, navShaftTouchTail.min, navShaftTouchTail.max)); + $navShaft.css(getTranslate(minMaxLimit(newPos, navShaftTouchTail.min, navShaftTouchTail.max), opts.navdir)); + o_shadows && setShadow($nav, findShadowEdge(newPos, navShaftTouchTail.min, navShaftTouchTail.max, opts.navdir)); navWheelTail.prevent = {'<': newPos >= navShaftTouchTail.max, '>': newPos <= navShaftTouchTail.min}; clearTimeout(navWheelTail.t); navWheelTail.t = setTimeout(function () { @@ -3567,7 +3678,7 @@ fotoramaVersion = '4.6.4'; }, 0); }, function () { - //console.log("click"); + ////console.log("click"); if (!hoverFLAG) return; toggleControlsClass(!(hoverFLAG = false)); } @@ -3676,8 +3787,6 @@ fotoramaVersion = '4.6.4'; reset(); }; - - $.fn.fotorama = function (opts) { return this.each(function () { var that = this, @@ -3730,7 +3839,7 @@ fotoramaVersion = '4.6.4'; $.Fotorama.jst.dots = function(v) { var __t, __p = '', __e = _.escape; - __p += '<div class="fotorama__nav__frame fotorama__nav__frame--dot" tabindex="0" role="button" data-gallery-role="nav-frame" data-nav-type="dot" aria-label>\r\n <div class="fotorama__dot"></div>\r\n</div>'; + __p += '<div class="fotorama__nav__frame fotorama__nav__frame--dot" tabindex="0" role="button" data-gallery-role="nav-frame" data-nav-type="thumb" aria-label>\r\n <div class="fotorama__dot"></div>\r\n</div>'; return __p }; diff --git a/lib/web/mage/gallery/gallery.html b/lib/web/mage/gallery/gallery.html index 69a196d86c6..473d784d22c 100644 --- a/lib/web/mage/gallery/gallery.html +++ b/lib/web/mage/gallery/gallery.html @@ -17,6 +17,8 @@ <div class="fotorama__arr__arr" data-gallery-role="arrow"></div> </div> <div class="fotorama__video-close"></div> + <div class="fotorama__zoom-in"></div> + <div class="fotorama__zoom-out"></div> </div> <div class="fotorama__nav-wrap" data-gallery-role="nav-wrap"> <div class="fotorama__nav fotorama__nav--thumbs"> @@ -28,4 +30,4 @@ </div> </div> </div> -<div class="magnifier-preview" id="preview" data-gallery-role="magnifier"></div> +<div class="magnifier-preview" data-gallery-role="magnifier" id="preview"></div> diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index ed4e12dde1f..b66c45363e4 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -34,6 +34,8 @@ define([ * @param {String} element - String selector of gallery DOM element. */ initialize: function (config, element) { + var fullscreenData = []; + this._super(); config.options.swipe = true; @@ -43,14 +45,24 @@ define([ $element: $(element), currentConfig: config, defaultConfig: _.clone(config), - fullscreenConfig: _.clone(config.allowfullscreen), + fullscreenConfig: _.clone(config.fullscreen), breakpoints: config.breakpoints, activeBreakpoint: {}, fotoramaApi: null, isFullscreen: false, - api: null + api: null, + data: _.clone(config.data), + fullscreenData: [] }; + _.each(_.clone(this.settings.data), function (item) { + fullscreenData.push({ + img: item.original, + thumb: item.thumb + }); + }); + this.settings.fullscreenData = fullscreenData; + config.options.ratio = config.options.width / config.options.height; config.options.height = null; @@ -66,17 +78,20 @@ define([ * Gallery fullscreen settings. */ initFullscreenSettings: function () { - var settings = this.settings; + var settings = this.settings, + items = []; settings.fullscreenConfig.swipe = false; settings.$element.on('fotorama:fullscreenenter', function () { + settings.api.updateOptions(settings.defaultConfig.options, true); settings.api.updateOptions(settings.fullscreenConfig, true); if (!_.isEqual(settings.activeBreakpoint, {})) { settings.api.updateOptions(settings.activeBreakpoint.options, true); } + settings.api.updateData(_.clone(settings.fullscreenData)); settings.isFullscreen = true; }); @@ -86,6 +101,7 @@ define([ if (!_.isEqual(settings.activeBreakpoint, {})) { settings.api.updateOptions(settings.activeBreakpoint.options, true); } + settings.api.updateData(_.clone(settings.data)); settings.isFullscreen = false; }); }, diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 1f7eac04d2d..195dd5dec43 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -6,7 +6,6 @@ @fotorama-duration-time: 0.3s; @fotorama-arw-size: 95px; @fotorama_close_size: 30px; -@fotorama_fullscreen_button: 32px; @size-fotorama-block: 50px; @import '../../css/source/lib/_lib.less'; // Global lib @@ -21,22 +20,21 @@ } .translateX(@value) { + -webkit-transform: translateX(@value); -ms-transform: translateX(@value); -o-transform: translateX(@value); - -webkit-transform: translateX(@value); transform: translateX(@value); } .translateY(@value) { + -webkit-transform: translateY(@value); -ms-transform: translateY(@value); -o-transform: translateY(@value); - -webkit-transform: translateY(@value); transform: translateY(@value); } -.translate3d(@x, @y, @z) { - -webkit-transform: translate3d(@x, @y, @z); - transform: translate3d(@x, @y, @z); +.fotorama-shadow-gradient(@x, @y) { + background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.2) 25%, rgba(0, 0, 0, 0.3) 75%, transparent), radial-gradient(farthest-side at @x @y, rgba(0, 0, 0, 0.4), transparent); } .fotorama-inline-block(@va: middle) { @@ -48,6 +46,86 @@ vertical-align: @va; } +.fotorama__zoom-in, +.fotorama__zoom-out { + display: none; +} +.fotorama__fullscreen { + .fotorama__zoom-in, + .fotorama__zoom-out { + position: absolute; + width: 50px; + height: 50px; + display: block; + margin-left: 20px; + } + .fotorama__zoom-out { + top: 51px; + &:extend(.fotorama-sprite); + background-position: 0 (-@size-fotorama-block) !important; + } + + .fotorama__zoom-in { + top: 0; + &:extend(.fotorama-sprite); + background-position: 0 0 !important; + } +} + +.fotorama__zoom-in, +.fotorama__zoom-out { + display: none; +} +.fotorama__fullscreen { + .fotorama__zoom-in, + .fotorama__zoom-out { + position: absolute; + width: 50px; + height: 50px; + display: block; + margin-left: 20px; + cursor: pointer; + } + .fotorama__zoom-out { + top: 51px; + &:extend(.fotorama-sprite); + background-position: 0 (-@size-fotorama-block) !important; + } + + .fotorama__zoom-in { + top: 0; + &:extend(.fotorama-sprite); + background-position: 0 0 !important; + } +} + +.fotorama__zoom-in, +.fotorama__zoom-out { + display: none; +} +.fotorama__fullscreen { + .fotorama__zoom-in, + .fotorama__zoom-out { + position: absolute; + width: 50px; + height: 50px; + display: block; + margin-left: 20px; + cursor: pointer; + } + .fotorama__zoom-out { + top: 51px; + &:extend(.fotorama-sprite); + background-position: 0 (-@size-fotorama-block) !important; + } + + .fotorama__zoom-in { + top: 0; + &:extend(.fotorama-sprite); + background-position: 0 0 !important; + } +} + .fotorama-stretch { bottom: 0; height: 100%; @@ -682,7 +760,7 @@ } .fotorama__wrap--css3 & { - .translate3d(@fotorama-arw-size, -@fotorama-arw-size, 0); + .fotorama-translate3d(@fotorama-arw-size, -@fotorama-arw-size, 0); } .fotorama__wrap--video & { @@ -707,6 +785,60 @@ } } +.fotorama__wrap--toggle-arrows { + &:not(.fotorama__wrap--video) { + .fotorama__video-close { + display: none; + } + } +} + +.fotorama__wrap--toggle-arrows { + &.fotorama__wrap--video { + .fotorama__video-close { + top: 97px; + right: 93px; + opacity: 1; + } + } +} + +.fotorama__wrap--toggle-arrows { + &:not(.fotorama__wrap--video) { + .fotorama__video-close { + display: none; + } + } +} + +.fotorama__wrap--toggle-arrows { + &.fotorama__wrap--video { + .fotorama__video-close { + top: 97px; + right: 93px; + opacity: 1; + } + } +} + +.fotorama__wrap--toggle-arrows { + &:not(.fotorama__wrap--video) { + .fotorama__video-close { + display: none; + } + } +} + +.fotorama__wrap--toggle-arrows { + &.fotorama__wrap--video { + .fotorama__video-close { + top: 97px; + right: 93px; + opacity: 1; + } + } +} + .fotorama__wrap--video { .fotorama__arr, .fotorama__fullscreen-icon { @@ -735,24 +867,24 @@ .fotorama__wrap--css3 { &.fotorama__wrap--no-controls.fotorama__wrap--slide.fotorama__wrap--toggle-arrows { .fotorama__fullscreen-icon:not(:focus) { - .translate3d(@fotorama-arw-size, -@fotorama-arw-size, 0); + .fotorama-translate3d(@fotorama-arw-size, -@fotorama-arw-size, 0); } .fotorama__arr--prev:not(:focus) { - .translate3d(-@fotorama-arw-size * 1.5, 0, 0); + .fotorama-translate3d(-@fotorama-arw-size * 1.5, 0, 0); } .fotorama__arr--next:not(:focus) { - .translate3d(@fotorama-arw-size * 1.5, 0, 0); + .fotorama-translate3d(@fotorama-arw-size * 1.5, 0, 0); } } &.fotorama__wrap--video { .fotorama__fullscreen-icon { - .translate3d(@fotorama-arw-size, -@fotorama-arw-size, 0) !important; + .fotorama-translate3d(@fotorama-arw-size, -@fotorama-arw-size, 0) !important; } .fotorama__arr--prev { - .translate3d(-@fotorama-arw-size * 1.5, 0, 0) !important; + .fotorama-translate3d(-@fotorama-arw-size * 1.5, 0, 0) !important; } .fotorama__arr--next { - .translate3d(@fotorama-arw-size * 1.5, 0, 0) !important; + .fotorama-translate3d(@fotorama-arw-size * 1.5, 0, 0) !important; } } } @@ -773,34 +905,59 @@ &:after { &:extend(.fotorama-gpu); background-repeat: no-repeat; - background-size: 1px 100%, 5px 100%; - bottom: 0; content: ''; display: block; - height: auto; pointer-events: none; position: absolute; text-decoration: none; - top: 0; - width: 10px; z-index: 10; } &:before { - background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.2) 25%, rgba(0, 0, 0, 0.3) 75%, transparent), radial-gradient(farthest-side at 0 50%, rgba(0, 0, 0, 0.4), transparent); - background-position: 0 0, 0 0; left: -10px; - } - &.fotorama__shadows--left:before { - left: 0; + top: -10px; } &:after { - background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.2) 25%, rgba(0, 0, 0, 0.3) 75%, transparent), radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.4), transparent); - background-position: 100% 0, 100% 0; right: -10px; + bottom: -10px; } + &.fotorama__shadows--left:before, &.fotorama__shadows--right:after { + top: 0; + bottom: 0; + background-size: 1px 100%, 5px 100%; + height: auto; + width: 10px; + } + &.fotorama__shadows--top:before, + &.fotorama__shadows--bottom:after { + left: 0; + right:0; + background-size: 100% 1px, 100% 5px ; + height:10px; + width:auto; + } + &.fotorama__shadows--left:before { + .fotorama-shadow-gradient(0, 50%); + background-position: 0 0, 0 0; + left: 0; + } + + &.fotorama__shadows--right:after { + .fotorama-shadow-gradient(100%, 50%); + background-position: 100% 0, 100% 0; right: 0; } + &.fotorama__shadows--top:before { + .fotorama-shadow-gradient(50%, 0); + background-position: 0 0, 0 0; + top:0; + + } + &.fotorama__shadows--bottom:after { + .fotorama-shadow-gradient(50%, 100%); + background-position: 0 100%, 0 100%; + bottom:0; + } } .fotorama--fullscreen .fotorama__stage, @@ -897,21 +1054,6 @@ } } -.fotorama--fullscreen { - .fotorama__stage__frame { - .fotorama__img { - position: absolute; - max-width: inherit; - max-height: inherit; - margin: auto; - top: 0px; - bottom: 0px; - left: 0px; - right: 0px; - } - } -} - .fotorama__stage__frame { text-align: center; .fotorama__img { @@ -930,3 +1072,105 @@ .magnify-hidden { display: none; } + +.fotorama__nav-wrap--vertical { + &.fotorama__nav-wrap { + display: inline-block; + position: absolute; + top: 0; + left: 0; + } + + .fotorama__nav__shaft { + width: 100%; + background-color: white; + .fotorama__nav__frame--thumb { + display: block; + padding-bottom: inherit !important; + } + } +} + +.fotorama--fullscreen { + .fotorama__stage__frame { + .fotorama__img { + position: absolute; + max-width: inherit; + max-height: inherit; + margin: auto; + top: 0; + bottom: 0; + left: 0; + right: 0; + } + } +} + + +.fotorama__nav-wrap--vertical { + &.fotorama__nav-wrap { + display: inline-block; + position: absolute; + top: 0; + left: 0; + } + + .fotorama__nav__shaft { + width: 100%; + background-color: white; + .fotorama__nav__frame--thumb { + display: block; + padding-bottom: inherit !important; + } + } +} + +.fotorama--fullscreen { + .fotorama__stage__frame { + .fotorama__img { + position: absolute; + max-width: inherit; + max-height: inherit; + margin: auto; + top: 0; + bottom: 0; + left: 0; + right: 0; + } + } +} + + +.fotorama__nav-wrap--vertical { + &.fotorama__nav-wrap { + display: inline-block; + position: absolute; + top: 0; + left: 0; + } + + .fotorama__nav__shaft { + width: 100%; + background-color: white; + .fotorama__nav__frame--thumb { + display: block; + padding-bottom: inherit !important; + } + } +} + +.fotorama--fullscreen { + .fotorama__stage__frame { + .fotorama__img { + position: absolute; + max-width: inherit; + max-height: inherit; + margin: auto; + top: 0; + bottom: 0; + left: 0; + right: 0; + } + } +} + diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index acfd548bcca..6a9f279d9e5 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -719,8 +719,62 @@ _init($box, gOptions); }); + function zoomIn(e) { + var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + gallery = $('[data-gallery-role="gallery"]'), + imgOriginalSize = getImageSize($image[0].src), + setedResult = Math.round($image.width() + 10); + e.preventDefault(); + + if (setedResult >imgOriginalSize.rw) { + setedResult = imgOriginalSize.rw; + } + $image.css('width', setedResult); + } + + function zoomOut(e) { + var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + gallery = $('[data-gallery-role="gallery"]'), + imgOriginalSize = getImageSize($image[0].src), + setedResult = Math.round($image.width() - 10); + e.preventDefault(); + + if (setedResult < imgOriginalSize.rw/2) { + setedResult = imgOriginalSize.rw/2; + } + $image.css('width', setedResult); + } + + /** + * Return width and height of original image + * @param src path for original image + * @returns {{rw: number, rh: number}} + */ + function getImageSize(src) { + var img = new Image(), + imgSize = { + rw: 0, + rh: 0 + }; + img.src = src; + imgSize.rw = img.width; + imgSize.rh = img.height; + return imgSize; + } + + + function setEventOnce() { + $('.fotorama__zoom-in') + .off('click', zoomIn) + .on('click', zoomIn); + $('.fotorama__zoom-out') + .off('click', zoomOut) + .on('click', zoomOut); + } + $(document).on('mousemove', onMousemove); _init($box, gOptions); magnifierFullscreen(); + setEventOnce(); } }(jQuery)); diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index d6f7c9931f3..3544ad6b6c3 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -84,7 +84,8 @@ define([ config.magnifierOpts.original = fotorama.data[fotorama.activeIndex].original; $($(gallerySelector).data('fotorama').activeFrame.$stageFrame).magnify(config.magnifierOpts); }); - $(element).on('fotorama:show', function () { + $(element).on('fotorama:show fotorama:fullscreenenter ', function () { + console.log('AAAAAA') hideMagnifier(); }); -- GitLab From 216ad9007ed909a508753522a59ffd2910915243 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Tue, 15 Sep 2015 18:41:22 +0300 Subject: [PATCH 112/420] JS-52: Zoom on Full Screen Mode --- .../templates/product/view/gallery.phtml | 2 + .../frontend/Magento/blank/etc/view.xml | 3 + app/design/frontend/Magento/luma/etc/view.xml | 2 + lib/web/fotorama/fotorama.js | 51 ++++++-- lib/web/mage/gallery/gallery.js | 16 +-- lib/web/mage/gallery/gallery.less | 68 +--------- lib/web/magnifier/magnifier.js | 116 +++++++++++++++--- lib/web/magnifier/magnify.js | 3 +- 8 files changed, 152 insertions(+), 109 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 3add5dee58c..d93f2dce0d4 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -25,6 +25,7 @@ "height": "<?php /* @escapeNotVerified */ echo $block->getVar("magnifier:height"); ?>", "top": "<?php /* @escapeNotVerified */ echo $block->getVar("magnifier:top"); ?>", "left": "<?php /* @escapeNotVerified */ echo $block->getVar("magnifier:left"); ?>" + "inc": "<?php echo $block->getVar("magnifier:fullscreenzoom"); ?>" }, "data": <?php /* @escapeNotVerified */ echo $block->getGalleryImagesJson(); ?>, "options": { @@ -46,6 +47,7 @@ "fullscreen": { "nav": "<?php echo $block->getVar("gallery:fullscreen:navigation"); ?>", "loop": <?php echo $block->getVar("gallery:fullscreen:loop"); ?>, + "navdir": "<?php echo $block->getVar("gallery:fullscreen:navdir"); ?>", "arrows": <?php echo $block->getVar("gallery:fullscreen:arrows"); ?>, "showCaption": <?php echo $block->getVar("gallery:fullscreen:caption"); ?>, "transitionduration": <?php echo $block->getVar("gallery:fullscreen:transition:duration"); ?>, diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 178841f20db..ed157ac6a0c 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -192,11 +192,14 @@ <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="gallery:fullscreen:loop">false</var> <!-- Fullscreen navigation loop (true/false) --> + <var name="gallery:fullscreen:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="gallery:fullscreen:arrows">null</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> <var name="gallery:fullscreen:caption">null</var> <!-- Display alt text as image title (true/false/null) --> + <var name="gallery:fullscreen:navdir">horizontal</var> <!--Sliding direction of thumbnails in full screen(horizontal/vertical) --> <var name="gallery:fullscreen:transition:effect">crossfade</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="magnifier:fullscreenzoom">20</var> <!-- Zoom for fullscreen --> <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Left position of magnifier --> <var name="magnifier:width"></var> <!-- Width of magnifier block --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index 0d69ff8dee8..b99bdec8dcd 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -199,9 +199,11 @@ <var name="gallery:fullscreen:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="gallery:fullscreen:arrows">false</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> <var name="gallery:fullscreen:caption">false</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:fullscreen:navdir">horizontal</var> <!--Sliding direction of thumbnails in full screen(horizontal/vertical) --> <var name="gallery:fullscreen:transition:effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="magnifier:fullscreenzoom">5</var> <!-- Zoom for fullscreen (integer)--> <var name="magnifier:top"></var> <!-- Top position of magnifier --> <var name="magnifier:left"></var> <!-- Right position of magnifier --> <var name="magnifier:width"></var> <!-- Width of magnifier block --> diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index d7f64c62bc1..453597325f4 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -2202,11 +2202,13 @@ fotoramaVersion = '4.6.4'; $stage.css('left', padding); $arrNext.css('right', padding); + $fullscreenIcon.css('right', padding); $wrap.css('width', $wrap.css('width') + padding); $stageShaft.css('max-width', $wrap.width() - padding); } else { $stage.css('left', ''); $arrNext.css('right', ''); + $fullscreenIcon.css('right', ''); $wrap.css('width', $wrap.css('width') + padding); $stageShaft.css('max-width', ''); } @@ -2319,7 +2321,7 @@ fotoramaVersion = '4.6.4'; * Options on the fly * */ function setOptions() { - if (opts.nav === 'dots') { + if (!opts.nav || opts.nav === 'dots') { opts.navdir = 'horizontal' } @@ -2787,14 +2789,20 @@ fotoramaVersion = '4.6.4'; } function thumbsDraw(pos, loadFLAG) { - if (opts.navdir === 'vertical') { - pos = pos - opts.thumbheight; - } + var leftLimit, + rightLimit, + exceedLimit; + if (o_nav !== 'thumbs' || isNaN(pos)) return; - var leftLimit = -pos, - rightLimit = -pos + measures.nw; + leftLimit = -pos; + rightLimit = -pos + measures.nw; + + if (opts.navdir === 'vertical') { + pos = pos - opts.thumbheight; + rightLimit = -pos + measures.h; + } $navThumbFrame.each(function () { var $this = $(this), @@ -2806,12 +2814,13 @@ fotoramaVersion = '4.6.4'; w: thisData.w } }, - specialMeasures = getSpecialMeasures(); - - specialMeasures.w = thisData.w; + specialMeasures = getSpecialMeasures(), + exceedLimit = opts.navdir === 'vertical' ? + thisData.t > rightLimit : thisData.l > rightLimit; + specialMeasures.w = thisData.w; if (thisData.l + thisData.w < leftLimit - || thisData.l > rightLimit + || exceedLimit || callFit(thisData.$img, specialMeasures)) return; loadFLAG && loadImg([eq], 'navThumb', getSpecialMeasures); @@ -3334,10 +3343,10 @@ fotoramaVersion = '4.6.4'; setFLAG = arguments[2]; extendMeasures(!that.fullScreen ? optionsToLowerCase(options) : { - width: '100%', + width: $(window).width(), maxwidth: null, minwidth: null, - height: '100%', + height: $(window).height(), maxheight: null, minheight: null }, [measures, setFLAG || that.fullScreen || opts]); @@ -3348,6 +3357,8 @@ fotoramaVersion = '4.6.4'; windowHeight = $WINDOW.height() - (o_nav ? $nav.height() : 0); if (measureIsValid(width)) { + $wrap.css({width: ''}); + $wrap.css({height: ''}); $stage.css({width: ''}); $stage.css({height: ''}); $stage.css({'line-height': ''}); @@ -3371,6 +3382,22 @@ fotoramaVersion = '4.6.4'; height = measures.h = Math.round(minMaxLimit(height, numberFromWhatever(measures.minheight, windowHeight), numberFromWhatever(measures.maxheight, windowHeight))); $stage.css({'width': width, 'height': height, 'line-height': height + 'px'}); + if (opts.navdir === 'vertical' && !that.fullscreen) { + $nav.width(opts.thumbwidth + opts.thumbmargin * 2); + } + + if (opts.navdir === 'horizontal' && !that.fullscreen) { + $nav.height(opts.thumbheight + opts.thumbmargin * 2); + } + + if (opts.navdir === 'vertical' && that.fullScreen) { + $stage.css('height', $(window).height()); + } + + if (opts.navdir === 'horizontal' && that.fullScreen) { + $stage.css('height', $(window).height() - (opts.thumbheight + opts.thumbmargin * 2)); + } + if (o_nav) { switch (opts.navdir) { case 'vertical': diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index b66c45363e4..78c5b4b91a8 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -172,7 +172,6 @@ define([ * Is triggered when breakpoint enties. */ entry: function () { - triggeredBreakpoints++; $.extend(true, config, _.clone(startConfig)); settings.api.updateOptions(settings.defaultConfig.options, true); @@ -189,16 +188,13 @@ define([ * Is triggered when breakpoint exits. */ exit: function () { - if (triggeredBreakpoints < 1) { - $.extend(true, config, _.clone(startConfig)); - settings.api.updateOptions(settings.defaultConfig.options, true); - - if (settings.isFullscreen) { - settings.api.updateOptions(settings.fullscreenConfig, true); - } - settings.activeBreakpoint = {}; + $.extend(true, config, _.clone(startConfig)); + settings.api.updateOptions(settings.defaultConfig.options, true); + + if (settings.isFullscreen) { + settings.api.updateOptions(settings.fullscreenConfig, true); } - triggeredBreakpoints--; + settings.activeBreakpoint = {}; } }); }); diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 195dd5dec43..05fb94cd6aa 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -1058,6 +1058,7 @@ text-align: center; .fotorama__img { height: auto; + width: auto; max-height: 100%; max-width: 100%; vertical-align: middle; @@ -1102,75 +1103,12 @@ bottom: 0; left: 0; right: 0; - } - } -} - -.fotorama__nav-wrap--vertical { - &.fotorama__nav-wrap { - display: inline-block; - position: absolute; - top: 0; - left: 0; - } - - .fotorama__nav__shaft { - width: 100%; - background-color: white; - .fotorama__nav__frame--thumb { - display: block; - padding-bottom: inherit !important; - } - } -} - -.fotorama--fullscreen { - .fotorama__stage__frame { - .fotorama__img { - position: absolute; - max-width: inherit; - max-height: inherit; - margin: auto; - top: 0; - bottom: 0; - left: 0; - right: 0; } - } -} - -.fotorama__nav-wrap--vertical { - &.fotorama__nav-wrap { - display: inline-block; - position: absolute; - top: 0; - left: 0; - } - - .fotorama__nav__shaft { - width: 100%; - background-color: white; - .fotorama__nav__frame--thumb { - display: block; - padding-bottom: inherit !important; - } } } -.fotorama--fullscreen { - .fotorama__stage__frame { - .fotorama__img { - position: absolute; - max-width: inherit; - max-height: inherit; - margin: auto; - top: 0; - bottom: 0; - left: 0; - right: 0; - } - } +body.fotorama__fullscreen { + overflow-y: hidden; } - diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 6a9f279d9e5..294d1b4c651 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -187,7 +187,7 @@ data[idx].lensH = data[idx].lensH > $thumb.height() ? $thumb.height() : data[idx].lensH; lens.css({ width: data[idx].lensW + 1 + 'px', - height: data[idx].lensH + 'px' + height: data[idx].lensH + 0.5 + 'px' }); } @@ -301,8 +301,8 @@ pos.l = pos.l <= 0 ? 0 : pos.l; //pos.l = pos.l > 0 ? pos.l : pos.l; curLens.css({ - left: pos.l + paddingX + 'px', - top: pos.t + paddingY + 'px' + left: pos.l + paddingX +'px', + top: pos.t + paddingY + 1.75 + 'px' }); if (lensbg) { @@ -587,7 +587,7 @@ touch, isTouchEnabled = 'ontouchstart' in document.documentElement; - $('[data-gallery-role="gallery"]').on('fotorama:fullscreenenter fotorama:showend fotorama:load', function () { + $('[data-gallery-role="gallery"]').on('fotorama:fullscreenenter fotorama:showend fotorama:load fotorama:ready', function () { var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), $imageContainer = $image.parent(), @@ -600,7 +600,32 @@ }); }); - $image.on(isTouchEnabled ? 'touchstart' : 'mousedown', function (e) { + if (gallery.data('fotorama').fullScreen) { + + $('.fotorama__stage__frame .fotorama__img').each(function () { + var image = new Image(); + image.src = $(this).attr("src"); + + if ( (image.height > $(this).parent().height()) || (image.width > $(this).parent().width()) ) { + + if (image.height / image.width < $(this).parent().height() / $(this).parent().width()) { + $(this).width($(this).parent().width()); + $(this).height('auto'); + } else { + $(this).height($(this).parent().height()); + $(this).width('auto'); + } + + $(this).css({ + 'top': '', + 'left': '' + }); + } + + }); + } + + $image.on(isTouchEnabled ? 'touchstart' : 'pointerdown mousedown MSPointerDow', function (e) { if (gallery.data('fotorama').fullScreen) { e.preventDefault(); @@ -613,18 +638,23 @@ e.clientX = touch.pageX; e.clientY = touch.pageY; } - startX = e.clientX; - startY = e.clientY; + startX = e.clientX || e.originalEvent.clientX; + startY = e.clientY || e.originalEvent.clientY; isDragActive = true; } }); - $image.on(isTouchEnabled ? 'touchmove' : 'mousemove', function (e) { + + + $image.on(isTouchEnabled ? 'touchmove' : 'mousemove pointermove MSPointerMove', function (e) { if (gallery.data('fotorama').fullScreen && isDragActive) { var top, left, - startOffset = $image.offset(); + startOffset = $image.offset(), + clientX = e.clientX || e.originalEvent.clientX, + clientY = e.clientY || e.originalEvent.clientY; + e.preventDefault(); @@ -633,8 +663,8 @@ e.clientX = touch.pageX; e.clientY = touch.pageY; } - top = +imagePosY + (e.clientY - startY); - left = +imagePosX + (e.clientX - startX); + top = +imagePosY + (clientY - startY); + left = +imagePosX + (clientX - startX); if ($image.height() > $imageContainer.height()) { @@ -653,7 +683,7 @@ if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width())) { left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); } else { - left = ($imageContainer.offset().left < left) ? 0 : left; + left = ($imageContainer.offset().left < left) ? $imageContainer.offset().left : left; } $image.offset({ 'left': left @@ -662,7 +692,7 @@ } }); - $image.on(isTouchEnabled ? 'touchend' : 'mouseup', function (e) { + $image.on(isTouchEnabled ? 'touchend' : 'mouseup pointerup MSPointerUp', function (e) { if (gallery.data('fotorama').fullScreen) { isDragActive = false; $image.css('cursor', 'pointer'); @@ -678,9 +708,51 @@ } } + if ($('.fotorama-item').data('fotorama').fullScreen) { + $('.fotorama__stage__frame .fotorama__img').each(function () { + var image = new Image(); + image.src = $(this).attr("src"); + + if ( (image.height > $(this).parent().height()) || (image.width > $(this).parent().width()) ) { + + if (image.height / image.width < $(this).parent().height() / $(this).parent().width()) { + $(this).width($(this).parent().width()); + $(this).height(''); + } else { + $(this).height($(this).parent().height()); + $(this).width(''); + } + } + }); + } + $(window).on('scroll', onScroll); $(window).resize(function() { + if ($('.fotorama-item').data('fotorama').fullScreen) { + $('.fotorama__stage__frame .fotorama__img').each(function () { + var image = new Image(); + image.src = $(this).attr("src"); + + if ( (image.height > $(this).parent().height()) || (image.width > $(this).parent().width()) ) { + + if (image.height / image.width < $(this).parent().height() / $(this).parent().width()) { + $(this).width($(this).parent().width()); + $(this).height(''); + } else { + $(this).height($(this).parent().height()); + $(this).width(''); + } + } + }); + } + + + _init($box, gOptions); + + }); + + function checkFullscreenImagePosition() { if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { var $image = $('[data-gallery-role="stage-shaft"] > [data-active="true"] > img'), @@ -715,10 +787,8 @@ $image.css('top', ''); } } + } - _init($box, gOptions); - - }); function zoomIn(e) { var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), gallery = $('[data-gallery-role="gallery"]'), @@ -729,7 +799,8 @@ if (setedResult >imgOriginalSize.rw) { setedResult = imgOriginalSize.rw; } - $image.css('width', setedResult); + $image.css({'width': setedResult, height: 'auto'}); + checkFullscreenImagePosition(); } function zoomOut(e) { @@ -737,12 +808,15 @@ gallery = $('[data-gallery-role="gallery"]'), imgOriginalSize = getImageSize($image[0].src), setedResult = Math.round($image.width() - 10); - e.preventDefault(); + if(e) { + e.preventDefault(); + } if (setedResult < imgOriginalSize.rw/2) { setedResult = imgOriginalSize.rw/2; } - $image.css('width', setedResult); + $image.css({'width': setedResult, height: 'auto'}); + checkFullscreenImagePosition(); } /** @@ -774,7 +848,9 @@ $(document).on('mousemove', onMousemove); _init($box, gOptions); - magnifierFullscreen(); setEventOnce(); + //checkFullscreenImagePosition(); + magnifierFullscreen(); + } }(jQuery)); diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index 3544ad6b6c3..cd96c0f6328 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -63,7 +63,7 @@ define([ thumb: '.fotorama__img', largeWrapper: '[data-gallery-role="magnifier"]', height: config.magnifierOpts.height || function () { - return $('[data-active="true"]').width() / config.options.ratio; + return $('[data-active="true"]').height(); }, width: config.magnifierOpts.width || function () { var productMedia = $(gallerySelector).parent().parent(); @@ -85,7 +85,6 @@ define([ $($(gallerySelector).data('fotorama').activeFrame.$stageFrame).magnify(config.magnifierOpts); }); $(element).on('fotorama:show fotorama:fullscreenenter ', function () { - console.log('AAAAAA') hideMagnifier(); }); -- GitLab From 33c0ab3b2664a535a03142e4f93b84db2c668313 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Wed, 16 Sep 2015 15:17:27 +0300 Subject: [PATCH 113/420] JS-51: Gallery Widget Configuration and Extension on theme level --- lib/web/fotorama/fotorama.js | 13 ++---- lib/web/magnifier/magnifier.js | 74 ++++++++++++++++------------------ lib/web/magnifier/magnify.js | 2 +- 3 files changed, 40 insertions(+), 49 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 453597325f4..ef45700a3ed 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -1035,7 +1035,6 @@ fotoramaVersion = '4.6.4'; obj.transform = 'translate3d(0, ' + (pos) + 'px,0)'; break; case 'list': - //console.warn("transition not implemented"); break; default : obj.transform = 'translate3d(' + (pos) + 'px,0,0)'; @@ -1909,15 +1908,12 @@ fotoramaVersion = '4.6.4'; } function onEnd(result) { - //////console.time('moveontouch.js onEnd'); if (tail.noSwipe && result.moved) return; if (!tracked) { startTracking(result.startEvent, true); } - ////console.log('onEnd'); - result.touch || MS_POINTER || $el.removeClass(grabbingClass); endTime = $.now(); @@ -2294,7 +2290,7 @@ fotoramaVersion = '4.6.4'; data = that.data = data || clone(opts.data) || getDataFromHtml($fotorama); size = that.size = data.length; - !ready.ok && opts.shuffle && shuffle(data); + ready.ok && opts.shuffle && shuffle(data); checkForVideo(); @@ -3412,7 +3408,6 @@ fotoramaVersion = '4.6.4'; $navWrap.removeClass(navShaftVerticalClass); $navWrap.removeClass(navShaftHorisontalClass); $navWrap.addClass(navShaftListClass); - //console.warn("List not implemented"); break; default: $navWrap.removeClass(navShaftVerticalClass); @@ -3431,6 +3426,7 @@ fotoramaVersion = '4.6.4'; measuresSetFLAG = setFLAG || true; + ready.ok = true; ready(); } } @@ -3705,7 +3701,6 @@ fotoramaVersion = '4.6.4'; }, 0); }, function () { - ////console.log("click"); if (!hoverFLAG) return; toggleControlsClass(!(hoverFLAG = false)); } @@ -3806,8 +3801,8 @@ fotoramaVersion = '4.6.4'; }); function ready() { - if (!ready.ok) { - ready.ok = true; + if (ready.ok) { + ready.ok = false; triggerEvent('ready'); } } diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 294d1b4c651..355321a00f5 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -116,42 +116,6 @@ _init($box, options); }; - /** - * Delete events and created block for magnify - * - */ - that.destroy = function () { - console.warn("API not implemented."); - }; - - /** - * @todo - */ - that.zoomIn = function () { - console.warn("API not implemented."); - }; - - /** - * @todo - */ - that.zoomOut = function () { - console.warn("API not implemented."); - }; - - /** - * @todo - */ - that.show = function () { - console.warn("API not implemented."); - }; - - /** - * @todo - */ - that.hide = function () { - console.warn("API not implemented."); - }; - function createLens(thumb) { if ($(thumb).siblings('.magnify-lens').length) { return false; @@ -587,8 +551,7 @@ touch, isTouchEnabled = 'ontouchstart' in document.documentElement; - $('[data-gallery-role="gallery"]').on('fotorama:fullscreenenter fotorama:showend fotorama:load fotorama:ready', function () { - + $('[data-gallery-role="gallery"]').on('fotorama:fullscreenenter fotorama:showend fotorama:load', function () { var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), $imageContainer = $image.parent(), gallery = $('[data-gallery-role="gallery"]'); @@ -849,8 +812,41 @@ $(document).on('mousemove', onMousemove); _init($box, gOptions); setEventOnce(); - //checkFullscreenImagePosition(); magnifierFullscreen(); + $('.fotorama-item').on('fotorama:load', function () { + if (document.querySelector('.fotorama__stage').addEventListener) { + if ('onwheel' in document) { + // IE9+, FF17+, Ch31+ + document.querySelector('.fotorama__stage').addEventListener("wheel", onWheel); + } else if ('onmousewheel' in document) { + + document.querySelector('.fotorama__stage').addEventListener("mousewheel", onWheel); + } else { + // Firefox < 17 + document.querySelector('.fotorama__stage').addEventListener("MozMousePixelScroll", onWheel); + } + } else { // IE8- + document.querySelector('.fotorama__stage').attachEvent("onmousewheel", onWheel); + } + + function onWheel(e) { + if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { + e = e || window.event; + + + var delta = e.deltaY || e.detail || e.wheelDelta; + + if (delta > 0) { + zoomOut(e) + } else { + zoomIn(e) + } + + e.preventDefault ? e.preventDefault() : (e.returnValue = false); + } + } + }) + } }(jQuery)); diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index cd96c0f6328..c78f1705517 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -78,7 +78,7 @@ define([ } }); - $(element).on('fotorama:showend fotorama:load fotorama:fullscreenexit', function (e, fotorama) { + $(element).on('fotorama:showend fotorama:load fotorama:fullscreenexit fotorama:ready', function (e, fotorama) { hideMagnifier(); config.magnifierOpts.large = $(gallerySelector).data('fotorama').activeFrame.img; config.magnifierOpts.original = fotorama.data[fotorama.activeIndex].original; -- GitLab From 0801bfb478311fc728cb3381a50fc21571b495ef Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Thu, 17 Sep 2015 14:52:52 +0300 Subject: [PATCH 114/420] JS-185: Zoom buttons don't hide when picture size is small enough for full-screen mode --- lib/web/magnifier/magnifier.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 355321a00f5..2adcc955bac 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -542,6 +542,18 @@ } } + function toggleZoomButtons($image) { + var image = new Image(); + image.src = $image.attr("src"); + if ( (image.height > $image.parent().height()) || (image.width > $image.parent().width()) ) { + $('.fotorama__zoom-in').show(); + $('.fotorama__zoom-out').show(); + } else { + $('.fotorama__zoom-in').hide(); + $('.fotorama__zoom-out').hide(); + } + } + function magnifierFullscreen () { var isDragActive = false, startX, @@ -565,6 +577,8 @@ if (gallery.data('fotorama').fullScreen) { + toggleZoomButtons($image); + $('.fotorama__stage__frame .fotorama__img').each(function () { var image = new Image(); image.src = $(this).attr("src"); @@ -693,6 +707,7 @@ $(window).resize(function() { if ($('.fotorama-item').data('fotorama').fullScreen) { + $('.fotorama__stage__frame .fotorama__img').each(function () { var image = new Image(); image.src = $(this).attr("src"); @@ -708,6 +723,8 @@ } } }); + + toggleZoomButtons($('[data-gallery-role="stage-shaft"] [data-active="true"] img')); } -- GitLab From 6726f33d4adc78e5715e4be5c66ba971e5c5293a Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Mon, 21 Sep 2015 12:00:08 +0300 Subject: [PATCH 115/420] JS-52: Zoom on Full Screen Mode --- .../view/frontend/templates/product/view/gallery.phtml | 3 +++ app/design/frontend/Magento/blank/etc/view.xml | 4 +++- app/design/frontend/Magento/luma/etc/view.xml | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index d93f2dce0d4..51b149b0960 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -50,6 +50,9 @@ "navdir": "<?php echo $block->getVar("gallery:fullscreen:navdir"); ?>", "arrows": <?php echo $block->getVar("gallery:fullscreen:arrows"); ?>, "showCaption": <?php echo $block->getVar("gallery:fullscreen:caption"); ?>, + "thumbwidth": <?php echo $block->getVar("gallery:fullscreen:thumbwidth"); ?>, + "thumbheight": <?php echo $block->getVar("gallery:fullscreen:thumbheight") + ?: $block->getVar("gallery:fullscreen:thumbwidth"); ?>, "transitionduration": <?php echo $block->getVar("gallery:fullscreen:transition:duration"); ?>, "transition": "<?php echo $block->getVar("gallery:fullscreen:transition:effect"); ?>" }, diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index ed157ac6a0c..aa5f000d9cf 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -195,7 +195,9 @@ <var name="gallery:fullscreen:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="gallery:fullscreen:arrows">null</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> <var name="gallery:fullscreen:caption">null</var> <!-- Display alt text as image title (true/false/null) --> - <var name="gallery:fullscreen:navdir">horizontal</var> <!--Sliding direction of thumbnails in full screen(horizontal/vertical) --> + <var name="gallery:fullscreen:navdir">horizontal</var> <!--Sliding direction of thumbnails in fullscreen(horizontal/vertical) --> + <var name="gallery:fullscreen:thumbwidth">100</var> <!-- Width of thumbnails in fullscreen --> + <var name="gallery:fullscreen:thumbheight">100</var> <!-- Height of thumbnails in fullscreen --> <var name="gallery:fullscreen:transition:effect">crossfade</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index b99bdec8dcd..b466273d739 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -200,6 +200,8 @@ <var name="gallery:fullscreen:arrows">false</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> <var name="gallery:fullscreen:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:fullscreen:navdir">horizontal</var> <!--Sliding direction of thumbnails in full screen(horizontal/vertical) --> + <var name="gallery:fullscreen:thumbwidth">150</var> <!-- Width of thumbnails in fullscreen --> + <var name="gallery:fullscreen:thumbheight">150</var> <!-- Height of thumbnails in fullscreen --> <var name="gallery:fullscreen:transition:effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> -- GitLab From cf556a72051003ff53e0d4c067f0a836df2d3d6c Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Mon, 21 Sep 2015 12:11:02 +0300 Subject: [PATCH 116/420] JS-201: Implement preview buttons actions --- .../frontend/Magento/blank/etc/view.xml | 2 +- lib/web/fotorama/fotorama.js | 108 +++++++++++++++++- 2 files changed, 104 insertions(+), 6 deletions(-) diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index aa5f000d9cf..7d51931afe5 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -186,7 +186,7 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> - <var name="gallery:navdir">vertical</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> + <var name="gallery:navdir">horizontal</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index ef45700a3ed..6f6e5b71371 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -89,6 +89,8 @@ fotoramaVersion = '4.6.4'; verticalImageClass = _fotoramaClass + '_vertical_ratio'; var JQUERY_VERSION = $ && $.fn.jquery.split('.'); + var borderPos = 0; + if (!JQUERY_VERSION || JQUERY_VERSION[0] < 1 || (JQUERY_VERSION[0] == 1 && JQUERY_VERSION[1] < 8)) { @@ -962,6 +964,7 @@ fotoramaVersion = '4.6.4'; thumbheight: THUMB_SIZE, thumbmargin: MARGIN, thumbborderwidth: MARGIN, + areSlides: true, allowfullscreen: false, // true || 'native' @@ -1598,14 +1601,59 @@ fotoramaVersion = '4.6.4'; if (typeof options.overPos !== 'undefined' && options.overPos !== options.pos) { elPos = options.overPos; } - var translate = $.extend(getTranslate(elPos, options.direction), options.width && {width: options.width}, options.height && {height: options.height}); if (elData && elData.sliding) { elData.sliding = true; } if (CSS3) { - $el.css($.extend(getDuration(options.time), translate)); + + if (!options.thumb || !OPTIONS.areSlides) { + + $el.css($.extend(getDuration(options.time), translate)); + } else { + + if ($el.selector !== '.fotorama__nav-wrap .fotorama__nav .fotorama__nav__shaft') { + $el.css($.extend(getDuration(options.time), translate)); + + if ($el.selector === ".fotorama__thumb-border") { + var slideLength = 4, + borderStep, + slidePosition; + + if (options.navdir === 'vertical') { + borderStep = options.thumb.height + options.thumb.margin; + slideLength = 4; + $('.fotorama__nav--thumbs').css('height', borderStep * slideLength); + } else { + borderStep = options.thumb.width + options.thumb.margin; + slideLength = 4; + $('.fotorama__nav--thumbs').css('width', borderStep * slideLength); + } + + if (((borderPos < options.pos) || (options.pos === 0)) && ((borderPos !== 0) || (options.pos <= borderStep))) { + + if (Math.abs(Math.round(options.pos / borderStep)) % slideLength === 0) { + slidePosition = - options.pos; + shiftSlide(slidePosition, options, borderStep, slideLength); + } + } else { + + if (Math.abs(Math.round(options.pos / borderStep)) % slideLength === slideLength - 1) { + slidePosition = borderStep * (slideLength - 1) - options.pos; + shiftSlide(slidePosition, options, borderStep, slideLength); + } else { + if (borderPos === 0) { + slidePosition = borderStep * ((options.pos / borderStep + 1) % slideLength - 1) - options.pos; + shiftSlide(slidePosition, options, borderStep, slideLength); + } + } + } + borderPos = options.pos; + } + } + } + if (options.time > 10) { afterTransition($el, 'transform', onEndFn, options.time); } else { @@ -1613,9 +1661,17 @@ fotoramaVersion = '4.6.4'; } } else { $el.stop().animate(translate, options.time, BEZIER, onEndFn); + options.measures.nw = -slidePosition + borderStep * (slideLength - 1); + $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate1)); } } + function shiftSlide(slidePosition, options, borderStep, slideLength) { + var translate1 = $.extend(getTranslate(slidePosition, options.direction), options.width && {width: options.width}, options.height && {height: options.height}); + options.measures.nw = -slidePosition + borderStep * (slideLength - 1); + $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate1)); + } + function fade($el1, $el2, $frames, options, fadeStack, chain) { var chainedFLAG = typeof chain !== 'undefined'; if (!chainedFLAG) { @@ -2789,7 +2845,6 @@ fotoramaVersion = '4.6.4'; rightLimit, exceedLimit; - if (o_nav !== 'thumbs' || isNaN(pos)) return; leftLimit = -pos; @@ -2941,7 +2996,15 @@ fotoramaVersion = '4.6.4'; pos: (opts.navdir === 'vertical' ? navFrameData.t : navFrameData.l), width: navFrameData.w, height: navFrameData.h, - direction: opts.navdir + direction: opts.navdir, + thumb: { + width: opts.thumbwidth, + height: opts.thumbheight, + margin: opts.thumbmargin, + areSlides: opts.areSlides, + measures: measures + }, + measures: measures }); } @@ -2962,6 +3025,13 @@ fotoramaVersion = '4.6.4'; direction: opts.navdir, onEnd: function () { thumbsDraw(pos, true); + }, + thumb: { + width: opts.thumbwidth, + height: opts.thumbheight, + margin: opts.thumbmargin, + areSlides: opts.areSlides, + measures: measures } }); @@ -3114,6 +3184,27 @@ fotoramaVersion = '4.6.4'; } + that.showSlide = function(index) { + if ((index > 0) && (index <= $navShaft.children().length - 1)) { + index --; + var borderStep = opts.navdir === 'vertical' ? + opts.thumbheight + opts.thumbmargin : + borderStep = opts.thumbwidth + opts.thumbmargin, + slideLength = 4, + options = { + time: opts.transitionduration, + direction: opts.navdir, + width: activeFrame[navFrameKey].data().w, + width: activeFrame[navFrameKey].data().h, + measures: measures + }, + slidePosition; + slidePosition = -(index * borderStep * slideLength); + shiftSlide(slidePosition, options, borderStep, slideLength); + thumbsDraw(false, true); + } + } + that.startAutoplay = function (interval) { if (that.autoplay) return this; pausedAutoplayFLAG = stoppedAutoplayFLAG = false; @@ -3652,7 +3743,14 @@ fotoramaVersion = '4.6.4'; pos: result.newPos, overPos: result.overPos, direction: opts.navdir, - onEnd: onEnd + onEnd: onEnd, + thumb: { + width: opts.thumbwidth, + height: opts.thumbheight, + margin: opts.thumbmargin, + areSlides: opts.areSlides, + measures: measures + } }); thumbsDraw(result.newPos); o_shadows && setShadow($nav, findShadowEdge(result.newPos, navShaftTouchTail.min, navShaftTouchTail.max, result.dir)); -- GitLab From 8a639ff2a6bd6e5e75840b62e3c5322d09696d83 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Mon, 21 Sep 2015 17:13:45 +0300 Subject: [PATCH 117/420] JS-192: Enhanced thumbnails support in configuration/theme --- .../templates/product/view/gallery.phtml | 6 ++- .../frontend/Magento/blank/etc/view.xml | 5 ++- app/design/frontend/Magento/luma/etc/view.xml | 2 + lib/web/fotorama/fotorama.js | 41 ++++++++----------- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 51b149b0960..720b719824a 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -42,7 +42,8 @@ "height": <?php /* @escapeNotVerified */ echo $block->getImageAttribute('product_page_image_medium', 'height') ?: $block->getImageAttribute('product_page_image_medium', 'width'); ?> "transitionduration": <?php echo $block->getVar("gallery:transition:duration"); ?>, - "transition": "<?php echo $block->getVar("gallery:transition:effect"); ?>" + "transition": "<?php echo $block->getVar("gallery:transition:effect"); ?>", + "carouselNavigation": <?php echo $block->getVar("gallery:navigation:carousel"); ?> }, "fullscreen": { "nav": "<?php echo $block->getVar("gallery:fullscreen:navigation"); ?>", @@ -54,7 +55,8 @@ "thumbheight": <?php echo $block->getVar("gallery:fullscreen:thumbheight") ?: $block->getVar("gallery:fullscreen:thumbwidth"); ?>, "transitionduration": <?php echo $block->getVar("gallery:fullscreen:transition:duration"); ?>, - "transition": "<?php echo $block->getVar("gallery:fullscreen:transition:effect"); ?>" + "transition": "<?php echo $block->getVar("gallery:fullscreen:transition:effect"); ?>", + "carouselNavigation": <?php echo $block->getVar("gallery:fullscreen:navigation:carousel"); ?> }, "breakpoints": { "mobile": { diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 7d51931afe5..95ef9d6f476 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -186,20 +186,23 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> - <var name="gallery:navdir">horizontal</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> + <var name="gallery:navdir">vertical</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="gallery:navigation:carousel">false</var> <!-- Display navigation thumbs as carousel (true/false) --> <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="gallery:fullscreen:loop">false</var> <!-- Fullscreen navigation loop (true/false) --> <var name="gallery:fullscreen:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="gallery:fullscreen:arrows">null</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> <var name="gallery:fullscreen:caption">null</var> <!-- Display alt text as image title (true/false/null) --> + <var name="gallery:fullscreen:navdir">vertical</var> <!--Sliding direction of thumbnails in full screen(horizontal/vertical) --> <var name="gallery:fullscreen:navdir">horizontal</var> <!--Sliding direction of thumbnails in fullscreen(horizontal/vertical) --> <var name="gallery:fullscreen:thumbwidth">100</var> <!-- Width of thumbnails in fullscreen --> <var name="gallery:fullscreen:thumbheight">100</var> <!-- Height of thumbnails in fullscreen --> <var name="gallery:fullscreen:transition:effect">crossfade</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="gallery:fullscreen:navigation:carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> <var name="magnifier:fullscreenzoom">20</var> <!-- Zoom for fullscreen --> <var name="magnifier:top"></var> <!-- Top position of magnifier --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index b466273d739..d8d0e04fc8f 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -193,6 +193,7 @@ <var name="gallery:navdir">horizontal</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="gallery:navigation:carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="gallery:fullscreen:loop">true</var> <!-- Fullscreen navigation loop (true/false/null) --> @@ -204,6 +205,7 @@ <var name="gallery:fullscreen:thumbheight">150</var> <!-- Height of thumbnails in fullscreen --> <var name="gallery:fullscreen:transition:effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:fullscreen:transition:duration">500</var> <!-- Sets transition duration in ms --> + <var name="gallery:fullscreen:navigation:carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> <var name="magnifier:fullscreenzoom">5</var> <!-- Zoom for fullscreen (integer)--> <var name="magnifier:top"></var> <!-- Top position of magnifier --> diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 6f6e5b71371..8e9864d67f2 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -964,7 +964,7 @@ fotoramaVersion = '4.6.4'; thumbheight: THUMB_SIZE, thumbmargin: MARGIN, thumbborderwidth: MARGIN, - areSlides: true, + carouselnavigation: true, allowfullscreen: false, // true || 'native' @@ -1608,28 +1608,18 @@ fotoramaVersion = '4.6.4'; if (CSS3) { - if (!options.thumb || !OPTIONS.areSlides) { - + if (!options.thumb || !options.thumb.areSlides) { $el.css($.extend(getDuration(options.time), translate)); } else { - if ($el.selector !== '.fotorama__nav-wrap .fotorama__nav .fotorama__nav__shaft') { $el.css($.extend(getDuration(options.time), translate)); if ($el.selector === ".fotorama__thumb-border") { var slideLength = 4, - borderStep, + borderStep = options.thumb.margin, slidePosition; - if (options.navdir === 'vertical') { - borderStep = options.thumb.height + options.thumb.margin; - slideLength = 4; - $('.fotorama__nav--thumbs').css('height', borderStep * slideLength); - } else { - borderStep = options.thumb.width + options.thumb.margin; - slideLength = 4; - $('.fotorama__nav--thumbs').css('width', borderStep * slideLength); - } + borderStep += options.navdir === 'vertical' ? options.thumb.height : options.thumb.width; if (((borderPos < options.pos) || (options.pos === 0)) && ((borderPos !== 0) || (options.pos <= borderStep))) { @@ -1662,14 +1652,18 @@ fotoramaVersion = '4.6.4'; } else { $el.stop().animate(translate, options.time, BEZIER, onEndFn); options.measures.nw = -slidePosition + borderStep * (slideLength - 1); - $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate1)); + $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate)); } } function shiftSlide(slidePosition, options, borderStep, slideLength) { - var translate1 = $.extend(getTranslate(slidePosition, options.direction), options.width && {width: options.width}, options.height && {height: options.height}); - options.measures.nw = -slidePosition + borderStep * (slideLength - 1); - $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate1)); + var translate = $.extend(getTranslate(slidePosition, options.direction), options.width && {width: options.width}, options.height && {height: options.height}); + if (options.direction === 'vertical') { + options.measures.h = -slidePosition + borderStep * (slideLength - 1); + } else { + options.measures.nw = -slidePosition + borderStep * (slideLength - 1); + } + $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate)); } function fade($el1, $el2, $frames, options, fadeStack, chain) { @@ -2805,6 +2799,7 @@ fotoramaVersion = '4.6.4'; addNavFrameEvents(frame); frameData.$wrap = $frame.children(':first'); + $navThumbFrame = $navThumbFrame.add($frame); if (dataFrame.video) { frameData.$wrap.append($videoPlay.clone()); @@ -3001,7 +2996,7 @@ fotoramaVersion = '4.6.4'; width: opts.thumbwidth, height: opts.thumbheight, margin: opts.thumbmargin, - areSlides: opts.areSlides, + areSlides: opts.carouselnavigation, measures: measures }, measures: measures @@ -3018,7 +3013,6 @@ fotoramaVersion = '4.6.4'; l = (opts.navdir === 'vertical' ? boundTop : boundLeft), pos = overflowFLAG && minMaxLimit(l, navShaftTouchTail.min, navShaftTouchTail.max), time = options.time * 1.1; - slide($navShaft, { time: time, pos: pos || 0, @@ -3030,7 +3024,7 @@ fotoramaVersion = '4.6.4'; width: opts.thumbwidth, height: opts.thumbheight, margin: opts.thumbmargin, - areSlides: opts.areSlides, + areSlides: opts.carouselnavigation, measures: measures } }); @@ -3737,8 +3731,7 @@ fotoramaVersion = '4.6.4'; var target = result.$target.closest('.' + navFrameClass, $navShaft)[0]; target && onNavFrameClick.call(target, result.startEvent); } else if (result.pos !== result.newPos) { - pausedAutoplayFLAG = true; - slide($navShaft, { + pausedAutoplayFLAG = true; slide($navShaft, { time: result.time, pos: result.newPos, overPos: result.overPos, @@ -3748,7 +3741,7 @@ fotoramaVersion = '4.6.4'; width: opts.thumbwidth, height: opts.thumbheight, margin: opts.thumbmargin, - areSlides: opts.areSlides, + areSlides: opts.carouselnavigation, measures: measures } }); -- GitLab From 238aa975fd722dfa6a5034b5eacf57426db06049 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Tue, 22 Sep 2015 12:12:49 +0300 Subject: [PATCH 118/420] JS-203: Video container class add --- lib/web/fotorama/fotorama.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 8e9864d67f2..a075d11174c 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -79,6 +79,7 @@ fotoramaVersion = '4.6.4'; htmlClass = _fotoramaClass + '__html', + videoContainerClass = _fotoramaClass + '-video-container', videoClass = _fotoramaClass + '__video', videoPlayClass = videoClass + '-play', videoCloseClass = videoClass + '-close', @@ -2642,7 +2643,7 @@ fotoramaVersion = '4.6.4'; .addClass(imgClass + (fullFLAG ? ' ' + imgFullClass : '')) .prependTo($frame); - if ($frame.hasClass(stageFrameClass)) { + if ($frame.hasClass(stageFrameClass) && !$frame.hasClass(videoContainerClass)) { $frame.attr("href", $img.attr("src")); } -- GitLab From 638d070e0cec83bb126c4b5b2a4e817442d4f351 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Tue, 22 Sep 2015 20:25:28 +0300 Subject: [PATCH 119/420] JS-187: Implement drag event --- .../frontend/Magento/blank/etc/view.xml | 4 +- lib/web/fotorama/fotorama.js | 113 ++++++++++++++---- 2 files changed, 89 insertions(+), 28 deletions(-) diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 95ef9d6f476..2b682ce37d3 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -186,10 +186,10 @@ <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> <var name="gallery:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> - <var name="gallery:navdir">vertical</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> + <var name="gallery:navdir">horizontal</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> - <var name="gallery:navigation:carousel">false</var> <!-- Display navigation thumbs as carousel (true/false) --> + <var name="gallery:navigation:carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="gallery:fullscreen:loop">false</var> <!-- Fullscreen navigation loop (true/false) --> diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index a075d11174c..bce922827ea 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -43,6 +43,7 @@ fotoramaVersion = '4.6.4'; navDotsClass = navClass + '--dots', navThumbsClass = navClass + '--thumbs', navFrameClass = navClass + '__frame', + navFrameThumbClass = navFrameClass + '--thumb', fadeClass = _fotoramaClass + '__fade', fadeFrontClass = fadeClass + '-front', @@ -1616,6 +1617,7 @@ fotoramaVersion = '4.6.4'; $el.css($.extend(getDuration(options.time), translate)); if ($el.selector === ".fotorama__thumb-border") { + var slideLength = 4, borderStep = options.thumb.margin, slidePosition; @@ -1652,7 +1654,7 @@ fotoramaVersion = '4.6.4'; } } else { $el.stop().animate(translate, options.time, BEZIER, onEndFn); - options.measures.nw = -slidePosition + borderStep * (slideLength - 1); + options.measures.nw = -slidePosition + borderStep * (slideLength - 1); $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate)); } } @@ -1888,7 +1890,7 @@ fotoramaVersion = '4.6.4'; min, max, snap, - dir = options.direction || 'horizontal', + dir, slowFLAG, controlFLAG, moved, @@ -1899,7 +1901,6 @@ fotoramaVersion = '4.6.4'; startCoo = coo = (dir === 'vertical') ? e._y : e._x; startTime = e._now; - moveTrack = [ [startTime, startCoo] ]; @@ -1913,8 +1914,8 @@ fotoramaVersion = '4.6.4'; min = tail.min; max = tail.max; snap = tail.snap, - dir = tail.direction||'horizontal', - $el.navdir = dir; + dir = tail.direction || 'horizontal', + $el.navdir = dir; slowFLAG = e.altKey; tracked = moved = false; @@ -1939,10 +1940,12 @@ fotoramaVersion = '4.6.4'; edge = findShadowEdge(moveElPos, min, max, dir); - if (moveElPos <= min) { - moveElPos = edgeResistance(moveElPos, min); - } else if (moveElPos >= max) { - moveElPos = edgeResistance(moveElPos, max); + if (!options.carouselnavigation) { + if (moveElPos <= min) { + moveElPos = edgeResistance(moveElPos, min); + } else if (moveElPos >= max) { + moveElPos = edgeResistance(moveElPos, max); + } } if (!tail.noMove) { @@ -2034,6 +2037,7 @@ fotoramaVersion = '4.6.4'; moved: result.moved || longTouchFLAG && snap, pos: moveElPos, newPos: newPos, + cooDiff: (startCoo - coo), overPos: overPos, time: time, dir:dir @@ -2150,6 +2154,7 @@ fotoramaVersion = '4.6.4'; nextIndex, nextAutoplayIndex, startIndex, + slidesNumb, o_loop, o_nav, @@ -2522,10 +2527,12 @@ fotoramaVersion = '4.6.4'; } function setNavShaftMinMax() { - - var isVerticalDir = (opts.navdir === 'vertical'); - var param = isVerticalDir ? $navShaft.height() : $navShaft.width(); - var mainParam = isVerticalDir ? measures.h : measures.nw; + var isVerticalDir = (opts.navdir === 'vertical'), + measureToCalculate = opts.thumbmargin + $('.' + navFrameThumbClass).length * ( + isVerticalDir ? opts.thumbheight : opts.thumbwidth + opts.thumbmargin), + param = (opts.carouselnavigation ? measureToCalculate : + isVerticalDir ? $navShaft.height(): $navShaft.width()), + mainParam = isVerticalDir ? measures.h : measures.nw; navShaftTouchTail.min = Math.min(0, mainParam - param); navShaftTouchTail.max = 0; navShaftTouchTail.direction = opts.navdir; @@ -3184,7 +3191,7 @@ fotoramaVersion = '4.6.4'; index --; var borderStep = opts.navdir === 'vertical' ? opts.thumbheight + opts.thumbmargin : - borderStep = opts.thumbwidth + opts.thumbmargin, + opts.thumbwidth + opts.thumbmargin, slideLength = 4, options = { time: opts.transitionduration, @@ -3459,6 +3466,8 @@ fotoramaVersion = '4.6.4'; height = height || (ratio && width / ratio); + slidesNumb = Math.floor($wrap.width()/opts.thumbwidth); + if (height) { width = Math.round(width); height = measures.h = Math.round(minMaxLimit(height, numberFromWhatever(measures.minheight, windowHeight), numberFromWhatever(measures.maxheight, windowHeight))); @@ -3712,6 +3721,57 @@ fotoramaVersion = '4.6.4'; direction: 'horizontal' }); + function slideDrag (pos, newPos,cooDiff) { + console.log(pos, newPos); + if (opts.carouselnavigation) { + var borderStep = opts.navdir === 'vertical' ? + opts.thumbheight + opts.thumbmargin : + opts.thumbwidth + opts.thumbmargin, + slidePosition, + options = { + time: opts.transitionduration, + direction: opts.navdir, + width: activeFrame[navFrameKey].data().w, + height: activeFrame[navFrameKey].data().h, + measures: measures + }; + + if (newPos !== 0 && pos < 0) { + if(pos >= newPos) { + console.log('>>') + if (pos < navShaftTouchTail.min) { + slidePosition = newPos + (-Math.ceil(newPos % (borderStep * slidesNumb))); + shiftSlide(slidePosition, options, borderStep, slidesNumb); + } else { + slidePosition = newPos - (borderStep * slidesNumb + Math.round(newPos % (borderStep * slidesNumb) - 1)); + shiftSlide(slidePosition, options, borderStep, slidesNumb); + } + } else { + console.log('<<') + if (pos < navShaftTouchTail.min) { + if(cooDiff < 0) { + slidePosition = newPos + (-Math.ceil(newPos % (borderStep * slidesNumb))); + shiftSlide(slidePosition, options, borderStep, slidesNumb); + } else { + slidePosition = newPos - (borderStep * slidesNumb + Math.round(newPos % (borderStep * slidesNumb)- 1)); + shiftSlide(slidePosition, options, borderStep, slidesNumb); + } + + } else { + slidePosition = newPos + (-Math.ceil(newPos % (borderStep * slidesNumb))); + shiftSlide(slidePosition, options, borderStep, slidesNumb); + } + } + } + + if (newPos === 0) { + console.log('dont move') + slidePosition = borderStep * ((newPos/ borderStep + 1) % slidesNumb - 1) - newPos; + shiftSlide(slidePosition, options, borderStep, slidesNumb); + } + } + slideDrag.slidePosition = slidePosition; + } navShaftTouchTail = moveOnTouch($navShaft, { onStart: onTouchStart, @@ -3722,7 +3782,7 @@ fotoramaVersion = '4.6.4'; onEnd: function (result) { function onEnd() { - slideNavShaft.l = result.newPos; + slideNavShaft.l = opts.carouselnavigation ? slideDrag.slidePosition : result.newPos; releaseAutoplay(); changeAutoplay(); thumbsDraw(result.newPos, true); @@ -3732,23 +3792,23 @@ fotoramaVersion = '4.6.4'; var target = result.$target.closest('.' + navFrameClass, $navShaft)[0]; target && onNavFrameClick.call(target, result.startEvent); } else if (result.pos !== result.newPos) { - pausedAutoplayFLAG = true; slide($navShaft, { + console.log('catch'); + opts.carouselnavigation && slideDrag(result.pos, result.newPos,result.cooDiff); + pausedAutoplayFLAG = true; + !opts.carouselnavigation && slide($navShaft, { time: result.time, pos: result.newPos, overPos: result.overPos, direction: opts.navdir, - onEnd: onEnd, - thumb: { - width: opts.thumbwidth, - height: opts.thumbheight, - margin: opts.thumbmargin, - areSlides: opts.carouselnavigation, - measures: measures - } + onEnd: onEnd }); - thumbsDraw(result.newPos); + + thumbsDraw(opts.carouselnavigation ? slideDrag.slidePosition : result.newPos, true); o_shadows && setShadow($nav, findShadowEdge(result.newPos, navShaftTouchTail.min, navShaftTouchTail.max, result.dir)); + } else { + console.log('else worked'); + opts.carouselnavigation &&slideDrag(result.pos, result.newPos,result.cooDiff); onEnd(); } }, @@ -3756,7 +3816,8 @@ fotoramaVersion = '4.6.4'; timeHigh: 2, friction: 5, $wrap: $nav, - direction: opts.navdir + direction: opts.navdir, + carouselnavigation: opts.carouselnavigation }); stageWheelTail = wheel($stage, { -- GitLab From d1fc948ebc1329e479254d40abf58fcb1509facb Mon Sep 17 00:00:00 2001 From: Uladzislau Harbachou <uladzislau_harbachou@epam.com> Date: Wed, 23 Sep 2015 13:33:55 +0300 Subject: [PATCH 120/420] JS-188 - Create mock-up for arrows --- lib/web/fotorama/fotorama.js | 6 +-- lib/web/mage/gallery/gallery.html | 6 +++ lib/web/mage/gallery/gallery.less | 90 ++++++++++++++++++++++++++++--- 3 files changed, 93 insertions(+), 9 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index bce922827ea..f2b14ce90f4 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -1618,7 +1618,7 @@ fotoramaVersion = '4.6.4'; if ($el.selector === ".fotorama__thumb-border") { - var slideLength = 4, + var slideLength = Math.floor($el.closest('.fotorama__wrap').width()/options.thumb.width), borderStep = options.thumb.margin, slidePosition; @@ -3192,7 +3192,7 @@ fotoramaVersion = '4.6.4'; var borderStep = opts.navdir === 'vertical' ? opts.thumbheight + opts.thumbmargin : opts.thumbwidth + opts.thumbmargin, - slideLength = 4, + slideLength = Math.floor($el.closest('.fotorama__wrap').width()/opts.thumbwidth), options = { time: opts.transitionduration, direction: opts.navdir, @@ -3205,7 +3205,7 @@ fotoramaVersion = '4.6.4'; shiftSlide(slidePosition, options, borderStep, slideLength); thumbsDraw(false, true); } - } + }; that.startAutoplay = function (interval) { if (that.autoplay) return this; diff --git a/lib/web/mage/gallery/gallery.html b/lib/web/mage/gallery/gallery.html index 473d784d22c..14381c41423 100644 --- a/lib/web/mage/gallery/gallery.html +++ b/lib/web/mage/gallery/gallery.html @@ -23,6 +23,12 @@ <div class="fotorama__nav-wrap" data-gallery-role="nav-wrap"> <div class="fotorama__nav fotorama__nav--thumbs"> <div class="fotorama__fullscreen-icon" tabindex="0" role="button"></div> + <div class="fotorama__thumb__arr--left" tabindex="0" role="button"> + <div class="fotorama__thumb__arr">Left</div> + </div> + <div class="fotorama__thumb__arr--right" tabindex="0" role="button"> + <div class="fotorama__thumb__arr">Right</div> + </div> <div class="fotorama__nav__shaft"> <div class="fotorama__thumb-border"></div> </div> diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 05fb94cd6aa..aeb6a2bde2a 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -19,6 +19,13 @@ transform: translate3d(@x, @y, @z); } +.fotorama-rotate (@deg) { + -webkit-transform: rotate(@deg); + -moz-transform: rotate(@deg); + -ms-transform: rotate(@deg); + -o-transform: rotate(@deg); +} + .translateX(@value) { -webkit-transform: translateX(@value); -ms-transform: translateX(@value); @@ -37,6 +44,14 @@ background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.2) 25%, rgba(0, 0, 0, 0.3) 75%, transparent), radial-gradient(farthest-side at @x @y, rgba(0, 0, 0, 0.4), transparent); } +.fotorama-arrow-gradient(@d){ + background-image: -webkit-linear-gradient(@d, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0)); + background-image: -moz-linear-gradient(@d, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0)); + background-image: -ms-linear-gradient(@d, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0)); + background-image: -o-linear-gradient(@d, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0)); + background-image: linear-gradient(@d, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0)); +} + .fotorama-inline-block(@va: middle) { *display: inline; *zoom: 1; @@ -1062,7 +1077,6 @@ max-height: 100%; max-width: 100%; vertical-align: middle; - width: auto; } } @@ -1095,18 +1109,82 @@ .fotorama--fullscreen { .fotorama__stage__frame { .fotorama__img { - position: absolute; - max-width: inherit; - max-height: inherit; - margin: auto; - top: 0; bottom: 0; left: 0; + margin: auto; + max-height: inherit; + max-width: inherit; + position: absolute; right: 0; + top: 0; + } + } +} +.fotorama__nav-wrap--horisontal { + .fotorama__thumb__arr--left, + .fotorama__thumb__arr--right { + bottom: 0; + position: absolute; + top: 0; + width: 30px; + z-index: @z-index-10; + .fotorama__thumb__arr { + width: 100%; + .fotorama-abs-center(); + } + } + .fotorama__thumb__arr--left { + .fotorama-arrow-gradient(left); + left: 0; + .fotorama__thumb__arr { + background-position: -30px -30px; + } + } + .fotorama__thumb__arr--right { + .fotorama-arrow-gradient(right); + right: 0; + .fotorama__thumb__arr { + background-position: -60px -30px; } + } +} +.fotorama__nav-wrap--vertical { + .fotorama__thumb__arr--left, + .fotorama__thumb__arr--right { + height: 30px; + left: 0; + position: absolute; + right: 0; + z-index: @z-index-10; + .fotorama__thumb__arr { + .fotorama-rotate(90deg); + margin: auto; + width: 30px; + } + } + .fotorama__thumb__arr--left { + .fotorama-arrow-gradient(top); + top: 0; + .fotorama__thumb__arr { + background-position: -30px -30px; + } } + .fotorama__thumb__arr--right { + .fotorama-arrow-gradient(bottom); + bottom: 0; + .fotorama__thumb__arr { + background-position: -60px -30px; + } + } +} + +.fotorama__thumb__arr { + &:extend(.fotorama-sprite); + background-size: 300%; + font-size: 0.001px; + padding-bottom: 30px; } body.fotorama__fullscreen { -- GitLab From 3790b5b14f3160be288f4463a0d787e1ae0cfab5 Mon Sep 17 00:00:00 2001 From: Uladzislau Harbachou <uladzislau_harbachou@epam.com> Date: Wed, 23 Sep 2015 14:11:16 +0300 Subject: [PATCH 121/420] JS-188 - Create mock-up for arrows(fix for variable) --- lib/web/mage/gallery/gallery.less | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index aeb6a2bde2a..d337576bc38 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -7,6 +7,7 @@ @fotorama-arw-size: 95px; @fotorama_close_size: 30px; @size-fotorama-block: 50px; +@fotorama-thumb-arrow: 30px; @import '../../css/source/lib/_lib.less'; // Global lib @import '../../css/source/_theme.less'; // Theme overrides @@ -1127,7 +1128,7 @@ bottom: 0; position: absolute; top: 0; - width: 30px; + width: @fotorama-thumb-arrow; z-index: @z-index-10; .fotorama__thumb__arr { width: 100%; @@ -1138,14 +1139,14 @@ .fotorama-arrow-gradient(left); left: 0; .fotorama__thumb__arr { - background-position: -30px -30px; + background-position: (-@fotorama-thumb-arrow) (-@fotorama-thumb-arrow); } } .fotorama__thumb__arr--right { .fotorama-arrow-gradient(right); right: 0; .fotorama__thumb__arr { - background-position: -60px -30px; + background-position: (-@fotorama-thumb-arrow*2) (-@fotorama-thumb-arrow); } } } @@ -1153,7 +1154,7 @@ .fotorama__nav-wrap--vertical { .fotorama__thumb__arr--left, .fotorama__thumb__arr--right { - height: 30px; + height: @fotorama-thumb-arrow; left: 0; position: absolute; right: 0; @@ -1161,21 +1162,21 @@ .fotorama__thumb__arr { .fotorama-rotate(90deg); margin: auto; - width: 30px; + width: @fotorama-thumb-arrow; } } .fotorama__thumb__arr--left { .fotorama-arrow-gradient(top); top: 0; .fotorama__thumb__arr { - background-position: -30px -30px; + background-position: (-@fotorama-thumb-arrow) (-@fotorama-thumb-arrow); } } .fotorama__thumb__arr--right { .fotorama-arrow-gradient(bottom); bottom: 0; .fotorama__thumb__arr { - background-position: -60px -30px; + background-position: (-@fotorama-thumb-arrow*2) (-@fotorama-thumb-arrow); } } } @@ -1184,7 +1185,7 @@ &:extend(.fotorama-sprite); background-size: 300%; font-size: 0.001px; - padding-bottom: 30px; + padding-bottom: @fotorama-thumb-arrow; } body.fotorama__fullscreen { -- GitLab From 42015c9473820df8a063f6796e4e66e44db98ac9 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Wed, 23 Sep 2015 15:50:14 +0300 Subject: [PATCH 122/420] MAGETWO-42995: Stabilize functional tests --- app/code/Magento/Review/Block/Adminhtml/Edit.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/code/Magento/Review/Block/Adminhtml/Edit.php b/app/code/Magento/Review/Block/Adminhtml/Edit.php index 6f2e129b0b6..1bb6c7a8e47 100644 --- a/app/code/Magento/Review/Block/Adminhtml/Edit.php +++ b/app/code/Magento/Review/Block/Adminhtml/Edit.php @@ -179,6 +179,7 @@ class Edit extends \Magento\Backend\Block\Widget\Form\Container } $this->_formInitScripts[] = ' + require(["prototype"], function() { var review = { updateRating: function() { elements = [ @@ -205,6 +206,7 @@ class Edit extends \Magento\Backend\Block\Widget\Form\Container Event.observe(window, \'load\', function(){ Event.observe($("select_stores"), \'change\', review.updateRating); }); + }); '; } -- GitLab From 53f7c51962667ff841914afad64cf5a3367a1286 Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Wed, 23 Sep 2015 16:16:56 +0300 Subject: [PATCH 123/420] JS-200: Test existing accessibility features --- lib/web/fotorama/fotorama.js | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index f2b14ce90f4..54c2c2d0260 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -91,7 +91,8 @@ fotoramaVersion = '4.6.4'; verticalImageClass = _fotoramaClass + '_vertical_ratio'; var JQUERY_VERSION = $ && $.fn.jquery.split('.'); - var borderPos = 0; + var borderPos = 0, + curSlide = 1; if (!JQUERY_VERSION || JQUERY_VERSION[0] < 1 @@ -1616,9 +1617,9 @@ fotoramaVersion = '4.6.4'; if ($el.selector !== '.fotorama__nav-wrap .fotorama__nav .fotorama__nav__shaft') { $el.css($.extend(getDuration(options.time), translate)); - if ($el.selector === ".fotorama__thumb-border") { + if ($el.selector === "." + thumbBorderClass) { - var slideLength = Math.floor($el.closest('.fotorama__wrap').width()/options.thumb.width), + var slideLength = Math.floor($el.closest('.' + wrapClass).width() / options.thumb.width), borderStep = options.thumb.margin, slidePosition; @@ -1642,7 +1643,8 @@ fotoramaVersion = '4.6.4'; } } } - borderPos = options.pos; + borderPos = options.pos; + curSlide = Math.floor(borderPos / borderStep / slideLength) + 1; } } } @@ -1655,7 +1657,7 @@ fotoramaVersion = '4.6.4'; } else { $el.stop().animate(translate, options.time, BEZIER, onEndFn); options.measures.nw = -slidePosition + borderStep * (slideLength - 1); - $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate)); + $('.' + navShaftClass).css($.extend(getDuration(options.time), translate)); } } @@ -1666,7 +1668,7 @@ fotoramaVersion = '4.6.4'; } else { options.measures.nw = -slidePosition + borderStep * (slideLength - 1); } - $('.fotorama__nav__shaft').css($.extend(getDuration(options.time), translate)); + $('.' + navShaftClass).css($.extend(getDuration(options.time), translate)); } function fade($el1, $el2, $frames, options, fadeStack, chain) { @@ -2498,6 +2500,7 @@ fotoramaVersion = '4.6.4'; lastOptions = $.extend({}, opts); setStagePosition(); + that.showSlide(curSlide); } function normalizeIndex(index) { @@ -2748,7 +2751,11 @@ fotoramaVersion = '4.6.4'; setTimeout(function () { lockScroll($nav); }, 0); - slideNavShaft({time: o_transitionDuration, guessIndex: $(this).data().eq, minMax: navShaftTouchTail}); + if (!opts.carouselnavigation) { + slideNavShaft({time: o_transitionDuration, guessIndex: $(this).data().eq, minMax: navShaftTouchTail}); + } else { + that.showSlide(Math.floor($(this).data().eq / slidesNumb) + 1) + } }); } @@ -3187,12 +3194,12 @@ fotoramaVersion = '4.6.4'; } that.showSlide = function(index) { - if ((index > 0) && (index <= $navShaft.children().length - 1)) { + if (index > 0 && activeFrame) { index --; var borderStep = opts.navdir === 'vertical' ? opts.thumbheight + opts.thumbmargin : opts.thumbwidth + opts.thumbmargin, - slideLength = Math.floor($el.closest('.fotorama__wrap').width()/opts.thumbwidth), + slideLength = Math.floor($('.' + wrapClass).width()/opts.thumbwidth), options = { time: opts.transitionduration, direction: opts.navdir, @@ -3337,6 +3344,10 @@ fotoramaVersion = '4.6.4'; showedFLAG = typeof lastActiveIndex !== 'undefined' && lastActiveIndex !== activeIndex; lastActiveIndex = activeIndex; + if (opts.carouselnavigation) { + that.showSlide(curSlide); + } + return this; }; @@ -3782,7 +3793,7 @@ fotoramaVersion = '4.6.4'; onEnd: function (result) { function onEnd() { - slideNavShaft.l = opts.carouselnavigation ? slideDrag.slidePosition : result.newPos; + slideNavShaft.l = opts.carouselnavigation ? slideDrag.slidePosition: result.newPos; releaseAutoplay(); changeAutoplay(); thumbsDraw(result.newPos, true); -- GitLab From ad880f4b2fd875e0e21b6a2f1d704fe33afa24d3 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Wed, 23 Sep 2015 17:43:57 +0300 Subject: [PATCH 124/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- .../templates/catalog/category/edit.phtml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit.phtml index fcf5ba45d80..7974f2731cf 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit.phtml @@ -20,9 +20,10 @@ require([ "jquery", "tinymce", + 'Magento_Ui/js/modal/confirm', "loadingPopup", "mage/backend/floating-header" -], function(jQuery, tinyMCE){ +], function(jQuery, tinyMCE, confirm){ //<![CDATA[ function categoryReset(url,useAjax){ @@ -40,9 +41,14 @@ require([ * with this form, we surely delete same category in the tree and at backend */ function categoryDelete(url) { - if (confirm('<?php /* @escapeNotVerified */ echo __('Are you sure you want to delete this category?') ?>')){ - location.href = url; - } + confirm({ + content: '<?php /* @escapeNotVerified */ echo __('Are you sure you want to delete this category?') ?>', + actions: { + confirm: function(){ + location.href = url; + } + } + }); } /** -- GitLab From e4cfadb259f806c843eb9a0145794de8b5a6311f Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Thu, 24 Sep 2015 11:18:22 +0300 Subject: [PATCH 125/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- .../view/frontend/web/js/cc-edit-form.js | 11 +++++-- .../Braintree/view/frontend/web/js/cc-form.js | 7 +++-- .../web/catalog/base-image-uploader.js | 7 +++-- .../adminhtml/web/catalog/category/form.js | 7 +++-- .../frontend/web/js/opc-checkout-method.js | 11 +++++-- .../view/frontend/web/js/opc-payment-info.js | 11 +++++-- .../frontend/web/js/opc-shipping-method.js | 12 +++++-- .../view/frontend/web/js/opcheckout.js | 31 ++++++++++++++----- .../Checkout/view/frontend/web/js/payment.js | 11 +++++-- .../Checkout/view/frontend/web/js/sidebar.js | 7 +++-- .../adminhtml/web/js/variations/steps/bulk.js | 7 +++-- .../adminhtml/web/js/variations/variations.js | 9 ++++-- .../web/js/view/authentication-popup.js | 7 +++-- .../view/adminhtml/web/js/integration.js | 4 ++- .../Payment/view/adminhtml/web/transparent.js | 11 +++++-- .../Payment/view/frontend/web/transparent.js | 11 +++++-- .../view/adminhtml/web/js/rules/conflict.js | 14 +++++---- .../Paypal/view/frontend/web/order-review.js | 15 ++++++--- .../Magento/Rule/view/adminhtml/web/rules.js | 1 + .../Wishlist/view/frontend/web/wishlist.js | 8 +++-- lib/web/mage/adminhtml/browser.js | 7 +++-- lib/web/mage/adminhtml/events.js | 11 +++++-- lib/web/mage/adminhtml/grid.js | 12 +++++-- lib/web/mage/adminhtml/wysiwyg/widget.js | 15 ++++++--- lib/web/mage/backend/editablemultiselect.js | 15 ++++++--- lib/web/mage/backend/validation.js | 9 ++++-- 26 files changed, 195 insertions(+), 76 deletions(-) diff --git a/app/code/Magento/Braintree/view/frontend/web/js/cc-edit-form.js b/app/code/Magento/Braintree/view/frontend/web/js/cc-edit-form.js index 075a6418ab8..3d8e561448c 100644 --- a/app/code/Magento/Braintree/view/frontend/web/js/cc-edit-form.js +++ b/app/code/Magento/Braintree/view/frontend/web/js/cc-edit-form.js @@ -7,8 +7,9 @@ define([ "jquery", "braintree", 'mage/translate', + 'Magento_Ui/js/modal/alert', "jquery/ui" -], function ($, braintree, $t) { +], function ($, braintree, $t, alert) { 'use strict'; $.widget('mage.braintreeEditForm', { @@ -199,13 +200,17 @@ define([ } }, error: function (response) { - alert($t('There was error during saving card data')); + alert({ + content: $t('There was error during saving card data') + }); } }); } else { //handle error $('body').trigger('processStop'); - alert($t('There was error during saving card data')); + alert({ + content: $t('There was error during saving card data') + }); } }); } diff --git a/app/code/Magento/Braintree/view/frontend/web/js/cc-form.js b/app/code/Magento/Braintree/view/frontend/web/js/cc-form.js index 303ead9b654..a922038eae6 100644 --- a/app/code/Magento/Braintree/view/frontend/web/js/cc-form.js +++ b/app/code/Magento/Braintree/view/frontend/web/js/cc-form.js @@ -7,8 +7,9 @@ define([ "jquery", "braintree", 'mage/translate', + 'Magento_Ui/js/modal/alert', "jquery/ui" -], function($, braintree, $t) { +], function($, braintree, $t, alert) { "use strict"; $.widget('mage.braintreeForm', { @@ -92,7 +93,9 @@ define([ var form = $(self.options.formSelector)[0]; form.submit(); } else { - alert($t("An error occured with payment processing.")); + alert({ + content: $t("An error occured with payment processing.") + }); } } ); diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/base-image-uploader.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/base-image-uploader.js index 5ccfea334c7..9ffd98db5ef 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/base-image-uploader.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/base-image-uploader.js @@ -6,10 +6,11 @@ define([ 'jquery', 'mage/template', + 'Magento_Ui/js/modal/alert', 'jquery/ui', 'jquery/file-uploader', 'mage/translate' -], function ($, mageTemplate) { +], function ($, mageTemplate, alert) { 'use strict'; $.widget('mage.baseImage', { @@ -124,7 +125,9 @@ define([ if (!data.result.error) { $galleryContainer.trigger('addItem', data.result); } else { - alert($.mage.__('We don\'t recognize or support this file extension type.')); + alert({ + content: $.mage.__('We don\'t recognize or support this file extension type.') + }); } }, add: function (event, data) { diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/form.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/form.js index 0d5be338a5a..eaa65160561 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/form.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/category/form.js @@ -6,10 +6,11 @@ /*global Ajax:true alert:true*/ define([ "jquery", + 'Magento_Ui/js/modal/alert', "mage/backend/form", "jquery/ui", "prototype" -], function($){ +], function($, alert){ "use strict"; $.widget("mage.categoryForm", $.mage.form, { @@ -55,7 +56,9 @@ define([ if (transport.responseText.isJSON()) { var response = transport.responseText.evalJSON(); if (response.error) { - alert(response.message); + alert({ + content: response.message + }); } else { if (this.element.find(this.options.categoryIdSelector).prop('value') == response.id) { this.element.find(this.options.categoryPathSelector) diff --git a/app/code/Magento/Checkout/view/frontend/web/js/opc-checkout-method.js b/app/code/Magento/Checkout/view/frontend/web/js/opc-checkout-method.js index 059595059e5..b281e8b2507 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/opc-checkout-method.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/opc-checkout-method.js @@ -13,10 +13,11 @@ define([ "jquery", "accordion", + 'Magento_Ui/js/modal/alert', "jquery/ui", "mage/validation/validation", "mage/translate" -], function($, accordion){ +], function($, accordion, alert){ 'use strict'; // Base widget, handle ajax events and first section(Checkout Method) in one page checkout accordion @@ -183,7 +184,9 @@ define([ if (json.isGuestCheckoutAllowed) { if( !guestChecked && !registerChecked ){ - alert( $.mage.__('Please create an account or check out as a guest.') ); + alert({ + content: $.mage.__('Please create an account or check out as a guest.') + }); return false; } @@ -245,7 +248,9 @@ define([ $(this.options.countrySelector).trigger('change'); - alert(msg); + alert({ + content: msg + }); } return; diff --git a/app/code/Magento/Checkout/view/frontend/web/js/opc-payment-info.js b/app/code/Magento/Checkout/view/frontend/web/js/opc-payment-info.js index 6a5b67d0d13..8b43ffa8625 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/opc-payment-info.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/opc-payment-info.js @@ -13,10 +13,11 @@ define([ 'jquery', 'mage/template', + 'Magento_Ui/js/modal/alert', 'jquery/ui', 'mage/translate', 'Magento_Checkout/js/opc-shipping-method' -], function ($, mageTemplate) { +], function ($, mageTemplate, alert) { 'use strict'; // Extension for mage.opcheckout - fifth section(Payment Information) in one page checkout accordion @@ -121,7 +122,9 @@ define([ var methods = this.element.find('[name^="payment["]'); if (methods.length === 0) { - alert($.mage.__('We can\'t complete your order because you don\'t have a payment method set up.')); + alert({ + content: $.mage.__('We can\'t complete your order because you don\'t have a payment method set up.') + }); return false; } @@ -132,7 +135,9 @@ define([ return true; } - alert($.mage.__('Please choose a payment method.')); + alert({ + content:$.mage.__('Please choose a payment method.') + }); return false; }, diff --git a/app/code/Magento/Checkout/view/frontend/web/js/opc-shipping-method.js b/app/code/Magento/Checkout/view/frontend/web/js/opc-shipping-method.js index ba64095ce8b..385bc3fd273 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/opc-shipping-method.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/opc-shipping-method.js @@ -12,11 +12,12 @@ */ define([ "jquery", + 'Magento_Ui/js/modal/alert', "jquery/ui", "Magento_Checkout/js/opc-shipping-info", "mage/validation", "mage/translate" -], function($){ +], function($, alert){ 'use strict'; // Extension for mage.opcheckout - fourth section(Shipping Method) in one page checkout accordion @@ -63,13 +64,18 @@ define([ _validateShippingMethod: function() { var methods = this.element.find('[name="shipping_method"]'); if (methods.length === 0) { - alert($.mage.__('We can\'t ship to this address. Please enter another address or edit this one.')); + alert({ + content: $.mage.__('We can\'t ship to this address. Please enter another address or edit this one.') + }); return false; } if (methods.filter(':checked').length) { return true; } - alert($.mage.__('Please specify a shipping method.')); + alert({ + content:$.mage.__('Please specify a shipping method.') + }); + return false; } }); diff --git a/app/code/Magento/Checkout/view/frontend/web/js/opcheckout.js b/app/code/Magento/Checkout/view/frontend/web/js/opcheckout.js index dfa427d7c4d..77014714577 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/opcheckout.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/opcheckout.js @@ -11,10 +11,11 @@ define([ 'jquery', 'mage/template', + 'Magento_Ui/js/modal/alert', 'jquery/ui', 'mage/validation', 'mage/translate' -], function ($, mageTemplate) { +], function ($, mageTemplate, alert) { 'use strict'; // Base widget, handle ajax events and first section(Checkout Method) in one page checkout accordion @@ -156,7 +157,9 @@ define([ this.element.find(this.options.checkout.registerCustomerPasswordSelector).show(); } else { - alert($.mage.__('Please create an account or check out as a guest.')); + alert({ + content: $.mage.__('Please create an account or check out as a guest.') + }); return false; } @@ -202,9 +205,13 @@ define([ $(this.options.countrySelector).trigger('change'); - alert(msg); + alert({ + content: msg + }); } else { - alert(response.error); + alert({ + content: response.error + }); } return; @@ -427,7 +434,9 @@ define([ var methods = this.element.find('[name="shipping_method"]'); if (methods.length === 0) { - alert($.mage.__('We can\'t ship to this address. Please choose another address or edit the current one.')); + alert({ + content: $.mage.__('We can\'t ship to this address. Please choose another address or edit the current one.') + }); return false; } @@ -436,7 +445,9 @@ define([ return true; } - alert($.mage.__('Please specify a shipping method.')); + alert({ + content: $.mage.__('Please specify a shipping method.') + }); return false; } @@ -551,7 +562,9 @@ define([ var methods = this.element.find('[name^="payment["]'); if (methods.length === 0) { - alert($.mage.__('We can\'t complete your order because you don\'t have a payment method set up.')); + alert({ + content: $.mage.__('We can\'t complete your order because you don\'t have a payment method set up.') + }); return false; } @@ -562,7 +575,9 @@ define([ return true; } - alert($.mage.__('Please choose a payment method.')); + alert({ + content: $.mage.__('Please choose a payment method.') + }); return false; }, diff --git a/app/code/Magento/Checkout/view/frontend/web/js/payment.js b/app/code/Magento/Checkout/view/frontend/web/js/payment.js index 258531548bc..b0237173822 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/payment.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/payment.js @@ -11,9 +11,10 @@ define([ 'jquery', 'mage/template', + 'Magento_Ui/js/modal/alert', 'jquery/ui', 'mage/translate' -], function ($, mageTemplate) { +], function ($, mageTemplate, alert) { 'use strict'; $.widget('mage.payment', { @@ -79,13 +80,17 @@ define([ isValid = false; if (methods.length === 0) { - alert($.mage.__('We can\'t complete your order because you don\'t have a payment method set up.')); + alert({ + content: $.mage.__('We can\'t complete your order because you don\'t have a payment method set up.') + }); } else if (this.options.checkoutPrice < this.options.minBalance) { isValid = true; } else if (methods.filter('input:radio:checked').length) { isValid = true; } else { - alert($.mage.__('Please choose a payment method.')); + alert({ + content: $.mage.__('Please choose a payment method.') + }); } return isValid; diff --git a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js index dbffd0358d1..8509164c987 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js @@ -8,9 +8,10 @@ define([ "jquery", 'Magento_Customer/js/model/authentication-popup', 'Magento_Customer/js/customer-data', + 'Magento_Ui/js/modal/alert', "jquery/ui", "mage/decorate" -], function($, authenticationPopup, customerData){ +], function($, authenticationPopup, customerData, alert){ $.widget('mage.sidebar', { options: { @@ -169,7 +170,9 @@ define([ } else { var msg = response.error_message; if (msg) { - window.alert($.mage.__(msg)); + alert({ + content: $.mage.__(msg) + }); } } }) diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/bulk.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/bulk.js index bf58fc27d47..dc43dfd39fb 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/bulk.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/bulk.js @@ -11,9 +11,10 @@ define([ 'underscore', 'Magento_Ui/js/lib/collapsible', 'mage/template', + 'Magento_Ui/js/modal/alert', 'jquery/file-uploader', 'mage/translate' -], function (Component, $, ko, _, Collapsible, mageTemplate) { +], function (Component, $, ko, _, Collapsible, mageTemplate, alert) { 'use strict'; return Component.extend({ @@ -346,7 +347,9 @@ define([ $('#' + data.fileId) .delay(2000) .hide('highlight'); - alert($.mage.__('We don\'t recognize or support this file extension type.')); + alert({ + content: $.mage.__('We don\'t recognize or support this file extension type.') + }); } $('#' + data.fileId).remove(); }, diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/variations.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/variations.js index dea945abb29..a683fa8c8d6 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/variations.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/variations.js @@ -6,8 +6,9 @@ define([ 'uiComponent', 'jquery', 'ko', - 'underscore' -], function (Component, $, ko, _) { + 'underscore', + 'Magento_Ui/js/modal/alert' +], function (Component, $, ko, _, alert) { 'use strict'; return Component.extend({ @@ -242,7 +243,9 @@ define([ parentElement.find('[name$="[image]"]').val(data.result.file); parentElement.find('[data-toggle=dropdown]').dropdown().show(); } else { - alert($.mage.__('We don\'t recognize or support this file extension type.')); + alert({ + content: $.mage.__('We don\'t recognize or support this file extension type.') + }); } }, start: function (event) { diff --git a/app/code/Magento/Customer/view/frontend/web/js/view/authentication-popup.js b/app/code/Magento/Customer/view/frontend/web/js/view/authentication-popup.js index dfef07a4b87..369314bc183 100644 --- a/app/code/Magento/Customer/view/frontend/web/js/view/authentication-popup.js +++ b/app/code/Magento/Customer/view/frontend/web/js/view/authentication-popup.js @@ -14,9 +14,10 @@ define( 'Magento_Customer/js/model/authentication-popup', 'mage/translate', 'mage/url', + 'Magento_Ui/js/modal/alert', 'mage/validation' ], - function($, ko, Component, loginAction, customerData, authenticationPopup, $t, url) { + function($, ko, Component, loginAction, customerData, authenticationPopup, $t, url, alert) { 'use strict'; return Component.extend({ registerUrl: window.authenticationPopup.customerRegisterUrl, @@ -53,7 +54,9 @@ define( if (this.modalWindow) { $(this.modalWindow).modal('openModal'); } else { - alert($t('Guest checkout is disabled.')); + alert({ + content: $t('Guest checkout is disabled.') + }); } }, diff --git a/app/code/Magento/Integration/view/adminhtml/web/js/integration.js b/app/code/Magento/Integration/view/adminhtml/web/js/integration.js index c95ef6c671e..93504661db6 100644 --- a/app/code/Magento/Integration/view/adminhtml/web/js/integration.js +++ b/app/code/Magento/Integration/view/adminhtml/web/js/integration.js @@ -252,7 +252,9 @@ define([ popup.modal('openModal'); }, error: function (jqXHR, status, error) { - alert($.mage.__('Sorry, something went wrong. Please try again later.')); + alert({ + content: $.mage.__('Sorry, something went wrong. Please try again later.') + }); window.console && console.log(status + ': ' + error + "\nResponse text:\n" + jqXHR.responseText); }, complete: function () { diff --git a/app/code/Magento/Payment/view/adminhtml/web/transparent.js b/app/code/Magento/Payment/view/adminhtml/web/transparent.js index 7edbb30c631..e97038d2245 100644 --- a/app/code/Magento/Payment/view/adminhtml/web/transparent.js +++ b/app/code/Magento/Payment/view/adminhtml/web/transparent.js @@ -6,8 +6,9 @@ define([ "jquery", "mage/template", + 'Magento_Ui/js/modal/alert', "jquery/ui" -], function($, mageTemplate){ +], function($, mageTemplate, alert){ "use strict"; $.widget('mage.transparent', { @@ -157,10 +158,14 @@ define([ _processErrors: function (response) { var msg = response.error_messages; if (typeof (msg) === 'object') { - alert(msg.join("\n")); + alert({ + content:msg.join("\n") + }); } if (msg) { - alert(msg); + alert({ + content: msg + }); } } }); diff --git a/app/code/Magento/Payment/view/frontend/web/transparent.js b/app/code/Magento/Payment/view/frontend/web/transparent.js index 2060ca7c8ea..66b3203d7bc 100644 --- a/app/code/Magento/Payment/view/frontend/web/transparent.js +++ b/app/code/Magento/Payment/view/frontend/web/transparent.js @@ -6,9 +6,10 @@ define([ "jquery", "mage/template", + 'Magento_Ui/js/modal/alert', "jquery/ui", "Magento_Payment/js/model/credit-card-validation/validator" -], function($, mageTemplate){ +], function($, mageTemplate, alert){ 'use strict'; $.widget('mage.transparent', { @@ -101,10 +102,14 @@ define([ } else { msg = response.error_messages; if (typeof (msg) === 'object') { - alert(msg.join("\n")); + alert({ + content: msg.join("\n") + }); } if (msg) { - alert(msg); + alert({ + content: msg + }); } } } diff --git a/app/code/Magento/Paypal/view/adminhtml/web/js/rules/conflict.js b/app/code/Magento/Paypal/view/adminhtml/web/js/rules/conflict.js index 98c79243d48..4d94f6a2a9f 100644 --- a/app/code/Magento/Paypal/view/adminhtml/web/js/rules/conflict.js +++ b/app/code/Magento/Paypal/view/adminhtml/web/js/rules/conflict.js @@ -4,7 +4,9 @@ */ (function() { var executed = false; - define([], function () { + define([ + 'Magento_Ui/js/modal/alert' + ], function (alert) { "use strict"; return function ($target, $owner, data) { if ($owner.find(data.enableButton).val() == 1) { @@ -22,11 +24,11 @@ if (!isDisabled && !executed) { executed = true; - alert( - "The following error(s) occured:\n\r" - + "Some PayPal solutions conflict.\n\r" - + "Please re-enable the previously enabled payment solutions." - ); + alert({ + content: "The following error(s) occured:\n\r" + +"Some PayPal solutions conflict.\n\r" + +"Please re-enable the previously enabled payment solutions." + }); } } }; diff --git a/app/code/Magento/Paypal/view/frontend/web/order-review.js b/app/code/Magento/Paypal/view/frontend/web/order-review.js index 56514f9164c..b1a072d8e98 100644 --- a/app/code/Magento/Paypal/view/frontend/web/order-review.js +++ b/app/code/Magento/Paypal/view/frontend/web/order-review.js @@ -6,11 +6,12 @@ /*global alert*/ define([ "jquery", + 'Magento_Ui/js/modal/alert', "jquery/ui", "mage/translate", "mage/mage", "mage/validation" -], function($){ +], function($, alert){ "use strict"; $.widget('mage.orderReview', { @@ -129,7 +130,9 @@ define([ msg = msg.join("\n"); } } - alert($.mage.__(msg)); + alert({ + content: $.mage.__(msg) + }); return false; } if (response.redirect) { @@ -141,11 +144,15 @@ define([ return false; } this._ajaxComplete(); - alert($.mage.__('Sorry, something went wrong.')); + alert({ + content: $.mage.__('Sorry, something went wrong.') + }); } }, error: function () { - alert($.mage.__('Sorry, something went wrong. Please try again later.')); + alert({ + content: $.mage.__('Sorry, something went wrong. Please try again later.') + }); this._ajaxComplete(); } }); diff --git a/app/code/Magento/Rule/view/adminhtml/web/rules.js b/app/code/Magento/Rule/view/adminhtml/web/rules.js index 262d155a53c..50b3fdd85ea 100644 --- a/app/code/Magento/Rule/view/adminhtml/web/rules.js +++ b/app/code/Magento/Rule/view/adminhtml/web/rules.js @@ -4,6 +4,7 @@ */ define([ "jquery", + 'Magento_Ui/js/modal/alert', "mage/translate", "prototype" ], function(jQuery){ diff --git a/app/code/Magento/Wishlist/view/frontend/web/wishlist.js b/app/code/Magento/Wishlist/view/frontend/web/wishlist.js index bb697c1fa52..a831603f9d1 100644 --- a/app/code/Magento/Wishlist/view/frontend/web/wishlist.js +++ b/app/code/Magento/Wishlist/view/frontend/web/wishlist.js @@ -7,10 +7,12 @@ define([ 'jquery', 'mage/template', + 'Magento_Ui/js/modal/alert', 'jquery/ui', 'mage/validation/validation', + 'mage/dataPost' -], function ($, mageTemplate) { +], function ($, mageTemplate, alert) { 'use strict'; $.widget('mage.wishlist', { @@ -152,7 +154,9 @@ define([ if ($(form).find('input:checkbox:checked').length) { form.submit(); } else { - alert(this.options.checkBoxValidationMessage); + alert({ + content: this.options.checkBoxValidationMessage + }); } }, this) }); diff --git a/lib/web/mage/adminhtml/browser.js b/lib/web/mage/adminhtml/browser.js index 05fa6f7fedd..51629ce2e7c 100644 --- a/lib/web/mage/adminhtml/browser.js +++ b/lib/web/mage/adminhtml/browser.js @@ -8,11 +8,12 @@ define([ "tinymce", "Magento_Ui/js/modal/prompt", "Magento_Ui/js/modal/confirm", + "Magento_Ui/js/modal/alert", "Magento_Ui/js/modal/modal", "jquery/ui", "jquery/jstree/jquery.jstree", "mage/mage" -], function($, tinyMCEm, prompt, confirm){ +], function($, tinyMCEm, prompt, confirm, alert){ MediabrowserUtility = { windowId: 'modal_dialog_message', @@ -266,7 +267,9 @@ define([ showLoader: true }).done($.proxy(function(data) { if (data.error) { - window.alert(data.message); + alert({ + content: data.message + }); } else { self.tree.jstree('refresh', self.element.find('[data-id="' + self.activeNode.id + '"]')); } diff --git a/lib/web/mage/adminhtml/events.js b/lib/web/mage/adminhtml/events.js index c342714812d..d64f09f2e97 100644 --- a/lib/web/mage/adminhtml/events.js +++ b/lib/web/mage/adminhtml/events.js @@ -3,8 +3,9 @@ * See COPYING.txt for license details. */ define([ + 'Magento_Ui/js/modal/alert', 'prototype' -], function(){ +], function(alert){ // from http://www.someelement.com/2007/03/eventpublisher-custom-events-la-pubsub.html varienEvents = Class.create(); @@ -105,10 +106,14 @@ define([ } catch (e) { if (this.id){ - alert("error: error in " + this.id + ".fireEvent():\n\nevent name: " + eventName + "\n\nerror message: " + e.message); + alert({ + content: "error: error in " + this.id + ".fireEvent():\n\nevent name: " + eventName + "\n\nerror message: " + e.message + }); } else { - alert("error: error in [unknown object].fireEvent():\n\nevent name: " + eventName + "\n\nerror message: " + e.message); + alert({ + content: "error: error in [unknown object].fireEvent():\n\nevent name: " + eventName + "\n\nerror message: " + e.message + }); } } } diff --git a/lib/web/mage/adminhtml/grid.js b/lib/web/mage/adminhtml/grid.js index 684f8358df0..727c7f3a1cb 100644 --- a/lib/web/mage/adminhtml/grid.js +++ b/lib/web/mage/adminhtml/grid.js @@ -7,11 +7,12 @@ define([ 'jquery', 'mage/template', + 'Magento_Ui/js/modal/alert', 'mage/mage', 'prototype', 'mage/adminhtml/form', 'mage/adminhtml/events' -], function (jQuery, mageTemplate) { +], function (jQuery, mageTemplate, alert) { window.varienGrid = new Class.create(); @@ -158,7 +159,9 @@ varienGrid.prototype = { if (transport.responseText.isJSON()) { var response = transport.responseText.evalJSON() if (response.error) { - alert(response.message); + alert({ + content: response.message + }); } if (response.ajaxExpired && response.ajaxRedirect) { setLocation(response.ajaxRedirect); @@ -642,7 +645,10 @@ varienGridMassaction.prototype = { }, apply: function() { if(varienStringArray.count(this.checkedString) == 0) { - alert(this.errorText); + alert({ + content: this.errorText + }); + return; } diff --git a/lib/web/mage/adminhtml/wysiwyg/widget.js b/lib/web/mage/adminhtml/wysiwyg/widget.js index a037065f29e..cd1febf3b30 100644 --- a/lib/web/mage/adminhtml/wysiwyg/widget.js +++ b/lib/web/mage/adminhtml/wysiwyg/widget.js @@ -6,6 +6,7 @@ define([ "jquery", "tinymce", + 'Magento_Ui/js/modal/alert', "jquery/ui", "mage/translate", "mage/mage", @@ -13,7 +14,7 @@ define([ "mage/adminhtml/events", "prototype", 'Magento_Ui/js/modal/modal' -], function(jQuery, tinyMCE){ +], function(jQuery, tinyMCE, alert){ var widgetTools = { getDivHtml: function(id, html) { @@ -194,7 +195,9 @@ define([ this.switchOptionsContainer(optionsContainerId); } } catch(e) { - alert(e.message); + alert({ + content: e.message + }); } }.bind(this) } @@ -254,7 +257,9 @@ define([ this.updateContent(transport.responseText); } catch(e) { - alert(e.message); + alert({ + content: e.message + }); } }.bind(this) }); @@ -355,7 +360,9 @@ define([ this.dialogContent = widgetTools.getDivHtml(responseContainerId, transport.responseText); this.openDialogWindow(this.dialogContent); } catch(e) { - alert(e.message); + alert({ + content: e.message + }); } }.bind(this) } diff --git a/lib/web/mage/backend/editablemultiselect.js b/lib/web/mage/backend/editablemultiselect.js index 6ae8d935dde..075770b6f9d 100644 --- a/lib/web/mage/backend/editablemultiselect.js +++ b/lib/web/mage/backend/editablemultiselect.js @@ -4,9 +4,10 @@ */ define([ "jquery", + 'Magento_Ui/js/modal/alert', "jquery/editableMultiselect/js/jquery.editable", "jquery/editableMultiselect/js/jquery.multiselect" -], function($){ +], function($, alert){ /** @@ -162,7 +163,9 @@ define([ $(this).html(result[entityValueName].escapeHTML()); } } else { - alert(result.error_message); + alert({ + content: result.error_message + }); } } }); @@ -223,7 +226,9 @@ define([ options.mselectInputClass + ''; sectionBlock.find(inputSelector).trigger('blur'); } else { - alert(result.error_message); + alert({ + content: result.error_message + }); } } }; @@ -258,7 +263,9 @@ define([ deleteButton.parent().remove(); select.find('option').eq(index).remove(); } else { - alert(result.error_message); + alert({ + content: result.error_message + }); } } }; diff --git a/lib/web/mage/backend/validation.js b/lib/web/mage/backend/validation.js index ec400a5c124..ef684d773df 100644 --- a/lib/web/mage/backend/validation.js +++ b/lib/web/mage/backend/validation.js @@ -9,6 +9,7 @@ define([ "jquery", "underscore", + 'Magento_Ui/js/modal/alert', "jquery/ui", "jquery/validate", "mage/translate", @@ -17,7 +18,7 @@ } else { factory(jQuery); } -}(function ($, _) { +}(function ($, _, alert) { "use strict"; $.extend(true, $.validator.prototype, { @@ -221,8 +222,10 @@ newFileContainer = elmParent.find('.new-file'); if (!alertAlreadyDisplayed && (newFileContainer.empty() || newFileContainer.is(':visible'))) { alertAlreadyDisplayed = true; - alert($.mage.__('There are files that were selected but not uploaded yet. ' + - 'Please upload or remove them first')); + alert({ + content: $.mage.__('There are files that were selected but not uploaded yet. ' + + 'Please upload or remove them first') + }); } return false; } -- GitLab From c4a2c0d9cff2cc91d729b6bb7f4721868f88e3d0 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Thu, 24 Sep 2015 18:20:32 +0300 Subject: [PATCH 126/420] MAGETWO-43132: Gallery missed placeholder image --- app/code/Magento/Catalog/Block/Product/View/Gallery.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/View/Gallery.php b/app/code/Magento/Catalog/Block/Product/View/Gallery.php index dc8d204e76c..f85d23928c1 100644 --- a/app/code/Magento/Catalog/Block/Product/View/Gallery.php +++ b/app/code/Magento/Catalog/Block/Product/View/Gallery.php @@ -120,9 +120,9 @@ class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView } if(empty($imagesItems)) { $imagesItems[] = [ - 'thumb' => $this->_assetRepo->getUrl('Magento_Catalog::images/product/placeholder/small_image.jpg'), - 'img' => $this->_assetRepo->getUrl('Magento_Catalog::images/product/placeholder/image.jpg'), - 'original' => $this->_assetRepo->getUrl('Magento_Catalog::images/product/placeholder/image.jpg'), + 'thumb' => $this->_imageHelper->getDefaultPlaceholderUrl('image'), + 'img' => $this->_imageHelper->getDefaultPlaceholderUrl('image'), + 'original' => $this->_imageHelper->getDefaultPlaceholderUrl('image'), 'caption' => '', 'position' => '0', 'isMain' => true, -- GitLab From 46407049f4c8b8e4ab93c8fb77688243ec7ad381 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Thu, 24 Sep 2015 19:05:07 +0300 Subject: [PATCH 127/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- .../adminhtml/templates/store/switcher.phtml | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml b/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml index f43b8f6bf69..c4a130de2c0 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml @@ -130,7 +130,10 @@ </div> <script> -require(['jquery'], function(jQuery){ +require([ + 'jquery', + 'Magento_Ui/js/modal/confirm' +], function(jQuery, confirm){ (function($) { var $storesList = $('[data-role=stores-list]'); @@ -171,11 +174,19 @@ require(['jquery'], function(jQuery){ } else { <?php if ($block->getUseConfirm()): ?> - if (confirm("<?php /* @escapeNotVerified */ echo __('Please confirm scope switching. All data that hasn\'t been saved will be lost.') ?>")) { - reload(); - } else { - obj.value = '<?php /* @escapeNotVerified */ echo $block->getStoreId() ?>'; - } + + confirm({ + content: "<?php /* @escapeNotVerified */ echo __('Please confirm scope switching. All data that hasn\'t been saved will be lost.') ?>", + actions: { + confirm: function() { + reload(); + }, + cancel: function() { + obj.value = '<?php /* @escapeNotVerified */ echo $block->getStoreId() ?>'; + } + } + }); + <?php else: ?> reload(); <?php endif; ?> -- GitLab From 01582242a432f04d5421fce66f64a54c8e3ee7b6 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Thu, 24 Sep 2015 19:54:55 +0300 Subject: [PATCH 128/420] MAGETWO-43132: Gallery missed placeholder image --- app/code/Magento/Catalog/Block/Product/View/Gallery.php | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/View/Gallery.php b/app/code/Magento/Catalog/Block/Product/View/Gallery.php index f85d23928c1..4b5fad3db27 100644 --- a/app/code/Magento/Catalog/Block/Product/View/Gallery.php +++ b/app/code/Magento/Catalog/Block/Product/View/Gallery.php @@ -16,11 +16,6 @@ use Magento\Framework\Json\EncoderInterface; class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView { - /** - * @var \Magento\Framework\View\Asset\Repository - */ - protected $_assetRepo; - /** * @var \Magento\Framework\Config\View */ @@ -34,13 +29,11 @@ class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView public function __construct( \Magento\Catalog\Block\Product\Context $context, \Magento\Framework\Stdlib\ArrayUtils $arrayUtils, - \Magento\Framework\View\Asset\Repository $assetRepo, EncoderInterface $jsonEncoder, array $data = [] ) { $this->jsonEncoder = $jsonEncoder; - $this->_assetRepo = $assetRepo; parent::__construct($context, $arrayUtils, $data); } @@ -120,7 +113,7 @@ class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView } if(empty($imagesItems)) { $imagesItems[] = [ - 'thumb' => $this->_imageHelper->getDefaultPlaceholderUrl('image'), + 'thumb' => $this->_imageHelper->getDefaultPlaceholderUrl('thumbnail'), 'img' => $this->_imageHelper->getDefaultPlaceholderUrl('image'), 'original' => $this->_imageHelper->getDefaultPlaceholderUrl('image'), 'caption' => '', -- GitLab From 03cef3144e860752bd7410ed60bb64641795134e Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Fri, 25 Sep 2015 11:28:01 +0300 Subject: [PATCH 129/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- app/code/Magento/AdminNotification/Block/System/Messages.php | 2 +- .../AdminNotification/view/adminhtml/web/system/notification.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/AdminNotification/Block/System/Messages.php b/app/code/Magento/AdminNotification/Block/System/Messages.php index 4ba73969e8d..870f40955a0 100644 --- a/app/code/Magento/AdminNotification/Block/System/Messages.php +++ b/app/code/Magento/AdminNotification/Block/System/Messages.php @@ -121,7 +121,7 @@ class Messages extends \Magento\Backend\Block\Template [ 'systemMessageDialog' => [ 'buttons' => [], - 'modalClass' => 'ui-dialog-active ui-popup-message', + 'modalClass' => 'ui-dialog-active ui-popup-message modal-system-messages', 'ajaxUrl' => $this->_getMessagesUrl() ], ] diff --git a/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js b/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js index 5cab64ddd03..cf24ed62857 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js +++ b/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js @@ -12,6 +12,7 @@ define([ $.widget('mage.systemMessageDialog', $.mage.modal, { options: { + modalClass: 'modal-system-messages', systemMessageTemplate: '<% _.each(data.items, function(item) { %>' + '<li class="message message-warning <% if (item.severity == 1) { %>error<% } else { %>warning<% } %>">' + -- GitLab From 734a608709b2fc0037e242f47973a8a855e8f711 Mon Sep 17 00:00:00 2001 From: Dubovyk Oleksandr <odubovyk@ebay.com> Date: Fri, 25 Sep 2015 12:20:06 +0300 Subject: [PATCH 130/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget - Fixed Popup Window styles --- .../templates/system/messages/popup.phtml | 2 +- .../templates/catalog/category/tree.phtml | 17 +++--- .../css/source/components/_modals_extend.less | 59 +++++++++++++++++-- lib/web/css/source/components/_modals.less | 34 +---------- 4 files changed, 66 insertions(+), 46 deletions(-) diff --git a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml index 6bf89e17d48..93b389bed2f 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml +++ b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml @@ -10,7 +10,7 @@ <?php /** @var $block \Magento\AdminNotification\Block\System\Messages\UnreadMessagePopup */ ?> <div id="system_messages_list" data-role="system_messages_list" title="<?php echo $block->escapeHtml($block->getPopupTitle()); ?>"> - <ul class="message-system-list"> + <ul class="message-system-list messages"> <?php foreach ($block->getUnreadMessages() as $message): ?> <li class="message message-warning <?php /* @escapeNotVerified */ echo $block->getItemClass($message);?>"> <?php /* @escapeNotVerified */ echo $message->getText();?> diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml index 791e4dbd96b..d45e04db2b4 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml @@ -446,8 +446,15 @@ jQuery('[data-id="information-dialog-category"]').modal({ type: 'popup', buttons: [{ + text: 'Cancel', + class: 'action-tertiary', + click: function () { + reRenderTree(); + this.closeModal(); + } + }, { text: 'Ok', - class: '', + class: 'action-secondary', click: function () { (function ($) { $.ajax({ @@ -473,14 +480,6 @@ })(jQuery); this.closeModal(); } - - }, { - text: 'Cancel', - class: '', - click: function () { - reRenderTree(); - this.closeModal(); - } }] }).trigger('openModal'); diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less index 12c122edb51..1b591ce69bd 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less @@ -21,7 +21,9 @@ @modal-action-close__font-size: 2rem; @modal-action-close__active__font-size: 1.8rem; @modal-action-close__hover__color: darken(@color-brownie-vanilla, 10%); - +@modal-popup-footer-button__margin: 2rem; +@modal-popup-footer-button__padding: 1.4rem; +@modal-popup-footer-button__font-size: 1.5rem; // .modal-popup, @@ -31,6 +33,7 @@ position: absolute; right: 0; top: 0; + z-index: 1; &:active { transform: none; &:before { @@ -49,15 +52,63 @@ } .modal-popup { + &.confirm { + .modal-inner-wrap { + left: 50%; + margin-left: -(@modal-popup-confirm__width / 2); + width: @modal-popup-confirm__width; + } + } + &.modal-system-messages { + .modal-inner-wrap { + background: @color-lazy-sun; + } + } + &._image-box { + .modal-inner-wrap { + margin: 5rem auto; + max-width: @modal-popup-image-box__max-width; + position: static; + } + .thumbnail-preview { + padding-bottom: @indent__l; + text-align: center; + .thumbnail-preview-image-block { + border: 1px solid @modal-popup-image-box__border-color; + margin: 0 auto @indent__base; + max-width: @modal-popup-image-box-preview__max-width; + padding: @indent__base; + } + .thumbnail-preview-image { + max-height: @modal-popup-image-box-preview-image__max-height; + } + } + } .modal-title { font-size: @modal-popup-title__font-size; margin-right: @modal-popup-title__font-size + @modal-popup__padding + 1rem; } - .action-close { + .modal-title + .action-close { padding: @modal-popup__padding; + &:active{ + padding-top: @modal-popup__padding + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 3; + padding-right: @modal-popup__padding + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 3; + } + } + .action-close { + padding: @modal-popup__padding / 2.5; &:active { - padding-top: @modal-popup__padding + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 2; - padding-right: @modal-popup__padding + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 2; + padding-top: @modal-popup__padding / 3 + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 2; + padding-right: @modal-popup__padding / 3 + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 2; + } + } + .modal-footer { + text-align: right; + button { + font-size: @modal-popup-footer-button__font-size; + margin-left: @modal-popup-footer-button__margin; + padding-top: @modal-popup-footer-button__padding; + padding-bottom: @modal-popup-footer-button__padding; } } } diff --git a/lib/web/css/source/components/_modals.less b/lib/web/css/source/components/_modals.less index 005b0ff36c9..9cac4026e97 100644 --- a/lib/web/css/source/components/_modals.less +++ b/lib/web/css/source/components/_modals.less @@ -201,47 +201,17 @@ body { .lib-vendor-prefix-flex-shrink(0); } .modal-header { - padding-bottom: @modal-popup__padding; + padding-bottom: @modal-popup__padding / 2.5; padding-top: @modal-popup__padding; } .modal-footer { margin-top: auto; padding-bottom: @modal-popup__padding; - padding-top: @modal-popup__padding; + //padding-top: @modal-popup__padding; } .modal-footer-actions { text-align: right; } - &.confirm { - .modal-inner-wrap { - left: 50%; - margin-left: -(@modal-popup-confirm__width/2); - width: @modal-popup-confirm__width; - } - .modal-footer { - text-align: right; - } - } - &._image-box { - .modal-inner-wrap { - margin: 5rem auto; - max-width: @modal-popup-image-box__max-width; - position: static; - } - .thumbnail-preview { - padding-bottom: @indent__l; - text-align: center; - .thumbnail-preview-image-block { - border: 1px solid @modal-popup-image-box__border-color; - margin: 0 auto @indent__base; - max-width: @modal-popup-image-box-preview__max-width; - padding: @indent__base; - } - .thumbnail-preview-image { - max-height: @modal-popup-image-box-preview-image__max-height; - } - } - } } // -- GitLab From 80b4d3a737f76fbd40688619c567a3e31aaf7a68 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Fri, 25 Sep 2015 15:00:32 +0300 Subject: [PATCH 131/420] MAGETWO-43132: Gallery missed placeholder image - Fix placeholder applying --- app/code/Magento/Catalog/Helper/Image.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Catalog/Helper/Image.php b/app/code/Magento/Catalog/Helper/Image.php index 00ab3f63449..fb3d4d750fe 100644 --- a/app/code/Magento/Catalog/Helper/Image.php +++ b/app/code/Magento/Catalog/Helper/Image.php @@ -430,11 +430,13 @@ class Image extends AbstractHelper */ public function getPlaceholder($placeholder = null) { - if (!$this->_placeholder) { - $placeholder = $placeholder?: $this->_getModel()->getDestinationSubdir(); - $this->_placeholder = 'Magento_Catalog::images/product/placeholder/' . $placeholder . '.jpg'; + if ($placeholder) { + $placeholderFullPath = 'Magento_Catalog::images/product/placeholder/' . $placeholder . '.jpg'; + } else { + $placeholderFullPath = $this->_placeholder + ?: 'Magento_Catalog::images/product/placeholder/' . $this->_getModel()->getDestinationSubdir() . '.jpg'; } - return $this->_placeholder; + return $placeholderFullPath; } /** -- GitLab From ed654a4d450a573cff03eb291563cca08053b41b Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Fri, 25 Sep 2015 17:25:02 +0300 Subject: [PATCH 132/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- app/code/Magento/Ui/view/base/web/js/modal/prompt.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js index 3a5463172e1..6f463d0704b 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js @@ -16,6 +16,8 @@ define([ options: { modalClass: 'prompt', promptField: '[data-role="promptField"]', + dataValue: '[data-value="modal-value"]', + value: '', actions: { always: function(){}, confirm: function(){}, @@ -37,13 +39,17 @@ define([ }, _create: function() { this._super(); - this.modal.find(this.options.modalContent).append('<input value="" data-role="promptField" type="text"/>'); + this.modal.find(this.options.modalContent).append('<input data-role="promptField" data-value="modal-value" type="text"/>'); this.modal.find(this.options.modalCloseBtn).off().on('click', _.bind(this.closeModal, this, false)); this.openModal(); }, _remove: function() { this.modal.remove(); }, + openModal: function(){ + this._super(); + this.modal.find(this.options.dataValue).val(this.options.value); + }, closeModal: function(result) { var value; -- GitLab From b2964c9db2f44e366ce4c90ea7d9bf34d9707eed Mon Sep 17 00:00:00 2001 From: Dubovyk Oleksandr <odubovyk@ebay.com> Date: Fri, 25 Sep 2015 17:56:17 +0300 Subject: [PATCH 133/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget --- .../Catalog/view/adminhtml/templates/catalog/category/tree.phtml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml index d45e04db2b4..3a4b2c769c4 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml @@ -445,6 +445,7 @@ jQuery('[data-id="information-dialog-category"]').modal({ type: 'popup', + modalClass: 'modal-system-messages', buttons: [{ text: 'Cancel', class: 'action-tertiary', -- GitLab From 24e3be7d8324d3451f6c86cb1551306a0d8c7e16 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Fri, 25 Sep 2015 18:22:39 +0300 Subject: [PATCH 134/420] MAGETWO-42995: Stabilize functional tests --- .../Ui/view/base/web/js/modal/alert.js | 4 +-- .../Ui/view/base/web/js/modal/confirm.js | 4 +-- .../Ui/view/base/web/js/modal/prompt.js | 31 +++++++++---------- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/modal/alert.js b/app/code/Magento/Ui/view/base/web/js/modal/alert.js index 33be3c8041d..63592e94040 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/alert.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/alert.js @@ -20,7 +20,7 @@ define([ }, buttons: [{ text: $.mage.__('OK'), - class: 'action-secondary', + class: 'action-secondary action-accept', click: function () { this.closeModal(true); } @@ -28,7 +28,7 @@ define([ }, closeModal: function () { this.options.actions.always(); - this.element.bind('confirmclosed', _.bind(this._remove, this)); + this.element.bind('alertclosed', _.bind(this._remove, this)); return this._super(); } diff --git a/app/code/Magento/Ui/view/base/web/js/modal/confirm.js b/app/code/Magento/Ui/view/base/web/js/modal/confirm.js index 7bad2023b64..6e2e6fe5251 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/confirm.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/confirm.js @@ -22,13 +22,13 @@ define([ }, buttons: [{ text: $.mage.__('Cancel'), - class: 'action-tertiary', + class: 'action-tertiary action-dismiss', click: function(){ this.closeModal(); } }, { text: $.mage.__('OK'), - class: 'action-secondary', + class: 'action-secondary action-accept', click: function() { this.closeModal(true); } diff --git a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js index 6f463d0704b..cdea449e794 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js @@ -16,51 +16,50 @@ define([ options: { modalClass: 'prompt', promptField: '[data-role="promptField"]', - dataValue: '[data-value="modal-value"]', value: '', actions: { - always: function(){}, - confirm: function(){}, - cancel: function(){} + always: function () {}, + confirm: function () {}, + cancel: function () {} }, buttons: [{ text: $.mage.__('Cancel'), - class: 'action-tertiary', - click: function(){ + class: 'action-tertiary action-dismiss', + click: function () { this.closeModal(); } }, { text: $.mage.__('OK'), - class: 'action-secondary', - click: function() { + class: 'action-secondary action-accept', + click: function () { this.closeModal(true); } }] }, - _create: function() { + _create: function () { this._super(); - this.modal.find(this.options.modalContent).append('<input data-role="promptField" data-value="modal-value" type="text"/>'); + this.modal.find(this.options.modalContent).append('<input data-role="promptField" type="text"/>'); this.modal.find(this.options.modalCloseBtn).off().on('click', _.bind(this.closeModal, this, false)); this.openModal(); }, - _remove: function() { + _remove: function () { this.modal.remove(); }, - openModal: function(){ + openModal: function () { this._super(); - this.modal.find(this.options.dataValue).val(this.options.value); + this.modal.find(this.options.promptField).val(this.options.value); }, - closeModal: function(result) { + closeModal: function (result) { var value; if (result) { - value = this.modal.find(this.options.promptField).val(); + value = this.modal.find(this.options.promptField).val(); this.options.actions.confirm(value); } else { this.options.actions.cancel(); } this.options.actions.always(); - this.element.bind('confirmclosed', _.bind(this._remove, this)); + this.element.bind('promptclosed', _.bind(this._remove, this)); return this._super(); } -- GitLab From ffa80362500420fa755b40c7f45c7533139ca5ae Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Mon, 28 Sep 2015 08:32:26 +0300 Subject: [PATCH 135/420] MAGETWO-42995: Stabilize functional tests --- .../catalog/product/attribute/set/main.phtml | 56 ++++++----- .../Ui/view/base/web/js/modal/prompt.js | 1 + .../app/Magento/Backend/Test/Block/Cache.php | 1 - .../Backend/Test/Block/FormPageActions.php | 1 - .../Test/Block/System/Config/PageActions.php | 1 - .../Backend/Test/Block/Widget/Grid.php | 5 +- .../Constraint/AssertStoreCanBeLocalized.php | 1 + .../Test/Page/Adminhtml/AdminCache.xml | 1 + .../Test/Page/Adminhtml/SystemConfig.xml | 11 ++- .../Adminhtml/Product/Attribute/Set/Main.php | 7 +- .../Page/Adminhtml/CatalogCategoryEdit.xml | 11 ++- .../Adminhtml/CatalogProductAttributeNew.xml | 11 ++- .../Page/Adminhtml/CatalogProductSetEdit.xml | 11 ++- .../Category/DeleteCategoryEntityTest.php | 1 + ...AssignedToTemplateProductAttributeTest.php | 1 + .../DeleteAttributeSetTest.php | 1 + .../DeleteProductAttributeEntityTest.php | 1 + ...UsedInConfigurableProductAttributeTest.php | 1 + .../Test/TestStep/DeleteAttributeStep.php | 1 + .../Test/Page/Adminhtml/CatalogRuleNew.xml | 9 +- .../DeleteCatalogPriceRuleEntityTest.php | 1 + .../TestStep/DeleteAllCatalogRulesStep.php | 1 + .../Test/Page/Adminhtml/CatalogSearchEdit.xml | 9 +- .../TestCase/DeleteSearchTermEntityTest.php | 1 + .../Page/Adminhtml/CheckoutAgreementNew.xml | 1 + .../TestStep/DeleteAllTermsEntityStep.php | 1 + .../Test/TestStep/DeleteTermEntityStep.php | 1 + .../Cms/Test/Page/Adminhtml/CmsBlockNew.xml | 1 + .../Cms/Test/Page/Adminhtml/CmsPageNew.xml | 1 + .../TestCase/DeleteCmsBlockEntityTest.php | 1 + .../Test/TestCase/DeleteCmsPageEntityTest.php | 1 + .../DeleteCmsPageUrlRewriteEntityTest.php | 1 + .../Test/Page/Adminhtml/CustomerGroupNew.xml | 11 ++- .../Test/Page/Adminhtml/CustomerIndexEdit.xml | 15 +-- .../DeleteCustomerBackendEntityTest.php | 1 + .../DeleteCustomerGroupEntityTest.php | 1 + .../AssertSetApprovedProductReview.php | 1 + .../Review/Test/Page/Adminhtml/RatingEdit.xml | 1 + .../CreateProductRatingEntityTest.php | 1 + .../CreateProductReviewBackendEntityTest.php | 1 + .../CreateProductReviewFrontendEntityTest.php | 1 + .../DeleteProductRatingEntityTest.php | 1 + ...anageProductReviewFromCustomerPageTest.php | 1 + .../MassActionsProductReviewEntityTest.php | 1 + ...teProductReviewEntityOnProductPageTest.php | 1 + .../UpdateProductReviewEntityTest.php | 1 + .../Test/Page/Adminhtml/PromoQuoteEdit.xml | 1 + .../TestCase/CreateSalesRuleEntityTest.php | 1 + .../TestCase/DeleteSalesRuleEntityTest.php | 1 + .../TestCase/UpdateSalesRuleEntityTest.php | 1 + .../Test/TestStep/DeleteAllSalesRuleStep.php | 1 + .../Test/Page/Adminhtml/SitemapEdit.xml | 7 +- .../Test/TestCase/DeleteSitemapEntityTest.php | 1 + .../Tax/Test/Page/Adminhtml/TaxRateNew.xml | 11 ++- .../Tax/Test/Page/Adminhtml/TaxRuleNew.xml | 11 ++- .../Test/TestCase/DeleteTaxRateEntityTest.php | 1 + .../Test/TestCase/DeleteTaxRuleEntityTest.php | 1 + .../Test/TestStep/DeleteAllTaxRulesStep.php | 1 + .../Ui/Test/Block/Adminhtml/DataGrid.php | 5 +- .../Magento/Ui/Test/Block/Adminhtml/Modal.php | 95 +++++++++++++++++++ .../Test/Page/Adminhtml/UrlRewriteEdit.xml | 19 ++-- .../DeleteCategoryUrlRewriteEntityTest.php | 1 + .../DeleteCustomUrlRewriteEntityTest.php | 1 + .../DeleteProductUrlRewriteEntityTest.php | 1 + .../User/Test/Page/Adminhtml/UserEdit.xml | 13 +-- .../Test/Page/Adminhtml/UserRoleEditRole.xml | 11 ++- .../TestCase/DeleteAdminUserEntityTest.php | 1 + .../TestCase/DeleteUserRoleEntityTest.php | 1 + .../Test/Page/Adminhtml/SystemVariableNew.xml | 9 +- .../DeleteCustomVariableEntityTest.php | 1 + .../Page/Adminhtml/WidgetInstanceEdit.xml | 1 + .../Test/TestCase/DeleteWidgetEntityTest.php | 1 + .../Test/TestStep/DeleteAllWidgetsStep.php | 1 + lib/web/mage/adminhtml/grid.js | 63 ++++++------ 74 files changed, 316 insertions(+), 137 deletions(-) create mode 100644 dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/main.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/main.phtml index 4ccbec13fdb..31c9a24e15f 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/main.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/main.phtml @@ -42,7 +42,7 @@ require([ <script id="ie-deferred-loader" defer="defer" src=""></script> <![endif]--> <script> -define("tree-panel", ["jquery", "extjs/ext-tree-checkbox", "prototype"], function(jQuery){ +define("tree-panel", ["jquery", 'Magento_Ui/js/modal/prompt', "extjs/ext-tree-checkbox", "prototype"], function(jQuery, prompt){ //<![CDATA[ var allowDragAndDrop = <?php /* @escapeNotVerified */ echo($block->getIsReadOnly() ? 'false' : 'true'); ?>; @@ -238,31 +238,37 @@ define("tree-panel", ["jquery", "extjs/ext-tree-checkbox", "prototype"], functio }, addGroup : function() { - var group_name = prompt("<?php /* @escapeNotVerified */ echo __('Please enter a new group name.') ?>",""); - if (!group_name) { - return; - } - group_name = group_name.strip(); - if( group_name == '' ) { - this.addGroup(); - } else if( group_name != false && group_name != null && group_name != '' ) { - - if (!editSet.validateGroupName(group_name, 0)) { - return; + var self = this; + + prompt({ + content: "<?php /* @escapeNotVerified */ echo __('Please enter a new group name.') ?>", + value: '', + actions: { + confirm: function (group_name) { + group_name = group_name.strip(); + if( group_name == '' ) { + self.addGroup(); + } else if( group_name != false && group_name != null && group_name != '' ) { + + if (!editSet.validateGroupName(group_name, 0)) { + return; + } + + var newNode = new Ext.tree.TreeNode({ + text : group_name.escapeHTML(), + cls : 'folder', + allowDrop : true, + allowDrag : true + }); + TreePanels.root.appendChild(newNode); + newNode.addListener('beforemove', editSet.groupBeforeMove); + newNode.addListener('beforeinsert', editSet.groupBeforeInsert); + newNode.addListener('beforeappend', editSet.groupBeforeInsert); + newNode.addListener('click', editSet.register); + } + } } - - var newNode = new Ext.tree.TreeNode({ - text : group_name.escapeHTML(), - cls : 'folder', - allowDrop : true, - allowDrag : true - }); - TreePanels.root.appendChild(newNode); - newNode.addListener('beforemove', editSet.groupBeforeMove); - newNode.addListener('beforeinsert', editSet.groupBeforeInsert); - newNode.addListener('beforeappend', editSet.groupBeforeInsert); - newNode.addListener('click', editSet.register); - } + }); }, editGroup : function(obj) { diff --git a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js index cdea449e794..c50b2668359 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js @@ -37,6 +37,7 @@ define([ }] }, _create: function () { + this.options.focus = this.options.promptField; this._super(); this.modal.find(this.options.modalContent).append('<input data-role="promptField" type="text"/>'); this.modal.find(this.options.modalCloseBtn).off().on('click', _.bind(this.closeModal, this, false)); diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Cache.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Cache.php index 988614620e0..be0e3f829e2 100644 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Cache.php +++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Cache.php @@ -59,7 +59,6 @@ class Cache extends Block public function flushCacheStorage() { $this->_rootElement->find($this->flushCacheStorageButton)->click(); - $this->browser->acceptAlert(); } /** diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/FormPageActions.php index 246c3113a8d..30213935409 100644 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/FormPageActions.php +++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/FormPageActions.php @@ -110,7 +110,6 @@ class FormPageActions extends PageActions public function delete() { $this->_rootElement->find($this->deleteButton)->click(); - $this->browser->acceptAlert(); } /** diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/PageActions.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/PageActions.php index 2dbbdd6fe04..281c4fbd7a0 100644 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/PageActions.php +++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/System/Config/PageActions.php @@ -35,7 +35,6 @@ class PageActions extends AbstractPageActions { $this->_rootElement->find($this->scopeSelector, Locator::SELECTOR_CSS, 'liselectstore') ->setValue($websiteScope); - $this->browser->acceptAlert(); return $this; } diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php index 8e1e7be0371..0f41bf8b978 100644 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php +++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php @@ -340,7 +340,10 @@ abstract class Grid extends Block { $this->_rootElement->find($this->massactionSubmit, Locator::SELECTOR_CSS)->click(); if ($acceptAlert) { - $this->browser->acceptAlert(); + $element = $this->browser->find('.confirm._show[data-role=modal]'); + /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ + $modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]); + $modal->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertStoreCanBeLocalized.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertStoreCanBeLocalized.php index ffd5e52d7ea..fd241121f62 100644 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertStoreCanBeLocalized.php +++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Constraint/AssertStoreCanBeLocalized.php @@ -38,6 +38,7 @@ class AssertStoreCanBeLocalized extends AbstractConstraint // Set locale options $systemConfig->open(); $systemConfig->getPageActions()->selectStore($store->getGroupId() . "/" . $store->getName()); + $systemConfig->getModalBlock()->acceptAlert(); $configGroup = $systemConfig->getForm()->getGroup('Locale Options'); $configGroup->open(); $configGroup->setValue('select-groups-locale-fields-code-value', $locale); diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/AdminCache.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/AdminCache.xml index ecfd99d31c1..5bee8360e81 100644 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/AdminCache.xml +++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/AdminCache.xml @@ -10,5 +10,6 @@ <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/> <block name="actionsBlock" class="Magento\Backend\Test\Block\Cache" locator="div.page-actions" strategy="css selector"/> <block name="additionalBlock" class="Magento\Backend\Test\Block\Cache\Additional" locator="div.fieldset.additional-cache-management" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfig.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfig.xml index 9b9a0f3a309..4dbb6babb50 100644 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfig.xml +++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Page/Adminhtml/SystemConfig.xml @@ -6,9 +6,10 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="SystemConfig" area="Adminhtml" mca="admin/system_config" module="Magento_Backend"> - <block name="pageActions" class="Magento\Backend\Test\Block\System\Config\PageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="form" class="Magento\Backend\Test\Block\System\Config\Form" locator="#config-edit-form" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - </page> + <page name="SystemConfig" area="Adminhtml" mca="admin/system_config" module="Magento_Backend"> + <block name="pageActions" class="Magento\Backend\Test\Block\System\Config\PageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="form" class="Magento\Backend\Test\Block\System\Config\Form" locator="#config-edit-form" strategy="css selector"/> + <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/Main.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/Main.php index 47a2e261ba1..998117a082c 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/Main.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/Main.php @@ -123,7 +123,10 @@ class Main extends Block public function addAttributeSetGroup($groupName) { $this->_rootElement->find($this->addGroupButton)->click(); - $this->browser->setAlertText($groupName); - $this->browser->acceptAlert(); + $element = $this->browser->find('.prompt._show[data-role=modal]'); + /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ + $modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]); + $modal->setAlertText($groupName); + $modal->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogCategoryEdit.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogCategoryEdit.xml index 6c94684f993..a9efc7486ed 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogCategoryEdit.xml +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogCategoryEdit.xml @@ -6,9 +6,10 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CatalogCategoryEdit" area="Adminhtml" mca="catalog/category/edit" module="Magento_Catalog"> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - <block name="formPageActions" class="Magento\Catalog\Test\Block\Adminhtml\Category\Edit\PageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="editForm" class="Magento\Catalog\Test\Block\Adminhtml\Category\Edit\CategoryForm" locator="#category-edit-container" strategy="css selector"/> - </page> + <page name="CatalogCategoryEdit" area="Adminhtml" mca="catalog/category/edit" module="Magento_Catalog"> + <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> + <block name="formPageActions" class="Magento\Catalog\Test\Block\Adminhtml\Category\Edit\PageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="editForm" class="Magento\Catalog\Test\Block\Adminhtml\Category\Edit\CategoryForm" locator="#category-edit-container" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeNew.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeNew.xml index 7340141c593..b53ec68704e 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeNew.xml +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductAttributeNew.xml @@ -6,9 +6,10 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CatalogProductAttributeNew" area="Adminhtml" mca="catalog/product_attribute/new" module="Magento_Catalog"> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - <block name="pageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="attributeForm" class="Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Edit\AttributeForm" locator="[id='page:main-container']" strategy="css selector"/> - </page> + <page name="CatalogProductAttributeNew" area="Adminhtml" mca="catalog/product_attribute/new" module="Magento_Catalog"> + <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> + <block name="pageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="attributeForm" class="Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Edit\AttributeForm" locator="[id='page:main-container']" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetEdit.xml b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetEdit.xml index be45d688fbc..318016cdd30 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetEdit.xml +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Page/Adminhtml/CatalogProductSetEdit.xml @@ -6,9 +6,10 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CatalogProductSetEdit" area="Adminhtml" mca="catalog/product_set/edit" module="Magento_Catalog"> - <block name="pageActions" class="Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Set\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="attributeSetEditBlock" class="Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Set\Main" locator=".attribute-set" strategy="css selector"/> - <block name="attributeSetEditForm" class="Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Set\Main\EditForm" locator="#set_name" strategy="css selector"/> - </page> + <page name="CatalogProductSetEdit" area="Adminhtml" mca="catalog/product_set/edit" module="Magento_Catalog"> + <block name="pageActions" class="Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Set\FormPageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="attributeSetEditBlock" class="Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Set\Main" locator=".attribute-set" strategy="css selector"/> + <block name="attributeSetEditForm" class="Magento\Catalog\Test\Block\Adminhtml\Product\Attribute\Set\Main\EditForm" locator="#set_name" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/DeleteCategoryEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/DeleteCategoryEntityTest.php index e6bafe0e256..ec77f237b21 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/DeleteCategoryEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/Category/DeleteCategoryEntityTest.php @@ -74,5 +74,6 @@ class DeleteCategoryEntityTest extends Injectable $this->catalogCategoryIndex->open(); $this->catalogCategoryIndex->getTreeCategories()->selectCategory($category); $this->catalogCategoryEdit->getFormPageActions()->delete(); + $this->catalogCategoryEdit->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAssignedToTemplateProductAttributeTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAssignedToTemplateProductAttributeTest.php index b1994e6b362..a3c0028f6e7 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAssignedToTemplateProductAttributeTest.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAssignedToTemplateProductAttributeTest.php @@ -78,6 +78,7 @@ class DeleteAssignedToTemplateProductAttributeTest extends Injectable $this->attributeIndex->open(); $this->attributeIndex->getGrid()->searchAndOpen($filter); $this->attributeNew->getPageActions()->delete(); + $this->attributeNew->getModalBlock()->acceptAlert(); return ['productTemplate' => $productTemplate, 'attribute' => $attribute]; } diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAttributeSetTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAttributeSetTest.php index 4eb5df71d91..d996e70adb4 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAttributeSetTest.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteAttributeSetTest.php @@ -93,6 +93,7 @@ class DeleteAttributeSetTest extends Injectable $this->productSetIndex->open(); $this->productSetIndex->getGrid()->searchAndOpen($filter); $this->productSetEdit->getPageActions()->delete(); + $this->productSetEdit->getModalBlock()->acceptAlert(); return ['product' => $product]; } diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.php index b2803209bad..0574f736aca 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteProductAttributeEntityTest.php @@ -53,5 +53,6 @@ class DeleteProductAttributeEntityTest extends Injectable $attributeIndex->open(); $attributeIndex->getGrid()->searchAndOpen(['frontend_label' => $attribute->getFrontendLabel()]); $attributeNew->getPageActions()->delete(); + $attributeNew->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteUsedInConfigurableProductAttributeTest.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteUsedInConfigurableProductAttributeTest.php index 4b5c4403e8c..934b2e185ad 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteUsedInConfigurableProductAttributeTest.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestCase/ProductAttribute/DeleteUsedInConfigurableProductAttributeTest.php @@ -82,6 +82,7 @@ class DeleteUsedInConfigurableProductAttributeTest extends Injectable $this->attributeIndex->open(); $this->attributeIndex->getGrid()->searchAndOpen(['attribute_code' => $attribute->getAttributeCode()]); $this->attributeNew->getPageActions()->delete(); + $this->attributeNew->getModalBlock()->acceptAlert(); return ['attribute' => $attribute]; } diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/DeleteAttributeStep.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/DeleteAttributeStep.php index 8665338166e..26db72b37ef 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/DeleteAttributeStep.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/TestStep/DeleteAttributeStep.php @@ -67,6 +67,7 @@ class DeleteAttributeStep implements TestStepInterface if ($this->catalogProductAttributeIndex->getGrid()->isRowVisible($filter)) { $this->catalogProductAttributeIndex->getGrid()->searchAndOpen($filter); $this->catalogProductAttributeNew->getPageActions()->delete(); + $this->catalogProductAttributeNew->getModalBlock()->acceptAlert(); } } } diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleNew.xml b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleNew.xml index 5dd34d3be1a..af8118dc6be 100644 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleNew.xml +++ b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/Page/Adminhtml/CatalogRuleNew.xml @@ -6,8 +6,9 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CatalogRuleNew" area="Adminhtml" mca="catalog_rule/promo_catalog/new" module="Magento_CatalogRule"> - <block name="formPageActions" class="Magento\CatalogRule\Test\Block\Adminhtml\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="editForm" class="Magento\CatalogRule\Test\Block\Adminhtml\Promo\Catalog\Edit\PromoForm" locator="[id='page:main-container']" strategy="css selector"/> - </page> + <page name="CatalogRuleNew" area="Adminhtml" mca="catalog_rule/promo_catalog/new" module="Magento_CatalogRule"> + <block name="formPageActions" class="Magento\CatalogRule\Test\Block\Adminhtml\FormPageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="editForm" class="Magento\CatalogRule\Test\Block\Adminhtml\Promo\Catalog\Edit\PromoForm" locator="[id='page:main-container']" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/DeleteCatalogPriceRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/DeleteCatalogPriceRuleEntityTest.php index 959edfcf464..aaea841d414 100644 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/DeleteCatalogPriceRuleEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestCase/DeleteCatalogPriceRuleEntityTest.php @@ -82,5 +82,6 @@ class DeleteCatalogPriceRuleEntityTest extends Injectable $this->catalogRuleIndex->open(); $this->catalogRuleIndex->getCatalogRuleGrid()->searchAndOpen($filter); $this->catalogRuleNew->getFormPageActions()->delete(); + $this->catalogRuleNew->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestStep/DeleteAllCatalogRulesStep.php b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestStep/DeleteAllCatalogRulesStep.php index dcc06c224c0..5a733e8224d 100644 --- a/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestStep/DeleteAllCatalogRulesStep.php +++ b/dev/tests/functional/tests/app/Magento/CatalogRule/Test/TestStep/DeleteAllCatalogRulesStep.php @@ -55,6 +55,7 @@ class DeleteAllCatalogRulesStep implements TestStepInterface while ($this->catalogRuleIndex->getCatalogRuleGrid()->isFirstRowVisible()) { $this->catalogRuleIndex->getCatalogRuleGrid()->openFirstRow(); $this->catalogRuleNew->getFormPageActions()->delete(); + $this->catalogRuleNew->getModalBlock()->acceptAlert(); $this->catalogRuleIndex->getSystemMessageDialog()->closePopup(); } } diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/Adminhtml/CatalogSearchEdit.xml b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/Adminhtml/CatalogSearchEdit.xml index 87d6b0b791a..0d20a2f4ac1 100644 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/Adminhtml/CatalogSearchEdit.xml +++ b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/Page/Adminhtml/CatalogSearchEdit.xml @@ -6,8 +6,9 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CatalogSearchEdit" area="Adminhtml" mca="search/term/edit" module="Magento_CatalogSearch"> - <block name="form" class="Magento\CatalogSearch\Test\Block\Adminhtml\Edit\SearchTermForm" locator="#edit_form" strategy="css selector"/> - <block name="formPageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - </page> + <page name="CatalogSearchEdit" area="Adminhtml" mca="search/term/edit" module="Magento_CatalogSearch"> + <block name="form" class="Magento\CatalogSearch\Test\Block\Adminhtml\Edit\SearchTermForm" locator="#edit_form" strategy="css selector"/> + <block name="formPageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/DeleteSearchTermEntityTest.php b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/DeleteSearchTermEntityTest.php index b8400504d03..4c9cdecc2c3 100644 --- a/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/DeleteSearchTermEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/CatalogSearch/Test/TestCase/DeleteSearchTermEntityTest.php @@ -78,5 +78,6 @@ class DeleteSearchTermEntityTest extends Injectable $this->indexPage->open(); $this->indexPage->getGrid()->searchAndOpen(['search_query' => $searchText]); $this->editPage->getFormPageActions()->delete(); + $this->editPage->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/Adminhtml/CheckoutAgreementNew.xml b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/Adminhtml/CheckoutAgreementNew.xml index 401dac62e9c..05356444ea6 100644 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/Adminhtml/CheckoutAgreementNew.xml +++ b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/Page/Adminhtml/CheckoutAgreementNew.xml @@ -9,5 +9,6 @@ <page name="CheckoutAgreementNew" area="Adminhtml" mca="checkout/agreement/new" module="Magento_CheckoutAgreements"> <block name="pageActionsBlock" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> <block name="agreementsForm" class="Magento\CheckoutAgreements\Test\Block\Adminhtml\Block\Agreement\Edit\AgreementsForm" locator="#edit_form" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> </page> </config> \ No newline at end of file diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/DeleteAllTermsEntityStep.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/DeleteAllTermsEntityStep.php index 3599882b174..b40f50f32d2 100644 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/DeleteAllTermsEntityStep.php +++ b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/DeleteAllTermsEntityStep.php @@ -56,6 +56,7 @@ class DeleteAllTermsEntityStep implements TestStepInterface while ($this->agreementIndex->getAgreementGridBlock()->isFirstRowVisible()) { $this->agreementIndex->getAgreementGridBlock()->openFirstRow(); $this->agreementNew->getPageActionsBlock()->delete(); + $this->agreementNew->getModalBlock()->acceptAlert(); } } } diff --git a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/DeleteTermEntityStep.php b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/DeleteTermEntityStep.php index d5b572db6ea..34c352f39ea 100644 --- a/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/DeleteTermEntityStep.php +++ b/dev/tests/functional/tests/app/Magento/CheckoutAgreements/Test/TestStep/DeleteTermEntityStep.php @@ -63,5 +63,6 @@ class DeleteTermEntityStep implements TestStepInterface { $this->agreementIndex->open()->getAgreementGridBlock()->searchAndOpen(['name' => $this->agreement->getName()]); $this->agreementNew->getPageActionsBlock()->delete(); + $this->agreementNew->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockNew.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockNew.xml index d37d3e14204..a9089eeddc7 100644 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockNew.xml +++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsBlockNew.xml @@ -10,5 +10,6 @@ <block name="formPageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector" /> <block name="cmsForm" class="Magento\Cms\Test\Block\Adminhtml\Block\Edit\CmsForm" locator="[id='page:main-container']" strategy="css selector" /> <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector" /> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageNew.xml b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageNew.xml index 252dc039121..fc93801cdc7 100644 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageNew.xml +++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Page/Adminhtml/CmsPageNew.xml @@ -9,5 +9,6 @@ <page name="CmsPageNew" area="Adminhtml" mca="cms/page/new" module="Magento_Cms"> <block name="pageForm" class="Magento\Cms\Test\Block\Adminhtml\Page\Edit\PageForm" locator="[id='page:main-container']" strategy="css selector" /> <block name="pageMainActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector" /> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsBlockEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsBlockEntityTest.php index 07f8d2dea44..31f36c5eb25 100644 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsBlockEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsBlockEntityTest.php @@ -77,5 +77,6 @@ class DeleteCmsBlockEntityTest extends Injectable $this->cmsBlockIndex->open(); $this->cmsBlockIndex->getCmsBlockGrid()->searchAndOpen($filter, true, false); $this->cmsBlockNew->getFormPageActions()->delete(); + $this->cmsBlockNew->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageEntityTest.php index 5801ba85ea5..17d47b6681c 100644 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageEntityTest.php @@ -74,5 +74,6 @@ class DeleteCmsPageEntityTest extends Injectable $this->cmsPageIndex->open(); $this->cmsPageIndex->getCmsPageGridBlock()->searchAndOpen(['title' => $cmsPage->getTitle()]); $this->cmsPageNew->getPageMainActions()->delete(); + $this->cmsPageNew->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageUrlRewriteEntityTest.php index 7d5364c7c6f..7ef7db00e0a 100644 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageUrlRewriteEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Cms/Test/TestCase/DeleteCmsPageUrlRewriteEntityTest.php @@ -77,5 +77,6 @@ class DeleteCmsPageUrlRewriteEntityTest extends Injectable $this->urlRewriteIndex->open(); $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen(['request_path' => $urlRewrite->getRequestPath()]); $this->urlRewriteEdit->getPageMainActions()->delete(); + $this->urlRewriteEdit->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupNew.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupNew.xml index 69db394b4cd..72d8c4bf823 100644 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupNew.xml +++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerGroupNew.xml @@ -6,9 +6,10 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerGroupNew" area="Adminhtml" mca="customer/group/new" module="Magento_Customer"> - <block name="pageMainActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="pageMainForm" class="Magento\Customer\Test\Block\Adminhtml\Group\Edit\Form" locator="[id='page:main-container']" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - </page> + <page name="CustomerGroupNew" area="Adminhtml" mca="customer/group/new" module="Magento_Customer"> + <block name="pageMainActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="pageMainForm" class="Magento\Customer\Test\Block\Adminhtml\Group\Edit\Form" locator="[id='page:main-container']" strategy="css selector"/> + <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml index 80bd928de60..7dfacbc495c 100644 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml +++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Page/Adminhtml/CustomerIndexEdit.xml @@ -6,11 +6,12 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="CustomerIndexEdit" area="Adminhtml" mca="customer/index/edit" module="Magento_Customer"> - <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper .page-title" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - <block name="pageActionsBlock" class="Magento\Customer\Test\Block\Adminhtml\Edit\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="customerForm" class="Magento\Customer\Test\Block\Adminhtml\Edit\CustomerForm" locator="[id='page:main-container']" strategy="css selector"/> - <block name="configureProductBlock" class="Magento\Catalog\Test\Block\Adminhtml\Product\Composite\Configure" locator="//*[@role='dialog' and ./*[@id='product_composite_configure'] and contains(@style,'display: block')]" strategy="xpath"/> - </page> + <page name="CustomerIndexEdit" area="Adminhtml" mca="customer/index/edit" module="Magento_Customer"> + <block name="titleBlock" class="Magento\Theme\Test\Block\Html\Title" locator=".page-title-wrapper .page-title" strategy="css selector"/> + <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> + <block name="pageActionsBlock" class="Magento\Customer\Test\Block\Adminhtml\Edit\FormPageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="customerForm" class="Magento\Customer\Test\Block\Adminhtml\Edit\CustomerForm" locator="[id='page:main-container']" strategy="css selector"/> + <block name="configureProductBlock" class="Magento\Catalog\Test\Block\Adminhtml\Product\Composite\Configure" locator="//*[@role='dialog' and ./*[@id='product_composite_configure'] and contains(@style,'display: block')]" strategy="xpath"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerBackendEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerBackendEntityTest.php index adb0c3fc6db..55193f4834a 100644 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerBackendEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerBackendEntityTest.php @@ -74,5 +74,6 @@ class DeleteCustomerBackendEntityTest extends Injectable $this->customerIndexPage->open(); $this->customerIndexPage->getCustomerGridBlock()->searchAndOpen($filter); $this->customerIndexEditPage->getPageActionsBlock()->delete(); + $this->customerIndexEditPage->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerGroupEntityTest.php b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerGroupEntityTest.php index 7b3cfefbf13..067e17a8d0e 100644 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerGroupEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Customer/Test/TestCase/DeleteCustomerGroupEntityTest.php @@ -80,5 +80,6 @@ class DeleteCustomerGroupEntityTest extends Injectable $this->customerGroupIndex->open(); $this->customerGroupIndex->getCustomerGroupGrid()->searchAndOpen($filter); $this->customerGroupNew->getPageMainActions()->delete(); + $this->customerGroupNew->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertSetApprovedProductReview.php b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertSetApprovedProductReview.php index 1e627941bd7..ea33820808d 100644 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertSetApprovedProductReview.php +++ b/dev/tests/functional/tests/app/Magento/Review/Test/Constraint/AssertSetApprovedProductReview.php @@ -69,6 +69,7 @@ class AssertSetApprovedProductReview extends AbstractConstraint { $this->cachePage->open(); $this->cachePage->getActionsBlock()->flushCacheStorage(); + $this->cachePage->getModalBlock()->acceptAlert(); \PHPUnit_Framework_Assert::assertTrue( $this->cachePage->getActionsBlock()->isStorageCacheFlushed(), 'Cache is not flushed.' diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/RatingEdit.xml b/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/RatingEdit.xml index 2f6ca296009..f5f44551d02 100644 --- a/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/RatingEdit.xml +++ b/dev/tests/functional/tests/app/Magento/Review/Test/Page/Adminhtml/RatingEdit.xml @@ -9,5 +9,6 @@ <page name="RatingEdit" area="Adminhtml" mca="review/rating/edit" module="Magento_Review"> <block name="pageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector" /> <block name="ratingForm" class="Magento\Review\Test\Block\Adminhtml\Rating\Edit\RatingForm" locator="[id='page:main-container']" strategy="css selector" /> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductRatingEntityTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductRatingEntityTest.php index 9f826b41451..bbfabc028ed 100644 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductRatingEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductRatingEntityTest.php @@ -127,5 +127,6 @@ class CreateProductRatingEntityTest extends Injectable $this->ratingIndex->open(); $this->ratingIndex->getRatingGrid()->searchAndOpen($filter); $this->ratingEdit->getPageActions()->delete(); + $this->ratingEdit->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewBackendEntityTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewBackendEntityTest.php index 937cca411d9..961ab02b043 100644 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewBackendEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewBackendEntityTest.php @@ -135,6 +135,7 @@ class CreateProductReviewBackendEntityTest extends Injectable foreach ($this->review->getRatings() as $rating) { $this->ratingIndex->getRatingGrid()->searchAndOpen(['rating_code' => $rating['title']]); $this->ratingEdit->getPageActions()->delete(); + $this->ratingEdit->getModalBlock()->acceptAlert(); } } } diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewFrontendEntityTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewFrontendEntityTest.php index d0635638f9f..406f4deef9c 100644 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewFrontendEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/CreateProductReviewFrontendEntityTest.php @@ -128,6 +128,7 @@ class CreateProductReviewFrontendEntityTest extends Injectable foreach ($ratings as $rating) { $this->ratingIndex->getRatingGrid()->searchAndOpen(['rating_code' => $rating['title']]); $this->ratingEdit->getPageActions()->delete(); + $this->ratingEdit->getModalBlock()->acceptAlert(); } } } diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/DeleteProductRatingEntityTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/DeleteProductRatingEntityTest.php index 193c7307ab8..8b7d3bf5749 100644 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/DeleteProductRatingEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/DeleteProductRatingEntityTest.php @@ -90,5 +90,6 @@ class DeleteProductRatingEntityTest extends Injectable $this->ratingIndex->open(); $this->ratingIndex->getRatingGrid()->searchAndOpen(['rating_code' => $productRating->getRatingCode()]); $this->ratingEdit->getPageActions()->delete(); + $this->ratingEdit->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.php index f0a34008cf0..b7d7b5b53f5 100644 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.php +++ b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/ManageProductReviewFromCustomerPageTest.php @@ -208,6 +208,7 @@ class ManageProductReviewFromCustomerPageTest extends Injectable foreach ($this->reviewInitial->getRatings() as $rating) { $this->ratingIndex->getRatingGrid()->searchAndOpen(['rating_code' => $rating['title']]); $this->ratingEdit->getPageActions()->delete(); + $this->ratingEdit->getModalBlock()->acceptAlert(); } } } diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/MassActionsProductReviewEntityTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/MassActionsProductReviewEntityTest.php index f351eb72b7d..188ec0fa1e6 100644 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/MassActionsProductReviewEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/MassActionsProductReviewEntityTest.php @@ -119,6 +119,7 @@ class MassActionsProductReviewEntityTest extends Injectable foreach ($this->review->getRatings() as $rating) { $this->ratingIndex->getRatingGrid()->searchAndOpen(['rating_code' => $rating['title']]); $this->ratingEdit->getPageActions()->delete(); + $this->ratingEdit->getModalBlock()->acceptAlert(); } } } diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php index 7b6908ce0a0..0a373da1808 100644 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php +++ b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityOnProductPageTest.php @@ -178,6 +178,7 @@ class UpdateProductReviewEntityOnProductPageTest extends Injectable foreach ($this->reviewInitial->getRatings() as $rating) { $this->ratingIndex->getRatingGrid()->searchAndOpen(['rating_code' => $rating['title']]); $this->ratingEdit->getPageActions()->delete(); + $this->ratingEdit->getModalBlock()->acceptAlert(); } } } diff --git a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityTest.php b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityTest.php index f2ab71072a2..f3005a32db0 100644 --- a/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Review/Test/TestCase/UpdateProductReviewEntityTest.php @@ -132,6 +132,7 @@ class UpdateProductReviewEntityTest extends Injectable foreach ($this->review->getRatings() as $rating) { $this->ratingIndex->getRatingGrid()->searchAndOpen(['rating_code' => $rating['title']]); $this->ratingEdit->getPageActions()->delete(); + $this->ratingEdit->getModalBlock()->acceptAlert(); } } } diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/Adminhtml/PromoQuoteEdit.xml b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/Adminhtml/PromoQuoteEdit.xml index 23b3fe8d67b..432d754fddf 100644 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/Adminhtml/PromoQuoteEdit.xml +++ b/dev/tests/functional/tests/app/Magento/SalesRule/Test/Page/Adminhtml/PromoQuoteEdit.xml @@ -9,5 +9,6 @@ <page name="PromoQuoteEdit" area="Adminhtml" mca="sales_rule/promo_quote/edit" module="Magento_SalesRule"> <block name="formPageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector" /> <block name="salesRuleForm" class="Magento\SalesRule\Test\Block\Adminhtml\Promo\Quote\Edit\PromoQuoteForm" locator="[id='page:main-container']" strategy="css selector" /> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityTest.php index 906a7b51a35..833752c00f6 100644 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/CreateSalesRuleEntityTest.php @@ -142,5 +142,6 @@ class CreateSalesRuleEntityTest extends Injectable $this->promoQuoteIndex->open(); $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen($filter); $this->promoQuoteEdit->getFormPageActions()->delete(); + $this->promoQuoteEdit->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/DeleteSalesRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/DeleteSalesRuleEntityTest.php index 39acead1497..354d27064be 100644 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/DeleteSalesRuleEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/DeleteSalesRuleEntityTest.php @@ -75,5 +75,6 @@ class DeleteSalesRuleEntityTest extends Injectable $this->promoQuoteIndex->open(); $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen(['name' => $salesRule->getName()]); $this->promoQuoteEdit->getFormPageActions()->delete(); + $this->promoQuoteEdit->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/UpdateSalesRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/UpdateSalesRuleEntityTest.php index a1ef4b347fe..5ae2160bc42 100644 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/UpdateSalesRuleEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestCase/UpdateSalesRuleEntityTest.php @@ -127,5 +127,6 @@ class UpdateSalesRuleEntityTest extends Injectable $this->promoQuoteIndex->open(); $this->promoQuoteIndex->getPromoQuoteGrid()->searchAndOpen($filter); $this->promoQuoteEdit->getFormPageActions()->delete(); + $this->promoQuoteEdit->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/DeleteAllSalesRuleStep.php b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/DeleteAllSalesRuleStep.php index 98bf51e84f7..db64010c1af 100644 --- a/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/DeleteAllSalesRuleStep.php +++ b/dev/tests/functional/tests/app/Magento/SalesRule/Test/TestStep/DeleteAllSalesRuleStep.php @@ -54,6 +54,7 @@ class DeleteAllSalesRuleStep implements TestStepInterface while ($this->promoQuoteIndex->getPromoQuoteGrid()->isFirstRowVisible()) { $this->promoQuoteIndex->getPromoQuoteGrid()->openFirstRow(); $this->promoQuoteEdit->getFormPageActions()->delete(); + $this->promoQuoteEdit->getModalBlock()->acceptAlert(); $this->promoQuoteIndex->getSystemMessageDialog()->closePopup(); } } diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Page/Adminhtml/SitemapEdit.xml b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Page/Adminhtml/SitemapEdit.xml index 78ebe3f0f12..9f2d045ae61 100644 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/Page/Adminhtml/SitemapEdit.xml +++ b/dev/tests/functional/tests/app/Magento/Sitemap/Test/Page/Adminhtml/SitemapEdit.xml @@ -6,7 +6,8 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="SitemapEdit" area="Adminhtml" mca="admin/sitemap/edit" module="Magento_Sitemap"> - <block name="formPageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - </page> + <page name="SitemapEdit" area="Adminhtml" mca="admin/sitemap/edit" module="Magento_Sitemap"> + <block name="formPageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/DeleteSitemapEntityTest.php b/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/DeleteSitemapEntityTest.php index 56371fb69ad..9e62c9111a0 100644 --- a/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/DeleteSitemapEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Sitemap/Test/TestCase/DeleteSitemapEntityTest.php @@ -72,5 +72,6 @@ class DeleteSitemapEntityTest extends Injectable $this->sitemapIndex->open(); $this->sitemapIndex->getSitemapGrid()->searchAndOpen($filter); $this->sitemapEdit->getFormPageActions()->delete(); + $this->sitemapEdit->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateNew.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateNew.xml index 0237379975c..9940b8cca86 100644 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateNew.xml +++ b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRateNew.xml @@ -6,9 +6,10 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="TaxRateNew" area="Adminhtml" mca="tax/rate/add" module="Magento_Tax"> - <block name="formPageActions" class="Magento\Tax\Test\Block\Adminhtml\Rate\Edit\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="taxRateForm" class="Magento\Tax\Test\Block\Adminhtml\Rate\Edit\Form" locator="#rate-form" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - </page> + <page name="TaxRateNew" area="Adminhtml" mca="tax/rate/add" module="Magento_Tax"> + <block name="formPageActions" class="Magento\Tax\Test\Block\Adminhtml\Rate\Edit\FormPageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="taxRateForm" class="Magento\Tax\Test\Block\Adminhtml\Rate\Edit\Form" locator="#rate-form" strategy="css selector"/> + <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleNew.xml b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleNew.xml index 3396503e1d4..3806a2e36a1 100644 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleNew.xml +++ b/dev/tests/functional/tests/app/Magento/Tax/Test/Page/Adminhtml/TaxRuleNew.xml @@ -6,9 +6,10 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="TaxRuleNew" area="Adminhtml" mca="tax/rule/new" module="Magento_Tax"> - <block name="formPageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="taxRuleForm" class="Magento\Tax\Test\Block\Adminhtml\Rule\Edit\Form" locator="#edit_form" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - </page> + <page name="TaxRuleNew" area="Adminhtml" mca="tax/rule/new" module="Magento_Tax"> + <block name="formPageActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="taxRuleForm" class="Magento\Tax\Test\Block\Adminhtml\Rule\Edit\Form" locator="#edit_form" strategy="css selector"/> + <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRateEntityTest.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRateEntityTest.php index 4bbdfbe5204..a83bfa60070 100644 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRateEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRateEntityTest.php @@ -81,5 +81,6 @@ class DeleteTaxRateEntityTest extends Injectable $this->taxRateIndex->open(); $this->taxRateIndex->getTaxRateGrid()->searchAndOpen($filter); $this->taxRateNew->getFormPageActions()->delete(); + $this->taxRateNew->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRuleEntityTest.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRuleEntityTest.php index bef4c799b43..de83384d07a 100644 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRuleEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Tax/Test/TestCase/DeleteTaxRuleEntityTest.php @@ -89,5 +89,6 @@ class DeleteTaxRuleEntityTest extends Injectable $this->taxRuleIndexPage->open(); $this->taxRuleIndexPage->getTaxRuleGrid()->searchAndOpen(['code' => $taxRule->getCode()]); $this->taxRuleNewPage->getFormPageActions()->delete(); + $this->taxRuleNewPage->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Tax/Test/TestStep/DeleteAllTaxRulesStep.php b/dev/tests/functional/tests/app/Magento/Tax/Test/TestStep/DeleteAllTaxRulesStep.php index d24b2ca4c4d..212d8beabc9 100644 --- a/dev/tests/functional/tests/app/Magento/Tax/Test/TestStep/DeleteAllTaxRulesStep.php +++ b/dev/tests/functional/tests/app/Magento/Tax/Test/TestStep/DeleteAllTaxRulesStep.php @@ -55,6 +55,7 @@ class DeleteAllTaxRulesStep implements TestStepInterface while ($this->taxRuleIndexPage->getTaxRuleGrid()->isFirstRowVisible()) { $this->taxRuleIndexPage->getTaxRuleGrid()->openFirstRow(); $this->taxRuleNewPage->getFormPageActions()->delete(); + $this->taxRuleNewPage->getModalBlock()->acceptAlert(); } } } diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php index 11ca409773a..837a0abcb0e 100644 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php +++ b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php @@ -250,7 +250,10 @@ class DataGrid extends Grid ->find(sprintf($this->massActionToggleList, $actionType), Locator::SELECTOR_XPATH) ->click(); if ($acceptAlert) { - $this->browser->find($this->actionButton)->click(); + $element = $this->browser->find('._show[data-role=modal]'); + /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ + $modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]); + $modal->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php new file mode 100644 index 00000000000..b419a8e91b4 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php @@ -0,0 +1,95 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Ui\Test\Block\Adminhtml; + +use Magento\Mtf\Block\Block; +use Magento\Mtf\Client\Locator; + +/** + * Alert, confirm, prompt block. + */ +class Modal extends Block +{ + /** + * Locator value for accept button. + * + * @var string + */ + protected $acceptButtonSelector = '.action-accept'; + + /** + * Locator value for dismiss button. + * + * @var string + */ + protected $dismissButtonSelector = '.action-dismiss'; + + /** + * Locator value for close button. + * + * @var string + */ + protected $closeButtonSelector = '.action-close'; + + /** + * Locator value for prompt input. + * + * @var string + */ + protected $inputFieldSelector = '[data-role="promptField"]'; + + /** + * Press OK on an alert, confirm, prompt a dialog + * + * @return void + */ + public function acceptAlert() + { + $this->_rootElement->find($this->acceptButtonSelector)->click(); + } + + /** + * Press Cancel on an alert, confirm, prompt a dialog + * + * @return void + */ + public function dismissAlert() + { + $this->_rootElement->find($this->dismissButtonSelector)->click(); + } + + /** + * Press Close on an alert, confirm, prompt a dialog + * + * @return void + */ + public function closeAlert() + { + $this->_rootElement->find($this->closeButtonSelector)->click(); + } + + /** + * Get the alert dialog text + * + * @return string + */ + public function getAlertText() + { + return $this->_rootElement->find($this->inputFieldSelector)->getValue(); + } + + /** + * Set the text to a prompt popup + * + * @param string $text + * @return void + */ + public function setAlertText($text) + { + $this->_rootElement->find($this->inputFieldSelector)->setValue($text); + } +} diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteEdit.xml b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteEdit.xml index 77022c54f4f..96a0d514a30 100644 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteEdit.xml +++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/Page/Adminhtml/UrlRewriteEdit.xml @@ -6,13 +6,14 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="UrlRewriteEdit" area="Adminhtml" mca="admin/url_rewrite/edit" module="Magento_UrlRewrite"> - <block name="treeBlock" class="Magento\UrlRewrite\Test\Block\Adminhtml\Catalog\Category\Tree" locator="[id='page:main-container']" strategy="css selector"/> - <block name="formBlock" class="Magento\UrlRewrite\Test\Block\Adminhtml\Catalog\Edit\UrlRewriteForm" locator="[id='page:main-container']" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/> - <block name="pageMainActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="productGridBlock" class="Magento\UrlRewrite\Test\Block\Adminhtml\Catalog\Product\Grid" locator="[id='productGrid']" strategy="css selector"/> - <block name="urlRewriteTypeSelectorBlock" class="Magento\UrlRewrite\Test\Block\Adminhtml\Selector" locator="[data-container-for='entity-type-selector']" strategy="css selector"/> - <block name="cmsGridBlock" class="Magento\UrlRewrite\Test\Block\Adminhtml\Cms\Page\Grid" locator="#cmsPageGrid" strategy="css selector"/> - </page> + <page name="UrlRewriteEdit" area="Adminhtml" mca="admin/url_rewrite/edit" module="Magento_UrlRewrite"> + <block name="treeBlock" class="Magento\UrlRewrite\Test\Block\Adminhtml\Catalog\Category\Tree" locator="[id='page:main-container']" strategy="css selector"/> + <block name="formBlock" class="Magento\UrlRewrite\Test\Block\Adminhtml\Catalog\Edit\UrlRewriteForm" locator="[id='page:main-container']" strategy="css selector"/> + <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages .messages" strategy="css selector"/> + <block name="pageMainActions" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="productGridBlock" class="Magento\UrlRewrite\Test\Block\Adminhtml\Catalog\Product\Grid" locator="[id='productGrid']" strategy="css selector"/> + <block name="urlRewriteTypeSelectorBlock" class="Magento\UrlRewrite\Test\Block\Adminhtml\Selector" locator="[data-container-for='entity-type-selector']" strategy="css selector"/> + <block name="cmsGridBlock" class="Magento\UrlRewrite\Test\Block\Adminhtml\Cms\Page\Grid" locator="#cmsPageGrid" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCategoryUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCategoryUrlRewriteEntityTest.php index 75365689598..a7eebdeae3e 100644 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCategoryUrlRewriteEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCategoryUrlRewriteEntityTest.php @@ -82,5 +82,6 @@ class DeleteCategoryUrlRewriteEntityTest extends Injectable } $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen($filter); $this->urlRewriteEdit->getPageMainActions()->delete(); + $this->urlRewriteEdit->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCustomUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCustomUrlRewriteEntityTest.php index f5592e87abe..d34485b7819 100644 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCustomUrlRewriteEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteCustomUrlRewriteEntityTest.php @@ -78,5 +78,6 @@ class DeleteCustomUrlRewriteEntityTest extends Injectable $filter = ['request_path' => $urlRewrite->getRequestPath()]; $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen($filter); $this->urlRewriteEdit->getPageMainActions()->delete(); + $this->urlRewriteEdit->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteProductUrlRewriteEntityTest.php b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteProductUrlRewriteEntityTest.php index c668f0512ea..5673b0ae5e3 100644 --- a/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteProductUrlRewriteEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/UrlRewrite/Test/TestCase/DeleteProductUrlRewriteEntityTest.php @@ -80,5 +80,6 @@ class DeleteProductUrlRewriteEntityTest extends Injectable $filter = ['request_path' => $productRedirect->getRequestPath()]; $this->urlRewriteIndex->getUrlRedirectGrid()->searchAndOpen($filter); $this->urlRewriteEdit->getPageMainActions()->delete(); + $this->urlRewriteEdit->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserEdit.xml b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserEdit.xml index 63f87299179..67a33346808 100644 --- a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserEdit.xml +++ b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserEdit.xml @@ -6,10 +6,11 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="UserEdit" area="Adminhtml" mca="admin/user/edit" module="Magento_User"> - <block name="pageActions" class="Magento\User\Test\Block\Adminhtml\User\Edit\PageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - <block name="userForm" class="Magento\User\Test\Block\Adminhtml\User\UserForm" locator="[id='page:main-container']" strategy="css selector"/> - <block name="rolesGrid" class="Magento\User\Test\Block\Adminhtml\User\Tab\Role\Grid" locator="[id='permissionsUserRolesGrid']" strategy="css selector"/> - </page> + <page name="UserEdit" area="Adminhtml" mca="admin/user/edit" module="Magento_User"> + <block name="pageActions" class="Magento\User\Test\Block\Adminhtml\User\Edit\PageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> + <block name="userForm" class="Magento\User\Test\Block\Adminhtml\User\UserForm" locator="[id='page:main-container']" strategy="css selector"/> + <block name="rolesGrid" class="Magento\User\Test\Block\Adminhtml\User\Tab\Role\Grid" locator="[id='permissionsUserRolesGrid']" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleEditRole.xml b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleEditRole.xml index 739a150f8a4..4f30dddd026 100644 --- a/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleEditRole.xml +++ b/dev/tests/functional/tests/app/Magento/User/Test/Page/Adminhtml/UserRoleEditRole.xml @@ -6,9 +6,10 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="UserRoleEditRole" area="Adminhtml" mca="admin/user_role/editrole" module="Magento_User"> - <block name="pageActions" class="Magento\User\Test\Block\Adminhtml\Role\PageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="roleFormTabs" class="Magento\User\Test\Block\Adminhtml\Role\RoleForm" locator="[id='page:main-container']" strategy="css selector"/> - <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> - </page> + <page name="UserRoleEditRole" area="Adminhtml" mca="admin/user_role/editrole" module="Magento_User"> + <block name="pageActions" class="Magento\User\Test\Block\Adminhtml\Role\PageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="roleFormTabs" class="Magento\User\Test\Block\Adminhtml\Role\RoleForm" locator="[id='page:main-container']" strategy="css selector"/> + <block name="messagesBlock" class="Magento\Backend\Test\Block\Messages" locator="#messages" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteAdminUserEntityTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteAdminUserEntityTest.php index 66299206227..0e0c500fc5f 100644 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteAdminUserEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteAdminUserEntityTest.php @@ -120,6 +120,7 @@ class DeleteAdminUserEntityTest extends Injectable $this->userIndex->open(); $this->userIndex->getUserGrid()->searchAndOpen($filter); $this->userEdit->getPageActions()->delete(); + $this->userEdit->getModalBlock()->acceptAlert(); } /** diff --git a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteUserRoleEntityTest.php b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteUserRoleEntityTest.php index 22421a9557c..8f66d93cc08 100644 --- a/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteUserRoleEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/User/Test/TestCase/DeleteUserRoleEntityTest.php @@ -122,6 +122,7 @@ class DeleteUserRoleEntityTest extends Injectable $this->userRoleIndex->open(); $this->userRoleIndex->getRoleGrid()->searchAndOpen($filter); $this->userRoleEditRole->getPageActions()->delete(); + $this->userRoleEditRole->getModalBlock()->acceptAlert(); } /** diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Page/Adminhtml/SystemVariableNew.xml b/dev/tests/functional/tests/app/Magento/Variable/Test/Page/Adminhtml/SystemVariableNew.xml index 1ef12a76ebc..294fbe0a1e9 100644 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Page/Adminhtml/SystemVariableNew.xml +++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Page/Adminhtml/SystemVariableNew.xml @@ -6,8 +6,9 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../vendor/magento/mtf/etc/pages.xsd"> - <page name="SystemVariableNew" area="Adminhtml" mca="admin/system_variable/new" module="Magento_Variable"> - <block name="formPageActions" class="Magento\Variable\Test\Block\Adminhtml\System\Variable\FormPageActions" locator=".page-main-actions" strategy="css selector"/> - <block name="systemVariableForm" class="Magento\Variable\Test\Block\Adminhtml\System\Variable\Edit\VariableForm" locator="#edit_form" strategy="css selector"/> - </page> + <page name="SystemVariableNew" area="Adminhtml" mca="admin/system_variable/new" module="Magento_Variable"> + <block name="formPageActions" class="Magento\Variable\Test\Block\Adminhtml\System\Variable\FormPageActions" locator=".page-main-actions" strategy="css selector"/> + <block name="systemVariableForm" class="Magento\Variable\Test\Block\Adminhtml\System\Variable\Edit\VariableForm" locator="#edit_form" strategy="css selector"/> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> + </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.php b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.php index 48ae7608c56..a52fdc02ca3 100644 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Variable/Test/TestCase/DeleteCustomVariableEntityTest.php @@ -80,5 +80,6 @@ class DeleteCustomVariableEntityTest extends Injectable $this->systemVariableIndexPage->open(); $this->systemVariableIndexPage->getSystemVariableGrid()->searchAndOpen($filter); $this->systemVariableNewPage->getFormPageActions()->delete(); + $this->systemVariableNewPage->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/Page/Adminhtml/WidgetInstanceEdit.xml b/dev/tests/functional/tests/app/Magento/Widget/Test/Page/Adminhtml/WidgetInstanceEdit.xml index ce17b52e6d4..a91e0a5d3c3 100644 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/Page/Adminhtml/WidgetInstanceEdit.xml +++ b/dev/tests/functional/tests/app/Magento/Widget/Test/Page/Adminhtml/WidgetInstanceEdit.xml @@ -10,5 +10,6 @@ <block name="widgetForm" class="Magento\Widget\Test\Block\Adminhtml\Widget\Instance\Edit\WidgetForm" locator="[id='page:main-container']" strategy="css selector" /> <block name="pageActionsBlock" class="Magento\Backend\Test\Block\FormPageActions" locator=".page-main-actions" strategy="css selector" /> <block name="templateBlock" class="Magento\Backend\Test\Block\Template" locator="body" strategy="css selector" /> + <block name="modalBlock" class="Magento\Ui\Test\Block\Adminhtml\Modal" locator="._show[data-role=modal]" strategy="css selector"/> </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/DeleteWidgetEntityTest.php b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/DeleteWidgetEntityTest.php index 29a30c20cbc..fa1fdf69283 100644 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/DeleteWidgetEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Widget/Test/TestCase/DeleteWidgetEntityTest.php @@ -77,5 +77,6 @@ class DeleteWidgetEntityTest extends Injectable $this->widgetInstanceIndex->open(); $this->widgetInstanceIndex->getWidgetGrid()->searchAndOpen($filter); $this->widgetInstanceEdit->getPageActionsBlock()->delete(); + $this->widgetInstanceEdit->getModalBlock()->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Widget/Test/TestStep/DeleteAllWidgetsStep.php b/dev/tests/functional/tests/app/Magento/Widget/Test/TestStep/DeleteAllWidgetsStep.php index fd5825cb022..f3d8184eea1 100644 --- a/dev/tests/functional/tests/app/Magento/Widget/Test/TestStep/DeleteAllWidgetsStep.php +++ b/dev/tests/functional/tests/app/Magento/Widget/Test/TestStep/DeleteAllWidgetsStep.php @@ -55,6 +55,7 @@ class DeleteAllWidgetsStep implements TestStepInterface $this->widgetInstanceIndex->getWidgetGrid()->openFirstRow(); $this->widgetInstanceEdit->getTemplateBlock()->waitLoader(); $this->widgetInstanceEdit->getPageActionsBlock()->delete(); + $this->widgetInstanceEdit->getModalBlock()->acceptAlert(); $this->widgetInstanceIndex->getSystemMessageDialog()->closePopup(); } } diff --git a/lib/web/mage/adminhtml/grid.js b/lib/web/mage/adminhtml/grid.js index 727c7f3a1cb..b1a8acb5e48 100644 --- a/lib/web/mage/adminhtml/grid.js +++ b/lib/web/mage/adminhtml/grid.js @@ -8,11 +8,12 @@ define([ 'jquery', 'mage/template', 'Magento_Ui/js/modal/alert', + 'Magento_Ui/js/modal/confirm', 'mage/mage', 'prototype', 'mage/adminhtml/form', 'mage/adminhtml/events' -], function (jQuery, mageTemplate, alert) { +], function (jQuery, mageTemplate, alert, confirm) { window.varienGrid = new Class.create(); @@ -644,6 +645,8 @@ varienGridMassaction.prototype = { } }, apply: function() { + var self = this; + if(varienStringArray.count(this.checkedString) == 0) { alert({ content: this.errorText @@ -659,35 +662,39 @@ varienGridMassaction.prototype = { } this.currentItem = item; var fieldName = (item.field ? item.field : this.formFieldName); - var fieldsHtml = ''; - - if(this.currentItem.confirm && !window.confirm(this.currentItem.confirm)) { - return; - } - - this.formHiddens.update(''); - new Insertion.Bottom(this.formHiddens, this.fieldTemplate({ - name: fieldName, - value: this.checkedString - })); - new Insertion.Bottom(this.formHiddens, this.fieldTemplate({ - name: 'massaction_prepare_key', - value: fieldName - })); - if(!jQuery(this.form).valid()) { - return; - } - - if(this.useAjax && item.url) { - new Ajax.Request(item.url, { - 'method': 'post', - 'parameters': this.form.serialize(true), - 'onComplete': this.onMassactionComplete.bind(this) + if (this.currentItem.confirm) { + confirm({ + content: this.currentItem.confirm, + actions: { + confirm: function () { + self.formHiddens.update(''); + new Insertion.Bottom(self.formHiddens, self.fieldTemplate({ + name: fieldName, + value: self.checkedString + })); + new Insertion.Bottom(self.formHiddens, self.fieldTemplate({ + name: 'massaction_prepare_key', + value: fieldName + })); + + if (!jQuery(self.form).valid()) { + return; + } + + if (self.useAjax && item.url) { + new Ajax.Request(item.url, { + 'method': 'post', + 'parameters': self.form.serialize(true), + 'onComplete': self.onMassactionComplete.bind(self) + }); + } else if (item.url) { + self.form.action = item.url; + self.form.submit(); + } + } + } }); - } else if(item.url) { - this.form.action = item.url; - this.form.submit(); } }, onMassactionComplete: function(transport) { -- GitLab From 55fbcaf560d9e9c970a423284e664a39bcce7eb0 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Mon, 28 Sep 2015 09:15:03 +0300 Subject: [PATCH 136/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- .../view/adminhtml/templates/system/messages/popup.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml index 93b389bed2f..f20dcc76144 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml +++ b/app/code/Magento/AdminNotification/view/adminhtml/templates/system/messages/popup.phtml @@ -28,7 +28,7 @@ require([ this.modal.html($('[data-role="system_messages_list"]').html()); } else { this.modal = $('[data-role="system_messages_list"]').modal({ - modalClass: 'ui-popup-message', + modalClass: 'modal-system-messages ui-popup-message', type: 'popup', buttons: [] }); -- GitLab From b3241277eadd77ab7b3d8bde3fe547f023b3a9f4 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Mon, 28 Sep 2015 09:32:11 +0300 Subject: [PATCH 137/420] MAGETWO-42995: Stabilize functional tests --- .../tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php index b419a8e91b4..928a74c283a 100644 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php +++ b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php @@ -40,7 +40,7 @@ class Modal extends Block * * @var string */ - protected $inputFieldSelector = '[data-role="promptField"]'; + protected $inputFieldSelector = '[data-role="promptField"]'; /** * Press OK on an alert, confirm, prompt a dialog -- GitLab From 20768680e1814f70c5996b8db54f7e538cbf4f25 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Mon, 28 Sep 2015 10:34:01 +0300 Subject: [PATCH 138/420] MAGETWO-42995: Stabilize functional tests --- .../view/adminhtml/web/js/variations/variations.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/variations.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/variations.js index cbaecde06c8..d0d16754d0c 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/variations.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/variations.js @@ -338,7 +338,9 @@ define([ parentElement.find('[name$="[image]"]').val(data.result.file); parentElement.find('[data-toggle=dropdown]').dropdown().show(); } else { - alert($.mage.__('We don\'t recognize or support this file extension type.')); + alert({ + content: $.mage.__('We don\'t recognize or support this file extension type.') + }); } }, start: function (event) { -- GitLab From faa5f9a572ac1ea44750936bd9dc51c20513269d Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Mon, 28 Sep 2015 11:42:47 +0300 Subject: [PATCH 139/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- .../adminhtml/templates/dashboard/index.phtml | 15 +- .../adminhtml/templates/media/uploader.phtml | 7 +- .../templates/catalog/category/edit.phtml | 11 +- .../catalog/product/attribute/js.phtml | 12 +- .../catalog/product/attribute/set/main.phtml | 678 +++++++++--------- .../Checkout/view/frontend/web/js/sidebar.js | 14 +- .../catalog/product/attribute/set/js.phtml | 17 +- .../view/adminhtml/templates/tab/cart.phtml | 25 +- .../adminhtml/web/edit/tab/js/addresses.js | 16 +- .../Customer/view/frontend/web/address.js | 25 +- .../templates/product/edit/downloadable.phtml | 15 +- .../adminhtml/templates/template/edit.phtml | 7 +- .../templates/export/form/before.phtml | 9 +- .../templates/import/form/before.phtml | 16 +- .../view/frontend/web/js/paypal-checkout.js | 44 +- .../adminhtml/web/order/create/scripts.js | 20 +- .../templates/promo/salesrulejs.phtml | 10 +- .../adminhtml/templates/create/items.phtml | 7 +- .../catalog/product/attribute/js.phtml | 11 +- .../view/adminhtml/templates/rule/edit.phtml | 39 +- .../view/adminhtml/templates/tabs/css.phtml | 7 +- .../view/adminhtml/templates/tabs/js.phtml | 9 +- .../base/web/js/form/components/collection.js | 20 +- .../templates/instance/edit/layout.phtml | 11 +- lib/web/mage/backend/editablemultiselect.js | 65 +- 25 files changed, 651 insertions(+), 459 deletions(-) diff --git a/app/code/Magento/Backend/view/adminhtml/templates/dashboard/index.phtml b/app/code/Magento/Backend/view/adminhtml/templates/dashboard/index.phtml index 5c9cf626e37..bd97edfa35b 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/dashboard/index.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/dashboard/index.phtml @@ -10,7 +10,10 @@ <?php if (is_array($block->getChildBlock('diagrams')->getTabsIds())) : ?> <script> -require(['prototype'], function(){ +require([ + 'Magento_Ui/js/modal/alert', + 'prototype' +], function(alert){ window.changeDiagramsPeriod = function(periodObj) { periodParam = periodObj.value ? 'period/' + periodObj.value + '/' : ''; @@ -25,7 +28,9 @@ window.changeDiagramsPeriod = function(periodObj) { if (transport.responseText.isJSON()) { var response = transport.responseText.evalJSON() if (response.error) { - alert(response.message); + alert({ + content: response.message + }); } if(response.ajaxExpired && response.ajaxRedirect) { setLocation(response.ajaxRedirect); @@ -47,9 +52,11 @@ window.changeDiagramsPeriod = function(periodObj) { tabContentElementId = 'dashboard_diagram_totals'; try { if (transport.responseText.isJSON()) { - var response = transport.responseText.evalJSON() + var response = transport.responseText.evalJSON(); if (response.error) { - alert(response.message); + alert({ + content: response.message + }); } if(response.ajaxExpired && response.ajaxRedirect) { setLocation(response.ajaxRedirect); diff --git a/app/code/Magento/Backend/view/adminhtml/templates/media/uploader.phtml b/app/code/Magento/Backend/view/adminhtml/templates/media/uploader.phtml index d6bd7de2f1c..a876ad6c6e5 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/media/uploader.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/media/uploader.phtml @@ -31,9 +31,10 @@ require([ "jquery", 'mage/template', + 'Magento_Ui/js/modal/alert', "mage/translate", "jquery/file-uploader" -], function ($, mageTemplate) { +], function ($, mageTemplate, alert) { $('#fileupload').fileupload({ dataType: 'json', @@ -75,7 +76,9 @@ require([ $('#' + data.fileId) .delay(2000) .hide('highlight'); - alert($.mage.__('We don\'t recognize or support this file extension type.')); + alert({ + content: $.mage.__('We don\'t recognize or support this file extension type.') + }); } $('#' + data.fileId).remove(); }, diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit.phtml index 7974f2731cf..7b7a22849be 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit.phtml @@ -21,9 +21,10 @@ require([ "jquery", "tinymce", 'Magento_Ui/js/modal/confirm', + 'Magento_Ui/js/modal/alert', "loadingPopup", "mage/backend/floating-header" -], function(jQuery, tinyMCE, confirm){ +], function(jQuery, tinyMCE, confirm, alert){ //<![CDATA[ function categoryReset(url,useAjax){ @@ -87,7 +88,9 @@ require([ }); $categoryContainer.html(''); } catch (e) { - alert(e.message); + alert({ + content: e.message + }); } $categoryContainer.html(data.content).trigger('contentUpdated'); setTimeout(function() { @@ -104,7 +107,9 @@ require([ window.refreshTreeArea(); } } catch (e) { - alert(e.message); + alert({ + content: e.message + }); }; }, 25); } diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/js.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/js.phtml index 18816994754..332345cb2c1 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/js.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/js.phtml @@ -8,7 +8,12 @@ ?> <script> -require(["jquery", "collapsable", "prototype"], function(jQuery){ +require([ + "jquery", + 'Magento_Ui/js/modal/alert', + "collapsable", + "prototype" +], function(jQuery, alert){ function toggleApplyVisibility(select) { if ($(select).value == 1) { @@ -269,7 +274,10 @@ function saveAttributeInNewSet(promptMessage) var rules = ['required-entry', 'validate-no-html-tags']; for (var i = 0; i < rules.length; i++) { if (!jQuery.validator.methods[rules[i]](newAttributeSetName)) { - alert(jQuery.validator.messages[rules[i]]); + alert({ + content: jQuery.validator.messages[rules[i]] + }); + return; } } diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/main.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/main.phtml index 31c9a24e15f..35ecbf32540 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/main.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/main.phtml @@ -11,23 +11,23 @@ <div class="edit-attribute-set attribute-set-col"> <?php echo $block->getSetFormHtml() ?> <script> -require([ - "jquery", - "mage/mage" -], function(jQuery){ + require([ + "jquery", + "mage/mage" + ], function(jQuery){ - jQuery('#set-prop-form').mage('validation', {errorClass: 'mage-error'}); + jQuery('#set-prop-form').mage('validation', {errorClass: 'mage-error'}); -}); -</script> + }); + </script> </div> <div class="attribute-set-col fieldset-wrapper"> <div class="fieldset-wrapper-title"> <span class="title"><?php /* @escapeNotVerified */ echo __('Groups') ?></span> </div> <?php if (!$block->getIsReadOnly()): ?> - <?php /* @escapeNotVerified */ echo $block->getAddGroupButton() ?> <?php /* @escapeNotVerified */ echo $block->getDeleteGroupButton() ?> - <p class="note-block"><?php /* @escapeNotVerified */ echo __('Double click on a group to rename it.') ?></p> + <?php /* @escapeNotVerified */ echo $block->getAddGroupButton() ?> <?php /* @escapeNotVerified */ echo $block->getDeleteGroupButton() ?> + <p class="note-block"><?php /* @escapeNotVerified */ echo __('Double click on a group to rename it.') ?></p> <?php endif; ?> <?php echo $block->getSetsFilterHtml() ?> @@ -41,345 +41,359 @@ require([ <!--[if IE]> <script id="ie-deferred-loader" defer="defer" src=""></script> <![endif]--> - <script> -define("tree-panel", ["jquery", 'Magento_Ui/js/modal/prompt', "extjs/ext-tree-checkbox", "prototype"], function(jQuery, prompt){ - - //<![CDATA[ - var allowDragAndDrop = <?php /* @escapeNotVerified */ echo($block->getIsReadOnly() ? 'false' : 'true'); ?>; - var canEditGroups = <?php /* @escapeNotVerified */ echo($block->getIsReadOnly() ? 'false' : 'true'); ?>; - - var TreePanels = function() { - // shorthand - var Tree = Ext.tree; - - return { - init : function(){ - // yui-ext tree - - var tree = new Ext.tree.TreePanel('tree-div1', { - animate:false, - loader: false, - enableDD:allowDragAndDrop, - containerScroll: true, - rootVisible: false - }); - - // set the root node - this.root = new Ext.tree.TreeNode({ - text: 'ROOT', - allowDrug:false, - allowDrop:true, - id:'1' - }); - - tree.setRootNode(this.root); - buildCategoryTree(this.root, <?php /* @escapeNotVerified */ echo $block->getGroupTreeJson() ?>); - // render the tree - tree.render(); - this.root.expand(false, false); - tree.expandAll(); - - this.ge = new Ext.tree.TreeEditor(tree, { - allowBlank:false, - blankText:'<?php /* @escapeNotVerified */ echo __('A name is required.') ?>', - selectOnFocus:true, - cls:'folder' - }); - - this.root.addListener('beforeinsert', editSet.leftBeforeInsert); - this.root.addListener('beforeappend', editSet.leftBeforeInsert); - - //this.ge.addListener('beforerender', editSet.editGroup); - this.ge.addListener('beforeshow', editSet.editGroup); - this.ge.addListener('beforecomplete', editSet.beforeRenameGroup); - //this.ge.addListener('startedit', editSet.editGroup); - - //------------------------------------------------------------- - - var tree2 = new Ext.tree.TreePanel('tree-div2', { - animate:false, - loader: false, - enableDD:allowDragAndDrop, - containerScroll: true, - rootVisible: false, - lines:false - }); - - // set the root node - this.root2 = new Ext.tree.TreeNode({ - text: 'ROOT', - draggable:false, - id:'free' - }); - tree2.setRootNode(this.root2); - buildCategoryTree(this.root2, <?php /* @escapeNotVerified */ echo $block->getAttributeTreeJson() ?>); - - this.root2.addListener('beforeinsert', editSet.rightBeforeInsert); - this.root2.addListener('beforeappend', editSet.rightBeforeAppend); - - this.root2.addListener('append', editSet.rightAppend); - this.root2.addListener('remove', editSet.rightRemove); - // render the tree - tree2.render(); - this.root2.expand(false, false); - tree2.expandAll(); - }, - - rebuildTrees : function(){ - editSet.req.attributes = new Array(); - rootNode = TreePanels.root; - var gIterator = 0; - for( i in rootNode.childNodes ) { - if(rootNode.childNodes[i].id) { - var group = rootNode.childNodes[i]; - editSet.req.groups[gIterator] = new Array(group.id, group.attributes.text.strip(), (gIterator+1)); - var iterator = 0 - for( j in group.childNodes ) { - iterator ++; - if( group.childNodes[j].id > 0 ) { - editSet.req.attributes[group.childNodes[j].id] = new Array(group.childNodes[j].id, group.id, iterator, group.childNodes[j].attributes.entity_id); + <script> + define("tree-panel", + [ + "jquery", + "Magento_Ui/js/modal/prompt", + "Magento_Ui/js/modal/alert", + "extjs/ext-tree-checkbox", + "prototype" + ], function(jQuery, prompt, alert){ + + //<![CDATA[ + var allowDragAndDrop = <?php /* @escapeNotVerified */ echo($block->getIsReadOnly() ? 'false' : 'true'); ?>; + var canEditGroups = <?php /* @escapeNotVerified */ echo($block->getIsReadOnly() ? 'false' : 'true'); ?>; + + var TreePanels = function() { + // shorthand + var Tree = Ext.tree; + + return { + init : function(){ + // yui-ext tree + + var tree = new Ext.tree.TreePanel('tree-div1', { + animate:false, + loader: false, + enableDD:allowDragAndDrop, + containerScroll: true, + rootVisible: false + }); + + // set the root node + this.root = new Ext.tree.TreeNode({ + text: 'ROOT', + allowDrug:false, + allowDrop:true, + id:'1' + }); + + tree.setRootNode(this.root); + buildCategoryTree(this.root, <?php /* @escapeNotVerified */ echo $block->getGroupTreeJson() ?>); + // render the tree + tree.render(); + this.root.expand(false, false); + tree.expandAll(); + + this.ge = new Ext.tree.TreeEditor(tree, { + allowBlank:false, + blankText:'<?php /* @escapeNotVerified */ echo __('A name is required.') ?>', + selectOnFocus:true, + cls:'folder' + }); + + this.root.addListener('beforeinsert', editSet.leftBeforeInsert); + this.root.addListener('beforeappend', editSet.leftBeforeInsert); + + //this.ge.addListener('beforerender', editSet.editGroup); + this.ge.addListener('beforeshow', editSet.editGroup); + this.ge.addListener('beforecomplete', editSet.beforeRenameGroup); + //this.ge.addListener('startedit', editSet.editGroup); + + //------------------------------------------------------------- + + var tree2 = new Ext.tree.TreePanel('tree-div2', { + animate:false, + loader: false, + enableDD:allowDragAndDrop, + containerScroll: true, + rootVisible: false, + lines:false + }); + + // set the root node + this.root2 = new Ext.tree.TreeNode({ + text: 'ROOT', + draggable:false, + id:'free' + }); + tree2.setRootNode(this.root2); + buildCategoryTree(this.root2, <?php /* @escapeNotVerified */ echo $block->getAttributeTreeJson() ?>); + + this.root2.addListener('beforeinsert', editSet.rightBeforeInsert); + this.root2.addListener('beforeappend', editSet.rightBeforeAppend); + + this.root2.addListener('append', editSet.rightAppend); + this.root2.addListener('remove', editSet.rightRemove); + // render the tree + tree2.render(); + this.root2.expand(false, false); + tree2.expandAll(); + }, + + rebuildTrees : function(){ + editSet.req.attributes = new Array(); + rootNode = TreePanels.root; + var gIterator = 0; + for( i in rootNode.childNodes ) { + if(rootNode.childNodes[i].id) { + var group = rootNode.childNodes[i]; + editSet.req.groups[gIterator] = new Array(group.id, group.attributes.text.strip(), (gIterator+1)); + var iterator = 0 + for( j in group.childNodes ) { + iterator ++; + if( group.childNodes[j].id > 0 ) { + editSet.req.attributes[group.childNodes[j].id] = new Array(group.childNodes[j].id, group.id, iterator, group.childNodes[j].attributes.entity_id); + } } + iterator = 0; } - iterator = 0; + gIterator ++; } - gIterator ++; - } - editSet.req.not_attributes = new Array(); - rootNode = TreePanels.root2; + editSet.req.not_attributes = new Array(); + rootNode = TreePanels.root2; - var iterator = 0; - for( i in rootNode.childNodes ) { - if(rootNode.childNodes[i].id) { - if( rootNode.childNodes[i].id > 0 ) { - editSet.req.not_attributes[iterator] = rootNode.childNodes[i].attributes.entity_id; + var iterator = 0; + for( i in rootNode.childNodes ) { + if(rootNode.childNodes[i].id) { + if( rootNode.childNodes[i].id > 0 ) { + editSet.req.not_attributes[iterator] = rootNode.childNodes[i].attributes.entity_id; + } + iterator ++; } - iterator ++; } } - } - }; - }(); - - function buildCategoryTree(parent, config){ - if (!config) return null; - if (parent && config && config.length){ - for (var i = 0; i < config.length; i++) { - var node = new Ext.tree.TreeNode(config[i]); - parent.appendChild(node); - node.addListener('click', editSet.register); - node.addListener('beforemove', editSet.groupBeforeMove); - node.addListener('beforeinsert', editSet.groupBeforeInsert); - node.addListener('beforeappend', editSet.groupBeforeInsert); - if( config[i].children ) { - for( j in config[i].children ) { - if(config[i].children[j].id) { - newNode = new Ext.tree.TreeNode(config[i].children[j]); - node.appendChild(newNode); - newNode.addListener('click', editSet.unregister); + }; + }(); + + function buildCategoryTree(parent, config){ + if (!config) return null; + if (parent && config && config.length){ + for (var i = 0; i < config.length; i++) { + var node = new Ext.tree.TreeNode(config[i]); + parent.appendChild(node); + node.addListener('click', editSet.register); + node.addListener('beforemove', editSet.groupBeforeMove); + node.addListener('beforeinsert', editSet.groupBeforeInsert); + node.addListener('beforeappend', editSet.groupBeforeInsert); + if( config[i].children ) { + for( j in config[i].children ) { + if(config[i].children[j].id) { + newNode = new Ext.tree.TreeNode(config[i].children[j]); + node.appendChild(newNode); + newNode.addListener('click', editSet.unregister); + } } } } } } - } - editSet = function() { - return { - register : function(node) { - editSet.currentNode = node; - }, + editSet = function() { + return { + register : function(node) { + editSet.currentNode = node; + }, - unregister : function() { - editSet.currentNode = false; - }, - - submit : function() { - if( TreePanels.root.firstChild == TreePanels.root.lastChild ) { - return; - } + unregister : function() { + editSet.currentNode = false; + }, - if( editSet.SystemNodesExists(editSet.currentNode) ) { - alert('<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('This group contains system attributes. Please move system attributes to another group and try again.')) ?>'); - return; - } + submit : function() { + if( TreePanels.root.firstChild == TreePanels.root.lastChild ) { + return; + } + if( editSet.SystemNodesExists(editSet.currentNode) ) { + alert({ + content: '<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('This group contains system attributes. Please move system attributes to another group and try again.')) ?>' + }); + return; + } - if( editSet.currentNode && editSet.currentNode.attributes.cls == 'folder' ) { - TreePanels.root.removeChild(editSet.currentNode); - for( i in editSet.currentNode.childNodes ) { - if( editSet.currentNode.childNodes[i].id ) { - child = editSet.currentNode.childNodes[i]; - newNode = new Ext.tree.TreeNode(child.attributes); + if( editSet.currentNode && editSet.currentNode.attributes.cls == 'folder' ) { + TreePanels.root.removeChild(editSet.currentNode); + for( i in editSet.currentNode.childNodes ) { + if( editSet.currentNode.childNodes[i].id ) { + child = editSet.currentNode.childNodes[i]; + newNode = new Ext.tree.TreeNode(child.attributes); - if( child.attributes.is_user_defined == 1 ) { - TreePanels.root2.appendChild(newNode); + if( child.attributes.is_user_defined == 1 ) { + TreePanels.root2.appendChild(newNode); + } } } + editSet.req.removeGroups[editSet.currentNode.id] = editSet.currentNode.id; + editSet.currentNode = false; } - editSet.req.removeGroups[editSet.currentNode.id] = editSet.currentNode.id; - editSet.currentNode = false; - } - }, - - SystemNodesExists : function(currentNode) { - for (i in currentNode.childNodes) { - if (currentNode.childNodes[i].id) { - child = editSet.currentNode.childNodes[i]; - if (child.attributes.is_unassignable != 1) { - return true; + }, + + SystemNodesExists : function(currentNode) { + for (i in currentNode.childNodes) { + if (currentNode.childNodes[i].id) { + child = editSet.currentNode.childNodes[i]; + if (child.attributes.is_unassignable != 1) { + return true; + } } } - } - }, - - rightAppend : function(node) { - return; - }, - - addGroup : function() { - var self = this; - - prompt({ - content: "<?php /* @escapeNotVerified */ echo __('Please enter a new group name.') ?>", - value: '', - actions: { - confirm: function (group_name) { - group_name = group_name.strip(); - if( group_name == '' ) { - self.addGroup(); - } else if( group_name != false && group_name != null && group_name != '' ) { - - if (!editSet.validateGroupName(group_name, 0)) { - return; - } + }, - var newNode = new Ext.tree.TreeNode({ - text : group_name.escapeHTML(), - cls : 'folder', - allowDrop : true, - allowDrag : true - }); - TreePanels.root.appendChild(newNode); - newNode.addListener('beforemove', editSet.groupBeforeMove); - newNode.addListener('beforeinsert', editSet.groupBeforeInsert); - newNode.addListener('beforeappend', editSet.groupBeforeInsert); - newNode.addListener('click', editSet.register); + rightAppend : function(node) { + return; + }, + + addGroup : function() { + prompt({ + content: "<?php /* @escapeNotVerified */ echo __('Please enter a new group name.') ?>", + value: "Some value", + actions: { + confirm: function (group_name) { + group_name = group_name.strip(); + if( group_name == '' ) { + self.addGroup(); + } else if( group_name != false && group_name != null && group_name != '' ) { + + if (!editSet.validateGroupName(group_name, 0)) { + return; + } + + var newNode = new Ext.tree.TreeNode({ + text : group_name.escapeHTML(), + cls : 'folder', + allowDrop : true, + allowDrag : true + }); + TreePanels.root.appendChild(newNode); + newNode.addListener('beforemove', editSet.groupBeforeMove); + newNode.addListener('beforeinsert', editSet.groupBeforeInsert); + newNode.addListener('beforeappend', editSet.groupBeforeInsert); + newNode.addListener('click', editSet.register); + } } } + }); + }, + + editGroup : function(obj) { + if( obj.editNode.attributes.cls != 'folder' || !canEditGroups) { + TreePanels.ge.cancelEdit(); + return false; } - }); - }, + }, - editGroup : function(obj) { - if( obj.editNode.attributes.cls != 'folder' || !canEditGroups) { - TreePanels.ge.cancelEdit(); - return false; - } - }, + beforeRenameGroup : function(obj, after, before) { + return editSet.validateGroupName(after, obj.editNode.id); + }, - beforeRenameGroup : function(obj, after, before) { - return editSet.validateGroupName(after, obj.editNode.id); - }, + validateGroupName : function(name, exceptNodeId) { + name = name.strip(); + var result = true; + if (name === '') { + result = false; + } + for (var i=0; i < TreePanels.root.childNodes.length; i++) { + if (TreePanels.root.childNodes[i].text.toLowerCase() == name.toLowerCase() && TreePanels.root.childNodes[i].id != exceptNodeId) { + errorText = '<?php /* @escapeNotVerified */ echo __('An attribute group named "/name/" already exists".') ?>'; + alert({ + content: errorText.replace("/name/",name) + }); + result = false; + } + } + return result; + }, - validateGroupName : function(name, exceptNodeId) { - name = name.strip(); - var result = true; - if (name === '') { - result = false; - } - for (var i=0; i < TreePanels.root.childNodes.length; i++) { - if (TreePanels.root.childNodes[i].text.toLowerCase() == name.toLowerCase() && TreePanels.root.childNodes[i].id != exceptNodeId) { - errorText = '<?php /* @escapeNotVerified */ echo __('An attribute group named "/name/" already exists".') ?>'; - alert(errorText.replace("/name/",name)); - result = false; + save : function() { + if ($('messages')) { + $('messages').update(); } - } - return result; - }, + TreePanels.rebuildTrees(); + if(!jQuery('#set-prop-form').valid()) { + return; + } + editSet.req.attribute_set_name = $('attribute_set_name').value; + if (!editSet.req.form_key) { + editSet.req.form_key = FORM_KEY; + } + var req = {data : Ext.util.JSON.encode(editSet.req)}; + var con = new Ext.lib.Ajax.request('POST', '<?php /* @escapeNotVerified */ echo $block->getMoveUrl() ?>', {success:editSet.success,failure:editSet.failure}, req); + }, + + success : function(o) { + var response = Ext.util.JSON.decode(o.responseText); + if( response.error ) { + $('messages').update(response.message); + } else if( response.ajaxExpired && response.ajaxRedirect ){ + setLocation(response.ajaxRedirect); + } else if( response.url ){ + setLocation(response.url); + } else if( response.message ) { + $('messages').update(response.message); + } + }, - save : function() { - if ($('messages')) { - $('messages').update(); - } - TreePanels.rebuildTrees(); - if(!jQuery('#set-prop-form').valid()) { - return; - } - editSet.req.attribute_set_name = $('attribute_set_name').value; - if (!editSet.req.form_key) { - editSet.req.form_key = FORM_KEY; - } - var req = {data : Ext.util.JSON.encode(editSet.req)}; - var con = new Ext.lib.Ajax.request('POST', '<?php /* @escapeNotVerified */ echo $block->getMoveUrl() ?>', {success:editSet.success,failure:editSet.failure}, req); - }, - - success : function(o) { - var response = Ext.util.JSON.decode(o.responseText); - if( response.error ) { - $('messages').update(response.message); - } else if( response.ajaxExpired && response.ajaxRedirect ){ - setLocation(response.ajaxRedirect); - } else if( response.url ){ - setLocation(response.url); - } else if( response.message ) { - $('messages').update(response.message); - } - }, + failure : function(o) { + alert({ + content: '<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('Sorry, we\'re unable to complete this request.')) ?>' + }); + }, - failure : function(o) { - alert('<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('Sorry, we\'re unable to complete this request.')) ?>'); - }, + groupBeforeMove : function(tree, nodeThis, oldParent, newParent) { + if( newParent.attributes.cls == 'folder' && nodeThis.attributes.cls == 'folder' ) { + return false; + } - groupBeforeMove : function(tree, nodeThis, oldParent, newParent) { - if( newParent.attributes.cls == 'folder' && nodeThis.attributes.cls == 'folder' ) { - return false; - } + if( newParent == TreePanels.root && nodeThis.attributes.cls != 'folder' ) { + return false; + } + }, - if( newParent == TreePanels.root && nodeThis.attributes.cls != 'folder' ) { - return false; - } - }, - - rightBeforeAppend : function(tree, nodeThis, node, newParent) { - if (node.attributes.is_user_defined == 0) { - alert('<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('You can\'t remove attributes from this product template.')) ?>'); - return false; - } else { - return true; - } - }, + rightBeforeAppend : function(tree, nodeThis, node, newParent) { + if (node.attributes.is_user_defined == 0) { + alert({ + content: '<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('You can\'t remove attributes from this product template.')) ?>' + }); + return false; + } else { + return true; + } + }, - rightBeforeInsert : function(tree, nodeThis, node, newParent) { - var empty = TreePanels.root2.findChild('id', 'empty'); - if (empty) { - return false; - } + rightBeforeInsert : function(tree, nodeThis, node, newParent) { + var empty = TreePanels.root2.findChild('id', 'empty'); + if (empty) { + return false; + } - if (node.attributes.is_unassignable == 0) { - alert('<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('You can\'t remove attributes from this product template.')) ?>'); - return false; - } else { - return true; - } - }, + if (node.attributes.is_unassignable == 0) { + alert({ + content: '<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('You can\'t remove attributes from this product template.')) ?>' + }); + return false; + } else { + return true; + } + }, - groupBeforeInsert : function(tree, nodeThis, node, newParent) { - if( node.allowChildren ) { - return false; - } - }, + groupBeforeInsert : function(tree, nodeThis, node, newParent) { + if( node.allowChildren ) { + return false; + } + }, - rightAppend : function(tree, nodeThis, node) { - var empty = TreePanels.root2.findChild('id', 'empty'); - if( empty && node.id != 'empty' ) { - TreePanels.root2.removeChild(empty); - } - }, + rightAppend : function(tree, nodeThis, node) { + var empty = TreePanels.root2.findChild('id', 'empty'); + if( empty && node.id != 'empty' ) { + TreePanels.root2.removeChild(empty); + } + }, - rightRemove : function(tree, nodeThis, node) { - if( nodeThis.firstChild == null && node.id != 'empty' ) { - var newNode = new Ext.tree.TreeNode({ + rightRemove : function(tree, nodeThis, node) { + if( nodeThis.firstChild == null && node.id != 'empty' ) { + var newNode = new Ext.tree.TreeNode({ text : '<?php /* @escapeNotVerified */ echo __('Empty') ?>', id : 'empty', cls : 'folder', @@ -387,35 +401,35 @@ define("tree-panel", ["jquery", 'Magento_Ui/js/modal/prompt', "extjs/ext-tree-ch allowDrop : false, allowDrag : false }); - TreePanels.root2.appendChild(newNode); - } - }, + TreePanels.root2.appendChild(newNode); + } + }, - leftBeforeInsert : function(tree, nodeThis, node, newParent) { - if( node.allowChildren == false ) { - return false; + leftBeforeInsert : function(tree, nodeThis, node, newParent) { + if( node.allowChildren == false ) { + return false; + } } } + }(); + + function initVars() { + editSet.req = {}; + editSet.req.attributes = false; + editSet.req.groups = new Array(); + editSet.req.not_attributes = false; + editSet.req.attribute_set_name = false; + editSet.req.removeGroups = new Array(); } - }(); - - function initVars() { - editSet.req = {}; - editSet.req.attributes = false; - editSet.req.groups = new Array(); - editSet.req.not_attributes = false; - editSet.req.attribute_set_name = false; - editSet.req.removeGroups = new Array(); - } - - jQuery(function() { - initVars(); - TreePanels.init(); - }); - //]]> -}); -require(["tree-panel"]); -</script> + jQuery(function() { + initVars(); + TreePanels.init(); + }); + //]]> + + }); + require(["tree-panel"]); + </script> </div> </div> diff --git a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js index 8509164c987..460fa245f2f 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js @@ -9,9 +9,10 @@ define([ 'Magento_Customer/js/model/authentication-popup', 'Magento_Customer/js/customer-data', 'Magento_Ui/js/modal/alert', + 'Magento_Ui/js/modal/confirm', "jquery/ui", "mage/decorate" -], function($, authenticationPopup, customerData, alert){ +], function($, authenticationPopup, customerData, alert, confirm){ $.widget('mage.sidebar', { options: { @@ -47,9 +48,14 @@ define([ }, this); events['click ' + this.options.button.remove] = function(event) { event.stopPropagation(); - if (confirm(self.options.confirmMessage)) { - self._removeItem($(event.target)); - } + confirm({ + content: self.options.confirmMessage, + actions: { + confirm: function () { + self._removeItem($(event.target)) + } + } + }); }; events['keyup ' + this.options.item.qty] = function(event) { self._showItemButton($(event.target)); diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/attribute/set/js.phtml b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/attribute/set/js.phtml index d78e50b66be..ea036bbf5d6 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/attribute/set/js.phtml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/attribute/set/js.phtml @@ -9,7 +9,10 @@ ?> <script> -require(["tree-panel"], function(){ +require([ + "Magento_Ui/js/modal/alert", + "tree-panel" +], function(alert){ ConfigurableNodeExists = function(currentNode) { for (var i in currentNode.childNodes ) { if (currentNode.childNodes[i].id) { @@ -25,7 +28,9 @@ ConfigurableNodeExists = function(currentNode) { editSet.submit = editSet.submit.wrap(function(original) { if (editSet.currentNode){ if (ConfigurableNodeExists(editSet.currentNode)) { - alert('<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('This group contains attributes used in configurable products. Please move these attributes to another group and try again.')) ?>'); + alert({ + content: '<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('This group contains attributes used in configurable products. Please move these attributes to another group and try again.')) ?>' + }); return; } } @@ -34,7 +39,9 @@ editSet.submit = editSet.submit.wrap(function(original) { editSet.rightBeforeAppend = editSet.rightBeforeAppend.wrap(function(original, tree, nodeThis, node, newParent) { if (node.attributes.is_configurable == 1) { - alert('<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('This attribute is used in configurable products. You cannot remove it from the product template.')) ?>'); + alert({ + content: '<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('This attribute is used in configurable products. You cannot remove it from the product template.')) ?>' + }); return false; } return original(tree, nodeThis, node, newParent); @@ -42,7 +49,9 @@ editSet.rightBeforeAppend = editSet.rightBeforeAppend.wrap(function(original, tr editSet.rightBeforeInsert = editSet.rightBeforeInsert.wrap(function(original, tree, nodeThis, node, newParent) { if (node.attributes.is_configurable == 1) { - alert('<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('This attribute is used in configurable products. You cannot remove it from the product template.')) ?>'); + alert({ + content: '<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('This attribute is used in configurable products. You cannot remove it from the product template.')) ?>' + }); return false; } return original(tree, nodeThis, node, newParent); diff --git a/app/code/Magento/Customer/view/adminhtml/templates/tab/cart.phtml b/app/code/Magento/Customer/view/adminhtml/templates/tab/cart.phtml index 82cd7c70667..4ce0e769faf 100644 --- a/app/code/Magento/Customer/view/adminhtml/templates/tab/cart.phtml +++ b/app/code/Magento/Customer/view/adminhtml/templates/tab/cart.phtml @@ -24,8 +24,10 @@ ?> <script> require([ + "Magento_Ui/js/modal/alert", + "Magento_Ui/js/modal/confirm", "Magento_Catalog/catalog/product/composite/configure" -], function(){ +], function(alert, confirm){ <?php /* @escapeNotVerified */ echo $block->getJsObjectName() ?>cartControl = { reload: function (params) { @@ -51,17 +53,26 @@ require([ }, removeItem: function (itemId) { + var self = this; + if (!itemId) { - alert('<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('No item specified.')) ?>'); - return false; - } - if(!confirm('<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('Are you sure you want to remove this item?')) ?>')) { + alert({ + content:'<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('No item specified.')) ?>' + }); + return false; } - this.reload({'delete':itemId}); + confirm({ + content: '<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('Are you sure you want to remove this item?')) ?>', + actions: { + confirm: function(){ + self.reload({'delete':itemId}); - return false; + return false; + } + } + }); } }; diff --git a/app/code/Magento/Customer/view/adminhtml/web/edit/tab/js/addresses.js b/app/code/Magento/Customer/view/adminhtml/web/edit/tab/js/addresses.js index 7067fbe2e15..cbaaafb86bc 100644 --- a/app/code/Magento/Customer/view/adminhtml/web/edit/tab/js/addresses.js +++ b/app/code/Magento/Customer/view/adminhtml/web/edit/tab/js/addresses.js @@ -5,9 +5,10 @@ define([ 'jquery', 'mage/template', + 'Magento_Ui/js/modal/confirm', 'jquery/ui', 'mage/backend/tabs' -], function ($, mageTemplate) { +], function ($, mageTemplate, confirm) { 'use strict'; $.widget('mage.addressTabs', $.mage.tabs, { @@ -136,9 +137,16 @@ define([ * @private */ _deleteItemPrompt: function (event, data) { - if (window.confirm(this.options.deleteConfirmPrompt)) { - this._deleteItem(data.item); - } + var self = this; + + confirm({ + content: this.options.deleteConfirmPrompt, + actions: { + confirm: function () { + self._deleteItem(data.item); + } + } + }); }, /** diff --git a/app/code/Magento/Customer/view/frontend/web/address.js b/app/code/Magento/Customer/view/frontend/web/address.js index 5a6ea1b6ee3..4ea88c7067b 100644 --- a/app/code/Magento/Customer/view/frontend/web/address.js +++ b/app/code/Magento/Customer/view/frontend/web/address.js @@ -6,9 +6,10 @@ /*global confirm:true*/ define([ "jquery", + 'Magento_Ui/js/modal/confirm', "jquery/ui", "mage/translate" -], function($){ +], function($, confirm){ "use strict"; $.widget('mage.address', { @@ -53,14 +54,22 @@ define([ * @return {Boolean} */ _deleteAddress: function(e) { - if (confirm(this.options.deleteConfirmMessage)) { - if (typeof $(e.target).parent().data('address') !== 'undefined') { - window.location = this.options.deleteUrlPrefix + $(e.target).parent().data('address'); - } - else { - window.location = this.options.deleteUrlPrefix + $(e.target).data('address'); + var self = this; + + confirm({ + content: this.options.deleteConfirmMessage, + actions: { + confirm: function() { + if (typeof $(e.target).parent().data('address') !== 'undefined') { + window.location = self.options.deleteUrlPrefix + $(e.target).parent().data('address'); + } + else { + window.location = self.options.deleteUrlPrefix + $(e.target).data('address'); + } + } } - } + }); + return false; } }); diff --git a/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable.phtml b/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable.phtml index 6892c319357..43b096acfcc 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable.phtml +++ b/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable.phtml @@ -18,9 +18,10 @@ require([ 'jquery', 'Magento_Ui/js/lib/registry/registry', 'mage/template', + 'Magento_Ui/js/modal/alert', 'mage/mage', 'prototype' -], function (jQuery, registry, mageTemplate) { +], function (jQuery, registry, mageTemplate, alert) { //<![CDATA[> var uploaderTemplate = '<div class="no-display" id="[[idName]]-template">' + @@ -62,7 +63,9 @@ var uploaderTemplate = '<div class="no-display" id="[[idName]]-template">' + try { console.log(e); } catch (e2) { - alert(e.name + '\n' + e.message); + alert({ + content: e.name + '\n' + e.message + }); } } }, @@ -73,7 +76,9 @@ var uploaderTemplate = '<div class="no-display" id="[[idName]]-template">' + try { console.log(e); } catch (e2) { - alert(e.name + '\n' + e.message); + alert({ + content: e.name + '\n' + e.message + }); } } }, @@ -91,7 +96,9 @@ var uploaderTemplate = '<div class="no-display" id="[[idName]]-template">' + try { console.log(e); } catch (e2) { - alert(e.name + '\n' + e.message); + alert({ + content: e.name + '\n' + e.message + }); } } } diff --git a/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml b/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml index 6ca97943019..7036d332825 100644 --- a/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml +++ b/app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml @@ -59,10 +59,11 @@ use Magento\Framework\App\TemplateTypesInterface; require([ "jquery", "tinymce", + "Magento_Ui/js/modal/alert", "mage/mage", "Magento_Variable/variables", "prototype" -], function(jQuery, tinyMCE){ +], function(jQuery, tinyMCE, alert){ //<![CDATA[ jQuery('#email_template_edit_form').mage('form').mage('validation'); @@ -207,7 +208,9 @@ require([ } }.bind(this)); } else { - alert('<?php /* @escapeNotVerified */ echo __('The template did not load. Please review the log for details.') ?>'); + alert({ + content: '<?php /* @escapeNotVerified */ echo __('The template did not load. Please review the log for details.') ?>' + }); } }.bind(this) }); diff --git a/app/code/Magento/ImportExport/view/adminhtml/templates/export/form/before.phtml b/app/code/Magento/ImportExport/view/adminhtml/templates/export/form/before.phtml index c9084964d9f..e5c60e69e82 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/templates/export/form/before.phtml +++ b/app/code/Magento/ImportExport/view/adminhtml/templates/export/form/before.phtml @@ -5,7 +5,10 @@ */ ?> <script> -require(['prototype'], function(){ +require([ + 'Magento_Ui/js/modal/alert', + 'prototype' +], function(alert){ //<![CDATA[ // Temporary Class will be replaced after refactoring of import/export functionality @@ -81,7 +84,9 @@ require(['prototype'], function(){ form.submit(); form.action = oldAction; } else { - alert('Invalid data'); + alert({ + content: 'Invalid data' + }); } }; diff --git a/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/before.phtml b/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/before.phtml index 78b5a7139d7..b7466362088 100644 --- a/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/before.phtml +++ b/app/code/Magento/ImportExport/view/adminhtml/templates/import/form/before.phtml @@ -10,7 +10,11 @@ /** @var $block \Magento\ImportExport\Block\Adminhtml\Import\Edit\Before */ ?> <script> -require(['jquery', 'prototype'], function(jQuery){ +require([ + 'jquery', + 'Magento_Ui/js/modal/alert', + 'prototype' +], function(jQuery, alert){ //<![CDATA[ // Temporary Class will be replaced after refactoring of import/export functionality @@ -200,7 +204,11 @@ require(['jquery', 'prototype'], function(jQuery){ */ postToFrameProcessResponse: function(response) { if ('object' != typeof(response)) { - return alert('Invalid response'); + alert({ + content: 'Invalid response' + }); + + return false; } $H(response).each(function(pair) { switch (pair.key) { @@ -231,7 +239,9 @@ require(['jquery', 'prototype'], function(jQuery){ }); break; default: - alert(pair.key + ': ' + pair.value); + alert({ + content: pair.key + ': ' + pair.value + }); break; } }); diff --git a/app/code/Magento/Paypal/view/frontend/web/js/paypal-checkout.js b/app/code/Magento/Paypal/view/frontend/web/js/paypal-checkout.js index bd0111de817..bc474987c89 100644 --- a/app/code/Magento/Paypal/view/frontend/web/js/paypal-checkout.js +++ b/app/code/Magento/Paypal/view/frontend/web/js/paypal-checkout.js @@ -5,9 +5,10 @@ /*jshint browser:true jquery:true*/ define([ 'jquery', + 'Magento_Ui/js/modal/confirm', 'jquery/ui', 'mage/mage' -], function ($) { +], function ($, confirm) { 'use strict'; $.widget('mage.paypalCheckout', { @@ -18,26 +19,43 @@ define([ _create: function () { this.element.on('click', '[data-action="checkout-form-submit"]', $.proxy(function (e) { var returnUrl = $(e.target).data('checkout-url'), - form; + self = this; e.preventDefault(); if (this.options.confirmUrl && this.options.confirmMessage) { - if (window.confirm(this.options.confirmMessage)) { - returnUrl = this.options.confirmUrl; - } + confirm({ + content: this.options.confirmMessage, + actions: { + confirm: function() { + returnUrl = self.options.confirmUrl; + self._redirect(returnUrl); + }, + cancel: function() { + self.redirect(returnUrl); + } + } + }); + + return false; } - if (this.options.isCatalogProduct) { - // find the form from which the button was clicked - form = $(this.options.shortcutContainerClass).closest('form'); + this._redirect(returnUrl); - $(form).find(this.options.paypalCheckoutSelector).val(returnUrl); - $(form).submit(); - } else { - $.mage.redirect(returnUrl); - } }, this)); + }, + _redirect: function(returnUrl) { + var form; + + if (this.options.isCatalogProduct) { + // find the form from which the button was clicked + form = $(this.options.shortcutContainerClass).closest('form'); + + $(form).find(this.options.paypalCheckoutSelector).val(returnUrl); + $(form).submit(); + } else { + $.mage.redirect(returnUrl); + } } }); diff --git a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js index 938f24992aa..fbe0fa8248f 100644 --- a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js +++ b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js @@ -4,10 +4,11 @@ */ define([ "jquery", + 'Magento_Ui/js/modal/confirm', "mage/translate", "prototype", "Magento_Catalog/catalog/product/composite/configure" -], function(jQuery){ +], function(jQuery, confirm){ window.AdminOrder = new Class.create(); @@ -704,11 +705,18 @@ AdminOrder.prototype = { }, clearShoppingCart : function(confirmMessage){ - if (confirm(confirmMessage)) { - this.collectElementsValue = false; - order.sidebarApplyChanges({'sidebar[empty_customer_cart]': 1}); - this.collectElementsValue = true; - } + var self = this; + + confirm({ + content: confirmMessage, + actions: { + confirm: function() { + self.collectElementsValue = false; + order.sidebarApplyChanges({'sidebar[empty_customer_cart]': 1}); + self.collectElementsValue = true; + } + } + }); }, sidebarApplyChanges : function(auxiliaryParams) { diff --git a/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml b/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml index f2a8fc4b3f0..010132dca1e 100644 --- a/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml +++ b/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml @@ -5,7 +5,11 @@ */ ?> <script> -require(['jquery', "prototype"], function(jQuery){ +require([ + 'jquery', + 'Magento_Ui/js/modal/alert', + 'prototype' +], function(jQuery, alert){ //<![CDATA[ var couponTypeSpecific = '<?php /* @escapeNotVerified */ echo \Magento\SalesRule\Model\Rule::COUPON_TYPE_SPECIFIC ?>', @@ -93,7 +97,9 @@ function generateCouponCodes(idPrefix, generateUrl, grid) { } } if (response && response.error) { - alert(response.error); + alert({ + content: response.error + }); } } }); diff --git a/app/code/Magento/Shipping/view/adminhtml/templates/create/items.phtml b/app/code/Magento/Shipping/view/adminhtml/templates/create/items.phtml index 0aed9867ff6..3044a6dc5e8 100644 --- a/app/code/Magento/Shipping/view/adminhtml/templates/create/items.phtml +++ b/app/code/Magento/Shipping/view/adminhtml/templates/create/items.phtml @@ -115,8 +115,9 @@ <script> require([ "jquery", + "Magento_Ui/js/modal/alert", "prototype" -], function(jQuery){ +], function(jQuery, alert){ //<![CDATA[ var sendEmailCheckbox = $('send_email'); @@ -145,7 +146,9 @@ window.toggleCreateLabelCheckbox = function() { } window.submitShipment = function(btn) { if (!validQtyItems()) { - alert('<?php /* @escapeNotVerified */ echo __('Invalid value(s) for Qty to Ship') ?>'); + alert({ + content: '<?php /* @escapeNotVerified */ echo __('Invalid value(s) for Qty to Ship') ?>' + }); return; } var checkbox = $(btn).up('.order-totals').select('#create_shipping_label')[0]; diff --git a/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml b/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml index b1951c3f2ae..a44f812a5c8 100644 --- a/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml +++ b/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml @@ -8,7 +8,12 @@ ?> <script> -require(["jquery", "collapsable", "prototype"], function(jQuery){ +require([ + "jquery", + "Magento_Ui/js/modal/alert", + "collapsable", + "prototype" +], function(jQuery, alert){ function toggleApplyVisibility(select) { if ($(select).value == 1) { @@ -324,7 +329,9 @@ function saveAttributeInNewSet(promptMessage) var rules = ['required-entry', 'validate-no-html-tags']; for (var i = 0; i < rules.length; i++) { if (!jQuery.validator.methods[rules[i]](newAttributeSetName)) { - alert(jQuery.validator.messages[rules[i]]); + alert({ + content: jQuery.validator.messages[rules[i]] + }); return; } } diff --git a/app/code/Magento/Tax/view/adminhtml/templates/rule/edit.phtml b/app/code/Magento/Tax/view/adminhtml/templates/rule/edit.phtml index 3674d7feffb..e04ddfeeefe 100644 --- a/app/code/Magento/Tax/view/adminhtml/templates/rule/edit.phtml +++ b/app/code/Magento/Tax/view/adminhtml/templates/rule/edit.phtml @@ -11,11 +11,12 @@ <script> require([ "jquery", + 'Magento_Ui/js/modal/alert', "jquery/ui", "jquery/editableMultiselect/js/jquery.multiselect", "mage/mage", 'Magento_Ui/js/modal/modal' -], function($){ +], function($, alert){ $.widget("adminhtml.dialogRates", $.mage.modal, { options: { @@ -91,14 +92,20 @@ require([ } else { if (result.error_message) - alert(result.error_message); + alert({ + content: result.error_message + }); else - alert('<?php /* @escapeNotVerified */ echo __('An error occurred'); ?>'); + alert({ + content: '<?php /* @escapeNotVerified */ echo __('An error occurred'); ?>' + }); } }, error: function () { $('body').trigger('processStop'); - alert('<?php /* @escapeNotVerified */ echo __('An error occurred'); ?>'); + alert({ + content: '<?php /* @escapeNotVerified */ echo __('An error occurred'); ?>' + }); }, dataType: "json" }); @@ -177,14 +184,20 @@ require([ select.find('option').eq(index).remove(); } else { if (result.error_message) - alert(result.error_message); + alert({ + content: result.error_message + }); else - alert('<?php /* @escapeNotVerified */ echo __('An error occurred'); ?>'); + alert({ + content: '<?php /* @escapeNotVerified */ echo __('An error occurred'); ?>' + }); } }, error: function () { $('body').trigger('processStop'); - alert('<?php /* @escapeNotVerified */ echo __('An error occurred'); ?>'); + alert({ + content: '<?php /* @escapeNotVerified */ echo __('An error occurred'); ?>' + }); } }; $.ajax(ajaxOptions); @@ -253,14 +266,20 @@ require([ taxRateForm.dialogRates('closeModal'); } else { if (result.error_message) - alert(result.error_message); + alert({ + content: result.error_message + }); else - alert('<?php /* @escapeNotVerified */ echo __('An error occurred'); ?>'); + alert({ + content: '<?php /* @escapeNotVerified */ echo __('An error occurred'); ?>' + }); } }, error: function () { $('body').trigger('processStop'); - alert('<?php /* @escapeNotVerified */ echo __('An error occurred'); ?>'); + alert({ + content: '<?php /* @escapeNotVerified */ echo __('An error occurred'); ?>' + }); } }; $.ajax(ajaxOptions); diff --git a/app/code/Magento/Theme/view/adminhtml/templates/tabs/css.phtml b/app/code/Magento/Theme/view/adminhtml/templates/tabs/css.phtml index 4fe1d1b1aec..192ca0fbcdb 100644 --- a/app/code/Magento/Theme/view/adminhtml/templates/tabs/css.phtml +++ b/app/code/Magento/Theme/view/adminhtml/templates/tabs/css.phtml @@ -12,9 +12,10 @@ <script> require([ "jquery", + "Magento_Ui/js/modal/alert", "jquery/file-uploader", "mage/translate" -], function($){ +], function($, alert){ $( '#css_file_uploader' ).fileupload({ dataType: 'json', @@ -65,7 +66,9 @@ require([ */ fail: function(e, data) { $(this).val(''); - alert($.mage.__("We don't recognize this file extension.")); + alert({ + content: $.mage.__("We don't recognize this file extension.") + }); } }); diff --git a/app/code/Magento/Theme/view/adminhtml/templates/tabs/js.phtml b/app/code/Magento/Theme/view/adminhtml/templates/tabs/js.phtml index 8c7e677ceeb..5ba996c8446 100644 --- a/app/code/Magento/Theme/view/adminhtml/templates/tabs/js.phtml +++ b/app/code/Magento/Theme/view/adminhtml/templates/tabs/js.phtml @@ -10,11 +10,12 @@ <script> require([ "jquery", - 'mage/template', + "mage/template", + "Magento_Ui/js/modal/alert", "jquery/file-uploader", "Magento_Theme/js/sortable", "mage/translate" -], function ($, mageTemplate) { +], function ($, mageTemplate, alert) { $('#js_files_uploader').fileupload({ dataType: 'json', @@ -109,7 +110,9 @@ require([ $(progressSelector).removeClass('upload-progress').addClass('upload-failure'); $(this).val(''); - alert($.mage.__("We don't recognize this file extension.")); + alert({ + content: $.mage.__("We don't recognize this file extension.") + }); } }); diff --git a/app/code/Magento/Ui/view/base/web/js/form/components/collection.js b/app/code/Magento/Ui/view/base/web/js/form/components/collection.js index bf10209d9d9..6da41f343d0 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/components/collection.js +++ b/app/code/Magento/Ui/view/base/web/js/form/components/collection.js @@ -7,8 +7,9 @@ define([ 'mageUtils', 'uiRegistry', 'uiComponent', - 'Magento_Ui/js/core/renderer/layout' -], function (_, utils, registry, Component, layout) { + 'Magento_Ui/js/core/renderer/layout', + 'Magento_Ui/js/modal/confirm' +], function (_, utils, registry, Component, layout, confirm) { 'use strict'; var childTemplate = { @@ -152,11 +153,16 @@ define([ * it requires function to invoke. */ removeAddress: function (elem) { - var confirmed = confirm(this.removeMessage); - - if (confirmed) { - this._removeAddress(elem); - } + var self = this; + + confirm({ + content: this.removeMessage, + actions: { + confirm: function () { + self._removeAddress(elem) + } + } + }); }, /** diff --git a/app/code/Magento/Widget/view/adminhtml/templates/instance/edit/layout.phtml b/app/code/Magento/Widget/view/adminhtml/templates/instance/edit/layout.phtml index bcdf62afc6b..94a3eb7145b 100644 --- a/app/code/Magento/Widget/view/adminhtml/templates/instance/edit/layout.phtml +++ b/app/code/Magento/Widget/view/adminhtml/templates/instance/edit/layout.phtml @@ -22,9 +22,10 @@ require([ 'jquery', 'mage/template', + 'Magento_Ui/js/modal/alert', "prototype", "extjs/ext-tree-checkbox" -], function (jQuery, mageTemplate) { +], function (jQuery, mageTemplate, alert) { //<![CDATA[ @@ -376,7 +377,9 @@ var WidgetInstance = { chooser.show(); } } catch (e) { - alert('Error occurs during loading chooser.'); + alert({ + content: 'Error occurs during loading chooser.' + }); } } }); @@ -469,7 +472,9 @@ var WidgetInstance = { } } } catch (e) { - alert('Error occurs during loading chooser.'); + alert({ + content: 'Error occurs during loading chooser.' + }); } } }); diff --git a/lib/web/mage/backend/editablemultiselect.js b/lib/web/mage/backend/editablemultiselect.js index 075770b6f9d..ab4679bbe16 100644 --- a/lib/web/mage/backend/editablemultiselect.js +++ b/lib/web/mage/backend/editablemultiselect.js @@ -5,9 +5,10 @@ define([ "jquery", 'Magento_Ui/js/modal/alert', + 'Magento_Ui/js/modal/confirm', "jquery/editableMultiselect/js/jquery.editable", "jquery/editableMultiselect/js/jquery.multiselect" -], function($, alert){ +], function($, alert, confirm){ /** @@ -241,35 +242,43 @@ define([ * @param options */ EditableMultiselect.prototype.deleteEntity = function(options) { - if (!confirm(this.deleteConfirmMessage) || !options.delete_button) { - return; - } - // Button that has been clicked - var deleteButton = $(options.delete_button), - index = deleteButton.parent().index(), - select = deleteButton.closest('.mselect-list').prev(), - entityId = select.find('option').eq(index).val(), - entityInfo = {}; - entityInfo[this.entityIdName] = entityId; - var postData = $.extend(entityInfo, this.submitData); + var self = this; - var ajaxOptions = { - type: 'POST', - data: postData, - dataType: 'json', - url: this.deleteUrl, - success: function(result, status) { - if (result.success) { - deleteButton.parent().remove(); - select.find('option').eq(index).remove(); - } else { - alert({ - content: result.error_message - }); + if (options.delete_button) { + confirm({ + content: this.deleteConfirmMessage, + actions: { + confirm: function() { + // Button that has been clicked + var deleteButton = $(options.delete_button), + index = deleteButton.parent().index(), + select = deleteButton.closest('.mselect-list').prev(), + entityId = select.find('option').eq(index).val(), + entityInfo = {}; + entityInfo[self.entityIdName] = entityId; + var postData = $.extend(entityInfo, self.submitData); + + var ajaxOptions = { + type: 'POST', + data: postData, + dataType: 'json', + url: self.deleteUrl, + success: function(result, status) { + if (result.success) { + deleteButton.parent().remove(); + select.find('option').eq(index).remove(); + } else { + alert({ + content: result.error_message + }); + } + } + }; + $.ajax(ajaxOptions); + } } - } - }; - $.ajax(ajaxOptions); + }); + } }; }; }); \ No newline at end of file -- GitLab From 54b820bdcee8647181d1dfc4c2252fbcd216cf95 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Mon, 28 Sep 2015 16:53:41 +0300 Subject: [PATCH 140/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- .../catalog/product/attribute/js.phtml | 76 +++++++++------- .../adminhtml/templates/template/edit.phtml | 87 ++++++++++++------- .../catalog/product/attribute/js.phtml | 75 +++++++++------- 3 files changed, 144 insertions(+), 94 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/js.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/js.phtml index 332345cb2c1..dfc022ec9b6 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/js.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/js.phtml @@ -11,9 +11,10 @@ require([ "jquery", 'Magento_Ui/js/modal/alert', + 'Magento_Ui/js/modal/prompt', "collapsable", "prototype" -], function(jQuery, alert){ +], function(jQuery, alert, prompt){ function toggleApplyVisibility(select) { if ($(select).value == 1) { @@ -265,39 +266,48 @@ function updateRequriedOptions() function saveAttributeInNewSet(promptMessage) { - var newAttributeSetName = prompt(promptMessage, ''); - - if (newAttributeSetName == null) { - return; - } - - var rules = ['required-entry', 'validate-no-html-tags']; - for (var i = 0; i < rules.length; i++) { - if (!jQuery.validator.methods[rules[i]](newAttributeSetName)) { - alert({ - content: jQuery.validator.messages[rules[i]] - }); - - return; + var newAttributeSetName; + + prompt({ + content: promptMessage, + actions: { + confirm: function(val) { + newAttributeSetName = val; + + if (!newAttributeSetName) { + return; + } + + var rules = ['required-entry', 'validate-no-html-tags']; + for (var i = 0; i < rules.length; i++) { + if (!jQuery.validator.methods[rules[i]](newAttributeSetName)) { + alert({ + content: jQuery.validator.messages[rules[i]] + }); + + return; + } + } + + var newAttributeSetNameInputId = 'new_attribute_set_name'; + + if ($(newAttributeSetNameInputId)) { + $(newAttributeSetNameInputId).value = newAttributeSetName; + } else { + $('edit_form').insert({ + top: new Element('input', { + type: 'hidden', + id: newAttributeSetNameInputId, + name: 'new_attribute_set_name', + value: newAttributeSetName + }) + }); + } + // Temporary solution will replaced after refactoring of attributes functionality + jQuery('#edit_form').triggerHandler('save'); + } } - } - - var newAttributeSetNameInputId = 'new_attribute_set_name'; - - if ($(newAttributeSetNameInputId)) { - $(newAttributeSetNameInputId).value = newAttributeSetName; - } else { - $('edit_form').insert({ - top: new Element('input', { - type: 'hidden', - id: newAttributeSetNameInputId, - name: 'new_attribute_set_name', - value: newAttributeSetName - }) - }); - } - // Temporary solution will replaced after refactoring of attributes functionality - jQuery('#edit_form').triggerHandler('save'); + }); } if($('frontend_input')){ diff --git a/app/code/Magento/Newsletter/view/adminhtml/templates/template/edit.phtml b/app/code/Magento/Newsletter/view/adminhtml/templates/template/edit.phtml index 84c07890a4e..ef4917d29dc 100644 --- a/app/code/Magento/Newsletter/view/adminhtml/templates/template/edit.phtml +++ b/app/code/Magento/Newsletter/view/adminhtml/templates/template/edit.phtml @@ -31,9 +31,11 @@ use Magento\Framework\App\TemplateTypesInterface; require([ 'jquery', 'tinymce', + 'Magento_Ui/js/modal/prompt', + 'Magento_Ui/js/modal/confirm', 'mage/mage', 'prototype' -], function(jQuery, tinyMCE){ +], function(jQuery, tinyMCE, prompt, confirm){ //<![CDATA[ jQuery('#newsletter_template_edit_form').mage('form').mage('validation'); @@ -81,20 +83,28 @@ require([ }, stripTags: function () { - if(!window.confirm("<?php /* @escapeNotVerified */ echo __('Are you sure that you want to strip all tags?') ?>")) { - return false; - } - if(this.isEditor()) { - this.getEditor().turnOff(); - this.getEditor().getToggleButton().hide(); - } - this.unconvertedText = $(this.id).value; - $('convert_button').hide(); - $('convert_button_back').show(); - $(this.id).value = $(this.id).value.stripScripts().stripTags(); - $('field_template_styles').hide(); - this.typeChange = true; - return false; + var self = this; + + confirm({ + content: "<?php /* @escapeNotVerified */ echo __('Are you sure that you want to strip all tags?') ?>", + actions: { + confirm: function(){ + if(self.isEditor()) { + self.getEditor().turnOff(); + self.getEditor().getToggleButton().hide(); + } + self.unconvertedText = $(self.id).value; + $('convert_button').hide(); + $('convert_button_back').show(); + $(self.id).value = $(self.id).value.stripScripts().stripTags(); + $('field_template_styles').hide(); + self.typeChange = true; + + return false; + } + } + }); + }, unStripTags: function () { @@ -123,24 +133,38 @@ require([ }, saveAs: function() { + var self = this; + if (this.typeChange) { $('change_flag_element').value = '1'; } if($F('code').blank() || $F('code')==templateControl.templateName) { - value = prompt('<?php /* @escapeNotVerified */ echo __('Please enter a new template name.') ?>', templateControl.templateName + '<?php /* @escapeNotVerified */ echo __(' Copy') ?>'); - if(!value) { - if(value !== null) { - $('code').value = ''; - // Temporary solution will be replaced after refactoring of newsletter functionality - jQuery('#newsletter_template_edit_form').triggerHandler('save'); - } - return false; - } else { - $('code').value = value; - } + + prompt({ + content: '<?php /* @escapeNotVerified */ echo __('Please enter a new template name.') ?>', + value: templateControl.templateName + '<?php /* @escapeNotVerified */ echo __(' Copy') ?>', + actions: { + confirm: function(value) { + $('code').value = value; + self._saveAs(); + + return false; + }, + cancel: function(){ + $('code').value = ''; + // Temporary solution will be replaced after refactoring of newsletter functionality + jQuery('#newsletter_template_edit_form').triggerHandler('save'); + self._saveAs(); + + return false; + } + } + }); } + }, + _saveAs: function() { $('save_as_flag').value = '1'; if(this.isEditor()) { @@ -176,9 +200,14 @@ require([ }, deleteTemplate: function() { - if(window.confirm("<?php /* @escapeNotVerified */ echo __('Are you sure you want to delete this template?') ?>")) { - window.location.href = '<?php /* @escapeNotVerified */ echo $block->getDeleteUrl() ?>'; - } + confirm({ + content: "<?php /* @escapeNotVerified */ echo __('Are you sure you want to delete this template?') ?>", + actions: { + confirm: function() { + window.location.href = '<?php /* @escapeNotVerified */ echo $block->getDeleteUrl() ?>'; + } + } + }); }, isEditor: function() { diff --git a/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml b/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml index a44f812a5c8..b0c50d0acb2 100644 --- a/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml +++ b/app/code/Magento/Swatches/view/adminhtml/templates/catalog/product/attribute/js.phtml @@ -11,9 +11,10 @@ require([ "jquery", "Magento_Ui/js/modal/alert", + 'Magento_Ui/js/modal/prompt', "collapsable", "prototype" -], function(jQuery, alert){ +], function(jQuery, alert, prompt){ function toggleApplyVisibility(select) { if ($(select).value == 1) { @@ -320,38 +321,48 @@ function updateRequriedOptions() function saveAttributeInNewSet(promptMessage) { - var newAttributeSetName = prompt(promptMessage, ''); - - if (newAttributeSetName == null) { - return; - } - - var rules = ['required-entry', 'validate-no-html-tags']; - for (var i = 0; i < rules.length; i++) { - if (!jQuery.validator.methods[rules[i]](newAttributeSetName)) { - alert({ - content: jQuery.validator.messages[rules[i]] - }); - return; + var newAttributeSetName; + + prompt({ + content: promptMessage, + actions: { + confirm: function(val) { + newAttributeSetName = val; + + if (!newAttributeSetName) { + return; + } + + var rules = ['required-entry', 'validate-no-html-tags']; + for (var i = 0; i < rules.length; i++) { + if (!jQuery.validator.methods[rules[i]](newAttributeSetName)) { + alert({ + content: jQuery.validator.messages[rules[i]] + }); + + return; + } + } + + var newAttributeSetNameInputId = 'new_attribute_set_name'; + + if ($(newAttributeSetNameInputId)) { + $(newAttributeSetNameInputId).value = newAttributeSetName; + } else { + $('edit_form').insert({ + top: new Element('input', { + type: 'hidden', + id: newAttributeSetNameInputId, + name: 'new_attribute_set_name', + value: newAttributeSetName + }) + }); + } + // Temporary solution will replaced after refactoring of attributes functionality + jQuery('#edit_form').triggerHandler('save'); + } } - } - - var newAttributeSetNameInputId = 'new_attribute_set_name'; - - if ($(newAttributeSetNameInputId)) { - $(newAttributeSetNameInputId).value = newAttributeSetName; - } else { - $('edit_form').insert({ - top: new Element('input', { - type: 'hidden', - id: newAttributeSetNameInputId, - name: 'new_attribute_set_name', - value: newAttributeSetName - }) - }); - } - // Temporary solution will replaced after refactoring of attributes functionality - jQuery('#edit_form').triggerHandler('save'); + }); } if($('frontend_input')){ -- GitLab From e7baa5255fed9dfc646ef2522bd0918acae24688 Mon Sep 17 00:00:00 2001 From: Dubovyk Oleksandr <odubovyk@ebay.com> Date: Mon, 28 Sep 2015 19:14:59 +0300 Subject: [PATCH 141/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget --- .../adminhtml/Magento/backend/web/css/source/_forms.less | 2 +- .../backend/web/css/source/components/_file-insertion.less | 1 - .../backend/web/css/source/components/_modals_extend.less | 3 +-- .../Magento/backend/web/css/source/components/_popups.less | 1 - 4 files changed, 2 insertions(+), 5 deletions(-) diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_forms.less b/app/design/adminhtml/Magento/backend/web/css/source/_forms.less index 7abfeb8ef90..8e1e484f69a 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/_forms.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/_forms.less @@ -7,4 +7,4 @@ @import 'forms/_controls.less'; @import 'forms/_fields.less'; @import 'forms/_temp.less'; -@import 'forms/form-wysiwyg.less'; +@import 'forms/_form-wysiwyg.less'; diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less index ded39e78caf..76b8b557f2c 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less @@ -3,7 +3,6 @@ // * See COPYING.txt for license details. // */ - // // Block 'Insert File' // _________________________________________ diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less index 1b591ce69bd..f0cddc63905 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less @@ -24,7 +24,6 @@ @modal-popup-footer-button__margin: 2rem; @modal-popup-footer-button__padding: 1.4rem; @modal-popup-footer-button__font-size: 1.5rem; -// .modal-popup, .modal-slide { @@ -107,8 +106,8 @@ button { font-size: @modal-popup-footer-button__font-size; margin-left: @modal-popup-footer-button__margin; - padding-top: @modal-popup-footer-button__padding; padding-bottom: @modal-popup-footer-button__padding; + padding-top: @modal-popup-footer-button__padding; } } } diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less index c11280a1b89..520b26a148b 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less @@ -389,7 +389,6 @@ // Attribute Popup // _____________________________________________ - .catalog-product-attribute-edit { .page-wrapper { width: 100%; -- GitLab From 2cb60d9f50e56ec4c97d8dd5b2c09a446a7d79e1 Mon Sep 17 00:00:00 2001 From: Dubovyk Oleksandr <odubovyk@ebay.com> Date: Mon, 28 Sep 2015 20:06:47 +0300 Subject: [PATCH 142/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget --- .../backend/web/css/source/components/_modals_extend.less | 1 + lib/web/css/source/components/_modals.less | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less index f0cddc63905..06f270e7973 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less @@ -103,6 +103,7 @@ } .modal-footer { text-align: right; + padding-top: 0; button { font-size: @modal-popup-footer-button__font-size; margin-left: @modal-popup-footer-button__margin; diff --git a/lib/web/css/source/components/_modals.less b/lib/web/css/source/components/_modals.less index 9cac4026e97..7bf5699bbfb 100644 --- a/lib/web/css/source/components/_modals.less +++ b/lib/web/css/source/components/_modals.less @@ -207,7 +207,7 @@ body { .modal-footer { margin-top: auto; padding-bottom: @modal-popup__padding; - //padding-top: @modal-popup__padding; + padding-top: @modal-popup__padding; } .modal-footer-actions { text-align: right; -- GitLab From 8cf6cf6c8e0530e609c7911e24387bc5615426cd Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Mon, 28 Sep 2015 20:17:23 +0300 Subject: [PATCH 143/420] MAGETWO-42995: Stabilize functional tests --- .../Catalog/view/adminhtml/web/js/custom-options.js | 3 +++ .../Test/Block/Adminhtml/Product/Edit/Tab/Options.php | 2 +- lib/web/mage/adminhtml/grid.js | 10 +++++----- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js index ae0c4e07298..d68497046a5 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js @@ -132,6 +132,9 @@ define([ }, buttons: [{ text: $.mage.__('Import'), + attr: { + id: 'import-custom-options-apply-button' + }, 'class': 'action-primary action-import import-custom-options-apply-button', click: function (event, massActionTrigger) { var request = []; diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Tab/Options.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Tab/Options.php index e1524101cee..0cd45384360 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Tab/Options.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Edit/Tab/Options.php @@ -51,7 +51,7 @@ class Options extends Tab * * @var string */ - protected $importGrid = "//ancestor::body/div[*[@id='import-container'] and contains(@style,'display: block')]"; + protected $importGrid = "//ancestor::body//aside[*//div[@id='import-container']]"; /** * Fill custom options form on tab diff --git a/lib/web/mage/adminhtml/grid.js b/lib/web/mage/adminhtml/grid.js index b1a8acb5e48..a8494b7c078 100644 --- a/lib/web/mage/adminhtml/grid.js +++ b/lib/web/mage/adminhtml/grid.js @@ -648,12 +648,12 @@ varienGridMassaction.prototype = { var self = this; if(varienStringArray.count(this.checkedString) == 0) { - alert({ - content: this.errorText - }); + alert({ + content: this.errorText + }); - return; - } + return; + } var item = this.getSelectedItem(); if(!item) { -- GitLab From eb6f00fa0d50f08443ea0d561f2b52f4a6e006ee Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Tue, 29 Sep 2015 01:20:04 +0300 Subject: [PATCH 144/420] JS-193: Test on Windows (IE) --- .../templates/product/view/gallery.phtml | 2 +- .../frontend/Magento/blank/etc/view.xml | 2 +- app/design/frontend/Magento/luma/etc/view.xml | 2 +- lib/web/fotorama/fotorama.js | 18 +++++++------ lib/web/mage/gallery/gallery.less | 1 + lib/web/magnifier/magnifier.js | 27 ++++++++++++++----- 6 files changed, 34 insertions(+), 18 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 76efb363f80..7fc0f6828a7 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -46,7 +46,7 @@ "carouselNavigation": <?php echo $block->getVar("gallery:navigation:carousel"); ?> }, "fullscreen": { - "nav": "<?php echo $block->getVar("gallery:fullscreen:navigation"); ?>", + "nav": "<?php echo $block->getVar("gallery:fullscreen:nav"); ?>", "loop": <?php echo $block->getVar("gallery:fullscreen:loop"); ?>, "navdir": "<?php echo $block->getVar("gallery:fullscreen:navdir"); ?>", "arrows": <?php echo $block->getVar("gallery:fullscreen:arrows"); ?>, diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 2b682ce37d3..3b8a57ea638 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -191,7 +191,7 @@ <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> <var name="gallery:navigation:carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> - <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> + <var name="gallery:fullscreen:nav">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="gallery:fullscreen:loop">false</var> <!-- Fullscreen navigation loop (true/false) --> <var name="gallery:fullscreen:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="gallery:fullscreen:arrows">null</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index d8d0e04fc8f..b3a11d85b61 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -195,7 +195,7 @@ <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> <var name="gallery:navigation:carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> - <var name="gallery:fullscreen:navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> + <var name="gallery:fullscreen:nav">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="gallery:fullscreen:loop">true</var> <!-- Fullscreen navigation loop (true/false/null) --> <var name="gallery:fullscreen:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="gallery:fullscreen:arrows">false</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 54c2c2d0260..8a2cf39e4c4 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -1614,7 +1614,7 @@ fotoramaVersion = '4.6.4'; if (!options.thumb || !options.thumb.areSlides) { $el.css($.extend(getDuration(options.time), translate)); } else { - if ($el.selector !== '.fotorama__nav-wrap .fotorama__nav .fotorama__nav__shaft') { + if ($el.selector !== "." + navWrapClass + " ." + navClass + " ." + navShaftClass) { $el.css($.extend(getDuration(options.time), translate)); if ($el.selector === "." + thumbBorderClass) { @@ -1624,6 +1624,14 @@ fotoramaVersion = '4.6.4'; slidePosition; borderStep += options.navdir === 'vertical' ? options.thumb.height : options.thumb.width; + + if (options.navdir === 'vertical') { + $("." + navClass).height(slideLength * borderStep + 2); + $("." + navClass).width(borderStep + 2); + } else { + $("." + navClass).width(slideLength * borderStep + 1); + $("." + navClass).height(borderStep + 2); + } if (((borderPos < options.pos) || (options.pos === 0)) && ((borderPos !== 0) || (options.pos <= borderStep))) { @@ -3752,25 +3760,19 @@ fotoramaVersion = '4.6.4'; console.log('>>') if (pos < navShaftTouchTail.min) { slidePosition = newPos + (-Math.ceil(newPos % (borderStep * slidesNumb))); - shiftSlide(slidePosition, options, borderStep, slidesNumb); } else { slidePosition = newPos - (borderStep * slidesNumb + Math.round(newPos % (borderStep * slidesNumb) - 1)); - shiftSlide(slidePosition, options, borderStep, slidesNumb); } } else { console.log('<<') if (pos < navShaftTouchTail.min) { if(cooDiff < 0) { slidePosition = newPos + (-Math.ceil(newPos % (borderStep * slidesNumb))); - shiftSlide(slidePosition, options, borderStep, slidesNumb); } else { slidePosition = newPos - (borderStep * slidesNumb + Math.round(newPos % (borderStep * slidesNumb)- 1)); - shiftSlide(slidePosition, options, borderStep, slidesNumb); } - } else { slidePosition = newPos + (-Math.ceil(newPos % (borderStep * slidesNumb))); - shiftSlide(slidePosition, options, borderStep, slidesNumb); } } } @@ -3778,9 +3780,9 @@ fotoramaVersion = '4.6.4'; if (newPos === 0) { console.log('dont move') slidePosition = borderStep * ((newPos/ borderStep + 1) % slidesNumb - 1) - newPos; - shiftSlide(slidePosition, options, borderStep, slidesNumb); } } + shiftSlide(slidePosition, options, borderStep, slidesNumb); slideDrag.slidePosition = slidePosition; } diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index d337576bc38..df162ed3db9 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -74,6 +74,7 @@ height: 50px; display: block; margin-left: 20px; + z-index:1000; } .fotorama__zoom-out { top: 51px; diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 2adcc955bac..a5d89209c9f 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -602,7 +602,7 @@ }); } - $image.on(isTouchEnabled ? 'touchstart' : 'pointerdown mousedown MSPointerDow', function (e) { + $image.on(isTouchEnabled ? 'touchstart' : 'pointerdown mousedown MSPointerDown', function (e) { if (gallery.data('fotorama').fullScreen) { e.preventDefault(); @@ -773,8 +773,11 @@ var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), gallery = $('[data-gallery-role="gallery"]'), imgOriginalSize = getImageSize($image[0].src), - setedResult = Math.round($image.width() + 10); - e.preventDefault(); + setedResult = Math.round($image.width() + options.inc); + if(e) { + e.preventDefault(); + } + if (setedResult >imgOriginalSize.rw) { setedResult = imgOriginalSize.rw; @@ -787,14 +790,18 @@ var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), gallery = $('[data-gallery-role="gallery"]'), imgOriginalSize = getImageSize($image[0].src), - setedResult = Math.round($image.width() - 10); - if(e) { + setedResult = Math.round($image.width() - options.inc); + if (e) { e.preventDefault(); } - if (setedResult < imgOriginalSize.rw/2) { - setedResult = imgOriginalSize.rw/2; + if ($image.width() > $image.height() && $image.width() <= $image.parent().width()) { + return } + if ($image.width() <= $image.height() && $image.height() <= $image.parent().height()) { + return + } + $image.css({'width': setedResult, height: 'auto'}); checkFullscreenImagePosition(); } @@ -824,6 +831,12 @@ $('.fotorama__zoom-out') .off('click', zoomOut) .on('click', zoomOut); + $('.fotorama__zoom-in') + .off('touchstart', zoomIn) + .on('touchstart', zoomIn); + $('.fotorama__zoom-out') + .off('touchstart', zoomOut) + .on('touchstart', zoomOut); } $(document).on('mousemove', onMousemove); -- GitLab From 3840124c4427144c053189a188afcb4d4feaec7f Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Tue, 29 Sep 2015 02:28:32 +0300 Subject: [PATCH 145/420] JS-191: Implement buttons actions --- .../templates/product/view/gallery.phtml | 10 +- .../frontend/Magento/blank/etc/view.xml | 3 +- app/design/frontend/Magento/luma/etc/view.xml | 7 +- lib/web/fotorama/fotorama.js | 412 +++++++++--------- 4 files changed, 215 insertions(+), 217 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 7fc0f6828a7..bb608815123 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -43,7 +43,9 @@ ?: $block->getImageAttribute('product_page_image_medium', 'width'); ?>, "transitionduration": <?php echo $block->getVar("gallery:transition:duration"); ?>, "transition": "<?php echo $block->getVar("gallery:transition:effect"); ?>", - "carouselNavigation": <?php echo $block->getVar("gallery:navigation:carousel"); ?> + "navarrows": <?php echo $block->getVar("gallery:navarrows"); ?>, + "navtype": "<?php echo $block->getVar("gallery:navtype"); ?>", + "navdir": "<?php echo $block->getVar("gallery:navdir"); ?>" }, "fullscreen": { "nav": "<?php echo $block->getVar("gallery:fullscreen:nav"); ?>", @@ -51,12 +53,8 @@ "navdir": "<?php echo $block->getVar("gallery:fullscreen:navdir"); ?>", "arrows": <?php echo $block->getVar("gallery:fullscreen:arrows"); ?>, "showCaption": <?php echo $block->getVar("gallery:fullscreen:caption"); ?>, - "thumbwidth": <?php echo $block->getVar("gallery:fullscreen:thumbwidth"); ?>, - "thumbheight": <?php echo $block->getVar("gallery:fullscreen:thumbheight") - ?: $block->getVar("gallery:fullscreen:thumbwidth"); ?>, "transitionduration": <?php echo $block->getVar("gallery:fullscreen:transition:duration"); ?>, - "transition": "<?php echo $block->getVar("gallery:fullscreen:transition:effect"); ?>", - "carouselNavigation": <?php echo $block->getVar("gallery:fullscreen:navigation:carousel"); ?> + "transition": "<?php echo $block->getVar("gallery:fullscreen:transition:effect"); ?>" }, "breakpoints": { "mobile": { diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 3b8a57ea638..cd60ce49c25 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -187,9 +187,10 @@ <var name="gallery:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> <var name="gallery:navdir">horizontal</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> + <var name="gallery:navarrows">true</var> <!-- Turn on/off on the thumbs navigation sides (true/false) --> + <var name="gallery:navtype">slides</var> <!-- Sliding type of thumbnails (slides/thumbs) --> <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> - <var name="gallery:navigation:carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> <var name="gallery:fullscreen:nav">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="gallery:fullscreen:loop">false</var> <!-- Fullscreen navigation loop (true/false) --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index b3a11d85b61..6c08032df1d 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -184,16 +184,17 @@ <vars module="Magento_Catalog"> <!-- New gallery and magnifier theme settings --> - <var name="gallery:nav">dots</var> <!-- Gallery navigation style (false/thumbs/dots) --> + <var name="gallery:nav">thumbs</var> <!-- Gallery navigation style (false/thumbs/dots) --> <var name="gallery:loop">false</var> <!-- Gallery navigation loop (true/false) --> <var name="gallery:keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false) --> <var name="gallery:arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> - <var name="gallery:caption">true</var> <!-- Display alt text as image title (true/false) --> + <var name="gallery:caption">false</var> <!-- Display alt text as image title (true/false) --> <var name="gallery:allowfullscreen">true</var> <!-- Turn on/off fullscreen (true/false) --> <var name="gallery:navdir">horizontal</var> <!-- Sliding direction of thumbnails (horizontal/vertical) --> + <var name="gallery:navarrows">true</var> <!-- Turn on/off on the thumbs navigation sides (true/false) --> + <var name="gallery:navtype">slides</var> <!-- Sliding type of thumbnails (slides/thumbs) --> <var name="gallery:transition:effect">slide</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="gallery:transition:duration">500</var> <!-- Sets transition duration in ms --> - <var name="gallery:navigation:carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> <var name="gallery:fullscreen:nav">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="gallery:fullscreen:loop">true</var> <!-- Fullscreen navigation loop (true/false/null) --> diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 8a2cf39e4c4..512886e5df4 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -76,6 +76,8 @@ fotoramaVersion = '4.6.4'; imgFullClass = imgClass + '--full', thumbClass = _fotoramaClass + '__thumb', + thumbArrLeft = thumbClass + '__arr--left', + thumbArrRight = thumbClass + '__arr--right', thumbBorderClass = thumbClass + '-border', htmlClass = _fotoramaClass + '__html', @@ -91,15 +93,12 @@ fotoramaVersion = '4.6.4'; verticalImageClass = _fotoramaClass + '_vertical_ratio'; var JQUERY_VERSION = $ && $.fn.jquery.split('.'); - var borderPos = 0, - curSlide = 1; - if (!JQUERY_VERSION || JQUERY_VERSION[0] < 1 || (JQUERY_VERSION[0] == 1 && JQUERY_VERSION[1] < 8)) { throw 'Fotorama requires jQuery 1.8 or later and will not run without it.'; } -// My Underscore :-) + var _ = {}; /* Modernizr 2.8.3 (Custom Build) | MIT & BSD * Build: http://modernizr.com/download/#-csstransforms3d-csstransitions-touch-prefixed @@ -908,6 +907,12 @@ fotoramaVersion = '4.6.4'; MAX_WIDTH = 1200, + /** + * Number of thumbnails in slide. Calculated only on setOptions and resize. + * @type {number} + */ + thumbsPerSlide = 1, + OPTIONS = { /** @@ -967,7 +972,6 @@ fotoramaVersion = '4.6.4'; thumbheight: THUMB_SIZE, thumbmargin: MARGIN, thumbborderwidth: MARGIN, - carouselnavigation: true, allowfullscreen: false, // true || 'native' @@ -998,7 +1002,22 @@ fotoramaVersion = '4.6.4'; shadows: true, spinner: null, showcaption: true, - navdir: 'horisontal' + + /** + * Set type of thumbnail navigation + */ + navdir: 'horisontal', + + /** + * Set configuration to show or hide arrows in thumb navigation + */ + navarrows: true, + + /** + * Set type of navigation. Can be thumbs or slides + */ + navtype: 'thumbs' + }, KEYBOARD_OPTIONS = { @@ -1497,6 +1516,53 @@ fotoramaVersion = '4.6.4'; el.addEventListener ? el.addEventListener(e, fn, !!bool) : el.attachEvent('on' + e, fn); } + /** + * + * @param position guess position for navShaft + * @param restriction object contains min and max values for position + * @returns {*} filtered value of position + */ + function validateRestrictions(position, restriction) { + if (position > restriction.max) { + position = restriction.max; + } else { + if (position < restriction.min) { + position = restriction.min; + } + } + return position; + } + + function validateSlidePos(opt, navShaftTouchTail, guessIndex, offsetNav, $guessNavFrame, $navWrap, dir){ + var position, + size, + wrapSize; + if (dir === 'horisontal') { + size = opt.thumbwidth; + wrapSize = $navWrap.width(); + } else { + size = opt.thumbheight; + wrapSize = $navWrap.height(); + } + if ((size + opt.margin) * (guessIndex + 1) >= wrapSize - offsetNav) { + if (dir === 'horisontal') { + position = -$guessNavFrame.position().left; + } else { + position = -$guessNavFrame.position().top; + } + } + if ((size + opt.margin) * (guessIndex) <= Math.abs(offsetNav)) { + if (dir === 'horisontal') { + position = -$guessNavFrame.position().left + wrapSize - (size + opt.margin); + } else { + position = -$guessNavFrame.position().top + wrapSize - (size + opt.margin); + } + } + position = validateRestrictions(position, navShaftTouchTail); + + return position; + } + function elIsDisabled(el) { return !!el.getAttribute('disabled'); } @@ -1604,6 +1670,7 @@ fotoramaVersion = '4.6.4'; if (typeof options.overPos !== 'undefined' && options.overPos !== options.pos) { elPos = options.overPos; } + var translate = $.extend(getTranslate(elPos, options.direction), options.width && {width: options.width}, options.height && {height: options.height}); if (elData && elData.sliding) { elData.sliding = true; @@ -1611,51 +1678,7 @@ fotoramaVersion = '4.6.4'; if (CSS3) { - if (!options.thumb || !options.thumb.areSlides) { - $el.css($.extend(getDuration(options.time), translate)); - } else { - if ($el.selector !== "." + navWrapClass + " ." + navClass + " ." + navShaftClass) { - $el.css($.extend(getDuration(options.time), translate)); - - if ($el.selector === "." + thumbBorderClass) { - - var slideLength = Math.floor($el.closest('.' + wrapClass).width() / options.thumb.width), - borderStep = options.thumb.margin, - slidePosition; - - borderStep += options.navdir === 'vertical' ? options.thumb.height : options.thumb.width; - - if (options.navdir === 'vertical') { - $("." + navClass).height(slideLength * borderStep + 2); - $("." + navClass).width(borderStep + 2); - } else { - $("." + navClass).width(slideLength * borderStep + 1); - $("." + navClass).height(borderStep + 2); - } - - if (((borderPos < options.pos) || (options.pos === 0)) && ((borderPos !== 0) || (options.pos <= borderStep))) { - - if (Math.abs(Math.round(options.pos / borderStep)) % slideLength === 0) { - slidePosition = - options.pos; - shiftSlide(slidePosition, options, borderStep, slideLength); - } - } else { - - if (Math.abs(Math.round(options.pos / borderStep)) % slideLength === slideLength - 1) { - slidePosition = borderStep * (slideLength - 1) - options.pos; - shiftSlide(slidePosition, options, borderStep, slideLength); - } else { - if (borderPos === 0) { - slidePosition = borderStep * ((options.pos / borderStep + 1) % slideLength - 1) - options.pos; - shiftSlide(slidePosition, options, borderStep, slideLength); - } - } - } - borderPos = options.pos; - curSlide = Math.floor(borderPos / borderStep / slideLength) + 1; - } - } - } + $el.css($.extend(getDuration(options.time), translate)); if (options.time > 10) { afterTransition($el, 'transform', onEndFn, options.time); @@ -1664,21 +1687,9 @@ fotoramaVersion = '4.6.4'; } } else { $el.stop().animate(translate, options.time, BEZIER, onEndFn); - options.measures.nw = -slidePosition + borderStep * (slideLength - 1); - $('.' + navShaftClass).css($.extend(getDuration(options.time), translate)); } } - function shiftSlide(slidePosition, options, borderStep, slideLength) { - var translate = $.extend(getTranslate(slidePosition, options.direction), options.width && {width: options.width}, options.height && {height: options.height}); - if (options.direction === 'vertical') { - options.measures.h = -slidePosition + borderStep * (slideLength - 1); - } else { - options.measures.nw = -slidePosition + borderStep * (slideLength - 1); - } - $('.' + navShaftClass).css($.extend(getDuration(options.time), translate)); - } - function fade($el1, $el2, $frames, options, fadeStack, chain) { var chainedFLAG = typeof chain !== 'undefined'; if (!chainedFLAG) { @@ -1950,12 +1961,10 @@ fotoramaVersion = '4.6.4'; edge = findShadowEdge(moveElPos, min, max, dir); - if (!options.carouselnavigation) { - if (moveElPos <= min) { - moveElPos = edgeResistance(moveElPos, min); - } else if (moveElPos >= max) { - moveElPos = edgeResistance(moveElPos, max); - } + if (moveElPos <= min) { + moveElPos = edgeResistance(moveElPos, min); + } else if (moveElPos >= max) { + moveElPos = edgeResistance(moveElPos, max); } if (!tail.noMove) { @@ -2047,7 +2056,6 @@ fotoramaVersion = '4.6.4'; moved: result.moved || longTouchFLAG && snap, pos: moveElPos, newPos: newPos, - cooDiff: (startCoo - coo), overPos: overPos, time: time, dir:dir @@ -2142,6 +2150,8 @@ fotoramaVersion = '4.6.4'; navShaftData = $navShaft.data(), $thumbBorder = $fotorama.find(cls(thumbBorderClass)), + $thumbArrLeft = $fotorama.find(cls(thumbArrLeft)), + $thumbArrRight = $fotorama.find(cls(thumbArrRight)), $fullscreenIcon = $fotorama.find(cls(fullscreenIconClass)), fullscreenIcon = $fullscreenIcon[0], @@ -2164,7 +2174,6 @@ fotoramaVersion = '4.6.4'; nextIndex, nextAutoplayIndex, startIndex, - slidesNumb, o_loop, o_nav, @@ -2379,6 +2388,21 @@ fotoramaVersion = '4.6.4'; opts.autoplay = Math.max(+interval || AUTOPLAY_INTERVAL, o_transitionDuration * 1.5); } + function updateThumbArrow(opt) { + if (opt.navarrows && opt.nav === 'thumbs') { + $thumbArrLeft.show(); + $thumbArrRight.show(); + } else { + $thumbArrLeft.hide(); + $thumbArrRight.hide(); + } + + } + + function getThumbsInSlide($el, opts) { + return Math.floor($wrap.width() / (opts.thumbwidth + opts.thumbmargin)); + } + /** * Options on the fly * */ @@ -2388,6 +2412,7 @@ fotoramaVersion = '4.6.4'; } that.options = opts = optionsToLowerCase(opts); + thumbsPerSlide = getThumbsInSlide($wrap, opts); o_fade = (opts.transition === 'crossfade' || opts.transition === 'dissolve'); @@ -2398,7 +2423,7 @@ fotoramaVersion = '4.6.4'; o_rtl = opts.direction === 'rtl'; o_keyboard = $.extend({}, opts.keyboard && KEYBOARD_OPTIONS, opts.keyboard); - + updateThumbArrow(opts); var classes = {add: [], remove: []}; function addOrRemoveClass(FLAG, value) { @@ -2410,7 +2435,7 @@ fotoramaVersion = '4.6.4'; o_navTop = opts.navposition === 'top'; classes.remove.push(selectClass); - $arrs.toggle(!!opts.arrows); + $arrs.toggle(opts.arrows); } else { o_nav = false; $arrs.hide(); @@ -2442,7 +2467,6 @@ fotoramaVersion = '4.6.4'; frameDraw(size, 'navThumb'); $navFrame = $navThumbFrame; - // navFrameKey = NAV_THUMB_FRAME_KEY; setStyle($style, $.Fotorama.jst.style({ @@ -2508,7 +2532,6 @@ fotoramaVersion = '4.6.4'; lastOptions = $.extend({}, opts); setStagePosition(); - that.showSlide(curSlide); } function normalizeIndex(index) { @@ -2538,12 +2561,10 @@ fotoramaVersion = '4.6.4'; } function setNavShaftMinMax() { - var isVerticalDir = (opts.navdir === 'vertical'), - measureToCalculate = opts.thumbmargin + $('.' + navFrameThumbClass).length * ( - isVerticalDir ? opts.thumbheight : opts.thumbwidth + opts.thumbmargin), - param = (opts.carouselnavigation ? measureToCalculate : - isVerticalDir ? $navShaft.height(): $navShaft.width()), - mainParam = isVerticalDir ? measures.h : measures.nw; + + var isVerticalDir = (opts.navdir === 'vertical'); + var param = isVerticalDir ? $navShaft.height() : $navShaft.width(); + var mainParam = isVerticalDir ? measures.h : measures.nw; navShaftTouchTail.min = Math.min(0, mainParam - param); navShaftTouchTail.max = 0; navShaftTouchTail.direction = opts.navdir; @@ -2661,7 +2682,7 @@ fotoramaVersion = '4.6.4'; .addClass(imgClass + (fullFLAG ? ' ' + imgFullClass : '')) .prependTo($frame); - if ($frame.hasClass(stageFrameClass) && !$frame.hasClass(videoContainerClass)) { + if ($frame.hasClass(stageFrameClass)) { $frame.attr("href", $img.attr("src")); } @@ -2759,11 +2780,7 @@ fotoramaVersion = '4.6.4'; setTimeout(function () { lockScroll($nav); }, 0); - if (!opts.carouselnavigation) { - slideNavShaft({time: o_transitionDuration, guessIndex: $(this).data().eq, minMax: navShaftTouchTail}); - } else { - that.showSlide(Math.floor($(this).data().eq / slidesNumb) + 1) - } + slideNavShaft({time: o_transitionDuration, guessIndex: $(this).data().eq, minMax: navShaftTouchTail}); }); } @@ -2822,7 +2839,6 @@ fotoramaVersion = '4.6.4'; addNavFrameEvents(frame); frameData.$wrap = $frame.children(':first'); - $navThumbFrame = $navThumbFrame.add($frame); if (dataFrame.video) { frameData.$wrap.append($videoPlay.clone()); @@ -2863,6 +2879,7 @@ fotoramaVersion = '4.6.4'; rightLimit, exceedLimit; + if (o_nav !== 'thumbs' || isNaN(pos)) return; leftLimit = -pos; @@ -2885,8 +2902,8 @@ fotoramaVersion = '4.6.4'; }, specialMeasures = getSpecialMeasures(), exceedLimit = opts.navdir === 'vertical' ? - thisData.t > rightLimit : thisData.l > rightLimit; - specialMeasures.w = thisData.w; + thisData.t > rightLimit : thisData.l > rightLimit; + specialMeasures.w = thisData.w; if (thisData.l + thisData.w < leftLimit || exceedLimit @@ -3014,46 +3031,61 @@ fotoramaVersion = '4.6.4'; pos: (opts.navdir === 'vertical' ? navFrameData.t : navFrameData.l), width: navFrameData.w, height: navFrameData.h, - direction: opts.navdir, - thumb: { - width: opts.thumbwidth, - height: opts.thumbheight, - margin: opts.thumbmargin, - areSlides: opts.carouselnavigation, - measures: measures - }, - measures: measures + direction: opts.navdir }); } function slideNavShaft(options) { - var $guessNavFrame = data[options.guessIndex][navFrameKey]; + var $guessNavFrame = data[options.guessIndex][navFrameKey], + typeOfAnimation = opts.navtype; + + var overflowFLAG, + time, + minMax, + boundTop, + boundLeft, + l, + pos, + x; + if ($guessNavFrame) { - var overflowFLAG = navShaftTouchTail.min !== navShaftTouchTail.max, - minMax = options.minMax || overflowFLAG && getNavFrameBounds(activeFrame[navFrameKey]), - boundTop = overflowFLAG && (options.keep && slideNavShaft.t ? slideNavShaft.l : minMaxLimit((options.coo || measures.nw / 2) - getNavFrameBounds($guessNavFrame).c, minMax.min, minMax.max)), - boundLeft = overflowFLAG && (options.keep && slideNavShaft.l ? slideNavShaft.l : minMaxLimit((options.coo || measures.nw / 2) - getNavFrameBounds($guessNavFrame).c, minMax.min, minMax.max)), - l = (opts.navdir === 'vertical' ? boundTop : boundLeft), - pos = overflowFLAG && minMaxLimit(l, navShaftTouchTail.min, navShaftTouchTail.max), + if (typeOfAnimation === 'thumbs') { + overflowFLAG = navShaftTouchTail.min !== navShaftTouchTail.max; + minMax = options.minMax || overflowFLAG && getNavFrameBounds(activeFrame[navFrameKey]); + boundTop = overflowFLAG && (options.keep && slideNavShaft.t ? slideNavShaft.l : minMaxLimit((options.coo || measures.nw / 2) - getNavFrameBounds($guessNavFrame).c, minMax.min, minMax.max)); + boundLeft = overflowFLAG && (options.keep && slideNavShaft.l ? slideNavShaft.l : minMaxLimit((options.coo || measures.nw / 2) - getNavFrameBounds($guessNavFrame).c, minMax.min, minMax.max)); + l = (opts.navdir === 'vertical' ? boundTop : boundLeft); + pos = overflowFLAG && minMaxLimit(l, navShaftTouchTail.min, navShaftTouchTail.max); time = options.time * 1.1; - slide($navShaft, { - time: time, - pos: pos || 0, - direction: opts.navdir, - onEnd: function () { - thumbsDraw(pos, true); - }, - thumb: { - width: opts.thumbwidth, - height: opts.thumbheight, - margin: opts.thumbmargin, - areSlides: opts.carouselnavigation, - measures: measures - } - }); + slide($navShaft, { + time: time, + pos: pos || 0, + direction: opts.navdir, + onEnd: function () { + thumbsDraw(pos, true); + } + }); - setShadow($nav, findShadowEdge(pos, navShaftTouchTail.min, navShaftTouchTail.max, opts.navdir)); - slideNavShaft.l = l; + setShadow($nav, findShadowEdge(pos, navShaftTouchTail.min, navShaftTouchTail.max, opts.navdir)); + slideNavShaft.l = l; + } else { + x = readPosition($navShaft, opts.navdir); + time = options.time * 1.11; + + pos = validateSlidePos(opts, navShaftTouchTail, options.guessIndex, x, $guessNavFrame, $navWrap, opts.navdir); + + if (pos != undefined) { + slide($navShaft, { + time: time, + pos: pos || 0, + direction: opts.navdir, + onEnd: function () { + thumbsDraw(pos, true); + } + }); + } + setShadow($nav, findShadowEdge(pos, navShaftTouchTail.min, navShaftTouchTail.max, opts.navdir)); + } } } @@ -3201,27 +3233,6 @@ fotoramaVersion = '4.6.4'; } - that.showSlide = function(index) { - if (index > 0 && activeFrame) { - index --; - var borderStep = opts.navdir === 'vertical' ? - opts.thumbheight + opts.thumbmargin : - opts.thumbwidth + opts.thumbmargin, - slideLength = Math.floor($('.' + wrapClass).width()/opts.thumbwidth), - options = { - time: opts.transitionduration, - direction: opts.navdir, - width: activeFrame[navFrameKey].data().w, - width: activeFrame[navFrameKey].data().h, - measures: measures - }, - slidePosition; - slidePosition = -(index * borderStep * slideLength); - shiftSlide(slidePosition, options, borderStep, slideLength); - thumbsDraw(false, true); - } - }; - that.startAutoplay = function (interval) { if (that.autoplay) return this; pausedAutoplayFLAG = stoppedAutoplayFLAG = false; @@ -3239,6 +3250,29 @@ fotoramaVersion = '4.6.4'; return this; }; + that.showSlide = function (slideDir) { + var currentPosition = readPosition($navShaft, opts.navdir), + pos, + time = 500 * 1.1, + size = opts.navdir === 'horisontal' ? opts.thumbwidth : opts.thumbheight, + onEnd = function (pos) { + thumbsDraw(pos, true); + }; + if (slideDir === 'next') { + pos = currentPosition - (size + opts.margin) * thumbsPerSlide; + } + if (slideDir === 'prev') { + pos = currentPosition + (size + opts.margin) * thumbsPerSlide + } + pos = validateRestrictions(pos, navShaftTouchTail); + slide($navShaft, { + time: time, + pos: pos, + direction: opts.navdir, + onEnd: onEnd + }); + }; + that.show = function (options) { var index; @@ -3320,7 +3354,7 @@ fotoramaVersion = '4.6.4'; pos: -getPosByIndex(dirtyIndex, measures.w, opts.margin, repositionIndex), overPos: overPos, time: time, - onEnd: onEnd + onEnd: onEnd, }); } else { var $activeFrame = activeFrame[STAGE_FRAME_KEY], @@ -3352,10 +3386,6 @@ fotoramaVersion = '4.6.4'; showedFLAG = typeof lastActiveIndex !== 'undefined' && lastActiveIndex !== activeIndex; lastActiveIndex = activeIndex; - if (opts.carouselnavigation) { - that.showSlide(curSlide); - } - return this; }; @@ -3450,6 +3480,7 @@ fotoramaVersion = '4.6.4'; var time = arguments[1] || 0, setFLAG = arguments[2]; + thumbsPerSlide = getThumbsInSlide($wrap, opts); extendMeasures(!that.fullScreen ? optionsToLowerCase(options) : { width: $(window).width(), maxwidth: null, @@ -3485,8 +3516,6 @@ fotoramaVersion = '4.6.4'; height = height || (ratio && width / ratio); - slidesNumb = Math.floor($wrap.width()/opts.thumbwidth); - if (height) { width = Math.round(width); height = measures.h = Math.round(minMaxLimit(height, numberFromWhatever(measures.minheight, windowHeight), numberFromWhatever(measures.maxheight, windowHeight))); @@ -3740,51 +3769,6 @@ fotoramaVersion = '4.6.4'; direction: 'horizontal' }); - function slideDrag (pos, newPos,cooDiff) { - console.log(pos, newPos); - if (opts.carouselnavigation) { - var borderStep = opts.navdir === 'vertical' ? - opts.thumbheight + opts.thumbmargin : - opts.thumbwidth + opts.thumbmargin, - slidePosition, - options = { - time: opts.transitionduration, - direction: opts.navdir, - width: activeFrame[navFrameKey].data().w, - height: activeFrame[navFrameKey].data().h, - measures: measures - }; - - if (newPos !== 0 && pos < 0) { - if(pos >= newPos) { - console.log('>>') - if (pos < navShaftTouchTail.min) { - slidePosition = newPos + (-Math.ceil(newPos % (borderStep * slidesNumb))); - } else { - slidePosition = newPos - (borderStep * slidesNumb + Math.round(newPos % (borderStep * slidesNumb) - 1)); - } - } else { - console.log('<<') - if (pos < navShaftTouchTail.min) { - if(cooDiff < 0) { - slidePosition = newPos + (-Math.ceil(newPos % (borderStep * slidesNumb))); - } else { - slidePosition = newPos - (borderStep * slidesNumb + Math.round(newPos % (borderStep * slidesNumb)- 1)); - } - } else { - slidePosition = newPos + (-Math.ceil(newPos % (borderStep * slidesNumb))); - } - } - } - - if (newPos === 0) { - console.log('dont move') - slidePosition = borderStep * ((newPos/ borderStep + 1) % slidesNumb - 1) - newPos; - } - } - shiftSlide(slidePosition, options, borderStep, slidesNumb); - slideDrag.slidePosition = slidePosition; - } navShaftTouchTail = moveOnTouch($navShaft, { onStart: onTouchStart, @@ -3795,7 +3779,7 @@ fotoramaVersion = '4.6.4'; onEnd: function (result) { function onEnd() { - slideNavShaft.l = opts.carouselnavigation ? slideDrag.slidePosition: result.newPos; + slideNavShaft.l = result.newPos; releaseAutoplay(); changeAutoplay(); thumbsDraw(result.newPos, true); @@ -3805,23 +3789,17 @@ fotoramaVersion = '4.6.4'; var target = result.$target.closest('.' + navFrameClass, $navShaft)[0]; target && onNavFrameClick.call(target, result.startEvent); } else if (result.pos !== result.newPos) { - console.log('catch'); - opts.carouselnavigation && slideDrag(result.pos, result.newPos,result.cooDiff); pausedAutoplayFLAG = true; - !opts.carouselnavigation && slide($navShaft, { + slide($navShaft, { time: result.time, pos: result.newPos, overPos: result.overPos, direction: opts.navdir, onEnd: onEnd }); - - thumbsDraw(opts.carouselnavigation ? slideDrag.slidePosition : result.newPos, true); + thumbsDraw(result.newPos); o_shadows && setShadow($nav, findShadowEdge(result.newPos, navShaftTouchTail.min, navShaftTouchTail.max, result.dir)); - } else { - console.log('else worked'); - opts.carouselnavigation &&slideDrag(result.pos, result.newPos,result.cooDiff); onEnd(); } }, @@ -3829,8 +3807,7 @@ fotoramaVersion = '4.6.4'; timeHigh: 2, friction: 5, $wrap: $nav, - direction: opts.navdir, - carouselnavigation: opts.carouselnavigation + direction: opts.navdir }); stageWheelTail = wheel($stage, { @@ -3892,6 +3869,27 @@ fotoramaVersion = '4.6.4'; onTouchEnd: onTouchEnd }); + smartClick($thumbArrLeft, function (e) { + stopEvent(e); + if (opts.navtype === 'thumbs') { + + that.show('<'); + } else { + that.showSlide('prev') + } + }); + + smartClick($thumbArrRight, function (e) { + stopEvent(e); + if (opts.navtype === 'thumbs') { + that.show('>'); + } else { + that.showSlide('next') + } + + }); + + function addFocusOnControls(el) { addFocus(el, function () { setTimeout(function () { -- GitLab From 1c95f942136c686c9909d5a0a4abba30bc54c248 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Tue, 29 Sep 2015 09:26:18 +0300 Subject: [PATCH 146/420] MAGETWO-42990: Stabilization --- .../Ui/view/base/web/js/modal/modal.js | 42 ++++++++++--------- .../web/templates/modal/modal-custom.html | 6 +-- .../base/web/templates/modal/modal-popup.html | 6 +-- .../base/web/templates/modal/modal-slide.html | 6 +-- 4 files changed, 32 insertions(+), 28 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/modal/modal.js b/app/code/Magento/Ui/view/base/web/js/modal/modal.js index 6c868ae782c..847fe727ffa 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/modal.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/modal.js @@ -81,7 +81,6 @@ define([ } }] }, - previosFocused: null, keyEventHandlers: { /** @@ -89,20 +88,9 @@ define([ * set focus to elements */ tabKey: function () { - if (document.activeElement === this.modal.find(this.options.focusableStart)[0]) { + if (document.activeElement === this.modal[0]) { this._setFocus('start'); } - - if (document.activeElement === this.modal.find(this.options.focusableScope)[0] && - this.previosFocused === this.modal.find(this.options.modalCloseBtn)[0]) { - this._setFocus('start'); - } - - if (document.activeElement === this.modal.find(this.options.focusableEnd)[0]) { - this._setFocus('end'); - } - - this.previosFocused = document.activeElement; }, /** @@ -123,7 +111,8 @@ define([ _create: function () { _.bindAll( this, - 'keyEventSwitcher' + 'keyEventSwitcher', + '_tabSwitcher' ); this.options.transitionEvent = transitionEvent; @@ -250,17 +239,33 @@ define([ }, /** - * Set keyup listener when modal is opened. + * Set events listener when modal is opened. */ _setKeyListener: function () { - this.modal.bind('keyup', this.keyEventSwitcher); + this.modal.find(this.options.focusableStart).bind('focusin', this._tabSwitcher); + this.modal.find(this.options.focusableEnd).bind('focusin', this._tabSwitcher); + this.modal.bind('keydown', this.keyEventSwitcher); }, /** - * Remove keyup listener when modal is closed. + * Remove events listener when modal is closed. */ _removeKeyListener: function () { - this.modal.unbind('keyup', this.keyEventSwitcher); + this.modal.find(this.options.focusableStart).bind('focusin', this._tabSwitcher); + this.modal.find(this.options.focusableEnd).bind('focusin', this._tabSwitcher); + this.modal.unbind('keydown', this.keyEventSwitcher); + }, + + /** + * Switcher for focus event. + * @param {Object} e - event + */ + _tabSwitcher: function(e){ + if ($(e.target).is(this.options.focusableStart)) { + this._setFocus('start'); + } else if ($(e.target).is(this.options.focusableEnd)) { + this._setFocus('end'); + } }, /** @@ -272,7 +277,6 @@ define([ this._removeKeyListener(); this.options.isOpen = false; - this.previosFocused = null; this.modal.one(this.options.transitionEvent, function () { that._close(); }); diff --git a/app/code/Magento/Ui/view/base/web/templates/modal/modal-custom.html b/app/code/Magento/Ui/view/base/web/templates/modal/modal-custom.html index 3d83df47319..0a45aa20a02 100644 --- a/app/code/Magento/Ui/view/base/web/templates/modal/modal-custom.html +++ b/app/code/Magento/Ui/view/base/web/templates/modal/modal-custom.html @@ -9,11 +9,11 @@ <% if(data.responsive){ %><%= data.responsiveClass %><% } %> <% if(data.innerScroll){ %><%= data.innerScrollClass %><% } %>" data-role="modal" - data-type="<%= data.type %>"> + data-type="<%= data.type %>" + tabindex="0"> <div data-role="focusable-start" tabindex="0"></div> <div class="modal-inner-wrap" - data-role="focusable-scope" - tabindex="0"> + data-role="focusable-scope"> <header class="modal-header"> <% if(data.title){ %> <h1 class="modal-title" diff --git a/app/code/Magento/Ui/view/base/web/templates/modal/modal-popup.html b/app/code/Magento/Ui/view/base/web/templates/modal/modal-popup.html index 52cf0807531..22aad07f4ea 100644 --- a/app/code/Magento/Ui/view/base/web/templates/modal/modal-popup.html +++ b/app/code/Magento/Ui/view/base/web/templates/modal/modal-popup.html @@ -10,11 +10,11 @@ <% if(data.responsive){ %><%= data.responsiveClass %><% } %> <% if(data.innerScroll){ %><%= data.innerScrollClass %><% } %>" data-role="modal" - data-type="<%= data.type %>"> + data-type="<%= data.type %>" + tabindex="0"> <div data-role="focusable-start" tabindex="0"></div> <div class="modal-inner-wrap" - data-role="focusable-scope" - tabindex="0"> + data-role="focusable-scope"> <header class="modal-header"> <% if(data.title){ %> <h1 class="modal-title" diff --git a/app/code/Magento/Ui/view/base/web/templates/modal/modal-slide.html b/app/code/Magento/Ui/view/base/web/templates/modal/modal-slide.html index 42d8ae63a92..8b828035939 100644 --- a/app/code/Magento/Ui/view/base/web/templates/modal/modal-slide.html +++ b/app/code/Magento/Ui/view/base/web/templates/modal/modal-slide.html @@ -9,11 +9,11 @@ class="modal-<%= data.type %> <%= data.modalClass %> <% if(data.innerScroll){ %><%= data.innerScrollClass %><% } %>" data-role="modal" - data-type="<%= data.type %>"> + data-type="<%= data.type %>" + tabindex="0"> <div data-role="focusable-start" tabindex="0"></div> <div class="modal-inner-wrap" - data-role="focusable-scope" - tabindex="0"> + data-role="focusable-scope"> <header class="modal-header"> <% if(data.title){ %> <h1 class="modal-title" -- GitLab From c4edeabab484e6e495dbf44b842e8dc5e1c0e406 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Tue, 29 Sep 2015 10:25:12 +0300 Subject: [PATCH 147/420] MAGETWO-42990: Stabilization --- .../Magento/Ui/view/base/web/js/modal/modal.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/modal/modal.js b/app/code/Magento/Ui/view/base/web/js/modal/modal.js index 847fe727ffa..6fa55677176 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/modal.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/modal.js @@ -46,6 +46,8 @@ define([ title: '', modalClass: '', focus: '', + autoOpen: false, + clickableOverlay: true, popupTpl: popupTpl, slideTpl: slideTpl, customTpl: customTpl, @@ -112,7 +114,8 @@ define([ _.bindAll( this, 'keyEventSwitcher', - '_tabSwitcher' + '_tabSwitcher', + 'closeModal' ); this.options.transitionEvent = transitionEvent; @@ -127,6 +130,7 @@ define([ 'openModal': this.openModal, 'closeModal': this.closeModal }); + this.options.autoOpen ? this.openModal() : false; }, /** @@ -374,8 +378,7 @@ define([ * Creates overlay, append it to wrapper, set previous click event on overlay. */ _createOverlay: function () { - var that = this, - events; + var events; this.overlay = $('.' + this.options.overlayClass); @@ -386,13 +389,8 @@ define([ .appendTo(this.modalWrapper); } events = $._data(this.overlay.get(0), 'events'); - - if (events) { - this.prevOverlayHandler = events.click[0].handler; - } - this.overlay.unbind().on('click', function () { - that.closeModal(); - }); + events ? this.prevOverlayHandler = events.click[0].handler : false; + this.options.clickableOverlay ? this.overlay.unbind().on('click', this.closeModal) : false; }, /** -- GitLab From 1357480650a0e18c0fe3545f3d707ee4ff22c37e Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Tue, 29 Sep 2015 16:17:50 +0300 Subject: [PATCH 148/420] MAGETWO-42995: Stabilize functional tests --- app/code/Magento/Sales/view/adminhtml/web/order/create/form.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Sales/view/adminhtml/web/order/create/form.js b/app/code/Magento/Sales/view/adminhtml/web/order/create/form.js index 6d88d084c36..1e041234a79 100644 --- a/app/code/Magento/Sales/view/adminhtml/web/order/create/form.js +++ b/app/code/Magento/Sales/view/adminhtml/web/order/create/form.js @@ -5,7 +5,8 @@ define([ "jquery", - "Magento_Sales/order/create/scripts" + "Magento_Sales/order/create/scripts", + 'domReady!' ], function(jQuery){ var $el = jQuery('#edit_form'), config, -- GitLab From 3958a8d8a14f6c4cc823785d4adbcd94fd4f5084 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Tue, 29 Sep 2015 16:21:47 +0300 Subject: [PATCH 149/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- .../view/adminhtml/web/system/notification.js | 6 ++ .../templates/catalog/category/tree.phtml | 4 +- .../adminhtml/web/order/create/scripts.js | 19 +++++-- .../Ui/view/base/web/js/modal/confirm.js | 55 ++++++++++++++++--- 4 files changed, 68 insertions(+), 16 deletions(-) diff --git a/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js b/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js index cf24ed62857..8b5cf5b0476 100644 --- a/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js +++ b/app/code/Magento/AdminNotification/view/adminhtml/web/system/notification.js @@ -21,8 +21,14 @@ define([ '<% }); %>' }, + _create: function() { + this.options.title = $('#message-system-all').attr('title'); + this._super(); + }, + openModal: function (severity) { var superMethod = $.proxy(this._super, this); + //this.modal.options $.ajax({ url: this.options.ajaxUrl, diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml index 3a4b2c769c4..488cd41ef3a 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml @@ -444,8 +444,8 @@ pd.splice(pd.length - 1, 1); jQuery('[data-id="information-dialog-category"]').modal({ - type: 'popup', - modalClass: 'modal-system-messages', + modalClass: 'modal-system-messages confirm', + title: jQuery.mage.__('Warning message'), buttons: [{ text: 'Cancel', class: 'action-tertiary', diff --git a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js index fbe0fa8248f..2bc3526cace 100644 --- a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js +++ b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js @@ -5,10 +5,11 @@ define([ "jquery", 'Magento_Ui/js/modal/confirm', + 'Magento_Ui/js/modal/alert', "mage/translate", "prototype", "Magento_Catalog/catalog/product/composite/configure" -], function(jQuery, confirm){ +], function(jQuery, confirm, alert){ window.AdminOrder = new Class.create(); @@ -952,7 +953,9 @@ AdminOrder.prototype = { name = messages[i].id.split("_"); if(name.length < 2) continue; if (element.name.indexOf("[" + name[1] + "]") != -1 && messages[i].value != "") { - alert("First, clean the Message field in Gift Message form"); + alert({ + content: "First, clean the Message field in Gift Message form" + }); element.checked = true; } } @@ -999,7 +1002,9 @@ AdminOrder.prototype = { loadAreaResponseHandler : function (response) { if (response.error) { - alert(response.message); + alert({ + content: response.message + }); } if (response.ajaxExpired && response.ajaxRedirect) { setLocation(response.ajaxRedirect); @@ -1264,7 +1269,9 @@ AdminOrder.prototype = { message = parameters.vatValidationFailedMessage; } if (null === groupActionRequired) { - alert(message); + alert({ + content: message + }); } else { this.processCustomerGroupChange( @@ -1307,7 +1314,9 @@ AdminOrder.prototype = { this.accountGroupChange(); } } else if (action === 'inform') { - alert(message + '\n' + groupMessage); + alert({ + content: message + '\n' + groupMessage + }); } } }; diff --git a/app/code/Magento/Ui/view/base/web/js/modal/confirm.js b/app/code/Magento/Ui/view/base/web/js/modal/confirm.js index 6e2e6fe5251..73994016418 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/confirm.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/confirm.js @@ -2,6 +2,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ + define([ 'jquery', 'underscore', @@ -16,36 +17,72 @@ define([ modalClass: 'confirm', title: '', actions: { - always: function(){}, - confirm: function(){}, - cancel: function(){} + + /** + * Callback always - called on all actions. + */ + always: function () {}, + + /** + * Callback confirm. + */ + confirm: function () {}, + + /** + * Callback cancel. + */ + cancel: function () {} }, buttons: [{ text: $.mage.__('Cancel'), class: 'action-tertiary action-dismiss', - click: function(){ + + /** + * Click handler. + */ + click: function () { this.closeModal(); } }, { text: $.mage.__('OK'), class: 'action-secondary action-accept', - click: function() { + + /** + * Click handler. + */ + click: function () { this.closeModal(true); } }] }, - _create: function() { + + /** + * Create widget. + */ + _create: function () { this._super(); this.modal.find(this.options.modalCloseBtn).off().on('click', _.bind(this.closeModal, this, false)); this.openModal(); }, - _remove: function() { + + /** + * Remove modal window. + */ + _remove: function () { this.modal.remove(); }, - openModal: function() { + + /** + * Open modal window. + */ + openModal: function () { return this._super(); }, - closeModal: function(result) { + + /** + * Close modal window. + */ + closeModal: function (result) { result = result || false; if (result) { -- GitLab From 3c00ab96c070db13a8b66d4c7b09a59ee21b3d47 Mon Sep 17 00:00:00 2001 From: Dubovyk Oleksandr <odubovyk@ebay.com> Date: Tue, 29 Sep 2015 16:35:20 +0300 Subject: [PATCH 150/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget --- .../css/source/forms/{form-wysiwyg.less => _form-wysiwyg.less} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename app/design/adminhtml/Magento/backend/web/css/source/forms/{form-wysiwyg.less => _form-wysiwyg.less} (100%) diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/form-wysiwyg.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_form-wysiwyg.less similarity index 100% rename from app/design/adminhtml/Magento/backend/web/css/source/forms/form-wysiwyg.less rename to app/design/adminhtml/Magento/backend/web/css/source/forms/_form-wysiwyg.less -- GitLab From 089421dcd2339877ffa98d6d5f10a01d5db83e13 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Tue, 29 Sep 2015 17:10:27 +0300 Subject: [PATCH 151/420] MAGETWO-42762: Improve performance of table rendering - Use 'knockout-repeat' binding for table rendering - Rewrite column templates - Use get/set assessors in gird components - Rewrite Bookmarks component - Remove unused bindings - Implement 'autoselect' binding - Add comments --- .../web/js/variations/product-grid.js | 19 +- .../Theme/view/base/requirejs-config.js | 8 +- .../view/base/web/js/grid/columns/actions.js | 55 +- .../view/base/web/js/grid/columns/column.js | 143 ++++-- .../Ui/view/base/web/js/grid/columns/date.js | 5 +- .../base/web/js/grid/columns/multiselect.js | 22 +- .../view/base/web/js/grid/columns/select.js | 22 +- .../base/web/js/grid/columns/thumbnail.js | 10 +- .../js/grid/controls/bookmarks/bookmarks.js | 485 +++++++++++++----- .../web/js/grid/controls/bookmarks/view.js | 161 ------ .../view/base/web/js/grid/controls/columns.js | 9 +- .../Magento/Ui/view/base/web/js/grid/dnd.js | 14 +- .../Ui/view/base/web/js/grid/filters/chips.js | 9 +- .../view/base/web/js/grid/filters/filters.js | 64 ++- .../Ui/view/base/web/js/grid/listing.js | 68 ++- .../Ui/view/base/web/js/grid/paging/paging.js | 94 ++-- .../Ui/view/base/web/js/grid/paging/sizes.js | 50 +- .../Ui/view/base/web/js/grid/provider.js | 43 +- .../Ui/view/base/web/js/grid/resize.js | 2 +- .../Ui/view/base/web/js/grid/search/search.js | 20 +- .../base/web/js/lib/component/provider.js | 116 +++-- .../Magento/Ui/view/base/web/js/lib/events.js | 12 +- .../base/web/js/lib/ko/bind/autoselect.js | 34 ++ .../Ui/view/base/web/js/lib/ko/bind/class.js | 53 -- .../base/web/js/lib/ko/bind/staticChecked.js | 99 ++++ .../web/js/lib/ko/bind/stop_propagation.js | 24 - .../Ui/view/base/web/js/lib/ko/initialize.js | 6 +- .../view/base/web/js/lib/registry/events.js | 5 +- .../view/base/web/js/lib/registry/registry.js | 78 ++- .../view/base/web/js/lib/registry/storage.js | 3 + .../web/templates/grid/cells/actions.html | 89 ++-- .../base/web/templates/grid/cells/html.html | 17 +- .../web/templates/grid/cells/multiselect.html | 30 +- .../base/web/templates/grid/cells/text.html | 18 +- .../web/templates/grid/cells/thumbnail.html | 17 +- .../templates/grid/columns/multiselect.html | 4 +- .../base/web/templates/grid/columns/text.html | 9 +- .../grid/controls/bookmarks/bookmarks.html | 64 ++- .../grid/controls/bookmarks/view.html | 100 ++-- .../web/templates/grid/controls/columns.html | 14 +- .../base/web/templates/grid/exportButton.html | 2 +- .../web/templates/grid/filters/chips.html | 6 +- .../web/templates/grid/filters/filters.html | 2 +- .../view/base/web/templates/grid/listing.html | 50 +- .../base/web/templates/grid/paging-total.html | 6 +- .../web/templates/grid/paging/paging.html | 24 +- .../base/web/templates/grid/paging/sizes.html | 44 +- .../web/templates/grid/sticky/listing.html | 7 +- .../Ui/base/js/grid/columns/column.test.js | 6 +- .../Ui/base/js/grid/paging/paging.test.js | 54 +- lib/web/knockoutjs/knockout-es5.js | 468 +++++++++++++++++ lib/web/knockoutjs/knockout-fast-foreach.js | 331 ++++++++++++ lib/web/knockoutjs/knockout-repeat.js | 216 ++++++++ lib/web/{ko/ko.js => knockoutjs/knockout.js} | 0 54 files changed, 2410 insertions(+), 901 deletions(-) delete mode 100644 app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/view.js create mode 100644 app/code/Magento/Ui/view/base/web/js/lib/ko/bind/autoselect.js delete mode 100644 app/code/Magento/Ui/view/base/web/js/lib/ko/bind/class.js create mode 100644 app/code/Magento/Ui/view/base/web/js/lib/ko/bind/staticChecked.js delete mode 100644 app/code/Magento/Ui/view/base/web/js/lib/ko/bind/stop_propagation.js create mode 100644 lib/web/knockoutjs/knockout-es5.js create mode 100644 lib/web/knockoutjs/knockout-fast-foreach.js create mode 100644 lib/web/knockoutjs/knockout-repeat.js rename lib/web/{ko/ko.js => knockoutjs/knockout.js} (100%) diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/product-grid.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/product-grid.js index 39267f93a14..3003ff253fe 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/product-grid.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/product-grid.js @@ -115,9 +115,9 @@ define([ this.callbackName = callbackName; this.productsMassAction(function (massActionComponent) { this.productsColumns().elems().each(function (rowElement) { - rowElement.disableAction(showMassActionColumn); + rowElement.disableAction = showMassActionColumn; }); - massActionComponent.visible(showMassActionColumn); + massActionComponent.visible = showMassActionColumn; }.bind(this)); this._setFilter(filterData); this._initGrid(filterData); @@ -129,10 +129,10 @@ define([ */ close: function (rowIndex) { try { - if (this.productsMassAction().selected().length) { + if (this.productsMassAction().selected.length) { this.variationsComponent()[this.callbackName](this.productsMassAction() .selected.map(this.getProductById.bind(this))); - this.productsMassAction().selected([]); + this.productsMassAction().deselectAll(); } else if (!_.isNull(rowIndex)) { this.variationsComponent()[this.callbackName]([this.getProductByIndex(rowIndex)]); } @@ -257,7 +257,7 @@ define([ _handleManualGridOpening: function (data) { if (data.items.length && this.callbackName == 'appendProducts') { this.productsColumns().elems().each(function (rowElement) { - rowElement.disableAction(true); + rowElement.disableAction = true; }); this._disableRows(data.items); @@ -314,12 +314,14 @@ define([ */ _getVariationKeyMap: function (items) { this._variationKeyMap = {}; + _.each(items, function (row) { this._variationKeyMap[row['entity_id']] = _.values( _.pick(row, this._getAttributesCodes()) ).sort().join('-'); - }.bind(this)); + }, this); + return this._variationKeyMap; }, @@ -334,10 +336,9 @@ define([ }.bind(this)); this.productsFilter(function (filter) { - filter.set('filters', _.extend({ + filter.setData({ 'filters_modifier': filterData['filters_modifier'] - }, filterData.filters)) - .apply(); + }, true).apply(); }); } }); diff --git a/app/code/Magento/Theme/view/base/requirejs-config.js b/app/code/Magento/Theme/view/base/requirejs-config.js index e5504adda39..c40eb944f07 100644 --- a/app/code/Magento/Theme/view/base/requirejs-config.js +++ b/app/code/Magento/Theme/view/base/requirejs-config.js @@ -7,7 +7,9 @@ var config = { "waitSeconds": 0, "map": { "*": { - "mageUtils": "mage/utils/main" + "mageUtils": "mage/utils/main", + "ko": "knockoutjs/knockout", + "knockout": "knockoutjs/knockout" } }, "shim": { @@ -26,9 +28,6 @@ var config = { "tinymce": { "exports": "tinymce" }, - "ko": { - "exports": "ko" - }, "moment": { "exports": "moment" }, @@ -48,7 +47,6 @@ var config = { "jquery/jquery-storageapi": "jquery/jquery.storageapi.min", "text": "requirejs/text", "domReady": "requirejs/domReady", - "ko": "ko/ko", "tinymce": "tiny_mce/tiny_mce_src" }, "deps": [ diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/actions.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/actions.js index 912e0a4748c..e1bbb011db8 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/actions.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/actions.js @@ -19,10 +19,13 @@ define([ draggable: false, actions: [], rows: [], + rowsProvider: '${ $.parentName }', + fieldClass: { + 'data-grid-actions-cell': true + }, templates: { actions: {} }, - rowsProvider: '${ $.parentName }', imports: { rows: '${ $.rowsProvider }:rows' }, @@ -38,7 +41,7 @@ define([ */ initObservable: function () { this._super() - .observe('actions'); + .track('actions'); return this; }, @@ -52,7 +55,7 @@ define([ * @returns {Array|Object} */ getAction: function (rowIndex, actionIndex) { - var rowActions = this.actions()[rowIndex]; + var rowActions = this.actions[rowIndex]; return rowActions && actionIndex ? rowActions[actionIndex] : @@ -95,10 +98,7 @@ define([ * @returns {ActionsColumn} Chainable. */ updateActions: function () { - var rows = this.rows, - actions = rows.map(this._formatActions, this); - - this.actions(actions); + this.actions = this.rows.map(this._formatActions, this); return this; }, @@ -158,6 +158,34 @@ define([ return this; }, + /** + * Creates handler for the provided action if it's required. + * + * @param {Object} action - Action object. + * @returns {Function|Undefined} + */ + getActionHandler: function (action) { + var index = action.index, + rowIndex = action.rowIndex; + + if (this.isHandlerRequired(index, rowIndex)) { + return this.applyAction.bind(this, index, rowIndex); + } + }, + + /** + * Checks if specified action requires a handler function. + * + * @param {String} actionIndex - Actions' identifier. + * @param {Number} rowIndex - Index of a row. + * @returns {Boolean} + */ + isHandlerRequired: function (actionIndex, rowIndex) { + var action = this.getAction(rowIndex, actionIndex); + + return _.isObject(action.callback) || action.confirm || !action.href; + }, + /** * Creates action callback based on its' data. If action doesn't spicify * a callback function than the default one will be used. @@ -246,16 +274,13 @@ define([ }, /** - * Checks if specified action requires a handler function. + * Overrides base method, because this component + * can't have global field action. * - * @param {String} actionIndex - Actions' identifier. - * @param {Number} rowIndex - Index of a row. - * @returns {Boolean} + * @returns {Boolean} False. */ - isHandlerRequired: function (actionIndex, rowIndex) { - var action = this.getAction(rowIndex, actionIndex); - - return _.isObject(action.callback) || action.confirm || !action.href; + hasFieldAction: function () { + return false; } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js index b0f457497ea..8cb07d8a714 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js @@ -20,6 +20,7 @@ define([ sorting: false, visible: true, draggable: true, + fieldClass: {}, ignoreTmpls: { fieldAction: true }, @@ -38,6 +39,18 @@ define([ } }, + /** + * Initializes column component. + * + * @returns {Column} Chainable. + */ + initialize: function () { + this._super() + .initFieldClass(); + + return this; + }, + /** * Initializes observable properties. * @@ -45,7 +58,27 @@ define([ */ initObservable: function () { this._super() - .observe('visible dragging dragover sorting disableAction'); + .track([ + 'visible', + 'sorting', + 'disableAction' + ]) + .observe([ + 'dragging' + ]); + + return this; + }, + + /** + * Extends list of field classes. + * + * @returns {Column} Chainable. + */ + initFieldClass: function () { + _.extend(this.fieldClass, { + _dragging: this.dragging + }); return this; }, @@ -55,7 +88,7 @@ define([ * * @param {String} state - Defines what state should be used: saved or default. * @param {String} [property] - Defines what columns' property should be applied. - * If not specfied, then all columns stored properties will be used. + * If not specified, then all columns stored properties will be used. * @returns {Column} Chainable. */ applyState: function (state, property) { @@ -65,7 +98,7 @@ define([ namespace += '.' + property; } - this.storage('applyState', state, namespace); + this.storage('applyStateOf', state, namespace); return this; }, @@ -79,47 +112,78 @@ define([ * @returns {Column} Chainable. */ sort: function (enable) { - var direction = false; - if (!this.sortable) { return this; } - if (enable !== false) { - direction = this.toggleDirection(); - } + enable !== false ? + this.toggleSorting() : + this.sorting = false; - this.sorting(direction); + return this; + }, + + /** + * Sets descending columns' sorting. + * + * @returns {Column} Chainable. + */ + sortDescending: function () { + if (this.sortable) { + this.sorting = 'desc'; + } return this; }, /** - * Exports sorting data to the dataProvider if - * sorting of a column is enabled. + * Sets ascending columns' sorting. * - * @param {(String|Boolean)} sorting - Columns' sorting state. + * @returns {Column} Chainable. */ - exportSorting: function (sorting) { - if (!sorting) { - return; + sortAscending: function () { + if (this.sortable) { + this.sorting = 'asc'; } - this.source('set', 'params.sorting', { - field: this.index, - direction: sorting - }); + return this; }, /** * Toggles sorting direction. * - * @returns {String} New direction. + * @returns {Column} Chainable. + */ + toggleSorting: function () { + this.sorting === 'asc' ? + this.sortDescending() : + this.sortAscending(); + + return this; + }, + + /** + * Checks if column is sorted. + * + * @returns {Boolean} + */ + isSorted: function () { + return !!this.sorting; + }, + + /** + * Exports sorting data to the dataProvider if + * sorting of a column is enabled. */ - toggleDirection: function () { - return this.sorting() === 'asc' ? - 'desc' : - 'asc'; + exportSorting: function () { + if (!this.sorting) { + return; + } + + this.source('set', 'params.sorting', { + field: this.index, + direction: this.sorting + }); }, /** @@ -152,7 +216,7 @@ define([ var action = this.fieldAction, callback; - if (!this.hasFieldAction() || this.disableAction()) { + if (!this.hasFieldAction() || this.disableAction) { return this; } @@ -170,12 +234,24 @@ define([ return this; }, + /** + * Returns field action handler if it was specified. + * + * @param {Object} record - Record object with which action is associated. + * @returns {Function|Undefined} + */ + getFieldHandler: function (record) { + if (this.hasFieldAction()) { + return this.applyFieldAction.bind(this, record._rowIndex); + } + }, + /** * Creates action callback based on its' data. * * @param {Object} action - Actions' object. * @returns {Function|Boolean} Callback function or false - * value if it was imposible create a callback. + * value if it was impossible create a callback. */ _getFieldCallback: function (action) { var args = action.params || [], @@ -199,11 +275,20 @@ define([ /** * Ment to preprocess data associated with a current columns' field. * - * @param {*} data - Data to be preprocessed. + * @param {Object} record - Data to be preprocessed. * @returns {String} */ - getLabel: function (data) { - return data; + getLabel: function (record) { + return record[this.index]; + }, + + /** + * Returns list of classes that should be applied to a field. + * + * @returns {Object} + */ + getFieldClass: function () { + return this.fieldClass; }, /** diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/date.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/date.js index 90ace7d79af..a12e0436eec 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/date.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/date.js @@ -28,11 +28,10 @@ define([ /** * Formats incoming date based on the 'dateFormat' property. * - * @param {String} date - Date to be formatted. * @returns {String} Formatted date. */ - getLabel: function (date) { - date = moment(date); + getLabel: function () { + var date = moment(this._super()); date = date.isValid() ? date.format(this.dateFormat) : diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js index 8323e8f31ad..0563dd0fbb8 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js @@ -20,9 +20,12 @@ define([ excludeMode: false, allSelected: false, indetermine: false, - selected: [], disabled: [], + selected: [], excluded: [], + fieldClass: { + 'data-grid-checkbox-cell': true + }, actions: [{ value: 'selectAll', label: $t('Select All') @@ -197,10 +200,9 @@ define([ * @returns {Multiselect} Chainable. */ selectPage: function () { - var selected = _.difference( - _.union(this.selected(), this.getIds()), - this.disabled() - ); + var selected = _.union(this.selected(), this.getIds()); + + selected = _.difference(selected, this.disabled()); this.selected(selected); @@ -438,6 +440,16 @@ define([ return this; }, + /** + * Overrides base method, cause this component + * can't have global field action. + * + * @returns {Boolean} False. + */ + hasFieldAction: function () { + return false; + }, + /** * Callback method to handle changes of selected items. * diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/select.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/select.js index f55a2efdd63..195fc0c1d54 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/select.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/select.js @@ -8,27 +8,27 @@ define([ 'use strict'; return Column.extend({ + + /*eslint-disable eqeqeq*/ /** * Retrieves label associated with a provided value. * - * @param {Array} values - Values of the option. * @returns {String} */ - getLabel: function (values) { + getLabel: function () { var options = this.options || [], - labels = []; + label = '', + value = this._super(); - values = values || []; + options.some(function (item) { + label = item.label; - /*eslint-disable eqeqeq*/ - options.forEach(function (item) { - if(values.indexOf(item.value) > -1) { - labels.push(item.label); - } + return item.value == value; }); - /*eslint-enable eqeqeq*/ - return labels.join(', '); + return label; } + + /*eslint-enable eqeqeq*/ }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/thumbnail.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/thumbnail.js index 11455b30680..ef46cfc7124 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/thumbnail.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/thumbnail.js @@ -13,7 +13,10 @@ define([ return Column.extend({ defaults: { - bodyTmpl: 'ui/grid/cells/thumbnail' + bodyTmpl: 'ui/grid/cells/thumbnail', + fieldClass: { + 'data-grid-thumbnail-cell': true + } }, getSrc: function (row) { return row[this.index + '_src'] @@ -44,6 +47,11 @@ define([ innerScroll: true, modalClass: '_image-box', buttons: []}).trigger('openModal'); + }, + getFieldHandler: function (row) { + if (this.isPreviewAvailable()) { + return this.preview.bind(this, row); + } } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js index 8bd34bb57f6..70a630b3532 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js @@ -5,9 +5,10 @@ define([ 'underscore', 'mageUtils', + 'mage/translate', 'uiLayout', 'uiComponent' -], function (_, utils, layout, Component) { +], function (_, utils, $t, layout, Component) { 'use strict'; /** @@ -29,24 +30,11 @@ define([ return Component.extend({ defaults: { template: 'ui/grid/controls/bookmarks/bookmarks', + viewTmpl: 'ui/grid/controls/bookmarks/view', + newViewLabel: $t('New View'), defaultIndex: 'default', activeIndex: 'default', hasChanges: false, - templates: { - view: { - parent: '${ $.$data.name }', - name: '${ $.$data.index }', - label: '${ $.$data.label }', - provider: '${ $.$data.provider }', - component: 'Magento_Ui/js/grid/controls/bookmarks/view' - }, - newView: { - label: 'New View', - index: '_${ Date.now() }', - editing: true, - isNew: true - } - }, storageConfig: { provider: '${ $.storageConfig.name }', name: '${ $.name }_storage', @@ -54,14 +42,14 @@ define([ }, views: { default: { - label: 'Default View', + label: $t('Default View'), index: 'default', editable: false } }, listens: { activeIndex: 'onActiveIndexChange', - activeView: 'checkChanges', + activeView: 'checkState', current: 'onStateChange' } }, @@ -72,9 +60,9 @@ define([ * @returns {Bookmarks} Chainable. */ initialize: function () { + utils.limit(this, 'checkState', 5); utils.limit(this, 'saveSate', 2000); - utils.limit(this, '_defaultPolyfill', 1000); - utils.limit(this, 'checkChanges', 50); + utils.limit(this, '_defaultPolyfill', 2000); this._super() .restore() @@ -91,7 +79,16 @@ define([ */ initObservable: function () { this._super() - .observe('activeView hasChanges'); + .track([ + 'hasChanges', + 'editing', + 'activeView', + 'customVisible', + 'customLabel' + ]) + .track({ + viewsArray: [] + }); return this; }, @@ -108,209 +105,430 @@ define([ }, /** - * Called when another element was added to the current component. + * Creates instances of a previously saved views. * - * @param {Object} elem - Instance of an element that was added. * @returns {Bookmarks} Chainable. */ - initElement: function (elem) { - var index = elem.index; + initViews: function () { + _.each(this.views, function (config) { + this.addView(config); + }, this); + + this.activeView = this.getActiveView(); + + return this; + }, + + /** + * Creates complete configuration for a view. + * + * @param {Object} [config] - Additional configuration object. + * @returns {Object} + */ + buildView: function (config) { + var view = { + label: this.newViewLabel, + index: '_' + Date.now(), + editable: true + }; + + utils.extend(view, config || {}); + + view.data = view.data || utils.copy(this.current); + view.value = view.label; + + this.observe.call(view, true, 'label value'); + + return view; + }, + + /** + * Creates instance of a view with a provided configuration. + * + * @param {Object} [config] - View configuration. + * @param {Boolean} [saveView=false] - Whether to save created view automatically or not. + * @param {Boolean} [applyView=false] - Whether to apply created view automatically or not. + * @returns {View} Created view. + */ + addView: function (config, saveView, applyView) { + var view = this.buildView(config), + index = view.index; - if (index === this.defaultIndex) { - this.defaultView = elem; + this.views[index] = view; + + if (saveView) { + this.saveView(index); } - if (index === this.activeIndex) { - this.activeView(elem); + if (applyView) { + this.applyView(index); } - elem.on({ - editing: this.onEditingChange.bind(this, elem) - }); + this.updateArray(); - return this._super(); + return view; }, /** - * Creates instances of a previously saved views. + * Removes specified view. * + * @param {String} index - Index of a view to be removed. * @returns {Bookmarks} Chainable. */ - initViews: function () { - var views = this.views, - active = _.findWhere(views, {index: this.activeIndex}); + removeView: function (index) { + var viewPath = this.getViewPath(index); - if (!active) { - this.activeIndex = this.defaultIndex; + if (this.isViewActive(index)) { + this.applyView(this.defaultIndex); } - _.each(views, this.createView, this); + this.endEdit(index) + .remove(viewPath) + .removeStored(viewPath) + .updateArray(); return this; }, /** - * Creates view with a provided data. + * Saves data of a specified view. * - * @param {Object} item - Data object that will be passed to a view instance. + * @param {String} index - Index of a view to be saved. * @returns {Bookmarks} Chainable. */ - createView: function (item) { - var data = _.extend({}, this, item), - child = utils.template(this.templates.view, data); + saveView: function (index) { + var viewPath = this.getViewPath(index); - _.extend(child, item); + this.updateViewLabel(index) + .endEdit(index) + .store(viewPath) + .checkState(); - if (this.activeIndex === item.index) { - child.active = true; - } + return this; + }, - layout([child]); + /** + * Sets specified view as active + * and applies its' state. + * + * @param {String} index - Index of a view to be applied. + * @returns {Bookmarks} Chainable. + */ + applyView: function (index) { + this.applyStateOf(index) + .set('activeIndex', index); return this; }, /** - * Creates new view instance. + * Updates data of a specified view if it's + * currently active and saves its' data. * + * @param {String} index - Index of a view. * @returns {Bookmarks} Chainable. */ - createNewView: function () { - var view = this.templates.newView; + updateAndSave: function (index) { + if (this.isViewActive(index)) { + this.updateActiveView(index); + } + + this.saveView(index); + + return this; + }, + + /** + * Returns instance of a specified view. + * + * @param {String} index - Index of a view to be retrieved. + * @returns {View} + */ + getView: function (index) { + return this.views[index]; + }, - view.data = this.current; + /** + * Returns instance of an active view. + * + * @returns {View} + */ + getActiveView: function () { + return this.views[this.activeIndex]; + }, - this.createView(view); + /** + * Checks if specified view is active. + * + * @param {String} index - Index of a view to be checked. + * @returns {Boolean} + */ + isViewActive: function (index) { + return this.activeView === this.getView(index); + }, + + /** + * Sets current state as a data of an active view. + * + * @returns {Bookmarks} Chainable. + */ + updateActiveView: function () { + this.setViewData(this.activeIndex, this.current); return this; }, /** - * Deletes specfied view. + * Replaces label a view with a provided one. + * If new label is not specified, then views' + * 'value' property will be taken. * - * @param {View} view - View to be deleted. + * @param {String} index - Index of a view. + * @param {String} [label=view.value] - New labels' value. * @returns {Bookmarks} Chainable. */ - removeView: function (view) { - if (view.active()) { - this.applyView(this.defaultIndex); - } + updateViewLabel: function (index, label) { + var view = this.getView(index), + current = view.label; - if (!view.isNew) { - this.removeStored('views.' + view.index); - } + label = (label || view.value).trim() || current; + label = this.uniqueLabel(label, current); - view.destroy(); + view.label = view.value = label; return this; }, /** - * Saves data of a specified view. + * Retrieves data of a specified view. * - * @param {View} view - View to be saved. - * @returns {Bookmarks} Chainable. + * @param {String} index - Index of a view whose data should be retrieved. + * @param {String} [property] - If not specified then whole views' data will be retrieved. + * @returns {Object} Views' data. */ - saveView: function (view) { - if (view.isNew || view.active()) { - view.setData(this.current); + getViewData: function (index, property) { + var view = this.getView(index), + data = view.data; - this.hasChanges(false); + if (property) { + data = utils.nested(data, property); } - this.store('views.' + view.index, view.exportView()); + return utils.copy(data); + }, - if (view.isNew) { - view.isNew = false; + /** + * + * @returns {Bookmarks} Chainable. + */ + setViewData: function (index, data) { + var path = this.getViewPath(index) + '.data'; - view.active(true); - } + this.set(path, utils.copy(data)); return this; }, /** - * Activates specified view and applies its' data. * - * @param {(View|String)} view - View to be applied. + * @param {String} index * @returns {Bookmarks} Chainable. */ - applyView: function (view) { - if (typeof view === 'string') { - view = this.elems.findWhere({ - index: view - }); + editView: function (index) { + this.editing = index; + + return this; + }, + + /** + * + * @param {String} index + * @returns {Bookmarks} Chainable. + */ + endEdit: function (index) { + var view; + + if (!this.isEditing(index)) { + return this; } - view.active(true); + index = index || this.editing; + view = this.getView(index); - this.activeView(view); - this.applyState('saved'); + view.value = view.label; + + this.editing = false; return this; }, /** - * Applies specified views' data on a current data object. + * Checks if specified view is in editing state. * - * @param {String} state - Defines what state shultd be used: default or saved. - * @param {String} [path] - Path to the property whose value - * will be inserted to a current data object. - * @returns {Bookmarks} Chainable. + * @param {String} index - Index of a view to be checked. + * @returns {Bollean} */ - applyState: function (state, path) { - var view, - value; + isEditing: function (index) { + return this.editing === index; + }, - view = state === 'default' ? - this.defaultView : - this.activeView(); + /** + * Generates label unique among present views, based + * on the incoming label pattern. + * + * @param {String} [label=this.newViewLabel] - Label pattern. + * @param {String} [exclude] + * @returns {String} + */ + uniqueLabel: function (label, exclude) { + var labels = _.pluck(this.views, 'label'), + hasParenth = _.last(label) === ')', + index = 2, + result, + suffix; - path = removeStateNs(path); - value = view.getData(path); + labels = _.without(labels, exclude); + result = label = label || this.newViewLabel; - if (!_.isUndefined(value)) { - path = path ? 'current.' + path : 'current'; + for (index = 2; _.contains(labels, result); index++) { + suffix = '(' + index + ')'; - this.set(path, value); + if (!hasParenth) { + suffix = ' ' + suffix; + } + + result = label + suffix; } + return result; + }, + + /** + * Applies state of a specified view, without + * making it active. + * + * @param {String} [state=this.activeIndex] + * @param {String} [property] + * @returns {Bookmarks} Chainable. + */ + applyStateOf: function (state, property) { + var index = state || this.activeIndex, + dataPath = removeStateNs(property), + viewData = this.getViewData(index, dataPath); + + dataPath = dataPath ? + 'current.' + dataPath : + 'current'; + + this.set(dataPath, viewData); + return this; }, /** - * Saves current data state. + * Saves current state. * * @returns {Bookmarks} Chainable. */ - saveSate: function () { + saveState: function () { this.store('current'); return this; }, /** - * Defines whether current state is different - * from a saved state of an active view. + * Applies state of an active view. + * + * @returns {Bookmarks} Chainable. + */ + resetState: function () { + this.applyStateOf(this.activeIndex); + + return this; + }, + + /** + * Checks if current state is different + * from the state of an active view. * * @returns {Bookmarks} Chainable. */ - checkChanges: function () { - var view = this.activeView(), - diff = utils.compare(view.getData(), this.current); + checkState: function () { + var viewData = this.getViewData(this.activeIndex), + diff = utils.compare(viewData, this.current); - this.hasChanges(!diff.equal); + this.hasChanges = !diff.equal; return this; }, /** - * Resets current state to a saved state of an active view. + * Returns path to the view instance, + * based on a provided index. + * + * @param {String} index - Index of a view. + * @returns {String} + */ + getViewPath: function (index) { + return 'views.' + index; + }, + + /** + * Updates the array of views. + * + * @returns {Bookmarks} Chainable + */ + updateArray: function () { + this.viewsArray = _.values(this.views); + + return this; + }, + + /** + * Shows custom view field and creates unique label for it. + * + * @returns {Bookmarks} Chainable. + */ + showCustom: function () { + this.customLabel = this.uniqueLabel(); + this.customVisible = true; + + return this; + }, + + /** + * Hides custom view field. * * @returns {Bookmarks} Chainable. */ - discardChanges: function () { - this.applyState('saved'); + hideCustom: function () { + this.customVisible = false; + + return this; + }, + + /** + * Checks if custom view field is visible. + * + * @returns {Boolean} + */ + isCustomVisible: function () { + return this.customVisible; + }, + + /** + * Creates new view instance with a label specified + * in a custom view field. + * + * @returns {Bookmarks} Chainable. + */ + applyCustom: function () { + var label = this.customLabel.trim(); + + this.hideCustom() + .addView({ + label: this.uniqueLabel(label) + }, true, true); return this; }, @@ -324,54 +542,37 @@ define([ * @returns {Bookmarks} Chainbale. */ _defaultPolyfill: function () { - var view = this.defaultView, - data = view.data; - - if (!_.size(data.items)) { - data.items = utils.copy(this.current); + var data = this.getViewData(this.defaultIndex); - this.store('views.' + view.index, view.exportView()); + if (!_.size(data)) { + this.setViewData(this.defaultIndex, this.current) + .saveView(this.defaultIndex); } this.defaultDefined = true; - this.checkChanges(); - return this; }, /** * Listener of the activeIndex property. - * - * @param {String} index - Index of the active view. */ - onActiveIndexChange: function (index) { - this.store('activeIndex') - .applyView(index); + onActiveIndexChange: function () { + this.activeView = this.getActiveView(); + + this.store('activeIndex'); }, /** - * Listens changes of a current data object. + * Listener of the activeIndex property. */ onStateChange: function () { - this.saveSate(); - - if (this.activeView()) { - this.checkChanges(); - } + this.saveState() + .checkState(); if (!this.defaultDefined) { this._defaultPolyfill(); } - }, - - /** - * Lsitens changes of the views' 'editing' property. - */ - onEditingChange: function (view, isEditing) { - if (!isEditing && view.isNew) { - this.removeView(view); - } } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/view.js b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/view.js deleted file mode 100644 index afd5d4276de..00000000000 --- a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/view.js +++ /dev/null @@ -1,161 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -define([ - 'uiComponent', - 'mageUtils' -], function (Component, utils) { - 'use strict'; - - return Component.extend({ - defaults: { - template: 'ui/grid/controls/bookmarks/view', - value: '${ $.isNew ? "" : $.label }', - active: false, - editable: true, - editing: false, - isNew: false, - statesProvider: '${ $.parentName }', - exports: { - active: 'onActivate' - }, - listens: { - 'editing value': 'syncLabel', - '${ $.statesProvider }:activeIndex': 'onActiveChange' - }, - modules: { - states: '${ $.statesProvider }' - } - }, - - /** - * Initializes view component. - * - * @returns {View} Chainable. - */ - initialize: function () { - this._super(); - - this.data = { - label: this.label(), - items: this.data || {} - }; - - return this; - }, - - /** - * Creates observable properties. - * - * @returns {View} Chainable. - */ - initObservable: function () { - this._super() - .observe('active label value editing'); - - return this; - }, - - /** - * Retrieves copied views' data. - * - * @param {String} [path] - Path to the specific property. - * @returns {*} - */ - getData: function (path) { - var data = this.data.items; - - if (path) { - data = utils.nested(data, path); - } - - return utils.copy(data); - }, - - /** - * Replaces current data with a provided one. - * - * @param {Object} data - New data object. - * @returns {View} Chainable. - */ - setData: function (data) { - if (this.editable) { - this.set('data.items', utils.copy(data)); - } - - return this; - }, - - /** - * Sets new label. - * - * @returns {View} Chainable. - */ - syncLabel: function () { - var label = this.value(); - - label = label.trim() || this.data.label; - - this.label(label); - this.value(label); - - this.data.label = label; - - return this; - }, - - /** - * Sets 'editing' flag to true. - * - * @returns {View} Chainable. - */ - startEdit: function () { - this.editing(true); - - return this; - }, - - /** - * Sets 'editing' flag to false. - * - * @returns {View} Chainable. - */ - endEdit: function () { - this.editing(false); - - return this; - }, - - /** - * Returns views' data including 'label' and 'index' properties. - * - * @returns {Object} - */ - exportView: function () { - return { - index: this.index, - label: this.label(), - data: this.data.items - }; - }, - - /** - * Listener of the 'active' property. - */ - onActivate: function (active) { - if (active) { - this.states('set', 'activeIndex', this.index); - } - }, - - /** - * Listener of the collections' active index value. - */ - onActiveChange: function (index) { - if (index !== this.index) { - this.active(false); - } - } - }); -}); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/controls/columns.js b/app/code/Magento/Ui/view/base/web/js/grid/controls/columns.js index 4673bedd251..73fe224b55e 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/controls/columns.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/controls/columns.js @@ -16,11 +16,8 @@ define([ minVisible: 1, maxVisible: 30, viewportSize: 18, - columnsData: { - container: 'elems' - }, imports: { - addColumns: '${ $.columnsData.provider }:${ $.columnsData.container }' + addColumns: '${ $.columnsData.provider }:elems' }, templates: { headerMsg: $t('${ $.visible } out of ${ $.total } visible') @@ -44,7 +41,7 @@ define([ * @returns {Columns} Chainable. */ cancel: function () { - this.elems.each('applyState', 'saved', 'visible'); + this.elems.each('applyState', '', 'visible'); return this; }, @@ -86,7 +83,7 @@ define([ isDisabled: function (elem) { var visible = this.countVisible(); - return elem.visible() ? + return elem.visible ? visible === this.minVisible : visible === this.maxVisible; }, diff --git a/app/code/Magento/Ui/view/base/web/js/grid/dnd.js b/app/code/Magento/Ui/view/base/web/js/grid/dnd.js index fbcffc466f1..217d4bec23a 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/dnd.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/dnd.js @@ -212,15 +212,19 @@ define([ return this; } + if (Object.hasOwnProperty(model, 'dragover')) { + model.track('dragover'); + } + this.columns.push(column); $(column).bindings({ css: { '_dragover-left': ko.computed(function () { - return model.dragover() === 'right'; + return model.dragover === 'right'; }), '_dragover-right': ko.computed(function () { - return model.dragover() === 'left'; + return model.dragover === 'left'; }) } }); @@ -468,7 +472,7 @@ define([ 'left' : 'right'; - getModel(dropArea.target).dragover(direction); + getModel(dropArea.target).dragover = direction; }, /** @@ -477,7 +481,7 @@ define([ * @param {Object} dropArea */ dragleave: function (dropArea) { - getModel(dropArea.target).dragover(false); + getModel(dropArea.target).dragover = false; }, /** @@ -511,7 +515,7 @@ define([ dragModel = getModel(dragArea.target); getModel(this.table).insertChild(dragModel, dropModel); - dropModel.dragover(false); + dropModel.dragover = false; }, /** diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/chips.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/chips.js index a31b1fd2d50..5a4499780f8 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/chips.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/chips.js @@ -3,8 +3,9 @@ * See COPYING.txt for license details. */ define([ + 'underscore', 'uiComponent' -], function (Component) { +], function (_, Component) { 'use strict'; return Component.extend({ @@ -18,9 +19,9 @@ define([ * * @returns {Boolean} */ - hasData: function () { + hasPreviews: function () { return this.elems().some(function (elem) { - return !!elem.previews().length; + return !!elem.previews.length; }); }, @@ -30,7 +31,7 @@ define([ * @returns {Chips} Chainable. */ clear: function () { - this.elems.each('clear'); + _.invoke(this.elems(), 'clear'); return this; } diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js index 8c22ae9f33c..48b812a3de8 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js @@ -120,7 +120,7 @@ define([ */ initObservable: function () { this._super() - .observe({ + .track({ active: [], previews: [] }); @@ -141,27 +141,6 @@ define([ return this; }, - /** - * Creates instance of a filter associated with the provided column. - * - * @param {Column} column - Column component for which to create a filter. - * @returns {Filters} Chainable. - */ - initFilter: function (column) { - var index = column.index, - filter; - - if (!column.filter || this.getFilter(index)) { - return this; - } - - filter = this.buildFilter(column); - - layout([filter]); - - return this; - }, - /** * Called when another element was added to filters collection. * @@ -184,7 +163,7 @@ define([ clear: function (filter) { filter ? filter.clear() : - this.active.each('clear'); + _.invoke(this.active, 'clear'); this.apply(); @@ -231,6 +210,27 @@ define([ return this; }, + /** + * Creates instance of a filter associated with the provided column. + * + * @param {Column} column - Column component for which to create a filter. + * @returns {Filters} Chainable. + */ + addFilter: function (column) { + var index = column.index, + filter; + + if (!column.filter || this.hasFilter(index)) { + return this; + } + + filter = this.buildFilter(column); + + layout([filter]); + + return this; + }, + /** * Creates filter component configuration associated with the provided column. * @@ -268,6 +268,16 @@ define([ }); }, + /** + * Checks if collection contains a specfied filter. + * + * @param {String} index - Index of a filter. + * @returns {Boolean} + */ + hasFilter: function (index) { + return !!this.getFilter(index); + }, + /** * Returns an array of range filters. * @@ -307,7 +317,7 @@ define([ * @returns {Boolean} */ isFilterActive: function (filter) { - return this.active.contains(filter); + return _.contains(this.active, filter); }, /** @@ -326,7 +336,7 @@ define([ * @returns {Filters} Chainable. */ updateActive: function () { - this.active(this.elems.filter('hasData')); + this.active = this.elems.filter('hasData'); return this; }, @@ -340,7 +350,7 @@ define([ updatePreviews: function (filters) { var previews = filters.map(extractPreview); - this.previews(_.compact(previews)); + this.previews = _.compact(previews); return this; }, @@ -351,7 +361,7 @@ define([ * @param {Array} columns - Current columns list. */ onColumnsUpdate: function (columns) { - columns.forEach(this.initFilter, this); + columns.forEach(this.addFilter, this); } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/listing.js b/app/code/Magento/Ui/view/base/web/js/grid/listing.js index 482f452044d..86aea5c6474 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/listing.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/listing.js @@ -4,11 +4,12 @@ */ define([ + 'ko', 'underscore', 'Magento_Ui/js/lib/spinner', 'uiLayout', 'uiComponent' -], function (_, loader, layout, Component) { +], function (ko, _, loader, layout, Component) { 'use strict'; return Component.extend({ @@ -36,18 +37,13 @@ define([ name: '${ $.name }_resize', columnsProvider: '${ $.name }', component: 'Magento_Ui/js/grid/resize', - provider: '${ $.provider }', - classResize: 'shadow-div', - divsAttrParams: { - 'data-cl-elem': 'shadow-div' - }, enabled: false }, imports: { rows: '${ $.provider }:data.items' }, listens: { - elems: 'setPositions', + elems: 'setPositions updateVisible', '${ $.provider }:reload': 'showLoader', '${ $.provider }:reloaded': 'hideLoader' }, @@ -63,6 +59,8 @@ define([ * @returns {Listing} Chainable. */ initialize: function () { + _.bindAll(this, 'updateVisible'); + this._super(); if (this.resizeConfig.enabled) { @@ -87,8 +85,9 @@ define([ */ initObservable: function () { this._super() - .observe({ - rows: [] + .track({ + rows: [], + visibleColumns: [] }); return this; @@ -106,7 +105,7 @@ define([ }, /** - * Creates resize widget instance. + * Inititalizes resize component. * * @returns {Listing} Chainable. */ @@ -132,7 +131,7 @@ define([ * * @returns {Listing} Chainable. */ - initElement: function () { + initElement: function (element) { var currentCount = this.elems().length, totalCount = this.initChildCount; @@ -140,6 +139,10 @@ define([ this.initPositions(); } + element.on('visible', this.updateVisible); + + this.updateVisible(); + return this._super(); }, @@ -213,17 +216,13 @@ define([ }, /** - * Hides loader. + * + * @returns {Array} */ - hideLoader: function () { - loader.get(this.name).hide(); - }, + getVisible: function () { + var observable = ko.getObservable(this, 'visibleColumns'); - /** - * Shows loader. - */ - showLoader: function () { - loader.get(this.name).show(); + return observable || this.visibleColumns; }, /** @@ -232,7 +231,18 @@ define([ * @returns {Number} */ countVisible: function () { - return this.elems.filter('visible').length; + return this.visibleColumns.length; + }, + + /** + * Updates array of visible columns. + * + * @returns {Listing} Chainable. + */ + updateVisible: function () { + this.visibleColumns = this.elems.filter('visible'); + + return this; }, /** @@ -241,7 +251,21 @@ define([ * @returns {Boolean} */ hasData: function () { - return !!this.rows().length; + return !!this.rows.length; + }, + + /** + * Hides loader. + */ + hideLoader: function () { + loader.get(this.name).hide(); + }, + + /** + * Shows loader. + */ + showLoader: function () { + loader.get(this.name).show(); } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/paging/paging.js b/app/code/Magento/Ui/view/base/web/js/grid/paging/paging.js index 3f8c6cd8a65..01729f4aebd 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/paging/paging.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/paging/paging.js @@ -38,13 +38,13 @@ define([ exports: { pageSize: '${ $.provider }:params.paging.pageSize', - current: '${ $.provider }:params.paging.current', - pages: '${ $.provider }:data.pages' + current: '${ $.provider }:params.paging.current' }, listens: { 'pages': 'onPagesChange', - 'pageSize totalRecords': 'countPages', + 'pageSize': 'onPageSizeChange', + 'totalRecords': 'updateCounter', '${ $.provider }:params.filters': 'goFirst' }, @@ -61,7 +61,7 @@ define([ initialize: function () { this._super() .initSizes() - .countPages(); + .updateCounter(); return this; }, @@ -73,17 +73,16 @@ define([ */ initObservable: function () { this._super() - .observe([ + .track([ 'totalSelected', 'totalRecords', 'pageSize', - 'current', 'pages', - 'options' + 'current' ]); this._current = ko.pureComputed({ - read: this.current, + read: ko.getObservable(this, 'current'), /** * Validates page change according to user's input. @@ -91,10 +90,8 @@ define([ * Calls reload method then. */ write: function (value) { - value = this.normalize(value); - - this.current(value); - this._current.notifySubscribers(value); + this.setPage(value) + ._current.notifySubscribers(this.current); }, owner: this @@ -121,7 +118,7 @@ define([ * @returns {Paging} Chainable. */ setPage: function (value) { - this.current(this.normalize(value)); + this.current = this.normalize(value); return this; }, @@ -132,7 +129,7 @@ define([ * @returns {Paging} Chainable. */ next: function () { - this.setPage(this.current() + 1); + this.setPage(this.current + 1); return this; }, @@ -143,7 +140,7 @@ define([ * @returns {Paging} Chainable. */ prev: function () { - this.setPage(this.current() - 1); + this.setPage(this.current - 1); return this; }, @@ -154,7 +151,7 @@ define([ * @returns {Paging} Chainable. */ goFirst: function () { - this.current(1); + this.current = 1; return this; }, @@ -165,7 +162,7 @@ define([ * @returns {Paging} Chainable. */ goLast: function () { - this.current(this.pages()); + this.current = this.pages; return this; }, @@ -176,7 +173,7 @@ define([ * @returns {Boolean} */ isFirst: function () { - return this.current() === 1; + return this.current === 1; }, /** @@ -185,7 +182,41 @@ define([ * @returns {Boolean} */ isLast: function () { - return this.current() === this.pages(); + return this.current === this.pages; + }, + + /** + * Updates number of pages. + */ + updateCounter: function () { + this.pages = Math.ceil(this.totalRecords / this.pageSize) || 1; + + return this; + }, + + /** + * Calculates new page cursor based on the + * previous and current page size values. + * + * @returns {Number} Updated cursor value. + */ + updateCursor: function () { + var cursor = this.current - 1, + size = this.pageSize, + oldSize = this.previousSize, + delta = cursor * (oldSize - size) / size; + + delta = size > oldSize ? + Math.ceil(delta) : + Math.floor(delta); + + cursor += delta + 1; + + this.previousSize = size; + + this.setPage(cursor); + + return this; }, /** @@ -196,37 +227,28 @@ define([ * @returns {Number} */ normalize: function (value) { - var total = this.pages(); - value = +value; if (isNaN(value)) { return 1; } - return utils.inRange(Math.round(value), 1, total); + return utils.inRange(Math.round(value), 1, this.pages); }, /** - * Calculates number of pages. + * Handles changes of the page size. */ - countPages: function () { - var pages = Math.ceil(this.totalRecords() / this.pageSize()); - - this.pages(pages || 1); + onPageSizeChange: function () { + this.updateCounter() + .updateCursor(); }, /** - * Listens changes of the 'pages' property. - * Might change current page if its' value - * is greater than total amount of pages. - * - * @param {Number} pages - Total amount of pages. + * Handles changes of the pages amount. */ - onPagesChange: function (pages) { - var current = this.current; - - current(utils.inRange(current(), 1, pages)); + onPagesChange: function () { + this.updateCursor(); } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/paging/sizes.js b/app/code/Magento/Ui/view/base/web/js/grid/paging/sizes.js index 62908da3722..02dfbf47c3a 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/paging/sizes.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/paging/sizes.js @@ -16,8 +16,6 @@ define([ value: 20, minSize: 1, maxSize: 999, - customVisible: false, - customValue: '', options: { '20': { value: 20, @@ -40,8 +38,7 @@ define([ label: 200 } }, - optionsArray: [], - links: { + statefull: { options: '${ $.storageConfig.path }.options', value: '${ $.storageConfig.path }.value' }, @@ -70,16 +67,18 @@ define([ */ initObservable: function () { this._super() - .observe([ - 'optionsArray', - 'editing', + .track([ 'value', + 'editing', 'customVisible', 'customValue' - ]); + ]) + .track({ + optionsArray: [] + }); this._value = ko.pureComputed({ - read: this.value, + read: ko.getObservable(this, 'value'), /** * Validates input field prior to updating 'value' property. @@ -87,7 +86,7 @@ define([ write: function (value) { value = this.normalize(value); - this.value(value); + this.value = value; this._value.notifySubscribers(value); }, @@ -104,7 +103,7 @@ define([ * @returns {Sizes} Chainable. */ edit: function (value) { - this.editing(value); + this.editing = value; return this; }, @@ -115,7 +114,7 @@ define([ * @returns {Sizes} Chainable. */ discardEditing: function () { - var value = this.editing(); + var value = this.editing; if (value) { this.updateSize(value, value); @@ -142,7 +141,7 @@ define([ * @returns {Number} */ getFirst: function () { - return this.optionsArray()[0].value; + return this.optionsArray[0].value; }, /** @@ -162,7 +161,7 @@ define([ * @returns {Sizes} Chainable. */ setSize: function (value) { - this.value(value); + this.value = value; return this; }, @@ -283,7 +282,7 @@ define([ * @returns {Sizes} Chainable. */ showCustom: function () { - this.customVisible(true); + this.customVisible = true; return this; }, @@ -294,7 +293,7 @@ define([ * @returns {Sizes} Chainable. */ hideCustom: function () { - this.customVisible(false); + this.customVisible = false; return this; }, @@ -305,7 +304,7 @@ define([ * @returns {Sizes} Chainable. */ clearCustom: function () { - this.customValue(''); + this.customValue = ''; return this; }, @@ -316,7 +315,7 @@ define([ * @returns {Sizes} Chainable. */ applyCustom: function () { - var value = this.customValue(); + var value = this.customValue; value = this.normalize(value); @@ -333,7 +332,7 @@ define([ * @returns {Boolean} */ isCustomVisible: function () { - return this.customVisible(); + return this.customVisible; }, /** @@ -361,9 +360,7 @@ define([ updateArray: function () { var array = _.values(this.options); - array = _.sortBy(array, 'value'); - - this.optionsArray(array); + this.optionsArray = _.sortBy(array, 'value'); return this; }, @@ -375,7 +372,7 @@ define([ * @returns {Boolean} */ isEditing: function (value) { - return this.editing() === value; + return this.editing === value; }, /** @@ -385,7 +382,7 @@ define([ * @returns {Boolean} */ isSelected: function (value) { - return this.value() === value; + return this.value === value; }, /** @@ -400,8 +397,9 @@ define([ * Listener of the 'options' object changes. */ onSizesChange: function () { - this.editing(false) - .updateArray(); + this.editing = false; + + this.updateArray(); } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/provider.js b/app/code/Magento/Ui/view/base/web/js/grid/provider.js index f665319bdc1..b4aa11c5111 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/provider.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/provider.js @@ -26,7 +26,7 @@ define([ * @returns {Provider} Chainable. */ initialize: function () { - utils.limit(this, 'reload', 200); + utils.limit(this, 'reload', 300); _.bindAll(this, 'onReload'); return this._super(); @@ -40,7 +40,7 @@ define([ initConfig: function () { this._super(); - _.extend(this.data, { + this.setData({ items: [], totalRecords: 0 }); @@ -48,20 +48,39 @@ define([ return this; }, + /** + * + * @param {Object} data + * @returns {Provider} Chainable. + */ + setData: function (data) { + data = this.processData(data); + + this.set('data', data); + + return this; + }, + /** * Reloads data with current parameters. */ reload: function () { this.trigger('reload'); - $.ajax({ - url: this.update_url, + if (this.request && this.request.readyState !== 4) { + this.request.abort(); + } + + this.request = $.ajax({ + url: this['update_url'], method: 'GET', data: this.get('params'), dataType: 'json' - }) - .error(this.onError) - .done(this.onReload); + }); + + this.request + .done(this.onReload) + .error(this.onError); }, /** @@ -83,7 +102,11 @@ define([ /** * Handles reload error. */ - onError: function () { + onError: function (xhr) { + if (xhr.statusText === 'abort') { + return; + } + alert({ content: $t('Something went wrong.') }); @@ -95,9 +118,7 @@ define([ * @param {Object} data - Retrieved data object. */ onReload: function (data) { - data = this.processData(data); - - this.set('data', data) + this.setData(data) .trigger('reloaded'); } }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/resize.js b/app/code/Magento/Ui/view/base/web/js/grid/resize.js index cef9cb707cf..771126ff3a6 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/resize.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/resize.js @@ -531,7 +531,7 @@ define([ nextElemData = this.hasColumn(nextElemModel, false, true); if (nextElemData) { - if (nextElemModel.visible()) { + if (nextElemModel.visible) { return nextElemData; } diff --git a/app/code/Magento/Ui/view/base/web/js/grid/search/search.js b/app/code/Magento/Ui/view/base/web/js/grid/search/search.js index 71e0570311a..9df534c8d59 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/search/search.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/search/search.js @@ -51,11 +51,8 @@ define([ */ initObservable: function () { this._super() - .observe([ - 'inputValue', - 'value' - ]) - .observe({ + .track('inputValue value') + .track({ previews: [] }); @@ -79,7 +76,7 @@ define([ * @returns {Search} Chainable. */ clear: function () { - this.value(''); + this.value = ''; return this; }, @@ -90,7 +87,7 @@ define([ * @returns {Search} Chainable. */ cancel: function () { - this.inputValue(this.value()); + this.inputValue = this.value; return this; }, @@ -103,10 +100,9 @@ define([ * @returns {Search} Chainable. */ apply: function (value) { - value = value || this.inputValue(); + value = value || this.inputValue; - this.value(value); - this.inputValue(value); + this.value = this.inputValue = value; return this; }, @@ -123,11 +119,11 @@ define([ preview.push({ elem: this, label: this.label, - preview: this.value() + preview: this.value }); } - this.previews(preview); + this.previews = preview; return this; } diff --git a/app/code/Magento/Ui/view/base/web/js/lib/component/provider.js b/app/code/Magento/Ui/view/base/web/js/lib/component/provider.js index c6c1c195186..7fc41cf7f74 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/component/provider.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/component/provider.js @@ -9,35 +9,52 @@ define([ ], function (ko, _, utils) { 'use strict'; - /** - * Wrapper for ko.observable and ko.observableArray. - * Assignes one or another ko property to obj[key] + /** + * Creates observable property using knockouts' + * 'observableArray' or 'observable' methods, + * depending on a type of 'value' parameter. * - * @param {Object} obj - object to store property to - * @param {String} key - key - * @param {*} value - initial value of observable + * @param {Object} obj - Object to whom property belongs. + * @param {String} key - Key of the property. + * @param {*} value - Initial value. */ - function observe(obj, key, value) { + function observable(obj, key, value) { var method = Array.isArray(value) ? 'observableArray' : 'observable'; if (_.isFunction(obj[key]) && !ko.isObservable(obj[key])) { return; } - if (ko.isObservable(obj[key])) { - if (ko.isObservable(value)) { - value = value(); - } + if (ko.isObservable(value)) { + value = value(); + } - obj[key](value); + ko.isObservable(obj[key]) ? + obj[key](value) : + obj[key] = ko[method](value); + } + /** + * Creates observable propery using 'track' method. + * + * @param {Object} obj - Object to whom property belongs. + * @param {String} key - Key of the property. + * @param {*} value - Initial value. + */ + function accessor(obj, key, value) { + if (_.isFunction(obj[key]) || ko.isObservable(obj[key])) { return; } - obj[key] = ko[method](value); + obj[key] = value; + + if (!ko.es5.isTracked(obj, key)) { + ko.track(obj, [key]); + } } return { + /** * Returns value of the nested property. * @@ -101,33 +118,74 @@ define([ }, /** - * If 2 params passed, path is considered as key. - * Else, path is considered as object. - * Assignes props to this based on incoming params + * Creates observable properties for the current object. + * + * If 'useTrack' flag is set to 'true' then each property will be + * created with a ES5 get/set accessor descriptors, instead of + * making them an observable functions. + * See 'knockout-es5' library for more information. * - * @param {(Object|String)} path + * @param {Boolean} [useAccessors=false] - Whether to create an + * observable function or to use property accesessors. + * @param {(Object|String|Array)} properties - List of observable properties. * @returns {Component} Chainable. + * + * @example Sample declaration and equivalent knockout methods. + * this.key = 'value'; + * this.array = ['value']; + * + * this.observe(['key', 'array']); + * => + * this.key = ko.observable('value'); + * this.array = ko.observableArray(['value']); + * + * @example Another syntaxes of the previous example. + * this.observe({ + * key: 'value', + * array: ['value'] + * }); */ - observe: function (path) { - var type = typeof path; + observe: function (useAccessors, properties) { + var model = this, + trackMethod; - if (type === 'string') { - path = path.split(' '); + if (typeof useAccessors !== 'boolean') { + properties = useAccessors; + useAccessors = false; } - if (Array.isArray(path)) { - path.forEach(function (key) { - observe(this, key, this[key]); - }, this); - } else if (type === 'object') { - _.each(path, function (value, key) { - observe(this, key, value); - }, this); + trackMethod = useAccessors ? accessor : observable; + + if (_.isString(properties)) { + properties = properties.split(' '); + } + + if (Array.isArray(properties)) { + properties.forEach(function (key) { + trackMethod(model, key, model[key]); + }); + } else if (typeof properties === 'object') { + _.each(properties, function (value, key) { + trackMethod(model, key, value); + }); } return this; }, + /** + * Delegates call to 'observe' method but + * with a predefined 'useAccessors' flag. + * + * @param {(String|Array|Object)} properties - List of observable properties. + * @returns {Component} Chainable. + */ + track: function (properties) { + this.observe(true, properties); + + return this; + }, + /** * */ diff --git a/app/code/Magento/Ui/view/base/web/js/lib/events.js b/app/code/Magento/Ui/view/base/web/js/lib/events.js index 5ef76cfa2ce..98df28ffa4f 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/events.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/events.js @@ -38,11 +38,16 @@ define([ * @param {String} name - Name of the event. */ function addHandler(obj, ns, callback, name) { - var events = getEvents(obj), + var events = getEvents(obj), + observable, data; - if (ko.isObservable(obj[name])) { - obj[name].subscribe(callback); + observable = !ko.isObservable(obj[name]) ? + ko.getObservable(obj, name) : + obj[name]; + + if (observable) { + observable.subscribe(callback); return; } @@ -86,6 +91,7 @@ define([ } return { + /** * Calls callback when name event is triggered. * @param {String} events diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/autoselect.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/autoselect.js new file mode 100644 index 00000000000..5a6207b4c5a --- /dev/null +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/autoselect.js @@ -0,0 +1,34 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +define([ + 'ko', + 'jquery' +], function (ko, $) { + 'use strict'; + + /** + * 'Focus' event handler. + * + * @param {EventObject} e + */ + function onFocus(e) { + e.target.select(); + } + + ko.bindingHandlers.autoselect = { + + /** + * Adds event handler which automatically + * selects inputs' element text when field gets focused. + */ + init: function (element, valueAccessor) { + var enabled = ko.unwrap(valueAccessor()); + + if (enabled !== false) { + $(element).on('focus', onFocus); + } + } + }; +}); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/class.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/class.js deleted file mode 100644 index 8d3b6bbfbd0..00000000000 --- a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/class.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -define([ - 'ko', - 'underscore' -], function(ko, _) { - 'use strict'; - - ko.bindingHandlers['class'] = { - /** - * @param {HTMLElement} element - Element, that binding is applied to - * @param {Function} valueAccessor - Function that returns value, passed to binding - */ - update: function (element, valueAccessor) { - var currentValue = ko.utils.unwrapObservable(valueAccessor()), - prevValue = element['__ko__previousClassValue__'], - - /** - * Helper for setting classes11 - * @param {Array|Object|String} singleValueOrArrayOrObject - * @param {Boolean} shouldHaveClass - */ - addOrRemoveClasses = function addOrRemoveClassesFn (singleValueOrArrayOrObject, shouldHaveClass) { - if (_.isArray(singleValueOrArrayOrObject)) { - ko.utils.arrayForEach(singleValueOrArrayOrObject, function (cssClass) { - var value = ko.utils.unwrapObservable(cssClass); - ko.utils.toggleDomNodeCssClass(element, value, shouldHaveClass); - }); - } else if (_.isObject(singleValueOrArrayOrObject)) { - _.each(singleValueOrArrayOrObject, function(classname, condition) { - if(ko.utils.unwrapObservable(condition)) { - ko.utils.toggleDomNodeCssClass(element, classname, shouldHaveClass); - } - }) - - } else if (singleValueOrArrayOrObject) { - ko.utils.toggleDomNodeCssClass(element, singleValueOrArrayOrObject, shouldHaveClass); - } - }; - - // Remove old value(s) (preserves any existing CSS classes) - addOrRemoveClasses(prevValue, false); - - // Set new value(s) - addOrRemoveClasses(currentValue, true); - - // Store a copy of the current value - element['__ko__previousClassValue__'] = currentValue.concat(); - } - }; -}); \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/staticChecked.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/staticChecked.js new file mode 100644 index 00000000000..dc49e5575a8 --- /dev/null +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/staticChecked.js @@ -0,0 +1,99 @@ +define([ + 'ko' +], function (ko) { + 'use strict'; + + ko.bindingHandlers.staticChecked = { + 'after': ['value', 'attr'], + + /** + * Implements same functionality as a standard 'checked' binding, + * but with a difference that it wont' change values array if + * value of DOM element changes. + */ + init: function (element, valueAccessor, allBindings) { + var isCheckbox = element.type === 'checkbox', + isRadio = element.type === 'radio', + isValueArray, + oldElemValue, + useCheckedValue, + checkedValue, + updateModel, + updateView; + + if (!isCheckbox && !isRadio) { + return; + } + + checkedValue = ko.pureComputed(function () { + if (allBindings.has('checkedValue')) { + return ko.utils.unwrapObservable(allBindings.get('checkedValue')); + } else if (allBindings.has('value')) { + return ko.utils.unwrapObservable(allBindings.get('value')); + } + + return element.value; + }); + + isValueArray = isCheckbox && ko.utils.unwrapObservable(valueAccessor()) instanceof Array; + oldElemValue = isValueArray ? checkedValue() : undefined; + useCheckedValue = isRadio || isValueArray; + + /** + * Updates values array if it's necessary. + */ + updateModel = function () { + var isChecked = element.checked, + elemValue = useCheckedValue ? checkedValue() : isChecked, + modelValue; + + if (ko.computedContext.isInitial()) { + return; + } + + if (isRadio && !isChecked) { + return; + } + + modelValue = ko.dependencyDetection.ignore(valueAccessor); + + if (isValueArray) { + if (oldElemValue !== elemValue) { + oldElemValue = elemValue; + } else { + ko.utils.addOrRemoveItem(modelValue, elemValue, isChecked); + } + } else { + ko.expressionRewriting.writeValueToProperty(modelValue, allBindings, 'checked', elemValue, true); + } + }; + + /** + * Updates checkbox state. + */ + updateView = function () { + var modelValue = ko.utils.unwrapObservable(valueAccessor()); + + if (isValueArray) { + element.checked = ko.utils.arrayIndexOf(modelValue, checkedValue()) >= 0; + } else if (isCheckbox) { + element.checked = modelValue; + } else { + element.checked = checkedValue() === modelValue; + } + }; + + ko.computed(updateModel, null, { + disposeWhenNodeIsRemoved: element + }); + + ko.utils.registerEventHandler(element, 'click', updateModel); + + ko.computed(updateView, null, { + disposeWhenNodeIsRemoved: element + }); + } + }; + + ko.expressionRewriting.twoWayBindings.staticChecked = true; +}); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/stop_propagation.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/stop_propagation.js deleted file mode 100644 index 7269d7774a3..00000000000 --- a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/stop_propagation.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -/** Creates stopPropagation binding and registers in to ko.bindingHandlers object */ -define(['ko'], function (ko) { - 'use strict'; - - ko.bindingHandlers.stopPropagation = { - - /** - * Stops propagation on element - * @param {HTMLElement} element - element to apply binding to - */ - init: function (element) { - ko.utils.registerEventHandler(element, 'click', function (event) { - event.cancelBubble = true; - if (event.stopPropagation) { - event.stopPropagation(); - } - }); - } - }; -}); \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/initialize.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/initialize.js index 2b0f3d1fc5d..3ca5a53bbb4 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/ko/initialize.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/initialize.js @@ -7,9 +7,12 @@ define([ 'ko', './template/engine', + 'knockoutjs/knockout-repeat', + 'knockoutjs/knockout-fast-foreach', + 'knockoutjs/knockout-es5', './bind/scope', + './bind/staticChecked', './bind/datepicker', - './bind/stop_propagation', './bind/outer_click', './bind/keyboard', './bind/optgroup', @@ -18,6 +21,7 @@ define([ './bind/after-render', './bind/i18n', './bind/collapsible', + './bind/autoselect', './extender/observable_array', './extender/bound-nodes', './extender/observable_array' diff --git a/app/code/Magento/Ui/view/base/web/js/lib/registry/events.js b/app/code/Magento/Ui/view/base/web/js/lib/registry/events.js index 09c398ef01a..69fcebf547e 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/registry/events.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/registry/events.js @@ -9,10 +9,13 @@ define([ ], function (_, utils) { 'use strict'; + /** + * @constructor + */ function Events(storage) { this.id = 0, - this.requests = new Map() + this.requests = new Map(); this.map = {}; this.storage = storage; diff --git a/app/code/Magento/Ui/view/base/web/js/lib/registry/registry.js b/app/code/Magento/Ui/view/base/web/js/lib/registry/registry.js index e31839400d0..eb01b49615c 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/registry/registry.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/registry/registry.js @@ -10,6 +10,19 @@ define([ ], function (utils, _, Storage, Events) { 'use strict'; + /** + * Wrapper function used for convinient access to elements. + * See 'async' method for examples of usage and comparison + * with a regular 'get' method. + * + * @param {String} name - Key of the requested element. + * @param {Registry} registry - Instance of a registry + * where to search for the element. + * @param {(Function|String)} [method] - Optional callback function + * or a name of the elements' method which + * will be invoked when element is registered. + * @returns {*} + */ function async(name, registry, method) { var args = _.toArray(arguments).slice(3); @@ -24,6 +37,9 @@ define([ } } + /** + * @constructor + */ function Registry() { this.storage = new Storage(); this.events = new Events(this.storage); @@ -35,15 +51,12 @@ define([ /** * Retrieves data from registry. * - * @param {(String|Array)} elems - - * An array of elements' names or a string of names divided by spaces. - * @param {Function} [callback] - - * Callback function that will be triggered - * when all of the elements are registered. - * @returns {Array|*|Undefined} - * Returns either an array of elements - * or an element itself if only is requested. - * If callback function is specified then returns 'undefined'. + * @param {(String|Array)} elems - An array of elements' names or + * a string of names divided by spaces. + * @param {Function} [callback] - Callback function that will be invoked + * when all of the requested elements are registered. + * @returns {Array|*|Undefined} An array of elements + * or an element itself if only one was requested. */ get: function (elems, callback) { var records; @@ -61,12 +74,12 @@ define([ } }, - /** + /** * Sets data to registry. * * @param {String} elem - Elements' name. * @param {*} value - Value that will be assigned to the element. - * @returns {registry} Chainable. + * @returns {Registry} Chainable. */ set: function (elem, value) { this.storage.set(elem, value); @@ -77,9 +90,10 @@ define([ /** * Removes specified elements from a storage. - * @param {(String|Array)} elems - - * An array of elements' names or a string of names divided by spaces. - * @returns {registry} Chainable. + * + * @param {(String|Array)} elems - An array of elements' names or + * a string of names divided by spaces. + * @returns {Registry} Chainable. */ remove: function (elems) { elems = utils.stringToArray(elems); @@ -89,11 +103,11 @@ define([ return this; }, - /** + /** * Checks whether specified elements has been registered. * - * @param {(String|Array)} elems - - * An array of elements' names or a string of names divided by spaces. + * @param {(String|Array)} elems - An array of elements' names or + * a string of names divided by spaces. * @returns {Boolean} */ has: function (elems) { @@ -102,10 +116,40 @@ define([ return this.storage.has(elems); }, + /** + * Creates a function wrapper for the specified element, + * to provide more convinient access. + * + * @param {String} name - Name of the element. + * @returns {Function} + * + * @example Comparison with a 'get' method on requesting elements. + * var module = registry.async('name'); + * + * module(); + * => registry.get('name'); + * + * @example Requesting an element with a callback. + * module(function (component) {}); + * + * => registry.get('name', function (component) {}); + * + * @example Requesting an element and invoking its' method. + * module('trigger', true); + * + * => registry.get('name', function (component) { + * component.trigger(true); + * }); + */ async: function (name) { return async.bind(null, name, this); }, + /** + * Creates new instance of a Registry. + * + * @returns {Registry} New instance. + */ create: function () { return new Registry; } diff --git a/app/code/Magento/Ui/view/base/web/js/lib/registry/storage.js b/app/code/Magento/Ui/view/base/web/js/lib/registry/storage.js index ae3063cb07c..5012eba16a5 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/registry/storage.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/registry/storage.js @@ -7,6 +7,9 @@ define([ ], function () { 'use strict'; + /** + * @constructor + */ function Storage() { this.data = new Map(); } diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/cells/actions.html b/app/code/Magento/Ui/view/base/web/templates/grid/cells/actions.html index 22105aed42f..653696ed6fd 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/cells/actions.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/cells/actions.html @@ -4,50 +4,49 @@ * See COPYING.txt for license details. */ --> +<!-- ko if: $col.isSingle($row()._rowIndex) --> +<a + class="action-menu-item" + data-bind=" + repeat: { + foreach: $col.getVisibleActions($row()._rowIndex), + item: '$action' + }" + data-repeat-bind=" + attr: { + href: $action().href + }, + click: $col.getActionHandler($action()), + text: $action().label" + ></a> +<!-- /ko --> -<td data-bind="visible: visible" class="data-grid-actions-cell"> - <!-- ko if: isSingle(row._rowIndex) --> - <!-- ko foreach: getVisibleActions(row._rowIndex) --> - <a - class="action-menu-item" +<!-- ko if: $col.isMultiple($row()._rowIndex) --> +<div + class="action-select-wrap" + data-bind="collapsible"> + <button class="action-select" data-bind="toggleCollapsible"> + <span data-bind="i18n: 'Select'"></span> + </button> + <ul + class="action-menu" data-bind=" - attr: { - href: $data.href - }, - click: $parent.isHandlerRequired(index, rowIndex) ? - $parent.applyAction.bind($parent, index, rowIndex) : - false, - text: $data.label"></a> - <!-- /ko --> - <!-- /ko --> - - <!-- ko if: isMultiple(row._rowIndex) --> - <div - class="action-select-wrap" - data-bind="collapsible"> - <button class="action-select" data-bind="toggleCollapsible"> - <span data-bind="i18n: 'Select'"></span> - </button> - <ul - class="action-menu" - data-bind="css: { - '_active': $collapsible.opened - }, - foreach: getVisibleActions(row._rowIndex)" - > - <li> - <a - class="action-menu-item" - data-bind=" - attr: { - href: $data.href - }, - click: $parent.isHandlerRequired(index, rowIndex) ? - $parent.applyAction.bind($parent, index, rowIndex) : - false, - text: $data.label"></a> - </li> - </ul> - </div> - <!-- /ko --> -</td> + css: {'_active': $collapsible.opened}"> + <li + data-bind=" + repeat: { + foreach: $col.getVisibleActions($row()._rowIndex), + item: '$action' + }"> + <a + class="action-menu-item" + data-bind=" + attr: { + href: $action().href + }, + click: $col.getActionHandler($action()), + text: $action().label"></a> + </li> + </ul> +</div> +<!-- /ko --> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/cells/html.html b/app/code/Magento/Ui/view/base/web/templates/grid/cells/html.html index 9d5226a5e3c..5e48189716a 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/cells/html.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/cells/html.html @@ -4,16 +4,7 @@ * See COPYING.txt for license details. */ --> -<td - data-bind=" - visible: visible, - css: { _dragging: dragging }, - click: hasFieldAction() ? - applyFieldAction.bind($data, row._rowIndex) : - false" - data-action="grid-row-edit"> - <div - data-bind="html: getLabel(row[field.index])" - class="data-grid-cell-content"> - </div> -</td> +<div + class="data-grid-cell-content" + data-bind="html: $col.getLabel($row())"> +</div> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/cells/multiselect.html b/app/code/Magento/Ui/view/base/web/templates/grid/cells/multiselect.html index 242c651f006..f0964a155e1 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/cells/multiselect.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/cells/multiselect.html @@ -4,20 +4,16 @@ * See COPYING.txt for license details. */ --> - -<td class="data-grid-checkbox-cell" data-bind="visible: visible"> - <label class="data-grid-checkbox-cell-inner"> - <input - class="admin__control-checkbox" - type="checkbox" - data-action="select-row" - data-bind=" - disable: disabled.indexOf(row[indexField]) != -1, - checked: selected, - value: row[indexField], - attr: { - id: 'check' + row[indexField] - }"> - <label data-bind="attr: {for: 'check' + row[indexField]}"></label> - </label> -</td> +<label class="data-grid-checkbox-cell-inner"> + <input + class="admin__control-checkbox" + type="checkbox" + data-action="select-row" + data-bind=" + staticChecked: $col.selected, + checkedValue: $row()[$col.indexField], + attr: { + id: 'check' + $row()[$col.indexField] + }"> + <label data-bind="attr: {for: 'check' + $row()[$col.indexField]}"></label> +</label> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/cells/text.html b/app/code/Magento/Ui/view/base/web/templates/grid/cells/text.html index 3544f503de6..bdd0d673514 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/cells/text.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/cells/text.html @@ -4,17 +4,7 @@ * See COPYING.txt for license details. */ --> -<td - data-bind=" - visible: visible, - css: { _dragging: dragging }, - click: hasFieldAction() ? - applyFieldAction.bind($data, row._rowIndex) : - false" - data-action="grid-row-edit"> - <div - data-bind=" - text: getLabel(row[field.index])" - class="data-grid-cell-content"> - </div> -</td> +<div + class="data-grid-cell-content" + data-bind="text: $col.getLabel($row())"> +</div> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/cells/thumbnail.html b/app/code/Magento/Ui/view/base/web/templates/grid/cells/thumbnail.html index d8ce11138de..e45dd5eabc3 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/cells/thumbnail.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/cells/thumbnail.html @@ -4,12 +4,11 @@ * See COPYING.txt for license details. */ --> -<td class="data-grid-thumbnail-cell" - data-bind="visible: visible, click: isPreviewAvailable() ? preview.bind($data, row, $parentContext.$index()) : false" - data-action="grid-row-edit"> - <img src="" class="admin__control-thumbnail" data-bind=" - attr: { - src: getSrc(row), - alt: getAlt(row) - }"/> -</td> +<img + class="admin__control-thumbnail" + data-bind=" + attr: { + src: $col.getSrc($row()), + alt: $col.getAlt($row()) + } + "/> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/columns/multiselect.html b/app/code/Magento/Ui/view/base/web/templates/grid/columns/multiselect.html index 4606d8e27b9..8caad7bfc09 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/columns/multiselect.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/columns/multiselect.html @@ -5,7 +5,7 @@ */ --> -<th class="data-grid-multicheck-cell" data-bind="visible: visible"> +<th class="data-grid-multicheck-cell"> <div class="action-multicheck-wrap" data-bind="css: {'_disabled': !totalRecords()}, @@ -36,4 +36,4 @@ </li> </ul> </div> -</th> +</th> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/columns/text.html b/app/code/Magento/Ui/view/base/web/templates/grid/columns/text.html index dfd36be3f73..318cb9d0942 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/columns/text.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/columns/text.html @@ -10,13 +10,12 @@ css: { '_sortable': sortable, '_draggable': draggable, - '_ascend': sorting() === 'asc', - '_descend': sorting() === 'desc' + '_ascend': sorting === 'asc', + '_descend': sorting === 'desc' }, - click: sort, - visible: visible"> + click: sort"> <span class="data-grid-cell-content" data-bind="text: label"> </span> -</th> +</th> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/controls/bookmarks/bookmarks.html b/app/code/Magento/Ui/view/base/web/templates/grid/controls/bookmarks/bookmarks.html index 850f3c2fce7..8dcb904750d 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/controls/bookmarks/bookmarks.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/controls/bookmarks/bookmarks.html @@ -15,15 +15,63 @@ data-bind="toggleCollapsible" data-toggle="dropdown" aria-haspopup="true"> - <span class="admin__action-dropdown-text" - data-bind="i18n: activeView() ? activeView().label() : 'Default View' "></span> + <span + class="admin__action-dropdown-text" + data-bind="text: activeView.label"></span> </button> <ul class="admin__action-dropdown-menu"> - <!-- ko foreach: elems --> - <!-- ko template: getTemplate() --><!-- /ko --> - <!-- /ko --> - <li data-bind="visible: hasChanges" class="action-dropdown-menu-action action-dropdown-menu-item-last"> - <a href="" data-bind="click: createNewView, i18n: 'Save Current View'"></a> + <li + data-bind="repeat: { + foreach: viewsArray, + item: '$view' + }" + data-repeat-bind=" + css: { + _edit: isEditing($view().index) + }, + outerClick: endEdit.bind($data, $view().index), + template: viewTmpl + "> + </li> + <li data-bind=" + visible: hasChanges, + outerClick: hideCustom.bind($data), + css: { + _edit: customVisible, + 'action-dropdown-menu-action action-dropdown-menu-item-last': !customVisible + } + "> + <a href="" + data-bind=" + visible: !customVisible, + click: showCustom, + i18n: 'Save View As...' + "></a> + <div class="action-dropdown-menu-item-edit" data-bind="visible: customVisible"> + <input + class="admin__control-text" + data-bind=" + value: customLabel, + autoselect, + hasFocus: isCustomVisible(), + keyboard: { + 13: applyCustom.bind($data), + 27: hideCustom.bind($data) + }" + type="text"> + <div class="action-dropdown-menu-item-actions"> + <button + class="action-submit" + data-bind=" + attr: { + title: $t('Save all changes') + }, + click: applyCustom" + type="button"> + <span data-bind="i18n: 'Submit'"></span> + </button> + </div> + </div> </li> </ul> -</div> +</div> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/controls/bookmarks/view.html b/app/code/Magento/Ui/view/base/web/templates/grid/controls/bookmarks/view.html index 707fad8eabb..6aa2fc95562 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/controls/bookmarks/view.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/controls/bookmarks/view.html @@ -4,52 +4,70 @@ * See COPYING.txt for license details. */ --> -<li - data-bind="css: {_edit: editing}, outerClick: endEdit.bind($data)"> - <!-- ko if: editable --> - <div class="action-dropdown-menu-item-edit"> - <input - class="admin__control-text" +<!-- ko if: $view().editable --> +<div + class="action-dropdown-menu-item-edit"> + <input + class="admin__control-text" + data-bind=" + value: $view().value, + hasFocus: isEditing($view().index), + autoselect, + attr: { + placeholder: $view().label + }, + keyboard: { + 13: updateAndSave.bind($data, $view().index), + 27: endEdit.bind($data, $view().index) + }" + type="text"> + <button + class="action-submit" + data-bind=" + attr: { + title: $t('Save all changes') + }, + click: updateAndSave.bind($data, $view().index)" + type="button"> + <span data-bind="i18n: 'Submit'"></span> + </button> + <div class="action-dropdown-menu-item-actions"> + <button data-bind=" - value: value, - hasFocus: editing(), attr: { - placeholder: label + title: $t('Delete bookmark') }, - keyboard: { - 13: function(){ $collapsible.close(); $parent.saveView($data) } - }" - type="text"> + click: removeView.bind($data, $view().index)" + class="action-delete" + type="button"> + <span data-bind="i18n: 'Delete'"></span> + </button> + </div> +</div> +<!-- /ko --> + +<div class="action-dropdown-menu-item"> + <a + class="action-dropdown-menu-link" + href="" + data-bind=" + text: $view().label, + click: applyView.bind($data, $view().index), + closeCollapsible"> + </a> + + <!-- ko if: $view().editable --> + <div class="action-dropdown-menu-item-actions"> <button - class="action-submit" - data-bind="click: $parent.saveView.bind($parent, $data), closeCollapsible, attr: {title: $t('Save all changes')}" + class="action-edit" + data-bind=" + attr: { + title: $t('Edit bookmark') + }, + click: editView.bind($data, $view().index)" type="button"> - <span data-bind="i18n: 'Submit'"></span> + <span data-bind="i18n: 'Edit'"></span> </button> - <div class="action-dropdown-menu-item-actions"> - <button - data-bind="click: $parent.removeView.bind($parent, $data), closeCollapsible, attr: {title: $t('Delete bookmark')}" - class="action-delete" - type="button"> - <span data-bind="i18n: 'Delete'"></span> - </button> - </div> </div> <!-- /ko --> - <div class="action-dropdown-menu-item"> - <a - class="action-dropdown-menu-link" - href="" - data-bind="text: label, click: function(){ active(true); }, closeCollapsible"></a> - <!-- ko if: editable --> - <div class="action-dropdown-menu-item-actions"> - <button - class="action-edit" - data-bind="click: startEdit, attr: {title: $t('Edit bookmark')}" - type="button"> - <span data-bind="i18n: 'Edit'"></span> - </button> - </div> - <!-- /ko --> - </div> -</li> +</div> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/controls/columns.html b/app/code/Magento/Ui/view/base/web/templates/grid/controls/columns.html index e2dcc3d8163..2eff0b40307 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/controls/columns.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/controls/columns.html @@ -19,21 +19,21 @@ <div class="admin__action-dropdown-menu-header"> <span data-bind="text: getHeaderMessage()"></span> </div> - <div class="admin__action-dropdown-menu-content" data-bind="foreach: elems"> - <div class="admin__field-option"> + <div class="admin__action-dropdown-menu-content"> + <div class="admin__field-option" data-bind="repeat: {foreach: elems, item: '$col'}"> <input class="admin__control-checkbox" type="checkbox" data-bind=" attr: { - id: ++ko.bindingHandlers['uniqueName'].currentIndex + '_uid' + id: ++ko.bindingHandlers['uniqueName'].currentIndex + '_uid' }, - disable: $parent.isDisabled($data), - checked: visible"/> + disable: isDisabled($col()), + checked: $col().visible"/> <label class="admin__field-label" data-bind=" - text: label, + text: $col().label, attr: { for: ko.bindingHandlers['uniqueName'].currentIndex + '_uid' }"></label> @@ -52,4 +52,4 @@ </div> </div> </div> -</div> +</div> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/exportButton.html b/app/code/Magento/Ui/view/base/web/templates/grid/exportButton.html index 84df5efc722..3585d6cb5e2 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/exportButton.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/exportButton.html @@ -52,4 +52,4 @@ </button> </div> </div> -</div> +</div> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/filters/chips.html b/app/code/Magento/Ui/view/base/web/templates/grid/filters/chips.html index e396c223d8a..11ef2a9dda5 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/filters/chips.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/filters/chips.html @@ -6,7 +6,9 @@ --> <div class="admin__data-grid-filters-current" - data-bind="css: {_show: hasData()}"> + data-bind="css: { + _show: hasPreviews() + }"> <div class="admin__current-filters-title-wrap"> <span class="admin__current-filters-title" @@ -50,7 +52,7 @@ i18n: 'Clear all', click: clear, attr: { - 'data-action': hasData() ? 'grid-filter-reset' : '' + 'data-action': hasPreviews() ? 'grid-filter-reset' : '' }" ></button> </div> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/filters/filters.html b/app/code/Magento/Ui/view/base/web/templates/grid/filters/filters.html index 655e4dfbdad..06ca73a0cfb 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/filters/filters.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/filters/filters.html @@ -63,4 +63,4 @@ </button> </div> </div> -</div> +</div> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/listing.html b/app/code/Magento/Ui/view/base/web/templates/grid/listing.html index 1a1428162c1..6e05a9c304b 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/listing.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/listing.html @@ -6,27 +6,39 @@ --> <div class="admin__data-grid-wrap" data-role="grid-wrapper"> <table class="data-grid" data-role="grid"> - <thead> - <tr data-bind="foreach: elems"> - <!-- ko template: getHeader() --><!-- /ko --> + <thead> + <tr data-bind=" + fastForEach: { + data: getVisible(), + as: '$col' + }"> + <!-- ko template: $col.getHeader() --><!-- /ko --> </tr> </thead> <tbody> - <!-- ko foreach: { data: rows, as: 'row' } --> - <tr class="data-row" - data-role="row" - data-bind=" - css: { - '_odd-row': !!($index() % 2) - }, - foreach: { - data: $parent.elems, - as: 'field' - } - "> - <!-- ko template: getBody() --><!-- /ko --> - </tr> - <!-- /ko --> + <tr class="data-row" + data-bind=" + repeat: { + foreach: rows, + item: '$row' + }" + data-repeat-bind=" + css: { + '_odd-row': !!($index % 2) + } + "> + <!-- ko fastForEach: { + data: getVisible(), + as: '$col' + } --> + <td data-bind=" + css: $col.getFieldClass(), + click: $col.getFieldHandler($row()), + template: $col.getBody() + "> + </td> + <!-- /ko --> + </tr> <!-- ko ifnot: hasData() --> <tr class="data-grid-tr-no-data"> @@ -36,4 +48,4 @@ <!-- /ko --> </tbody> </table> -</div> +</div> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/paging-total.html b/app/code/Magento/Ui/view/base/web/templates/grid/paging-total.html index 0c79131bc2f..bd2e821dbec 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/paging-total.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/paging-total.html @@ -6,8 +6,8 @@ --> <div class="admin__control-support-text"> - <span data-bind="i18n: totalRecords"></span> records found + <span data-bind="text: totalRecords"></span> records found <!-- ko if: totalSelected --> - (<span data-bind="i18n: totalSelected"></span> selected) + (<span data-bind="text: totalSelected"></span> selected) <!-- /ko --> -</div> +</div> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/paging/paging.html b/app/code/Magento/Ui/view/base/web/templates/grid/paging/paging.html index 1961cfff11a..10f1ff7fd63 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/paging/paging.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/paging/paging.html @@ -13,9 +13,14 @@ <button class="action-previous" type="button" - data-bind="css: { disabled: isFirst() }, - click: prev"> - <span>Previous page</span> + data-bind=" + attr: { + title: $t('Previous Page') + }, + css: { + disabled: isFirst() + }, + click: prev"> </button> <input id="pageCurrent" @@ -27,9 +32,14 @@ </label> <button class="action-next" - data-bind="css: { disabled: isLast() }, - click: next"> - <span>Next page</span> + data-bind=" + attr: { + title: $t('Next Page') + }, + css: { + disabled: isLast() + }, + click: next"> </button> </div> -</div> +</div> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/paging/sizes.html b/app/code/Magento/Ui/view/base/web/templates/grid/paging/sizes.html index dcc9692793e..87f093270a5 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/paging/sizes.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/paging/sizes.html @@ -23,47 +23,58 @@ aria-haspopup="true"> <span data-bind="i18n: 'Select'"></span> </button> - <div class="selectmenu-items" data-bind="css: {_active: $collapsible.opened}, - outerClick: discardAll.bind($data)" - data-role="toolbar-collapsible-menu"> + <div + class="selectmenu-items" + data-role="toolbar-collapsible-menu" + data-bind=" + css: {_active: $collapsible.opened}, + outerClick: discardAll.bind($data)"> <ul> - <!-- ko foreach: optionsArray --> - <li data-bind="css: { _edit: $parent.isEditing(value)}"> - <!-- ko if: $data.editable --> + <li + data-bind=" + repeat: { + foreach: optionsArray, + item: '$size' + }" + data-repeat-bind=" + css: { + _edit: isEditing($size().value) + }"> + <!-- ko if: $size().editable --> <div class="selectmenu-item-edit" - data-bind="keyboard: {13: $parent.updateSize.bind($parent, value, false)}"> + data-bind="keyboard: {13: updateSize.bind($data, $size().value, false)}"> <input class="admin__control-text" type="text" - data-bind="value: _value, hasFocus: $parent.isEditing(value)"/> + data-bind="value: $size()._value, hasFocus: isEditing($size().value)"/> <button class="action-save" - data-bind="click: $parent.updateSize.bind($parent, value, false)" + data-bind="click: updateSize.bind($data, $size().value, false)" type="button"> <span data-bind="i18n: 'Save'"></span> </button> <button class="action-delete" - data-bind="click: $parent.removeSize.bind($parent, value, false)" + data-bind="click: removeSize.bind($data, $size().value, false)" type="button"> <span data-bind="i18n: 'Delete'"></span> </button> </div> <!-- /ko --> + <div class="selectmenu-item"> <button type="button" class="selectmenu-item-action" - data-bind="text: label, click: $parent.setSize.bind($parent, value)"></button> - <!-- ko if: $data.editable --> + data-bind="text: $size().label, click: setSize.bind($data, $size().value)"></button> + + <!-- ko if: $size().editable --> <button class="action-edit" data-bind=" click: function () { - $parent - .discardCustom() - .edit(value); + discardCustom().edit($size().value); }" type="button"> <span data-bind="i18n: 'Edit'"></span> @@ -71,7 +82,6 @@ <!-- /ko --> </div> </li> - <!-- /ko --> <li data-bind="css: { _edit: isCustomVisible() }"> <div class="selectmenu-item"> @@ -102,4 +112,4 @@ </ul> </div> </div> -<label class="admin__control-support-text" data-bind="i18n: 'per page', attr: { for: index }"></label> +<label class="admin__control-support-text" data-bind="i18n: 'per page', attr: { for: index }"></label> \ No newline at end of file diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/sticky/listing.html b/app/code/Magento/Ui/view/base/web/templates/grid/sticky/listing.html index fc0c43a4b43..037677c496c 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/sticky/listing.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/sticky/listing.html @@ -7,7 +7,12 @@ <div class="admin__data-grid-wrap" data-role="sticky-el-root"> <table class="data-grid"> <thead> - <tr data-bind="foreach: elems"> + <tr data-bind=" + foreach: { + data: visibleColumns, + as: '$col' + }" + > <!-- ko template: getHeader() --><!-- /ko --> </tr> </thead> diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/column.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/column.test.js index ce954310178..3d1e7dcfe0d 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/column.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/columns/column.test.js @@ -24,17 +24,17 @@ define([ describe('sort method', function () { it('apply sorting first time', function () { column.sort(true); - expect(column.sorting()).toBe('asc'); + expect(column.sorting).toBe('asc'); }); it('apply sorting in other direction', function () { column.sort(true).sort(true); - expect(column.sorting()).toBe('desc'); + expect(column.sorting).toBe('desc'); }); it('remove sorting', function () { column.sort(false); - expect(column.sorting()).toBeFalsy(); + expect(column.sorting).toBeFalsy(); }); }); diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/paging/paging.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/paging/paging.test.js index 43df6800027..ef72deab470 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/paging/paging.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/paging/paging.test.js @@ -17,7 +17,7 @@ define([ paging = new Paging({ pageSize: 2 }); - paging.totalRecords(7); + paging.totalRecords = 7; }); describe('Normalize method', function () { @@ -42,73 +42,73 @@ define([ describe('countPages method', function () { it('correct number of pages', function () { paging.countPages(); - expect(paging.pages()).toBe(4); + expect(paging.pages).toBe(4); }); it('if no records', function () { - paging.totalRecords(0); + paging.totalRecords = 0; paging.countPages(); - expect(paging.pages()).toBe(1); + expect(paging.pages).toBe(1); }); }); describe('page manipualations', function () { it('setPage method', function () { paging.setPage(2); - expect(paging.current()).toBe(2); + expect(paging.current).toBe(2); }); it('next', function () { - paging.current(1); + paging.current = 1; paging.next(); - expect(paging.current()).toBe(2); + expect(paging.current).toBe(2); }); it('next out of boundary', function () { - paging.current(4); + paging.current = 4; paging.next(); - expect(paging.current()).toBe(4); + expect(paging.current).toBe(4); }); it('prev', function () { - paging.current(4); + paging.current = 4; paging.prev(); - expect(paging.current()).toBe(3); + expect(paging.current).toBe(3); }); it('prev out of boundary', function () { - paging.current(1); + paging.current = 1; paging.prev(); - expect(paging.current()).toBe(1); + expect(paging.current).toBe(1); }); it('goFirst', function () { paging.goFirst(); - expect(paging.current()).toBe(1); + expect(paging.current).toBe(1); }); it('goLast', function () { paging.goLast(); - expect(paging.current()).toBe(4); + expect(paging.current).toBe(4); }); it('isFirst for 1st page', function () { - paging.current(1); + paging.current = 1; expect(paging.isFirst()).toBeTruthy(); }); it('isFirst for 2nd page', function () { - paging.current(2); + paging.current = 2; expect(paging.isFirst()).toBeFalsy(); }); it('isLast for last page', function () { - paging.current(4); + paging.current = 4; expect(paging.isLast()).toBeTruthy(); }); it('isLast for first page', function () { - paging.current(1); + paging.current = 1; expect(paging.isLast()).toBeFalsy(); }); }); @@ -116,22 +116,22 @@ define([ describe('countPages method', function () { it('correct number of pages', function () { paging.countPages(); - expect(paging.pages()).toBe(4); + expect(paging.pages).toBe(4); }); it('if no records', function () { - paging.totalRecords(0); + paging.totalRecords = 0; paging.countPages(); - expect(paging.pages()).toBe(1); + expect(paging.pages).toBe(1); }); }); describe('onPagesChange method', function () { it('pages amount became less than current', function () { - paging.current(4); - expect(paging.current()).toBe(4); + paging.current = 4; + expect(paging.current).toBe(4); paging.onPagesChange(2); - expect(paging.current()).toBe(2); + expect(paging.current).toBe(2); }); }); @@ -141,7 +141,7 @@ define([ }); it('read from _current', function () { - paging.current(2); + paging.current = 2; expect(paging._current()).toBe(2); }); @@ -149,7 +149,7 @@ define([ spyOn(paging, 'normalize').and.callThrough(); spyOn(paging._current, 'notifySubscribers'); paging._current(4); - expect(paging.current()).toBe(4); + expect(paging.current).toBe(4); expect(paging._current.notifySubscribers).toHaveBeenCalledWith(4); }); }); diff --git a/lib/web/knockoutjs/knockout-es5.js b/lib/web/knockoutjs/knockout-es5.js new file mode 100644 index 00000000000..899edd79aa3 --- /dev/null +++ b/lib/web/knockoutjs/knockout-es5.js @@ -0,0 +1,468 @@ +/*! + * Knockout ES5 plugin - https://github.com/SteveSanderson/knockout-es5 + * Copyright (c) Steve Sanderson + * MIT license + */ + +(function(global, undefined) { + 'use strict'; + + var ko; + + // Model tracking + // -------------- + // + // This is the central feature of Knockout-ES5. We augment model objects by converting properties + // into ES5 getter/setter pairs that read/write an underlying Knockout observable. This means you can + // use plain JavaScript syntax to read/write the property while still getting the full benefits of + // Knockout's automatic dependency detection and notification triggering. + // + // For comparison, here's Knockout ES3-compatible syntax: + // + // var firstNameLength = myModel.user().firstName().length; // Read + // myModel.user().firstName('Bert'); // Write + // + // ... versus Knockout-ES5 syntax: + // + // var firstNameLength = myModel.user.firstName.length; // Read + // myModel.user.firstName = 'Bert'; // Write + + // `ko.track(model)` converts each property on the given model object into a getter/setter pair that + // wraps a Knockout observable. Optionally specify an array of property names to wrap; otherwise we + // wrap all properties. If any of the properties are already observables, we replace them with + // ES5 getter/setter pairs that wrap your original observable instances. In the case of readonly + // ko.computed properties, we simply do not define a setter (so attempted writes will be ignored, + // which is how ES5 readonly properties normally behave). + // + // By design, this does *not* recursively walk child object properties, because making literally + // everything everywhere independently observable is usually unhelpful. When you do want to track + // child object properties independently, define your own class for those child objects and put + // a separate ko.track call into its constructor --- this gives you far more control. + /** + * @param {object} obj + * @param {object|array.<string>} propertyNamesOrSettings + * @param {boolean} propertyNamesOrSettings.deep Use deep track. + * @param {array.<string>} propertyNamesOrSettings.fields Array of property names to wrap. + * todo: @param {array.<string>} propertyNamesOrSettings.exclude Array of exclude property names to wrap. + * todo: @param {function(string, *):boolean} propertyNamesOrSettings.filter Function to filter property + * names to wrap. A function that takes ... params + * @return {object} + */ + function track(obj, propertyNamesOrSettings) { + if (!obj || typeof obj !== 'object') { + throw new Error('When calling ko.track, you must pass an object as the first parameter.'); + } + + var propertyNames; + + if ( isPlainObject(propertyNamesOrSettings) ) { + // defaults + propertyNamesOrSettings.deep = propertyNamesOrSettings.deep || false; + propertyNamesOrSettings.fields = propertyNamesOrSettings.fields || Object.getOwnPropertyNames(obj); + propertyNamesOrSettings.lazy = propertyNamesOrSettings.lazy || false; + + wrap(obj, propertyNamesOrSettings.fields, propertyNamesOrSettings); + } else { + propertyNames = propertyNamesOrSettings || Object.getOwnPropertyNames(obj); + wrap(obj, propertyNames, {}); + } + + return obj; + } + + // fix for ie + var rFunctionName = /^function\s*([^\s(]+)/; + function getFunctionName( ctor ){ + if (ctor.name) { + return ctor.name; + } + return (ctor.toString().trim().match( rFunctionName ) || [])[1]; + } + + function canTrack(obj) { + return obj && typeof obj === 'object' && getFunctionName(obj.constructor) === 'Object'; + } + + function createPropertyDescriptor(originalValue, prop, map) { + var isObservable = ko.isObservable(originalValue); + var isArray = !isObservable && Array.isArray(originalValue); + var observable = isObservable ? originalValue + : isArray ? ko.observableArray(originalValue) + : ko.observable(originalValue); + + map[prop] = function () { return observable; }; + + // add check in case the object is already an observable array + if (isArray || (isObservable && 'push' in observable)) { + notifyWhenPresentOrFutureArrayValuesMutate(ko, observable); + } + + return { + configurable: true, + enumerable: true, + get: observable, + set: ko.isWriteableObservable(observable) ? observable : undefined + }; + } + + function createLazyPropertyDescriptor(originalValue, prop, map) { + if (ko.isObservable(originalValue)) { + // no need to be lazy if we already have an observable + return createPropertyDescriptor(originalValue, prop, map); + } + + var observable; + + function getOrCreateObservable(value, writing) { + if (observable) { + return writing ? observable(value) : observable; + } + + if (Array.isArray(value)) { + observable = ko.observableArray(value); + notifyWhenPresentOrFutureArrayValuesMutate(ko, observable); + return observable; + } + + return (observable = ko.observable(value)); + } + + map[prop] = function () { return getOrCreateObservable(originalValue); }; + return { + configurable: true, + enumerable: true, + get: function () { return getOrCreateObservable(originalValue)(); }, + set: function (value) { getOrCreateObservable(value, true); } + }; + } + + function wrap(obj, props, options) { + if (!props.length) { + return; + } + + var allObservablesForObject = getAllObservablesForObject(obj, true); + var descriptors = {}; + + props.forEach(function (prop) { + // Skip properties that are already tracked + if (prop in allObservablesForObject) { + return; + } + + // Skip properties where descriptor can't be redefined + if (Object.getOwnPropertyDescriptor(obj, prop).configurable === false){ + return; + } + + var originalValue = obj[prop]; + descriptors[prop] = (options.lazy ? createLazyPropertyDescriptor : createPropertyDescriptor) + (originalValue, prop, allObservablesForObject); + + if (options.deep && canTrack(originalValue)) { + wrap(originalValue, Object.keys(originalValue), options); + } + }); + + Object.defineProperties(obj, descriptors); + } + + function isPlainObject( obj ){ + return !!obj && typeof obj === 'object' && obj.constructor === Object; + } + + // Lazily created by `getAllObservablesForObject` below. Has to be created lazily because the + // WeakMap factory isn't available until the module has finished loading (may be async). + var objectToObservableMap; + + // Gets or creates the hidden internal key-value collection of observables corresponding to + // properties on the model object. + function getAllObservablesForObject(obj, createIfNotDefined) { + if (!objectToObservableMap) { + objectToObservableMap = weakMapFactory(); + } + + var result = objectToObservableMap.get(obj); + if (!result && createIfNotDefined) { + result = {}; + objectToObservableMap.set(obj, result); + } + return result; + } + + // Removes the internal references to observables mapped to the specified properties + // or the entire object reference if no properties are passed in. This allows the + // observables to be replaced and tracked again. + function untrack(obj, propertyNames) { + if (!objectToObservableMap) { + return; + } + + if (arguments.length === 1) { + objectToObservableMap['delete'](obj); + } else { + var allObservablesForObject = getAllObservablesForObject(obj, false); + if (allObservablesForObject) { + propertyNames.forEach(function(propertyName) { + delete allObservablesForObject[propertyName]; + }); + } + } + } + + // Computed properties + // ------------------- + // + // The preceding code is already sufficient to upgrade ko.computed model properties to ES5 + // getter/setter pairs (or in the case of readonly ko.computed properties, just a getter). + // These then behave like a regular property with a getter function, except they are smarter: + // your evaluator is only invoked when one of its dependencies changes. The result is cached + // and used for all evaluations until the next time a dependency changes). + // + // However, instead of forcing developers to declare a ko.computed property explicitly, it's + // nice to offer a utility function that declares a computed getter directly. + + // Implements `ko.defineProperty` + function defineComputedProperty(obj, propertyName, evaluatorOrOptions) { + var ko = this, + computedOptions = { owner: obj, deferEvaluation: true }; + + if (typeof evaluatorOrOptions === 'function') { + computedOptions.read = evaluatorOrOptions; + } else { + if ('value' in evaluatorOrOptions) { + throw new Error('For ko.defineProperty, you must not specify a "value" for the property. ' + + 'You must provide a "get" function.'); + } + + if (typeof evaluatorOrOptions.get !== 'function') { + throw new Error('For ko.defineProperty, the third parameter must be either an evaluator function, ' + + 'or an options object containing a function called "get".'); + } + + computedOptions.read = evaluatorOrOptions.get; + computedOptions.write = evaluatorOrOptions.set; + } + + obj[propertyName] = ko.computed(computedOptions); + track.call(ko, obj, [propertyName]); + return obj; + } + + // Array handling + // -------------- + // + // Arrays are special, because unlike other property types, they have standard mutator functions + // (`push`/`pop`/`splice`/etc.) and it's desirable to trigger a change notification whenever one of + // those mutator functions is invoked. + // + // Traditionally, Knockout handles this by putting special versions of `push`/`pop`/etc. on observable + // arrays that mutate the underlying array and then trigger a notification. That approach doesn't + // work for Knockout-ES5 because properties now return the underlying arrays, so the mutator runs + // in the context of the underlying array, not any particular observable: + // + // // Operates on the underlying array value + // myModel.someCollection.push('New value'); + // + // To solve this, Knockout-ES5 detects array values, and modifies them as follows: + // 1. Associates a hidden subscribable with each array instance that it encounters + // 2. Intercepts standard mutators (`push`/`pop`/etc.) and makes them trigger the subscribable + // Then, for model properties whose values are arrays, the property's underlying observable + // subscribes to the array subscribable, so it can trigger a change notification after mutation. + + // Given an observable that underlies a model property, watch for any array value that might + // be assigned as the property value, and hook into its change events + function notifyWhenPresentOrFutureArrayValuesMutate(ko, observable) { + var watchingArraySubscription = null; + ko.computed(function () { + // Unsubscribe to any earlier array instance + if (watchingArraySubscription) { + watchingArraySubscription.dispose(); + watchingArraySubscription = null; + } + + // Subscribe to the new array instance + var newArrayInstance = observable(); + if (newArrayInstance instanceof Array) { + watchingArraySubscription = startWatchingArrayInstance(ko, observable, newArrayInstance); + } + }); + } + + // Listens for array mutations, and when they happen, cause the observable to fire notifications. + // This is used to make model properties of type array fire notifications when the array changes. + // Returns a subscribable that can later be disposed. + function startWatchingArrayInstance(ko, observable, arrayInstance) { + var subscribable = getSubscribableForArray(ko, arrayInstance); + return subscribable.subscribe(observable); + } + + // Lazily created by `getSubscribableForArray` below. Has to be created lazily because the + // WeakMap factory isn't available until the module has finished loading (may be async). + var arraySubscribablesMap; + + // Gets or creates a subscribable that fires after each array mutation + function getSubscribableForArray(ko, arrayInstance) { + if (!arraySubscribablesMap) { + arraySubscribablesMap = weakMapFactory(); + } + + var subscribable = arraySubscribablesMap.get(arrayInstance); + if (!subscribable) { + subscribable = new ko.subscribable(); + arraySubscribablesMap.set(arrayInstance, subscribable); + + var notificationPauseSignal = {}; + wrapStandardArrayMutators(arrayInstance, subscribable, notificationPauseSignal); + addKnockoutArrayMutators(ko, arrayInstance, subscribable, notificationPauseSignal); + } + + return subscribable; + } + + // After each array mutation, fires a notification on the given subscribable + function wrapStandardArrayMutators(arrayInstance, subscribable, notificationPauseSignal) { + ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'].forEach(function(fnName) { + var origMutator = arrayInstance[fnName]; + arrayInstance[fnName] = function() { + var result = origMutator.apply(this, arguments); + if (notificationPauseSignal.pause !== true) { + subscribable.notifySubscribers(this); + } + return result; + }; + }); + } + + // Adds Knockout's additional array mutation functions to the array + function addKnockoutArrayMutators(ko, arrayInstance, subscribable, notificationPauseSignal) { + ['remove', 'removeAll', 'destroy', 'destroyAll', 'replace'].forEach(function(fnName) { + // Make it a non-enumerable property for consistency with standard Array functions + Object.defineProperty(arrayInstance, fnName, { + enumerable: false, + value: function() { + var result; + + // These additional array mutators are built using the underlying push/pop/etc. + // mutators, which are wrapped to trigger notifications. But we don't want to + // trigger multiple notifications, so pause the push/pop/etc. wrappers and + // delivery only one notification at the end of the process. + notificationPauseSignal.pause = true; + try { + // Creates a temporary observableArray that can perform the operation. + result = ko.observableArray.fn[fnName].apply(ko.observableArray(arrayInstance), arguments); + } + finally { + notificationPauseSignal.pause = false; + } + subscribable.notifySubscribers(arrayInstance); + return result; + } + }); + }); + } + + // Static utility functions + // ------------------------ + // + // Since Knockout-ES5 sets up properties that return values, not observables, you can't + // trivially subscribe to the underlying observables (e.g., `someProperty.subscribe(...)`), + // or tell them that object values have mutated, etc. To handle this, we set up some + // extra utility functions that can return or work with the underlying observables. + + // Returns the underlying observable associated with a model property (or `null` if the + // model or property doesn't exist, or isn't associated with an observable). This means + // you can subscribe to the property, e.g.: + // + // ko.getObservable(model, 'propertyName') + // .subscribe(function(newValue) { ... }); + function getObservable(obj, propertyName) { + if (!obj || typeof obj !== 'object') { + return null; + } + + var allObservablesForObject = getAllObservablesForObject(obj, false); + if (allObservablesForObject && propertyName in allObservablesForObject) { + return allObservablesForObject[propertyName](); + } + + return null; + } + + // Returns a boolean indicating whether the property on the object has an underlying + // observables. This does the check in a way not to create an observable if the + // object was created with lazily created observables + function isTracked(obj, propertyName) { + if (!obj || typeof obj !== 'object') { + return false; + } + + var allObservablesForObject = getAllObservablesForObject(obj, false); + return !!allObservablesForObject && propertyName in allObservablesForObject; + } + + // Causes a property's associated observable to fire a change notification. Useful when + // the property value is a complex object and you've modified a child property. + function valueHasMutated(obj, propertyName) { + var observable = getObservable(obj, propertyName); + + if (observable) { + observable.valueHasMutated(); + } + } + + // Module initialisation + // --------------------- + // + // When this script is first evaluated, it works out what kind of module loading scenario + // it is in (Node.js or a browser `<script>` tag), stashes a reference to its dependencies + // (currently that's just the WeakMap shim), and then finally attaches itself to whichever + // instance of Knockout.js it can find. + + // A function that returns a new ES6-compatible WeakMap instance (using ES5 shim if needed). + // Instantiated by prepareExports, accounting for which module loader is being used. + var weakMapFactory; + + // Extends a Knockout instance with Knockout-ES5 functionality + function attachToKo(ko) { + ko.track = track; + ko.untrack = untrack; + ko.getObservable = getObservable; + ko.valueHasMutated = valueHasMutated; + ko.defineProperty = defineComputedProperty; + + // todo: test it, maybe added it to ko. directly + ko.es5 = { + getAllObservablesForObject: getAllObservablesForObject, + notifyWhenPresentOrFutureArrayValuesMutate: notifyWhenPresentOrFutureArrayValuesMutate, + isTracked: isTracked + }; + } + + // Determines which module loading scenario we're in, grabs dependencies, and attaches to KO + function prepareExports() { + if (typeof exports === 'object' && typeof module === 'object') { + // Node.js case - load KO and WeakMap modules synchronously + ko = require('knockout'); + var WM = require('../lib/weakmap'); + attachToKo(ko); + weakMapFactory = function() { return new WM(); }; + module.exports = ko; + } else if (typeof define === 'function' && define.amd) { + define(['knockout'], function(koModule) { + ko = koModule; + attachToKo(koModule); + weakMapFactory = function() { return new global.WeakMap(); }; + return koModule; + }); + } else if ('ko' in global) { + // Non-module case - attach to the global instance, and assume a global WeakMap constructor + ko = global.ko; + attachToKo(global.ko); + weakMapFactory = function() { return new global.WeakMap(); }; + } + } + + prepareExports(); + +})(this); \ No newline at end of file diff --git a/lib/web/knockoutjs/knockout-fast-foreach.js b/lib/web/knockoutjs/knockout-fast-foreach.js new file mode 100644 index 00000000000..7289d46d1c2 --- /dev/null +++ b/lib/web/knockoutjs/knockout-fast-foreach.js @@ -0,0 +1,331 @@ +/*! + Knockout Fast Foreach v0.4.1 (2015-07-17T14:06:15.974Z) + By: Brian M Hunt (C) 2015 + License: MIT + + Adds `fastForEach` to `ko.bindingHandlers`. +*/ +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + define(['knockout'], factory); + } else if (typeof exports === 'object') { + module.exports = factory(require('knockout')); + } else { + root.KnockoutFastForeach = factory(root.ko); + } +}(this, function (ko) { + "use strict"; +// index.js +// -------- +// Fast For Each +// +// Employing sound techniques to make a faster Knockout foreach binding. +// -------- + +// Utilities + +// from https://github.com/jonschlinkert/is-plain-object +function isPlainObject(o) { + return !!o && typeof o === 'object' && o.constructor === Object; +} + +// From knockout/src/virtualElements.js +var commentNodesHaveTextProperty = document && document.createComment("test").text === "<!--test-->"; +var startCommentRegex = commentNodesHaveTextProperty ? /^<!--\s*ko(?:\s+([\s\S]+))?\s*-->$/ : /^\s*ko(?:\s+([\s\S]+))?\s*$/; +var supportsDocumentFragment = document && typeof document.createDocumentFragment === "function"; +function isVirtualNode(node) { + return (node.nodeType === 8) && startCommentRegex.test(commentNodesHaveTextProperty ? node.text : node.nodeValue); +} + + +// Get a copy of the (possibly virtual) child nodes of the given element, +// put them into a container, then empty the given node. +function makeTemplateNode(sourceNode) { + var container = document.createElement("div"); + var parentNode; + if (sourceNode.content) { + // For e.g. <template> tags + parentNode = sourceNode.content; + } else if (sourceNode.tagName === 'SCRIPT') { + parentNode = document.createElement("div"); + parentNode.innerHTML = sourceNode.text; + } else { + // Anything else e.g. <div> + parentNode = sourceNode; + } + ko.utils.arrayForEach(ko.virtualElements.childNodes(parentNode), function (child) { + // FIXME - This cloneNode could be expensive; we may prefer to iterate over the + // parentNode children in reverse (so as not to foul the indexes as childNodes are + // removed from parentNode when inserted into the container) + if (child) { + container.insertBefore(child.cloneNode(true), null); + } + }); + return container; +} + +function insertAllAfter(containerNode, nodeOrNodeArrayToInsert, insertAfterNode) { + var frag, len, i; + // poor man's node and array check, should be enough for this + if (typeof nodeOrNodeArrayToInsert.nodeType !== "undefined" && typeof nodeOrNodeArrayToInsert.length === "undefined") { + throw new Error("Expected a single node or a node array"); + } + + if (typeof nodeOrNodeArrayToInsert.nodeType !== "undefined") { + ko.virtualElements.insertAfter(containerNode, nodeOrNodeArrayToInsert, insertAfterNode); + return; + } + + if (nodeOrNodeArrayToInsert.length === 1) { + ko.virtualElements.insertAfter(containerNode, nodeOrNodeArrayToInsert[0], insertAfterNode); + return; + } + + if (supportsDocumentFragment) { + frag = document.createDocumentFragment(); + + for (i = 0, len = nodeOrNodeArrayToInsert.length; i !== len; ++i) { + frag.appendChild(nodeOrNodeArrayToInsert[i]); + } + ko.virtualElements.insertAfter(containerNode, frag, insertAfterNode); + } else { + // Nodes are inserted in reverse order - pushed down immediately after + // the last node for the previous item or as the first node of element. + for (i = nodeOrNodeArrayToInsert.length - 1; i >= 0; --i) { + var child = nodeOrNodeArrayToInsert[i]; + if (!child) { + return; + } + ko.virtualElements.insertAfter(containerNode, child, insertAfterNode); + } + } +} + +// Mimic a KO change item 'add' +function valueToChangeAddItem(value, index) { + return { + status: 'added', + value: value, + index: index + }; +} + +function isAdditionAdjacentToLast(changeIndex, arrayChanges) { + return changeIndex > 0 && + changeIndex < arrayChanges.length && + arrayChanges[changeIndex].status === "added" && + arrayChanges[changeIndex - 1].status === "added" && + arrayChanges[changeIndex - 1].index === arrayChanges[changeIndex].index - 1; +} + +function FastForEach(spec) { + this.element = spec.element; + this.container = isVirtualNode(this.element) ? + this.element.parentNode : this.element; + this.$context = spec.$context; + this.data = spec.data; + this.as = spec.as; + this.noContext = spec.noContext; + this.templateNode = makeTemplateNode( + spec.name ? document.getElementById(spec.name).cloneNode(true) : spec.element + ); + this.afterQueueFlush = spec.afterQueueFlush; + this.beforeQueueFlush = spec.beforeQueueFlush; + this.changeQueue = []; + this.lastNodesList = []; + this.indexesToDelete = []; + this.rendering_queued = false; + + // Remove existing content. + ko.virtualElements.emptyNode(this.element); + + // Prime content + var primeData = ko.unwrap(this.data); + if (primeData.map) { + this.onArrayChange(primeData.map(valueToChangeAddItem)); + } + + // Watch for changes + if (ko.isObservable(this.data)) { + if (!this.data.indexOf) { + // Make sure the observable is trackable. + this.data = this.data.extend({trackArrayChanges: true}); + } + this.changeSubs = this.data.subscribe(this.onArrayChange, this, 'arrayChange'); + } +} + + +FastForEach.animateFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || window.msRequestAnimationFrame || + function(cb) { return window.setTimeout(cb, 1000 / 60); }; + + +FastForEach.prototype.dispose = function () { + if (this.changeSubs) { + this.changeSubs.dispose(); + } +}; + + +// If the array changes we register the change. +FastForEach.prototype.onArrayChange = function (changeSet) { + var self = this; + var changeMap = { + added: [], + deleted: [] + }; + for (var i = 0, len = changeSet.length; i < len; i++) { + // the change is appended to a last change info object when both are 'added' and have indexes next to each other + // here I presume that ko is sending changes in monotonic order (in index variable) which happens to be true, tested with push and splice with multiple pushed values + if (isAdditionAdjacentToLast(i, changeSet)) { + var batchValues = changeMap.added[changeMap.added.length - 1].values; + if (!batchValues) { + // transform the last addition into a batch addition object + var lastAddition = changeMap.added.pop(); + var batchAddition = { + isBatch: true, + status: 'added', + index: lastAddition.index, + values: [lastAddition.value] + }; + batchValues = batchAddition.values; + changeMap.added.push(batchAddition); + } + batchValues.push(changeSet[i].value); + } else { + changeMap[changeSet[i].status].push(changeSet[i]); + } + } + if (changeMap.deleted.length > 0) { + this.changeQueue.push.apply(this.changeQueue, changeMap.deleted); + this.changeQueue.push({status: 'clearDeletedIndexes'}); + } + this.changeQueue.push.apply(this.changeQueue, changeMap.added); + // Once a change is registered, the ticking count-down starts for the processQueue. + if (this.changeQueue.length > 0 && !this.rendering_queued) { + this.rendering_queued = true; + FastForEach.animateFrame.call(window, function () { self.processQueue(); }); + } +}; + + +// Reflect all the changes in the queue in the DOM, then wipe the queue. +FastForEach.prototype.processQueue = function () { + var self = this; + + // Callback so folks can do things before the queue flush. + if (typeof this.beforeQueueFlush === 'function') { + this.beforeQueueFlush(this.changeQueue); + } + + ko.utils.arrayForEach(this.changeQueue, function (changeItem) { + // console.log(self.data(), "CI", JSON.stringify(changeItem, null, 2), JSON.stringify($(self.element).text())) + self[changeItem.status](changeItem); + // console.log(" ==> ", JSON.stringify($(self.element).text())) + }); + this.rendering_queued = false; + // Callback so folks can do things. + if (typeof this.afterQueueFlush === 'function') { + this.afterQueueFlush(this.changeQueue); + } + this.changeQueue = []; +}; + + +// Process a changeItem with {status: 'added', ...} +FastForEach.prototype.added = function (changeItem) { + var index = changeItem.index; + var valuesToAdd = changeItem.isBatch ? changeItem.values : [changeItem.value]; + var referenceElement = this.lastNodesList[index - 1] || null; + // gather all childnodes for a possible batch insertion + var allChildNodes = []; + + for (var i = 0, len = valuesToAdd.length; i < len; ++i) { + var templateClone = this.templateNode.cloneNode(true); + var childContext; + + if (this.noContext) { + childContext = this.$context.extend({ + '$item': valuesToAdd[i] + }); + } else { + childContext = this.$context.createChildContext(valuesToAdd[i], this.as || null); + } + + // apply bindings first, and then process child nodes, because bindings can add childnodes + ko.applyBindingsToDescendants(childContext, templateClone); + + var childNodes = ko.virtualElements.childNodes(templateClone); + // Note discussion at https://github.com/angular/angular.js/issues/7851 + allChildNodes.push.apply(allChildNodes, Array.prototype.slice.call(childNodes)); + this.lastNodesList.splice(index + i, 0, childNodes[childNodes.length - 1]); + } + + insertAllAfter(this.element, allChildNodes, referenceElement); +}; + + +// Process a changeItem with {status: 'deleted', ...} +FastForEach.prototype.deleted = function (changeItem) { + var index = changeItem.index; + var ptr = this.lastNodesList[index], + // We use this.element because that will be the last previous node + // for virtual element lists. + lastNode = this.lastNodesList[index - 1] || this.element; + do { + ptr = ptr.previousSibling; + ko.removeNode((ptr && ptr.nextSibling) || ko.virtualElements.firstChild(this.element)); + } while (ptr && ptr !== lastNode); + // The "last node" in the DOM from which we begin our delets of the next adjacent node is + // now the sibling that preceded the first node of this item. + this.lastNodesList[index] = this.lastNodesList[index - 1]; + this.indexesToDelete.push(index); +}; + + +// We batch our deletion of item indexes in our parallel array. +// See brianmhunt/knockout-fast-foreach#6/#8 +FastForEach.prototype.clearDeletedIndexes = function () { + // We iterate in reverse on the presumption (following the unit tests) that KO's diff engine + // processes diffs (esp. deletes) monotonically ascending i.e. from index 0 -> N. + for (var i = this.indexesToDelete.length - 1; i >= 0; --i) { + this.lastNodesList.splice(this.indexesToDelete[i], 1); + } + this.indexesToDelete = []; +}; + + +ko.bindingHandlers.fastForEach = { + // Valid valueAccessors: + // [] + // ko.observable([]) + // ko.observableArray([]) + // ko.computed + // {data: array, name: string, as: string} + init: function init(element, valueAccessor, bindings, vm, context) { + var value = valueAccessor(), + ffe; + if (isPlainObject(value)) { + value.element = value.element || element; + value.$context = context; + ffe = new FastForEach(value); + } else { + ffe = new FastForEach({ + element: element, + data: ko.unwrap(context.$rawData) === value ? context.$rawData : value, + $context: context + }); + } + ko.utils.domNodeDisposal.addDisposeCallback(element, function () { + ffe.dispose(); + }); + return {controlsDescendantBindings: true}; + }, + + // Export for testing, debugging, and overloading. + FastForEach: FastForEach +}; + +ko.virtualElements.allowedBindings.fastForEach = true; +})); \ No newline at end of file diff --git a/lib/web/knockoutjs/knockout-repeat.js b/lib/web/knockoutjs/knockout-repeat.js new file mode 100644 index 00000000000..3bebceb9252 --- /dev/null +++ b/lib/web/knockoutjs/knockout-repeat.js @@ -0,0 +1,216 @@ +// REPEAT binding for Knockout http://knockoutjs.com/ +// (c) Michael Best +// License: MIT (http://www.opensource.org/licenses/mit-license.php) +// Version 2.1.0 + +(function(factory) { + if (typeof define === 'function' && define.amd) { + // [1] AMD anonymous module + define(['knockout'], factory); + } else if (typeof exports === 'object') { + // [2] commonJS + factory(require('knockout')); + } else { + // [3] No module loader (plain <script> tag) - put directly in global namespace + factory(window.ko); + } +})(function(ko) { + +if (!ko.virtualElements) + throw Error('Repeat requires at least Knockout 2.1'); + +var ko_bindingFlags = ko.bindingFlags || {}; +var ko_unwrap = ko.utils.unwrapObservable; + +var koProtoName = '__ko_proto__'; + +if (ko.version >= "3.0.0") { + // In Knockout 3.0.0, use the node preprocessor to replace a node with a repeat binding with a virtual element + var provider = ko.bindingProvider.instance, previousPreprocessFn = provider.preprocessNode; + provider.preprocessNode = function(node) { + var newNodes, nodeBinding; + if (!previousPreprocessFn || !(newNodes = previousPreprocessFn.call(this, node))) { + if (node.nodeType === 1 && (nodeBinding = node.getAttribute('data-bind'))) { + if (/^\s*repeat\s*:/.test(nodeBinding)) { + var leadingComment = node.ownerDocument.createComment('ko ' + nodeBinding), + trailingComment = node.ownerDocument.createComment('/ko'); + node.parentNode.insertBefore(leadingComment, node); + node.parentNode.insertBefore(trailingComment, node.nextSibling); + node.removeAttribute('data-bind'); + newNodes = [leadingComment, node, trailingComment]; + } + } + } + return newNodes; + }; +} + +ko.virtualElements.allowedBindings.repeat = true; +ko.bindingHandlers.repeat = { + flags: ko_bindingFlags.contentBind | ko_bindingFlags.canUseVirtual, + init: function(element, valueAccessor, allBindingsAccessor, xxx, bindingContext) { + + // Read and set fixed options--these options cannot be changed + var repeatParam = ko_unwrap(valueAccessor()); + if (repeatParam && typeof repeatParam == 'object' && !('length' in repeatParam)) { + var repeatIndex = repeatParam.index, + repeatData = repeatParam.item, + repeatStep = repeatParam.step, + repeatReversed = repeatParam.reverse, + repeatBind = repeatParam.bind, + repeatInit = repeatParam.init, + repeatUpdate = repeatParam.update; + } + // Set default values for options that need it + repeatIndex = repeatIndex || '$index'; + repeatData = repeatData || ko.bindingHandlers.repeat.itemName || '$item'; + repeatStep = repeatStep || 1; + repeatReversed = repeatReversed || false; + + var parent = element.parentNode, placeholder; + if (element.nodeType == 8) { // virtual element + // Extract the "children" and find the single element node + var childNodes = ko.utils.arrayFilter(ko.virtualElements.childNodes(element), function(node) { return node.nodeType == 1;}); + if (childNodes.length !== 1) { + throw Error("Repeat binding requires a single element to repeat"); + } + ko.virtualElements.emptyNode(element); + + // The placeholder is the closing comment normally, or the opening comment if reversed + placeholder = repeatReversed ? element : element.nextSibling; + // The element to repeat is the contained element + element = childNodes[0]; + } else { // regular element + // First clean the element node and remove node's binding + var origBindString = element.getAttribute('data-bind'); + ko.cleanNode(element); + element.removeAttribute('data-bind'); + + // Original element is no longer needed: delete it and create a placeholder comment + placeholder = element.ownerDocument.createComment('ko_repeatplaceholder ' + origBindString); + parent.replaceChild(placeholder, element); + } + + // extract and remove a data-repeat-bind attribute, if present + if (!repeatBind) { + repeatBind = element.getAttribute('data-repeat-bind'); + if (repeatBind) { + element.removeAttribute('data-repeat-bind'); + } + } + + // Make a copy of the element node to be copied for each repetition + var cleanNode = element.cloneNode(true); + if (typeof repeatBind == "string") { + cleanNode.setAttribute('data-bind', repeatBind); + repeatBind = null; + } + + // Set up persistent data + var lastRepeatCount = 0, + notificationObservable = ko.observable(), + repeatArray, arrayObservable; + + if (repeatInit) { + repeatInit(parent); + } + + var subscribable = ko.computed(function() { + function makeArrayItemAccessor(index) { + var f = function(newValue) { + var item = repeatArray[index]; + // Reading the value of the item + if (!arguments.length) { + notificationObservable(); // for dependency tracking + return ko_unwrap(item); + } + // Writing a value to the item + if (ko.isObservable(item)) { + item(newValue); + } else if (arrayObservable && arrayObservable.splice) { + arrayObservable.splice(index, 1, newValue); + } else { + repeatArray[index] = newValue; + } + return this; + }; + // Pretend that our accessor function is an observable + f[koProtoName] = ko.observable; + return f; + } + + function makeBinding(item, index, context) { + return repeatArray + ? function() { return repeatBind.call(bindingContext.$data, item, index, context); } + : function() { return repeatBind.call(bindingContext.$data, index, context); } + } + + // Read and set up variable options--these options can change and will update the binding + var paramObservable = valueAccessor(), repeatParam = ko_unwrap(paramObservable), repeatCount = 0; + if (repeatParam && typeof repeatParam == 'object') { + if ('length' in repeatParam) { + repeatArray = repeatParam; + repeatCount = repeatArray.length; + } else { + if ('foreach' in repeatParam) { + repeatArray = ko_unwrap(paramObservable = repeatParam.foreach); + if (repeatArray && typeof repeatArray == 'object' && 'length' in repeatArray) { + repeatCount = repeatArray.length || 0; + } else { + repeatCount = repeatArray || 0; + repeatArray = null; + } + } + // If a count value is provided (>0), always output that number of items + if ('count' in repeatParam) + repeatCount = ko_unwrap(repeatParam.count) || repeatCount; + // If a limit is provided, don't output more than the limit + if ('limit' in repeatParam) + repeatCount = Math.min(repeatCount, ko_unwrap(repeatParam.limit)) || repeatCount; + } + arrayObservable = repeatArray && ko.isObservable(paramObservable) ? paramObservable : null; + } else { + repeatCount = repeatParam || 0; + } + + // Remove nodes from end if array is shorter + for (; lastRepeatCount > repeatCount; lastRepeatCount-=repeatStep) { + ko.removeNode(repeatReversed ? placeholder.nextSibling : placeholder.previousSibling); + } + + // Notify existing nodes of change + notificationObservable.notifySubscribers(); + + // Add nodes to end if array is longer (also initially populates nodes) + for (; lastRepeatCount < repeatCount; lastRepeatCount+=repeatStep) { + // Clone node and add to document + var newNode = cleanNode.cloneNode(true); + parent.insertBefore(newNode, repeatReversed ? placeholder.nextSibling : placeholder); + newNode.setAttribute('data-repeat-index', lastRepeatCount); + + // Apply bindings to inserted node + if (repeatArray && repeatData == '$data') { + var newContext = bindingContext.createChildContext(makeArrayItemAccessor(lastRepeatCount)); + } else { + var newContext = bindingContext.extend(); + if (repeatArray) + newContext[repeatData] = makeArrayItemAccessor(lastRepeatCount); + } + newContext[repeatIndex] = lastRepeatCount; + if (repeatBind) { + var result = ko.applyBindingsToNode(newNode, makeBinding(newContext[repeatData], lastRepeatCount, newContext), newContext, true), + shouldBindDescendants = result && result.shouldBindDescendants; + } + if (!repeatBind || (result && shouldBindDescendants !== false)) { + ko.applyBindings(newContext, newNode); + } + } + if (repeatUpdate) { + repeatUpdate(parent); + } + }, null, {disposeWhenNodeIsRemoved: placeholder}); + + return { controlsDescendantBindings: true, subscribable: subscribable }; + } +}; +}); \ No newline at end of file diff --git a/lib/web/ko/ko.js b/lib/web/knockoutjs/knockout.js similarity index 100% rename from lib/web/ko/ko.js rename to lib/web/knockoutjs/knockout.js -- GitLab From 14783b021dd26137a0bc8cbb58ba1aa4b9acf3e1 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Tue, 29 Sep 2015 17:16:56 +0300 Subject: [PATCH 152/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- .../Ui/view/base/web/js/modal/alert.js | 13 +++++++++ .../Ui/view/base/web/js/modal/prompt.js | 28 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/app/code/Magento/Ui/view/base/web/js/modal/alert.js b/app/code/Magento/Ui/view/base/web/js/modal/alert.js index 63592e94040..dfd27afff85 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/alert.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/alert.js @@ -2,6 +2,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ + define([ 'jquery', 'underscore', @@ -16,16 +17,28 @@ define([ modalClass: 'confirm', title: $.mage.__('Attention'), actions: { + + /** + * Callback always - called on all actions. + */ always: function () {} }, buttons: [{ text: $.mage.__('OK'), class: 'action-secondary action-accept', + + /** + * Click handler. + */ click: function () { this.closeModal(true); } }] }, + + /** + * Close modal window. + */ closeModal: function () { this.options.actions.always(); this.element.bind('alertclosed', _.bind(this._remove, this)); diff --git a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js index c50b2668359..2ccfb330d88 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js @@ -18,8 +18,20 @@ define([ promptField: '[data-role="promptField"]', value: '', actions: { + + /** + * Callback always - called on all actions. + */ always: function () {}, + + /** + * Callback confirm. + */ confirm: function () {}, + + /** + * Callback cancel. + */ cancel: function () {} }, buttons: [{ @@ -36,6 +48,10 @@ define([ } }] }, + + /** + * Create widget. + */ _create: function () { this.options.focus = this.options.promptField; this._super(); @@ -43,13 +59,25 @@ define([ this.modal.find(this.options.modalCloseBtn).off().on('click', _.bind(this.closeModal, this, false)); this.openModal(); }, + + /** + * Remove widget + */ _remove: function () { this.modal.remove(); }, + + /** + * Open modal window + */ openModal: function () { this._super(); this.modal.find(this.options.promptField).val(this.options.value); }, + + /** + * Close modal window + */ closeModal: function (result) { var value; -- GitLab From 26704be2755a263b9c522b6c1638c7814268b2e0 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Tue, 29 Sep 2015 17:42:09 +0300 Subject: [PATCH 153/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- .../Magento/Ui/view/base/web/js/modal/prompt.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js index 2ccfb330d88..7fc43693cc6 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js @@ -37,12 +37,20 @@ define([ buttons: [{ text: $.mage.__('Cancel'), class: 'action-tertiary action-dismiss', + + /** + * Click handler. + */ click: function () { this.closeModal(); } }, { text: $.mage.__('OK'), class: 'action-secondary action-accept', + + /** + * Click handler. + */ click: function () { this.closeModal(true); } @@ -55,7 +63,11 @@ define([ _create: function () { this.options.focus = this.options.promptField; this._super(); - this.modal.find(this.options.modalContent).append('<input data-role="promptField" type="text"/>'); + this.modal.find(this.options.modalContent).append( + '<div class="prompt-message">' + + '<input data-role="promptField" class="admin__control-text" type="text"/>' + + '</div>' + ); this.modal.find(this.options.modalCloseBtn).off().on('click', _.bind(this.closeModal, this, false)); this.openModal(); }, -- GitLab From 6ec8e5376e55608c496704262f5a7bf252ed9b10 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Tue, 29 Sep 2015 17:56:12 +0300 Subject: [PATCH 154/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- .../testsuite/Magento/Test/Js/_files/blacklist/magento.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt b/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt index f7c90d331d3..253159a4ab4 100644 --- a/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt +++ b/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt @@ -475,9 +475,6 @@ app/code/Magento/Ui/view/base/web/js/lib/view/utils/async.js app/code/Magento/Ui/view/base/web/js/lib/view/utils/bindings.js app/code/Magento/Ui/view/base/web/js/lib/view/utils/dom-observer.js app/code/Magento/Ui/view/base/web/js/lib/view/utils/raf.js -app/code/Magento/Ui/view/base/web/js/modal/alert.js -app/code/Magento/Ui/view/base/web/js/modal/confirm.js -app/code/Magento/Ui/view/base/web/js/modal/modal.js app/code/Magento/Ui/view/base/web/js/modal/modalToggle.js app/code/Magento/Ui/view/frontend/web/js/model/messageList.js app/code/Magento/Ui/view/frontend/web/js/model/messages.js -- GitLab From 0bc7b4b6e6dd2c0f1e9edc2a0cb0ba0aae686041 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Tue, 29 Sep 2015 17:58:40 +0300 Subject: [PATCH 155/420] MAGETWO-42995: Stabilize functional tests --- .../view/adminhtml/web/order/create/form.js | 19 ++++++++++--------- .../adminhtml/web/order/create/scripts.js | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/app/code/Magento/Sales/view/adminhtml/web/order/create/form.js b/app/code/Magento/Sales/view/adminhtml/web/order/create/form.js index 1e041234a79..1bcd3103237 100644 --- a/app/code/Magento/Sales/view/adminhtml/web/order/create/form.js +++ b/app/code/Magento/Sales/view/adminhtml/web/order/create/form.js @@ -4,17 +4,18 @@ */ define([ - "jquery", - "Magento_Sales/order/create/scripts", - 'domReady!' -], function(jQuery){ - var $el = jQuery('#edit_form'), - config, - baseUrl, + 'jquery', + 'Magento_Sales/order/create/scripts' +], function (jQuery) { + 'use strict'; + + var $el = jQuery('#edit_form'), + config, + baseUrl, order, payment; - if( !$el.length || !$el.data('order-config') ){ + if (!$el.length || !$el.data('order-config')) { return; } @@ -23,7 +24,7 @@ define([ order = new AdminOrder(config); order.setLoadBaseUrl(baseUrl); - + payment = { switchMethod: order.switchPaymentMethod.bind(order) }; diff --git a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js index 2bc3526cace..29c5a354c4b 100644 --- a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js +++ b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js @@ -36,7 +36,7 @@ AdminOrder.prototype = { this.isOnlyVirtualProduct = false; this.excludedPaymentMethods = []; this.summarizePrice = true; - window.addEventListener('load', (function(){ + Event.observe(window, 'load', (function(){ this.dataArea = new OrderFormArea('data', $(this.getAreaId('data')), this); this.itemsArea = Object.extend(new OrderFormArea('items', $(this.getAreaId('items')), this), { addControlButton: function(button){ -- GitLab From a7b856c06948a5a3e7a579d12ac24fc7930b0681 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Tue, 29 Sep 2015 18:22:36 +0300 Subject: [PATCH 156/420] MAGETWO-42762: Improve performance of table rendering - Clean up static tests blacklist --- .../base/web/js/form/element/multiselect.js | 8 +-- .../view/base/web/js/form/element/textarea.js | 6 +- .../Magento/Ui/view/base/web/js/grid/dnd.js | 2 +- .../Ui/view/base/web/js/grid/editing/bulk.js | 2 +- .../view/base/web/js/grid/editing/client.js | 2 +- .../Magento/Ui/view/base/web/js/lib/class.js | 1 + .../view/base/web/js/lib/component/manip.js | 1 + .../base/web/js/lib/ko/bind/after-render.js | 1 + .../web/js/lib/ko/extender/bound-nodes.js | 2 + .../js/lib/ko/template/observable_source.js | 12 ++-- .../view/base/web/js/lib/view/utils/async.js | 3 +- .../Test/Js/_files/blacklist/magento.txt | 59 ------------------- lib/web/mage/requirejs/mixins.js | 1 + lib/web/mage/requirejs/static.js | 1 + lib/web/mage/utils/compare.js | 2 + lib/web/mage/utils/objects.js | 2 - lib/web/mage/utils/strings.js | 3 +- lib/web/mage/utils/template.js | 4 ++ lib/web/mage/utils/wrapper.js | 1 + 19 files changed, 35 insertions(+), 78 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/multiselect.js b/app/code/Magento/Ui/view/base/web/js/form/element/multiselect.js index 624d2df5c7e..6c5de791d1e 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/element/multiselect.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/multiselect.js @@ -16,12 +16,11 @@ define([ }, /** - * Calls 'getInitialValue' of parent and if the result of it is not empty - * string, returs it, else returnes caption or first found option's value + * Splits incoming string value. * - * @returns {Array|String} + * @returns {Array} */ - getInitialValue: function () { + normalizeData: function () { var value = this._super(); return _.isString(value) ? value.split(',') : value; @@ -29,6 +28,7 @@ define([ /** * Defines if value has changed + * * @returns {Boolean} */ hasChanged: function () { diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/textarea.js b/app/code/Magento/Ui/view/base/web/js/form/element/textarea.js index b5d263cc344..2731725ae2d 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/element/textarea.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/textarea.js @@ -10,9 +10,9 @@ define([ return Abstract.extend({ defaults: { - cols: 15, - rows: 2, - template: 'ui/form/element/textarea' + cols: 15, + rows: 2, + template: 'ui/form/element/textarea' } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/dnd.js b/app/code/Magento/Ui/view/base/web/js/grid/dnd.js index 217d4bec23a..dd85c33145d 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/dnd.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/dnd.js @@ -212,7 +212,7 @@ define([ return this; } - if (Object.hasOwnProperty(model, 'dragover')) { + if (!Object.hasOwnProperty(model, 'dragover')) { model.track('dragover'); } diff --git a/app/code/Magento/Ui/view/base/web/js/grid/editing/bulk.js b/app/code/Magento/Ui/view/base/web/js/grid/editing/bulk.js index 9fd4e7e6795..f6fcc59213d 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/editing/bulk.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/editing/bulk.js @@ -2,7 +2,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ - + define([ 'underscore', 'mageUtils', diff --git a/app/code/Magento/Ui/view/base/web/js/grid/editing/client.js b/app/code/Magento/Ui/view/base/web/js/grid/editing/client.js index c5bcbeee459..6651a605f05 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/editing/client.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/editing/client.js @@ -2,7 +2,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ - + define([ 'jquery', 'underscore', diff --git a/app/code/Magento/Ui/view/base/web/js/lib/class.js b/app/code/Magento/Ui/view/base/web/js/lib/class.js index 12b70b4a45c..f8191d57a36 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/class.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/class.js @@ -57,6 +57,7 @@ define([ } Class = createConstructor({ + /** * Entry point to the initialization of consturctors' instance. * diff --git a/app/code/Magento/Ui/view/base/web/js/lib/component/manip.js b/app/code/Magento/Ui/view/base/web/js/lib/component/manip.js index 8bc3f881796..e3f2c5f3366 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/component/manip.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/component/manip.js @@ -21,6 +21,7 @@ define([ } return { + /** * Retrieves requested region. * Creates region if it was not created yet diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/after-render.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/after-render.js index 2297f2d5cf1..67a48c89a92 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/after-render.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/after-render.js @@ -8,6 +8,7 @@ define([ 'use strict'; ko.bindingHandlers.afterRender = { + /** * Binding init callback. */ diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/extender/bound-nodes.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/extender/bound-nodes.js index ed7b85b6f41..90605926b04 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/ko/extender/bound-nodes.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/extender/bound-nodes.js @@ -84,6 +84,7 @@ define([ } wrapper.extend(ko, { + /** * Extends kncokouts' 'applyBindings' * to track nodes associated with model. @@ -132,6 +133,7 @@ define([ }); return { + /** * Returns root nodes associated with a model. If callback is provided, * will iterate through all of the present nodes triggering callback diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/template/observable_source.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/template/observable_source.js index d97291dcf15..251163992ba 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/ko/template/observable_source.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/template/observable_source.js @@ -5,16 +5,20 @@ /** * Is being used by knockout template engine to store template to. */ -define(['ko', 'Magento_Ui/js/lib/class'], function(ko, Class) { +define([ + 'ko', + 'uiClass' +], function (ko, Class) { 'use strict'; return Class.extend({ /** * Initializes templateName, _data, nodes properties. + * * @param {template} template - identifier of template */ - initialize: function(template) { + initialize: function (template) { this.templateName = template; this._data = {}; this.nodes = ko.observable([]); @@ -27,7 +31,7 @@ define(['ko', 'Magento_Ui/js/lib/class'], function(ko, Class) { * @param {*} value * @return {*} - if 1 arg provided, returnes _data[key] property */ - data: function(key, value) { + data: function (key, value) { if (arguments.length === 1) { return this._data[key]; } @@ -35,4 +39,4 @@ define(['ko', 'Magento_Ui/js/lib/class'], function(ko, Class) { this._data[key] = value; } }); -}); \ No newline at end of file +}); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/view/utils/async.js b/app/code/Magento/Ui/view/base/web/js/lib/view/utils/async.js index 1b5743cd9d2..6fd7d86e2a3 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/view/utils/async.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/view/utils/async.js @@ -126,7 +126,6 @@ define([ */ function setRootListener(data, component) { boundedNodes.get(component, function (root) { - var ctx = data.ctx || '*' if (!$(root).is(data.ctx || '*')) { return; } @@ -223,7 +222,7 @@ define([ /** * Sets removal listener of the specified nodes. * - * @param {{HTMLElement|Array|ArrayLike}} nodes - Nodes whose removal to track. + * @param ({HTMLElement|Array|ArrayLike}) nodes - Nodes whose removal to track. * @param {Function} fn - Callback that will be invoked when node is removed. */ remove: function (nodes, fn) { diff --git a/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt b/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt index f7c90d331d3..759ea7b2843 100644 --- a/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt +++ b/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt @@ -388,92 +388,41 @@ app/code/Magento/Ui/view/base/web/js/form/client.js app/code/Magento/Ui/view/base/web/js/form/components/area.js app/code/Magento/Ui/view/base/web/js/form/components/collection.js app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js -app/code/Magento/Ui/view/base/web/js/form/components/fieldset.js -app/code/Magento/Ui/view/base/web/js/form/components/group.js app/code/Magento/Ui/view/base/web/js/form/components/html.js app/code/Magento/Ui/view/base/web/js/form/components/tab_group.js app/code/Magento/Ui/view/base/web/js/form/components/tab.js app/code/Magento/Ui/view/base/web/js/form/element/abstract.js -app/code/Magento/Ui/view/base/web/js/form/element/boolean.js -app/code/Magento/Ui/view/base/web/js/form/element/date.js app/code/Magento/Ui/view/base/web/js/form/element/helpers/options.js -app/code/Magento/Ui/view/base/web/js/form/element/multiselect.js app/code/Magento/Ui/view/base/web/js/form/element/post-code.js app/code/Magento/Ui/view/base/web/js/form/element/region.js app/code/Magento/Ui/view/base/web/js/form/element/select.js -app/code/Magento/Ui/view/base/web/js/form/element/textarea.js app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js app/code/Magento/Ui/view/base/web/js/form/form.js app/code/Magento/Ui/view/base/web/js/form/provider.js -app/code/Magento/Ui/view/base/web/js/grid/columns/actions.js -app/code/Magento/Ui/view/base/web/js/grid/columns/column.js -app/code/Magento/Ui/view/base/web/js/grid/columns/date.js -app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js -app/code/Magento/Ui/view/base/web/js/grid/columns/select.js app/code/Magento/Ui/view/base/web/js/grid/columns/thumbnail.js -app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/storage.js -app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/view.js -app/code/Magento/Ui/view/base/web/js/grid/controls/columns.js -app/code/Magento/Ui/view/base/web/js/grid/dnd.js -app/code/Magento/Ui/view/base/web/js/grid/editing/bulk.js -app/code/Magento/Ui/view/base/web/js/grid/editing/client.js -app/code/Magento/Ui/view/base/web/js/grid/editing/editor-view.js -app/code/Magento/Ui/view/base/web/js/grid/editing/editor.js -app/code/Magento/Ui/view/base/web/js/grid/editing/record.js app/code/Magento/Ui/view/base/web/js/grid/export.js -app/code/Magento/Ui/view/base/web/js/grid/filters/chips.js -app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js -app/code/Magento/Ui/view/base/web/js/grid/filters/group.js -app/code/Magento/Ui/view/base/web/js/grid/massactions.js -app/code/Magento/Ui/view/base/web/js/grid/paging/paging.js -app/code/Magento/Ui/view/base/web/js/grid/paging/sizes.js -app/code/Magento/Ui/view/base/web/js/grid/provider.js app/code/Magento/Ui/view/base/web/js/grid/resize.js -app/code/Magento/Ui/view/base/web/js/grid/search/search.js app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js -app/code/Magento/Ui/view/base/web/js/grid/tree-massactions.js -app/code/Magento/Ui/view/base/web/js/lib/class.js -app/code/Magento/Ui/view/base/web/js/lib/collapsible.js -app/code/Magento/Ui/view/base/web/js/lib/component/core.js app/code/Magento/Ui/view/base/web/js/lib/component/links.js -app/code/Magento/Ui/view/base/web/js/lib/component/main.js -app/code/Magento/Ui/view/base/web/js/lib/component/manip.js -app/code/Magento/Ui/view/base/web/js/lib/component/provider.js app/code/Magento/Ui/view/base/web/js/lib/component/traversal.js app/code/Magento/Ui/view/base/web/js/lib/events.js app/code/Magento/Ui/view/base/web/js/lib/key-codes.js -app/code/Magento/Ui/view/base/web/js/lib/ko/bind/after-render.js -app/code/Magento/Ui/view/base/web/js/lib/ko/bind/class.js -app/code/Magento/Ui/view/base/web/js/lib/ko/bind/collapsible.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/datepicker.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/fadeVisible.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/i18n.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/keyboard.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/mage-init.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/optgroup.js -app/code/Magento/Ui/view/base/web/js/lib/ko/bind/outer_click.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/scope.js -app/code/Magento/Ui/view/base/web/js/lib/ko/bind/stop_propagation.js -app/code/Magento/Ui/view/base/web/js/lib/ko/extender/bound-nodes.js app/code/Magento/Ui/view/base/web/js/lib/ko/extender/observable_array.js -app/code/Magento/Ui/view/base/web/js/lib/ko/initialize.js -app/code/Magento/Ui/view/base/web/js/lib/ko/template/engine.js -app/code/Magento/Ui/view/base/web/js/lib/ko/template/observable_source.js app/code/Magento/Ui/view/base/web/js/lib/loader.js -app/code/Magento/Ui/view/base/web/js/lib/registry/events.js -app/code/Magento/Ui/view/base/web/js/lib/registry/registry.js -app/code/Magento/Ui/view/base/web/js/lib/registry/storage.js -app/code/Magento/Ui/view/base/web/js/lib/renderer/renderer.js app/code/Magento/Ui/view/base/web/js/lib/spinner.js app/code/Magento/Ui/view/base/web/js/lib/step-wizard.js app/code/Magento/Ui/view/base/web/js/lib/storage.js app/code/Magento/Ui/view/base/web/js/lib/validation/rules.js app/code/Magento/Ui/view/base/web/js/lib/validation/utils.js app/code/Magento/Ui/view/base/web/js/lib/validation/validator.js -app/code/Magento/Ui/view/base/web/js/lib/view/utils/async.js -app/code/Magento/Ui/view/base/web/js/lib/view/utils/bindings.js -app/code/Magento/Ui/view/base/web/js/lib/view/utils/dom-observer.js app/code/Magento/Ui/view/base/web/js/lib/view/utils/raf.js app/code/Magento/Ui/view/base/web/js/modal/alert.js app/code/Magento/Ui/view/base/web/js/modal/confirm.js @@ -624,10 +573,8 @@ lib/web/mage/mage.js lib/web/mage/menu.js lib/web/mage/popup-window.js lib/web/mage/redirect-url.js -lib/web/mage/requirejs/mixins.js lib/web/mage/requirejs/plugin/id-normalizer.js lib/web/mage/requirejs/resolver.js -lib/web/mage/requirejs/static.js lib/web/mage/smart-keyboard-handler.js lib/web/mage/sticky.js lib/web/mage/storage.js @@ -641,13 +588,7 @@ lib/web/mage/translate-inline.js lib/web/mage/translate.js lib/web/mage/url.js lib/web/mage/utils/arrays.js -lib/web/mage/utils/compare.js -lib/web/mage/utils/main.js lib/web/mage/utils/misc.js -lib/web/mage/utils/objects.js -lib/web/mage/utils/strings.js -lib/web/mage/utils/template.js -lib/web/mage/utils/wrapper.js lib/web/mage/validation.js lib/web/mage/validation/validation.js lib/web/mage/view/composite.js diff --git a/lib/web/mage/requirejs/mixins.js b/lib/web/mage/requirejs/mixins.js index c3cc36a4adf..89baa793374 100644 --- a/lib/web/mage/requirejs/mixins.js +++ b/lib/web/mage/requirejs/mixins.js @@ -89,6 +89,7 @@ define('mixins', [ } return { + /** * Loads specified module along with its' mixins. * diff --git a/lib/web/mage/requirejs/static.js b/lib/web/mage/requirejs/static.js index cb579e80ece..a2ee644942a 100644 --- a/lib/web/mage/requirejs/static.js +++ b/lib/web/mage/requirejs/static.js @@ -158,6 +158,7 @@ define('statistician', [ } return { + /** * Stores keys of 'modules' object to localStorage under 'all' namespace. * diff --git a/lib/web/mage/utils/compare.js b/lib/web/mage/utils/compare.js index 38ec53b205d..2cae7362a21 100644 --- a/lib/web/mage/utils/compare.js +++ b/lib/web/mage/utils/compare.js @@ -185,9 +185,11 @@ define([ addChange(ns, name, 'update', current, old); } } + /*eslint-enable max-depth*/ return { + /** * * @returns {Object} diff --git a/lib/web/mage/utils/objects.js b/lib/web/mage/utils/objects.js index 92b49508b49..4ea214f0dca 100644 --- a/lib/web/mage/utils/objects.js +++ b/lib/web/mage/utils/objects.js @@ -326,8 +326,6 @@ define([ * @param {Number} [maxDepth=7] - Max recursion depth. */ forEachRecursive: function (data, action, maxDepth) { - var prop; - maxDepth = typeof maxDepth === 'number' && !isNaN(maxDepth) ? maxDepth - 1 : 7; if (!_.isFunction(action) || _.isFunction(data) || maxDepth < 0) { diff --git a/lib/web/mage/utils/strings.js b/lib/web/mage/utils/strings.js index 89a9109f99e..8c6f8d329f6 100644 --- a/lib/web/mage/utils/strings.js +++ b/lib/web/mage/utils/strings.js @@ -10,6 +10,7 @@ define([ var jsonRe = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/; return { + /** * Attempts to convert string to one of the primitive values, * or to parse it as a valid json object. @@ -95,7 +96,7 @@ define([ return prefix ? prefix + '.' + part : part; }, - /** + /** * Splits incoming string and returns its' part specified by offset. * * @param {String} parts diff --git a/lib/web/mage/utils/template.js b/lib/web/mage/utils/template.js index 85f2aeb5b03..9f0e5f656c9 100644 --- a/lib/web/mage/utils/template.js +++ b/lib/web/mage/utils/template.js @@ -30,6 +30,7 @@ define([ })(); if (hasStringTmpls) { + /*eslint-disable no-unused-vars, no-eval*/ /** * Evaluates template string using ES6 templates. @@ -41,8 +42,10 @@ define([ template = function (tmpl, $) { return eval('`' + tmpl + '`'); }; + /*eslint-enable no-unused-vars, no-eval*/ } else { + /** * Fallback function used when ES6 templates are not supported. * Uses underscore templates renderer. @@ -106,6 +109,7 @@ define([ } return { + /** * Applies provided data to the template. * diff --git a/lib/web/mage/utils/wrapper.js b/lib/web/mage/utils/wrapper.js index 51985cae415..4a0253701ae 100644 --- a/lib/web/mage/utils/wrapper.js +++ b/lib/web/mage/utils/wrapper.js @@ -43,6 +43,7 @@ define([ var superReg = /\b_super\b/; return { + /** * Wraps target function with a specified wrapper, which will recieve * reference to the original function as a first argument. -- GitLab From a808038580bfac7c74813cefbc900d07303600b3 Mon Sep 17 00:00:00 2001 From: Maxim Medinskiy <mmedinskiy@ebay.com> Date: Mon, 21 Sep 2015 13:40:01 +0300 Subject: [PATCH 157/420] MAGETWO-42838: Combine filter and column components definition --- .../Catalog/Ui/Component/Listing/Columns.php | 25 ++++ .../Catalog/Ui/Component/Listing/Filters.php | 48 ------- .../ui_component/cms_page_listing.xml | 3 + .../Listing/AssociatedProduct/Filters.php | 42 +++--- ...onfigurable_associated_product_listing.xml | 5 +- .../Unit/Ui/Component/Listing/FiltersTest.php | 135 ------------------ .../Customer/Ui/Component/Listing/Columns.php | 28 ++++ .../Customer/Ui/Component/Listing/Filters.php | 55 ------- .../ui_component/customer_listing.xml | 2 +- .../Ui/Component/AbstractComponent.php | 25 ++++ app/code/Magento/Ui/Component/Filters.php | 94 +++++++++++- .../view/base/ui_component/etc/definition.xml | 3 + .../Test/Legacy/_files/obsolete_classes.php | 5 + .../View/Element/UiComponent/Context.php | 20 ++- .../Element/UiComponent/ContextInterface.php | 8 ++ .../Element/UiComponent/ObserverInterface.php | 22 +++ .../Element/UiComponent/PoolInterface.php | 29 ++++ .../View/Element/UiComponent/Processor.php | 106 ++++++++++++++ .../Element/UiComponent/SubjectInterface.php | 35 +++++ .../Element/UiComponent/ProcessorTest.php | 78 ++++++++++ 20 files changed, 507 insertions(+), 261 deletions(-) delete mode 100644 app/code/Magento/Catalog/Ui/Component/Listing/Filters.php delete mode 100644 app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/FiltersTest.php delete mode 100644 app/code/Magento/Customer/Ui/Component/Listing/Filters.php create mode 100644 lib/internal/Magento/Framework/View/Element/UiComponent/ObserverInterface.php create mode 100644 lib/internal/Magento/Framework/View/Element/UiComponent/PoolInterface.php create mode 100644 lib/internal/Magento/Framework/View/Element/UiComponent/Processor.php create mode 100644 lib/internal/Magento/Framework/View/Element/UiComponent/SubjectInterface.php create mode 100644 lib/internal/Magento/Framework/View/Test/Unit/Element/UiComponent/ProcessorTest.php diff --git a/app/code/Magento/Catalog/Ui/Component/Listing/Columns.php b/app/code/Magento/Catalog/Ui/Component/Listing/Columns.php index 47b621b0bfc..2fe0907bc33 100644 --- a/app/code/Magento/Catalog/Ui/Component/Listing/Columns.php +++ b/app/code/Magento/Catalog/Ui/Component/Listing/Columns.php @@ -12,6 +12,17 @@ class Columns extends \Magento\Ui\Component\Listing\Columns */ const DEFAULT_COLUMNS_MAX_ORDER = 100; + /** + * @var array + */ + protected $filterMap = [ + 'default' => 'text', + 'select' => 'select', + 'boolean' => 'select', + 'multiselect' => 'select', + 'date' => 'dateRange', + ]; + /** * @param \Magento\Framework\View\Element\UiComponent\ContextInterface $context * @param \Magento\Catalog\Ui\Component\ColumnFactory $columnFactory @@ -40,6 +51,9 @@ class Columns extends \Magento\Ui\Component\Listing\Columns foreach ($this->attributeRepository->getList() as $attribute) { if (!isset($this->components[$attribute->getAttributeCode()])) { $config['sortOrder'] = ++$columnSortOrder; + if ($attribute->getIsFilterableInGrid()) { + $config['filter'] = $this->getFilterType($attribute->getFrontendInput()); + } $column = $this->columnFactory->create($attribute, $this->getContext(), $config); $column->prepare(); $this->addComponent($attribute->getAttributeCode(), $column); @@ -47,4 +61,15 @@ class Columns extends \Magento\Ui\Component\Listing\Columns } parent::prepare(); } + + /** + * Retrieve filter type by $frontendInput + * + * @param string $frontendInput + * @return string + */ + protected function getFilterType($frontendInput) + { + return isset($this->filterMap[$frontendInput]) ? $this->filterMap[$frontendInput] : $this->filterMap['default']; + } } diff --git a/app/code/Magento/Catalog/Ui/Component/Listing/Filters.php b/app/code/Magento/Catalog/Ui/Component/Listing/Filters.php deleted file mode 100644 index 9c2950a596b..00000000000 --- a/app/code/Magento/Catalog/Ui/Component/Listing/Filters.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Catalog\Ui\Component\Listing; - -class Filters extends \Magento\Ui\Component\Filters -{ - /** - * @var AttributeRepository - */ - protected $attributeRepository; - - /** - * @param \Magento\Framework\View\Element\UiComponent\ContextInterface $context - * @param \Magento\Catalog\Ui\Component\FilterFactory $filterFactory - * @param AttributeRepository $attributeRepository - * @param array $components - * @param array $data - */ - public function __construct( - \Magento\Framework\View\Element\UiComponent\ContextInterface $context, - \Magento\Catalog\Ui\Component\FilterFactory $filterFactory, - \Magento\Catalog\Ui\Component\Listing\AttributeRepository $attributeRepository, - array $components = [], - array $data = [] - ) { - parent::__construct($context, $components, $data); - $this->filterFactory = $filterFactory; - $this->attributeRepository = $attributeRepository; - } - - /** - * {@inheritdoc} - */ - public function prepare() - { - foreach ($this->attributeRepository->getList() as $attribute) { - if (!isset($this->components[$attribute->getAttributeCode()]) && $attribute->getIsFilterableInGrid()) { - $filter = $this->filterFactory->create($attribute, $this->getContext()); - $filter->prepare(); - $this->addComponent($attribute->getAttributeCode(), $filter); - } - } - parent::prepare(); - } -} diff --git a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml index 9421069dd62..9c50b63fe45 100644 --- a/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml +++ b/app/code/Magento/Cms/view/adminhtml/ui_component/cms_page_listing.xml @@ -92,6 +92,9 @@ </item> </item> </item> + <item name="observers" xsi:type="array"> + <item name="column" xsi:type="string">column</item> + </item> </argument> <filterSelect name="store_id"> <argument name="optionsProvider" xsi:type="configurableObject"> diff --git a/app/code/Magento/ConfigurableProduct/Ui/Component/Listing/AssociatedProduct/Filters.php b/app/code/Magento/ConfigurableProduct/Ui/Component/Listing/AssociatedProduct/Filters.php index af27ebc05c3..eacff4e7439 100644 --- a/app/code/Magento/ConfigurableProduct/Ui/Component/Listing/AssociatedProduct/Filters.php +++ b/app/code/Magento/ConfigurableProduct/Ui/Component/Listing/AssociatedProduct/Filters.php @@ -5,28 +5,31 @@ */ namespace Magento\ConfigurableProduct\Ui\Component\Listing\AssociatedProduct; -class Filters extends \Magento\Ui\Component\Filters +use Magento\Catalog\Ui\Component\FilterFactory; +use Magento\Eav\Model\Resource\Entity\Attribute\CollectionFactory; +use Magento\Framework\View\Element\UiComponent\ObserverInterface; +use Magento\Framework\View\Element\UiComponentInterface; + +class Filters implements ObserverInterface { /** - * @var \Magento\Eav\Model\Resource\Entity\Attribute\CollectionFactory + * @var FilterFactory + */ + protected $filterFactory; + + /** + * @var CollectionFactory */ protected $attributeCollectionFactory; /** - * @param \Magento\Framework\View\Element\UiComponent\ContextInterface $context - * @param \Magento\Catalog\Ui\Component\FilterFactory $filterFactory - * @param \Magento\Eav\Model\Resource\Entity\Attribute\CollectionFactory $attributeCollectionFactory - * @param array $components - * @param array $data + * @param FilterFactory $filterFactory + * @param CollectionFactory $attributeCollectionFactory */ public function __construct( - \Magento\Framework\View\Element\UiComponent\ContextInterface $context, - \Magento\Catalog\Ui\Component\FilterFactory $filterFactory, - \Magento\Eav\Model\Resource\Entity\Attribute\CollectionFactory $attributeCollectionFactory, - array $components = [], - array $data = [] + FilterFactory $filterFactory, + CollectionFactory $attributeCollectionFactory ) { - parent::__construct($context, $components, $data); $this->filterFactory = $filterFactory; $this->attributeCollectionFactory = $attributeCollectionFactory; } @@ -34,17 +37,20 @@ class Filters extends \Magento\Ui\Component\Filters /** * {@inheritdoc} */ - public function prepare() + public function update(UiComponentInterface $component) { - $attributeIds = $this->context->getRequestParam('attribute_ids'); + if (!$component instanceof \Magento\Ui\Component\Filters) { + return; + } + + $attributeIds = $component->getContext()->getRequestParam('attribute_ids'); if ($attributeIds) { foreach ($this->getAttributes($attributeIds) as $attribute) { - $filter = $this->filterFactory->create($attribute, $this->getContext()); + $filter = $this->filterFactory->create($attribute, $component->getContext()); $filter->prepare(); - $this->addComponent($attribute->getAttributeCode(), $filter); + $component->addComponent($attribute->getAttributeCode(), $filter); } } - parent::prepare(); } /** diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml index b497b3b385f..c83845a5692 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml @@ -37,7 +37,7 @@ <item name="template" xsi:type="string">ui/grid/toolbar</item> </item> </argument> - <filters name="listing_filters" class="Magento\ConfigurableProduct\Ui\Component\Listing\AssociatedProduct\Filters"> + <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsProvider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.product_columns</item> @@ -51,6 +51,9 @@ </item> </item> </item> + <item name="observers" xsi:type="array"> + <item name="filters" xsi:type="object">Magento\ConfigurableProduct\Ui\Component\Listing\AssociatedProduct\Filters</item> + </item> </argument> <filterSelect name="attribute_set_id"> <argument name="optionsProvider" xsi:type="configurableObject"> diff --git a/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/FiltersTest.php b/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/FiltersTest.php deleted file mode 100644 index 2dc73c58104..00000000000 --- a/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/FiltersTest.php +++ /dev/null @@ -1,135 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Customer\Test\Unit\Ui\Component\Listing; - -use Magento\Customer\Ui\Component\Listing\Filters; - -class FiltersTest extends \PHPUnit_Framework_TestCase -{ - /** @var \Magento\Framework\View\Element\UiComponent\ContextInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $context; - - /** @var \Magento\Customer\Ui\Component\FilterFactory|\PHPUnit_Framework_MockObject_MockObject */ - protected $filterFactory; - - /** @var \Magento\Customer\Ui\Component\Listing\AttributeRepository|\PHPUnit_Framework_MockObject_MockObject */ - protected $attributeRepository; - - /** @var \Magento\Customer\Api\Data\AttributeMetadataInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $attributeMetadata; - - /** @var \Magento\Ui\Component\Listing\Columns\ColumnInterface|\PHPUnit_Framework_MockObject_MockObject */ - protected $filter; - - /** @var Filters */ - protected $component; - - public function setUp() - { - $this->context = $this->getMockForAbstractClass( - 'Magento\Framework\View\Element\UiComponent\ContextInterface', - [], - '', - false - ); - $this->filterFactory = $this->getMock( - 'Magento\Customer\Ui\Component\FilterFactory', - ['create'], - [], - '', - false - ); - $this->attributeRepository = $this->getMock( - 'Magento\Customer\Ui\Component\Listing\AttributeRepository', - [], - [], - '', - false - ); - $this->attributeMetadata = $this->getMockForAbstractClass( - 'Magento\Customer\Api\Data\AttributeMetadataInterface', - [], - '', - false - ); - $this->filter = $this->getMockForAbstractClass( - 'Magento\Ui\Component\Listing\Columns\ColumnInterface', - [], - '', - false - ); - - $this->component = new Filters( - $this->context, - $this->filterFactory, - $this->attributeRepository - ); - } - - public function testPrepare() - { - $attributeCode = 'billing_attribute_code'; - $attributeData = [ - 'attribute_code' => $attributeCode, - 'frontend_input' => 'frontend-input', - 'frontend_label' => 'frontend-label', - 'backend_type' => 'backend-type', - 'options' => [ - [ - 'label' => 'Label', - 'value' => 'Value' - ] - ], - 'is_used_in_grid' => true, - 'is_visible_in_grid' => true, - 'is_filterable_in_grid' => true, - 'is_searchable_in_grid' => true, - ]; - - $this->attributeRepository->expects($this->atLeastOnce()) - ->method('getList') - ->willReturn([$attributeCode => $attributeData]); - $this->filterFactory->expects($this->once()) - ->method('create') - ->with($attributeData, $this->context) - ->willReturn($this->filter); - $this->filter->expects($this->once()) - ->method('prepare'); - - $this->component->prepare(); - $this->assertSame($this->filter, $this->component->getComponent($attributeCode)); - } - - public function testPrepareWithAlreadyAddedComponent() - { - $attributeCode = 'billing_attribute_code'; - $attributeData = [ - 'attribute_code' => $attributeCode, - 'frontend_input' => 'frontend-input', - 'frontend_label' => 'frontend-label', - 'backend_type' => 'backend-type', - 'options' => [ - [ - 'label' => 'Label', - 'value' => 'Value' - ] - ], - 'is_used_in_grid' => true, - 'is_visible_in_grid' => true, - 'is_filterable_in_grid' => false, - 'is_searchable_in_grid' => true, - ]; - - $this->component->addComponent($attributeCode, $this->filter); - - $this->attributeRepository->expects($this->atLeastOnce()) - ->method('getList') - ->willReturn([$attributeCode => $attributeData]); - - $this->component->prepare(); - $this->assertEquals(null, $this->component->getComponent($attributeCode)); - } -} diff --git a/app/code/Magento/Customer/Ui/Component/Listing/Columns.php b/app/code/Magento/Customer/Ui/Component/Listing/Columns.php index 36b2f42d3b0..bcb43fb4bfc 100644 --- a/app/code/Magento/Customer/Ui/Component/Listing/Columns.php +++ b/app/code/Magento/Customer/Ui/Component/Listing/Columns.php @@ -23,6 +23,17 @@ class Columns extends \Magento\Ui\Component\Listing\Columns /** @var InlineEditUpdater */ protected $inlineEditUpdater; + /** + * @var array + */ + protected $filterMap = [ + 'default' => 'text', + 'select' => 'select', + 'boolean' => 'select', + 'multiselect' => 'select', + 'date' => 'dateRange', + ]; + /** * @param ContextInterface $context * @param ColumnFactory $columnFactory @@ -103,6 +114,9 @@ class Columns extends \Magento\Ui\Component\Listing\Columns public function addColumn(array $attributeData, $columnName) { $config['sortOrder'] = ++$this->columnSortOrder; + if ($attributeData[AttributeMetadata::IS_FILTERABLE_IN_GRID]) { + $config['filter'] = $this->getFilterType($attributeData[AttributeMetadata::FRONTEND_INPUT]); + } $column = $this->columnFactory->create($attributeData, $columnName, $this->getContext(), $config); $column->prepare(); $this->addComponent($attributeData[AttributeMetadata::ATTRIBUTE_CODE], $column); @@ -128,6 +142,9 @@ class Columns extends \Magento\Ui\Component\Listing\Columns 'visible' => (bool)$attributeData[AttributeMetadata::IS_VISIBLE_IN_GRID] ] ); + if ($attributeData[AttributeMetadata::IS_FILTERABLE_IN_GRID]) { + $config['filter'] = $this->getFilterType($attributeData[AttributeMetadata::FRONTEND_INPUT]); + } $component->setData('config', $config); } } else { @@ -168,4 +185,15 @@ class Columns extends \Magento\Ui\Component\Listing\Columns ); } } + + /** + * Retrieve filter type by $frontendInput + * + * @param string $frontendInput + * @return string + */ + protected function getFilterType($frontendInput) + { + return isset($this->filterMap[$frontendInput]) ? $this->filterMap[$frontendInput] : $this->filterMap['default']; + } } diff --git a/app/code/Magento/Customer/Ui/Component/Listing/Filters.php b/app/code/Magento/Customer/Ui/Component/Listing/Filters.php deleted file mode 100644 index 2e0816d0797..00000000000 --- a/app/code/Magento/Customer/Ui/Component/Listing/Filters.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Customer\Ui\Component\Listing; - -use Magento\Customer\Api\Data\AttributeMetadataInterface as AttributeMetadata; - -class Filters extends \Magento\Ui\Component\Filters -{ - /** - * @param \Magento\Framework\View\Element\UiComponent\ContextInterface $context - * @param \Magento\Customer\Ui\Component\FilterFactory $filterFactory - * @param AttributeRepository $attributeRepository - * @param array $components - * @param array $data - */ - public function __construct( - \Magento\Framework\View\Element\UiComponent\ContextInterface $context, - \Magento\Customer\Ui\Component\FilterFactory $filterFactory, - \Magento\Customer\Ui\Component\Listing\AttributeRepository $attributeRepository, - array $components = [], - array $data = [] - ) { - parent::__construct($context, $components, $data); - $this->filterFactory = $filterFactory; - $this->attributeRepository = $attributeRepository; - } - - /** - * {@inheritdoc} - */ - public function prepare() - { - /** @var \Magento\Customer\Model\Attribute $attribute */ - foreach ($this->attributeRepository->getList() as $attributeCode => $attributeData) { - if (!isset($this->components[$attributeCode])) { - if (!$attributeData[AttributeMetadata::BACKEND_TYPE] != 'static' - && $attributeData[AttributeMetadata::IS_USED_IN_GRID] - && $attributeData[AttributeMetadata::IS_FILTERABLE_IN_GRID] - ) { - $filter = $this->filterFactory->create($attributeData, $this->getContext()); - $filter->prepare(); - $this->addComponent($attributeCode, $filter); - } - } elseif ($attributeData[AttributeMetadata::IS_USED_IN_GRID] - && !$attributeData[AttributeMetadata::IS_FILTERABLE_IN_GRID] - ) { - unset($this->components[$attributeCode]); - } - } - parent::prepare(); - } -} diff --git a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml index c467751948f..60b58a72a12 100644 --- a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml +++ b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml @@ -197,7 +197,7 @@ </item> <item name="editorConfig" xsi:type="array"> <item name="selectProvider" xsi:type="string">customer_listing.customer_listing.customer_columns.ids</item> - <item name="enabled" xsi:type="boolean">true</item> + <item name="enabled" xsi:type="boolean">false</item> <item name="indexField" xsi:type="string">entity_id</item> <item name="clientConfig" xsi:type="array"> <item name="saveUrl" xsi:type="url" path="customer/index/inlineEdit"/> diff --git a/app/code/Magento/Ui/Component/AbstractComponent.php b/app/code/Magento/Ui/Component/AbstractComponent.php index b7a5b06c2de..610674c27b1 100644 --- a/app/code/Magento/Ui/Component/AbstractComponent.php +++ b/app/code/Magento/Ui/Component/AbstractComponent.php @@ -9,6 +9,7 @@ use Magento\Framework\DataObject; use Magento\Framework\View\Element\UiComponentInterface; use Magento\Framework\View\Element\UiComponent\ContextInterface; use Magento\Framework\View\Element\UiComponent\DataSourceInterface; +use Magento\Framework\View\Element\UiComponent\ObserverInterface; /** * Abstract class AbstractComponent @@ -52,6 +53,8 @@ abstract class AbstractComponent extends DataObject implements UiComponentInterf ) { $this->context = $context; $this->components = $components; + $this->initObservers($data); + $this->context->getProcessor()->register($this); $this->_data = array_replace_recursive($this->_data, $data); } @@ -92,6 +95,7 @@ abstract class AbstractComponent extends DataObject implements UiComponentInterf if ($this->hasData('buttons')) { $this->getContext()->addButtons($this->getData('buttons'), $this); } + $this->getContext()->getProcessor()->notify($this->getComponentName()); } /** @@ -240,4 +244,25 @@ abstract class AbstractComponent extends DataObject implements UiComponentInterf { return []; } + + /** + * Initiate observers + * + * @param array $data + * @return void + */ + protected function initObservers(array & $data = []) + { + if (isset($data['observers']) && is_array($data['observers'])) { + foreach ($data['observers'] as $observerType => $observer) { + if (!is_object($observer)) { + $observer = $this; + } + if ($observer instanceof ObserverInterface) { + $this->getContext()->getProcessor()->attach($observerType, $observer); + } + unset($data['observers']); + } + } + } } diff --git a/app/code/Magento/Ui/Component/Filters.php b/app/code/Magento/Ui/Component/Filters.php index c250487fc91..dadcdc2f095 100644 --- a/app/code/Magento/Ui/Component/Filters.php +++ b/app/code/Magento/Ui/Component/Filters.php @@ -5,13 +5,57 @@ */ namespace Magento\Ui\Component; +use Magento\Framework\View\Element\UiComponent\ContextInterface; +use Magento\Framework\View\Element\UiComponent\ObserverInterface; +use Magento\Framework\View\Element\UiComponentFactory; +use Magento\Framework\View\Element\UiComponentInterface; +use Magento\Ui\Component\Listing\Columns\ColumnInterface; + /** * Class Filters */ -class Filters extends AbstractComponent +class Filters extends AbstractComponent implements ObserverInterface { const NAME = 'filters'; + /** + * Filters created from columns + * + * @var UiComponentInterface[] + */ + protected $columnFilters = []; + + /** + * Maps filter declaration to type + * + * @var array + */ + protected $filterMap = [ + 'text' => 'filterInput', + 'textRange' => 'filterRange', + 'select' => 'filterSelect', + 'dateRange' => 'filterDate', + ]; + + /** + * @var UiComponentFactory + */ + protected $uiComponentFactory; + + /** + * @inheritDoc + */ + public function __construct( + ContextInterface $context, + UiComponentFactory $uiComponentFactory, + array $components = [], + array $data = [] + ) { + parent::__construct($context, $components, $data); + $this->uiComponentFactory = $uiComponentFactory; + } + + /** * Get component name * @@ -21,4 +65,52 @@ class Filters extends AbstractComponent { return static::NAME; } + + /** + * @inheritDoc + */ + public function update(UiComponentInterface $component) + { + if ($component instanceof ColumnInterface) { + $filterType = $component->getData('config/filter'); + if (!$filterType) { + return; + } + + if (isset($this->filterMap[$filterType])) { + $filterComponent = $this->uiComponentFactory->create( + $component->getName(), + $this->filterMap[$filterType], + ['context' => $this->getContext()] + ); + $filterComponent->setData('config', $component->getConfiguration()); + $filterComponent->prepare(); + $this->addComponent($component->getName(), $filterComponent); + } + } + } + + /** + * @inheritDoc + */ + public function addComponent($name, UiComponentInterface $component) + { + $this->columnFilters[$name] = $component; + parent::addComponent($name, $component); + } + + /** + * @inheritDoc + */ + public function getChildComponents() + { + $result = parent::getChildComponents(); + foreach (array_keys($this->columnFilters) as $componentName) { + if ($this->getComponent($componentName)) { + unset($result[$componentName]); + } + } + + return $result; + } } diff --git a/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml b/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml index 1fb6abdb7a5..69a260ebe2d 100755 --- a/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml +++ b/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml @@ -34,6 +34,9 @@ <item name="displayArea" xsi:type="string">dataGridFilters</item> <item name="dataScope" xsi:type="string">filters</item> </item> + <item name="observers" xsi:type="array"> + <item name="column" xsi:type="string">column</item> + </item> </argument> </filters> <filterSearch class="Magento\Ui\Component\Filters\Type\Search"> diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php index cc7f031ee15..ace3c9c1e32 100755 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php @@ -3844,4 +3844,9 @@ return [ 'Magento\Checkout\Model\Agreements\AgreementsProviderInterface', 'Magento\CheckoutAgreements\Model\AgreementsProviderInterface' ], + ['Magento\Setup\Model\SampleData', 'Magento\SampleData\Model\SampleData'], + ['Magento\Customer\Controller\Account\ResetPassword'], + ['Magento\Customer\Controller\Account'], + ['Magento\Catalog\Ui\Component\Listing\Filters'], + ['Magento\Customer\Ui\Component\Listing\Filters'], ]; diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/Context.php b/lib/internal/Magento/Framework/View/Element/UiComponent/Context.php index 3f725dd65c8..720acbcd38d 100644 --- a/lib/internal/Magento/Framework/View/Element/UiComponent/Context.php +++ b/lib/internal/Magento/Framework/View/Element/UiComponent/Context.php @@ -7,6 +7,7 @@ namespace Magento\Framework\View\Element\UiComponent; use Magento\Framework\UrlInterface; use Magento\Framework\App\RequestInterface; +use Magento\Framework\View\Element\UiComponent\Processor; use Magento\Framework\View\Element\UiComponentInterface; use Magento\Framework\View\Element\UiComponent\Control\ActionPoolFactory; use Magento\Framework\View\Element\UiComponent\Control\ActionPoolInterface; @@ -84,6 +85,11 @@ class Context implements ContextInterface */ protected $urlBuilder; + /** + * @var Processor + */ + protected $processor; + /** * @param PageLayoutInterface $pageLayout * @param RequestInterface $request @@ -91,8 +97,9 @@ class Context implements ContextInterface * @param ActionPoolFactory $actionPoolFactory * @param ContentTypeFactory $contentTypeFactory * @param UrlInterface $urlBuilder + * @param Processor $processor * @param DataProviderInterface|null $dataProvider - * @param string $namespace + * @param null $namespace */ public function __construct( PageLayoutInterface $pageLayout, @@ -101,6 +108,7 @@ class Context implements ContextInterface ActionPoolFactory $actionPoolFactory, ContentTypeFactory $contentTypeFactory, UrlInterface $urlBuilder, + Processor $processor, DataProviderInterface $dataProvider = null, $namespace = null ) { @@ -112,7 +120,7 @@ class Context implements ContextInterface $this->actionPool = $actionPoolFactory->create(['context' => $this]); $this->contentTypeFactory = $contentTypeFactory; $this->urlBuilder = $urlBuilder; - + $this->processor = $processor; $this->setAcceptType(); } @@ -362,4 +370,12 @@ class Context implements ContextInterface } $component->prepareDataSource($data); } + + /** + * @inheritDoc + */ + public function getProcessor() + { + return $this->processor; + } } diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/ContextInterface.php b/lib/internal/Magento/Framework/View/Element/UiComponent/ContextInterface.php index 55ed8e0d065..bd89985dc14 100644 --- a/lib/internal/Magento/Framework/View/Element/UiComponent/ContextInterface.php +++ b/lib/internal/Magento/Framework/View/Element/UiComponent/ContextInterface.php @@ -5,6 +5,7 @@ */ namespace Magento\Framework\View\Element\UiComponent; +use Magento\Framework\View\Element\UiComponent\Processor; use Magento\Framework\View\Element\UiComponentInterface; use Magento\Framework\View\Element\UiComponent\ContentType\ContentTypeInterface; use Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface; @@ -136,4 +137,11 @@ interface ContextInterface * @return string */ public function getUrl($route = '', $params = []); + + /** + * Get component processor + * + * @return Processor + */ + public function getProcessor(); } diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/ObserverInterface.php b/lib/internal/Magento/Framework/View/Element/UiComponent/ObserverInterface.php new file mode 100644 index 00000000000..b9cbce56acb --- /dev/null +++ b/lib/internal/Magento/Framework/View/Element/UiComponent/ObserverInterface.php @@ -0,0 +1,22 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Framework\View\Element\UiComponent; + +use Magento\Framework\View\Element\UiComponentInterface; + +/** + * Interface ObserverInterface + */ +interface ObserverInterface +{ + /** + * Update component according to $component + * + * @param UiComponentInterface $component + * @return void + */ + public function update(UiComponentInterface $component); +} diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/PoolInterface.php b/lib/internal/Magento/Framework/View/Element/UiComponent/PoolInterface.php new file mode 100644 index 00000000000..c265025925d --- /dev/null +++ b/lib/internal/Magento/Framework/View/Element/UiComponent/PoolInterface.php @@ -0,0 +1,29 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Framework\View\Element\UiComponent; + +use Magento\Framework\View\Element\UiComponentInterface; + +/** + * Interface PoolInterface + */ +interface PoolInterface +{ + /** + * Register component at pool + * + * @param UiComponentInterface $component + * @return void + */ + public function register(UiComponentInterface $component); + + /** + * Retrieve components pool + * + * @return UiComponentInterface[] + */ + public function getComponents(); +} diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/Processor.php b/lib/internal/Magento/Framework/View/Element/UiComponent/Processor.php new file mode 100644 index 00000000000..4e7bb9d9932 --- /dev/null +++ b/lib/internal/Magento/Framework/View/Element/UiComponent/Processor.php @@ -0,0 +1,106 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Framework\View\Element\UiComponent; + +use Magento\Framework\View\Element\UiComponentInterface; + +/** + * Class Processor + */ +class Processor implements PoolInterface, SubjectInterface +{ + /** + * @var UiComponentInterface[] + */ + protected $components = []; + + /** + * Array of observers + * + * [ + * 'component_type1' => ObserverInterface[], + * 'component_type2' => ObserverInterface[], + * ] + * + * @var array + */ + protected $observers = []; + + + /** + * @inheritDoc + */ + public function register(UiComponentInterface $component) + { + $this->components[] = $component; + } + + /** + * @inheritDoc + */ + public function getComponents() + { + return $this->components; + } + + /** + * @inheritDoc + */ + public function attach($type, ObserverInterface $observer) + { + $this->observers[$type][] = $observer; + } + + /** + * @inheritDoc + */ + public function detach($type, ObserverInterface $observer) + { + if (!isset($this->observers[$type])) { + return; + } + + $key = array_search($observer, $this->observers[$type], true); + if ($key !== false) { + unset($this->observers[$type][$key]); + } + } + + /** + * @inheritDoc + */ + public function notify($type) + { + $componentType = $this->normalizeType($type); + if (!isset($this->observers[$componentType])) { + return; + } + + /** @var UiComponentInterface $component */ + foreach ($this->getComponents() as $component) { + if ($component->getComponentName() != $type) { + continue; + } + + /** @var ObserverInterface $observer */ + foreach ($this->observers[$componentType] as $observer) { + $observer->update($component); + } + } + } + + /** + * Normalize type to component type + * + * @param string $type + * @return string + */ + protected function normalizeType($type) + { + $componentType = (strpos($type, '.') !== false) ? substr($type, 0, strpos($type, '.')) : $type; + return $componentType; + } +} diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/SubjectInterface.php b/lib/internal/Magento/Framework/View/Element/UiComponent/SubjectInterface.php new file mode 100644 index 00000000000..6b166444053 --- /dev/null +++ b/lib/internal/Magento/Framework/View/Element/UiComponent/SubjectInterface.php @@ -0,0 +1,35 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Framework\View\Element\UiComponent; + +/** + * Interface SubjectInterface + */ +interface SubjectInterface +{ + /** + * Attach an observer by type + * @param string $type + * @param ObserverInterface $observer + * @return void + */ + public function attach($type, ObserverInterface $observer); + + /** + * Detach an observer by type + * @param string $type + * @param ObserverInterface $observer + * @return void + */ + public function detach($type, ObserverInterface $observer); + + /** + * Notify an observer(s) by type + * @param string $type + * @return void + */ + public function notify($type); +} diff --git a/lib/internal/Magento/Framework/View/Test/Unit/Element/UiComponent/ProcessorTest.php b/lib/internal/Magento/Framework/View/Test/Unit/Element/UiComponent/ProcessorTest.php new file mode 100644 index 00000000000..c10d6fe61c3 --- /dev/null +++ b/lib/internal/Magento/Framework/View/Test/Unit/Element/UiComponent/ProcessorTest.php @@ -0,0 +1,78 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +/** + * Test for view Messages model + */ +namespace Magento\Framework\View\Test\Unit\Element\UiComponent; + +use Magento\Framework\View\Element\UiComponent\Processor; +use Magento\Framework\View\Element\UiComponentInterface; +use Magento\Framework\View\Element\UiComponent\ObserverInterface; + +class ProcessorTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var UiComponentInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $component; + + /** + * @var ObserverInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $observer; + + /** + * @var Processor + */ + protected $processor; + + protected function setUp() + { + $this->component = $this->getMockBuilder('Magento\Framework\View\Element\UiComponentInterface') + ->getMockForAbstractClass(); + $this->observer = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ObserverInterface') + ->getMockForAbstractClass(); + $this->processor = new Processor(); + } + + public function testRegisterGetComponents() + { + $this->assertCount(0, $this->processor->getComponents()); + $this->processor->register($this->component); + $this->assertCount(1, $this->processor->getComponents()); + } + + public function testAttachAndNotify() + { + $type = 'test_type'; + $this->component->expects($this->any()) + ->method('getComponentName') + ->willReturn($type); + $this->observer->expects($this->any()) + ->method('update') + ->with($this->component); + /** @var UiComponentInterface $component2 */ + $component2 = $this->getMockBuilder('Magento\Framework\View\Element\UiComponentInterface') + ->getMockForAbstractClass(); + $component2->expects($this->any()) + ->method('getComponentName') + ->willReturn('other_type'); + + $this->processor->register($this->component); + $this->processor->register($component2); + $this->processor->attach($type, $this->observer); + $this->processor->notify($type); + } + + public function testDetach() + { + $this->processor->detach('unexists_type', $this->observer); + $this->processor->attach('some_type', $this->observer); + $this->processor->notify('unexists_type'); + $this->processor->detach('some_type', $this->observer); + } +} -- GitLab From 10ff04e1a7e10ff76c19b910b2ca17276d8eeea0 Mon Sep 17 00:00:00 2001 From: Dale Sikkema <dsikkema@ebay.com> Date: Tue, 29 Sep 2015 17:30:15 -0500 Subject: [PATCH 158/420] MAGETWO-43197: Product's options are not saved after running setup:di:compile --- .../Generator/EntityChildTestAbstract.php | 2 +- .../Autoload/AutoloaderInterface.php | 8 ++ .../Framework/Autoload/ClassLoaderWrapper.php | 49 ++++++------ .../Magento/Framework/Code/Generator.php | 57 +++++++++----- .../Code/Generator/DefinedClasses.php | 19 ++--- .../Code/Generator/EntityAbstract.php | 4 +- .../Unit/Generator/DefinedClassesTest.php | 74 +++++++++++++++++++ .../Unit/Generator/EntityAbstractTest.php | 8 +- .../Code/Test/Unit/GeneratorTest.php | 10 ++- .../Unit/Code/Generator/ConverterTest.php | 2 +- .../Unit/Code/Generator/RepositoryTest.php | 2 +- 11 files changed, 168 insertions(+), 67 deletions(-) create mode 100644 lib/internal/Magento/Framework/Code/Test/Unit/Generator/DefinedClassesTest.php diff --git a/lib/internal/Magento/Framework/Api/Test/Unit/Code/Generator/EntityChildTestAbstract.php b/lib/internal/Magento/Framework/Api/Test/Unit/Code/Generator/EntityChildTestAbstract.php index 0265b6342ab..acbc463380d 100644 --- a/lib/internal/Magento/Framework/Api/Test/Unit/Code/Generator/EntityChildTestAbstract.php +++ b/lib/internal/Magento/Framework/Api/Test/Unit/Code/Generator/EntityChildTestAbstract.php @@ -126,7 +126,7 @@ abstract class EntityChildTestAbstract extends \PHPUnit_Framework_TestCase protected function mockDefinedClassesCall() { $this->definedClassesMock->expects($this->at(0)) - ->method('classLoadable') + ->method('isClassLoadable') ->with($this->getSourceClassName()) ->willReturn(true); } diff --git a/lib/internal/Magento/Framework/Autoload/AutoloaderInterface.php b/lib/internal/Magento/Framework/Autoload/AutoloaderInterface.php index 6349cbbafcb..dad4426c96b 100644 --- a/lib/internal/Magento/Framework/Autoload/AutoloaderInterface.php +++ b/lib/internal/Magento/Framework/Autoload/AutoloaderInterface.php @@ -55,4 +55,12 @@ interface AutoloaderInterface * @return bool */ public function loadClass($className); + + /** + * Get filepath of class on system or false if it does not exist + * + * @param string $className + * @return string|bool + */ + public function findFile($className); } diff --git a/lib/internal/Magento/Framework/Autoload/ClassLoaderWrapper.php b/lib/internal/Magento/Framework/Autoload/ClassLoaderWrapper.php index f96162b3500..c1f2f5d15a1 100644 --- a/lib/internal/Magento/Framework/Autoload/ClassLoaderWrapper.php +++ b/lib/internal/Magento/Framework/Autoload/ClassLoaderWrapper.php @@ -28,12 +28,7 @@ class ClassLoaderWrapper implements AutoloaderInterface } /** - * Adds a PSR-4 mapping from a namespace prefix to directories to search in for the corresponding class - * - * @param string $nsPrefix The namespace prefix of the PSR-4 mapping - * @param string|array $paths The path or paths to look in for the given prefix - * @param bool $prepend Whether to append the given path or paths to the paths already associated with the prefix - * @return void + * {@inheritdoc} */ public function addPsr4($nsPrefix, $paths, $prepend = false) { @@ -41,12 +36,7 @@ class ClassLoaderWrapper implements AutoloaderInterface } /** - * Adds a PSR-0 mapping from a namespace prefix to directories to search in for the corresponding class - * - * @param string $nsPrefix The namespace prefix of the PSR-0 mapping - * @param string|array $paths The path or paths to look in for the given prefix - * @param bool $prepend Whether to append the given path or paths to the paths already associated with the prefix - * @return void + * {@inheritdoc} */ public function addPsr0($nsPrefix, $paths, $prepend = false) { @@ -54,11 +44,7 @@ class ClassLoaderWrapper implements AutoloaderInterface } /** - * Creates new PSR-0 mappings from the given prefix to the given set of paths, eliminating previous mappings - * - * @param string $nsPrefix The namespace prefix of the PSR-0 mapping - * @param string|array $paths The path or paths to look in for the given prefix - * @return void + * {@inheritdoc} */ public function setPsr0($nsPrefix, $paths) { @@ -66,11 +52,7 @@ class ClassLoaderWrapper implements AutoloaderInterface } /** - * Creates new PSR-4 mappings from the given prefix to the given set of paths, eliminating previous mappings - * - * @param string $nsPrefix The namespace prefix of the PSR-0 mapping - * @param string|array $paths The path or paths to look in for the given prefix - * @return void + * {@inheritdoc} */ public function setPsr4($nsPrefix, $paths) { @@ -78,13 +60,28 @@ class ClassLoaderWrapper implements AutoloaderInterface } /** - * Attempts to load a class and returns true if successful. - * - * @param string $className - * @return bool + * {@inheritdoc} + * @codeCoverageIgnore */ public function loadClass($className) { return $this->autoloader->loadClass($className) === true; } + + /** + * {@inheritdoc} + * @codeCoverageIgnore + */ + public function findFile($className) + { + /** + * Composer remembers that files don't exist even after they are generated. This clears the entry for + * $className so we can check the filesystem again for class existence. + */ + if ($className[0] === '\\') { + $className = substr($className, 1); + } + $this->autoloader->addClassMap([$className => null]); + return $this->autoloader->findFile($className); + } } diff --git a/lib/internal/Magento/Framework/Code/Generator.php b/lib/internal/Magento/Framework/Code/Generator.php index da6d60b14ed..2fdcd37ea11 100644 --- a/lib/internal/Magento/Framework/Code/Generator.php +++ b/lib/internal/Magento/Framework/Code/Generator.php @@ -74,31 +74,28 @@ class Generator */ public function generateClass($className) { - // check if source class a generated entity - $entity = null; - $entityName = null; + $resultEntityType = null; + $sourceClassName = null; foreach ($this->_generatedEntities as $entityType => $generatorClass) { $entitySuffix = ucfirst($entityType); - // if $className string ends on $entitySuffix substring + // If $className string ends with $entitySuffix substring if (strrpos($className, $entitySuffix) === strlen($className) - strlen($entitySuffix)) { - $entity = $entityType; - $entityName = rtrim( + $resultEntityType = $entityType; + $sourceClassName = rtrim( substr($className, 0, -1 * strlen($entitySuffix)), '\\' ); break; } } - if (!$entity || !$entityName) { - return self::GENERATION_ERROR; - } else if ($this->definedClasses->classLoadable($className)) { - return self::GENERATION_SKIP; - } else if (!isset($this->_generatedEntities[$entity])) { - throw new \InvalidArgumentException('Unknown generation entity.'); + + if ($skipReason = $this->validate($resultEntityType, $sourceClassName, $className)) { + return $skipReason; } - $generatorClass = $this->_generatedEntities[$entity]; + + $generatorClass = $this->_generatedEntities[$resultEntityType]; /** @var EntityAbstract $generator */ - $generator = $this->createGeneratorInstance($generatorClass, $entityName, $className); + $generator = $this->createGeneratorInstance($generatorClass, $sourceClassName, $className); if ($generator !== null) { $this->tryToLoadSourceClass($className, $generator); if (!($file = $generator->generate())) { @@ -107,18 +104,22 @@ class Generator new \Magento\Framework\Phrase(implode(' ', $errors)) ); } - $this->includeFile($file); + $this->tryToIncludeFile($file, $className); return self::GENERATION_SUCCESS; } } /** + * Include file only if the class is not already defined in memory + * * @param string $fileName * @return void */ - public function includeFile($fileName) + public function tryToIncludeFile($fileName, $className) { - include $fileName; + if (!$this->definedClasses->isClassLoadableFromMemory($className)) { + include $fileName; + } } /** @@ -176,7 +177,7 @@ class Generator protected function tryToLoadSourceClass($className, $generator) { $sourceClassName = $generator->getSourceClassName(); - if (!$this->definedClasses->classLoadable($sourceClassName)) { + if (!$this->definedClasses->isClassLoadableFromDisc($sourceClassName)) { if ($this->generateClass($sourceClassName) !== self::GENERATION_SUCCESS) { throw new \Magento\Framework\Exception\LocalizedException( new \Magento\Framework\Phrase( @@ -187,4 +188,24 @@ class Generator } } } + + /** + * Perform validation surrounding source and result classes and entity type + * + * @param string $resultEntityType + * @param string $sourceClassName + * @param string $resultClass + * @return string|bool + */ + protected function validate($resultEntityType, $sourceClassName, $resultClass) + { + if (!$resultEntityType || !$sourceClassName) { + return self::GENERATION_ERROR; + } else if ($this->definedClasses->isClassLoadableFromDisc($resultClass)) { + return self::GENERATION_SKIP; + } else if (!isset($this->_generatedEntities[$resultEntityType])) { + throw new \InvalidArgumentException('Unknown generation entity.'); + } + return false; + } } diff --git a/lib/internal/Magento/Framework/Code/Generator/DefinedClasses.php b/lib/internal/Magento/Framework/Code/Generator/DefinedClasses.php index 20621b72ee3..d0babb79f2f 100644 --- a/lib/internal/Magento/Framework/Code/Generator/DefinedClasses.php +++ b/lib/internal/Magento/Framework/Code/Generator/DefinedClasses.php @@ -14,40 +14,37 @@ use Magento\Framework\Autoload\AutoloaderRegistry; class DefinedClasses { /** - * Determine if a class can be loaded without using the Code\Generator\Autoloader. + * Determine if a class can be loaded without using Code\Generator\Autoloader. * * @param string $className * @return bool */ - public function classLoadable($className) + public function isClassLoadable($className) { - if ($this->isAlreadyDefined($className)) { - return true; - } - return $this->performAutoload($className); + return $this->isClassLoadableFromMemory($className) || $this->isClassLoadableFromDisc($className); } /** - * Checks whether class is already defined + * Determine if a class exists in memory * * @param string $className * @return bool */ - protected function isAlreadyDefined($className) + public function isClassLoadableFromMemory($className) { return class_exists($className, false) || interface_exists($className, false); } /** - * Performs autoload for given class name + * Determine if a class exists on disc * * @param string $className * @return bool */ - protected function performAutoload($className) + public function isClassLoadableFromDisc($className) { try { - return AutoloaderRegistry::getAutoloader()->loadClass($className); + return (bool)AutoloaderRegistry::getAutoloader()->findFile($className); } catch (\Exception $e) { // Couldn't get access to the autoloader so we need to allow class_exists to call autoloader chain return (class_exists($className) || interface_exists($className)); diff --git a/lib/internal/Magento/Framework/Code/Generator/EntityAbstract.php b/lib/internal/Magento/Framework/Code/Generator/EntityAbstract.php index 82c7a210c0f..fee367f49ca 100644 --- a/lib/internal/Magento/Framework/Code/Generator/EntityAbstract.php +++ b/lib/internal/Magento/Framework/Code/Generator/EntityAbstract.php @@ -249,10 +249,10 @@ abstract class EntityAbstract $resultClassName = $this->_getResultClassName(); $resultDir = $this->_ioObject->getResultFileDirectory($resultClassName); - if (!$this->definedClasses->classLoadable($sourceClassName)) { + if (!$this->definedClasses->isClassLoadable($sourceClassName)) { $this->_addError('Source class ' . $sourceClassName . ' doesn\'t exist.'); return false; - } elseif ($this->definedClasses->classLoadable($resultClassName)) { + } elseif ($this->definedClasses->isClassLoadableFromDisc($resultClassName)) { $this->_addError('Result class ' . $resultClassName . ' already exists.'); return false; } elseif ( diff --git a/lib/internal/Magento/Framework/Code/Test/Unit/Generator/DefinedClassesTest.php b/lib/internal/Magento/Framework/Code/Test/Unit/Generator/DefinedClassesTest.php new file mode 100644 index 00000000000..e0f13bab0b3 --- /dev/null +++ b/lib/internal/Magento/Framework/Code/Test/Unit/Generator/DefinedClassesTest.php @@ -0,0 +1,74 @@ +<?php +/*** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +// @codingStandardsIgnoreStart +namespace Magento\Framework\Code\Generator { + use Magento\Framework\Code\Test\Unit\Generator\DefinedClassesTest; + + function class_exists($className) + { + return DefinedClassesTest::$definedClassesTestActive + ? $className === DefinedClassesTest::$classInMemory + : \class_exists($className); + } +} + +namespace Magento\Framework\Code\Test\Unit\Generator { + use Magento\Framework\Autoload\AutoloaderInterface; + use Magento\Framework\Autoload\AutoloaderRegistry; + use Magento\Framework\Code\Generator\DefinedClasses; + + // @codingStandardsIgnoreEnd + + class DefinedClassesTest extends \PHPUnit_Framework_TestCase + { + /** @var bool */ + public static $definedClassesTestActive = false; + + public static $classInMemory = 'Class\That\Exists\In\Memory'; + + /** @var DefinedClasses */ + private $model; + + /** @var AutoloaderInterface */ + private $initAutoloader; + + public function setUp() + { + $this->model = new DefinedClasses(); + self::$definedClassesTestActive = true; + $this->initAutoloader = AutoloaderRegistry::getAutoloader(); + } + + public function tearDown() + { + self::$definedClassesTestActive = false; + AutoloaderRegistry::registerAutoloader($this->initAutoloader); + } + + public function testClassLoadableFromMemory() + { + $this->assertTrue($this->model->isClassLoadable(self::$classInMemory)); + } + + public function testClassLoadableFromDisc() + { + $classOnDisc = 'Class\That\Exists\On\Disc'; + /** + * @var AutoloaderInterface | \PHPUnit_Framework_MockObject_MockObject $autoloaderMock + */ + $autoloaderMock = $this->getMock('\Magento\Framework\Autoload\AutoloaderInterface'); + $autoloaderMock->expects($this->once())->method('findFile')->with($classOnDisc)->willReturn(true); + AutoloaderRegistry::registerAutoloader($autoloaderMock); + $this->assertTrue($this->model->isClassLoadable($classOnDisc)); + } + + public function testClassNotLoadable() + { + $this->assertFalse($this->model->isClassLoadable('Class\Does\Not\Exist')); + } + } +} diff --git a/lib/internal/Magento/Framework/Code/Test/Unit/Generator/EntityAbstractTest.php b/lib/internal/Magento/Framework/Code/Test/Unit/Generator/EntityAbstractTest.php index 8ed735e0af5..cf74e8a67f1 100644 --- a/lib/internal/Magento/Framework/Code/Test/Unit/Generator/EntityAbstractTest.php +++ b/lib/internal/Magento/Framework/Code/Test/Unit/Generator/EntityAbstractTest.php @@ -225,13 +225,13 @@ class EntityAbstractTest extends \PHPUnit_Framework_TestCase ) { // Configure DefinedClasses mock $definedClassesMock = $this->getMock('Magento\Framework\Code\Generator\DefinedClasses'); - $definedClassesMock->expects($this->at(0)) - ->method('classLoadable') + $definedClassesMock->expects($this->once()) + ->method('isClassLoadable') ->with(self::SOURCE_CLASS) ->willReturn($sourceClassExists); if ($resultClassExists) { - $definedClassesMock->expects($this->at(1)) - ->method('classLoadable') + $definedClassesMock->expects($this->once()) + ->method('isClassLoadableFromDisc') ->with(self::RESULT_CLASS) ->willReturn($resultClassExists); } diff --git a/lib/internal/Magento/Framework/Code/Test/Unit/GeneratorTest.php b/lib/internal/Magento/Framework/Code/Test/Unit/GeneratorTest.php index e01f4c529c8..88a043753da 100644 --- a/lib/internal/Magento/Framework/Code/Test/Unit/GeneratorTest.php +++ b/lib/internal/Magento/Framework/Code/Test/Unit/GeneratorTest.php @@ -75,7 +75,9 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase ); $objectManagerMock = $this->getMock('Magento\Framework\ObjectManagerInterface'); $fullClassName = $className . $entityType; - $entityGeneratorMock = $this->getMockBuilder($fullClassName)->disableOriginalConstructor()->getMock(); + $entityGeneratorMock = $this->getMockBuilder('\Magento\Framework\Code\Generator\EntityAbstract') + ->disableOriginalConstructor() + ->getMock(); $objectManagerMock->expects($this->once())->method('create')->willReturn($entityGeneratorMock); $this->model->setObjectManager($objectManagerMock); $this->model->generateClass($fullClassName); @@ -88,7 +90,7 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase { $definedClassesMock = $this->getMock('Magento\Framework\Code\Generator\DefinedClasses'); $definedClassesMock->expects($this->any()) - ->method('classLoadable') + ->method('isClassLoadableFromDisc') ->willReturn(true); $this->model = new \Magento\Framework\Code\Generator( $this->ioObjectMock, @@ -133,7 +135,9 @@ class GeneratorTest extends \PHPUnit_Framework_TestCase $expectedEntities = array_values($this->expectedEntities); $resultClassName = self::SOURCE_CLASS . ucfirst(array_shift($expectedEntities)); $objectManagerMock = $this->getMock('Magento\Framework\ObjectManagerInterface'); - $entityGeneratorMock = $this->getMockBuilder($resultClassName)->disableOriginalConstructor()->getMock(); + $entityGeneratorMock = $this->getMockBuilder('\Magento\Framework\Code\Generator\EntityAbstract') + ->disableOriginalConstructor() + ->getMock(); $objectManagerMock->expects($this->once())->method('create')->willReturn($entityGeneratorMock); $this->model->setObjectManager($objectManagerMock); $this->model->generateClass($resultClassName); diff --git a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Code/Generator/ConverterTest.php b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Code/Generator/ConverterTest.php index c03b20e274c..10bafa24672 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Code/Generator/ConverterTest.php +++ b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Code/Generator/ConverterTest.php @@ -77,7 +77,7 @@ class ConverterTest extends \PHPUnit_Framework_TestCase //Mocking _validateData call $this->definedClassesMock->expects($this->at(0)) - ->method('classLoadable') + ->method('isClassLoadable') ->will($this->returnValue(true)); $this->ioObjectMock->expects($this->once()) diff --git a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Code/Generator/RepositoryTest.php b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Code/Generator/RepositoryTest.php index 08c9586b45d..1be208085ab 100644 --- a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Code/Generator/RepositoryTest.php +++ b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Code/Generator/RepositoryTest.php @@ -41,7 +41,7 @@ class RepositoryTest extends EntityChildTestAbstract protected function mockDefinedClassesCall() { $this->definedClassesMock->expects($this->at(0)) - ->method('classLoadable') + ->method('isClassLoadable') ->with($this->getSourceClassName() . 'Interface') ->willReturn(true); } -- GitLab From 00de00fb3026b7b4676aa98999e43b37c625fa28 Mon Sep 17 00:00:00 2001 From: Dale Sikkema <dsikkema@ebay.com> Date: Tue, 29 Sep 2015 17:41:21 -0500 Subject: [PATCH 159/420] MAGETWO-43197: Product's options are not saved after running setup:di:compile --- lib/internal/Magento/Framework/Code/Generator.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/internal/Magento/Framework/Code/Generator.php b/lib/internal/Magento/Framework/Code/Generator.php index 2fdcd37ea11..ae9688d2b48 100644 --- a/lib/internal/Magento/Framework/Code/Generator.php +++ b/lib/internal/Magento/Framework/Code/Generator.php @@ -113,6 +113,7 @@ class Generator * Include file only if the class is not already defined in memory * * @param string $fileName + * @param $className * @return void */ public function tryToIncludeFile($fileName, $className) -- GitLab From a1256d73bdf921f2df582f1172d88ae51941e659 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Wed, 30 Sep 2015 09:51:48 +0300 Subject: [PATCH 160/420] MAGETWO-42995: Stabilize functional tests --- .../catalog/product/composite/configure.js | 1244 +++++---- .../adminhtml/web/order/create/scripts.js | 2467 ++++++++--------- 2 files changed, 1859 insertions(+), 1852 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js index 1461078d6b6..633664aefe4 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js @@ -6,627 +6,651 @@ define([ "jquery", "jquery/ui", "mage/translate", - "prototype", - 'Magento_Ui/js/modal/modal' + "prototype" ], function(jQuery){ -window.ProductConfigure = Class.create(); - -ProductConfigure.prototype = { - - listTypes: $H({}), - current: $H({}), - itemsFilter: $H({}), - blockWindow: null, - blockForm: null, - blockFormFields: null, - blockFormAdd: null, - blockFormConfirmed: null, - blockConfirmed: null, - blockIFrame: null, - blockCancelBtn: null, - blockMask: null, - blockMsg: null, - blockMsgError: null, - windowHeight: null, - confirmedCurrentId: null, - confirmCallback: {}, - cancelCallback: {}, - onLoadIFrameCallback: {}, - showWindowCallback: {}, - beforeSubmitCallback: {}, - iFrameJSVarname: null, - _listTypeId: 1, - - /** - * Initialize object - */ - initialize: function() { - var self = this; - - this.dialog = jQuery('#product_composite_configure').modal({ - title: jQuery.mage.__('Configure Product'), - type: 'slide', - buttons: [{ - text: jQuery.mage.__('OK'), - 'class': 'action-primary', - click: function () { - self.onConfirmBtn(); - } - }] - }); - this._initWindowElements(); - }, - - /** - * Initialize window elements - */ - _initWindowElements: function() { - this.blockWindow = $('product_composite_configure'); - this.blockForm = $('product_composite_configure_form'); - this.blockFormFields = $('product_composite_configure_form_fields'); - this.blockFormAdd = $('product_composite_configure_form_additional'); - this.blockFormConfirmed = $('product_composite_configure_form_confirmed'); - this.blockConfirmed = $('product_composite_configure_confirmed'); - this.blockIFrame = $('product_composite_configure_iframe'); - this.blockCancelBtn = $('product_composite_configure_form_cancel'); - this.blockMsg = $('product_composite_configure_messages'); - this.blockMsgError = this.blockMsg.select('.message.error div')[0]; - this.iFrameJSVarname = this.blockForm.select('input[name="as_js_varname"]')[0].value; - }, - - /** - * Returns next unique list type id - */ - _generateListTypeId: function () { - return '_internal_lt_' + (this._listTypeId++); - }, - - /** - * Add product list types as scope and their urls - * expamle: addListType('product_to_add', {urlFetch: 'http://magento...'}) - * expamle: addListType('wishlist', {urlSubmit: 'http://magento...'}) - * - * @param type types as scope - * @param urls obj can be - * - {urlFetch: 'http://magento...'} for fetching configuration fields through ajax - * - {urlConfirm: 'http://magento...'} for submit configured data through iFrame when clicked confirm button - * - {urlSubmit: 'http://magento...'} for submit configured data through iFrame - */ - addListType: function(type, urls) { - if ('undefined' == typeof this.listTypes[type]) { + window.ProductConfigure = Class.create(); + + ProductConfigure.prototype = { + + listTypes: $H({}), + current: $H({}), + itemsFilter: $H({}), + blockWindow: null, + blockForm: null, + blockFormFields: null, + blockFormAdd: null, + blockFormConfirmed: null, + blockConfirmed: null, + blockIFrame: null, + blockCancelBtn: null, + blockMask: null, + blockMsg: null, + blockMsgError: null, + windowHeight: null, + confirmedCurrentId: null, + confirmCallback: {}, + cancelCallback: {}, + onLoadIFrameCallback: {}, + showWindowCallback: {}, + beforeSubmitCallback: {}, + iFrameJSVarname: null, + _listTypeId: 1, + + /** + * Initialize object + */ + initialize: function() { + this._initWindowElements(); + var self = this; + this.dialog = jQuery('#product_composite_configure').dialog({ + autoOpen: false, + title: jQuery.mage.__('Configure Product'), + modal: true, + minWidth: 500, + width: '75%', + dialogClass: 'popup-window', + position: { + my: 'left top', + at: 'center top', + of: 'body' + }, + open: function () { + jQuery(this).addClass('magento_message').css('max-height', '500px'); + jQuery(this).closest('.ui-dialog').addClass('ui-dialog-active'); + + var topMargin = jQuery(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30; + jQuery(this).closest('.ui-dialog').css('margin-top', topMargin); + }, + close: function() { + jQuery(this).closest('.ui-dialog').removeClass('ui-dialog-active'); + }, + buttons: [{ + text: jQuery.mage.__('OK'), + 'class': 'action-primary', + click: function() { + self.onConfirmBtn(); + } + }, { + id: "product_composite_configure_form_cancel", + text: "Cancel", + 'class': 'action-close', + click: function() { + jQuery(this).dialog("close"); + } + }] + }); + }, + + /** + * Initialize window elements + */ + _initWindowElements: function() { + this.blockWindow = $('product_composite_configure'); + this.blockForm = $('product_composite_configure_form'); + this.blockFormFields = $('product_composite_configure_form_fields'); + this.blockFormAdd = $('product_composite_configure_form_additional'); + this.blockFormConfirmed = $('product_composite_configure_form_confirmed'); + this.blockConfirmed = $('product_composite_configure_confirmed'); + this.blockIFrame = $('product_composite_configure_iframe'); + this.blockCancelBtn = $('product_composite_configure_form_cancel'); + this.blockMsg = $('product_composite_configure_messages'); + this.blockMsgError = this.blockMsg.select('.message.error div')[0]; + this.iFrameJSVarname = this.blockForm.select('input[name="as_js_varname"]')[0].value; + }, + + /** + * Returns next unique list type id + */ + _generateListTypeId: function () { + return '_internal_lt_' + (this._listTypeId++); + }, + + /** + * Add product list types as scope and their urls + * expamle: addListType('product_to_add', {urlFetch: 'http://magento...'}) + * expamle: addListType('wishlist', {urlSubmit: 'http://magento...'}) + * + * @param type types as scope + * @param urls obj can be + * - {urlFetch: 'http://magento...'} for fetching configuration fields through ajax + * - {urlConfirm: 'http://magento...'} for submit configured data through iFrame when clicked confirm button + * - {urlSubmit: 'http://magento...'} for submit configured data through iFrame + */ + addListType: function(type, urls) { + if ('undefined' == typeof this.listTypes[type]) { + this.listTypes[type] = {}; + } + Object.extend(this.listTypes[type], urls); + return this; + }, + + /** + * Adds complex list type - that is used to submit several list types at once + * Only urlSubmit is possible for this list type + * expamle: addComplexListType(['wishlist', 'product_list'], 'http://magento...') + * + * @param type types as scope + * @param urls obj can be + * - {urlSubmit: 'http://magento...'} for submit configured data through iFrame + * @return type string + */ + addComplexListType: function(types, urlSubmit) { + var type = this._generateListTypeId(); this.listTypes[type] = {}; - } - Object.extend(this.listTypes[type], urls); - return this; - }, - - /** - * Adds complex list type - that is used to submit several list types at once - * Only urlSubmit is possible for this list type - * expamle: addComplexListType(['wishlist', 'product_list'], 'http://magento...') - * - * @param type types as scope - * @param urls obj can be - * - {urlSubmit: 'http://magento...'} for submit configured data through iFrame - * @return type string - */ - addComplexListType: function(types, urlSubmit) { - var type = this._generateListTypeId(); - this.listTypes[type] = {}; - this.listTypes[type].complexTypes = types; - this.listTypes[type].urlSubmit = urlSubmit; - return type; - }, - - /** - * Add filter of items - * - * @param listType scope name - * @param itemsFilter - */ - addItemsFilter: function(listType, itemsFilter) { - if (!listType || !itemsFilter) { - return false; - } - if ('undefined' == typeof this.itemsFilter[listType]) { - this.itemsFilter[listType] = []; - } - this.itemsFilter[listType] = this.itemsFilter[listType].concat(itemsFilter); - return this; - }, - - /** - * Returns id of block where configuration for an item is stored - * - * @param listType scope name - * @param itemId - * @return string - */ - _getConfirmedBlockId: function (listType, itemId) { - return this.blockConfirmed.id + '[' + listType + '][' + itemId + ']'; - }, - - /** - * Checks whether item has some configuration fields - * - * @param listType scope name - * @param itemId - * @return bool - */ - itemConfigured: function (listType, itemId) { - var confirmedBlockId = this._getConfirmedBlockId(listType, itemId); - var itemBlock = $(confirmedBlockId); - return !!(itemBlock && itemBlock.innerHTML); - }, - - /** - * Show configuration fields of item, if it not found then get it through ajax - * - * @param listType scope name - * @param itemId - */ - showItemConfiguration: function(listType, itemId) { - if (!listType || !itemId) { - return false; - } + this.listTypes[type].complexTypes = types; + this.listTypes[type].urlSubmit = urlSubmit; + return type; + }, - this.initialize(); - this.current.listType = listType; - this.current.itemId = itemId; - this.confirmedCurrentId = this._getConfirmedBlockId(listType, itemId); + /** + * Add filter of items + * + * @param listType scope name + * @param itemsFilter + */ + addItemsFilter: function(listType, itemsFilter) { + if (!listType || !itemsFilter) { + return false; + } + if ('undefined' == typeof this.itemsFilter[listType]) { + this.itemsFilter[listType] = []; + } + this.itemsFilter[listType] = this.itemsFilter[listType].concat(itemsFilter); + return this; + }, - if (!this.itemConfigured(listType, itemId)) { - this._requestItemConfiguration(listType, itemId); - } else { - this._processFieldsData('item_restore'); - this._showWindow(); - } - }, - - /** - * Get configuration fields of product through ajax and show them - * - * @param listType scope name - * @param itemId - */ - _requestItemConfiguration: function(listType, itemId) { - if (!this.listTypes[listType].urlFetch) { - return false; - } - var url = this.listTypes[listType].urlFetch; - if (url) { - new Ajax.Request(url, { - parameters: {id: itemId}, - onSuccess: function(transport) { - var response = transport.responseText; - if (response.isJSON()) { - response = response.evalJSON(); - if (response.error) { - this.blockMsg.show(); - this.blockMsgError.innerHTML = response.message; - this.blockCancelBtn.hide(); - this.setConfirmCallback(listType, null); - this._showWindow(); - } - } else if (response) { - response = response + ''; - this.blockFormFields.update(response); + /** + * Returns id of block where configuration for an item is stored + * + * @param listType scope name + * @param itemId + * @return string + */ + _getConfirmedBlockId: function (listType, itemId) { + return this.blockConfirmed.id + '[' + listType + '][' + itemId + ']'; + }, - // Add special div to hold mage data, e.g. scripts to execute on every popup show - var mageData = {}; - var scripts = response.extractScripts(); - mageData.scripts = scripts; + /** + * Checks whether item has some configuration fields + * + * @param listType scope name + * @param itemId + * @return bool + */ + itemConfigured: function (listType, itemId) { + var confirmedBlockId = this._getConfirmedBlockId(listType, itemId); + var itemBlock = $(confirmedBlockId); + return !!(itemBlock && itemBlock.innerHTML); + }, - var scriptHolder = new Element('div', {'style': 'display:none'}); - scriptHolder.mageData = mageData; - this.blockFormFields.insert(scriptHolder); + /** + * Show configuration fields of item, if it not found then get it through ajax + * + * @param listType scope name + * @param itemId + */ + showItemConfiguration: function(listType, itemId) { + if (!listType || !itemId) { + return false; + } - // Show window - this._showWindow(); - } - }.bind(this) - }); - } - }, - - /** - * Triggered on confirm button click - * Do submit configured data through iFrame if needed - */ - onConfirmBtn: function() { - if (jQuery(this.blockForm).valid()) { - if (this.listTypes[this.current.listType].urlConfirm) { - this.submit(); + this.initialize(); + this.current.listType = listType; + this.current.itemId = itemId; + this.confirmedCurrentId = this._getConfirmedBlockId(listType, itemId); + + if (!this.itemConfigured(listType, itemId)) { + this._requestItemConfiguration(listType, itemId); } else { - this._processFieldsData('item_confirm'); - this._closeWindow(); - if (Object.isFunction(this.confirmCallback[this.current.listType])) { - this.confirmCallback[this.current.listType](); - } + this._processFieldsData('item_restore'); + this._showWindow(); } - } - return this; - }, - - /** - * Triggered on cancel button click - */ - onCancelBtn: function() { - this._closeWindow(); - if (Object.isFunction(this.cancelCallback[this.current.listType])) { - this.cancelCallback[this.current.listType](); - } - return this; - }, - - /** - * Submit configured data through iFrame - * - * @param listType scope name - */ - submit: function (listType) { - // prepare data - if (listType) { - this.current.listType = listType; - this.current.itemId = null; - } - var urlConfirm = this.listTypes[this.current.listType].urlConfirm; - var urlSubmit = this.listTypes[this.current.listType].urlSubmit; - if (!urlConfirm && !urlSubmit) { - return false; - } - if (urlConfirm) { - this.blockForm.action = urlConfirm; - this.addFields([new Element('input', {type: 'hidden', name: 'id', value: this.current.itemId})]); - } else { - this.blockForm.action = urlSubmit; - - var complexTypes = this.listTypes[this.current.listType].complexTypes; - if (complexTypes) { - this.addFields([new Element('input', {type: 'hidden', name: 'configure_complex_list_types', value: complexTypes.join(',')})]); + }, + + /** + * Get configuration fields of product through ajax and show them + * + * @param listType scope name + * @param itemId + */ + _requestItemConfiguration: function(listType, itemId) { + if (!this.listTypes[listType].urlFetch) { + return false; } + var url = this.listTypes[listType].urlFetch; + if (url) { + new Ajax.Request(url, { + parameters: {id: itemId}, + onSuccess: function(transport) { + var response = transport.responseText; + if (response.isJSON()) { + response = response.evalJSON(); + if (response.error) { + this.blockMsg.show(); + this.blockMsgError.innerHTML = response.message; + this.blockCancelBtn.hide(); + this.setConfirmCallback(listType, null); + this._showWindow(); + } + } else if (response) { + response = response + ''; + this.blockFormFields.update(response); - this._processFieldsData('current_confirmed_to_form'); + // Add special div to hold mage data, e.g. scripts to execute on every popup show + var mageData = {}; + var scripts = response.extractScripts(); + mageData.scripts = scripts; - // Disable item controls that duplicate added fields (e.g. sometimes qty controls can intersect) - // so they won't be submitted - var tagNames = ['input', 'select', 'textarea']; + var scriptHolder = new Element('div', {'style': 'display:none'}); + scriptHolder.mageData = mageData; + this.blockFormFields.insert(scriptHolder); - var names = {}; // Map of added field names - for (var i = 0, len = tagNames.length; i < len; i++) { - var tagName = tagNames[i]; - var elements = this.blockFormAdd.getElementsByTagName(tagName); - for (var index = 0, elLen = elements.length; index < elLen; index++) { - names[elements[index].name] = true; - } + // Show window + this._showWindow(); + } + }.bind(this) + }); } + }, - for (var i = 0, len = tagNames.length; i < len; i++) { - var tagName = tagNames[i]; - var elements = this.blockFormConfirmed.getElementsByTagName(tagName); - for (var index = 0, elLen = elements.length; index < elLen; index++) { - var element = elements[index]; - if (names[element.name]) { - element.setAttribute('configure_disabled', 1); - element.setAttribute('configure_prev_disabled', element.disabled ? 1 : 0); - element.disabled = true; - } else { - element.setAttribute('configure_disabled', 0); - } - } - } - } - // do submit - if (Object.isFunction(this.beforeSubmitCallback[this.current.listType])) { - this.beforeSubmitCallback[this.current.listType](); - } - this.blockForm.submit(); - - // Show loader - jQuery(this.blockForm).trigger('processStart'); - - return this; - }, - - /** - * Add dynamically additional fields for form - * - * @param fields - */ - addFields: function(fields) { - fields.each(function(elm) { - this.blockFormAdd.insert(elm); - }.bind(this)); - return this; - }, - - /** - * Triggered when form was submitted and iFrame was loaded. Get response from iFrame and handle it - */ - onLoadIFrame: function() { - this.blockFormConfirmed.select('[configure_disabled=1]').each(function (element) { - element.disabled = element.getAttribute('configure_prev_disabled') == '1'; - }); - - this._processFieldsData('form_confirmed_to_confirmed'); - - var response = this.blockIFrame.contentWindow[this.iFrameJSVarname]; - if (response && "object" == typeof response) { - if (this.listTypes[this.current.listType].urlConfirm) { - if (response.ok) { + /** + * Triggered on confirm button click + * Do submit configured data through iFrame if needed + */ + onConfirmBtn: function() { + if (jQuery(this.blockForm).valid()) { + if (this.listTypes[this.current.listType].urlConfirm) { + this.submit(); + } else { + this._processFieldsData('item_confirm'); this._closeWindow(); - this.clean('current'); - } else if (response.error) { - this.showItemConfiguration(this.current.listType, this.current.itemId); - this.blockMsg.show(); - this.blockMsgError.innerHTML = response.message; - this._showWindow(); - return false; + if (Object.isFunction(this.confirmCallback[this.current.listType])) { + this.confirmCallback[this.current.listType](); + } } } - if (Object.isFunction(this.onLoadIFrameCallback[this.current.listType])) { - this.onLoadIFrameCallback[this.current.listType](response); + return this; + }, + + /** + * Triggered on cancel button click + */ + onCancelBtn: function() { + this._closeWindow(); + if (Object.isFunction(this.cancelCallback[this.current.listType])) { + this.cancelCallback[this.current.listType](); } - document.fire(this.current.listType + ':afterIFrameLoaded'); - } - // Hide loader - jQuery(this.blockForm).trigger('processStop'); - - this.clean('current'); - this.initialize(); - }, - - /** - * Helper for fetching content from iFrame - */ - _getIFrameContent: function() { - var content = (this.blockIFrame.contentWindow || this.blockIFrame.contentDocument); - if (content.document) { - content=content.document; - } - return content; - }, - - /** - * Helper to find qty of currently confirmed item - */ - getCurrentConfirmedQtyElement: function() { - var elms = $(this.confirmedCurrentId).getElementsByTagName('input'); - for (var i = 0; i < elms.length; i++) { - if (elms[i].name == 'qty') { - return elms[i]; + return this; + }, + + /** + * Submit configured data through iFrame + * + * @param listType scope name + */ + submit: function (listType) { + // prepare data + if (listType) { + this.current.listType = listType; + this.current.itemId = null; } - } - }, - - /** - * Helper to find qty of active form - */ - getCurrentFormQtyElement: function() { - var elms = this.blockFormFields.getElementsByTagName('input'); - for (var i = 0; i < elms.length; i++) { - if (elms[i].name == 'qty') { - return elms[i]; + var urlConfirm = this.listTypes[this.current.listType].urlConfirm; + var urlSubmit = this.listTypes[this.current.listType].urlSubmit; + if (!urlConfirm && !urlSubmit) { + return false; } - } - }, + if (urlConfirm) { + this.blockForm.action = urlConfirm; + this.addFields([new Element('input', {type: 'hidden', name: 'id', value: this.current.itemId})]); + } else { + this.blockForm.action = urlSubmit; - /** - * Show configuration window - */ - _showWindow: function() { - this.dialog.modal('openModal'); - //this._toggleSelectsExceptBlock(false); + var complexTypes = this.listTypes[this.current.listType].complexTypes; + if (complexTypes) { + this.addFields([new Element('input', {type: 'hidden', name: 'configure_complex_list_types', value: complexTypes.join(',')})]); + } - if (Object.isFunction(this.showWindowCallback[this.current.listType])) { - this.showWindowCallback[this.current.listType](); - } - }, - - /** - * toggles Selects states (for IE) except those to be shown in popup - */ - /*_toggleSelectsExceptBlock: function(flag) { - if(Prototype.Browser.IE){ - if (this.blockForm) { - var states = new Array; - var selects = this.blockForm.getElementsByTagName("select"); - for(var i=0; i<selects.length; i++){ - states[i] = selects[i].style.visibility + this._processFieldsData('current_confirmed_to_form'); + + // Disable item controls that duplicate added fields (e.g. sometimes qty controls can intersect) + // so they won't be submitted + var tagNames = ['input', 'select', 'textarea']; + + var names = {}; // Map of added field names + for (var i = 0, len = tagNames.length; i < len; i++) { + var tagName = tagNames[i]; + var elements = this.blockFormAdd.getElementsByTagName(tagName); + for (var index = 0, elLen = elements.length; index < elLen; index++) { + names[elements[index].name] = true; + } } + + for (var i = 0, len = tagNames.length; i < len; i++) { + var tagName = tagNames[i]; + var elements = this.blockFormConfirmed.getElementsByTagName(tagName); + for (var index = 0, elLen = elements.length; index < elLen; index++) { + var element = elements[index]; + if (names[element.name]) { + element.setAttribute('configure_disabled', 1); + element.setAttribute('configure_prev_disabled', element.disabled ? 1 : 0); + element.disabled = true; + } else { + element.setAttribute('configure_disabled', 0); + } + } + } + } + // do submit + if (Object.isFunction(this.beforeSubmitCallback[this.current.listType])) { + this.beforeSubmitCallback[this.current.listType](); } - if (this.blockForm) { - for(i=0; i<selects.length; i++){ - selects[i].style.visibility = states[i] + this.blockForm.submit(); + + // Show loader + jQuery(this.blockForm).trigger('processStart'); + + return this; + }, + + /** + * Add dynamically additional fields for form + * + * @param fields + */ + addFields: function(fields) { + fields.each(function(elm) { + this.blockFormAdd.insert(elm); + }.bind(this)); + return this; + }, + + /** + * Triggered when form was submitted and iFrame was loaded. Get response from iFrame and handle it + */ + onLoadIFrame: function() { + this.blockFormConfirmed.select('[configure_disabled=1]').each(function (element) { + element.disabled = element.getAttribute('configure_prev_disabled') == '1'; + }); + + this._processFieldsData('form_confirmed_to_confirmed'); + + var response = this.blockIFrame.contentWindow[this.iFrameJSVarname]; + if (response && "object" == typeof response) { + if (this.listTypes[this.current.listType].urlConfirm) { + if (response.ok) { + this._closeWindow(); + this.clean('current'); + } else if (response.error) { + this.showItemConfiguration(this.current.listType, this.current.itemId); + this.blockMsg.show(); + this.blockMsgError.innerHTML = response.message; + this._showWindow(); + return false; + } } + if (Object.isFunction(this.onLoadIFrameCallback[this.current.listType])) { + this.onLoadIFrameCallback[this.current.listType](response); + } + document.fire(this.current.listType + ':afterIFrameLoaded'); } - } - },*/ - - /** - * Close configuration window - */ - _closeWindow: function() { - this.dialog.modal('closeModal'); - //this.blockWindow.style.display = 'none'; - //this.clean('window'); - }, - - /** - * Attach callback function triggered when confirm button was clicked - * - * @param confirmCallback - */ - setConfirmCallback: function(listType, confirmCallback) { - this.confirmCallback[listType] = confirmCallback; - return this; - }, - - /** - * Attach callback function triggered when cancel button was clicked - * - * @param cancelCallback - */ - setCancelCallback: function(listType, cancelCallback) { - this.cancelCallback[listType] = cancelCallback; - return this; - }, - - /** - * Attach callback function triggered when iFrame was loaded - * - * @param onLoadIFrameCallback - */ - setOnLoadIFrameCallback: function(listType, onLoadIFrameCallback) { - this.onLoadIFrameCallback[listType] = onLoadIFrameCallback; - return this; - }, - - /** - * Attach callback function triggered when iFrame was loaded - * - * @param showWindowCallback - */ - setShowWindowCallback: function(listType, showWindowCallback) { - this.showWindowCallback[listType] = showWindowCallback; - return this; - }, - - /** - * Attach callback function triggered before submitting form - * - * @param beforeSubmitCallback - */ - setBeforeSubmitCallback: function(listType, beforeSubmitCallback) { - this.beforeSubmitCallback[listType] = beforeSubmitCallback; - return this; - }, - - /** - * Clean object data - * - * @param method can be 'all' or 'current' - */ - clean: function(method) { - var listInfo = null; - var listTypes = null; - var removeConfirmed = function (listTypes) { - this.blockConfirmed.childElements().each(function(elm) { - for (var i = 0, len = listTypes.length; i < len; i++) { - var pattern = this.blockConfirmed.id + '[' + listTypes[i] + ']'; - if (elm.id.indexOf(pattern) == 0) { - elm.remove(); - break; - } + // Hide loader + jQuery(this.blockForm).trigger('processStop'); + + this.clean('current'); + this.initialize(); + }, + + /** + * Helper for fetching content from iFrame + */ + _getIFrameContent: function() { + var content = (this.blockIFrame.contentWindow || this.blockIFrame.contentDocument); + if (content.document) { + content=content.document; + } + return content; + }, + + /** + * Helper to find qty of currently confirmed item + */ + getCurrentConfirmedQtyElement: function() { + var elms = $(this.confirmedCurrentId).getElementsByTagName('input'); + for (var i = 0; i < elms.length; i++) { + if (elms[i].name == 'qty') { + return elms[i]; } - }.bind(this)); - }.bind(this); - - switch (method) { - case 'current': - listInfo = this.listTypes[this.current.listType]; - listTypes = [this.current.listType]; - if (listInfo && listInfo.complexTypes) { - listTypes = listTypes.concat(listInfo.complexTypes); + } + }, + + /** + * Helper to find qty of active form + */ + getCurrentFormQtyElement: function() { + var elms = this.blockFormFields.getElementsByTagName('input'); + for (var i = 0; i < elms.length; i++) { + if (elms[i].name == 'qty') { + return elms[i]; } - removeConfirmed(listTypes); - break; - case 'window': - this.blockFormFields.update(); - this.blockMsg.hide(); - this.blockMsgError.update(); - this.blockCancelBtn.show(); - break; - default: - // search in list types for its cleaning - if (this.listTypes[method]) { - listInfo = this.listTypes[method]; - listTypes = [method]; - if (listInfo.complexTypes) { + } + }, + + /** + * Show configuration window + */ + _showWindow: function() { + this.dialog.dialog('open'); + //this._toggleSelectsExceptBlock(false); + + if (Object.isFunction(this.showWindowCallback[this.current.listType])) { + this.showWindowCallback[this.current.listType](); + } + }, + + /** + * toggles Selects states (for IE) except those to be shown in popup + */ + /*_toggleSelectsExceptBlock: function(flag) { + if(Prototype.Browser.IE){ + if (this.blockForm) { + var states = new Array; + var selects = this.blockForm.getElementsByTagName("select"); + for(var i=0; i<selects.length; i++){ + states[i] = selects[i].style.visibility + } + } + if (this.blockForm) { + for(i=0; i<selects.length; i++){ + selects[i].style.visibility = states[i] + } + } + } + },*/ + + /** + * Close configuration window + */ + _closeWindow: function() { + this.dialog.dialog('close'); + //this.blockWindow.style.display = 'none'; + //this.clean('window'); + }, + + /** + * Attach callback function triggered when confirm button was clicked + * + * @param confirmCallback + */ + setConfirmCallback: function(listType, confirmCallback) { + this.confirmCallback[listType] = confirmCallback; + return this; + }, + + /** + * Attach callback function triggered when cancel button was clicked + * + * @param cancelCallback + */ + setCancelCallback: function(listType, cancelCallback) { + this.cancelCallback[listType] = cancelCallback; + return this; + }, + + /** + * Attach callback function triggered when iFrame was loaded + * + * @param onLoadIFrameCallback + */ + setOnLoadIFrameCallback: function(listType, onLoadIFrameCallback) { + this.onLoadIFrameCallback[listType] = onLoadIFrameCallback; + return this; + }, + + /** + * Attach callback function triggered when iFrame was loaded + * + * @param showWindowCallback + */ + setShowWindowCallback: function(listType, showWindowCallback) { + this.showWindowCallback[listType] = showWindowCallback; + return this; + }, + + /** + * Attach callback function triggered before submitting form + * + * @param beforeSubmitCallback + */ + setBeforeSubmitCallback: function(listType, beforeSubmitCallback) { + this.beforeSubmitCallback[listType] = beforeSubmitCallback; + return this; + }, + + /** + * Clean object data + * + * @param method can be 'all' or 'current' + */ + clean: function(method) { + var listInfo = null; + var listTypes = null; + var removeConfirmed = function (listTypes) { + this.blockConfirmed.childElements().each(function(elm) { + for (var i = 0, len = listTypes.length; i < len; i++) { + var pattern = this.blockConfirmed.id + '[' + listTypes[i] + ']'; + if (elm.id.indexOf(pattern) == 0) { + elm.remove(); + break; + } + } + }.bind(this)); + }.bind(this); + + switch (method) { + case 'current': + listInfo = this.listTypes[this.current.listType]; + listTypes = [this.current.listType]; + if (listInfo && listInfo.complexTypes) { listTypes = listTypes.concat(listInfo.complexTypes); } removeConfirmed(listTypes); - // clean all - } else if (!method) { - this.current = $H({}); - this.blockConfirmed.update(); + break; + case 'window': this.blockFormFields.update(); this.blockMsg.hide(); this.blockMsgError.update(); this.blockCancelBtn.show(); - } - break; - } - this._getIFrameContent().body.innerHTML = ''; - this.blockIFrame.contentWindow[this.iFrameJSVarname] = {}; - this.blockFormAdd.update(); - this.blockFormConfirmed.update(); - this.blockForm.action = ''; - - return this; - }, - - /** - * Process fields data: save, restore, move saved to form and back - * - * @param method can be 'item_confirm', 'item_restore', 'current_confirmed_to_form', 'form_confirmed_to_confirmed' - */ - _processFieldsData: function(method) { + break; + default: + // search in list types for its cleaning + if (this.listTypes[method]) { + listInfo = this.listTypes[method]; + listTypes = [method]; + if (listInfo.complexTypes) { + listTypes = listTypes.concat(listInfo.complexTypes); + } + removeConfirmed(listTypes); + // clean all + } else if (!method) { + this.current = $H({}); + this.blockConfirmed.update(); + this.blockFormFields.update(); + this.blockMsg.hide(); + this.blockMsgError.update(); + this.blockCancelBtn.show(); + } + break; + } + this._getIFrameContent().body.innerHTML = ''; + this.blockIFrame.contentWindow[this.iFrameJSVarname] = {}; + this.blockFormAdd.update(); + this.blockFormConfirmed.update(); + this.blockForm.action = ''; + + return this; + }, /** - * Internal function for rename fields names of some list type - * if listType is not specified, then it won't be added as prefix to all names + * Process fields data: save, restore, move saved to form and back * - * @param method can be 'current_confirmed_to_form', 'form_confirmed_to_confirmed' - * @param blockItem + * @param method can be 'item_confirm', 'item_restore', 'current_confirmed_to_form', 'form_confirmed_to_confirmed' */ - var _renameFields = function(method, blockItem, listType) { - var pattern = null; - var patternFlat = null; - var replacement = null; - var replacementFlat = null - var scopeArr = blockItem.id.match(/.*\[\w+\]\[([^\]]+)\]$/); - var itemId = scopeArr[1]; - if (method == 'current_confirmed_to_form') { - pattern = RegExp('(\\w+)(\\[?)'); - patternFlat = RegExp('(\\w+)'); - replacement = 'item[' + itemId + '][$1]$2'; - replacementFlat = 'item_' + itemId + '_$1'; - if (listType) { - replacement = 'list[' + listType + '][item][' + itemId + '][$1]$2'; - replacementFlat = 'list_' + listType + '_' + replacementFlat; - } - } else if (method == 'form_confirmed_to_confirmed') { - var stPattern = 'item\\[' + itemId + '\\]\\[(\\w+)\\](.*)'; - var stPatternFlat = 'item_' + itemId + '_(\\w+)'; - if (listType) { - stPattern = 'list\\[' + listType + '\\]\\[item\\]\\[' + itemId + '\\]\\[(\\w+)\\](.*)'; - stPatternFlat = 'list_' + listType + '_' + stPatternFlat; - } - pattern = new RegExp(stPattern); - patternFlat = new RegExp(stPatternFlat); - replacement = '$1$2'; - replacementFlat = '$1'; - } else { - return false; - } - var rename = function (elms) { - for (var i = 0; i < elms.length; i++) { - if (elms[i].name && elms[i].type == 'file') { - elms[i].name = elms[i].name.replace(patternFlat, replacementFlat); - } else if (elms[i].name) { - elms[i].name = elms[i].name.replace(pattern, replacement); + _processFieldsData: function(method) { + + /** + * Internal function for rename fields names of some list type + * if listType is not specified, then it won't be added as prefix to all names + * + * @param method can be 'current_confirmed_to_form', 'form_confirmed_to_confirmed' + * @param blockItem + */ + var _renameFields = function(method, blockItem, listType) { + var pattern = null; + var patternFlat = null; + var replacement = null; + var replacementFlat = null + var scopeArr = blockItem.id.match(/.*\[\w+\]\[([^\]]+)\]$/); + var itemId = scopeArr[1]; + if (method == 'current_confirmed_to_form') { + pattern = RegExp('(\\w+)(\\[?)'); + patternFlat = RegExp('(\\w+)'); + replacement = 'item[' + itemId + '][$1]$2'; + replacementFlat = 'item_' + itemId + '_$1'; + if (listType) { + replacement = 'list[' + listType + '][item][' + itemId + '][$1]$2'; + replacementFlat = 'list_' + listType + '_' + replacementFlat; + } + } else if (method == 'form_confirmed_to_confirmed') { + var stPattern = 'item\\[' + itemId + '\\]\\[(\\w+)\\](.*)'; + var stPatternFlat = 'item_' + itemId + '_(\\w+)'; + if (listType) { + stPattern = 'list\\[' + listType + '\\]\\[item\\]\\[' + itemId + '\\]\\[(\\w+)\\](.*)'; + stPatternFlat = 'list_' + listType + '_' + stPatternFlat; } + pattern = new RegExp(stPattern); + patternFlat = new RegExp(stPatternFlat); + replacement = '$1$2'; + replacementFlat = '$1'; + } else { + return false; } - }; - rename(blockItem.getElementsByTagName('input')); - rename(blockItem.getElementsByTagName('select')); - rename(blockItem.getElementsByTagName('textarea')); - }.bind(this); - - switch (method) { - case 'item_confirm': + var rename = function (elms) { + for (var i = 0; i < elms.length; i++) { + if (elms[i].name && elms[i].type == 'file') { + elms[i].name = elms[i].name.replace(patternFlat, replacementFlat); + } else if (elms[i].name) { + elms[i].name = elms[i].name.replace(pattern, replacement); + } + } + }; + rename(blockItem.getElementsByTagName('input')); + rename(blockItem.getElementsByTagName('select')); + rename(blockItem.getElementsByTagName('textarea')); + }.bind(this); + + switch (method) { + case 'item_confirm': if (!$(this.confirmedCurrentId)) { this.blockConfirmed.insert(new Element('div', {id: this.confirmedCurrentId})); } else { @@ -635,8 +659,8 @@ ProductConfigure.prototype = { this.blockFormFields.childElements().each(function(elm) { $(this.confirmedCurrentId).insert(elm); }.bind(this)); - break; - case 'item_restore': + break; + case 'item_restore': this.blockFormFields.update(); // clone confirmed to form @@ -706,14 +730,14 @@ ProductConfigure.prototype = { } catch (e) {} this.restorePhase = false; } - break; - case 'current_confirmed_to_form': + break; + case 'current_confirmed_to_form': var allowedListTypes = {}; allowedListTypes[this.current.listType] = true; var listInfo = this.listTypes[this.current.listType]; if (listInfo.complexTypes) { for (var i = 0, len = listInfo.complexTypes.length; i < len; i++) { - allowedListTypes[listInfo.complexTypes[i]] = true; + allowedListTypes[listInfo.complexTypes[i]] = true; } } @@ -723,13 +747,13 @@ ProductConfigure.prototype = { var listType = scopeArr[1]; var itemId = scopeArr[2]; if (allowedListTypes[listType] && (!this.itemsFilter[listType] - || this.itemsFilter[listType].indexOf(itemId) != -1)) { + || this.itemsFilter[listType].indexOf(itemId) != -1)) { _renameFields(method, blockItem, listInfo.complexTypes ? listType : null); this.blockFormConfirmed.insert(blockItem); } }.bind(this)); - break; - case 'form_confirmed_to_confirmed': + break; + case 'form_confirmed_to_confirmed': var listInfo = this.listTypes[this.current.listType]; this.blockFormConfirmed.childElements().each(function(blockItem) { var scopeArr = blockItem.id.match(/.*\[(\w+)\]\[([^\]]+)\]$/); @@ -737,32 +761,32 @@ ProductConfigure.prototype = { _renameFields(method, blockItem, listInfo.complexTypes ? listType : null); this.blockConfirmed.insert(blockItem); }.bind(this)); - break; - } - }, - - /** - * Check if qty selected correctly - * - * @param object element - * @param object event - */ - changeOptionQty: function(element, event) - { - var checkQty = true; - if ('undefined' != typeof event) { - if (event.keyCode == 8 || event.keyCode == 46) { - checkQty = false; + break; + } + }, + + /** + * Check if qty selected correctly + * + * @param object element + * @param object event + */ + changeOptionQty: function(element, event) + { + var checkQty = true; + if ('undefined' != typeof event) { + if (event.keyCode == 8 || event.keyCode == 46) { + checkQty = false; + } + } + if (checkQty && (Number(element.value) <= 0 || isNaN(Number(element.value)))) { + element.value = 1; } } - if (checkQty && (Number(element.value) <= 0 || isNaN(Number(element.value)))) { - element.value = 1; - } - } -}; + }; -jQuery(document).ready(function(){ - productConfigure = new ProductConfigure(); -}); + jQuery(document).ready(function(){ + productConfigure = new ProductConfigure(); + }); }); \ No newline at end of file diff --git a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js index 29c5a354c4b..44dcfdfd226 100644 --- a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js +++ b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js @@ -4,1384 +4,1367 @@ */ define([ "jquery", - 'Magento_Ui/js/modal/confirm', - 'Magento_Ui/js/modal/alert', "mage/translate", "prototype", "Magento_Catalog/catalog/product/composite/configure" -], function(jQuery, confirm, alert){ - -window.AdminOrder = new Class.create(); - -AdminOrder.prototype = { - initialize : function(data){ - if(!data) data = {}; - this.loadBaseUrl = false; - this.customerId = data.customer_id ? data.customer_id : false; - this.storeId = data.store_id ? data.store_id : false; - this.currencyId = false; - this.currencySymbol = data.currency_symbol ? data.currency_symbol : ''; - this.addresses = data.addresses ? data.addresses : $H({}); - this.shippingAsBilling = data.shippingAsBilling ? data.shippingAsBilling : false; - this.gridProducts = $H({}); - this.gridProductsGift = $H({}); - this.billingAddressContainer = ''; - this.shippingAddressContainer= ''; - this.isShippingMethodReseted = data.shipping_method_reseted ? data.shipping_method_reseted : false; - this.overlayData = $H({}); - this.giftMessageDataChanged = false; - this.productConfigureAddFields = {}; - this.productPriceBase = {}; - this.collectElementsValue = true; - this.isOnlyVirtualProduct = false; - this.excludedPaymentMethods = []; - this.summarizePrice = true; - Event.observe(window, 'load', (function(){ - this.dataArea = new OrderFormArea('data', $(this.getAreaId('data')), this); - this.itemsArea = Object.extend(new OrderFormArea('items', $(this.getAreaId('items')), this), { - addControlButton: function(button){ - var controlButtonArea = $(this.node).select('.actions')[0]; - if (typeof controlButtonArea != 'undefined') { - var buttons = controlButtonArea.childElements(); - for (var i = 0; i < buttons.length; i++) { - if (buttons[i].innerHTML.include(button.label)) { - return ; +], function(jQuery){ + + window.AdminOrder = new Class.create(); + + AdminOrder.prototype = { + initialize : function(data){ + if(!data) data = {}; + this.loadBaseUrl = false; + this.customerId = data.customer_id ? data.customer_id : false; + this.storeId = data.store_id ? data.store_id : false; + this.currencyId = false; + this.currencySymbol = data.currency_symbol ? data.currency_symbol : ''; + this.addresses = data.addresses ? data.addresses : $H({}); + this.shippingAsBilling = data.shippingAsBilling ? data.shippingAsBilling : false; + this.gridProducts = $H({}); + this.gridProductsGift = $H({}); + this.billingAddressContainer = ''; + this.shippingAddressContainer= ''; + this.isShippingMethodReseted = data.shipping_method_reseted ? data.shipping_method_reseted : false; + this.overlayData = $H({}); + this.giftMessageDataChanged = false; + this.productConfigureAddFields = {}; + this.productPriceBase = {}; + this.collectElementsValue = true; + this.isOnlyVirtualProduct = false; + this.excludedPaymentMethods = []; + this.summarizePrice = true; + Event.observe(window, 'load', (function(){ + this.dataArea = new OrderFormArea('data', $(this.getAreaId('data')), this); + this.itemsArea = Object.extend(new OrderFormArea('items', $(this.getAreaId('items')), this), { + addControlButton: function(button){ + var controlButtonArea = $(this.node).select('.actions')[0]; + if (typeof controlButtonArea != 'undefined') { + var buttons = controlButtonArea.childElements(); + for (var i = 0; i < buttons.length; i++) { + if (buttons[i].innerHTML.include(button.label)) { + return ; + } } + button.insertIn(controlButtonArea, 'top'); } - button.insertIn(controlButtonArea, 'top'); } - } - }); - - var searchButton = new ControlButton(jQuery.mage.__('Add Products')), - searchAreaId = this.getAreaId('search'); - searchButton.onClick = function() { - $(searchAreaId).show(); - var el = this; - window.setTimeout(function () { - el.remove(); - }, 10); - }; + }); - this.dataArea.onLoad = this.dataArea.onLoad.wrap(function(proceed) { - proceed(); - this._parent.itemsArea.setNode($(this._parent.getAreaId('items'))); - this._parent.itemsArea.onLoad(); - }); + var searchButton = new ControlButton(jQuery.mage.__('Add Products')), + searchAreaId = this.getAreaId('search'); + searchButton.onClick = function() { + $(searchAreaId).show(); + var el = this; + window.setTimeout(function () { + el.remove(); + }, 10); + }; + + this.dataArea.onLoad = this.dataArea.onLoad.wrap(function(proceed) { + proceed(); + this._parent.itemsArea.setNode($(this._parent.getAreaId('items'))); + this._parent.itemsArea.onLoad(); + }); - this.itemsArea.onLoad = this.itemsArea.onLoad.wrap(function(proceed) { - proceed(); - if ($(searchAreaId) && !$(searchAreaId).visible()) { - this.addControlButton(searchButton); - } - }); - this.areasLoaded(); - this.itemsArea.onLoad(); - }).bind(this)); - - jQuery('#edit_form') - .on('submitOrder', function(){ - jQuery(this).trigger('realOrder'); - }) - .on('realOrder', this._realSubmit.bind(this)); - - }, - - areasLoaded: function(){ - }, - - itemsLoaded: function(){ - }, - - dataLoaded: function(){ - this.dataShow(); - }, - - setLoadBaseUrl : function(url){ - this.loadBaseUrl = url; - }, - - setAddresses : function(addresses){ - this.addresses = addresses; - }, - - addExcludedPaymentMethod : function(method){ - this.excludedPaymentMethods.push(method); - }, - - setCustomerId : function(id){ - this.customerId = id; - this.loadArea('header', true); - $(this.getAreaId('header')).callback = 'setCustomerAfter'; - $('back_order_top_button').hide(); - $('reset_order_top_button').show(); - }, - - setCustomerAfter : function () { - this.customerSelectorHide(); - if (this.storeId) { - $(this.getAreaId('data')).callback = 'dataLoaded'; + this.itemsArea.onLoad = this.itemsArea.onLoad.wrap(function(proceed) { + proceed(); + if ($(searchAreaId) && !$(searchAreaId).visible()) { + this.addControlButton(searchButton); + } + }); + this.areasLoaded(); + this.itemsArea.onLoad(); + }).bind(this)); + + jQuery('#edit_form') + .on('submitOrder', function(){ + jQuery(this).trigger('realOrder'); + }) + .on('realOrder', this._realSubmit.bind(this)); + + }, + + areasLoaded: function(){ + }, + + itemsLoaded: function(){ + }, + + dataLoaded: function(){ + this.dataShow(); + }, + + setLoadBaseUrl : function(url){ + this.loadBaseUrl = url; + }, + + setAddresses : function(addresses){ + this.addresses = addresses; + }, + + addExcludedPaymentMethod : function(method){ + this.excludedPaymentMethods.push(method); + }, + + setCustomerId : function(id){ + this.customerId = id; + this.loadArea('header', true); + $(this.getAreaId('header')).callback = 'setCustomerAfter'; + $('back_order_top_button').hide(); + $('reset_order_top_button').show(); + }, + + setCustomerAfter : function () { + this.customerSelectorHide(); + if (this.storeId) { + $(this.getAreaId('data')).callback = 'dataLoaded'; + this.loadArea(['data'], true); + } + else { + this.storeSelectorShow(); + } + }, + + setStoreId : function(id){ + this.storeId = id; + this.storeSelectorHide(); + this.sidebarShow(); + //this.loadArea(['header', 'sidebar','data'], true); + this.dataShow(); + this.loadArea(['header', 'data'], true); + }, + + setCurrencyId : function(id){ + this.currencyId = id; + //this.loadArea(['sidebar', 'data'], true); this.loadArea(['data'], true); - } - else { - this.storeSelectorShow(); - } - }, - - setStoreId : function(id){ - this.storeId = id; - this.storeSelectorHide(); - this.sidebarShow(); - //this.loadArea(['header', 'sidebar','data'], true); - this.dataShow(); - this.loadArea(['header', 'data'], true); - }, - - setCurrencyId : function(id){ - this.currencyId = id; - //this.loadArea(['sidebar', 'data'], true); - this.loadArea(['data'], true); - }, - - setCurrencySymbol : function(symbol){ - this.currencySymbol = symbol; - }, - - selectAddress : function(el, container){ - id = el.value; - if (id.length == 0) { - id = '0'; - } - if(this.addresses[id]){ - this.fillAddressFields(container, this.addresses[id]); - } - else{ - this.fillAddressFields(container, {}); - } + }, - var data = this.serializeData(container); - data[el.name] = id; - if(this.isShippingField(container) && !this.isShippingMethodReseted){ - this.resetShippingMethod(data); - } - else{ - this.saveData(data); - } - }, + setCurrencySymbol : function(symbol){ + this.currencySymbol = symbol; + }, - isShippingField : function(fieldId){ - if(this.shippingAsBilling){ - return fieldId.include('billing'); - } - return fieldId.include('shipping'); - }, + selectAddress : function(el, container){ + id = el.value; + if (id.length == 0) { + id = '0'; + } + if(this.addresses[id]){ + this.fillAddressFields(container, this.addresses[id]); + } + else{ + this.fillAddressFields(container, {}); + } - isBillingField : function(fieldId){ - return fieldId.include('billing'); - }, + var data = this.serializeData(container); + data[el.name] = id; + if(this.isShippingField(container) && !this.isShippingMethodReseted){ + this.resetShippingMethod(data); + } + else{ + this.saveData(data); + } + }, - bindAddressFields : function(container) { - var fields = $(container).select('input', 'select', 'textarea'); - for(var i=0;i<fields.length;i++){ - Event.observe(fields[i], 'change', this.changeAddressField.bind(this)); - } - }, + isShippingField : function(fieldId){ + if(this.shippingAsBilling){ + return fieldId.include('billing'); + } + return fieldId.include('shipping'); + }, - changeAddressField : function(event){ - var field = Event.element(event); - var re = /[^\[]*\[([^\]]*)_address\]\[([^\]]*)\](\[(\d)\])?/; - var matchRes = field.name.match(re); + isBillingField : function(fieldId){ + return fieldId.include('billing'); + }, - if (!matchRes) { - return; - } + bindAddressFields : function(container) { + var fields = $(container).select('input', 'select', 'textarea'); + for(var i=0;i<fields.length;i++){ + Event.observe(fields[i], 'change', this.changeAddressField.bind(this)); + } + }, - var type = matchRes[1]; - var name = matchRes[2]; - var data; + changeAddressField : function(event){ + var field = Event.element(event); + var re = /[^\[]*\[([^\]]*)_address\]\[([^\]]*)\](\[(\d)\])?/; + var matchRes = field.name.match(re); - if(this.isBillingField(field.id)){ - data = this.serializeData(this.billingAddressContainer) - } - else{ - data = this.serializeData(this.shippingAddressContainer) - } - data = data.toObject(); + if (!matchRes) { + return; + } - if( (type == 'billing' && this.shippingAsBilling) - || (type == 'shipping' && !this.shippingAsBilling) ) { - data['reset_shipping'] = true; - } + var type = matchRes[1]; + var name = matchRes[2]; + var data; + + if(this.isBillingField(field.id)){ + data = this.serializeData(this.billingAddressContainer) + } + else{ + data = this.serializeData(this.shippingAddressContainer) + } + data = data.toObject(); + + if( (type == 'billing' && this.shippingAsBilling) + || (type == 'shipping' && !this.shippingAsBilling) ) { + data['reset_shipping'] = true; + } - data['order['+type+'_address][customer_address_id]'] = $('order-'+type+'_address_customer_address_id').value; + data['order['+type+'_address][customer_address_id]'] = $('order-'+type+'_address_customer_address_id').value; - if (data['reset_shipping']) { - this.resetShippingMethod(data); - } else { - this.saveData(data); - if (name == 'country_id' || name == 'customer_address_id') { - this.loadArea(['shipping_method', 'billing_method', 'totals', 'items'], true, data); + if (data['reset_shipping']) { + this.resetShippingMethod(data); + } else { + this.saveData(data); + if (name == 'country_id' || name == 'customer_address_id') { + this.loadArea(['shipping_method', 'billing_method', 'totals', 'items'], true, data); + } + // added for reloading of default sender and default recipient for giftmessages + //this.loadArea(['giftmessage'], true, data); } - // added for reloading of default sender and default recipient for giftmessages - //this.loadArea(['giftmessage'], true, data); - } - }, - - fillAddressFields : function(container, data){ - var regionIdElem = false; - var regionIdElemValue = false; - - var fields = $(container).select('input', 'select', 'textarea'); - var re = /[^\[]*\[[^\]]*\]\[([^\]]*)\](\[(\d)\])?/; - for(var i=0;i<fields.length;i++){ - // skip input type file @Security error code: 1000 - if (fields[i].tagName.toLowerCase() == 'input' && fields[i].type.toLowerCase() == 'file') { - continue; - } - var matchRes = fields[i].name.match(re); - if (matchRes === null) { - continue; - } - var name = matchRes[1]; - var index = matchRes[3]; - - if (index){ - // multiply line - if (data[name]){ - var values = data[name].split("\n"); - fields[i].value = values[index] ? values[index] : ''; + }, + + fillAddressFields : function(container, data){ + var regionIdElem = false; + var regionIdElemValue = false; + + var fields = $(container).select('input', 'select', 'textarea'); + var re = /[^\[]*\[[^\]]*\]\[([^\]]*)\](\[(\d)\])?/; + for(var i=0;i<fields.length;i++){ + // skip input type file @Security error code: 1000 + if (fields[i].tagName.toLowerCase() == 'input' && fields[i].type.toLowerCase() == 'file') { + continue; + } + var matchRes = fields[i].name.match(re); + if (matchRes === null) { + continue; + } + var name = matchRes[1]; + var index = matchRes[3]; + + if (index){ + // multiply line + if (data[name]){ + var values = data[name].split("\n"); + fields[i].value = values[index] ? values[index] : ''; + } else { + fields[i].value = ''; + } + } else if (fields[i].tagName.toLowerCase() == 'select' && fields[i].multiple) { + // multiselect + if (data[name]) { + values = ['']; + if (Object.isString(data[name])) { + values = data[name].split(','); + } else if (Object.isArray(data[name])) { + values = data[name]; + } + fields[i].setValue(values); + } } else { - fields[i].value = ''; + fields[i].setValue(data[name] ? data[name] : ''); } - } else if (fields[i].tagName.toLowerCase() == 'select' && fields[i].multiple) { - // multiselect - if (data[name]) { - values = ['']; - if (Object.isString(data[name])) { - values = data[name].split(','); - } else if (Object.isArray(data[name])) { - values = data[name]; + + if (fields[i].changeUpdater) fields[i].changeUpdater(); + if (name == 'region' && data['region_id'] && !data['region']){ + fields[i].value = data['region_id']; + } + } + }, + + disableShippingAddress : function(flag) { + this.shippingAsBilling = flag; + if ($('order-shipping_address_customer_address_id')) { + $('order-shipping_address_customer_address_id').disabled = flag; + } + if ($(this.shippingAddressContainer)) { + var dataFields = $(this.shippingAddressContainer).select('input', 'select', 'textarea'); + for (var i = 0; i < dataFields.length; i++) { + dataFields[i].disabled = flag; + + if(this.isOnlyVirtualProduct) { + dataFields[i].setValue(''); } - fields[i].setValue(values); } + var buttons = $(this.shippingAddressContainer).select('button'); + // Add corresponding class to buttons while disabling them + for (i = 0; i < buttons.length; i++) { + buttons[i].disabled = flag; + if (flag) { + buttons[i].addClassName('disabled'); + } else { + buttons[i].removeClassName('disabled'); + } + } + } + }, + + setShippingAsBilling : function(flag){ + var data; + var areasToLoad = ['billing_method', 'shipping_address', 'totals', 'giftmessage']; + this.disableShippingAddress(flag); + if(flag){ + data = this.serializeData(this.billingAddressContainer); } else { - fields[i].setValue(data[name] ? data[name] : ''); + data = this.serializeData(this.shippingAddressContainer); + areasToLoad.push('shipping_method'); } + data = data.toObject(); + data['shipping_as_billing'] = flag ? 1 : 0; + data['reset_shipping'] = 1; + this.loadArea( areasToLoad, true, data); + }, + + resetShippingMethod : function(data){ + var areasToLoad = ['billing_method', 'shipping_address', 'totals', 'giftmessage', 'items']; + if(!this.isOnlyVirtualProduct) { + areasToLoad.push('shipping_method'); + areasToLoad.push('shipping_address'); + } + + data['reset_shipping'] = 1; + this.isShippingMethodReseted = true; + this.loadArea(areasToLoad, true, data); + }, + + loadShippingRates : function(){ + this.isShippingMethodReseted = false; + this.loadArea(['shipping_method', 'totals'], true, {collect_shipping_rates: 1}); + }, + + setShippingMethod : function(method){ + var data = {}; + data['order[shipping_method]'] = method; + this.loadArea(['shipping_method', 'totals', 'billing_method'], true, data); + }, - if (fields[i].changeUpdater) fields[i].changeUpdater(); - if (name == 'region' && data['region_id'] && !data['region']){ - fields[i].value = data['region_id']; + switchPaymentMethod : function(method){ + jQuery('#edit_form').trigger('changePaymentMethod', [method]); + this.setPaymentMethod(method); + var data = {}; + data['order[payment_method]'] = method; + this.loadArea(['card_validation'], true, data); + }, + + setPaymentMethod : function(method){ + if (this.paymentMethod && $('payment_form_'+this.paymentMethod)) { + var form = 'payment_form_'+this.paymentMethod; + [form + '_before', form, form + '_after'].each(function(el) { + var block = $(el); + if (block) { + block.hide(); + block.select('input', 'select', 'textarea').each(function(field) { + field.disabled = true; + }); + } + }); } - } - }, - disableShippingAddress : function(flag) { - this.shippingAsBilling = flag; - if ($('order-shipping_address_customer_address_id')) { - $('order-shipping_address_customer_address_id').disabled = flag; - } - if ($(this.shippingAddressContainer)) { - var dataFields = $(this.shippingAddressContainer).select('input', 'select', 'textarea'); - for (var i = 0; i < dataFields.length; i++) { - dataFields[i].disabled = flag; + if(!this.paymentMethod || method){ + $('order-billing_method_form').select('input', 'select', 'textarea').each(function(elem){ + if(elem.type != 'radio') elem.disabled = true; + }) + } - if(this.isOnlyVirtualProduct) { - dataFields[i].setValue(''); - } + if ($('payment_form_'+method)){ + jQuery('#' + this.getAreaId('billing_method')).trigger('contentUpdated'); + this.paymentMethod = method; + var form = 'payment_form_'+method; + [form + '_before', form, form + '_after'].each(function(el) { + var block = $(el); + if (block) { + block.show(); + block.select('input', 'select', 'textarea').each(function(field) { + field.disabled = false; + if (!el.include('_before') && !el.include('_after') && !field.bindChange) { + field.bindChange = true; + field.paymentContainer = form; + field.method = method; + field.observe('change', this.changePaymentData.bind(this)) + } + },this); + } + },this); } - var buttons = $(this.shippingAddressContainer).select('button'); - // Add corresponding class to buttons while disabling them - for (i = 0; i < buttons.length; i++) { - buttons[i].disabled = flag; - if (flag) { - buttons[i].addClassName('disabled'); + }, + + changePaymentData : function(event){ + var elem = Event.element(event); + if(elem && elem.method){ + var data = this.getPaymentData(elem.method); + if (data) { + this.loadArea(['card_validation'], true, data); } else { - buttons[i].removeClassName('disabled'); + return; } } - } - }, - - setShippingAsBilling : function(flag){ - var data; - var areasToLoad = ['billing_method', 'shipping_address', 'totals', 'giftmessage']; - this.disableShippingAddress(flag); - if(flag){ - data = this.serializeData(this.billingAddressContainer); - } else { - data = this.serializeData(this.shippingAddressContainer); - areasToLoad.push('shipping_method'); - } - data = data.toObject(); - data['shipping_as_billing'] = flag ? 1 : 0; - data['reset_shipping'] = 1; - this.loadArea( areasToLoad, true, data); - }, - - resetShippingMethod : function(data){ - var areasToLoad = ['billing_method', 'shipping_address', 'totals', 'giftmessage', 'items']; - if(!this.isOnlyVirtualProduct) { - areasToLoad.push('shipping_method'); - areasToLoad.push('shipping_address'); - } + }, - data['reset_shipping'] = 1; - this.isShippingMethodReseted = true; - this.loadArea(areasToLoad, true, data); - }, - - loadShippingRates : function(){ - this.isShippingMethodReseted = false; - this.loadArea(['shipping_method', 'totals'], true, {collect_shipping_rates: 1}); - }, - - setShippingMethod : function(method){ - var data = {}; - data['order[shipping_method]'] = method; - this.loadArea(['shipping_method', 'totals', 'billing_method'], true, data); - }, - - switchPaymentMethod : function(method){ - jQuery('#edit_form').trigger('changePaymentMethod', [method]); - this.setPaymentMethod(method); - var data = {}; - data['order[payment_method]'] = method; - this.loadArea(['card_validation'], true, data); - }, - - setPaymentMethod : function(method){ - if (this.paymentMethod && $('payment_form_'+this.paymentMethod)) { - var form = 'payment_form_'+this.paymentMethod; - [form + '_before', form, form + '_after'].each(function(el) { - var block = $(el); - if (block) { - block.hide(); - block.select('input', 'select', 'textarea').each(function(field) { - field.disabled = true; - }); - } - }); - } - - if(!this.paymentMethod || method){ - $('order-billing_method_form').select('input', 'select', 'textarea').each(function(elem){ - if(elem.type != 'radio') elem.disabled = true; - }) - } - - if ($('payment_form_'+method)){ - jQuery('#' + this.getAreaId('billing_method')).trigger('contentUpdated'); - this.paymentMethod = method; - var form = 'payment_form_'+method; - [form + '_before', form, form + '_after'].each(function(el) { - var block = $(el); - if (block) { - block.show(); - block.select('input', 'select', 'textarea').each(function(field) { - field.disabled = false; - if (!el.include('_before') && !el.include('_after') && !field.bindChange) { - field.bindChange = true; - field.paymentContainer = form; - field.method = method; - field.observe('change', this.changePaymentData.bind(this)) - } - },this); + getPaymentData : function(currentMethod){ + if (typeof(currentMethod) == 'undefined') { + if (this.paymentMethod) { + currentMethod = this.paymentMethod; + } else { + return false; } - },this); - } - }, - - changePaymentData : function(event){ - var elem = Event.element(event); - if(elem && elem.method){ - var data = this.getPaymentData(elem.method); - if (data) { - this.loadArea(['card_validation'], true, data); - } else { - return; } - } - }, - - getPaymentData : function(currentMethod){ - if (typeof(currentMethod) == 'undefined') { - if (this.paymentMethod) { - currentMethod = this.paymentMethod; - } else { + if (this.isPaymentValidationAvailable() == false) { return false; } - } - if (this.isPaymentValidationAvailable() == false) { - return false; - } - var data = {}; - var fields = $('payment_form_' + currentMethod).select('input', 'select'); - for(var i=0;i<fields.length;i++){ - data[fields[i].name] = fields[i].getValue(); - } - if ((typeof data['payment[cc_type]']) != 'undefined' && (!data['payment[cc_type]'] || !data['payment[cc_number]'])) { - return false; - } - return data; - }, - - applyCoupon : function(code){ - this.loadArea(['items', 'shipping_method', 'totals', 'billing_method'], true, {'order[coupon][code]':code, reset_shipping: true}); - this.orderItemChanged = false; - }, - - addProduct : function(id){ - this.loadArea(['items', 'shipping_method', 'totals', 'billing_method'], true, {add_product:id, reset_shipping: true}); - }, - - removeQuoteItem : function(id){ - this.loadArea(['items', 'shipping_method', 'totals', 'billing_method'], true, - {remove_item:id, from:'quote',reset_shipping: true}); - }, - - moveQuoteItem : function(id, to){ - this.loadArea(['sidebar_'+to, 'items', 'shipping_method', 'totals', 'billing_method'], this.getAreaId('items'), - {move_item:id, to:to, reset_shipping: true}); - }, - - productGridShow : function(buttonElement){ - this.productGridShowButton = buttonElement; - Element.hide(buttonElement); - this.showArea('search'); - }, - - productGridRowInit : function(grid, row){ - var checkbox = $(row).select('.checkbox')[0]; - var inputs = $(row).select('.input-text'); - if (checkbox && inputs.length > 0) { - checkbox.inputElements = inputs; - for (var i = 0; i < inputs.length; i++) { - var input = inputs[i]; - input.checkboxElement = checkbox; - - var product = this.gridProducts.get(checkbox.value); - if (product) { - var defaultValue = product[input.name]; - if (defaultValue) { - if (input.name == 'giftmessage') { - input.checked = true; - } else { - input.value = defaultValue; + var data = {}; + var fields = $('payment_form_' + currentMethod).select('input', 'select'); + for(var i=0;i<fields.length;i++){ + data[fields[i].name] = fields[i].getValue(); + } + if ((typeof data['payment[cc_type]']) != 'undefined' && (!data['payment[cc_type]'] || !data['payment[cc_number]'])) { + return false; + } + return data; + }, + + applyCoupon : function(code){ + this.loadArea(['items', 'shipping_method', 'totals', 'billing_method'], true, {'order[coupon][code]':code, reset_shipping: true}); + this.orderItemChanged = false; + }, + + addProduct : function(id){ + this.loadArea(['items', 'shipping_method', 'totals', 'billing_method'], true, {add_product:id, reset_shipping: true}); + }, + + removeQuoteItem : function(id){ + this.loadArea(['items', 'shipping_method', 'totals', 'billing_method'], true, + {remove_item:id, from:'quote',reset_shipping: true}); + }, + + moveQuoteItem : function(id, to){ + this.loadArea(['sidebar_'+to, 'items', 'shipping_method', 'totals', 'billing_method'], this.getAreaId('items'), + {move_item:id, to:to, reset_shipping: true}); + }, + + productGridShow : function(buttonElement){ + this.productGridShowButton = buttonElement; + Element.hide(buttonElement); + this.showArea('search'); + }, + + productGridRowInit : function(grid, row){ + var checkbox = $(row).select('.checkbox')[0]; + var inputs = $(row).select('.input-text'); + if (checkbox && inputs.length > 0) { + checkbox.inputElements = inputs; + for (var i = 0; i < inputs.length; i++) { + var input = inputs[i]; + input.checkboxElement = checkbox; + + var product = this.gridProducts.get(checkbox.value); + if (product) { + var defaultValue = product[input.name]; + if (defaultValue) { + if (input.name == 'giftmessage') { + input.checked = true; + } else { + input.value = defaultValue; + } } } - } - input.disabled = !checkbox.checked || input.hasClassName('input-inactive'); + input.disabled = !checkbox.checked || input.hasClassName('input-inactive'); - Event.observe(input,'keyup', this.productGridRowInputChange.bind(this)); - Event.observe(input,'change',this.productGridRowInputChange.bind(this)); + Event.observe(input,'keyup', this.productGridRowInputChange.bind(this)); + Event.observe(input,'change',this.productGridRowInputChange.bind(this)); + } } - } - }, - - productGridRowInputChange : function(event){ - var element = Event.element(event); - if (element && element.checkboxElement && element.checkboxElement.checked){ - if (element.name!='giftmessage' || element.checked) { - this.gridProducts.get(element.checkboxElement.value)[element.name] = element.value; - } else if (element.name=='giftmessage' && this.gridProducts.get(element.checkboxElement.value)[element.name]) { - delete(this.gridProducts.get(element.checkboxElement.value)[element.name]); + }, + + productGridRowInputChange : function(event){ + var element = Event.element(event); + if (element && element.checkboxElement && element.checkboxElement.checked){ + if (element.name!='giftmessage' || element.checked) { + this.gridProducts.get(element.checkboxElement.value)[element.name] = element.value; + } else if (element.name=='giftmessage' && this.gridProducts.get(element.checkboxElement.value)[element.name]) { + delete(this.gridProducts.get(element.checkboxElement.value)[element.name]); + } } - } - }, - - productGridRowClick : function(grid, event){ - var trElement = Event.findElement(event, 'tr'); - var qtyElement = trElement.select('input[name="qty"]')[0]; - var eventElement = Event.element(event); - var isInputCheckbox = eventElement.tagName == 'INPUT' && eventElement.type == 'checkbox'; - var isInputQty = eventElement.tagName == 'INPUT' && eventElement.name == 'qty'; - if (trElement && !isInputQty) { - var checkbox = Element.select(trElement, 'input[type="checkbox"]')[0]; - var confLink = Element.select(trElement, 'a')[0]; - var priceColl = Element.select(trElement, '.price')[0]; - if (checkbox) { - // processing non composite product - if (confLink.readAttribute('disabled')) { - var checked = isInputCheckbox ? checkbox.checked : !checkbox.checked; - grid.setCheckboxChecked(checkbox, checked); - // processing composite product - } else if (isInputCheckbox && !checkbox.checked) { - grid.setCheckboxChecked(checkbox, false); - // processing composite product - } else if (!isInputCheckbox || (isInputCheckbox && checkbox.checked)) { - var listType = confLink.readAttribute('list_type'); - var productId = confLink.readAttribute('product_id'); - if (typeof this.productPriceBase[productId] == 'undefined') { - var priceBase = priceColl.innerHTML.match(/.*?([\d,]+\.?\d*)/); - if (!priceBase) { - this.productPriceBase[productId] = 0; - } else { - this.productPriceBase[productId] = parseFloat(priceBase[1].replace(/,/g,'')); + }, + + productGridRowClick : function(grid, event){ + var trElement = Event.findElement(event, 'tr'); + var qtyElement = trElement.select('input[name="qty"]')[0]; + var eventElement = Event.element(event); + var isInputCheckbox = eventElement.tagName == 'INPUT' && eventElement.type == 'checkbox'; + var isInputQty = eventElement.tagName == 'INPUT' && eventElement.name == 'qty'; + if (trElement && !isInputQty) { + var checkbox = Element.select(trElement, 'input[type="checkbox"]')[0]; + var confLink = Element.select(trElement, 'a')[0]; + var priceColl = Element.select(trElement, '.price')[0]; + if (checkbox) { + // processing non composite product + if (confLink.readAttribute('disabled')) { + var checked = isInputCheckbox ? checkbox.checked : !checkbox.checked; + grid.setCheckboxChecked(checkbox, checked); + // processing composite product + } else if (isInputCheckbox && !checkbox.checked) { + grid.setCheckboxChecked(checkbox, false); + // processing composite product + } else if (!isInputCheckbox || (isInputCheckbox && checkbox.checked)) { + var listType = confLink.readAttribute('list_type'); + var productId = confLink.readAttribute('product_id'); + if (typeof this.productPriceBase[productId] == 'undefined') { + var priceBase = priceColl.innerHTML.match(/.*?([\d,]+\.?\d*)/); + if (!priceBase) { + this.productPriceBase[productId] = 0; + } else { + this.productPriceBase[productId] = parseFloat(priceBase[1].replace(/,/g,'')); + } } + productConfigure.setConfirmCallback(listType, function() { + // sync qty of popup and qty of grid + var confirmedCurrentQty = productConfigure.getCurrentConfirmedQtyElement(); + if (qtyElement && confirmedCurrentQty && !isNaN(confirmedCurrentQty.value)) { + qtyElement.value = confirmedCurrentQty.value; + } + // calc and set product price + var productPrice = this._calcProductPrice(); + if (this._isSummarizePrice()) { + productPrice += this.productPriceBase[productId]; + } + productPrice = parseFloat(productPrice); + priceColl.innerHTML = this.currencySymbol + productPrice.toFixed(2); + // and set checkbox checked + grid.setCheckboxChecked(checkbox, true); + }.bind(this)); + productConfigure.setCancelCallback(listType, function() { + if (!$(productConfigure.confirmedCurrentId) || !$(productConfigure.confirmedCurrentId).innerHTML) { + grid.setCheckboxChecked(checkbox, false); + } + }); + productConfigure.setShowWindowCallback(listType, function() { + // sync qty of grid and qty of popup + var formCurrentQty = productConfigure.getCurrentFormQtyElement(); + if (formCurrentQty && qtyElement && !isNaN(qtyElement.value)) { + formCurrentQty.value = qtyElement.value; + } + }.bind(this)); + productConfigure.showItemConfiguration(listType, productId); } - productConfigure.setConfirmCallback(listType, function() { - // sync qty of popup and qty of grid - var confirmedCurrentQty = productConfigure.getCurrentConfirmedQtyElement(); - if (qtyElement && confirmedCurrentQty && !isNaN(confirmedCurrentQty.value)) { - qtyElement.value = confirmedCurrentQty.value; - } - // calc and set product price - var productPrice = this._calcProductPrice(); - if (this._isSummarizePrice()) { - productPrice += this.productPriceBase[productId]; - } - productPrice = parseFloat(productPrice); - priceColl.innerHTML = this.currencySymbol + productPrice.toFixed(2); - // and set checkbox checked - grid.setCheckboxChecked(checkbox, true); - }.bind(this)); - productConfigure.setCancelCallback(listType, function() { - if (!$(productConfigure.confirmedCurrentId) || !$(productConfigure.confirmedCurrentId).innerHTML) { - grid.setCheckboxChecked(checkbox, false); - } - }); - productConfigure.setShowWindowCallback(listType, function() { - // sync qty of grid and qty of popup - var formCurrentQty = productConfigure.getCurrentFormQtyElement(); - if (formCurrentQty && qtyElement && !isNaN(qtyElement.value)) { - formCurrentQty.value = qtyElement.value; - } - }.bind(this)); - productConfigure.showItemConfiguration(listType, productId); } } - } - }, - - /** - * Is need to summarize price - */ - _isSummarizePrice: function(elm) { - if (elm && elm.hasAttribute('summarizePrice')) { - this.summarizePrice = parseInt(elm.readAttribute('summarizePrice')); - } - return this.summarizePrice; - }, - /** - * Calc product price through its options - */ - _calcProductPrice: function () { - var productPrice = 0; - var getPriceFields = function (elms) { + }, + + /** + * Is need to summarize price + */ + _isSummarizePrice: function(elm) { + if (elm && elm.hasAttribute('summarizePrice')) { + this.summarizePrice = parseInt(elm.readAttribute('summarizePrice')); + } + return this.summarizePrice; + }, + /** + * Calc product price through its options + */ + _calcProductPrice: function () { var productPrice = 0; - var getPrice = function (elm) { - var optQty = 1; - if (elm.hasAttribute('qtyId')) { - if (!$(elm.getAttribute('qtyId')).value) { - return 0; - } else { - optQty = parseFloat($(elm.getAttribute('qtyId')).value); + var getPriceFields = function (elms) { + var productPrice = 0; + var getPrice = function (elm) { + var optQty = 1; + if (elm.hasAttribute('qtyId')) { + if (!$(elm.getAttribute('qtyId')).value) { + return 0; + } else { + optQty = parseFloat($(elm.getAttribute('qtyId')).value); + } } - } - if (elm.hasAttribute('price') && !elm.disabled) { - return parseFloat(elm.readAttribute('price')) * optQty; - } - return 0; - }; - for(var i = 0; i < elms.length; i++) { - if (elms[i].type == 'select-one' || elms[i].type == 'select-multiple') { - for(var ii = 0; ii < elms[i].options.length; ii++) { - if (elms[i].options[ii].selected) { - if (this._isSummarizePrice(elms[i].options[ii])) { - productPrice += getPrice(elms[i].options[ii]); - } else { - productPrice = getPrice(elms[i].options[ii]); + if (elm.hasAttribute('price') && !elm.disabled) { + return parseFloat(elm.readAttribute('price')) * optQty; + } + return 0; + }; + for(var i = 0; i < elms.length; i++) { + if (elms[i].type == 'select-one' || elms[i].type == 'select-multiple') { + for(var ii = 0; ii < elms[i].options.length; ii++) { + if (elms[i].options[ii].selected) { + if (this._isSummarizePrice(elms[i].options[ii])) { + productPrice += getPrice(elms[i].options[ii]); + } else { + productPrice = getPrice(elms[i].options[ii]); + } } } } - } - else if (((elms[i].type == 'checkbox' || elms[i].type == 'radio') && elms[i].checked) + else if (((elms[i].type == 'checkbox' || elms[i].type == 'radio') && elms[i].checked) || ((elms[i].type == 'file' || elms[i].type == 'text' || elms[i].type == 'textarea' || elms[i].type == 'hidden') - && Form.Element.getValue(elms[i])) - ) { - if (this._isSummarizePrice(elms[i])) { - productPrice += getPrice(elms[i]); - } else { - productPrice = getPrice(elms[i]); + && Form.Element.getValue(elms[i])) + ) { + if (this._isSummarizePrice(elms[i])) { + productPrice += getPrice(elms[i]); + } else { + productPrice = getPrice(elms[i]); + } } } - } + return productPrice; + }.bind(this); + productPrice += getPriceFields($(productConfigure.confirmedCurrentId).getElementsByTagName('input')); + productPrice += getPriceFields($(productConfigure.confirmedCurrentId).getElementsByTagName('select')); + productPrice += getPriceFields($(productConfigure.confirmedCurrentId).getElementsByTagName('textarea')); return productPrice; - }.bind(this); - productPrice += getPriceFields($(productConfigure.confirmedCurrentId).getElementsByTagName('input')); - productPrice += getPriceFields($(productConfigure.confirmedCurrentId).getElementsByTagName('select')); - productPrice += getPriceFields($(productConfigure.confirmedCurrentId).getElementsByTagName('textarea')); - return productPrice; - }, - - productGridCheckboxCheck : function(grid, element, checked){ - if (checked) { - if(element.inputElements) { - this.gridProducts.set(element.value, {}); - var product = this.gridProducts.get(element.value); - for (var i = 0; i < element.inputElements.length; i++) { - var input = element.inputElements[i]; - if (!input.hasClassName('input-inactive')) { - input.disabled = false; - if (input.name == 'qty' && !input.value) { - input.value = 1; + }, + + productGridCheckboxCheck : function(grid, element, checked){ + if (checked) { + if(element.inputElements) { + this.gridProducts.set(element.value, {}); + var product = this.gridProducts.get(element.value); + for (var i = 0; i < element.inputElements.length; i++) { + var input = element.inputElements[i]; + if (!input.hasClassName('input-inactive')) { + input.disabled = false; + if (input.name == 'qty' && !input.value) { + input.value = 1; + } } - } - if (input.checked || input.name != 'giftmessage') { - product[input.name] = input.value; - } else if (product[input.name]) { - delete(product[input.name]); + if (input.checked || input.name != 'giftmessage') { + product[input.name] = input.value; + } else if (product[input.name]) { + delete(product[input.name]); + } } } + } else { + if(element.inputElements){ + for(var i = 0; i < element.inputElements.length; i++) { + element.inputElements[i].disabled = true; + } + } + this.gridProducts.unset(element.value); } - } else { - if(element.inputElements){ - for(var i = 0; i < element.inputElements.length; i++) { - element.inputElements[i].disabled = true; + grid.reloadParams = {'products[]':this.gridProducts.keys()}; + }, + + /** + * Submit configured products to quote + */ + productGridAddSelected : function(){ + if(this.productGridShowButton) Element.show(this.productGridShowButton); + var area = ['search', 'items', 'shipping_method', 'totals', 'giftmessage','billing_method']; + // prepare additional fields and filtered items of products + var fieldsPrepare = {}; + var itemsFilter = []; + var products = this.gridProducts.toObject(); + for (var productId in products) { + itemsFilter.push(productId); + var paramKey = 'item['+productId+']'; + for (var productParamKey in products[productId]) { + paramKey += '['+productParamKey+']'; + fieldsPrepare[paramKey] = products[productId][productParamKey]; } } - this.gridProducts.unset(element.value); - } - grid.reloadParams = {'products[]':this.gridProducts.keys()}; - }, - - /** - * Submit configured products to quote - */ - productGridAddSelected : function(){ - if(this.productGridShowButton) Element.show(this.productGridShowButton); - var area = ['search', 'items', 'shipping_method', 'totals', 'giftmessage','billing_method']; - // prepare additional fields and filtered items of products - var fieldsPrepare = {}; - var itemsFilter = []; - var products = this.gridProducts.toObject(); - for (var productId in products) { - itemsFilter.push(productId); - var paramKey = 'item['+productId+']'; - for (var productParamKey in products[productId]) { - paramKey += '['+productParamKey+']'; - fieldsPrepare[paramKey] = products[productId][productParamKey]; + this.productConfigureSubmit('product_to_add', area, fieldsPrepare, itemsFilter); + productConfigure.clean('quote_items'); + this.hideArea('search'); + this.gridProducts = $H({}); + }, + + selectCustomer : function(grid, event){ + var element = Event.findElement(event, 'tr'); + if (element.title){ + this.setCustomerId(element.title); } - } - this.productConfigureSubmit('product_to_add', area, fieldsPrepare, itemsFilter); - productConfigure.clean('quote_items'); - this.hideArea('search'); - this.gridProducts = $H({}); - }, - - selectCustomer : function(grid, event){ - var element = Event.findElement(event, 'tr'); - if (element.title){ - this.setCustomerId(element.title); - } - }, + }, - customerSelectorHide : function(){ - this.hideArea('customer-selector'); - }, + customerSelectorHide : function(){ + this.hideArea('customer-selector'); + }, - customerSelectorShow : function(){ - this.showArea('customer-selector'); - }, + customerSelectorShow : function(){ + this.showArea('customer-selector'); + }, - storeSelectorHide : function(){ - this.hideArea('store-selector'); - }, + storeSelectorHide : function(){ + this.hideArea('store-selector'); + }, - storeSelectorShow : function(){ - this.showArea('store-selector'); - }, + storeSelectorShow : function(){ + this.showArea('store-selector'); + }, - dataHide : function(){ - this.hideArea('data'); - }, + dataHide : function(){ + this.hideArea('data'); + }, - dataShow : function(){ - if ($('submit_order_top_button')) { - $('submit_order_top_button').show(); - } - this.showArea('data'); - }, - - clearShoppingCart : function(confirmMessage){ - var self = this; - - confirm({ - content: confirmMessage, - actions: { - confirm: function() { - self.collectElementsValue = false; - order.sidebarApplyChanges({'sidebar[empty_customer_cart]': 1}); - self.collectElementsValue = true; - } + dataShow : function(){ + if ($('submit_order_top_button')) { + $('submit_order_top_button').show(); } - }); - }, - - sidebarApplyChanges : function(auxiliaryParams) { - if ($(this.getAreaId('sidebar'))) { - var data = {}; - if (this.collectElementsValue) { - var elems = $(this.getAreaId('sidebar')).select('input'); - for (var i=0; i < elems.length; i++) { - if (elems[i].getValue()) { - data[elems[i].name] = elems[i].getValue(); + this.showArea('data'); + }, + + clearShoppingCart : function(confirmMessage){ + if (confirm(confirmMessage)) { + this.collectElementsValue = false; + order.sidebarApplyChanges({'sidebar[empty_customer_cart]': 1}); + this.collectElementsValue = true; + } + }, + + sidebarApplyChanges : function(auxiliaryParams) { + if ($(this.getAreaId('sidebar'))) { + var data = {}; + if (this.collectElementsValue) { + var elems = $(this.getAreaId('sidebar')).select('input'); + for (var i=0; i < elems.length; i++) { + if (elems[i].getValue()) { + data[elems[i].name] = elems[i].getValue(); + } } } - } - if (auxiliaryParams instanceof Object) { - for (var paramName in auxiliaryParams) { - data[paramName] = String(auxiliaryParams[paramName]); + if (auxiliaryParams instanceof Object) { + for (var paramName in auxiliaryParams) { + data[paramName] = String(auxiliaryParams[paramName]); + } } + data.reset_shipping = true; + this.loadArea(['sidebar', 'items', 'shipping_method', 'billing_method','totals', 'giftmessage'], true, data); } - data.reset_shipping = true; - this.loadArea(['sidebar', 'items', 'shipping_method', 'billing_method','totals', 'giftmessage'], true, data); - } - }, + }, - sidebarHide : function(){ - if(this.storeId === false && $('page:left') && $('page:container')){ - $('page:left').hide(); - $('page:container').removeClassName('container'); - $('page:container').addClassName('container-collapsed'); - } - }, + sidebarHide : function(){ + if(this.storeId === false && $('page:left') && $('page:container')){ + $('page:left').hide(); + $('page:container').removeClassName('container'); + $('page:container').addClassName('container-collapsed'); + } + }, - sidebarShow : function(){ - if($('page:left') && $('page:container')){ - $('page:left').show(); - $('page:container').removeClassName('container-collapsed'); - $('page:container').addClassName('container'); - } - }, - - /** - * Show configuration of product and add handlers on submit form - * - * @param productId - */ - sidebarConfigureProduct: function (listType, productId, itemId) { - // create additional fields - var params = {}; - params.reset_shipping = true; - params.add_product = productId; - this.prepareParams(params); - for (var i in params) { - if (params[i] === null) { - unset(params[i]); - } else if (typeof(params[i]) == 'boolean') { - params[i] = params[i] ? 1 : 0; + sidebarShow : function(){ + if($('page:left') && $('page:container')){ + $('page:left').show(); + $('page:container').removeClassName('container-collapsed'); + $('page:container').addClassName('container'); } - } - var fields = []; - for (var name in params) { - fields.push(new Element('input', {type: 'hidden', name: name, value: params[name]})); - } - // add additional fields before triggered submit - productConfigure.setBeforeSubmitCallback(listType, function() { - productConfigure.addFields(fields); - }.bind(this)); - // response handler - productConfigure.setOnLoadIFrameCallback(listType, function(response) { - if (!response.ok) { - return; + }, + + /** + * Show configuration of product and add handlers on submit form + * + * @param productId + */ + sidebarConfigureProduct: function (listType, productId, itemId) { + // create additional fields + var params = {}; + params.reset_shipping = true; + params.add_product = productId; + this.prepareParams(params); + for (var i in params) { + if (params[i] === null) { + unset(params[i]); + } else if (typeof(params[i]) == 'boolean') { + params[i] = params[i] ? 1 : 0; + } } - this.loadArea(['items', 'shipping_method', 'billing_method','totals', 'giftmessage'], true); - }.bind(this)); - // show item configuration - itemId = itemId ? itemId : productId; - productConfigure.showItemConfiguration(listType, itemId); - return false; - }, - - removeSidebarItem : function(id, from){ - this.loadArea(['sidebar_'+from], 'sidebar_data_'+from, {remove_item:id, from:from}); - }, - - itemsUpdate : function(){ - var area = ['sidebar', 'items', 'shipping_method', 'billing_method','totals', 'giftmessage']; - // prepare additional fields - var fieldsPrepare = {update_items: 1}; - var info = $('order-items_grid').select('input', 'select', 'textarea'); - for(var i=0; i<info.length; i++){ - if(!info[i].disabled && (info[i].type != 'checkbox' || info[i].checked)) { - fieldsPrepare[info[i].name] = info[i].getValue(); + var fields = []; + for (var name in params) { + fields.push(new Element('input', {type: 'hidden', name: name, value: params[name]})); } - } - fieldsPrepare = Object.extend(fieldsPrepare, this.productConfigureAddFields); - this.productConfigureSubmit('quote_items', area, fieldsPrepare); - this.orderItemChanged = false; - }, - - itemsOnchangeBind : function(){ - var elems = $('order-items_grid').select('input', 'select', 'textarea'); - for(var i=0; i<elems.length; i++){ - if(!elems[i].bindOnchange){ - elems[i].bindOnchange = true; - elems[i].observe('change', this.itemChange.bind(this)) + // add additional fields before triggered submit + productConfigure.setBeforeSubmitCallback(listType, function() { + productConfigure.addFields(fields); + }.bind(this)); + // response handler + productConfigure.setOnLoadIFrameCallback(listType, function(response) { + if (!response.ok) { + return; + } + this.loadArea(['items', 'shipping_method', 'billing_method','totals', 'giftmessage'], true); + }.bind(this)); + // show item configuration + itemId = itemId ? itemId : productId; + productConfigure.showItemConfiguration(listType, itemId); + return false; + }, + + removeSidebarItem : function(id, from){ + this.loadArea(['sidebar_'+from], 'sidebar_data_'+from, {remove_item:id, from:from}); + }, + + itemsUpdate : function(){ + var area = ['sidebar', 'items', 'shipping_method', 'billing_method','totals', 'giftmessage']; + // prepare additional fields + var fieldsPrepare = {update_items: 1}; + var info = $('order-items_grid').select('input', 'select', 'textarea'); + for(var i=0; i<info.length; i++){ + if(!info[i].disabled && (info[i].type != 'checkbox' || info[i].checked)) { + fieldsPrepare[info[i].name] = info[i].getValue(); + } } - } - }, - - itemChange : function(event){ - this.giftmessageOnItemChange(event); - this.orderItemChanged = true; - }, - - /** - * Submit batch of configured products - * - * @param listType - * @param area - * @param fieldsPrepare - * @param itemsFilter - */ - productConfigureSubmit : function(listType, area, fieldsPrepare, itemsFilter) { - // prepare loading areas and build url - area = this.prepareArea(area); - this.loadingAreas = area; - var url = this.loadBaseUrl + 'block/' + area + '?isAjax=true'; - - // prepare additional fields - fieldsPrepare = this.prepareParams(fieldsPrepare); - fieldsPrepare.reset_shipping = 1; - fieldsPrepare.json = 1; - - // create fields - var fields = []; - for (var name in fieldsPrepare) { - fields.push(new Element('input', {type: 'hidden', name: name, value: fieldsPrepare[name]})); - } - productConfigure.addFields(fields); + fieldsPrepare = Object.extend(fieldsPrepare, this.productConfigureAddFields); + this.productConfigureSubmit('quote_items', area, fieldsPrepare); + this.orderItemChanged = false; + }, + + itemsOnchangeBind : function(){ + var elems = $('order-items_grid').select('input', 'select', 'textarea'); + for(var i=0; i<elems.length; i++){ + if(!elems[i].bindOnchange){ + elems[i].bindOnchange = true; + elems[i].observe('change', this.itemChange.bind(this)) + } + } + }, + + itemChange : function(event){ + this.giftmessageOnItemChange(event); + this.orderItemChanged = true; + }, + + /** + * Submit batch of configured products + * + * @param listType + * @param area + * @param fieldsPrepare + * @param itemsFilter + */ + productConfigureSubmit : function(listType, area, fieldsPrepare, itemsFilter) { + // prepare loading areas and build url + area = this.prepareArea(area); + this.loadingAreas = area; + var url = this.loadBaseUrl + 'block/' + area + '?isAjax=true'; - // filter items - if (itemsFilter) { - productConfigure.addItemsFilter(listType, itemsFilter); - } + // prepare additional fields + fieldsPrepare = this.prepareParams(fieldsPrepare); + fieldsPrepare.reset_shipping = 1; + fieldsPrepare.json = 1; - // prepare and do submit - productConfigure.addListType(listType, {urlSubmit: url}); - productConfigure.setOnLoadIFrameCallback(listType, function(response){ - this.loadAreaResponseHandler(response); - }.bind(this)); - productConfigure.submit(listType); - // clean - this.productConfigureAddFields = {}; - }, - - /** - * Show configuration of quote item - * - * @param itemId - */ - showQuoteItemConfiguration: function(itemId){ - var listType = 'quote_items'; - var qtyElement = $('order-items_grid').select('input[name="item\['+itemId+'\]\[qty\]"]')[0]; - productConfigure.setConfirmCallback(listType, function() { - // sync qty of popup and qty of grid - var confirmedCurrentQty = productConfigure.getCurrentConfirmedQtyElement(); - if (qtyElement && confirmedCurrentQty && !isNaN(confirmedCurrentQty.value)) { - qtyElement.value = confirmedCurrentQty.value; - } - this.productConfigureAddFields['item['+itemId+'][configured]'] = 1; - - }.bind(this)); - productConfigure.setShowWindowCallback(listType, function() { - // sync qty of grid and qty of popup - var formCurrentQty = productConfigure.getCurrentFormQtyElement(); - if (formCurrentQty && qtyElement && !isNaN(qtyElement.value)) { - formCurrentQty.value = qtyElement.value; - } - }.bind(this)); - productConfigure.showItemConfiguration(listType, itemId); - }, - - accountFieldsBind : function(container){ - if($(container)){ - var fields = $(container).select('input', 'select', 'textarea'); - for(var i=0; i<fields.length; i++){ - if(fields[i].id == 'group_id'){ - fields[i].observe('change', this.accountGroupChange.bind(this)) + // create fields + var fields = []; + for (var name in fieldsPrepare) { + fields.push(new Element('input', {type: 'hidden', name: name, value: fieldsPrepare[name]})); + } + productConfigure.addFields(fields); + + // filter items + if (itemsFilter) { + productConfigure.addItemsFilter(listType, itemsFilter); + } + + // prepare and do submit + productConfigure.addListType(listType, {urlSubmit: url}); + productConfigure.setOnLoadIFrameCallback(listType, function(response){ + this.loadAreaResponseHandler(response); + }.bind(this)); + productConfigure.submit(listType); + // clean + this.productConfigureAddFields = {}; + }, + + /** + * Show configuration of quote item + * + * @param itemId + */ + showQuoteItemConfiguration: function(itemId){ + var listType = 'quote_items'; + var qtyElement = $('order-items_grid').select('input[name="item\['+itemId+'\]\[qty\]"]')[0]; + productConfigure.setConfirmCallback(listType, function() { + // sync qty of popup and qty of grid + var confirmedCurrentQty = productConfigure.getCurrentConfirmedQtyElement(); + if (qtyElement && confirmedCurrentQty && !isNaN(confirmedCurrentQty.value)) { + qtyElement.value = confirmedCurrentQty.value; } - else{ - fields[i].observe('change', this.accountFieldChange.bind(this)) + this.productConfigureAddFields['item['+itemId+'][configured]'] = 1; + + }.bind(this)); + productConfigure.setShowWindowCallback(listType, function() { + // sync qty of grid and qty of popup + var formCurrentQty = productConfigure.getCurrentFormQtyElement(); + if (formCurrentQty && qtyElement && !isNaN(qtyElement.value)) { + formCurrentQty.value = qtyElement.value; + } + }.bind(this)); + productConfigure.showItemConfiguration(listType, itemId); + }, + + accountFieldsBind : function(container){ + if($(container)){ + var fields = $(container).select('input', 'select', 'textarea'); + for(var i=0; i<fields.length; i++){ + if(fields[i].id == 'group_id'){ + fields[i].observe('change', this.accountGroupChange.bind(this)) + } + else{ + fields[i].observe('change', this.accountFieldChange.bind(this)) + } } } - } - }, + }, - accountGroupChange : function(){ - this.loadArea(['data'], true, this.serializeData('order-form_account').toObject()); - }, + accountGroupChange : function(){ + this.loadArea(['data'], true, this.serializeData('order-form_account').toObject()); + }, - accountFieldChange : function(){ - this.saveData(this.serializeData('order-form_account')); - }, + accountFieldChange : function(){ + this.saveData(this.serializeData('order-form_account')); + }, - commentFieldsBind : function(container){ - if($(container)){ - var fields = $(container).select('input', 'textarea'); - for(var i=0; i<fields.length; i++) - fields[i].observe('change', this.commentFieldChange.bind(this)) - } - }, + commentFieldsBind : function(container){ + if($(container)){ + var fields = $(container).select('input', 'textarea'); + for(var i=0; i<fields.length; i++) + fields[i].observe('change', this.commentFieldChange.bind(this)) + } + }, - commentFieldChange : function(){ - this.saveData(this.serializeData('order-comment')); - }, + commentFieldChange : function(){ + this.saveData(this.serializeData('order-comment')); + }, - giftmessageFieldsBind : function(container){ - if($(container)){ - var fields = $(container).select('input', 'textarea'); - for(var i=0; i<fields.length; i++) - fields[i].observe('change', this.giftmessageFieldChange.bind(this)) - } - }, - - giftmessageFieldChange : function(){ - this.giftMessageDataChanged = true; - }, - - giftmessageOnItemChange : function(event) { - var element = Event.element(event); - if(element.name.indexOf("giftmessage") != -1 && element.type == "checkbox" && !element.checked) { - var messages = $("order-giftmessage").select('textarea'); - var name; - for(var i=0; i<messages.length; i++) { - name = messages[i].id.split("_"); - if(name.length < 2) continue; - if (element.name.indexOf("[" + name[1] + "]") != -1 && messages[i].value != "") { - alert({ - content: "First, clean the Message field in Gift Message form" - }); - element.checked = true; + giftmessageFieldsBind : function(container){ + if($(container)){ + var fields = $(container).select('input', 'textarea'); + for(var i=0; i<fields.length; i++) + fields[i].observe('change', this.giftmessageFieldChange.bind(this)) + } + }, + + giftmessageFieldChange : function(){ + this.giftMessageDataChanged = true; + }, + + giftmessageOnItemChange : function(event) { + var element = Event.element(event); + if(element.name.indexOf("giftmessage") != -1 && element.type == "checkbox" && !element.checked) { + var messages = $("order-giftmessage").select('textarea'); + var name; + for(var i=0; i<messages.length; i++) { + name = messages[i].id.split("_"); + if(name.length < 2) continue; + if (element.name.indexOf("[" + name[1] + "]") != -1 && messages[i].value != "") { + alert("First, clean the Message field in Gift Message form"); + element.checked = true; + } } } - } - }, + }, + + loadArea : function(area, indicator, params){ + var deferred = new jQuery.Deferred(); + var url = this.loadBaseUrl; + if (area) { + area = this.prepareArea(area); + url += 'block/' + area; + } + if (indicator === true) indicator = 'html-body'; + params = this.prepareParams(params); + params.json = true; + if (!this.loadingAreas) this.loadingAreas = []; + if (indicator) { + this.loadingAreas = area; + new Ajax.Request(url, { + parameters:params, + loaderArea: indicator, + onSuccess: function(transport) { + var response = transport.responseText.evalJSON(); + this.loadAreaResponseHandler(response); + deferred.resolve(); + }.bind(this) + }); + } + else { + new Ajax.Request(url, { + parameters:params, + loaderArea: indicator, + onSuccess: function(transport) { + deferred.resolve(); + } + }); + } + if (typeof productConfigure != 'undefined' && area instanceof Array && area.indexOf('items') != -1) { + productConfigure.clean('quote_items'); + } + return deferred.promise(); + }, - loadArea : function(area, indicator, params){ - var deferred = new jQuery.Deferred(); - var url = this.loadBaseUrl; - if (area) { - area = this.prepareArea(area); - url += 'block/' + area; - } - if (indicator === true) indicator = 'html-body'; - params = this.prepareParams(params); - params.json = true; - if (!this.loadingAreas) this.loadingAreas = []; - if (indicator) { - this.loadingAreas = area; - new Ajax.Request(url, { - parameters:params, - loaderArea: indicator, - onSuccess: function(transport) { - var response = transport.responseText.evalJSON(); - this.loadAreaResponseHandler(response); - deferred.resolve(); - }.bind(this) - }); - } - else { - new Ajax.Request(url, { - parameters:params, - loaderArea: indicator, - onSuccess: function(transport) { - deferred.resolve(); + loadAreaResponseHandler : function (response) { + if (response.error) { + alert(response.message); + } + if (response.ajaxExpired && response.ajaxRedirect) { + setLocation(response.ajaxRedirect); + } + if (!this.loadingAreas) { + this.loadingAreas = []; + } + if (typeof this.loadingAreas == 'string') { + this.loadingAreas = [this.loadingAreas]; + } + if (this.loadingAreas.indexOf('message') == -1) { + this.loadingAreas.push('message'); + } + if (response.header) { + jQuery('.page-actions-inner').attr('data-title', response.header); + } + + for (var i = 0; i < this.loadingAreas.length; i++) { + var id = this.loadingAreas[i]; + if ($(this.getAreaId(id))) { + if ('message' != id || response[id]) { + $(this.getAreaId(id)).update(response[id]); + } + if ($(this.getAreaId(id)).callback) { + this[$(this.getAreaId(id)).callback](); + } } - }); - } - if (typeof productConfigure != 'undefined' && area instanceof Array && area.indexOf('items') != -1) { - productConfigure.clean('quote_items'); - } - return deferred.promise(); - }, + } + }, - loadAreaResponseHandler : function (response) { - if (response.error) { - alert({ - content: response.message - }); - } - if (response.ajaxExpired && response.ajaxRedirect) { - setLocation(response.ajaxRedirect); - } - if (!this.loadingAreas) { - this.loadingAreas = []; - } - if (typeof this.loadingAreas == 'string') { - this.loadingAreas = [this.loadingAreas]; - } - if (this.loadingAreas.indexOf('message') == -1) { - this.loadingAreas.push('message'); - } - if (response.header) { - jQuery('.page-actions-inner').attr('data-title', response.header); - } + prepareArea : function(area) { + if (this.giftMessageDataChanged) { + return area.without('giftmessage'); + } + return area; + }, + + saveData : function(data){ + this.loadArea(false, false, data); + }, + + showArea : function(area){ + var id = this.getAreaId(area); + if($(id)) { + $(id).show(); + this.areaOverlay(); + } + }, - for (var i = 0; i < this.loadingAreas.length; i++) { - var id = this.loadingAreas[i]; - if ($(this.getAreaId(id))) { - if ('message' != id || response[id]) { - $(this.getAreaId(id)).update(response[id]); - } - if ($(this.getAreaId(id)).callback) { - this[$(this.getAreaId(id)).callback](); - } + hideArea : function(area){ + var id = this.getAreaId(area); + if($(id)) { + $(id).hide(); + this.areaOverlay(); } - } - }, + }, - prepareArea : function(area) { - if (this.giftMessageDataChanged) { - return area.without('giftmessage'); - } - return area; - }, - - saveData : function(data){ - this.loadArea(false, false, data); - }, - - showArea : function(area){ - var id = this.getAreaId(area); - if($(id)) { - $(id).show(); - this.areaOverlay(); - } - }, + areaOverlay : function() + { + $H(order.overlayData).each(function(e){ + e.value.fx(); + }); + }, - hideArea : function(area){ - var id = this.getAreaId(area); - if($(id)) { - $(id).hide(); - this.areaOverlay(); - } - }, - - areaOverlay : function() - { - $H(order.overlayData).each(function(e){ - e.value.fx(); - }); - }, - - getAreaId : function(area){ - return 'order-'+area; - }, - - prepareParams : function(params){ - if (!params) { - params = {}; - } - if (!params.customer_id) { - params.customer_id = this.customerId; - } - if (!params.store_id) { - params.store_id = this.storeId; - } - if (!params.currency_id) { - params.currency_id = this.currencyId; - } - if (!params.form_key) { - params.form_key = FORM_KEY; - } + getAreaId : function(area){ + return 'order-'+area; + }, - if (this.isPaymentValidationAvailable()) { - var data = this.serializeData('order-billing_method'); - if (data) { - data.each(function(value) { - params[value[0]] = value[1]; - }); + prepareParams : function(params){ + if (!params) { + params = {}; } - } else { - params['payment[method]'] = this.paymentMethod; - } - return params; - }, - - /** - * Prevent from sending credit card information to server for some payment methods - * - * @returns {boolean} - */ - isPaymentValidationAvailable : function(){ - return ((typeof this.paymentMethod) == 'undefined' + if (!params.customer_id) { + params.customer_id = this.customerId; + } + if (!params.store_id) { + params.store_id = this.storeId; + } + if (!params.currency_id) { + params.currency_id = this.currencyId; + } + if (!params.form_key) { + params.form_key = FORM_KEY; + } + + if (this.isPaymentValidationAvailable()) { + var data = this.serializeData('order-billing_method'); + if (data) { + data.each(function(value) { + params[value[0]] = value[1]; + }); + } + } else { + params['payment[method]'] = this.paymentMethod; + } + return params; + }, + + /** + * Prevent from sending credit card information to server for some payment methods + * + * @returns {boolean} + */ + isPaymentValidationAvailable : function(){ + return ((typeof this.paymentMethod) == 'undefined' || this.excludedPaymentMethods.indexOf(this.paymentMethod) == -1); - }, + }, - serializeData : function(container){ - var fields = $(container).select('input', 'select', 'textarea'); - var data = Form.serializeElements(fields, true); + serializeData : function(container){ + var fields = $(container).select('input', 'select', 'textarea'); + var data = Form.serializeElements(fields, true); - return $H(data); - }, + return $H(data); + }, - toggleCustomPrice: function(checkbox, elemId, tierBlock) { - if (checkbox.checked) { - $(elemId).disabled = false; - $(elemId).show(); - if($(tierBlock)) $(tierBlock).hide(); - } - else { - $(elemId).disabled = true; - $(elemId).hide(); - if($(tierBlock)) $(tierBlock).show(); - } - }, - - submit : function() - { - jQuery('#edit_form').trigger('processStart'); - jQuery('#edit_form').trigger('submitOrder'); - }, - - _realSubmit: function () { - var disableAndSave = function() { - disableElements('save'); - jQuery('#edit_form').on('invalid-form.validate', function() { - enableElements('save'); - jQuery('#edit_form').trigger('processStop'); - jQuery('#edit_form').off('invalid-form.validate'); - }); - jQuery('#edit_form').triggerHandler('save'); - } - if (this.orderItemChanged) { - if (confirm('You have item changes')) { + toggleCustomPrice: function(checkbox, elemId, tierBlock) { + if (checkbox.checked) { + $(elemId).disabled = false; + $(elemId).show(); + if($(tierBlock)) $(tierBlock).hide(); + } + else { + $(elemId).disabled = true; + $(elemId).hide(); + if($(tierBlock)) $(tierBlock).show(); + } + }, + + submit : function() + { + jQuery('#edit_form').trigger('processStart'); + jQuery('#edit_form').trigger('submitOrder'); + }, + + _realSubmit: function () { + var disableAndSave = function() { + disableElements('save'); + jQuery('#edit_form').on('invalid-form.validate', function() { + enableElements('save'); + jQuery('#edit_form').trigger('processStop'); + jQuery('#edit_form').off('invalid-form.validate'); + }); + jQuery('#edit_form').triggerHandler('save'); + } + if (this.orderItemChanged) { + if (confirm('You have item changes')) { + disableAndSave(); + } else { + this.itemsUpdate(); + } + } else { disableAndSave(); + } + }, + + overlay : function(elId, show, observe) { + if (typeof(show) == 'undefined') { show = true; } + + var orderObj = this; + var obj = this.overlayData.get(elId); + if (!obj) { + obj = { + show: show, + el: elId, + order: orderObj, + fx: function(event) { + this.order.processOverlay(this.el, this.show); + } + }; + obj.bfx = obj.fx.bindAsEventListener(obj); + this.overlayData.set(elId, obj); } else { - this.itemsUpdate(); + obj.show = show; + Event.stopObserving(window, 'resize', obj.bfx); } - } else { - disableAndSave(); - } - }, - - overlay : function(elId, show, observe) { - if (typeof(show) == 'undefined') { show = true; } - - var orderObj = this; - var obj = this.overlayData.get(elId); - if (!obj) { - obj = { - show: show, - el: elId, - order: orderObj, - fx: function(event) { - this.order.processOverlay(this.el, this.show); - } - }; - obj.bfx = obj.fx.bindAsEventListener(obj); - this.overlayData.set(elId, obj); - } else { - obj.show = show; - Event.stopObserving(window, 'resize', obj.bfx); - } - Event.observe(window, 'resize', obj.bfx); + Event.observe(window, 'resize', obj.bfx); - this.processOverlay(elId, show); - }, + this.processOverlay(elId, show); + }, - processOverlay : function(elId, show) { - var el = $(elId); + processOverlay : function(elId, show) { + var el = $(elId); - if (!el) { - return; - } + if (!el) { + return; + } - var parentEl = el.up(1); - if (show) { - parentEl.removeClassName('ignore-validate'); - } else { - parentEl.addClassName('ignore-validate'); - } + var parentEl = el.up(1); + if (show) { + parentEl.removeClassName('ignore-validate'); + } else { + parentEl.addClassName('ignore-validate'); + } - if (Prototype.Browser.IE) { - parentEl.select('select').each(function (elem) { - if (show) { - elem.needShowOnSuccess = false; - elem.style.visibility = ''; - } else { - elem.style.visibility = 'hidden'; - elem.needShowOnSuccess = true; - } + if (Prototype.Browser.IE) { + parentEl.select('select').each(function (elem) { + if (show) { + elem.needShowOnSuccess = false; + elem.style.visibility = ''; + } else { + elem.style.visibility = 'hidden'; + elem.needShowOnSuccess = true; + } + }); + } + + parentEl.setStyle({position: 'relative'}); + el.setStyle({ + display: show ? 'none' : '' }); - } + }, - parentEl.setStyle({position: 'relative'}); - el.setStyle({ - display: show ? 'none' : '' - }); - }, - - validateVat: function(parameters) - { - var params = { - country: $(parameters.countryElementId).value, - vat: $(parameters.vatElementId).value - }; - - if (this.storeId !== false) { - params.store_id = this.storeId; - } + validateVat: function(parameters) + { + var params = { + country: $(parameters.countryElementId).value, + vat: $(parameters.vatElementId).value + }; + + if (this.storeId !== false) { + params.store_id = this.storeId; + } - var currentCustomerGroupId = $(parameters.groupIdHtmlId).value; - - new Ajax.Request(parameters.validateUrl, { - parameters: params, - onSuccess: function(response) { - var message = ''; - var groupActionRequired = null; - try { - response = response.responseText.evalJSON(); - - if (null === response.group) { - if (true === response.valid) { - message = parameters.vatValidMessage; - } else if (true === response.success) { - message = parameters.vatInvalidMessage.replace(/%s/, params.vat); + var currentCustomerGroupId = $(parameters.groupIdHtmlId).value; + + new Ajax.Request(parameters.validateUrl, { + parameters: params, + onSuccess: function(response) { + var message = ''; + var groupActionRequired = null; + try { + response = response.responseText.evalJSON(); + + if (null === response.group) { + if (true === response.valid) { + message = parameters.vatValidMessage; + } else if (true === response.success) { + message = parameters.vatInvalidMessage.replace(/%s/, params.vat); + } else { + message = parameters.vatValidationFailedMessage; + } } else { - message = parameters.vatValidationFailedMessage; - } - } else { - if (true === response.valid) { - message = parameters.vatValidAndGroupValidMessage; - if (0 === response.group) { - message = parameters.vatValidAndGroupInvalidMessage; + if (true === response.valid) { + message = parameters.vatValidAndGroupValidMessage; + if (0 === response.group) { + message = parameters.vatValidAndGroupInvalidMessage; + groupActionRequired = 'inform'; + } else if (currentCustomerGroupId != response.group) { + message = parameters.vatValidAndGroupChangeMessage; + groupActionRequired = 'change'; + } + } else if (response.success) { + message = parameters.vatInvalidMessage.replace(/%s/, params.vat); + groupActionRequired = 'inform'; + } else { + message = parameters.vatValidationFailedMessage; groupActionRequired = 'inform'; - } else if (currentCustomerGroupId != response.group) { - message = parameters.vatValidAndGroupChangeMessage; - groupActionRequired = 'change'; } - } else if (response.success) { - message = parameters.vatInvalidMessage.replace(/%s/, params.vat); - groupActionRequired = 'inform'; - } else { - message = parameters.vatValidationFailedMessage; - groupActionRequired = 'inform'; } + } catch (e) { + message = parameters.vatValidationFailedMessage; + } + if (null === groupActionRequired) { + alert(message); } - } catch (e) { - message = parameters.vatValidationFailedMessage; + else { + this.processCustomerGroupChange( + parameters.groupIdHtmlId, + message, + parameters.vatCustomerGroupMessage, + parameters.vatGroupErrorMessage, + response.group, + groupActionRequired + ); + } + }.bind(this) + }); + }, + + processCustomerGroupChange: function(groupIdHtmlId, message, customerGroupMessage, errorMessage, groupId, action) + { + var groupMessage = ''; + try { + var currentCustomerGroupId = $(groupIdHtmlId).value; + var currentCustomerGroupTitle = + $$('#' + groupIdHtmlId + ' > option[value=' + currentCustomerGroupId + ']')[0].text; + var customerGroupOption = $$('#' + groupIdHtmlId + ' > option[value=' + groupId + ']')[0]; + groupMessage = customerGroupMessage.replace(/%s/, customerGroupOption.text); + } catch (e) { + groupMessage = errorMessage; + if (action === 'change') { + message = ''; + action = 'inform'; } - if (null === groupActionRequired) { - alert({ - content: message + } + + if (action === 'change') { + var confirmText = message.replace(/%s/, customerGroupOption.text); + confirmText = confirmText.replace(/%s/, currentCustomerGroupTitle); + if (confirm(confirmText)) { + $$('#' + groupIdHtmlId + ' option').each(function (o) { + o.selected = o.readAttribute('value') == groupId; }); + this.accountGroupChange(); } - else { - this.processCustomerGroupChange( - parameters.groupIdHtmlId, - message, - parameters.vatCustomerGroupMessage, - parameters.vatGroupErrorMessage, - response.group, - groupActionRequired - ); - } - }.bind(this) - }); - }, - - processCustomerGroupChange: function(groupIdHtmlId, message, customerGroupMessage, errorMessage, groupId, action) - { - var groupMessage = ''; - try { - var currentCustomerGroupId = $(groupIdHtmlId).value; - var currentCustomerGroupTitle = - $$('#' + groupIdHtmlId + ' > option[value=' + currentCustomerGroupId + ']')[0].text; - var customerGroupOption = $$('#' + groupIdHtmlId + ' > option[value=' + groupId + ']')[0]; - groupMessage = customerGroupMessage.replace(/%s/, customerGroupOption.text); - } catch (e) { - groupMessage = errorMessage; - if (action === 'change') { - message = ''; - action = 'inform'; + } else if (action === 'inform') { + alert(message + '\n' + groupMessage); } } + }; - if (action === 'change') { - var confirmText = message.replace(/%s/, customerGroupOption.text); - confirmText = confirmText.replace(/%s/, currentCustomerGroupTitle); - if (confirm(confirmText)) { - $$('#' + groupIdHtmlId + ' option').each(function (o) { - o.selected = o.readAttribute('value') == groupId; - }); - this.accountGroupChange(); + window.OrderFormArea = Class.create(); + OrderFormArea.prototype = { + _name: null, + _node: null, + _parent: null, + _callbackName: null, + + initialize: function(name, node, parent){ + if(!node) + return; + this._name = name; + this._parent = parent; + this._callbackName = node.callback; + if (typeof this._callbackName == 'undefined') { + this._callbackName = name + 'Loaded'; + node.callback = this._callbackName; } - } else if (action === 'inform') { - alert({ - content: message + '\n' + groupMessage - }); - } - } -}; - -window.OrderFormArea = Class.create(); -OrderFormArea.prototype = { - _name: null, - _node: null, - _parent: null, - _callbackName: null, - - initialize: function(name, node, parent){ - if(!node) - return; - this._name = name; - this._parent = parent; - this._callbackName = node.callback; - if (typeof this._callbackName == 'undefined') { - this._callbackName = name + 'Loaded'; - node.callback = this._callbackName; + parent[this._callbackName] = parent[this._callbackName].wrap((function (proceed){ + proceed(); + this.onLoad(); + }).bind(this)); + + this.setNode(node); + }, + + setNode: function(node){ + if (!node.callback) { + node.callback = this._callbackName; + } + this.node = node; + }, + + onLoad: function(){ } - parent[this._callbackName] = parent[this._callbackName].wrap((function (proceed){ - proceed(); - this.onLoad(); - }).bind(this)); + }; + + window.ControlButton = Class.create(); + + ControlButton.prototype = { + _label: '', + _node: null, + + initialize: function(label){ + this._label = label; + this._node = new Element('button', { + 'class': 'action-secondary action-add', + 'type': 'button' + }); + }, - this.setNode(node); - }, + onClick: function(){ + }, - setNode: function(node){ - if (!node.callback) { - node.callback = this._callbackName; + insertIn: function(element, position){ + var node = Object.extend(this._node), + content = {}; + node.observe('click', this.onClick); + node.update('<span>' + this._label + '</span>'); + content[position] = node; + Element.insert(element, content); } - this.node = node; - }, - - onLoad: function(){ - } -}; - -window.ControlButton = Class.create(); - -ControlButton.prototype = { - _label: '', - _node: null, - - initialize: function(label){ - this._label = label; - this._node = new Element('button', { - 'class': 'action-secondary action-add', - 'type': 'button' - }); - }, - - onClick: function(){ - }, - - insertIn: function(element, position){ - var node = Object.extend(this._node), - content = {}; - node.observe('click', this.onClick); - node.update('<span>' + this._label + '</span>'); - content[position] = node; - Element.insert(element, content); - } -}; + }; }); -- GitLab From c693ed90e7533247dfe17beaa5c3db61bbe551a6 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Wed, 30 Sep 2015 10:52:02 +0300 Subject: [PATCH 161/420] MAGETWO-42995: Stabilize functional tests --- .../catalog/product/composite/configure.js | 42 ++++--------------- .../adminhtml/web/order/create/scripts.js | 39 ++++++++++++----- 2 files changed, 37 insertions(+), 44 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js index 633664aefe4..3b609c83226 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js @@ -6,7 +6,8 @@ define([ "jquery", "jquery/ui", "mage/translate", - "prototype" + "prototype", + 'Magento_Ui/js/modal/modal' ], function(jQuery){ window.ProductConfigure = Class.create(); @@ -41,45 +42,20 @@ define([ * Initialize object */ initialize: function() { - this._initWindowElements(); var self = this; - this.dialog = jQuery('#product_composite_configure').dialog({ - autoOpen: false, + + this.dialog = jQuery('#product_composite_configure').modal({ title: jQuery.mage.__('Configure Product'), - modal: true, - minWidth: 500, - width: '75%', - dialogClass: 'popup-window', - position: { - my: 'left top', - at: 'center top', - of: 'body' - }, - open: function () { - jQuery(this).addClass('magento_message').css('max-height', '500px'); - jQuery(this).closest('.ui-dialog').addClass('ui-dialog-active'); - - var topMargin = jQuery(this).closest('.ui-dialog').children('.ui-dialog-titlebar').outerHeight() + 30; - jQuery(this).closest('.ui-dialog').css('margin-top', topMargin); - }, - close: function() { - jQuery(this).closest('.ui-dialog').removeClass('ui-dialog-active'); - }, + type: 'slide', buttons: [{ text: jQuery.mage.__('OK'), 'class': 'action-primary', - click: function() { + click: function () { self.onConfirmBtn(); } - }, { - id: "product_composite_configure_form_cancel", - text: "Cancel", - 'class': 'action-close', - click: function() { - jQuery(this).dialog("close"); - } }] }); + this._initWindowElements(); }, /** @@ -440,7 +416,7 @@ define([ * Show configuration window */ _showWindow: function() { - this.dialog.dialog('open'); + this.dialog.modal('openModal'); //this._toggleSelectsExceptBlock(false); if (Object.isFunction(this.showWindowCallback[this.current.listType])) { @@ -472,7 +448,7 @@ define([ * Close configuration window */ _closeWindow: function() { - this.dialog.dialog('close'); + this.dialog.modal('closeModal'); //this.blockWindow.style.display = 'none'; //this.clean('window'); }, diff --git a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js index 44dcfdfd226..6e74d57c566 100644 --- a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js +++ b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js @@ -4,10 +4,12 @@ */ define([ "jquery", + 'Magento_Ui/js/modal/confirm', + 'Magento_Ui/js/modal/alert', "mage/translate", "prototype", "Magento_Catalog/catalog/product/composite/configure" -], function(jQuery){ +], function(jQuery, confirm, alert){ window.AdminOrder = new Class.create(); @@ -34,7 +36,7 @@ define([ this.isOnlyVirtualProduct = false; this.excludedPaymentMethods = []; this.summarizePrice = true; - Event.observe(window, 'load', (function(){ + Event.observe(window, 'load', (function(){ this.dataArea = new OrderFormArea('data', $(this.getAreaId('data')), this); this.itemsArea = Object.extend(new OrderFormArea('items', $(this.getAreaId('items')), this), { addControlButton: function(button){ @@ -704,11 +706,18 @@ define([ }, clearShoppingCart : function(confirmMessage){ - if (confirm(confirmMessage)) { - this.collectElementsValue = false; - order.sidebarApplyChanges({'sidebar[empty_customer_cart]': 1}); - this.collectElementsValue = true; - } + var self = this; + + confirm({ + content: confirmMessage, + actions: { + confirm: function() { + self.collectElementsValue = false; + order.sidebarApplyChanges({'sidebar[empty_customer_cart]': 1}); + self.collectElementsValue = true; + } + } + }); }, sidebarApplyChanges : function(auxiliaryParams) { @@ -944,7 +953,9 @@ define([ name = messages[i].id.split("_"); if(name.length < 2) continue; if (element.name.indexOf("[" + name[1] + "]") != -1 && messages[i].value != "") { - alert("First, clean the Message field in Gift Message form"); + alert({ + content: "First, clean the Message field in Gift Message form" + }); element.checked = true; } } @@ -991,7 +1002,9 @@ define([ loadAreaResponseHandler : function (response) { if (response.error) { - alert(response.message); + alert({ + content: response.message + }); } if (response.ajaxExpired && response.ajaxRedirect) { setLocation(response.ajaxRedirect); @@ -1256,7 +1269,9 @@ define([ message = parameters.vatValidationFailedMessage; } if (null === groupActionRequired) { - alert(message); + alert({ + content: message + }); } else { this.processCustomerGroupChange( @@ -1299,7 +1314,9 @@ define([ this.accountGroupChange(); } } else if (action === 'inform') { - alert(message + '\n' + groupMessage); + alert({ + content: message + '\n' + groupMessage + }); } } }; -- GitLab From 649ccda5b09b50f86141859a0859bbe3de707d29 Mon Sep 17 00:00:00 2001 From: Oleksandr Dubovyk <odubovyk@ebay.com> Date: Wed, 30 Sep 2015 11:23:43 +0300 Subject: [PATCH 162/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget --- .../adminhtml/templates/backup/dialogs.phtml | 28 ++++++----- .../templates/catalog/category/tree.phtml | 6 +-- .../Ui/view/base/web/js/modal/confirm.js | 4 +- .../source/components/_file-insertion.less | 1 - .../css/source/components/_modals_extend.less | 47 ++++++++++++------- 5 files changed, 49 insertions(+), 37 deletions(-) diff --git a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml index 87e5e91454e..a1653c260bf 100644 --- a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml +++ b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml @@ -65,12 +65,12 @@ <div class="message message-warning"><?php /* @escapeNotVerified */ echo __('Please specify backup creation option.')?></div> </div> <form action="" method="post" id="backup-form" class="form-inline"> - <fieldset class="fieldset form-list question"> - <div class="field"> - <label for="backup_name" class="label"><span><?php /* @escapeNotVerified */ echo __('Backup Name')?></span></label> - <div class="control"> + <fieldset class="admin__fieldset form-list question"> + <div class="admin__field field"> + <label for="backup_name" class="admin__field-label"><span><?php /* @escapeNotVerified */ echo __('Backup Name')?></span></label> + <div class="admin__field-control"> <input type="text" name="backup_name" id="backup_name" - class="required-entry validate-alphanum-with-spaces validate-length maximum-length-50" + class="admin__control-text required-entry validate-alphanum-with-spaces validate-length maximum-length-50" maxlength="50" /> <div class="note"> <?php /* @escapeNotVerified */ echo __('Please use only letters (a-z or A-Z), numbers (0-9) or spaces in this field.'); ?> @@ -78,17 +78,19 @@ </div> </div> - <div class="field maintenance-checkbox-container"> - <div class="control"> - <input type="checkbox" name="maintenance_mode" value="1" id="backup_maintenance_mode"/> - <label for="backup_maintenance_mode"><?php /* @escapeNotVerified */ echo __('Please put your store into maintenance mode during backup.')?></label> + <div class="admin__field field maintenance-checkbox-container"> + <label for="backup_maintenance_mode" class="admin__field-label"><span><?php /* @escapeNotVerified */ echo __('Maintenance mode')?></span></label> + <div class="admin__field-control admin__field-option"> + <input class="admin__control-checkbox" type="checkbox" name="maintenance_mode" value="1" id="backup_maintenance_mode"/> + <label class="admin__field-label" for="backup_maintenance_mode"><?php /* @escapeNotVerified */ echo __(' Please put your store into maintenance mode during backup.')?></label> </div> </div> - <div class="field maintenance-checkbox-container" id="exclude-media-checkbox-container" style="display: none;"> - <div class="control"> - <input type="checkbox" name="exclude_media" value="1" id="exclude_media"/> - <label for="exclude_media"><?php /* @escapeNotVerified */ echo __('Exclude media folder from backup') ?></label> + <div class="admin__field field maintenance-checkbox-container" id="exclude-media-checkbox-container" style="display: none;"> + <label for="exclude_media" class="admin__field-label"><span><?php /* @escapeNotVerified */ echo __('Exclude')?></span></label> + <div class="admin__field-control admin__field-option"> + <input class="admin__control-checkbox" type="checkbox" name="exclude_media" value="1" id="exclude_media"/> + <label class="admin__field-label" for="exclude_media"><?php /* @escapeNotVerified */ echo __('Exclude media folder from backup') ?></label> </div> </div> </fieldset> diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml index 488cd41ef3a..f4a8af62a1f 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml @@ -444,18 +444,18 @@ pd.splice(pd.length - 1, 1); jQuery('[data-id="information-dialog-category"]').modal({ - modalClass: 'modal-system-messages confirm', + modalClass: 'confirm', title: jQuery.mage.__('Warning message'), buttons: [{ text: 'Cancel', - class: 'action-tertiary', + class: 'action-secondary', click: function () { reRenderTree(); this.closeModal(); } }, { text: 'Ok', - class: 'action-secondary', + class: 'action-primary', click: function () { (function ($) { $.ajax({ diff --git a/app/code/Magento/Ui/view/base/web/js/modal/confirm.js b/app/code/Magento/Ui/view/base/web/js/modal/confirm.js index 73994016418..098cb866974 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/confirm.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/confirm.js @@ -35,7 +35,7 @@ define([ }, buttons: [{ text: $.mage.__('Cancel'), - class: 'action-tertiary action-dismiss', + class: 'action-secondary action-dismiss', /** * Click handler. @@ -45,7 +45,7 @@ define([ } }, { text: $.mage.__('OK'), - class: 'action-secondary action-accept', + class: 'action-primary action-accept', /** * Click handler. diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less index 76b8b557f2c..47a4c425614 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less @@ -26,7 +26,6 @@ } } - .file-row { border: 1px solid @color-gray68; margin: @indent__xs 0; diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less index 06f270e7973..6e4eb905c8e 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less @@ -24,6 +24,9 @@ @modal-popup-footer-button__margin: 2rem; @modal-popup-footer-button__padding: 1.4rem; @modal-popup-footer-button__font-size: 1.5rem; +@modal-popup-footer-button__color: @color-brownie; +@modal-prompt-message__padding: 2rem; +// .modal-popup, .modal-slide { @@ -51,11 +54,20 @@ } .modal-popup { - &.confirm { + &.prompt { + .prompt-message { + padding: @modal-prompt-message__padding 0; + input[type="text"] { + width: 100%; + } + } + } + &.confirm, + &.prompt { .modal-inner-wrap { - left: 50%; - margin-left: -(@modal-popup-confirm__width / 2); - width: @modal-popup-confirm__width; + .message { + background: @color-white; + } } } &.modal-system-messages { @@ -83,32 +95,31 @@ } } } + .modal-title { font-size: @modal-popup-title__font-size; margin-right: @modal-popup-title__font-size + @modal-popup__padding + 1rem; } - .modal-title + .action-close { - padding: @modal-popup__padding; + + .action-close { + padding: @modal-popup__padding @modal-popup__padding 0 0; &:active{ padding-top: @modal-popup__padding + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 3; padding-right: @modal-popup__padding + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 3; } } - .action-close { - padding: @modal-popup__padding / 2.5; - &:active { - padding-top: @modal-popup__padding / 3 + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 2; - padding-right: @modal-popup__padding / 3 + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 2; - } - } + .modal-footer { text-align: right; padding-top: 0; - button { - font-size: @modal-popup-footer-button__font-size; - margin-left: @modal-popup-footer-button__margin; - padding-bottom: @modal-popup-footer-button__padding; - padding-top: @modal-popup-footer-button__padding; + + .action-primary { + &:extend(.abs-action-secondary all); + &:extend(.abs-action-l all); + } + .action-secondary { + &:extend(.abs-action-tertiary all); + &:extend(.abs-action-l all); } } } -- GitLab From 0ff20610e41351d0cf8632ae7fe41340e7351276 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Wed, 30 Sep 2015 11:49:56 +0300 Subject: [PATCH 163/420] MAGETWO-42995: Stabilize functional tests --- .../view/adminhtml/web/catalog/product/composite/configure.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js index 3b609c83226..030962f2f06 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/catalog/product/composite/configure.js @@ -44,6 +44,7 @@ define([ initialize: function() { var self = this; + this._initWindowElements(); this.dialog = jQuery('#product_composite_configure').modal({ title: jQuery.mage.__('Configure Product'), type: 'slide', @@ -55,7 +56,6 @@ define([ } }] }); - this._initWindowElements(); }, /** -- GitLab From c452ebc4919c0be0a1ee45592fbde8f87a117feb Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Wed, 30 Sep 2015 12:32:30 +0300 Subject: [PATCH 164/420] MAGETWO-39933: [static scan] Dom XSS: #15723873 and #15723887 --- .../adminhtml/templates/page/locale.phtml | 21 +++++--- lib/web/mage/validation/url.js | 50 +++++++++++++++++++ 2 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 lib/web/mage/validation/url.js diff --git a/app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml b/app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml index fd4ac471185..03347fbcbe6 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/page/locale.phtml @@ -11,16 +11,21 @@ <label class="label" for="footer_interface_locale"><span><?php /* @escapeNotVerified */ echo __('Interface Locale'); ?></span></label> <?php /* @escapeNotVerified */ echo $block->getLocaleSelect(); ?> <script> - (function () { - 'use strict'; + require([ + 'mage/validation/url' + ], + function (urlValidator) { + 'use strict'; - var elem = document.getElementById('footer_interface_locale'); + var elem = document.getElementById('footer_interface_locale'); - function onChange() { - window.location.href = '<?php /* @escapeNotVerified */ echo $block->getChangeLocaleUrl() ?>locale/' + elem.value + '/<?php /* @escapeNotVerified */ echo $block->getUrlForReferer() ?>'; - } + function onChange() { + urlValidator.redirect('<?php /* @escapeNotVerified */ echo $block->getChangeLocaleUrl() ?>locale/' + + elem.value + + '/<?php /* @escapeNotVerified */ echo $block->getUrlForReferer() ?>'); + } - elem.addEventListener('change', onChange); - })(); + elem.addEventListener('change', onChange); + }); </script> </div> diff --git a/lib/web/mage/validation/url.js b/lib/web/mage/validation/url.js new file mode 100644 index 00000000000..5361d952278 --- /dev/null +++ b/lib/web/mage/validation/url.js @@ -0,0 +1,50 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +define([], function () { + 'use strict'; + + return { + + /** + * Redirects to the url if it is considered safe + * + * @param {String} path - url to be redirected to + */ + redirect: function (path) { + path = this.sanitize(path); + + if (this.validate(path)) { + window.location.href = path; + } + }, + + /** + * Validates url + * + * @param {Object} path - url to be validated + * @returns {Boolean} + */ + validate: function (path) { + var hostname = window.location.hostname; + + if (path.indexOf(hostname) === -1 || + path.indexOf('javascript:') !== -1 || + path.indexOf('vbscript:') !== -1) { + return false; + } + }, + + /** + * Sanitize url, replacing disallowed chars + * + * @param {Sring} path - url to be normalized + * @returns {String} + */ + sanitize: function (path) { + return path.Replace('[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]', ''); + } + }; +}); -- GitLab From 2cd7c0907c7f79f13c0ebce878fdd4cbc56c2a74 Mon Sep 17 00:00:00 2001 From: Oleksandr Dubovyk <odubovyk@ebay.com> Date: Wed, 30 Sep 2015 13:05:24 +0300 Subject: [PATCH 165/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget - Corrected layout on Backup - Added correct button classes on Prompt --- .../adminhtml/templates/backup/dialogs.phtml | 20 +++++++++++-------- .../Ui/view/base/web/js/modal/prompt.js | 4 ++-- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml index a1653c260bf..c4829a4305a 100644 --- a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml +++ b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml @@ -66,13 +66,13 @@ </div> <form action="" method="post" id="backup-form" class="form-inline"> <fieldset class="admin__fieldset form-list question"> - <div class="admin__field field"> + <div class="admin__field field _required"> <label for="backup_name" class="admin__field-label"><span><?php /* @escapeNotVerified */ echo __('Backup Name')?></span></label> <div class="admin__field-control"> <input type="text" name="backup_name" id="backup_name" class="admin__control-text required-entry validate-alphanum-with-spaces validate-length maximum-length-50" maxlength="50" /> - <div class="note"> + <div class="admin__field-note"> <?php /* @escapeNotVerified */ echo __('Please use only letters (a-z or A-Z), numbers (0-9) or spaces in this field.'); ?> </div> </div> @@ -80,17 +80,21 @@ <div class="admin__field field maintenance-checkbox-container"> <label for="backup_maintenance_mode" class="admin__field-label"><span><?php /* @escapeNotVerified */ echo __('Maintenance mode')?></span></label> - <div class="admin__field-control admin__field-option"> - <input class="admin__control-checkbox" type="checkbox" name="maintenance_mode" value="1" id="backup_maintenance_mode"/> - <label class="admin__field-label" for="backup_maintenance_mode"><?php /* @escapeNotVerified */ echo __(' Please put your store into maintenance mode during backup.')?></label> + <div class="admin__field-control"> + <div class="admin__field-option"> + <input class="admin__control-checkbox" type="checkbox" name="maintenance_mode" value="1" id="backup_maintenance_mode"/> + <label class="admin__field-label" for="backup_maintenance_mode"><?php /* @escapeNotVerified */ echo __(' Please put your store into maintenance mode during backup.')?></label> + </div> </div> </div> <div class="admin__field field maintenance-checkbox-container" id="exclude-media-checkbox-container" style="display: none;"> <label for="exclude_media" class="admin__field-label"><span><?php /* @escapeNotVerified */ echo __('Exclude')?></span></label> - <div class="admin__field-control admin__field-option"> - <input class="admin__control-checkbox" type="checkbox" name="exclude_media" value="1" id="exclude_media"/> - <label class="admin__field-label" for="exclude_media"><?php /* @escapeNotVerified */ echo __('Exclude media folder from backup') ?></label> + <div class="admin__field-control"> + <div class="admin__field-option"> + <input class="admin__control-checkbox" type="checkbox" name="exclude_media" value="1" id="exclude_media"/> + <label class="admin__field-label" for="exclude_media"><?php /* @escapeNotVerified */ echo __('Exclude media folder from backup') ?></label> + </div> </div> </div> </fieldset> diff --git a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js index 7fc43693cc6..2d4b9411ffb 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js @@ -36,7 +36,7 @@ define([ }, buttons: [{ text: $.mage.__('Cancel'), - class: 'action-tertiary action-dismiss', + class: 'action-secondary action-dismiss', /** * Click handler. @@ -46,7 +46,7 @@ define([ } }, { text: $.mage.__('OK'), - class: 'action-secondary action-accept', + class: 'action-primary action-accept', /** * Click handler. -- GitLab From bdb42b72787bfa8d6f243d266470379ac8ab410a Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Wed, 30 Sep 2015 13:23:09 +0300 Subject: [PATCH 166/420] MAGETWO-42990: Stabilization --- .../view/adminhtml/web/js/new-category-dialog.js | 1 - app/code/Magento/Ui/view/base/web/js/modal/modal.js | 10 ++++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js b/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js index d70f2e17193..44f3371cf93 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/new-category-dialog.js @@ -32,7 +32,6 @@ define([ .on('suggestbeforeselect', function (event) { clearParentCategory(); $(event.target).treeSuggest('close'); - $('#new_category_name').focus(); }); $.validator.addMethod('validate-parent-category', function () { diff --git a/app/code/Magento/Ui/view/base/web/js/modal/modal.js b/app/code/Magento/Ui/view/base/web/js/modal/modal.js index 6fa55677176..7f5ca9d373a 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/modal.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/modal.js @@ -255,8 +255,8 @@ define([ * Remove events listener when modal is closed. */ _removeKeyListener: function () { - this.modal.find(this.options.focusableStart).bind('focusin', this._tabSwitcher); - this.modal.find(this.options.focusableEnd).bind('focusin', this._tabSwitcher); + this.modal.find(this.options.focusableStart).unbind('focusin', this._tabSwitcher); + this.modal.find(this.options.focusableEnd).unbind('focusin', this._tabSwitcher); this.modal.unbind('keydown', this.keyEventSwitcher); }, @@ -265,9 +265,11 @@ define([ * @param {Object} e - event */ _tabSwitcher: function(e){ - if ($(e.target).is(this.options.focusableStart)) { + var target = $(e.target); + + if (target.is(this.options.focusableStart)) { this._setFocus('start'); - } else if ($(e.target).is(this.options.focusableEnd)) { + } else if (target.is(this.options.focusableEnd)) { this._setFocus('end'); } }, -- GitLab From 1030dd5a1de2575af3baa77e318b4de50eff46b1 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Wed, 30 Sep 2015 13:38:09 +0300 Subject: [PATCH 167/420] MAGETWO-42995: Stabilize functional tests --- .../Sales/view/adminhtml/web/order/create/scripts.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js index 6e74d57c566..79cda24e8a6 100644 --- a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js +++ b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js @@ -8,7 +8,8 @@ define([ 'Magento_Ui/js/modal/alert', "mage/translate", "prototype", - "Magento_Catalog/catalog/product/composite/configure" + "Magento_Catalog/catalog/product/composite/configure", + 'Magento_Ui/js/lib/view/utils/async' ], function(jQuery, confirm, alert){ window.AdminOrder = new Class.create(); @@ -36,10 +37,11 @@ define([ this.isOnlyVirtualProduct = false; this.excludedPaymentMethods = []; this.summarizePrice = true; - Event.observe(window, 'load', (function(){ + jQuery.async('#order-items', (function(){ this.dataArea = new OrderFormArea('data', $(this.getAreaId('data')), this); this.itemsArea = Object.extend(new OrderFormArea('items', $(this.getAreaId('items')), this), { addControlButton: function(button){ + console.log(this.node) var controlButtonArea = $(this.node).select('.actions')[0]; if (typeof controlButtonArea != 'undefined') { var buttons = controlButtonArea.childElements(); @@ -72,6 +74,7 @@ define([ this.itemsArea.onLoad = this.itemsArea.onLoad.wrap(function(proceed) { proceed(); if ($(searchAreaId) && !$(searchAreaId).visible()) { + console.log(searchButton) this.addControlButton(searchButton); } }); -- GitLab From d7712646afd777b481b6406567c7aa923ebe8cca Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Wed, 30 Sep 2015 13:41:57 +0300 Subject: [PATCH 168/420] MAGETWO-42762: Improve performance of table rendering - Partially fix sticky header bugs - Add basic rendering of inline editing - Remove unused plugin --- .../Theme/view/base/requirejs-config.js | 1 - .../base/web/js/grid/columns/multiselect.js | 2 +- .../base/web/js/grid/editing/editor-view.js | 14 ++++--- .../view/base/web/js/grid/filters/filters.js | 9 ++++ .../Ui/view/base/web/js/grid/search/search.js | 2 +- .../Ui/view/base/web/js/lib/ko/bind/scope.js | 34 ++------------- .../web/templates/grid/editing/field.html | 24 +++++------ .../base/web/templates/grid/editing/row.html | 19 ++++++--- .../base/web/templates/grid/sticky/chips.html | 4 +- .../web/templates/grid/sticky/filters.html | 2 +- .../web/templates/grid/sticky/listing.html | 7 +--- .../User/view/adminhtml/web/app-config.js | 1 - .../requirejs/plugin/id-normalizer-test.js | 42 ------------------- .../Test/Js/_files/blacklist/magento.txt | 2 - .../mage/requirejs/plugin/id-normalizer.js | 28 ------------- 15 files changed, 50 insertions(+), 141 deletions(-) delete mode 100644 dev/tests/js/JsTestDriver/testsuite/mage/requirejs/plugin/id-normalizer-test.js delete mode 100644 lib/web/mage/requirejs/plugin/id-normalizer.js diff --git a/app/code/Magento/Theme/view/base/requirejs-config.js b/app/code/Magento/Theme/view/base/requirejs-config.js index c40eb944f07..f1f164431d4 100644 --- a/app/code/Magento/Theme/view/base/requirejs-config.js +++ b/app/code/Magento/Theme/view/base/requirejs-config.js @@ -21,7 +21,6 @@ var config = { "mage/captcha": ["prototype"], "mage/common": ["jquery"], "mage/new-gallery": ["jquery"], - "mage/requirejs/plugin/id-normalizer": ["jquery"], "mage/webapi": ["jquery"], "jquery/ui": ["jquery"], "MutationObserver": ["es6-collections"], diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js index 0563dd0fbb8..80ab7e814ae 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/multiselect.js @@ -441,7 +441,7 @@ define([ }, /** - * Overrides base method, cause this component + * Overrides base method, because this component * can't have global field action. * * @returns {Boolean} False. diff --git a/app/code/Magento/Ui/view/base/web/js/grid/editing/editor-view.js b/app/code/Magento/Ui/view/base/web/js/grid/editing/editor-view.js index 9bd9d5318fe..608cf7257b9 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/editing/editor-view.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/editing/editor-view.js @@ -25,11 +25,13 @@ define([ '<!-- /ko -->', rowTmpl: '<!-- ko with: _editor -->' + - '<!-- ko scope: formRecordName($index(), true) -->' + - '<!-- ko template: rowTmpl --><!-- /ko -->' + - '<!-- /ko -->' + - '<!-- ko if: isActive($index(), true) && isSingleEditing() -->' + - '<!-- ko template: rowButtonsTmpl --><!-- /ko -->' + + '<!-- ko if: isActive($row()._rowIndex, true) -->' + + '<!-- ko scope: formRecordName($row()._rowIndex, true) -->' + + '<!-- ko template: rowTmpl --><!-- /ko -->' + + '<!-- /ko -->' + + '<!-- ko if: isSingleEditing() -->' + + '<!-- ko template: rowButtonsTmpl --><!-- /ko -->' + + '<!-- /ko -->' + '<!-- /ko -->' + '<!-- /ko -->' }, @@ -134,7 +136,7 @@ define([ return { visible: ko.computed(function () { - return !model.isActive(ctx.$index(), true); + return !model.isActive(ctx.$row()._rowIndex, true); }) }; }, diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js index 48b812a3de8..bcfbf06de08 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js @@ -341,6 +341,15 @@ define([ return this; }, + /** + * Returns number of applied filters. + * + * @returns {Number} + */ + countActive: function () { + return this.active.length; + }, + /** * Extract previews of a specified filters. * diff --git a/app/code/Magento/Ui/view/base/web/js/grid/search/search.js b/app/code/Magento/Ui/view/base/web/js/grid/search/search.js index 9df534c8d59..f273c6dcd37 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/search/search.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/search/search.js @@ -115,7 +115,7 @@ define([ updatePreview: function () { var preview = []; - if (this.value()) { + if (this.value) { preview.push({ elem: this, label: this.label, diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/scope.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/scope.js index 2f9d78541d7..1e8ce81a7e0 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/scope.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/scope.js @@ -1,6 +1,4 @@ /** - * @category storage - * @package test * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ @@ -15,30 +13,6 @@ define([ var i18n = $.mage.__; - /** - * Fetches components from registry and stores them to context object, then passes it to callback function. - * @param {Object} components - map, representing components to be attached to the new context. - * @param {Function} callback - Function to be called when components are fetched. - */ - function getMultiple(components, callback) { - var key, - paths = [], - context = {}; - - for (key in components) { - paths.push(components[key]); - } - - registry.get(paths, function () { - - for (key in components) { - context[key] = registry.get(components[key]); - } - - callback(context); - }); - } - /** * Creates child context with passed component param as $data. Extends context with $t helper. * Applies bindings to descendant nodes. @@ -58,8 +32,6 @@ define([ ko.applyBindingsToDescendants(component, el); } - ko.virtualElements.allowedBindings.scope = true; - ko.bindingHandlers.scope = { /** @@ -85,13 +57,13 @@ define([ var component = valueAccessor(), apply = applyComponents.bind(this, el, bindingContext); - if (typeof component === 'object') { - getMultiple(component, apply); - } else if (typeof component === 'string') { + if (typeof component === 'string') { registry.get(component, apply); } else if (typeof component === 'function') { component(apply); } } }; + + ko.virtualElements.allowedBindings.scope = true; }); diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/editing/field.html b/app/code/Magento/Ui/view/base/web/templates/grid/editing/field.html index 77cc47351c8..a01514ff191 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/editing/field.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/editing/field.html @@ -5,16 +5,14 @@ */ --> -<td data-bind="visible: $parent.getColumn(index).visible"> - <div - class="admin__field-control" - data-bind="css: { - _error: error(), - _focus: focused() - }"> - <!-- ko template: getTemplate() --><!-- /ko --> - <label - class="admin__field-error" - data-bind="attr: { for: uid }, text: error, visible: error() && focused()"></label> - </div> -</td> +<div + class="admin__field-control" + data-bind="css: { + _error: error(), + _focus: focused() + }"> + <!-- ko template: getTemplate() --><!-- /ko --> + <label + class="admin__field-error" + data-bind="attr: { for: uid }, text: error, visible: error() && focused()"></label> +</div> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/editing/row.html b/app/code/Magento/Ui/view/base/web/templates/grid/editing/row.html index 892eaf35872..96223e79c71 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/editing/row.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/editing/row.html @@ -8,21 +8,28 @@ data-part="body.row" class="data-grid-editable-row" data-bind=" - visible: active, - '_odd-row': !!($index() % 2), + '_odd-row': !!($row()._rowIndex % 2), foreach: { data: fields, - as: 'field' + as: '$col' }"> + <!-- ko if: $parent.getColumn(index).visible --> + <!-- ko if: $parent.isActionsColumn($data) --> <td class="data-grid-actions-cell"> - <span class="data-grid-row-changed" data-bind="css: { _changed: $parent.hasChanges() }"> + <span class="data-grid-row-changed" data-bind="css: {_changed: $parent.hasChanges()}"> <span class="data-grid-row-changed-tooltip" data-bind="i18n: 'Record contains unsaved changes.'"></span> </span> </td> <!-- /ko --> - <!-- ko ifnot: $parent.isActionsColumn($data) --> - <!-- ko template: $data.isEditor ? $parent.fieldTmpl : getBody() --><!-- /ko --> + <!-- ko if: $col.isEditor --> + <td data-bind="template: $parent.fieldTmpl"></td> + <!-- /ko --> + <!-- ko ifnot: $col.isEditor --> + <td data-bind="template: $col.getBody(), css: $col.getFieldClass()"></td> + <!-- /ko --> + <!-- /ko --> + <!-- /ko --> </tr> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/sticky/chips.html b/app/code/Magento/Ui/view/base/web/templates/grid/sticky/chips.html index e396c223d8a..178e9309796 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/sticky/chips.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/sticky/chips.html @@ -6,7 +6,7 @@ --> <div class="admin__data-grid-filters-current" - data-bind="css: {_show: hasData()}"> + data-bind="css: {_show: hasPreviews()}"> <div class="admin__current-filters-title-wrap"> <span class="admin__current-filters-title" @@ -50,7 +50,7 @@ i18n: 'Clear all', click: clear, attr: { - 'data-action': hasData() ? 'grid-filter-reset' : '' + 'data-action': hasPreviews() ? 'grid-filter-reset' : '' }" ></button> </div> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/sticky/filters.html b/app/code/Magento/Ui/view/base/web/templates/grid/sticky/filters.html index 9a7e06d5699..25c27cfb3ca 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/sticky/filters.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/sticky/filters.html @@ -17,6 +17,6 @@ attr: {disabled: !hasVisible()}"> <span data-bind="i18n: 'Filters'"></span> </button> - <span class="filters-active" data-bind="text: $data.active().length || ''"></span> <!-- Added the amount of selected filters --> + <span class="filters-active" data-bind="text: countActive() || ''"></span> <!-- Added the amount of selected filters --> </div> </div> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/sticky/listing.html b/app/code/Magento/Ui/view/base/web/templates/grid/sticky/listing.html index 037677c496c..880b52f4dcd 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/sticky/listing.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/sticky/listing.html @@ -7,12 +7,7 @@ <div class="admin__data-grid-wrap" data-role="sticky-el-root"> <table class="data-grid"> <thead> - <tr data-bind=" - foreach: { - data: visibleColumns, - as: '$col' - }" - > + <tr data-bind="foreach: {data: visibleColumns, as: '$col'}"> <!-- ko template: getHeader() --><!-- /ko --> </tr> </thead> diff --git a/app/code/Magento/User/view/adminhtml/web/app-config.js b/app/code/Magento/User/view/adminhtml/web/app-config.js index 25bc4e7b6ca..378afec02a6 100644 --- a/app/code/Magento/User/view/adminhtml/web/app-config.js +++ b/app/code/Magento/User/view/adminhtml/web/app-config.js @@ -11,7 +11,6 @@ require.config({ "mage/adminhtml/backup": ["prototype"], "mage/captcha": ["prototype"], "mage/common": ["jquery"], - "mage/requirejs/plugin/id-normalizer": ["jquery"], "mage/webapi": ["jquery"], "ko": { exports: "ko" }, "moment": { exports: "moment" } diff --git a/dev/tests/js/JsTestDriver/testsuite/mage/requirejs/plugin/id-normalizer-test.js b/dev/tests/js/JsTestDriver/testsuite/mage/requirejs/plugin/id-normalizer-test.js deleted file mode 100644 index a52466bda12..00000000000 --- a/dev/tests/js/JsTestDriver/testsuite/mage/requirejs/plugin/id-normalizer-test.js +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -/*jshint globalstrict: true*/ - -"use strict"; - -/*jshint undef: false, newcap: false*/ -var IdNormalizerTest = TestCase('IdNormalizerTest'); - -IdNormalizerTest.prototype.setUp = function() { - var defineArgs = jsunit.requirejsUtil.getDefineArgsInScript('lib/web/mage/requirejs/plugin/id-normalizer.js'); - assertNotUndefined('There expected to be a define() call', defineArgs); - assertEquals('Wrong number of arguments in the define() call', 1, defineArgs.length); - - this.normalizer = defineArgs[0]; - assertObject(this.normalizer); - assertFunction(this.normalizer.normalize); - assertFunction(this.normalizer.load); -}; - -IdNormalizerTest.prototype.testNormalize = function () { - var actual = this.normalizer.normalize('Magento_Catalog::foo/bar.js'); - assertEquals('Magento_Catalog/foo/bar.js', actual); -}; - -IdNormalizerTest.prototype.testLoad = function () { - // Check that load() is just a proxy - var modulePassed, onloadPassed; - var parentRequire = function (moduleIn, onloadIn) { - modulePassed = moduleIn; - onloadPassed = onloadIn; - }; - var onload = function (){}; - - this.normalizer.load('module', parentRequire, onload); - - assertEquals('module', modulePassed); - assertSame(onload, onloadPassed); -}; - diff --git a/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt b/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt index 759ea7b2843..187af92e37a 100644 --- a/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt +++ b/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt @@ -414,7 +414,6 @@ app/code/Magento/Ui/view/base/web/js/lib/ko/bind/i18n.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/keyboard.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/mage-init.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/optgroup.js -app/code/Magento/Ui/view/base/web/js/lib/ko/bind/scope.js app/code/Magento/Ui/view/base/web/js/lib/ko/extender/observable_array.js app/code/Magento/Ui/view/base/web/js/lib/loader.js app/code/Magento/Ui/view/base/web/js/lib/spinner.js @@ -573,7 +572,6 @@ lib/web/mage/mage.js lib/web/mage/menu.js lib/web/mage/popup-window.js lib/web/mage/redirect-url.js -lib/web/mage/requirejs/plugin/id-normalizer.js lib/web/mage/requirejs/resolver.js lib/web/mage/smart-keyboard-handler.js lib/web/mage/sticky.js diff --git a/lib/web/mage/requirejs/plugin/id-normalizer.js b/lib/web/mage/requirejs/plugin/id-normalizer.js deleted file mode 100644 index b9c44c68e33..00000000000 --- a/lib/web/mage/requirejs/plugin/id-normalizer.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -/*jshint globalstrict: true*/ -/*global define: false*/ -"use strict"; - -/** - * This is simple normalization plugin for RequireJS, which converts Magento modular references to normalized paths. - * E.g. 'Magento_Catalog::js/scripts.js' -> 'Magento_Catalog/js/scripts.js'. - */ -define({ - /** - * Normalize Magento modular ID - */ - normalize: function (name, normalize) { - return name.replace('::', '/'); - }, - - /** - * load() is not needed for this plugin, but is required by RequireJS. - * So it is just proxy over default implementation. - */ - load: function (name, parentRequire, onload, config) { - parentRequire([name], onload); - } -}); -- GitLab From 58f893c1892cbc5478a357b6f4c07eb1e2fe1438 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Wed, 30 Sep 2015 14:29:58 +0300 Subject: [PATCH 169/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- .../templates/catalog/product/attribute/set/main.phtml | 2 +- app/code/Magento/Ui/view/base/web/js/modal/prompt.js | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/main.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/main.phtml index 35ecbf32540..06edcfbaa25 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/main.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/attribute/set/main.phtml @@ -248,7 +248,7 @@ addGroup : function() { prompt({ content: "<?php /* @escapeNotVerified */ echo __('Please enter a new group name.') ?>", - value: "Some value", + value: "", actions: { confirm: function (group_name) { group_name = group_name.strip(); diff --git a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js index 2d4b9411ffb..0866050dcaf 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/prompt.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/prompt.js @@ -65,13 +65,21 @@ define([ this._super(); this.modal.find(this.options.modalContent).append( '<div class="prompt-message">' + - '<input data-role="promptField" class="admin__control-text" type="text"/>' + + '<input data-role="promptField" id="prompt-field" class="admin__control-text" type="text"/>' + '</div>' ); this.modal.find(this.options.modalCloseBtn).off().on('click', _.bind(this.closeModal, this, false)); this.openModal(); }, + /** + * Compile template and append to wrapper. + */ + _renderModal: function () { + this._super(); + this.element.wrap('<label for="prompt-field"></label>'); + }, + /** * Remove widget */ -- GitLab From 9d0d453e5423cc782acf88ac9c9d2c3f23762013 Mon Sep 17 00:00:00 2001 From: Maxim Medinskiy <mmedinskiy@ebay.com> Date: Wed, 30 Sep 2015 14:33:21 +0300 Subject: [PATCH 170/420] MAGETWO-42838: Combine filter and column components definition --- ...onfigurable_associated_product_listing.xml | 31 ------------------- .../ui_component/customer_online_grid.xml | 30 ------------------ .../sales_order_creditmemo_grid.xml | 9 +----- .../ui_component/sales_order_grid.xml | 9 +----- .../ui_component/sales_order_invoice_grid.xml | 9 +----- .../sales_order_shipment_grid.xml | 9 +----- .../sales_order_view_creditmemo_grid.xml | 9 +----- .../sales_order_view_invoice_grid.xml | 9 +----- .../sales_order_view_shipment_grid.xml | 9 +----- 9 files changed, 7 insertions(+), 117 deletions(-) diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml index 789c0308c18..f249e5a013f 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml @@ -40,17 +40,6 @@ <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> -<<<<<<< HEAD - <item name="columnsProvider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.product_columns</item> - <item name="links" xsi:type="array"> - <item name="applied" xsi:type="string">not-save-filter</item> - </item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.listing_top.listing_filters</item> - <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.product_columns.${ $.index }:visible</item> - </item> -======= <item name="params" xsi:type="array"> <item name="filters_modifier" xsi:type="array" /> </item> @@ -58,19 +47,12 @@ <item name="dataScope" xsi:type="string">filters</item> <item name="childDefaults" xsi:type="array"> <item name="provider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.listing_top.listing_filters</item> ->>>>>>> magento2/develop </item> </item> <item name="observers" xsi:type="array"> <item name="filters" xsi:type="object">Magento\ConfigurableProduct\Ui\Component\Listing\AssociatedProduct\Filters</item> </item> </argument> -<<<<<<< HEAD - <filterSelect name="attribute_set_id"> - <argument name="optionsProvider" xsi:type="configurableObject"> - <argument name="class" xsi:type="string">Magento\Catalog\Model\Product\AttributeSet\Options</argument> - </argument> -======= <filterInput name="entity_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -81,16 +63,12 @@ </argument> </filterInput> <filterInput name="name"> ->>>>>>> magento2/develop <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="dataScope" xsi:type="string">name</item> <item name="label" xsi:type="string" translate="true">Name</item> </item> </argument> -<<<<<<< HEAD - </filterSelect> -======= </filterInput> <filterInput name="sku"> <argument name="data" xsi:type="array"> @@ -129,7 +107,6 @@ </argument> </filterInput> </filterRange> ->>>>>>> magento2/develop <filterSelect name="status"> <argument name="optionsProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">Magento\Catalog\Model\Product\Attribute\Source\Status</argument> @@ -147,8 +124,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.product_columns.ids</item> -<<<<<<< HEAD -======= <item name="displayArea" xsi:type="string">bottom</item> <item name="options" xsi:type="array"> <item name="20" xsi:type="array"> @@ -172,7 +147,6 @@ <item name="label" xsi:type="string" translate="true">200</item> </item> </item> ->>>>>>> magento2/develop </item> </argument> </paging> @@ -188,10 +162,7 @@ <item name="0" xsi:type="string">${ $.$data.rowIndex }</item> </item> </item> -<<<<<<< HEAD -======= <item name="controlVisibility" xsi:type="boolean">true</item> ->>>>>>> magento2/develop </item> </item> </argument> @@ -228,7 +199,6 @@ <column name="name"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="filter" xsi:type="string">text</item> <item name="add_field" xsi:type="boolean">true</item> <item name="label" xsi:type="string" translate="true">Name</item> <item name="sortOrder" xsi:type="number">30</item> @@ -247,7 +217,6 @@ <column name="price" class="Magento\Catalog\Ui\Component\Listing\Columns\Price"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="filter" xsi:type="string">textRange</item> <item name="add_field" xsi:type="boolean">true</item> <item name="label" xsi:type="string" translate="true">Price</item> <item name="sortOrder" xsi:type="number">70</item> diff --git a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml index 21d5374a9c1..fa20b95ee7f 100644 --- a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml +++ b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_online_grid.xml @@ -135,7 +135,6 @@ </item> </argument> </column> -<<<<<<< HEAD <column name="remote_addr"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -143,20 +142,6 @@ </item> </argument> </column> -======= - <!--<column name="remote_addr">--> - <!--<argument name="data" xsi:type="array">--> - <!--<item name="js_config" xsi:type="array">--> - <!--<item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item>--> - <!--</item>--> - <!--<item name="config" xsi:type="array">--> - <!--<item name="dataType" xsi:type="string">text</item>--> - <!--<item name="align" xsi:type="string">left</item>--> - <!--<item name="label" xsi:type="string" translate="true">IP Address</item>--> - <!--</item>--> - <!--</argument>--> - <!--</column>--> ->>>>>>> magento2/develop <column name="first_visit_at"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -185,7 +170,6 @@ </item> </argument> </column> -<<<<<<< HEAD <column name="last_url"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> @@ -193,19 +177,5 @@ </item> </argument> </column> -======= - <!--<column name="last_url">--> - <!--<argument name="data" xsi:type="array">--> - <!--<item name="js_config" xsi:type="array">--> - <!--<item name="component" xsi:type="string">Magento_Ui/js/grid/columns/column</item>--> - <!--</item>--> - <!--<item name="config" xsi:type="array">--> - <!--<item name="dataType" xsi:type="string">text</item>--> - <!--<item name="align" xsi:type="string">left</item>--> - <!--<item name="label" xsi:type="string" translate="true">Last URL</item>--> - <!--</item>--> - <!--</argument>--> - <!--</column>--> ->>>>>>> magento2/develop </columns> </listing> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml index 8a6050218d4..a460290d3d3 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_creditmemo_grid.xml @@ -366,16 +366,10 @@ </item> </argument> </column> -<<<<<<< HEAD - <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderCreditmemoActions"> -======= - <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\ViewAction"> ->>>>>>> magento2/develop + <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\ViewAction"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="indexField" xsi:type="string">entity_id</item> -<<<<<<< HEAD -======= <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> @@ -383,7 +377,6 @@ <item name="sortable" xsi:type="boolean">false</item> <item name="viewUrlPath" xsi:type="string">sales/creditmemo/view</item> <item name="urlEntityParamName" xsi:type="string">creditmemo_id</item> ->>>>>>> magento2/develop </item> </argument> </actionsColumn> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml index 825f60395a8..7f3c8f82e49 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_grid.xml @@ -405,16 +405,10 @@ </item> </argument> </column> -<<<<<<< HEAD - <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderActions"> -======= - <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\ViewAction"> ->>>>>>> magento2/develop + <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\ViewAction"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="indexField" xsi:type="string">entity_id</item> -<<<<<<< HEAD -======= <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> @@ -422,7 +416,6 @@ <item name="sortable" xsi:type="boolean">false</item> <item name="viewUrlPath" xsi:type="string">sales/order/view</item> <item name="urlEntityParamName" xsi:type="string">order_id</item> ->>>>>>> magento2/develop </item> </argument> </actionsColumn> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml index 5b594ae7e7f..c1c95bc9dcf 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_invoice_grid.xml @@ -327,16 +327,10 @@ </item> </argument> </column> -<<<<<<< HEAD - <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderInvoiceActions"> -======= - <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\ViewAction"> ->>>>>>> magento2/develop + <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\ViewAction"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="indexField" xsi:type="string">increment_id</item> -<<<<<<< HEAD -======= <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> @@ -344,7 +338,6 @@ <item name="sortable" xsi:type="boolean">false</item> <item name="viewUrlPath" xsi:type="string">sales/invoice/view</item> <item name="urlEntityParamName" xsi:type="string">invoice_id</item> ->>>>>>> magento2/develop </item> </argument> </actionsColumn> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml index 6ace208430b..c54aa1fc54a 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_shipment_grid.xml @@ -320,16 +320,10 @@ </item> </argument> </column> -<<<<<<< HEAD - <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderShipmentActions"> -======= - <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\ViewAction"> ->>>>>>> magento2/develop + <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\ViewAction"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="indexField" xsi:type="string">entity_id</item> -<<<<<<< HEAD -======= <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> @@ -337,7 +331,6 @@ <item name="sortable" xsi:type="boolean">false</item> <item name="viewUrlPath" xsi:type="string">sales/shipment/view</item> <item name="urlEntityParamName" xsi:type="string">shipment_id</item> ->>>>>>> magento2/develop </item> </argument> </actionsColumn> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml index f7f38e2291b..5f4a803aaca 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_creditmemo_grid.xml @@ -369,16 +369,10 @@ </item> </argument> </column> -<<<<<<< HEAD - <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderCreditmemoActions"> -======= - <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\ViewAction"> ->>>>>>> magento2/develop + <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\ViewAction"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="indexField" xsi:type="string">entity_id</item> -<<<<<<< HEAD -======= <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> @@ -386,7 +380,6 @@ <item name="sortable" xsi:type="boolean">false</item> <item name="viewUrlPath" xsi:type="string">sales/order_creditmemo/view</item> <item name="urlEntityParamName" xsi:type="string">creditmemo_id</item> ->>>>>>> magento2/develop </item> </argument> </actionsColumn> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml index c6bcaeb4cb2..4d4ae3fcec5 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_invoice_grid.xml @@ -330,16 +330,10 @@ </item> </argument> </column> -<<<<<<< HEAD - <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderInvoiceActions"> -======= - <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\ViewAction"> ->>>>>>> magento2/develop + <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\ViewAction"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="indexField" xsi:type="string">increment_id</item> -<<<<<<< HEAD -======= <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> @@ -347,7 +341,6 @@ <item name="sortable" xsi:type="boolean">false</item> <item name="viewUrlPath" xsi:type="string">sales/order_invoice/view</item> <item name="urlEntityParamName" xsi:type="string">invoice_id</item> ->>>>>>> magento2/develop </item> </argument> </actionsColumn> diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml index e357d0e3b75..c408a7cd5ae 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml @@ -318,16 +318,10 @@ </item> </argument> </column> -<<<<<<< HEAD - <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\OrderShipmentActions"> -======= - <column name="actions" class="Magento\Sales\Ui\Component\Listing\Column\ViewAction"> ->>>>>>> magento2/develop + <actionsColumn name="actions" class="Magento\Sales\Ui\Component\Listing\Column\ViewAction"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="indexField" xsi:type="string">entity_id</item> -<<<<<<< HEAD -======= <item name="align" xsi:type="string">left</item> <item name="label" xsi:type="string" translate="true">Action</item> <item name="data_type" xsi:type="string">actions</item> @@ -335,7 +329,6 @@ <item name="sortable" xsi:type="boolean">false</item> <item name="viewUrlPath" xsi:type="string">adminhtml/order_shipment/view</item> <item name="urlEntityParamName" xsi:type="string">shipment_id</item> ->>>>>>> magento2/develop </item> </argument> </actionsColumn> -- GitLab From 5758a10ab15747a5d90f8398555b1987cbfd0431 Mon Sep 17 00:00:00 2001 From: Oleksandr Dubovyk <odubovyk@ebay.com> Date: Wed, 30 Sep 2015 14:44:11 +0300 Subject: [PATCH 171/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget --- .../backend/web/css/source/components/_file-insertion.less | 2 +- .../backend/web/css/source/components/_modals_extend.less | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less index 47a4c425614..cdc66d47755 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_file-insertion.less @@ -18,8 +18,8 @@ display: none; } input { + -moz-transforms: none; border: none; - -moz-transform: none; opacity: 1; position: static; } diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less index 6e4eb905c8e..e095afd0a1e 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less @@ -111,7 +111,7 @@ .modal-footer { text-align: right; - padding-top: 0; + padding-top: @modal-slide__padding; .action-primary { &:extend(.abs-action-secondary all); -- GitLab From 1a8861d0eac38cb55f77643bf61ec33897d893d0 Mon Sep 17 00:00:00 2001 From: Oleksandr Dubovyk <odubovyk@ebay.com> Date: Wed, 30 Sep 2015 14:49:47 +0300 Subject: [PATCH 172/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget --- .../backend/web/css/source/components/_modals_extend.less | 1 + 1 file changed, 1 insertion(+) diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less index e095afd0a1e..26853322da6 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less @@ -26,6 +26,7 @@ @modal-popup-footer-button__font-size: 1.5rem; @modal-popup-footer-button__color: @color-brownie; @modal-prompt-message__padding: 2rem; + // .modal-popup, -- GitLab From cc3ff48a77575ae240ed4a019539f95ebde79b4b Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Wed, 30 Sep 2015 14:55:45 +0300 Subject: [PATCH 173/420] MAGETWO-42762: Improve performance of table rendering - Commit not related to the main story - Fix sticky header rendering (was not smooth enough) --- .../Ui/view/base/web/js/grid/sticky/sticky.js | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js b/app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js index e779851a931..03dd04d5385 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js @@ -364,13 +364,22 @@ define([ return this.otherStickyElsSize; }, + /** + * Get original bulk row height, if is visible + * + * @returns {Number}. + */ + getBulkRowHeight: function () { + return this.listingNode.find(this.bulkRowSelector).filter(':visible').height(); + }, + /** * Get top Y coord of the sticky header * * @returns {Number}. */ getListingTopYCoord: function () { - var bulkRowHeight = (this.listingNode.find(this.bulkRowSelector) || {}).height(); + var bulkRowHeight = this.getBulkRowHeight(); return this.listingNode.find('tbody').offset().top - this.containerNode.height() - @@ -387,8 +396,8 @@ define([ var stickyTopCondition = this.getListingTopYCoord() - this.getOtherStickyElementsSize(), stickyBottomCondition = this.listingNode.offset().top + this.listingNode.height() - - $(window).scrollTop() - - (this.listingNode.find(this.bulkRowSelector) || {}).height() - + $(window).scrollTop() + + this.getBulkRowHeight() - this.getOtherStickyElementsSize(); return stickyTopCondition < 0 && stickyBottomCondition > 0; @@ -449,9 +458,12 @@ define([ */ resizeBulk: function () { var bulk = this.containerNode.find(this.bulkRowHeaderSelector)[0]; - if (bulk){ + + if (bulk) { $(bulk).innerWidth(this.getListingWidth()); } + + return this; }, /** -- GitLab From 87ed57f03b0693ddd8cfc120b068f5ed98df4100 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Wed, 30 Sep 2015 15:05:13 +0300 Subject: [PATCH 174/420] MAGETWO-42995: Stabilize functional tests --- .../Magento/Sales/view/adminhtml/web/order/create/scripts.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js index 79cda24e8a6..90f8b04c5c7 100644 --- a/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js +++ b/app/code/Magento/Sales/view/adminhtml/web/order/create/scripts.js @@ -41,7 +41,6 @@ define([ this.dataArea = new OrderFormArea('data', $(this.getAreaId('data')), this); this.itemsArea = Object.extend(new OrderFormArea('items', $(this.getAreaId('items')), this), { addControlButton: function(button){ - console.log(this.node) var controlButtonArea = $(this.node).select('.actions')[0]; if (typeof controlButtonArea != 'undefined') { var buttons = controlButtonArea.childElements(); @@ -74,7 +73,6 @@ define([ this.itemsArea.onLoad = this.itemsArea.onLoad.wrap(function(proceed) { proceed(); if ($(searchAreaId) && !$(searchAreaId).visible()) { - console.log(searchButton) this.addControlButton(searchButton); } }); -- GitLab From b6fe3faae8f3546b0ea4f18ec398c9c42e3ca019 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Wed, 30 Sep 2015 15:18:16 +0300 Subject: [PATCH 175/420] MAGETWO-42995: Stabilize functional tests --- app/code/Magento/Review/Block/Adminhtml/Edit.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/code/Magento/Review/Block/Adminhtml/Edit.php b/app/code/Magento/Review/Block/Adminhtml/Edit.php index 1bb6c7a8e47..6f2e129b0b6 100644 --- a/app/code/Magento/Review/Block/Adminhtml/Edit.php +++ b/app/code/Magento/Review/Block/Adminhtml/Edit.php @@ -179,7 +179,6 @@ class Edit extends \Magento\Backend\Block\Widget\Form\Container } $this->_formInitScripts[] = ' - require(["prototype"], function() { var review = { updateRating: function() { elements = [ @@ -206,7 +205,6 @@ class Edit extends \Magento\Backend\Block\Widget\Form\Container Event.observe(window, \'load\', function(){ Event.observe($("select_stores"), \'change\', review.updateRating); }); - }); '; } -- GitLab From e10d00447ad01508a0aac87bb0fc4e046946252a Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Wed, 30 Sep 2015 15:38:48 +0300 Subject: [PATCH 176/420] MAGETWO-42995: Stabilize functional tests --- .../app/Magento/Ui/Test/Block/Adminhtml/Modal.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php index 928a74c283a..96ed46ae296 100644 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php +++ b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/Modal.php @@ -7,7 +7,6 @@ namespace Magento\Ui\Test\Block\Adminhtml; use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\Locator; /** * Alert, confirm, prompt block. @@ -43,7 +42,7 @@ class Modal extends Block protected $inputFieldSelector = '[data-role="promptField"]'; /** - * Press OK on an alert, confirm, prompt a dialog + * Press OK on an alert, confirm, prompt a dialog. * * @return void */ @@ -53,7 +52,7 @@ class Modal extends Block } /** - * Press Cancel on an alert, confirm, prompt a dialog + * Press Cancel on an alert, confirm, prompt a dialog. * * @return void */ @@ -63,7 +62,7 @@ class Modal extends Block } /** - * Press Close on an alert, confirm, prompt a dialog + * Press Close on an alert, confirm, prompt a dialog. * * @return void */ @@ -73,7 +72,7 @@ class Modal extends Block } /** - * Get the alert dialog text + * Get the alert dialog text. * * @return string */ @@ -83,7 +82,7 @@ class Modal extends Block } /** - * Set the text to a prompt popup + * Set the text to a prompt popup. * * @param string $text * @return void -- GitLab From e9f8e529a137747adba0a947ef5a5fa375b28e62 Mon Sep 17 00:00:00 2001 From: Oleksandr Dubovyk <odubovyk@ebay.com> Date: Wed, 30 Sep 2015 15:44:00 +0300 Subject: [PATCH 177/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget --- .../Backup/view/adminhtml/templates/backup/dialogs.phtml | 2 +- .../backend/web/css/source/components/_modals_extend.less | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml index c4829a4305a..d5dcd13cf0f 100644 --- a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml +++ b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml @@ -83,7 +83,7 @@ <div class="admin__field-control"> <div class="admin__field-option"> <input class="admin__control-checkbox" type="checkbox" name="maintenance_mode" value="1" id="backup_maintenance_mode"/> - <label class="admin__field-label" for="backup_maintenance_mode"><?php /* @escapeNotVerified */ echo __(' Please put your store into maintenance mode during backup.')?></label> + <label class="admin__field-label" for="backup_maintenance_mode"><?php /* @escapeNotVerified */ echo __('Please put your store into maintenance mode during backup.')?></label> </div> </div> </div> diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less index 26853322da6..2a009ea2f11 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less @@ -25,6 +25,8 @@ @modal-popup-footer-button__padding: 1.4rem; @modal-popup-footer-button__font-size: 1.5rem; @modal-popup-footer-button__color: @color-brownie; +@modal-popup-colored__background: @color-lazy-sun; +@modal-popup-colorless__background: @color-white; @modal-prompt-message__padding: 2rem; // @@ -58,7 +60,7 @@ &.prompt { .prompt-message { padding: @modal-prompt-message__padding 0; - input[type="text"] { + input { width: 100%; } } @@ -67,13 +69,13 @@ &.prompt { .modal-inner-wrap { .message { - background: @color-white; + background: @modal-popup-colorless__background; } } } &.modal-system-messages { .modal-inner-wrap { - background: @color-lazy-sun; + background: @modal-popup-colored__background; } } &._image-box { -- GitLab From a8a483447d8c8095c8a6ff6f36b2803973024830 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Wed, 30 Sep 2015 15:46:41 +0300 Subject: [PATCH 178/420] MAGETWO-42995: Stabilize functional tests --- .../tests/app/Magento/Backend/Test/Block/Widget/Grid.php | 9 ++++++++- .../app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php index 0f41bf8b978..65017b9c85d 100644 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php +++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Block/Widget/Grid.php @@ -188,6 +188,13 @@ abstract class Grid extends Block */ protected $rowPattern = '//tbody/tr[%s]'; + /** + * Selector for confirm. + * + * @var string + */ + protected $confirmModal = '.confirm._show[data-role=modal]'; + /** * Get backend abstract block * @@ -340,7 +347,7 @@ abstract class Grid extends Block { $this->_rootElement->find($this->massactionSubmit, Locator::SELECTOR_CSS)->click(); if ($acceptAlert) { - $element = $this->browser->find('.confirm._show[data-role=modal]'); + $element = $this->browser->find($this->confirmModal); /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ $modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]); $modal->acceptAlert(); diff --git a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php index 837a0abcb0e..10892724bd5 100644 --- a/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php +++ b/dev/tests/functional/tests/app/Magento/Ui/Test/Block/Adminhtml/DataGrid.php @@ -121,6 +121,13 @@ class DataGrid extends Grid */ protected $noRecords = '[class$=no-data]'; + /** + * Selector for alert. + * + * @var string + */ + protected $alertModal = '._show[data-role=modal]'; + /** * Clear all applied Filters. * @@ -250,7 +257,7 @@ class DataGrid extends Grid ->find(sprintf($this->massActionToggleList, $actionType), Locator::SELECTOR_XPATH) ->click(); if ($acceptAlert) { - $element = $this->browser->find('._show[data-role=modal]'); + $element = $this->browser->find($this->alertModal); /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ $modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]); $modal->acceptAlert(); -- GitLab From 06991838094b8fc2490cb466b7c9ed8f94d769c3 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Wed, 30 Sep 2015 15:49:23 +0300 Subject: [PATCH 179/420] MAGETWO-42995: Stabilize functional tests --- .../Test/Block/Adminhtml/Product/Attribute/Set/Main.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/Main.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/Main.php index 998117a082c..58128695cc3 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/Main.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Attribute/Set/Main.php @@ -50,6 +50,13 @@ class Main extends Block */ protected $noteBlock = '.attribute-set .title'; + /** + * Selector for prompt. + * + * @var string + */ + protected $promptModal = '.prompt._show[data-role=modal]'; + /** * Move Attribute to Attribute Group * @@ -123,7 +130,7 @@ class Main extends Block public function addAttributeSetGroup($groupName) { $this->_rootElement->find($this->addGroupButton)->click(); - $element = $this->browser->find('.prompt._show[data-role=modal]'); + $element = $this->browser->find($this->promptModal); /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ $modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]); $modal->setAlertText($groupName); -- GitLab From c12ee0e4442649b2492ba005c87219b094e36f28 Mon Sep 17 00:00:00 2001 From: Zaets Volodymyr <vzaets@ebay.com> Date: Wed, 30 Sep 2015 15:56:40 +0300 Subject: [PATCH 180/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- .../view/adminhtml/templates/catalog/category/edit.phtml | 2 +- .../Magento/Checkout/view/frontend/web/js/opc-payment-info.js | 2 +- .../Checkout/view/frontend/web/js/opc-shipping-method.js | 2 ++ .../Magento/Customer/view/adminhtml/templates/tab/cart.phtml | 4 +--- .../Newsletter/view/adminhtml/templates/template/edit.phtml | 2 -- app/code/Magento/Payment/view/adminhtml/web/transparent.js | 2 +- 6 files changed, 6 insertions(+), 8 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit.phtml index 7b7a22849be..569e0e88458 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/edit.phtml @@ -45,7 +45,7 @@ require([ confirm({ content: '<?php /* @escapeNotVerified */ echo __('Are you sure you want to delete this category?') ?>', actions: { - confirm: function(){ + confirm: function () { location.href = url; } } diff --git a/app/code/Magento/Checkout/view/frontend/web/js/opc-payment-info.js b/app/code/Magento/Checkout/view/frontend/web/js/opc-payment-info.js index 8b43ffa8625..a3c54de39c8 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/opc-payment-info.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/opc-payment-info.js @@ -136,7 +136,7 @@ define([ } alert({ - content:$.mage.__('Please choose a payment method.') + content: $.mage.__('Please choose a payment method.') }); return false; diff --git a/app/code/Magento/Checkout/view/frontend/web/js/opc-shipping-method.js b/app/code/Magento/Checkout/view/frontend/web/js/opc-shipping-method.js index 385bc3fd273..3b8e507c819 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/opc-shipping-method.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/opc-shipping-method.js @@ -67,8 +67,10 @@ define([ alert({ content: $.mage.__('We can\'t ship to this address. Please enter another address or edit this one.') }); + return false; } + if (methods.filter(':checked').length) { return true; } diff --git a/app/code/Magento/Customer/view/adminhtml/templates/tab/cart.phtml b/app/code/Magento/Customer/view/adminhtml/templates/tab/cart.phtml index 4ce0e769faf..f7d93b699c1 100644 --- a/app/code/Magento/Customer/view/adminhtml/templates/tab/cart.phtml +++ b/app/code/Magento/Customer/view/adminhtml/templates/tab/cart.phtml @@ -57,7 +57,7 @@ require([ if (!itemId) { alert({ - content:'<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('No item specified.')) ?>' + content: '<?php /* @escapeNotVerified */ echo $block->escapeJsQuote(__('No item specified.')) ?>' }); return false; @@ -68,8 +68,6 @@ require([ actions: { confirm: function(){ self.reload({'delete':itemId}); - - return false; } } }); diff --git a/app/code/Magento/Newsletter/view/adminhtml/templates/template/edit.phtml b/app/code/Magento/Newsletter/view/adminhtml/templates/template/edit.phtml index ef4917d29dc..26ac1a28b3c 100644 --- a/app/code/Magento/Newsletter/view/adminhtml/templates/template/edit.phtml +++ b/app/code/Magento/Newsletter/view/adminhtml/templates/template/edit.phtml @@ -99,8 +99,6 @@ require([ $(self.id).value = $(self.id).value.stripScripts().stripTags(); $('field_template_styles').hide(); self.typeChange = true; - - return false; } } }); diff --git a/app/code/Magento/Payment/view/adminhtml/web/transparent.js b/app/code/Magento/Payment/view/adminhtml/web/transparent.js index e97038d2245..11593e2a5b5 100644 --- a/app/code/Magento/Payment/view/adminhtml/web/transparent.js +++ b/app/code/Magento/Payment/view/adminhtml/web/transparent.js @@ -159,7 +159,7 @@ define([ var msg = response.error_messages; if (typeof (msg) === 'object') { alert({ - content:msg.join("\n") + content: msg.join("\n") }); } if (msg) { -- GitLab From bfedaa59717e9c2d91470b25fdb47043ba7f76ab Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Wed, 30 Sep 2015 16:24:03 +0300 Subject: [PATCH 181/420] JS-53: Enhanced Thumbnails --- lib/web/fotorama/fotorama.js | 49 +++++++++++++++++++++++-------- lib/web/mage/gallery/gallery.html | 10 +++---- lib/web/mage/gallery/gallery.less | 16 +++++----- 3 files changed, 48 insertions(+), 27 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 512886e5df4..0898f37cf79 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -39,11 +39,10 @@ fotoramaVersion = '4.6.4'; navShaftClass = navClass + '__shaft', navShaftVerticalClass = navWrapClass + '--vertical', navShaftListClass = navWrapClass + '--list', - navShaftHorisontalClass = navWrapClass + '--horisontal', + navShafthorizontalClass = navWrapClass + '--horizontal', navDotsClass = navClass + '--dots', navThumbsClass = navClass + '--thumbs', navFrameClass = navClass + '__frame', - navFrameThumbClass = navFrameClass + '--thumb', fadeClass = _fotoramaClass + '__fade', fadeFrontClass = fadeClass + '-front', @@ -89,7 +88,7 @@ fotoramaVersion = '4.6.4'; spinnerClass = _fotoramaClass + '__spinner', - horizontalImageClass = _fotoramaClass + '_horisontal_ratio', + horizontalImageClass = _fotoramaClass + '_horizontal_ratio', verticalImageClass = _fotoramaClass + '_vertical_ratio'; var JQUERY_VERSION = $ && $.fn.jquery.split('.'); @@ -1006,7 +1005,7 @@ fotoramaVersion = '4.6.4'; /** * Set type of thumbnail navigation */ - navdir: 'horisontal', + navdir: 'horizontal', /** * Set configuration to show or hide arrows in thumb navigation @@ -1537,7 +1536,7 @@ fotoramaVersion = '4.6.4'; var position, size, wrapSize; - if (dir === 'horisontal') { + if (dir === 'horizontal') { size = opt.thumbwidth; wrapSize = $navWrap.width(); } else { @@ -1545,14 +1544,14 @@ fotoramaVersion = '4.6.4'; wrapSize = $navWrap.height(); } if ((size + opt.margin) * (guessIndex + 1) >= wrapSize - offsetNav) { - if (dir === 'horisontal') { + if (dir === 'horizontal') { position = -$guessNavFrame.position().left; } else { position = -$guessNavFrame.position().top; } } if ((size + opt.margin) * (guessIndex) <= Math.abs(offsetNav)) { - if (dir === 'horisontal') { + if (dir === 'horizontal') { position = -$guessNavFrame.position().left + wrapSize - (size + opt.margin); } else { position = -$guessNavFrame.position().top + wrapSize - (size + opt.margin); @@ -1677,7 +1676,6 @@ fotoramaVersion = '4.6.4'; } if (CSS3) { - $el.css($.extend(getDuration(options.time), translate)); if (options.time > 10) { @@ -2446,7 +2444,7 @@ fotoramaVersion = '4.6.4'; arrsUpdate(); stageWheelUpdate(); - + thumbArrUpdate(); if (opts.autoplay) setAutoplayInterval(opts.autoplay); o_thumbSide = numberFromMeasure(opts.thumbwidth) || THUMB_SIZE; @@ -2986,6 +2984,26 @@ fotoramaVersion = '4.6.4'; .attr(disableAttr(disableNext)); } + function thumbArrUpdate() { + var isLeftDisable = false, + isRightDisable = false; + if (opts.navtype === 'thumbs' && !opts.loop) { + (activeIndex == 0) ? isLeftDisable = true: isLeftDisable = false; + (activeIndex == opts.data.length - 1) ? isRightDisable = true: isRightDisable = false; + } + if (opts.navtype === 'slides') { + var pos = readPosition($navShaft, opts.navdir); + pos >= navShaftTouchTail.max ? isLeftDisable = true: isLeftDisable = false; + pos <= navShaftTouchTail.min ? isRightDisable = true: isRightDisable = false; + } + $thumbArrLeft + .toggleClass(arrDisabledClass, isLeftDisable) + .attr(disableAttr(isLeftDisable)); + $thumbArrRight + .toggleClass(arrDisabledClass, isRightDisable) + .attr(disableAttr(isRightDisable)); + } + function stageWheelUpdate() { if (stageWheelTail.ok) { stageWheelTail.prevent = {'<': disableDirrection(0), '>': disableDirrection(1)}; @@ -3063,6 +3081,7 @@ fotoramaVersion = '4.6.4'; direction: opts.navdir, onEnd: function () { thumbsDraw(pos, true); + thumbArrUpdate(); } }); @@ -3081,6 +3100,7 @@ fotoramaVersion = '4.6.4'; direction: opts.navdir, onEnd: function () { thumbsDraw(pos, true); + thumbArrUpdate(); } }); } @@ -3254,9 +3274,10 @@ fotoramaVersion = '4.6.4'; var currentPosition = readPosition($navShaft, opts.navdir), pos, time = 500 * 1.1, - size = opts.navdir === 'horisontal' ? opts.thumbwidth : opts.thumbheight, + size = opts.navdir === 'horizontal' ? opts.thumbwidth : opts.thumbheight, onEnd = function (pos) { thumbsDraw(pos, true); + thumbArrUpdate(); }; if (slideDir === 'next') { pos = currentPosition - (size + opts.margin) * thumbsPerSlide; @@ -3369,6 +3390,7 @@ fotoramaVersion = '4.6.4'; arrsUpdate(); + thumbArrUpdate(); if (o_nav) { navUpdate(); @@ -3540,7 +3562,7 @@ fotoramaVersion = '4.6.4'; if (o_nav) { switch (opts.navdir) { case 'vertical': - $navWrap.removeClass(navShaftHorisontalClass); + $navWrap.removeClass(navShafthorizontalClass); $navWrap.removeClass(navShaftListClass); $navWrap.addClass(navShaftVerticalClass); $nav @@ -3549,13 +3571,13 @@ fotoramaVersion = '4.6.4'; break; case 'list': $navWrap.removeClass(navShaftVerticalClass); - $navWrap.removeClass(navShaftHorisontalClass); + $navWrap.removeClass(navShafthorizontalClass); $navWrap.addClass(navShaftListClass); break; default: $navWrap.removeClass(navShaftVerticalClass); $navWrap.removeClass(navShaftListClass); - $navWrap.addClass(navShaftHorisontalClass); + $navWrap.addClass(navShafthorizontalClass); $nav .stop() .animate({width: measures.nw}, time); @@ -3783,6 +3805,7 @@ fotoramaVersion = '4.6.4'; releaseAutoplay(); changeAutoplay(); thumbsDraw(result.newPos, true); + thumbArrUpdate(); } if (!result.moved) { diff --git a/lib/web/mage/gallery/gallery.html b/lib/web/mage/gallery/gallery.html index 14381c41423..11b2ad5fd07 100644 --- a/lib/web/mage/gallery/gallery.html +++ b/lib/web/mage/gallery/gallery.html @@ -23,15 +23,15 @@ <div class="fotorama__nav-wrap" data-gallery-role="nav-wrap"> <div class="fotorama__nav fotorama__nav--thumbs"> <div class="fotorama__fullscreen-icon" tabindex="0" role="button"></div> - <div class="fotorama__thumb__arr--left" tabindex="0" role="button"> - <div class="fotorama__thumb__arr">Left</div> - </div> - <div class="fotorama__thumb__arr--right" tabindex="0" role="button"> - <div class="fotorama__thumb__arr">Right</div> + <div class="fotorama__thumb__arr--left" tabindex="0" role="button" aria-label="Previos"> + <div class="fotorama__thumb__arr" data-gallery-role="arrow"></div> </div> <div class="fotorama__nav__shaft"> <div class="fotorama__thumb-border"></div> </div> + <div class="fotorama__thumb__arr--right" tabindex="0" role="button" aria-label="Next"> + <div class="fotorama__thumb__arr" data-gallery-role="arrow"></div> + </div> </div> </div> </div> diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index df162ed3db9..c9d6c128247 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -22,9 +22,8 @@ .fotorama-rotate (@deg) { -webkit-transform: rotate(@deg); - -moz-transform: rotate(@deg); - -ms-transform: rotate(@deg); - -o-transform: rotate(@deg); + -ms-transform: rotate(@deg); + transform: rotate(@deg); } .translateX(@value) { @@ -47,9 +46,7 @@ .fotorama-arrow-gradient(@d){ background-image: -webkit-linear-gradient(@d, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0)); - background-image: -moz-linear-gradient(@d, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0)); background-image: -ms-linear-gradient(@d, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0)); - background-image: -o-linear-gradient(@d, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0)); background-image: linear-gradient(@d, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0)); } @@ -74,7 +71,7 @@ height: 50px; display: block; margin-left: 20px; - z-index:1000; + z-index: 1000; } .fotorama__zoom-out { top: 51px; @@ -440,7 +437,6 @@ &:extend(.fotorama-focus); &:extend(.fotorama-inline-block); &:extend(.fotorama-no-tap); - cursor: pointer; position: relative; } @@ -1005,7 +1001,7 @@ width: 100%; } } - .fotorama_horisontal_ratio { + .fotorama_horizontal_ratio { .fotorama__img { .translateX(-50%); height: 100%; @@ -1123,7 +1119,7 @@ } } -.fotorama__nav-wrap--horisontal { +.fotorama__nav-wrap--horizontal { .fotorama__thumb__arr--left, .fotorama__thumb__arr--right { bottom: 0; @@ -1131,6 +1127,7 @@ top: 0; width: @fotorama-thumb-arrow; z-index: @z-index-10; + cursor: pointer; .fotorama__thumb__arr { width: 100%; .fotorama-abs-center(); @@ -1159,6 +1156,7 @@ left: 0; position: absolute; right: 0; + cursor: pointer; z-index: @z-index-10; .fotorama__thumb__arr { .fotorama-rotate(90deg); -- GitLab From 3f4c9fbbb889234c67c4c85a93846d3322210532 Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Wed, 30 Sep 2015 16:30:57 +0300 Subject: [PATCH 182/420] MAGETWO-42762: Improve performance of table rendering - Commit not related to the main story - Improve sticky header observables calls --- .../Magento/Ui/view/base/web/js/grid/sticky/sticky.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js b/app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js index 03dd04d5385..8b63fcdd4ac 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js @@ -89,7 +89,7 @@ define([ */ initObservable: function () { this._super() - .observe(['visible']); + .track('visible'); return this; }, @@ -237,7 +237,7 @@ define([ this.checkPos(); } - if (this.visible()) { + if (this.visible) { this.checkTableElemsWidth(); if (this.flags.originalWidthChanged) { @@ -554,7 +554,7 @@ define([ * @returns {Object} Chainable. */ toggleContainerVisibility: function () { - this.visible(!this.visible()); + this.visible = !this.visible; return this; }, @@ -565,7 +565,7 @@ define([ * @returns {Boolean} whether the visibility of the sticky header was toggled. */ checkPos: function () { - var isSticky = this.visible(), + var isSticky = this.visible, mustBeSticky = this.getMustBeSticky(), needChange = isSticky !== mustBeSticky; -- GitLab From edf52cafb7db4d685f2d5e2d320641308567ba15 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Wed, 30 Sep 2015 17:18:45 +0300 Subject: [PATCH 183/420] MAGETWO-42762: Improve performance of table rendering - Fix inline editing rendering issues --- .../Magento/Ui/view/base/web/js/grid/dnd.js | 2 +- .../Ui/view/base/web/js/grid/editing/bulk.js | 4 +-- .../base/web/js/grid/editing/editor-view.js | 24 +++++++++++--- .../view/base/web/js/grid/editing/editor.js | 33 +++++++++---------- .../view/base/web/js/grid/editing/record.js | 7 ++-- .../Ui/view/base/web/js/grid/paging/sizes.js | 2 +- .../base/web/templates/grid/editing/bulk.html | 14 +++++--- .../grid/editing/header-buttons.html | 2 +- .../base/web/templates/grid/editing/row.html | 2 +- .../view/base/web/templates/grid/listing.html | 12 ++----- 10 files changed, 58 insertions(+), 44 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/grid/dnd.js b/app/code/Magento/Ui/view/base/web/js/grid/dnd.js index dd85c33145d..0f10358bb7d 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/dnd.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/dnd.js @@ -212,7 +212,7 @@ define([ return this; } - if (!Object.hasOwnProperty(model, 'dragover')) { + if (!ko.es5.isTracked(model, 'dragover')) { model.track('dragover'); } diff --git a/app/code/Magento/Ui/view/base/web/js/grid/editing/bulk.js b/app/code/Magento/Ui/view/base/web/js/grid/editing/bulk.js index f6fcc59213d..9c259144b84 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/editing/bulk.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/editing/bulk.js @@ -50,7 +50,7 @@ define([ */ initObservable: function () { this._super() - .observe({ + .track({ hasData: false }); @@ -121,7 +121,7 @@ define([ var fields = _.keys(this.getData()), hasData = !!fields.length; - this.hasData(hasData); + this.hasData = hasData; if (!this.active()) { fields = []; diff --git a/app/code/Magento/Ui/view/base/web/js/grid/editing/editor-view.js b/app/code/Magento/Ui/view/base/web/js/grid/editing/editor-view.js index 608cf7257b9..64fa58ac17c 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/editing/editor-view.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/editing/editor-view.js @@ -26,10 +26,10 @@ define([ rowTmpl: '<!-- ko with: _editor -->' + '<!-- ko if: isActive($row()._rowIndex, true) -->' + - '<!-- ko scope: formRecordName($row()._rowIndex, true) -->' + + '<!-- ko with: getRecord($row()._rowIndex, true) -->' + '<!-- ko template: rowTmpl --><!-- /ko -->' + '<!-- /ko -->' + - '<!-- ko if: isSingleEditing() -->' + + '<!-- ko if: isSingleEditing -->' + '<!-- ko template: rowButtonsTmpl --><!-- /ko -->' + '<!-- /ko -->' + '<!-- /ko -->' + @@ -114,14 +114,18 @@ define([ * @returns {View} Chainable. */ initRow: function (row) { + var $editingRow; + $(row).extendCtx({ _editor: this.model }).bindings(this.rowBindings); - $(this.rowTmpl) + $editingRow = $(this.rowTmpl) .insertBefore(row) .applyBindings(row); + ko.utils.domNodeDisposal.addDisposeCallback(row, this.removeEditingRow.bind(this, $editingRow)); + return this; }, @@ -136,7 +140,10 @@ define([ return { visible: ko.computed(function () { - return !model.isActive(ctx.$row()._rowIndex, true); + var record = ctx.$row(), + index = record && record._rowIndex; + + return !model.isActive(index, true); }) }; }, @@ -156,6 +163,15 @@ define([ }) } }; + }, + + /** + * Removes specified array of nodes. + * + * @param {ArrayLike} row + */ + removeEditingRow: function (row) { + _.toArray(row).forEach(ko.removeNode); } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/editing/editor.js b/app/code/Magento/Ui/view/base/web/js/grid/editing/editor.js index 5bfde4f5705..674c8d93e7d 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/editing/editor.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/editing/editor.js @@ -18,7 +18,6 @@ define([ headerButtonsTmpl: 'ui/grid/editing/header-buttons', successMsg: $t('You have successfully saved your edits.'), errorsCount: 0, - canSave: true, isMultiEditing: false, isSingleEditing: false, rowsData: [], @@ -91,14 +90,14 @@ define([ */ initObservable: function () { this._super() - .observe([ - 'canSave', + .track([ 'errorsCount', 'isMultiEditing', 'isSingleEditing' ]) .observe({ - active: [], + canSave: true, + activeRecords: [], messages: [] }); @@ -253,7 +252,7 @@ define([ * @returns {Editor} Chainable. */ hide: function () { - this.active.each('active', false); + this.activeRecords.each('active', false); return this; }, @@ -304,7 +303,7 @@ define([ * @returns {Array} An array of records and theirs validation results. */ validate: function () { - return this.active.map(function (record) { + return this.activeRecords.map(function (record) { return { target: record, valid: record.isValid() @@ -327,7 +326,7 @@ define([ * @returns {Object} Collection of records data. */ getData: function () { - var data = this.active.map('getData'); + var data = this.activeRecords.map('getData'); return _.indexBy(data, this.indexField); }, @@ -340,7 +339,7 @@ define([ * @returns {Editor} Chainable. */ setData: function (data, partial) { - this.active.each('setData', data, partial); + this.activeRecords.each('setData', data, partial); return this; }, @@ -457,7 +456,7 @@ define([ isActive: function (id, isIndex) { var record = this.getRecord(id, isIndex); - return record && record.active(); + return _.contains(this.activeRecords(), record); }, /** @@ -466,7 +465,7 @@ define([ * @returns {Boolean} */ hasActive: function () { - return !!this.active().length; + return !!this.activeRecords().length; }, /** @@ -475,7 +474,7 @@ define([ * @returns {Number} */ countActive: function () { - return this.active().length; + return this.activeRecords().length; }, /** @@ -486,11 +485,11 @@ define([ countErrors: function () { var errorsCount = 0; - this.active.each(function (record) { - errorsCount += record.errorsCount(); + this.activeRecords.each(function (record) { + errorsCount += record.errorsCount; }); - this.errorsCount(errorsCount); + this.errorsCount = errorsCount; return errorsCount; }, @@ -516,10 +515,10 @@ define([ columns.each('disableAction', !!activeCount); - this.isMultiEditing(activeCount > 1); - this.isSingleEditing(activeCount === 1); + this.isMultiEditing = activeCount > 1; + this.isSingleEditing = activeCount === 1; - this.active(active); + this.activeRecords(active); return this; }, diff --git a/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js b/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js index 21b24b0873f..434dda5349e 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js @@ -79,7 +79,8 @@ define([ */ initObservable: function () { this._super() - .observe('active fields errorsCount hasChanges'); + .track('errorsCount hasChanges') + .observe('active fields'); return this; }, @@ -291,7 +292,7 @@ define([ countErrors: function () { var errorsCount = this.elems.filter('error').length; - this.errorsCount(errorsCount); + this.errorsCount = errorsCount; return errorsCount; }, @@ -335,7 +336,7 @@ define([ updateState: function () { var diff = this.checkChanges(); - this.hasChanges(!diff.equal); + this.hasChanges = !diff.equal; return this; }, diff --git a/app/code/Magento/Ui/view/base/web/js/grid/paging/sizes.js b/app/code/Magento/Ui/view/base/web/js/grid/paging/sizes.js index 02dfbf47c3a..df287a12703 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/paging/sizes.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/paging/sizes.js @@ -38,7 +38,7 @@ define([ label: 200 } }, - statefull: { + links: { options: '${ $.storageConfig.path }.options', value: '${ $.storageConfig.path }.value' }, diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/editing/bulk.html b/app/code/Magento/Ui/view/base/web/templates/grid/editing/bulk.html index fe3d785f3d2..951e0af5cd1 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/editing/bulk.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/editing/bulk.html @@ -8,15 +8,18 @@ class="data-grid-bulk-edit-panel data-grid-editable-row" data-bind=" visible: active, - foreach: fields" + foreach: { + data: fields, + as: '$col' + }" data-role="data-grid-bulk-row"> + <!-- ko if: $parent.getColumn(index).visible --> <td data-bind=" - visible: $parent.getColumn(index).visible, css: { - 'data-grid-actions-cell': $parent.isActionsColumn($data) + 'data-grid-actions-cell': $parent.isActionsColumn($col) }"> - <!-- ko if: $parent.isActionsColumn($data) --> + <!-- ko if: $parent.isActionsColumn($col) --> <!-- ko with: $parent --> <button class="action-default" @@ -24,7 +27,7 @@ data-bind=" click: apply, attr: { - disabled: !hasData() + disabled: !hasData }"> <span data-bind="i18n: 'Apply'"></span> </button> @@ -43,4 +46,5 @@ <!-- ko template: getTemplate() --><!-- /ko --> <!-- /ko --> </td> + <!-- /ko --> </tr> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/editing/header-buttons.html b/app/code/Magento/Ui/view/base/web/templates/grid/editing/header-buttons.html index 834ef42fdbf..cb41d2538e8 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/editing/header-buttons.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/editing/header-buttons.html @@ -4,7 +4,7 @@ * See COPYING.txt for license details. */ --> -<div class="data-grid-info-panel" data-bind="visible: isMultiEditing() || (hasActive() && (hasMessages() || hasErrors() ))"> +<div class="data-grid-info-panel" data-bind="visible: isMultiEditing || (hasActive() && (hasMessages() || hasErrors() ))"> <div class="messages" data-bind="visible: hasMessages() || hasErrors()"> <div class="message message-warning" data-bind="visible: hasErrors()"> <strong>There are <!-- ko text: countErrors() --><!-- /ko --> meesages requires your attention.</strong> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/editing/row.html b/app/code/Magento/Ui/view/base/web/templates/grid/editing/row.html index 96223e79c71..ad64b2a630e 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/editing/row.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/editing/row.html @@ -17,7 +17,7 @@ <!-- ko if: $parent.isActionsColumn($data) --> <td class="data-grid-actions-cell"> - <span class="data-grid-row-changed" data-bind="css: {_changed: $parent.hasChanges()}"> + <span class="data-grid-row-changed" data-bind="css: {_changed: $parent.hasChanges}"> <span class="data-grid-row-changed-tooltip" data-bind="i18n: 'Record contains unsaved changes.'"></span> </span> </td> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/listing.html b/app/code/Magento/Ui/view/base/web/templates/grid/listing.html index 6e05a9c304b..875fc0e41c7 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/listing.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/listing.html @@ -16,21 +16,14 @@ </tr> </thead> <tbody> + <!-- ko repeat: {foreach: rows, item: '$row'} --> <tr class="data-row" data-bind=" - repeat: { - foreach: rows, - item: '$row' - }" - data-repeat-bind=" css: { '_odd-row': !!($index % 2) } "> - <!-- ko fastForEach: { - data: getVisible(), - as: '$col' - } --> + <!-- ko fastForEach: {data: getVisible(), as: '$col'} --> <td data-bind=" css: $col.getFieldClass(), click: $col.getFieldHandler($row()), @@ -39,6 +32,7 @@ </td> <!-- /ko --> </tr> + <!-- /ko --> <!-- ko ifnot: hasData() --> <tr class="data-grid-tr-no-data"> -- GitLab From dd1e5ecec1f41ee73d261e7fb5ed03918e36e08d Mon Sep 17 00:00:00 2001 From: AnastasiaBuniak <Anastasiia_Buniak@epam.com> Date: Wed, 30 Sep 2015 18:24:29 +0300 Subject: [PATCH 184/420] JS-206: Open full-screen on enter key --- lib/web/fotorama/fotorama.js | 11 ++++++++++- lib/web/mage/gallery/gallery.less | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 0898f37cf79..ea23322ad9e 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -3156,6 +3156,12 @@ fotoramaVersion = '4.6.4'; stageFramePosition(activeIndexes); setStageShaftMinmaxAndSnap(); setNavShaftMinMax(); + addEnterUp($stageShaft[0], function() { + if (!$fotorama.hasClass(fullscreenClass)) { + that.requestFullScreen(); + $(fullscreenIcon).trigger('focus'); + } + }); } } @@ -3929,7 +3935,10 @@ fotoramaVersion = '4.6.4'; addFocusOnControls(this); }); - addEnterUp(fullscreenIcon, that.toggleFullScreen); + addEnterUp(fullscreenIcon, function() { + that.toggleFullScreen(); + $(fullscreenIcon).trigger('focus'); + }); addFocusOnControls(fullscreenIcon); function reset() { diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index c9d6c128247..a701e89c4c8 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -196,6 +196,7 @@ height: 100%; position: absolute; width: 100%; + left:0; } .fotorama-transform-disabled { -- GitLab From 001544daf1de78f58be840ea6d1808cded44794b Mon Sep 17 00:00:00 2001 From: Maxim Medinskiy <mmedinskiy@ebay.com> Date: Wed, 30 Sep 2015 19:10:57 +0300 Subject: [PATCH 185/420] MAGETWO-42838: Combine filter and column components definition --- .../Ui/Test/Unit/Component/Control/ActionTest.php | 9 +++++++-- .../Ui/Test/Unit/Component/Control/LinkTest.php | 10 ++++++++-- .../Ui/Test/Unit/Component/ExportButtonTest.php | 9 ++++++++- .../Test/Unit/Component/Filters/Type/DateRangeTest.php | 4 ++++ .../Ui/Test/Unit/Component/Filters/Type/DateTest.php | 4 ++++ .../Ui/Test/Unit/Component/Filters/Type/InputTest.php | 4 ++++ .../Ui/Test/Unit/Component/Filters/Type/RangeTest.php | 5 ++++- .../Ui/Test/Unit/Component/Filters/Type/SelectTest.php | 4 ++++ .../Test/Unit/Component/Form/Field/MultilineTest.php | 4 ++++ .../Magento/Ui/Test/Unit/Component/Form/FieldTest.php | 6 +++++- .../Test/Unit/Component/Listing/Columns/ColumnTest.php | 9 ++++++++- .../Ui/Test/Unit/Component/Listing/ColumnsTest.php | 10 +++++----- .../Magento/Ui/Test/Unit/Component/ListingTest.php | 4 ++++ .../Unit/Component/MassAction/Columns/ColumnTest.php | 4 ++++ .../Magento/Ui/Test/Unit/Component/MassActionTest.php | 4 ++++ app/code/Magento/Ui/Test/Unit/Component/PagingTest.php | 4 ++++ 16 files changed, 81 insertions(+), 13 deletions(-) diff --git a/app/code/Magento/Ui/Test/Unit/Component/Control/ActionTest.php b/app/code/Magento/Ui/Test/Unit/Component/Control/ActionTest.php index be25a5957f1..6d02b1395ba 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/Control/ActionTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/Control/ActionTest.php @@ -28,9 +28,14 @@ class ActionTest extends \PHPUnit_Framework_TestCase */ public function setUp() { + $context = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') + ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $context->expects($this->any())->method('getProcessor')->willReturn($processor); $this->objectManager = new ObjectManager($this); - - $this->action = $this->objectManager->getObject('Magento\Ui\Component\Control\Action'); + $this->action = $this->objectManager->getObject('Magento\Ui\Component\Control\Action', ['context' => $context]); } /** diff --git a/app/code/Magento/Ui/Test/Unit/Component/Control/LinkTest.php b/app/code/Magento/Ui/Test/Unit/Component/Control/LinkTest.php index 1615690f867..00cd56b56f8 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/Control/LinkTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/Control/LinkTest.php @@ -28,9 +28,15 @@ class LinkTest extends \PHPUnit_Framework_TestCase */ public function setUp() { - $this->objectManager = new ObjectManager($this); + $context = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') + ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $context->expects($this->any())->method('getProcessor')->willReturn($processor); - $this->link = $this->objectManager->getObject('Magento\Ui\Component\Control\Link'); + $this->objectManager = new ObjectManager($this); + $this->link = $this->objectManager->getObject('Magento\Ui\Component\Control\Link', ['context' => $context]); } /** diff --git a/app/code/Magento/Ui/Test/Unit/Component/ExportButtonTest.php b/app/code/Magento/Ui/Test/Unit/Component/ExportButtonTest.php index 0e65e804ce8..dc6a1004b69 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/ExportButtonTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/ExportButtonTest.php @@ -29,6 +29,12 @@ class ExportButtonTest extends \PHPUnit_Framework_TestCase protected function setUp() { + $context = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') + ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $context->expects($this->any())->method('getProcessor')->willReturn($processor); $this->objectManager = new ObjectManager($this); $this->urlBuilderMock = $this->getMockBuilder('Magento\Framework\UrlInterface') @@ -37,7 +43,8 @@ class ExportButtonTest extends \PHPUnit_Framework_TestCase $this->model = $this->objectManager->getObject( 'Magento\Ui\Component\ExportButton', [ - 'urlBuilder' => $this->urlBuilderMock + 'urlBuilder' => $this->urlBuilderMock, + 'context' => $context, ] ); } diff --git a/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/DateRangeTest.php b/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/DateRangeTest.php index 6a2a0b54567..29262bc9e3f 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/DateRangeTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/DateRangeTest.php @@ -48,6 +48,10 @@ class DateRangeTest extends \PHPUnit_Framework_TestCase '', false ); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); $this->uiComponentFactory = $this->getMock( 'Magento\Framework\View\Element\UiComponentFactory', ['create'], diff --git a/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/DateTest.php b/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/DateTest.php index 79af8056579..e921d1d52d1 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/DateTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/DateTest.php @@ -48,6 +48,10 @@ class DateTest extends \PHPUnit_Framework_TestCase '', false ); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); $this->uiComponentFactory = $this->getMock( 'Magento\Framework\View\Element\UiComponentFactory', ['create'], diff --git a/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/InputTest.php b/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/InputTest.php index a3736ad6bd5..e4b291134e6 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/InputTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/InputTest.php @@ -48,6 +48,10 @@ class InputTest extends \PHPUnit_Framework_TestCase '', false ); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); $this->uiComponentFactory = $this->getMock( 'Magento\Framework\View\Element\UiComponentFactory', ['create'], diff --git a/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/RangeTest.php b/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/RangeTest.php index d28cb78ee21..8907f0c02aa 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/RangeTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/RangeTest.php @@ -47,7 +47,10 @@ class RangeTest extends \PHPUnit_Framework_TestCase '', false ); - + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); $this->uiComponentFactory = $this->getMock( 'Magento\Framework\View\Element\UiComponentFactory', [], diff --git a/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/SelectTest.php b/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/SelectTest.php index 45b200fc584..469e8ef5696 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/SelectTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/Filters/Type/SelectTest.php @@ -48,6 +48,10 @@ class SelectTest extends \PHPUnit_Framework_TestCase '', false ); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); $this->uiComponentFactory = $this->getMock( 'Magento\Framework\View\Element\UiComponentFactory', ['create'], diff --git a/app/code/Magento/Ui/Test/Unit/Component/Form/Field/MultilineTest.php b/app/code/Magento/Ui/Test/Unit/Component/Form/Field/MultilineTest.php index c1e717c1525..c724bc049fe 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/Form/Field/MultilineTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/Form/Field/MultilineTest.php @@ -47,6 +47,10 @@ class MultilineTest extends \PHPUnit_Framework_TestCase ->getMock(); $this->contextMock = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); $this->multiline = new Multiline( $this->contextMock, diff --git a/app/code/Magento/Ui/Test/Unit/Component/Form/FieldTest.php b/app/code/Magento/Ui/Test/Unit/Component/Form/FieldTest.php index 86a47115d31..a5462493e45 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/Form/FieldTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/Form/FieldTest.php @@ -56,6 +56,10 @@ class FieldTest extends \PHPUnit_Framework_TestCase ->getMock(); $this->contextMock = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); $this->field = new Field( $this->contextMock, @@ -138,7 +142,7 @@ class FieldTest extends \PHPUnit_Framework_TestCase $wrappedComponentMock->expects($this->once()) ->method('getChildComponents') ->willReturn($this->getComponentsMock()); - $wrappedComponentMock->expects($this->exactly(2)) + $wrappedComponentMock->expects($this->any()) ->method('getComponentName') ->willReturn(self::COMPONENT_NAME); $wrappedComponentMock->expects($this->once()) diff --git a/app/code/Magento/Ui/Test/Unit/Component/Listing/Columns/ColumnTest.php b/app/code/Magento/Ui/Test/Unit/Component/Listing/Columns/ColumnTest.php index 98005246955..c42ba043d2d 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/Listing/Columns/ColumnTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/Listing/Columns/ColumnTest.php @@ -43,6 +43,10 @@ class ColumnTest extends \PHPUnit_Framework_TestCase true, [] ); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); } /** @@ -78,7 +82,10 @@ class ColumnTest extends \PHPUnit_Framework_TestCase public function testPrepareItems() { $testItems = ['item1','item2', 'item3']; - $column = $this->objectManager->getObject('Magento\Ui\Component\Listing\Columns\Column'); + $column = $this->objectManager->getObject( + 'Magento\Ui\Component\Listing\Columns\Column', + ['context' => $this->contextMock] + ); $this->assertEquals($testItems, $column->prepareItems($testItems)); } diff --git a/app/code/Magento/Ui/Test/Unit/Component/Listing/ColumnsTest.php b/app/code/Magento/Ui/Test/Unit/Component/Listing/ColumnsTest.php index fca1b2a4ede..e381cc7a096 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/Listing/ColumnsTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/Listing/ColumnsTest.php @@ -42,6 +42,10 @@ class ColumnsTest extends \PHPUnit_Framework_TestCase true, [] ); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); } /** @@ -105,10 +109,6 @@ class ColumnsTest extends \PHPUnit_Framework_TestCase $this->contextMock->expects($this->once()) ->method('addComponentDefinition') ->with('columns', ['extends' => 'test_config_extends']); - $this->contextMock->expects($this->once()) - ->method('getUrl') - ->with($saveUrl) - ->willReturn('http://localhost.com/admin/' . $saveUrl); $dataProviderMock->expects($this->once()) ->method('getFieldMetaInfo') @@ -152,7 +152,7 @@ class ColumnsTest extends \PHPUnit_Framework_TestCase 'test_config_data' => 'test_config_value', 'editorConfig' => [ 'clientConfig' => [ - 'saveUrl' => 'http://localhost.com/admin/' . $saveUrl, + 'saveUrl' => $saveUrl, ] ] ], diff --git a/app/code/Magento/Ui/Test/Unit/Component/ListingTest.php b/app/code/Magento/Ui/Test/Unit/Component/ListingTest.php index 9ee36c9ad4a..530e02138f1 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/ListingTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/ListingTest.php @@ -38,6 +38,10 @@ class ListingTest extends \PHPUnit_Framework_TestCase '', false ); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); } /** diff --git a/app/code/Magento/Ui/Test/Unit/Component/MassAction/Columns/ColumnTest.php b/app/code/Magento/Ui/Test/Unit/Component/MassAction/Columns/ColumnTest.php index 43b9271d4e0..2d35559c0c1 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/MassAction/Columns/ColumnTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/MassAction/Columns/ColumnTest.php @@ -45,6 +45,10 @@ class ColumnTest extends \PHPUnit_Framework_TestCase true, [] ); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); $this->column = $this->objectManager->getObject( 'Magento\Ui\Component\MassAction\Columns\Column', diff --git a/app/code/Magento/Ui/Test/Unit/Component/MassActionTest.php b/app/code/Magento/Ui/Test/Unit/Component/MassActionTest.php index a2d2401fed7..5f4174a99b5 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/MassActionTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/MassActionTest.php @@ -33,6 +33,10 @@ class MassActionTest extends \PHPUnit_Framework_TestCase $this->contextMock = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); } /** diff --git a/app/code/Magento/Ui/Test/Unit/Component/PagingTest.php b/app/code/Magento/Ui/Test/Unit/Component/PagingTest.php index fd4c63c3b28..3992644a9b6 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/PagingTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/PagingTest.php @@ -41,6 +41,10 @@ class PagingTest extends \PHPUnit_Framework_TestCase true, [] ); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); } /** -- GitLab From a2812e06bd8d66526e0d1d999847a742200a6011 Mon Sep 17 00:00:00 2001 From: Dale Sikkema <dsikkema@ebay.com> Date: Wed, 30 Sep 2015 14:26:59 -0500 Subject: [PATCH 186/420] MAGETWO-43197: Product's options are not saved after running setup:di:compile --- lib/internal/Magento/Framework/Code/Generator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/Code/Generator.php b/lib/internal/Magento/Framework/Code/Generator.php index ae9688d2b48..63ed179867d 100644 --- a/lib/internal/Magento/Framework/Code/Generator.php +++ b/lib/internal/Magento/Framework/Code/Generator.php @@ -178,7 +178,7 @@ class Generator protected function tryToLoadSourceClass($className, $generator) { $sourceClassName = $generator->getSourceClassName(); - if (!$this->definedClasses->isClassLoadableFromDisc($sourceClassName)) { + if (!$this->definedClasses->isClassLoadable($sourceClassName)) { if ($this->generateClass($sourceClassName) !== self::GENERATION_SUCCESS) { throw new \Magento\Framework\Exception\LocalizedException( new \Magento\Framework\Phrase( -- GitLab From ddbe874c25540836840768bfc3b6bd257a79c9d8 Mon Sep 17 00:00:00 2001 From: Dale Sikkema <dsikkema@ebay.com> Date: Wed, 30 Sep 2015 16:30:44 -0500 Subject: [PATCH 187/420] MAGETWO-43197: Product's options are not saved after running setup:di:compile - static test fix --- lib/internal/Magento/Framework/Code/Generator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/Code/Generator.php b/lib/internal/Magento/Framework/Code/Generator.php index 63ed179867d..ed16a98977c 100644 --- a/lib/internal/Magento/Framework/Code/Generator.php +++ b/lib/internal/Magento/Framework/Code/Generator.php @@ -113,7 +113,7 @@ class Generator * Include file only if the class is not already defined in memory * * @param string $fileName - * @param $className + * @param string $className * @return void */ public function tryToIncludeFile($fileName, $className) -- GitLab From 269e14e5135c79dd32f249280d2c58c66c0f831f Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Thu, 1 Oct 2015 09:12:22 +0300 Subject: [PATCH 188/420] MAGETWO-39938: [static scan] Code injection: #15723895, #15723900, #15723908 --- .../view/adminhtml/templates/catalog/category/tree.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml index eeefa9796b4..742336e8e0d 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml @@ -225,7 +225,7 @@ function reRenderTree(switcherParams) { parameters:params, method:'post', onComplete:function (transport) { - var response = eval('(' + transport.responseText + ')'); + var response = JSON.parse(transport.responseText); if (!response['parameters']) { return false; } -- GitLab From 1e4552fa8b5c9da1ed04950bc90fc13061df2a80 Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Thu, 1 Oct 2015 09:23:26 +0300 Subject: [PATCH 189/420] MAGETWO-39938: [static scan] Code injection: #15723895, #15723900, #15723908 --- .../system/config/system/storage/media/synchronize.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/MediaStorage/view/adminhtml/templates/system/config/system/storage/media/synchronize.phtml b/app/code/Magento/MediaStorage/view/adminhtml/templates/system/config/system/storage/media/synchronize.phtml index 0c9080bc8db..316c5fa5b3d 100644 --- a/app/code/Magento/MediaStorage/view/adminhtml/templates/system/config/system/storage/media/synchronize.phtml +++ b/app/code/Magento/MediaStorage/view/adminhtml/templates/system/config/system/storage/media/synchronize.phtml @@ -102,7 +102,7 @@ require([ var response; try { - response = eval('(' + transport.responseText + ')'); + response = JSON.parse(transport.responseText); if (response.state == '<?php /* @escapeNotVerified */ echo \Magento\MediaStorage\Model\File\Storage\Flag::STATE_RUNNING ?>' && response.message ) { -- GitLab From 1cd587c8da0d6417be5a7dca1747f899b8495300 Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Thu, 1 Oct 2015 09:42:16 +0300 Subject: [PATCH 190/420] MAGETWO-39938: [static scan] Code injection: #15723895, #15723900, #15723908 --- .../view/adminhtml/templates/catalog/category/tree.phtml | 9 +++++++-- .../view/adminhtml/templates/promo/salesrulejs.phtml | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml index 742336e8e0d..249f02f6e3f 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml @@ -225,8 +225,13 @@ function reRenderTree(switcherParams) { parameters:params, method:'post', onComplete:function (transport) { - var response = JSON.parse(transport.responseText); - if (!response['parameters']) { + var response; + + try { + response = JSON.parse(transport.responseText); + } + + if (!response || !response['parameters']) { return false; } diff --git a/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml b/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml index f2a8fc4b3f0..fea5d38e825 100644 --- a/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml +++ b/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml @@ -80,7 +80,9 @@ function generateCouponCodes(idPrefix, generateUrl, grid) { onComplete : function (transport, param){ var response = false; if (transport && transport.responseText) { - response = eval('(' + transport.responseText + ')'); + try { + response = JSON.parse(transport.responseText); + } } if (couponCodesGrid) { couponCodesGrid.reload(); -- GitLab From 936ce6669d9974d948a82d59370330a132d945e5 Mon Sep 17 00:00:00 2001 From: Oleksandr Dubovyk <odubovyk@ebay.com> Date: Thu, 1 Oct 2015 10:42:26 +0300 Subject: [PATCH 191/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget - Corrected Close button padding - Changed class on button --- .../view/adminhtml/web/js/custom-options.js | 15 +++++++++++++-- .../web/css/source/components/_modals_extend.less | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js index d68497046a5..fc77470403a 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js @@ -127,7 +127,7 @@ define([ type: 'slide', opened: function () { $(document).off().on('click', '#productGrid_massaction-form button', function () { - $('.import-custom-options-apply-button').trigger('click', 'massActionTrigger'); + $('. import-custom-options-apply-button').trigger('click', 'massActionTrigger'); }); }, buttons: [{ @@ -146,7 +146,18 @@ define([ if (request.length === 0) { if (!massActionTrigger) { alert({ - content: $.mage.__('Please select items.') + content: $.mage.__('Please select items.'), + buttons: [{ + text: $.mage.__('OK'), + class: 'action-primary action-accept', + + /** + * Click handler. + */ + click: function () { + this.closeModal(true); + } + }] }); } diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less index 2a009ea2f11..8a7d177529e 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_modals_extend.less @@ -105,7 +105,7 @@ } .action-close { - padding: @modal-popup__padding @modal-popup__padding 0 0; + padding: @modal-popup__padding @modal-popup__padding; &:active{ padding-top: @modal-popup__padding + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 3; padding-right: @modal-popup__padding + (@modal-action-close__font-size - @modal-action-close__active__font-size) / 3; -- GitLab From a09a3ef95020b300273fda54e023c94585036763 Mon Sep 17 00:00:00 2001 From: Maxim Medinskiy <mmedinskiy@ebay.com> Date: Thu, 1 Oct 2015 12:06:14 +0300 Subject: [PATCH 192/420] MAGETWO-42838: Combine filter and column components definition --- .../Ui/Component/Listing/Column/PageActionsTest.php | 7 +++++++ .../Ui/Component/Listing/Column/ActionsTest.php | 12 ++++++------ .../Listing/Column/AttributeColumnTest.php | 12 ++++++------ .../Test/Unit/Ui/Component/Listing/ColumnsTest.php | 13 +++++++------ .../Ui/Component/Listing/Column/AddressTest.php | 11 ++++++++++- .../Component/Listing/Column/CustomerGroupTest.php | 8 +++++++- .../Component/Listing/Column/PaymentMethodTest.php | 8 +++++++- .../Unit/Ui/Component/Listing/Column/PriceTest.php | 8 +++++++- .../Unit/Ui/Component/Listing/Column/StatusTest.php | 8 +++++++- .../Ui/Component/Listing/Column/ViewActionTest.php | 9 ++++++++- 10 files changed, 72 insertions(+), 24 deletions(-) diff --git a/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php b/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php index fdc87499f58..999b6f828d0 100644 --- a/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php +++ b/app/code/Magento/Cms/Test/Unit/Ui/Component/Listing/Column/PageActionsTest.php @@ -18,12 +18,19 @@ class PageActionsTest extends \PHPUnit_Framework_TestCase $urlBuilderMock = $this->getMockBuilder('Magento\Framework\UrlInterface') ->disableOriginalConstructor() ->getMock(); + $contextMock = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') + ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); /** @var \Magento\Cms\Ui\Component\Listing\Column\PageActions $model */ $model = $objectManager->getObject( 'Magento\Cms\Ui\Component\Listing\Column\PageActions', [ 'urlBuilder' => $urlBuilderMock, + 'context' => $contextMock, ] ); diff --git a/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/Column/ActionsTest.php b/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/Column/ActionsTest.php index d329c4befd1..011cd5c61ff 100644 --- a/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/Column/ActionsTest.php +++ b/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/Column/ActionsTest.php @@ -23,12 +23,12 @@ class ActionsTest extends \PHPUnit_Framework_TestCase public function setup() { - $this->context = $this->getMockForAbstractClass( - 'Magento\Framework\View\Element\UiComponent\ContextInterface', - [], - '', - false - ); + $this->context = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') + ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->context->expects($this->any())->method('getProcessor')->willReturn($processor); $this->uiComponentFactory = $this->getMock( 'Magento\Framework\View\Element\UiComponentFactory', [], diff --git a/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/Column/AttributeColumnTest.php b/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/Column/AttributeColumnTest.php index ec5772d9d09..d0516987bf7 100644 --- a/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/Column/AttributeColumnTest.php +++ b/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/Column/AttributeColumnTest.php @@ -27,12 +27,12 @@ class AttributeColumnTest extends \PHPUnit_Framework_TestCase public function setup() { - $this->context = $this->getMockForAbstractClass( - 'Magento\Framework\View\Element\UiComponent\ContextInterface', - [], - '', - false - ); + $this->context = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') + ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->context->expects($this->any())->method('getProcessor')->willReturn($processor); $this->uiComponentFactory = $this->getMock( 'Magento\Framework\View\Element\UiComponentFactory', [], diff --git a/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/ColumnsTest.php b/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/ColumnsTest.php index fbdfdf3ff47..2ff207ba75f 100644 --- a/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/ColumnsTest.php +++ b/app/code/Magento/Customer/Test/Unit/Ui/Component/Listing/ColumnsTest.php @@ -32,12 +32,12 @@ class ColumnsTest extends \PHPUnit_Framework_TestCase public function setUp() { - $this->context = $this->getMockForAbstractClass( - 'Magento\Framework\View\Element\UiComponent\ContextInterface', - [], - '', - false - ); + $this->context = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') + ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $this->context->expects($this->any())->method('getProcessor')->willReturn($processor); $this->columnFactory = $this->getMock( 'Magento\Customer\Ui\Component\ColumnFactory', ['create'], @@ -173,6 +173,7 @@ class ColumnsTest extends \PHPUnit_Framework_TestCase [ 'name' => $attributeCode, 'dataType' => $backendType, + 'filter' => 'text', 'visible' => true ] ); diff --git a/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/AddressTest.php b/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/AddressTest.php index 592116ce928..cfeef76ec83 100644 --- a/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/AddressTest.php +++ b/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/AddressTest.php @@ -22,7 +22,16 @@ class AddressTest extends \PHPUnit_Framework_TestCase public function setUp() { $objectManager = new ObjectManager($this); - $this->model = $objectManager->getObject('Magento\Sales\Ui\Component\Listing\Column\Address'); + $contextMock = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') + ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); + $this->model = $objectManager->getObject( + 'Magento\Sales\Ui\Component\Listing\Column\Address', + ['context' => $contextMock] + ); } public function testPrepareDataSource() diff --git a/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/CustomerGroupTest.php b/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/CustomerGroupTest.php index 0ef21fae35f..4e24091865c 100644 --- a/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/CustomerGroupTest.php +++ b/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/CustomerGroupTest.php @@ -27,10 +27,16 @@ class CustomerGroupTest extends \PHPUnit_Framework_TestCase public function setUp() { $objectManager = new ObjectManager($this); + $contextMock = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') + ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); $this->groupRepository = $this->getMockForAbstractClass('Magento\Customer\Api\GroupRepositoryInterface'); $this->model = $objectManager->getObject( 'Magento\Sales\Ui\Component\Listing\Column\CustomerGroup', - ['groupRepository' => $this->groupRepository] + ['groupRepository' => $this->groupRepository, 'context' => $contextMock] ); } diff --git a/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/PaymentMethodTest.php b/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/PaymentMethodTest.php index 5d6f5195f2f..7eb1fb7c937 100644 --- a/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/PaymentMethodTest.php +++ b/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/PaymentMethodTest.php @@ -27,10 +27,16 @@ class PaymentMethodTest extends \PHPUnit_Framework_TestCase public function setUp() { $objectManager = new ObjectManager($this); + $contextMock = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') + ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); $this->paymentHelper = $this->getMock('Magento\Payment\Helper\Data', [], [], '', false); $this->model = $objectManager->getObject( 'Magento\Sales\Ui\Component\Listing\Column\PaymentMethod', - ['paymentHelper' => $this->paymentHelper] + ['paymentHelper' => $this->paymentHelper, 'context' => $contextMock] ); } diff --git a/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/PriceTest.php b/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/PriceTest.php index 4efffe34f63..5d47b90eec0 100644 --- a/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/PriceTest.php +++ b/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/PriceTest.php @@ -27,10 +27,16 @@ class PriceTest extends \PHPUnit_Framework_TestCase public function setUp() { $objectManager = new ObjectManager($this); + $contextMock = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') + ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); $this->priceFormatterMock = $this->getMockForAbstractClass('Magento\Framework\Pricing\PriceCurrencyInterface'); $this->model = $objectManager->getObject( 'Magento\Sales\Ui\Component\Listing\Column\Price', - ['priceFormatter' => $this->priceFormatterMock] + ['priceFormatter' => $this->priceFormatterMock, 'context' => $contextMock] ); } diff --git a/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/StatusTest.php b/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/StatusTest.php index 905a4561ac2..8d03782f6ba 100644 --- a/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/StatusTest.php +++ b/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/StatusTest.php @@ -43,9 +43,15 @@ class StatusTest extends \PHPUnit_Framework_TestCase ->willReturn($collection); $objectManager = new ObjectManager($this); + $contextMock = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') + ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); $model = $objectManager->getObject( 'Magento\Sales\Ui\Component\Listing\Column\Status', - ['collectionFactory' => $collectionFactoryMock] + ['collectionFactory' => $collectionFactoryMock, 'context' => $contextMock] ); $model->setData('name', $itemName); $model->prepareDataSource($dataSource); diff --git a/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/ViewActionTest.php b/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/ViewActionTest.php index bf6e0ee16bd..3cd982c8b7f 100644 --- a/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/ViewActionTest.php +++ b/app/code/Magento/Sales/Test/Unit/Ui/Component/Listing/Column/ViewActionTest.php @@ -50,11 +50,18 @@ class ViewActionTest extends \PHPUnit_Framework_TestCase $expectedUrlPath, $expectedUrlParam ) { + $contextMock = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\ContextInterface') + ->getMockForAbstractClass(); + $processor = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\Processor') + ->disableOriginalConstructor() + ->getMock(); + $contextMock->expects($this->any())->method('getProcessor')->willReturn($processor); $this->model = $this->objectManager->getObject( 'Magento\Sales\Ui\Component\Listing\Column\ViewAction', [ 'urlBuilder' => $this->urlBuilder, - 'data' => $data + 'data' => $data, + 'context' => $contextMock, ] ); -- GitLab From d1672cf167d1eb3632f24e82cd8df7945d07ef8f Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Thu, 1 Oct 2015 12:23:02 +0300 Subject: [PATCH 193/420] MAGETWO-42762: Improve performance of table rendering - Commit not related to the main story - Improve sticky header columns resize --- .../Magento/Ui/view/base/web/js/grid/sticky/sticky.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js b/app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js index 8b63fcdd4ac..8daa9999633 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js @@ -58,6 +58,7 @@ define([ 'initListingNode', 'initToolbarNode', 'initContainerNode', + 'initColumns', 'initStickyListingNode', 'initStickyToolbarNode', 'initLeftDataGridCap', @@ -104,7 +105,7 @@ define([ return; } this.listingNode = $(node); - this.columns = this.listingNode.find(this.columnSelector); + $.async(this.columnSelector, node, this.initColumns); }, /** @@ -155,6 +156,14 @@ define([ this.initRightDataGridCap); }, + /** + * Init columns (each time when amount of columns is changed) + * + */ + initColumns: function () { + this.columns = this.listingNode.find(this.columnSelector); + }, + /** * Init left DataGridCap * -- GitLab From 64ca89bb1ad2eb3903b404786db4669e468466f2 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Thu, 1 Oct 2015 12:28:56 +0300 Subject: [PATCH 194/420] JS-51: Gallery Widget Configuration and Extension on theme level - Fix typos --- .../templates/product/view/gallery.phtml | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index c995c900a1a..0f21866f808 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -34,20 +34,19 @@ "height": <?php /* @escapeNotVerified */ echo $block->getImageAttribute('product_page_image_medium', 'height') ?: $block->getImageAttribute('product_page_image_medium', 'width'); ?>, "transitionduration": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/transition/duration"); ?>, - "transition": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/transition/effect"); ?>, - "navarrows": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/navarrows"); ?>, - "navtype": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/navtype"); ?>, - "navdir": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/navdir"); ?>, - + "transition": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/transition/effect"); ?>", + "navarrows": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/navarrows"); ?>", + "navtype": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/navtype"); ?>", + "navdir": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/navdir"); ?>" }, "fullscreen": { - "nav": "<?php/* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/navigation"); ?>", - "loop": <?php/* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/loop"); ?>, - "navdir": "<?php/* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/navdir"); ?>", - "arrows": <?php/* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/arrows"); ?>, - "showCaption": <?php/* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/caption"); ?>, - "transitionduration": <?php/* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/transition/duration"); ?>, - "transition": "<?php/* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/transition/effect"); ?>" + "nav": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/navigation"); ?>", + "loop": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/loop"); ?>, + "navdir": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/navdir"); ?>", + "arrows": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/arrows"); ?>, + "showCaption": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/caption"); ?>, + "transitionduration": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/transition/duration"); ?>, + "transition": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/transition/effect"); ?>" } "breakpoints": <?php /* @escapeNotVerified */ echo $block->getBreakpoints(); ?> } -- GitLab From 8f303076d39ae600dd2e81a104359b5d8dc91425 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Thu, 1 Oct 2015 12:42:09 +0300 Subject: [PATCH 195/420] MAGETWO-43415: Admin menu items in the bottom is not accessible if windows height is 800px --- app/design/adminhtml/Magento/backend/web/js/theme.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/design/adminhtml/Magento/backend/web/js/theme.js b/app/design/adminhtml/Magento/backend/web/js/theme.js index 9d1524c4e23..5fdaa4c5824 100644 --- a/app/design/adminhtml/Magento/backend/web/js/theme.js +++ b/app/design/adminhtml/Magento/backend/web/js/theme.js @@ -126,12 +126,13 @@ define('globalNavigationScroll', [ menuItems.on('click', function (e) { var submenu = $(this).children(subMenuClass), - delta; + delta, + logo = $('.logo')[0].offsetHeight; submenuHeight = submenu.height(); - if (submenuHeight > menuHeight && menuHeight > winHeight) { - menu.height(submenuHeight - $('.logo')[0].offsetHeight); + if (submenuHeight > menuHeight && menuHeight + logo > winHeight) { + menu.height(submenuHeight - logo); delta = -menu.position().top; window.scrollTo(0, 0); positionMenu(); -- GitLab From ae07aaea2bf7f41a1faa2c2a24ae7f7d3fdf211c Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Thu, 1 Oct 2015 12:55:32 +0300 Subject: [PATCH 196/420] MAGETWO-42762: Improve performance of table rendering - Add missing filters on customer grid - Fix price filter on products --- .../Catalog/Ui/Component/Listing/Columns/Price.php | 2 +- .../view/adminhtml/ui_component/product_listing.xml | 11 ++--------- .../view/adminhtml/ui_component/customer_listing.xml | 12 +++++++++++- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/app/code/Magento/Catalog/Ui/Component/Listing/Columns/Price.php b/app/code/Magento/Catalog/Ui/Component/Listing/Columns/Price.php index 1e8b7fb4a7f..2c9294a3466 100644 --- a/app/code/Magento/Catalog/Ui/Component/Listing/Columns/Price.php +++ b/app/code/Magento/Catalog/Ui/Component/Listing/Columns/Price.php @@ -13,7 +13,7 @@ class Price extends \Magento\Ui\Component\Listing\Columns\Column /** * Column name */ - const NAME = 'price'; + const NAME = 'column.price'; /** * @var \Magento\Framework\Locale\CurrencyInterface diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml index a8c6a7c5281..b5cc8a86dc5 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml @@ -65,12 +65,6 @@ <item name="provider" xsi:type="string">product_listing.product_listing.listing_top.bookmarks</item> <item name="namespace" xsi:type="string">current.filters</item> </item> - <item name="childDefaults" xsi:type="array"> - <item name="provider" xsi:type="string">product_listing.product_listing.listing_top.listing_filters</item> - <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string">product_listing.product_listing.product_columns.${ $.index }:visible</item> - </item> - </item> </item> </argument> <filterSelect name="store_id"> @@ -79,12 +73,10 @@ </argument> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="provider" xsi:type="string">product_listing.product_listing.listing_top.listing_filters</item> <item name="dataScope" xsi:type="string">store_id</item> <item name="caption" xsi:type="string" translate="true">Select...</item> <item name="label" xsi:type="string" translate="true">Store View</item> - <item name="imports" xsi:type="array"> - <item name="visible" xsi:type="string"></item> - </item> </item> </argument> </filterSelect> @@ -191,6 +183,7 @@ <column name="entity_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">textRange</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">ID</item> <item name="sortOrder" xsi:type="number">10</item> diff --git a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml index c467751948f..e213905234b 100644 --- a/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml +++ b/app/code/Magento/Customer/view/adminhtml/ui_component/customer_listing.xml @@ -336,6 +336,7 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> + <item name="filter" xsi:type="string">dateRange</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">date</item> <item name="label" xsi:type="string" translate="true">Last Logged In</item> @@ -384,8 +385,9 @@ <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item> <item name="visible" xsi:type="boolean">false</item> + <item name="filter" xsi:type="string">dateRange</item> <item name="dataType" xsi:type="string">date</item> - <item name="label" xsi:type="string" translate="true">Date Of Birth</item> + <item name="label" xsi:type="string" translate="true">Date of Birth</item> <item name="sortOrder" xsi:type="number">170</item> </item> </argument> @@ -393,6 +395,7 @@ <column name="taxvat"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="label" xsi:type="string" translate="true">Tax VAT Number</item> @@ -404,6 +407,7 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item> + <item name="filter" xsi:type="string">select</item> <item name="editor" xsi:type="string">select</item> <item name="visible" xsi:type="boolean">false</item> <item name="dataType" xsi:type="string">select</item> @@ -424,6 +428,7 @@ <column name="billing_city"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="label" xsi:type="string" translate="true">City</item> @@ -434,6 +439,7 @@ <column name="billing_fax"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="label" xsi:type="string" translate="true">Fax</item> @@ -444,6 +450,7 @@ <column name="billing_vat_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="label" xsi:type="string" translate="true">VAT Number</item> @@ -454,6 +461,7 @@ <column name="billing_company"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="label" xsi:type="string" translate="true">Company</item> @@ -464,6 +472,7 @@ <column name="billing_firstname"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="label" xsi:type="string" translate="true">Billing Firstname</item> @@ -474,6 +483,7 @@ <column name="billing_lastname"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> + <item name="filter" xsi:type="string">text</item> <item name="editor" xsi:type="string">text</item> <item name="visible" xsi:type="boolean">false</item> <item name="label" xsi:type="string" translate="true">Billing Lastname</item> -- GitLab From ff20579961145ef022cbb55d05906233086924e3 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Thu, 1 Oct 2015 12:55:58 +0300 Subject: [PATCH 197/420] MAGETWO-42995: Stabilize functional tests --- .../Test/Block/Product/Compare/Sidebar.php | 12 +++- .../Checkout/Test/Block/Cart/Sidebar/Item.php | 12 +++- .../Block/Account/AddressesAdditional.php | 12 +++- .../Adminhtml/Integration/IntegrationGrid.php | 18 +++--- .../Test/Block/Adminhtml/Order/Actions.php | 12 +++- .../Block/Adminhtml/User/Edit/PageActions.php | 12 +++- .../System/Variable/FormPageActions.php | 14 ++++- .../Customer/Edit/Tab/Wishlist/Grid.php | 12 +++- lib/web/mage/adminhtml/grid.js | 55 ++++++++++--------- 9 files changed, 118 insertions(+), 41 deletions(-) diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/Sidebar.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/Sidebar.php index ea1a27a09e2..eec1be1fcf5 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/Sidebar.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Product/Compare/Sidebar.php @@ -32,6 +32,13 @@ class Sidebar extends ListCompare */ protected $clearAll = '#compare-clear-all'; + /** + * Selector for alert. + * + * @var string + */ + protected $alertModal = '._show[data-role=modal]'; + /** * Get compare products block content. * @@ -79,6 +86,9 @@ class Sidebar extends ListCompare } ); $this->_rootElement->find($this->clearAll)->click(); - $this->browser->acceptAlert(); + $element = $this->browser->find($this->alertModal); + /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ + $modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]); + $modal->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Sidebar/Item.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Sidebar/Item.php index 7d0966f1535..43dbd23499a 100644 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Sidebar/Item.php +++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Sidebar/Item.php @@ -28,6 +28,13 @@ class Item extends Sidebar */ protected $editItem = '.action.edit'; + /** + * Selector for confirm. + * + * @var string + */ + protected $confirmModal = '.confirm._show[data-role=modal]'; + /** * Remove product item from mini cart * @@ -36,7 +43,10 @@ class Item extends Sidebar public function removeItemFromMiniCart() { $this->_rootElement->find($this->removeItem)->click(); - $this->browser->acceptAlert(); + $element = $this->browser->find($this->confirmModal); + /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ + $modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]); + $modal->acceptAlert(); } /** diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AddressesAdditional.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AddressesAdditional.php index 89292194978..9e316ceabea 100644 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AddressesAdditional.php +++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Account/AddressesAdditional.php @@ -36,6 +36,13 @@ class AddressesAdditional extends Block */ protected $additionalAddressContent = '.block-content'; + /** + * Selector for confirm. + * + * @var string + */ + protected $confirmModal = '.confirm._show[data-role=modal]'; + /** * Delete Additional Address * @@ -46,7 +53,10 @@ class AddressesAdditional extends Block { $this->_rootElement->find(sprintf($this->addressSelector, $address->getStreet()), Locator::SELECTOR_XPATH) ->find($this->deleteAddressLink)->click(); - $this->browser->acceptAlert(); + $element = $this->browser->find($this->confirmModal); + /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ + $modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]); + $modal->acceptAlert(); } /** diff --git a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid.php b/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid.php index fa5f9a0e4a2..73c66f0af0a 100644 --- a/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid.php +++ b/dev/tests/functional/tests/app/Magento/Integration/Test/Block/Adminhtml/Integration/IntegrationGrid.php @@ -74,6 +74,13 @@ class IntegrationGrid extends Grid */ protected $tokensPopupSelector = './/ancestor::body/div[descendant::fieldset[contains(@id,"integration_token")]]'; + /** + * Selector for confirm. + * + * @var string + */ + protected $confirmModal = '.confirm._show[data-role=modal]'; + /** * Search and delete current item * @@ -84,13 +91,10 @@ class IntegrationGrid extends Grid { $this->search($item); $this->_rootElement->find($this->deleteLink)->click(); - - /** @var \Magento\Integration\Test\Block\Adminhtml\Integration\IntegrationGrid\DeleteDialog $deleteDialog */ - $deleteDialog = $this->blockFactory->create( - 'Magento\Integration\Test\Block\Adminhtml\Integration\IntegrationGrid\DeleteDialog', - ['element' => $this->_rootElement->find($this->deleteBlockSelector, Locator::SELECTOR_XPATH)] - ); - $deleteDialog->acceptDeletion(); + $element = $this->browser->find($this->confirmModal); + /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ + $modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]); + $modal->acceptAlert(); } /** diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Actions.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Actions.php index 4d5bf937f8f..2a1942e9f72 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Actions.php +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Actions.php @@ -113,6 +113,13 @@ class Actions extends Block */ protected $button = 'button[data-ui-id$="%s-button"]'; + /** + * Selector for confirm. + * + * @var string + */ + protected $confirmModal = '.confirm._show[data-role=modal]'; + /** * Ship order * @@ -171,7 +178,10 @@ class Actions extends Block public function cancel() { $this->_rootElement->find($this->cancel)->click(); - $this->browser->acceptAlert(); + $element = $this->browser->find($this->confirmModal); + /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ + $modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]); + $modal->acceptAlert(); } /** diff --git a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Edit/PageActions.php b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Edit/PageActions.php index c2cf7eaf643..4c75ccbc6e1 100644 --- a/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Edit/PageActions.php +++ b/dev/tests/functional/tests/app/Magento/User/Test/Block/Adminhtml/User/Edit/PageActions.php @@ -21,6 +21,13 @@ class PageActions extends FormPageActions */ protected $forceSignIn = '#invalidate'; + /** + * Selector for confirm. + * + * @var string + */ + protected $confirmModal = '.confirm._show[data-role=modal]'; + /** * Click on 'Force Sign-In' button. * @@ -29,6 +36,9 @@ class PageActions extends FormPageActions public function forceSignIn() { $this->_rootElement->find($this->forceSignIn)->click(); - $this->browser->acceptAlert(); + $element = $this->browser->find($this->confirmModal); + /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ + $modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]); + $modal->acceptAlert(); } } diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/FormPageActions.php index 8fa7f1fc390..a1befbd3759 100644 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/FormPageActions.php +++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/FormPageActions.php @@ -33,7 +33,14 @@ class FormPageActions extends AbstractFormPageActions * * @var string */ - protected $storeView = './/*/a[contains(text(),"%s")]'; + protected $storeView = './/*/a[contains(text(),"%s")]'; + + /** + * Selector for confirm. + * + * @var string + */ + protected $confirmModal = '.confirm._show[data-role=modal]'; /** * Select Store View. @@ -56,7 +63,10 @@ class FormPageActions extends AbstractFormPageActions } else { throw new \Exception('Store View with name \'' . $storeName . '\' is not visible!'); } - $this->browser->acceptAlert(); + $element = $this->browser->find($this->confirmModal); + /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ + $modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]); + $modal->acceptAlert(); return null; } diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Adminhtml/Customer/Edit/Tab/Wishlist/Grid.php b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Adminhtml/Customer/Edit/Tab/Wishlist/Grid.php index e7147535ce1..a13e0feda85 100644 --- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Adminhtml/Customer/Edit/Tab/Wishlist/Grid.php +++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/Block/Adminhtml/Customer/Edit/Tab/Wishlist/Grid.php @@ -57,6 +57,13 @@ class Grid extends \Magento\Backend\Test\Block\Widget\Grid */ protected $rowTemplateStrict = 'td[contains(.,normalize-space("%s"))]'; + /** + * Selector for confirm. + * + * @var string + */ + protected $confirmModal = '.confirm._show[data-role=modal]'; + /** * Delete product * @@ -65,7 +72,10 @@ class Grid extends \Magento\Backend\Test\Block\Widget\Grid protected function delete() { $this->_rootElement->find($this->rowItem . ' ' . $this->deleteLink)->click(); - $this->browser->acceptAlert(); + $element = $this->browser->find($this->confirmModal); + /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ + $modal = $this->blockFactory->create('Magento\Ui\Test\Block\Adminhtml\Modal', ['element' => $element]); + $modal->acceptAlert(); } /** diff --git a/lib/web/mage/adminhtml/grid.js b/lib/web/mage/adminhtml/grid.js index a8494b7c078..44d61e001aa 100644 --- a/lib/web/mage/adminhtml/grid.js +++ b/lib/web/mage/adminhtml/grid.js @@ -667,34 +667,37 @@ varienGridMassaction.prototype = { confirm({ content: this.currentItem.confirm, actions: { - confirm: function () { - self.formHiddens.update(''); - new Insertion.Bottom(self.formHiddens, self.fieldTemplate({ - name: fieldName, - value: self.checkedString - })); - new Insertion.Bottom(self.formHiddens, self.fieldTemplate({ - name: 'massaction_prepare_key', - value: fieldName - })); - - if (!jQuery(self.form).valid()) { - return; - } - - if (self.useAjax && item.url) { - new Ajax.Request(item.url, { - 'method': 'post', - 'parameters': self.form.serialize(true), - 'onComplete': self.onMassactionComplete.bind(self) - }); - } else if (item.url) { - self.form.action = item.url; - self.form.submit(); - } - } + confirm: this.onConfirm.bind(this, fieldName, item) } }); + } else { + this.onConfirm(fieldName, item); + } + }, + onConfirm: function(fieldName, item) { + this.formHiddens.update(''); + new Insertion.Bottom(this.formHiddens, this.fieldTemplate({ + name: fieldName, + value: this.checkedString + })); + new Insertion.Bottom(this.formHiddens, this.fieldTemplate({ + name: 'massaction_prepare_key', + value: fieldName + })); + + if (!jQuery(this.form).valid()) { + return; + } + + if (this.useAjax && item.url) { + new Ajax.Request(item.url, { + 'method': 'post', + 'parameters': this.form.serialize(true), + 'onComplete': this.onMassactionComplete.bind(this) + }); + } else if (item.url) { + this.form.action = item.url; + this.form.submit(); } }, onMassactionComplete: function(transport) { -- GitLab From 0ee6b941b47f33bb6be6ed78e52f5556800ff858 Mon Sep 17 00:00:00 2001 From: Oleksandr Dubovyk <odubovyk@ebay.com> Date: Thu, 1 Oct 2015 12:57:34 +0300 Subject: [PATCH 198/420] MAGETWO-34040: [UI] Assistance with applying new style for Modal Window JS Widget - Corrected button class --- .../view/adminhtml/web/js/custom-options.js | 15 ++------------- .../Magento/Ui/view/base/web/js/modal/alert.js | 2 +- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js index fc77470403a..d68497046a5 100644 --- a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js +++ b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js @@ -127,7 +127,7 @@ define([ type: 'slide', opened: function () { $(document).off().on('click', '#productGrid_massaction-form button', function () { - $('. import-custom-options-apply-button').trigger('click', 'massActionTrigger'); + $('.import-custom-options-apply-button').trigger('click', 'massActionTrigger'); }); }, buttons: [{ @@ -146,18 +146,7 @@ define([ if (request.length === 0) { if (!massActionTrigger) { alert({ - content: $.mage.__('Please select items.'), - buttons: [{ - text: $.mage.__('OK'), - class: 'action-primary action-accept', - - /** - * Click handler. - */ - click: function () { - this.closeModal(true); - } - }] + content: $.mage.__('Please select items.') }); } diff --git a/app/code/Magento/Ui/view/base/web/js/modal/alert.js b/app/code/Magento/Ui/view/base/web/js/modal/alert.js index dfd27afff85..f422083aab9 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/alert.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/alert.js @@ -25,7 +25,7 @@ define([ }, buttons: [{ text: $.mage.__('OK'), - class: 'action-secondary action-accept', + class: 'action-primary action-accept', /** * Click handler. -- GitLab From 2dc87ce44ae12f5108cc534050ee7e211759070c Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Thu, 1 Oct 2015 13:55:40 +0300 Subject: [PATCH 199/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- .../customer/edit/tab/wishlist.phtml | 78 ++++++++++--------- lib/web/mage/backend/suggest.js | 5 ++ 2 files changed, 47 insertions(+), 36 deletions(-) diff --git a/app/code/Magento/Wishlist/view/adminhtml/templates/customer/edit/tab/wishlist.phtml b/app/code/Magento/Wishlist/view/adminhtml/templates/customer/edit/tab/wishlist.phtml index ff2714c07c9..0262fe571fd 100644 --- a/app/code/Magento/Wishlist/view/adminhtml/templates/customer/edit/tab/wishlist.phtml +++ b/app/code/Magento/Wishlist/view/adminhtml/templates/customer/edit/tab/wishlist.phtml @@ -11,30 +11,31 @@ */ ?> <script> -require([ - "prototype", - "Magento_Catalog/catalog/product/composite/configure" -], function(){ + require([ + "Magento_Ui/js/modal/confirm", + "prototype", + "Magento_Catalog/catalog/product/composite/configure" + ], function(confirm){ //<!-- -wishlistControl = { - reload: function (urlParams) { - if (!urlParams) { - urlParams = ''; - } - var url = <?php /* @escapeNotVerified */ echo $block->getJsObjectName() ?>.url + '?ajax=true' + urlParams; - new Ajax.Updater( - <?php /* @escapeNotVerified */ echo $block->getJsObjectName() ?>.containerId, - url, - { - parameters: {form_key: FORM_KEY}, - onComplete: <?php /* @escapeNotVerified */ echo $block->getJsObjectName() ?>.initGrid.bind(<?php /* @escapeNotVerified */ echo $block->getJsObjectName() ?>), - evalScripts:true - } - ); - }, + wishlistControl = { + reload: function (urlParams) { + if (!urlParams) { + urlParams = ''; + } + var url = <?php /* @escapeNotVerified */ echo $block->getJsObjectName() ?>.url + '?ajax=true' + urlParams; + new Ajax.Updater( + <?php /* @escapeNotVerified */ echo $block->getJsObjectName() ?>.containerId, + url, + { + parameters: {form_key: FORM_KEY}, + onComplete: <?php /* @escapeNotVerified */ echo $block->getJsObjectName() ?>.initGrid.bind(<?php /* @escapeNotVerified */ echo $block->getJsObjectName() ?>), + evalScripts:true + } + ); + }, - configureItem: function (itemId) { + configureItem: function (itemId) { productConfigure.setOnLoadIFrameCallback('wishlist', this.cbOnLoadIframe.bind(this)); productConfigure.showItemConfiguration('wishlist', itemId); return false; @@ -48,22 +49,27 @@ wishlistControl = { }, removeItem: function (itemId) { - if(!confirm('<?php /* @escapeNotVerified */ echo __('Are you sure you want to remove this item?') ?>')) { - return false; - } - this.reload('&delete=' + itemId); - return false; - } -} + var self = this; -productConfigure.addListType( - 'wishlist', - { - urlFetch: '<?php /* @escapeNotVerified */ echo $block->getUrl('customer/wishlist_product_composite_wishlist/configure') ?>', - urlConfirm: '<?php /* @escapeNotVerified */ echo $block->getUrl('customer/wishlist_product_composite_wishlist/update') ?>' + confirm({ + content: '<?php /* @escapeNotVerified */ echo __('Are you sure you want to remove this item?') ?>', + actions: { + confirm: function () { + self.reload('&delete=' + itemId); + } + } + }); + } } -); -//--> -}); + productConfigure.addListType( + 'wishlist', + { + urlFetch: '<?php /* @escapeNotVerified */ echo $block->getUrl('customer/wishlist_product_composite_wishlist/configure') ?>', + urlConfirm: '<?php /* @escapeNotVerified */ echo $block->getUrl('customer/wishlist_product_composite_wishlist/update') ?>' + } + ); + //--> + + }); </script> diff --git a/lib/web/mage/backend/suggest.js b/lib/web/mage/backend/suggest.js index f4efd126939..cc9184d33dd 100644 --- a/lib/web/mage/backend/suggest.js +++ b/lib/web/mage/backend/suggest.js @@ -235,6 +235,9 @@ } break; case keyCode.ESCAPE: + if (this.isDropdownShown()) { + event.stopPropagation(); + } this.close(event); this._blurItem(); break; @@ -445,6 +448,7 @@ */ open: function (e) { if (!this.isDropdownShown()) { + this.element.addClass('_suggest-dropdown-open'); this.dropdown.show(); this._trigger('open', e); } @@ -459,6 +463,7 @@ this._renderedContext = null; if (this.dropdown.length) { + this.element.removeClass('_suggest-dropdown-open'); this.dropdown.hide().empty(); } -- GitLab From 4603f68ecf4c728733e0f30512fdf536e2ae03eb Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Thu, 1 Oct 2015 15:03:13 +0300 Subject: [PATCH 200/420] MAGETWO-42995: Stabilize functional tests --- .../adminhtml/templates/backup/dialogs.phtml | 4 ++- lib/web/mage/adminhtml/backup.js | 28 ++++++------------- 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml index d5dcd13cf0f..dc04861bece 100644 --- a/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml +++ b/app/code/Magento/Backup/view/adminhtml/templates/backup/dialogs.phtml @@ -62,7 +62,9 @@ <div class="popup-content"> <div class="backup-messages" style="display: none;"><div class="messages"></div></div> <div class="messages"> - <div class="message message-warning"><?php /* @escapeNotVerified */ echo __('Please specify backup creation option.')?></div> + <div class="message message-warning"> + <?php /* @escapeNotVerified */ echo __('This may take a few moments.')?> + <?php /* @escapeNotVerified */ echo __('Be sure your store is in maintenance mode during backup.')?></div> </div> <form action="" method="post" id="backup-form" class="form-inline"> <fieldset class="admin__fieldset form-list question"> diff --git a/lib/web/mage/adminhtml/backup.js b/lib/web/mage/adminhtml/backup.js index 9a820297fdd..fece6796d29 100644 --- a/lib/web/mage/adminhtml/backup.js +++ b/lib/web/mage/adminhtml/backup.js @@ -164,13 +164,18 @@ define([ }, backupConfig: { 'backup-warning': { - title: jQuery.mage.__('Warning'), + title: jQuery.mage.__('Backup options'), content: function () { - return jQuery('#backup-warning .message.message-warning').html(); + return jQuery('#backup-options .popup-content').html(); }, actionOk: function () { - this.modal.modal('closeModal'); - this.requestBackupOptions(); + this.modal.find('#backup-form').validation({ + submitHandler: jQuery.proxy(this.submitBackup, this) + }); + this.modal.find('#backup-form').submit(); + }, + opened: function () { + this.modal.find(':hidden').show(); } }, 'rollback-warning': { @@ -183,21 +188,6 @@ define([ this.requestPassword(); } }, - 'backup-options': { - title: jQuery.mage.__('Backup options'), - content: function () { - return jQuery('#backup-options .popup-content').html(); - }, - actionOk: function () { - this.modal.find('#backup-form').validation({ - submitHandler: jQuery.proxy(this.submitBackup, this) - }); - this.modal.find('#backup-form').submit(); - }, - opened: function () { - this.modal.find('*:hidden').show(); - } - }, 'rollback-request-password': { title: jQuery.mage.__('Backup options'), content: function () { -- GitLab From f860e5b018a9f8c3b20929660f0c0a25d6d93162 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Thu, 1 Oct 2015 15:04:02 +0300 Subject: [PATCH 201/420] JS-51: Gallery Widget Configuration and Extension on theme level - Fix typos --- app/design/frontend/Magento/blank/etc/view.xml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 1eac995c11c..805f28e906f 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -201,14 +201,15 @@ <var name="arrows">null</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> <var name="caption">null</var> <!-- Display alt text as image title (true/false/null) --> <var name="navdir">vertical</var> <!--Sliding direction of thumbnails in full screen(horizontal/vertical) --> - <var name="navdir">horizontal</var> <!--Sliding direction of thumbnails in fullscreen(horizontal/vertical) --> <var name="thumbwidth">100</var> <!-- Width of thumbnails in fullscreen --> <var name="thumbheight">100</var> <!-- Height of thumbnails in fullscreen --> - <var name="transition:effect">crossfade</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> - <var name="transition:duration">500</var> <!-- Sets transition duration in ms --> - <var name="navigation:carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> + <var name="transition"> + <var name="effect">crossfade</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> + <var name="duration">500</var> <!-- Sets transition duration in ms --> + <var name="carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> + </var> </var> - + </var> <var name="magnifier"> -- GitLab From 55f8060233cd2649c844b8aa456f26fd5b4f7f12 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Thu, 1 Oct 2015 15:48:55 +0300 Subject: [PATCH 202/420] MAGETWO-42762: Improve performance of table rendering - Remove unused test reference - Add missing copyright --- .../Magento/Ui/view/base/web/js/lib/ko/bind/staticChecked.js | 4 ++++ dev/tests/js/JsTestDriver/jsTestDriverOrder.php | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/staticChecked.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/staticChecked.js index dc49e5575a8..b766fcfa870 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/staticChecked.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/staticChecked.js @@ -1,3 +1,7 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ define([ 'ko' ], function (ko) { diff --git a/dev/tests/js/JsTestDriver/jsTestDriverOrder.php b/dev/tests/js/JsTestDriver/jsTestDriverOrder.php index b12aef10f57..6314b1dbd16 100644 --- a/dev/tests/js/JsTestDriver/jsTestDriverOrder.php +++ b/dev/tests/js/JsTestDriver/jsTestDriverOrder.php @@ -21,6 +21,5 @@ return [ '/lib/web/mage/decorate.js', '/lib/web/jquery/jquery.validate.js', '/lib/web/jquery/jquery.metadata.js', - '/lib/web/mage/translate.js', - '/lib/web/mage/requirejs/plugin/id-normalizer.js', + '/lib/web/mage/translate.js' ]; -- GitLab From 8112d00eaf60f7eccb95c20e32bc4617ee34af32 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Thu, 1 Oct 2015 16:46:02 +0300 Subject: [PATCH 203/420] MAGETWO-42995: Stabilize functional tests --- .../Test/Block/Adminhtml/System/Variable/FormPageActions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/FormPageActions.php b/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/FormPageActions.php index a1befbd3759..fab74ada1dc 100644 --- a/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/FormPageActions.php +++ b/dev/tests/functional/tests/app/Magento/Variable/Test/Block/Adminhtml/System/Variable/FormPageActions.php @@ -33,7 +33,7 @@ class FormPageActions extends AbstractFormPageActions * * @var string */ - protected $storeView = './/*/a[contains(text(),"%s")]'; + protected $storeView = './/*/a[contains(text(),"%s")]'; /** * Selector for confirm. -- GitLab From d95c5b8bce5027ee354ec989ea446f639c75c433 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Thu, 1 Oct 2015 16:46:30 +0300 Subject: [PATCH 204/420] JS-51: Gallery Widget Configuration and Extension on theme level - Fix unexpected loader --- .../web/css/source/_module.less | 34 ------------------- 1 file changed, 34 deletions(-) diff --git a/app/design/frontend/Magento/luma/Magento_Review/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Review/web/css/source/_module.less index 7149c5d38d8..2dea6077b72 100644 --- a/app/design/frontend/Magento/luma/Magento_Review/web/css/source/_module.less +++ b/app/design/frontend/Magento/luma/Magento_Review/web/css/source/_module.less @@ -38,40 +38,6 @@ } } -// -// Reviews list and form -//-------------------------------------- - -.catalog-product-view.ajax-loading { - height: 100%; - overflow: hidden; - &:after { - content: ""; - position:fixed; - height: 100%; - display: block; - width: 100%; - z-index: 998; - background: rgba(255,255,255,.4); - } - &:before { - content: ""; - position:fixed; - top: 0; - left: 0; - bottom: 0; - right: 0; - margin:auto; - display: block; - @loading__size: 74px; - width: @loading__size; - height: @loading__size; - border-radius: @loading__size/2; - z-index: 999; - background: rgba(255, 255, 255, .7) url('../images/loader-1.gif') no-repeat 50% 50%; - } -} - // // Review product page //-------------------------------------- -- GitLab From 578817f5971eb8818d13219893c41775062598a6 Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Thu, 1 Oct 2015 16:55:43 +0300 Subject: [PATCH 205/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- .../Magento/Ui/view/base/web/js/modal/modal.js | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/modal/modal.js b/app/code/Magento/Ui/view/base/web/js/modal/modal.js index 7f5ca9d373a..3759c2d4ba6 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/modal.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/modal.js @@ -231,14 +231,12 @@ define([ } else { this.modal.find(this.options.focusableScope).focus(); } - } else { - if (position === 'end') { - this.modal.find(this.options.modalCloseBtn).focus(); - } else if (position === 'start') { - infelicity = 2; //Constant for find last focusable element - focusableElements = this.modal.find(':focusable'); - focusableElements.eq(focusableElements.length - infelicity).focus(); - } + } else if (position === 'end') { + this.modal.find(this.options.modalCloseBtn).focus(); + } else if (position === 'start') { + infelicity = 2; //Constant for find last focusable element + focusableElements = this.modal.find(':focusable'); + focusableElements.eq(focusableElements.length - infelicity).focus(); } }, @@ -264,7 +262,7 @@ define([ * Switcher for focus event. * @param {Object} e - event */ - _tabSwitcher: function(e){ + _tabSwitcher: function (e) { var target = $(e.target); if (target.is(this.options.focusableStart)) { -- GitLab From bcd9adfd38238ae86cb5a7746b4c4bf912986c94 Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Thu, 1 Oct 2015 17:41:12 +0300 Subject: [PATCH 206/420] MAGETWO-42996: Implement prompt, alert, confirm dialogs --- app/code/Magento/Ui/view/base/web/js/modal/modal.js | 4 ++-- .../tests/app/code/Magento/Ui/base/js/modal/alert.test.js | 2 +- .../tests/app/code/Magento/Ui/base/js/modal/confirm.test.js | 2 +- .../tests/app/code/Magento/Ui/base/js/modal/modal.test.js | 2 +- .../tests/app/code/Magento/Ui/base/js/modal/prompt.test.js | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/modal/modal.js b/app/code/Magento/Ui/view/base/web/js/modal/modal.js index 3759c2d4ba6..0fd610909fa 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/modal.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/modal.js @@ -208,14 +208,14 @@ define([ /** * Set focus to element. - * @param {string} position - can be "start" and "end" + * @param {String} position - can be "start" and "end" * positions. * If position is "end" - sets focus to first * focusable element in modal window scope. * If position is "start" - sets focus to last * focusable element in modal window scope * - * @param {string} type - can be "opened" or false + * @param {String} type - can be "opened" or false * If type is "opened" - looks to "this.options.focus" * property and sets focus */ diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/alert.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/alert.test.js index d5f32f1e3b3..548d093942f 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/alert.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/alert.test.js @@ -20,7 +20,7 @@ define([ expect(element.trigger('openModal')).toBe(element); expect(element.trigger('closeModal')).toBe(element); }); - it('Integration: modal created on page', function(){ + it('Integration: modal created on page', function () { expect(alert.length).toEqual(1); }); }); diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/confirm.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/confirm.test.js index 866bd215a45..922a14f54f9 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/confirm.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/confirm.test.js @@ -20,7 +20,7 @@ define([ expect(element.trigger('openModal')).toBe(element); expect(element.trigger('closeModal')).toBe(element); }); - it('Integration: modal created on page', function(){ + it('Integration: modal created on page', function () { expect(confirm.length).toEqual(1); }); }); diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/modal.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/modal.test.js index ee0c8d2894f..a8f4a13979d 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/modal.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/modal.test.js @@ -20,7 +20,7 @@ define([ expect(element.trigger('openModal')).toBe(element); expect(element.trigger('closeModal')).toBe(element); }); - it('Integration: modal created on page', function(){ + it('Integration: modal created on page', function () { expect($(modal).length).toEqual(1); }); }); diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/prompt.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/prompt.test.js index e2783b2e49d..1d61f4c7354 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/prompt.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/modal/prompt.test.js @@ -20,7 +20,7 @@ define([ expect(element.trigger('openModal')).toBe(element); expect(element.trigger('closeModal')).toBe(element); }); - it('Integration: modal created on page', function(){ + it('Integration: modal created on page', function () { expect(prompt.length).toEqual(1); }); }); -- GitLab From f0871abd51b42413c26325ac47fdec09b21ec9f5 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Thu, 1 Oct 2015 18:43:48 +0300 Subject: [PATCH 207/420] MAGETWO-42762: Improve performance of table rendering - Fix static tests - Rework component structure --- .../frontend/web/js/view/payment/default.js | 2 +- .../view/frontend/web/js/view/payment/list.js | 2 +- .../web/js/view/shipping-address/list.js | 2 +- .../web/js/view/shipping-information/list.js | 2 +- .../templates/system/config/edit.phtml | 2 +- .../web/js/variations/product-grid.js | 5 +- .../templates/product/edit/downloadable.phtml | 2 +- .../product/edit/downloadable/links.phtml | 2 +- .../product/edit/downloadable/samples.phtml | 2 +- .../frontend/web/js/model/gift-message.js | 9 +- .../Paypal/view/adminhtml/web/js/rule.js | 2 +- .../Paypal/view/adminhtml/web/js/solution.js | 2 +- .../Paypal/view/adminhtml/web/js/solutions.js | 2 +- .../Magento/Ui/view/base/requirejs-config.js | 10 +- .../Ui/view/base/web/js/form/client.js | 2 +- .../base/web/js/form/components/collection.js | 3 +- .../web/js/form/components/collection/item.js | 21 + .../view/base/web/js/form/element/select.js | 2 +- .../js/grid/controls/bookmarks/bookmarks.js | 8 +- .../web/js/grid/controls/bookmarks/storage.js | 4 +- .../Ui/view/base/web/js/lib/component/core.js | 184 --------- .../Ui/view/base/web/js/lib/component/main.js | 22 -- .../view/base/web/js/lib/component/manip.js | 198 ---------- .../base/web/js/lib/component/traversal.js | 76 ---- .../view/base/web/js/lib/{ => core}/class.js | 1 + .../web/js/lib/core/component/component.js | 374 ++++++++++++++++++ .../view/base/web/js/lib/{ => core}/events.js | 2 +- .../js/lib/{component => core/model}/links.js | 7 - .../provider.js => core/model/model.js} | 111 +++++- .../web/js/lib/{ => core/model}/storage.js | 14 +- .../Ui/view/base/web/js/lib/ko/bind/scope.js | 2 +- .../web/js/lib/ko/extender/bound-nodes.js | 2 +- .../base/web/js/lib/ko/template/engine.js | 27 +- .../view/base/web/js/lib/renderer/renderer.js | 5 +- .../view/base/web/js/lib/view/utils/async.js | 2 +- .../Magento/Ui/base/js/core/layout.test.js | 2 +- .../Ui/base/js/lib/component/links.test.js | 4 +- .../Magento/Ui/base/js/lib/events.test.js | 4 +- .../Ui/base/js/lib/registry/registry.test.js | 2 +- .../Test/Js/_files/blacklist/magento.txt | 9 +- lib/web/mage/gallery/gallery.js | 2 +- 41 files changed, 576 insertions(+), 560 deletions(-) delete mode 100644 app/code/Magento/Ui/view/base/web/js/lib/component/core.js delete mode 100644 app/code/Magento/Ui/view/base/web/js/lib/component/main.js delete mode 100644 app/code/Magento/Ui/view/base/web/js/lib/component/manip.js delete mode 100644 app/code/Magento/Ui/view/base/web/js/lib/component/traversal.js rename app/code/Magento/Ui/view/base/web/js/lib/{ => core}/class.js (99%) create mode 100644 app/code/Magento/Ui/view/base/web/js/lib/core/component/component.js rename app/code/Magento/Ui/view/base/web/js/lib/{ => core}/events.js (98%) rename app/code/Magento/Ui/view/base/web/js/lib/{component => core/model}/links.js (97%) rename app/code/Magento/Ui/view/base/web/js/lib/{component/provider.js => core/model/model.js} (72%) rename app/code/Magento/Ui/view/base/web/js/lib/{ => core/model}/storage.js (89%) diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/payment/default.js b/app/code/Magento/Checkout/view/frontend/web/js/view/payment/default.js index 542cbd1100e..16418ed4dc9 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/view/payment/default.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/view/payment/default.js @@ -17,7 +17,7 @@ define( 'uiRegistry', 'Magento_Checkout/js/model/payment/additional-validators', 'Magento_Ui/js/model/messages', - 'Magento_Ui/js/core/renderer/layout' + 'uiLayout' ], function ( ko, diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/payment/list.js b/app/code/Magento/Checkout/view/frontend/web/js/view/payment/list.js index 4559bbbc745..7764f5ec9e0 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/view/payment/list.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/view/payment/list.js @@ -9,7 +9,7 @@ define([ 'uiComponent', 'Magento_Checkout/js/model/payment/method-list', 'Magento_Checkout/js/model/payment/renderer-list', - 'Magento_Ui/js/core/renderer/layout', + 'uiLayout', 'Magento_Checkout/js/model/checkout-data-resolver' ], function (_, ko, utils, Component, paymentMethods, rendererList, layout, checkoutDataResolver) { 'use strict'; diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-address/list.js b/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-address/list.js index 352d8e628e3..639d4823c75 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-address/list.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-address/list.js @@ -8,7 +8,7 @@ define([ 'ko', 'mageUtils', 'uiComponent', - 'Magento_Ui/js/core/renderer/layout', + 'uiLayout', 'Magento_Customer/js/model/address-list' ], function (_, ko, utils, Component, layout, addressList) { 'use strict'; diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-information/list.js b/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-information/list.js index 36342149c66..1d357ca80e9 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-information/list.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-information/list.js @@ -8,7 +8,7 @@ define([ 'ko', 'mageUtils', 'uiComponent', - 'Magento_Ui/js/core/renderer/layout', + 'uiLayout', 'Magento_Checkout/js/model/quote' ], function ($, ko, utils, Component, layout, quote) { 'use strict'; diff --git a/app/code/Magento/Config/view/adminhtml/templates/system/config/edit.phtml b/app/code/Magento/Config/view/adminhtml/templates/system/config/edit.phtml index dc585c33cea..5c2157d83a9 100644 --- a/app/code/Magento/Config/view/adminhtml/templates/system/config/edit.phtml +++ b/app/code/Magento/Config/view/adminhtml/templates/system/config/edit.phtml @@ -25,7 +25,7 @@ <script> require([ "jquery", - "Magento_Ui/js/lib/registry/registry", + "uiRegistry", "jquery/jquery.hashchange", "mage/mage", "prototype", diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/product-grid.js b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/product-grid.js index 3003ff253fe..37d52c6e146 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/product-grid.js +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/product-grid.js @@ -336,9 +336,10 @@ define([ }.bind(this)); this.productsFilter(function (filter) { - filter.setData({ + filter.set('filters', _.extend({ 'filters_modifier': filterData['filters_modifier'] - }, true).apply(); + }, filterData.filters)) + .apply(); }); } }); diff --git a/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable.phtml b/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable.phtml index 6892c319357..61508611159 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable.phtml +++ b/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable.phtml @@ -16,7 +16,7 @@ <script> require([ 'jquery', - 'Magento_Ui/js/lib/registry/registry', + 'uiRegistry', 'mage/template', 'mage/mage', 'prototype' diff --git a/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/links.phtml b/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/links.phtml index 697c74ccb9d..6c76b6fb5ab 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/links.phtml +++ b/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/links.phtml @@ -72,7 +72,7 @@ <script> require([ 'jquery', - 'Magento_Ui/js/lib/registry/registry', + 'uiRegistry', 'mage/template', 'jquery/file-uploader', 'mage/mage', diff --git a/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/samples.phtml b/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/samples.phtml index dc7a5bfebe2..6821b4827a1 100644 --- a/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/samples.phtml +++ b/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/samples.phtml @@ -58,7 +58,7 @@ $block->getConfigJson(); <script> require([ 'jquery', - 'Magento_Ui/js/lib/registry/registry', + 'uiRegistry', 'mage/template', 'jquery/file-uploader', 'prototype' diff --git a/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js b/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js index ad91613b136..d72057e2b85 100644 --- a/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js +++ b/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js @@ -3,9 +3,12 @@ * See COPYING.txt for license details. */ /*global define*/ -define(['Magento_Ui/js/lib/component/provider', 'underscore', 'mage/url'], - function (provider, _, url) { - "use strict"; +define(['uiModel', 'underscore', 'mage/url'], + function (uiModel, _, url) { + 'use strict'; + + var provider = uiModel(); + return function (itemId) { var model = { id: 'message-' + itemId, diff --git a/app/code/Magento/Paypal/view/adminhtml/web/js/rule.js b/app/code/Magento/Paypal/view/adminhtml/web/js/rule.js index 0c49932d489..b565aa2d66d 100644 --- a/app/code/Magento/Paypal/view/adminhtml/web/js/rule.js +++ b/app/code/Magento/Paypal/view/adminhtml/web/js/rule.js @@ -3,7 +3,7 @@ * See COPYING.txt for license details. */ define([ - "Magento_Ui/js/lib/class", + "uiClass", "underscore" ], function (Class, _) { "use strict"; diff --git a/app/code/Magento/Paypal/view/adminhtml/web/js/solution.js b/app/code/Magento/Paypal/view/adminhtml/web/js/solution.js index a5a98e899e9..1983f6c3ccb 100644 --- a/app/code/Magento/Paypal/view/adminhtml/web/js/solution.js +++ b/app/code/Magento/Paypal/view/adminhtml/web/js/solution.js @@ -4,7 +4,7 @@ */ define([ "jquery", - "Magento_Ui/js/lib/class", + "uiClass", "Magento_Paypal/js/rule", "mageUtils", "underscore" diff --git a/app/code/Magento/Paypal/view/adminhtml/web/js/solutions.js b/app/code/Magento/Paypal/view/adminhtml/web/js/solutions.js index fc688c2da2a..b1e124aca38 100644 --- a/app/code/Magento/Paypal/view/adminhtml/web/js/solutions.js +++ b/app/code/Magento/Paypal/view/adminhtml/web/js/solutions.js @@ -4,7 +4,7 @@ */ define([ "jquery", - "Magento_Ui/js/lib/class", + "uiClass", "Magento_Paypal/js/solution", "underscore" ], function ($, Class, Solution, _) { diff --git a/app/code/Magento/Ui/view/base/requirejs-config.js b/app/code/Magento/Ui/view/base/requirejs-config.js index b96c395b7c5..e704a698879 100644 --- a/app/code/Magento/Ui/view/base/requirejs-config.js +++ b/app/code/Magento/Ui/view/base/requirejs-config.js @@ -9,10 +9,12 @@ var config = { }, map: { '*': { - uiComponent: 'Magento_Ui/js/lib/component/main', - uiRegistry: 'Magento_Ui/js/lib/registry/registry', - uiLayout: 'Magento_Ui/js/core/renderer/layout', - uiClass: 'Magento_Ui/js/lib/class' + uiComponent: 'Magento_Ui/js/lib/core/component/component', + uiClass: 'Magento_Ui/js/lib/core/class', + uiModel: 'Magento_Ui/js/lib/core/model/model', + uiEvents: 'Magento_Ui/js/lib/core/events', + uiRegistry: 'Magento_Ui/js/lib/registry/registry', + uiLayout: 'Magento_Ui/js/core/renderer/layout' } } }; diff --git a/app/code/Magento/Ui/view/base/web/js/form/client.js b/app/code/Magento/Ui/view/base/web/js/form/client.js index 6c6bdbfcf30..bb79b12dbde 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/client.js +++ b/app/code/Magento/Ui/view/base/web/js/form/client.js @@ -6,7 +6,7 @@ define([ 'jquery', 'underscore', 'mageUtils', - 'Magento_Ui/js/lib/class' + 'uiClass' ], function ($, _, utils, Class) { 'use strict'; diff --git a/app/code/Magento/Ui/view/base/web/js/form/components/collection.js b/app/code/Magento/Ui/view/base/web/js/form/components/collection.js index bf10209d9d9..e5f84229320 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/components/collection.js +++ b/app/code/Magento/Ui/view/base/web/js/form/components/collection.js @@ -7,7 +7,7 @@ define([ 'mageUtils', 'uiRegistry', 'uiComponent', - 'Magento_Ui/js/core/renderer/layout' + 'uiLayout' ], function (_, utils, registry, Component, layout) { 'use strict'; @@ -67,6 +67,7 @@ define([ return this; }, + /** * Creates new item of collection, based on incoming 'index'. * If not passed creates one with 'new_' prefix. diff --git a/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js b/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js index 4f7c38f4adb..41c246cdea6 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js +++ b/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js @@ -109,6 +109,27 @@ define([ return this; }, + /** + * Destroys current instance along with all of its' children. + * Overrides base method to clear data when this method is called. + */ + destroy: function () { + this._super(); + this._clearData(); + }, + + /** + * Clears all data associated with component. + * @private + * + * @returns {Component} Chainable. + */ + _clearData: function () { + this.source('remove', this.dataScope); + + return this; + }, + /** * Formats incoming previews array via parsePreview function. * diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/select.js b/app/code/Magento/Ui/view/base/web/js/form/element/select.js index 1298d5fd2b4..f0f6d762000 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/element/select.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/select.js @@ -7,7 +7,7 @@ define([ 'mageUtils', 'uiRegistry', './abstract', - 'Magento_Ui/js/core/renderer/layout' + 'uiLayout' ], function (_, utils, registry, Abstract, layout) { 'use strict'; diff --git a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js index 70a630b3532..d9cd0f66a39 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js @@ -61,8 +61,8 @@ define([ */ initialize: function () { utils.limit(this, 'checkState', 5); - utils.limit(this, 'saveSate', 2000); - utils.limit(this, '_defaultPolyfill', 2000); + utils.limit(this, 'saveState', 2000); + utils.limit(this, '_defaultPolyfill', 3000); this._super() .restore() @@ -567,8 +567,8 @@ define([ * Listener of the activeIndex property. */ onStateChange: function () { - this.saveState() - .checkState(); + this.checkState(); + this.saveState(); if (!this.defaultDefined) { this._defaultPolyfill(); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/storage.js b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/storage.js index ac0656ec5a4..4a7eef274f8 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/storage.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/storage.js @@ -5,8 +5,8 @@ define([ 'jquery', 'mageUtils', - 'Magento_Ui/js/lib/storage', - 'Magento_Ui/js/lib/class' + 'Magento_Ui/js/lib/core/model/storage', + 'uiClass' ], function ($, utils, storage, Class) { 'use strict'; diff --git a/app/code/Magento/Ui/view/base/web/js/lib/component/core.js b/app/code/Magento/Ui/view/base/web/js/lib/component/core.js deleted file mode 100644 index 65eca7b967d..00000000000 --- a/app/code/Magento/Ui/view/base/web/js/lib/component/core.js +++ /dev/null @@ -1,184 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -define([ - 'underscore', - 'uiRegistry', - 'Magento_Ui/js/lib/storage' -], function (_, registry) { - 'use strict'; - - return { - defaults: { - template: 'ui/collection', - registerNodes: true, - ignoreTmpls: { - childDefaults: true - }, - storageConfig: { - provider: 'localStorage', - namespace: '${ $.name }', - path: '${ $.storageConfig.provider }:${ $.storageConfig.namespace }' - }, - modules: { - storage: '${ $.storageConfig.provider }' - }, - componentType: 'container' - }, - - /** - * Initializes component. - * - * @returns {Component} Chainable. - */ - initialize: function () { - this._super() - .initProperties() - .initObservable() - .initModules() - .initUnique() - .setListeners(this.listens) - .initLinks(); - - return this; - }, - - /** - * Defines various properties. - * - * @returns {Component} Chainable. - */ - initProperties: function () { - _.extend(this, { - source: registry.get(this.provider), - containers: [], - _elems: [] - }); - - return this; - }, - - /** - * Initializes observable properties. - * - * @returns {Component} Chainable. - */ - initObservable: function () { - this.observe({ - elems: [] - }); - - return this; - }, - - /** - * Initializes links between properties. - * - * @returns {Component} Chainbale. - */ - initLinks: function () { - this.setLinks(this.links, 'imports') - .setLinks(this.links, 'exports'); - - _.each({ - exports: this.exports, - imports: this.imports - }, this.setLinks, this); - - return this; - }, - - /** - * Parses 'modules' object and creates - * async wrappers on specified components. - * - * @returns {Component} Chainable. - */ - initModules: function () { - var modules = this.modules || {}; - - _.each(modules, function (component, property) { - this[property] = registry.async(component); - }, this); - - return this; - }, - - /** - * Initializes listeners of the unique property. - * - * @returns {Component} Chainable. - */ - initUnique: function () { - var update = this.onUniqueUpdate.bind(this), - uniqueNs = this.uniqueNs; - - this.hasUnique = this.uniqueProp && uniqueNs; - - if (this.hasUnique) { - this.source.on(uniqueNs, update, this.name); - } - - return this; - }, - - /** - * Called when current element was injected to another component. - * - * @param {Object} parent - Instance of a 'parent' component. - * @returns {Component} Chainable. - */ - initContainer: function (parent) { - this.containers.push(parent); - - return this; - }, - - /** - * Called when another element was added to current component. - * - * @param {Object} elem - Instance of an element that was added. - * @returns {Component} Chainable. - */ - initElement: function (elem) { - elem.initContainer(this); - - return this; - }, - - /** - * Returns path to components' template. - * @returns {String} - */ - getTemplate: function () { - return this.template; - }, - - /** - * Updates property specified in uniqueNs - * if components' unique property is set to 'true'. - * - * @returns {Component} Chainable. - */ - setUnique: function () { - var property = this.uniqueProp; - - if (this[property]()) { - this.source.set(this.uniqueNs, this.name); - } - - return this; - }, - - /** - * Callback which fires when property under uniqueNs has changed. - */ - onUniqueUpdate: function (name) { - var active = name === this.name, - property = this.uniqueProp; - - this[property](active); - } - }; -}); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/component/main.js b/app/code/Magento/Ui/view/base/web/js/lib/component/main.js deleted file mode 100644 index a48220b0194..00000000000 --- a/app/code/Magento/Ui/view/base/web/js/lib/component/main.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -define([ - 'mageUtils', - './core', - './links', - './manip', - './traversal', - './provider', - 'uiClass', - 'Magento_Ui/js/lib/ko/initialize' -], function (utils, core, links, manip, traversal, provider, Class) { - 'use strict'; - - var extenders; - - extenders = utils.extend({}, core, links, manip, traversal, provider); - - return Class.extend(extenders); -}); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/component/manip.js b/app/code/Magento/Ui/view/base/web/js/lib/component/manip.js deleted file mode 100644 index e3f2c5f3366..00000000000 --- a/app/code/Magento/Ui/view/base/web/js/lib/component/manip.js +++ /dev/null @@ -1,198 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -define([ - 'ko', - 'underscore', - 'mageUtils', - 'uiRegistry' -], function (ko, _, utils, registry) { - 'use strict'; - - /** - * Removes non plain object items from the specfied array. - * - * @param {Array} container - Array whose value should be filtered. - * @returns {Array} - */ - function compact(container) { - return container.filter(utils.isObject); - } - - return { - - /** - * Retrieves requested region. - * Creates region if it was not created yet - * - * @returns {ObservableArray}. - */ - getRegion: function (name) { - var regions = this.regions = this.regions || {}; - - if (!regions[name]) { - regions[name] = ko.observable([]); - } - - return regions[name]; - }, - - /** - * Replaces specified regions' data with a provided one. - * Creates region if it was not created yet. - * - * @param {Array} items - New regions' data. - * @param {String} name - Name of the region. - * @returns {Component} Chainable. - */ - updateRegion: function (items, name) { - var region = this.getRegion(name); - - region(items); - - return this; - }, - - /** - * Requests specified components to insert - * them into 'elems' array starting from provided position. - * - * @param {(String|Array)} elems - Name of the component to insert. - * @param {Number} [position=-1] - Position at which to insert elements. - * @returns {Component} Chainable. - */ - insertChild: function (elems, position) { - var container = this._elems, - insert = this._insert.bind(this), - update; - - if (!Array.isArray(elems)) { - elems = [elems]; - } - - elems.map(function (item) { - return item.elem ? - utils.insert(item.elem, container, item.position) : - utils.insert(item, container, position); - }).forEach(function (item) { - if (item === true) { - update = true; - } else if (_.isString(item)) { - registry.get(item, insert); - } else if (utils.isObject(item)) { - insert(item); - } - }); - - if (update) { - this._update(); - } - - return this; - }, - - /** - * Removes specified element from the 'elems' array. - * - * @param {Object} elem - Element to be removed. - * @returns {Component} Chainable. - */ - removeChild: function (elem) { - utils.remove(this._elems, elem); - this._update(); - - return this; - }, - - /** - * Destroys current instance along with all of its' children. - */ - destroy: function () { - this._dropHandlers() - ._clearData() - ._clearRefs(); - }, - - /** - * Removes events listeners. - * @private - * - * @returns {Component} Chainable. - */ - _dropHandlers: function () { - this.off(); - - this.source.off(this.name); - - return this; - }, - - /** - * Clears all data associated with component. - * @private - * - * @returns {Component} Chainable. - */ - _clearData: function () { - this.source.remove(this.dataScope); - this.source.remove('params.' + this.name); - - return this; - }, - - /** - * Removes all references to current instance and - * calls 'destroy' method on all of its' children. - * @private - * - * @returns {Component} Chainable. - */ - _clearRefs: function () { - registry.remove(this.name); - - this.containers.forEach(function (parent) { - parent.removeChild(this); - }, this); - - this.elems.each('destroy'); - - return this; - }, - - /** - * Inserts provided component into 'elems' array at a specified position. - * @private - * - * @param {Object} elem - Element to insert. - */ - _insert: function (elem) { - var index = this._elems.indexOf(elem.name); - - if (~index) { - this._elems[index] = elem; - } - - this._update() - .initElement(elem); - }, - - /** - * Synchronizes multiple elements arrays with a core '_elems' container. - * Performs elemets grouping by theirs 'displayArea' property. - * @private - * - * @returns {Component} Chainable. - */ - _update: function () { - var _elems = compact(this._elems), - grouped = _.groupBy(_elems, 'displayArea'); - - _.each(grouped, this.updateRegion, this); - - this.elems(_elems); - - return this; - } - }; -}); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/component/traversal.js b/app/code/Magento/Ui/view/base/web/js/lib/component/traversal.js deleted file mode 100644 index cb17ce3e2de..00000000000 --- a/app/code/Magento/Ui/view/base/web/js/lib/component/traversal.js +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -define([ - 'underscore', - 'Magento_Ui/js/lib/events' -], function (_, EventsBus) { - 'use strict'; - - return _.extend({}, EventsBus, { - /** - * Tries to call specified method of a current component, - * otherwise delegates attempt to its' children. - * - * @param {String} target - Name of the method. - * @param [...] Arguments that will be passed to method. - * @returns {*} Result of the method calls. - */ - delegate: function (target) { - var args = _.toArray(arguments); - - target = this[target]; - - if (_.isFunction(target)) { - return target.apply(this, args.slice(1)); - } - - return this._delegate(args); - }, - - /** - * Calls 'delegate' method of all of it's children components. - * @private - * - * @param {Array} args - An array of arguments to pass to the next delegation call. - * @returns {Array} An array of delegation resutls. - */ - _delegate: function (args) { - var result; - - result = this.elems.map(function (elem) { - return elem.delegate.apply(elem, args); - }); - - return _.flatten(result); - }, - - /** - * Overrides 'EventsBus.trigger' method to implement events bubbling. - * - * @param {String} name - Name of the event. - * @param [...] Any number of arguments that should be to the events' handler. - * @returns {Boolean} False if event bubbling was canceled. - */ - bubble: function () { - var args = _.toArray(arguments), - bubble = this.trigger.apply(this, args), - result; - - if (!bubble) { - return false; - } - - this.containers.forEach(function (parent) { - result = parent.bubble.apply(parent, args); - - if (result === false) { - bubble = false; - } - }); - - return !!bubble; - } - }); -}); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/class.js b/app/code/Magento/Ui/view/base/web/js/lib/core/class.js similarity index 99% rename from app/code/Magento/Ui/view/base/web/js/lib/class.js rename to app/code/Magento/Ui/view/base/web/js/lib/core/class.js index f8191d57a36..38dce34526e 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/class.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/class.js @@ -34,6 +34,7 @@ define([ var constr = consturctor; if (!constr) { + /** * Default constructor function. */ diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/component/component.js b/app/code/Magento/Ui/view/base/web/js/lib/core/component/component.js new file mode 100644 index 00000000000..b86ffa340da --- /dev/null +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/component/component.js @@ -0,0 +1,374 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +define([ + 'underscore', + 'mageUtils', + 'uiRegistry', + 'uiModel', + 'Magento_Ui/js/lib/ko/initialize' +], function (_, utils, registry, Model) { + 'use strict'; + + /** + * Removes non plain object items from the specfied array. + * + * @param {Array} container - Array whose value should be filtered. + * @returns {Array} + */ + function compact(container) { + return container.filter(utils.isObject); + } + + return Model.extend({ + defaults: { + template: 'ui/collection', + componentType: 'container', + registerNodes: true, + ignoreTmpls: { + childDefaults: true + } + }, + + /** + * Initializes component. + * + * @returns {Component} Chainable. + */ + initialize: function () { + this._super() + .initProperties() + .initUnique(); + + return this; + }, + + /** + * Initializes observable properties. + * + * @returns {Model} Chainable. + */ + initObservable: function () { + this._super() + .observe({ + elems: [] + }); + + return this; + }, + + /** + * Defines various properties. + * + * @returns {Component} Chainable. + */ + initProperties: function () { + _.extend(this, { + source: registry.get(this.provider), + containers: [], + _elems: [] + }); + + return this; + }, + + /** + * Initializes listeners of the unique property. + * + * @returns {Component} Chainable. + */ + initUnique: function () { + var update = this.onUniqueUpdate.bind(this), + uniqueNs = this.uniqueNs; + + this.hasUnique = this.uniqueProp && uniqueNs; + + if (this.hasUnique) { + this.source.on(uniqueNs, update, this.name); + } + + return this; + }, + + /** + * Called when current element was injected to another component. + * + * @param {Object} parent - Instance of a 'parent' component. + * @returns {Component} Chainable. + */ + initContainer: function (parent) { + this.containers.push(parent); + + return this; + }, + + /** + * Called when another element was added to current component. + * + * @param {Object} elem - Instance of an element that was added. + * @returns {Component} Chainable. + */ + initElement: function (elem) { + elem.initContainer(this); + + return this; + }, + + /** + * Returns path to components' template. + * @returns {String} + */ + getTemplate: function () { + return this.template; + }, + + /** + * Updates property specified in uniqueNs + * if components' unique property is set to 'true'. + * + * @returns {Component} Chainable. + */ + setUnique: function () { + var property = this.uniqueProp; + + if (this[property]()) { + this.source.set(this.uniqueNs, this.name); + } + + return this; + }, + + /** + * Callback which fires when property under uniqueNs has changed. + */ + onUniqueUpdate: function (name) { + var active = name === this.name, + property = this.uniqueProp; + + this[property](active); + }, + + /** + * Retrieves requested region. + * Creates region if it was not created yet + * + * @returns {ObservableArray}. + */ + getRegion: function (name) { + var regions = this.regions = this.regions || {}; + + if (!regions[name]) { + this.observe.call(regions, name, []); + } + + return regions[name]; + }, + + /** + * Replaces specified regions' data with a provided one. + * Creates region if it was not created yet. + * + * @param {Array} items - New regions' data. + * @param {String} name - Name of the region. + * @returns {Component} Chainable. + */ + updateRegion: function (items, name) { + if (name) { + this.getRegion(name)(items); + } + + return this; + }, + + /** + * Requests specified components to insert + * them into 'elems' array starting from provided position. + * + * @param {(String|Array)} elems - Name of the component to insert. + * @param {Number} [position=-1] - Position at which to insert elements. + * @returns {Component} Chainable. + */ + insertChild: function (elems, position) { + var container = this._elems, + insert = this._insert.bind(this), + update; + + if (!Array.isArray(elems)) { + elems = [elems]; + } + + elems.map(function (item) { + return item.elem ? + utils.insert(item.elem, container, item.position) : + utils.insert(item, container, position); + }).forEach(function (item) { + if (item === true) { + update = true; + } else if (_.isString(item)) { + registry.get(item, insert); + } else if (utils.isObject(item)) { + insert(item); + } + }); + + if (update) { + this._update(); + } + + return this; + }, + + /** + * Removes specified element from the 'elems' array. + * + * @param {Object} elem - Element to be removed. + * @returns {Component} Chainable. + */ + removeChild: function (elem) { + utils.remove(this._elems, elem); + this._update(); + + return this; + }, + + /** + * Destroys current instance along with all of its' children. + */ + destroy: function () { + this._dropHandlers() + ._clearRefs(); + }, + + /** + * Removes events listeners. + * @private + * + * @returns {Component} Chainable. + */ + _dropHandlers: function () { + this.off(); + + this.source.off(this.name); + + return this; + }, + + /** + * Removes all references to current instance and + * calls 'destroy' method on all of its' children. + * @private + * + * @returns {Component} Chainable. + */ + _clearRefs: function () { + registry.remove(this.name); + + this.containers.forEach(function (parent) { + parent.removeChild(this); + }, this); + + this.elems.each('destroy'); + + return this; + }, + + /** + * Inserts provided component into 'elems' array at a specified position. + * @private + * + * @param {Object} elem - Element to insert. + */ + _insert: function (elem) { + var index = this._elems.indexOf(elem.name); + + if (~index) { + this._elems[index] = elem; + } + + this._update() + .initElement(elem); + }, + + /** + * Synchronizes multiple elements arrays with a core '_elems' container. + * Performs elemets grouping by theirs 'displayArea' property. + * @private + * + * @returns {Component} Chainable. + */ + _update: function () { + var _elems = compact(this._elems), + grouped = _.groupBy(_elems, 'displayArea'); + + _.each(grouped, this.updateRegion, this); + + this.elems(_elems); + + return this; + }, + + /** + * Tries to call specified method of a current component, + * otherwise delegates attempt to its' children. + * + * @param {String} target - Name of the method. + * @param {...*} parameters - Arguments that will be passed to method. + * @returns {*} Result of the method calls. + */ + delegate: function (target) { + var args = _.toArray(arguments); + + target = this[target]; + + if (_.isFunction(target)) { + return target.apply(this, args.slice(1)); + } + + return this._delegate(args); + }, + + /** + * Calls 'delegate' method of all of it's children components. + * @private + * + * @param {Array} args - An array of arguments to pass to the next delegation call. + * @returns {Array} An array of delegation resutls. + */ + _delegate: function (args) { + var result; + + result = this.elems.map(function (elem) { + return elem.delegate.apply(elem, args); + }); + + return _.flatten(result); + }, + + /** + * Overrides 'EventsBus.trigger' method to implement events bubbling. + * + * @param {...*} parameters - Any number of arguments that should be passed to the events' handler. + * @returns {Boolean} False if event bubbling was canceled. + */ + bubble: function () { + var args = _.toArray(arguments), + bubble = this.trigger.apply(this, args), + result; + + if (!bubble) { + return false; + } + + this.containers.forEach(function (parent) { + result = parent.bubble.apply(parent, args); + + if (result === false) { + bubble = false; + } + }); + + return !!bubble; + } + }); +}); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/events.js b/app/code/Magento/Ui/view/base/web/js/lib/core/events.js similarity index 98% rename from app/code/Magento/Ui/view/base/web/js/lib/events.js rename to app/code/Magento/Ui/view/base/web/js/lib/core/events.js index 98df28ffa4f..42e06915c37 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/events.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/events.js @@ -142,7 +142,7 @@ define([ /** * Triggers event and executes all attached callbacks * @param {String} name - * @return {Object} reference to this + * @returns {Boolean} */ trigger: function (name) { var handlers, diff --git a/app/code/Magento/Ui/view/base/web/js/lib/component/links.js b/app/code/Magento/Ui/view/base/web/js/lib/core/model/links.js similarity index 97% rename from app/code/Magento/Ui/view/base/web/js/lib/component/links.js rename to app/code/Magento/Ui/view/base/web/js/lib/core/model/links.js index 83e963dfcb2..c769be3775f 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/component/links.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/model/links.js @@ -163,13 +163,6 @@ define([ } return { - defaults: { - maps: { - exports: {}, - imports: {} - } - }, - setListeners: function (listeners) { var owner = this, data; diff --git a/app/code/Magento/Ui/view/base/web/js/lib/component/provider.js b/app/code/Magento/Ui/view/base/web/js/lib/core/model/model.js similarity index 72% rename from app/code/Magento/Ui/view/base/web/js/lib/component/provider.js rename to app/code/Magento/Ui/view/base/web/js/lib/core/model/model.js index 7fc41cf7f74..fd196863cc7 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/component/provider.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/model/model.js @@ -5,10 +5,17 @@ define([ 'ko', 'underscore', - 'mageUtils' -], function (ko, _, utils) { + 'mageUtils', + 'uiRegistry', + 'uiEvents', + 'uiClass', + './links', + './storage' +], function (ko, _, utils, registry, Events, Class, links) { 'use strict'; + var Model; + /** * Creates observable property using knockouts' * 'observableArray' or 'observable' methods, @@ -53,7 +60,78 @@ define([ } } - return { + Model = { + defaults: { + storageConfig: { + provider: 'localStorage', + namespace: '${ $.name }', + path: '${ $.storageConfig.provider }:${ $.storageConfig.namespace }' + }, + maps: { + exports: {}, + imports: {} + }, + modules: { + storage: '${ $.storageConfig.provider }' + } + }, + + /** + * Initializes model instance. + * + * @returns {Model} Chainable. + */ + initialize: function () { + this._super() + .initObservable() + .initModules() + .setListeners(this.listens) + .initLinks(); + + return this; + }, + + /** + * Initializes observable properties. + * + * @returns {Model} Chainable. + */ + initObservable: function () { + return this; + }, + + /** + * Parses 'modules' object and creates + * async wrappers on specified components. + * + * @returns {Component} Chainable. + */ + initModules: function () { + var modules = this.modules || {}; + + _.each(modules, function (component, property) { + this[property] = registry.async(component); + }, this); + + return this; + }, + + /** + * Initializes links between properties. + * + * @returns {Component} Chainbale. + */ + initLinks: function () { + this.setLinks(this.links, 'imports') + .setLinks(this.links, 'exports'); + + _.each({ + exports: this.exports, + imports: this.imports + }, this.setLinks, this); + + return this; + }, /** * Returns value of the nested property. @@ -71,7 +149,7 @@ define([ * * @param {String} path - Path to property. * @param {*} value - New value of the property. - * @returns {Component} Chainable. + * @returns {Model} Chainable. */ set: function (path, value) { var data = utils.nested(this, path), @@ -82,7 +160,7 @@ define([ utils.nested(this, path, value); - this._notify(diffs); + this._notifyChanges(diffs); } else { utils.nested(this, path, value); } @@ -94,7 +172,7 @@ define([ * Removes nested property from the object. * * @param {String} path - Path to the property. - * @returns {Component} Chainable. + * @returns {Model} Chainable. */ remove: function (path) { var data, @@ -111,7 +189,7 @@ define([ utils.nestedRemove(this, path); - this._notify(diffs); + this._notifyChanges(diffs); } return this; @@ -128,7 +206,7 @@ define([ * @param {Boolean} [useAccessors=false] - Whether to create an * observable function or to use property accesessors. * @param {(Object|String|Array)} properties - List of observable properties. - * @returns {Component} Chainable. + * @returns {Model} Chainable. * * @example Sample declaration and equivalent knockout methods. * this.key = 'value'; @@ -178,7 +256,7 @@ define([ * with a predefined 'useAccessors' flag. * * @param {(String|Array|Object)} properties - List of observable properties. - * @returns {Component} Chainable. + * @returns {Model} Chainable. */ track: function (properties) { this.observe(true, properties); @@ -187,9 +265,12 @@ define([ }, /** + * Invokes subscribers for the provided changes. * + * @param {Object} diffs - Object with changes descriptions. + * @returns {Model} Chainable. */ - _notify: function (diffs) { + _notifyChanges: function (diffs) { diffs.changes.forEach(function (change) { this.trigger(change.path, change.value, change); }, this); @@ -199,6 +280,8 @@ define([ this.trigger(name, value, changes); }, this); + + return this; }, /** @@ -220,7 +303,7 @@ define([ * * @param {String} property * @param {*} [data=this[property]] - * @returns {Component} Chainable. + * @returns {Model} Chainable. */ store: function (property, data) { var ns = this.storageConfig.namespace, @@ -237,7 +320,7 @@ define([ * Removes stored property. * * @param {String} property - Property to be removed from storage. - * @returns {Component} Chainable. + * @returns {Model} Chainable. */ removeStored: function (property) { var ns = this.storageConfig.namespace, @@ -248,4 +331,8 @@ define([ return this; } }; + + _.extend(Model, Events, links); + + return Class.extend(Model); }); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/storage.js b/app/code/Magento/Ui/view/base/web/js/lib/core/model/storage.js similarity index 89% rename from app/code/Magento/Ui/view/base/web/js/lib/storage.js rename to app/code/Magento/Ui/view/base/web/js/lib/core/model/storage.js index a41bad442f1..62f87dcd432 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/storage.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/model/storage.js @@ -6,19 +6,30 @@ define([ 'underscore', 'uiRegistry', 'mageUtils', - 'Magento_Ui/js/lib/events' + 'uiEvents' ], function (_, registry, utils, EventsBus) { 'use strict'; var root = 'appData', storage; + /** + * Extracts and parses data stored in localStorage by the + * key specified in 'root' varaible. + * + * @returns {Object} + */ function getRoot() { var data = localStorage.getItem(root); return !_.isNull(data) ? JSON.parse(data) : {}; } + /** + * Writes provided data to the localStorage. + * + * @param {*} data - Data to be stored. + */ function setRoot(data) { localStorage.setItem(root, JSON.stringify(data)); } @@ -28,6 +39,7 @@ define([ * as a single nested structure. */ storage = _.extend({ + /** * Retrieves value of the specified property. * diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/scope.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/scope.js index 1e8ce81a7e0..aae69f9fe18 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/scope.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/bind/scope.js @@ -5,7 +5,7 @@ /** Creates scope binding and registers in to ko.bindingHandlers object */ define([ 'ko', - 'Magento_Ui/js/lib/registry/registry', + 'uiRegistry', 'jquery', 'mage/translate' ], function (ko, registry, $) { diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/extender/bound-nodes.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/extender/bound-nodes.js index 90605926b04..62a13e52add 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/ko/extender/bound-nodes.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/extender/bound-nodes.js @@ -7,7 +7,7 @@ define([ 'ko', 'underscore', 'mage/utils/wrapper', - 'Magento_Ui/js/lib/events', + 'uiEvents', 'es6-collections' ], function (ko, _, wrapper, Events) { 'use strict'; diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/template/engine.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/template/engine.js index 213d0ea8a7f..794a62b4d25 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/ko/template/engine.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/template/engine.js @@ -9,7 +9,14 @@ define([ ], function (ko, Source, Renderer) { 'use strict'; - var sources = {}; + var RemoteTemplateEngine, + NativeTemplateEngine = ko.nativeTemplateEngine, + sources = {}; + + /** + * Remote template engine class. Is used to be able to load remote templates via knockout template binding. + */ + RemoteTemplateEngine = function () {}; /** * Creates unique template identifier based on template name and it's extenders (optional) @@ -20,12 +27,6 @@ define([ return templateName; } - /** - * Remote template engine class. Is used to be able to load remote templates via knockout template binding. - */ - var RemoteTemplateEngine = function () {}; - var NativeTemplateEngine = ko.nativeTemplateEngine; - RemoteTemplateEngine.prototype = new NativeTemplateEngine; RemoteTemplateEngine.prototype.constructor = RemoteTemplateEngine; @@ -34,7 +35,7 @@ define([ * Caches template after it's unique name and renders in once. * If template name is not typeof string, delegates work to knockout.templateSources.anonymousTemplate. * @param {*} template - * @return {TemplateSource} - object with methods 'nodes' and 'data'. + * @returns {TemplateSource} Object with methods 'nodes' and 'data'. */ RemoteTemplateEngine.prototype.makeTemplateSource = function (template) { var source, @@ -54,11 +55,13 @@ define([ } return source; - } else if ((template.nodeType == 1) || (template.nodeType == 8)) { - return new ko.templateSources.anonymousTemplate(template); - } else { - throw new Error("Unknown template type: " + template); + } else if (template.nodeType === 1 || template.nodeType === 8) { + source = new ko.templateSources.anonymousTemplate(template); + + return source; } + + throw new Error('Unknown template type: ' + template); }; /** diff --git a/app/code/Magento/Ui/view/base/web/js/lib/renderer/renderer.js b/app/code/Magento/Ui/view/base/web/js/lib/renderer/renderer.js index 9da1291111f..4445e7f3936 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/renderer/renderer.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/renderer/renderer.js @@ -10,10 +10,13 @@ define([ 'use strict'; return { + /** * Renders template and it's extenders using this._parse function. - * Loads all extenders then merges them and wraps into div[data-template-extend="parent"] where parent is target template. + * Loads all extenders then merges them and wraps into + * div[data-template-extend="parent"] where parent is target template. * If no extenders provider, simply loads target template and passes execution to _parse. + * * @param {String} template - string, representing path to core template and it's extenders. * @returns {Deferred} - Promise of template to be rendered. Is being resolved with array of HTML elements. */ diff --git a/app/code/Magento/Ui/view/base/web/js/lib/view/utils/async.js b/app/code/Magento/Ui/view/base/web/js/lib/view/utils/async.js index 6fd7d86e2a3..7986b187806 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/view/utils/async.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/view/utils/async.js @@ -222,7 +222,7 @@ define([ /** * Sets removal listener of the specified nodes. * - * @param ({HTMLElement|Array|ArrayLike}) nodes - Nodes whose removal to track. + * @param {(HTMLElement|Array|ArrayLike)} nodes - Nodes whose removal to track. * @param {Function} fn - Callback that will be invoked when node is removed. */ remove: function (nodes, fn) { diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/core/layout.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/core/layout.test.js index a39203675c2..f2edf7f7065 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/core/layout.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/core/layout.test.js @@ -4,7 +4,7 @@ */ define([ 'underscore', - 'Magento_Ui/js/core/renderer/layout' + 'uiLayout' ], function (_, layout) { 'use strict'; diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/component/links.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/component/links.test.js index 04b7f0ebe5a..edc08dc3de7 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/component/links.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/component/links.test.js @@ -3,11 +3,11 @@ * See COPYING.txt for license details. */ define([ - 'Magento_Ui/js/lib/component/links' + 'Magento_Ui/js/lib/core/model/links' ], function (links) { 'use strict'; - describe('Magento_Ui/js/lib/component/links', function () { + describe('Magento_Ui/js/lib/core/model/links', function () { var linksObj, returnedValue; diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/events.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/events.test.js index bc2f08748f4..4ae9b212142 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/events.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/events.test.js @@ -4,13 +4,13 @@ */ define([ - 'Magento_Ui/js/lib/events' + 'Magento_Ui/js/lib/core/events' ], function (EventBus) { 'use strict'; var EVENT = 'testEvent'; - describe('Magento_Ui/js/lib/events', function () { + describe('Magento_Ui/js/lib/core/events', function () { describe('"on" method', function () { afterEach(function () { EventBus.off(EVENT); diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/registry/registry.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/registry/registry.test.js index 196bdd121dc..ac02100dffa 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/registry/registry.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/registry/registry.test.js @@ -6,7 +6,7 @@ /*eslint max-nested-callbacks: 0*/ define([ - 'Magento_Ui/js/lib/registry/registry' + 'uiRegistry' ], function (registry) { 'use strict'; diff --git a/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt b/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt index 80d91e72d5e..b25abe1110b 100644 --- a/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt +++ b/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt @@ -384,11 +384,8 @@ app/code/Magento/Ui/view/base/web/js/core/renderer/layout.js app/code/Magento/Ui/view/base/web/js/core/renderer/types.js app/code/Magento/Ui/view/base/web/js/form/adapter.js app/code/Magento/Ui/view/base/web/js/form/client.js -app/code/Magento/Ui/view/base/web/js/form/components/area.js app/code/Magento/Ui/view/base/web/js/form/components/collection.js -app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js app/code/Magento/Ui/view/base/web/js/form/components/html.js -app/code/Magento/Ui/view/base/web/js/form/components/tab_group.js app/code/Magento/Ui/view/base/web/js/form/components/tab.js app/code/Magento/Ui/view/base/web/js/form/element/abstract.js app/code/Magento/Ui/view/base/web/js/form/element/helpers/options.js @@ -403,8 +400,7 @@ app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/storage.js app/code/Magento/Ui/view/base/web/js/grid/export.js app/code/Magento/Ui/view/base/web/js/grid/resize.js app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js -app/code/Magento/Ui/view/base/web/js/lib/component/links.js -app/code/Magento/Ui/view/base/web/js/lib/component/traversal.js +app/code/Magento/Ui/view/base/web/js/lib/core/model/links.js app/code/Magento/Ui/view/base/web/js/lib/events.js app/code/Magento/Ui/view/base/web/js/lib/key-codes.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/datepicker.js @@ -417,7 +413,6 @@ app/code/Magento/Ui/view/base/web/js/lib/ko/extender/observable_array.js app/code/Magento/Ui/view/base/web/js/lib/loader.js app/code/Magento/Ui/view/base/web/js/lib/spinner.js app/code/Magento/Ui/view/base/web/js/lib/step-wizard.js -app/code/Magento/Ui/view/base/web/js/lib/storage.js app/code/Magento/Ui/view/base/web/js/lib/validation/rules.js app/code/Magento/Ui/view/base/web/js/lib/validation/utils.js app/code/Magento/Ui/view/base/web/js/lib/validation/validator.js @@ -491,7 +486,7 @@ dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/controls/bookmarks/v dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/controls/columns.test.js dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/editing/bulk.test.js dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/filters/filters.test.js -dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/filters/group.test.js +dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/filters/range.test.js dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/paging/paging.test.js dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/resize.test.js dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/grid/search/search.test.js diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index 9f81daba85b..9c10b3c747f 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -8,7 +8,7 @@ define([ 'underscore', 'matchMedia', 'text!mage/gallery/gallery.html', - 'Magento_Ui/js/lib/class' + 'uiClass' ], function ($, fotorama, _, mediaCheck, template, Class) { 'use strict'; -- GitLab From 7143f18f49c42d73481db751357133cb819ffac5 Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Thu, 1 Oct 2015 19:09:56 +0300 Subject: [PATCH 208/420] MAGETWO-43528: Randomly re-sized grid --- .../Ui/view/base/web/js/grid/resize.js | 35 +++++++++++++------ 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/grid/resize.js b/app/code/Magento/Ui/view/base/web/js/grid/resize.js index cef9cb707cf..cf2273c7271 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/resize.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/resize.js @@ -37,6 +37,7 @@ define([ visibleClass: '_resize-visible', cellContentElement: 'div.data-grid-cell-content', minColumnWidth: 40, + mozillaHackIterator: 0, windowResize: false, resizable: false, resizeConfig: { @@ -92,6 +93,12 @@ define([ $(window).resize(this.checkAfterResize); } + //TODO - Must be deleted when Firefox fixed problem with table-layout: fixed + //ticket to Firefox: https://bugs.webkit.org/show_bug.cgi?id=90068 + if (navigator.userAgent.search(/Firefox/) > -1) { + this._mozillaHack(); + } + $(table).addClass(this.fixedLayoutClass); return this; @@ -224,21 +231,27 @@ define([ this.refreshLastColumn(column); this.preprocessingWidth(); - //TODO - Must be deleted when Firefox fixed problem with table-layout: fixed - //ticket to Firefox: https://bugs.webkit.org/show_bug.cgi?id=90068 - if (navigator.userAgent.search(/Firefox/) > -1) { - setTimeout(function () { - $(table).css('table-layout', 'auto'); - setTimeout(function () { - $(table).css('table-layout', 'fixed'); - }, 500); - }, 500); - } - model.on('visible', this.refreshLastColumn.bind(this, column)); model.on('visible', this.preprocessingWidth.bind(this)); }, + /** + * Hack for mozilla firefox + */ + _mozillaHack: function () { + var self = this; + + setTimeout(function () { + if (self.mozillaHackIterator < 10) { + $(window).resize(); + self.mozillaHackIterator++; + self._mozillaHack(); + } else { + return false; + } + }, 500); + }, + /** * Check element is resizable or not * and append resizable element to DOM -- GitLab From d6faf2479349add5932ae83aa1e57b1202b692f4 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Thu, 1 Oct 2015 19:12:40 +0300 Subject: [PATCH 209/420] JS-51: Gallery Widget Configuration and Extension on theme level - Fix typos --- .../Catalog/view/frontend/templates/product/view/gallery.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 0f21866f808..1e7cd3db22f 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -47,7 +47,7 @@ "showCaption": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/caption"); ?>, "transitionduration": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/transition/duration"); ?>, "transition": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/transition/effect"); ?>" - } + }, "breakpoints": <?php /* @escapeNotVerified */ echo $block->getBreakpoints(); ?> } } -- GitLab From 961464d068e4d04cb5b0859a9d51070567f9703b Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Thu, 1 Oct 2015 19:18:23 +0300 Subject: [PATCH 210/420] MAGETWO-43528: Randomly re-sized grid --- app/code/Magento/Ui/view/base/web/js/grid/resize.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/grid/resize.js b/app/code/Magento/Ui/view/base/web/js/grid/resize.js index cf2273c7271..98ac631409f 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/resize.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/resize.js @@ -37,7 +37,7 @@ define([ visibleClass: '_resize-visible', cellContentElement: 'div.data-grid-cell-content', minColumnWidth: 40, - mozillaHackIterator: 0, + layoutFixedPolyfillIterator: 0, windowResize: false, resizable: false, resizeConfig: { @@ -96,7 +96,7 @@ define([ //TODO - Must be deleted when Firefox fixed problem with table-layout: fixed //ticket to Firefox: https://bugs.webkit.org/show_bug.cgi?id=90068 if (navigator.userAgent.search(/Firefox/) > -1) { - this._mozillaHack(); + this._layoutFixedPolyfill(); } $(table).addClass(this.fixedLayoutClass); @@ -238,14 +238,14 @@ define([ /** * Hack for mozilla firefox */ - _mozillaHack: function () { + _layoutFixedPolyfill: function () { var self = this; setTimeout(function () { - if (self.mozillaHackIterator < 10) { + if (self.layoutFixedPolyfillIterator < 10) { $(window).resize(); - self.mozillaHackIterator++; - self._mozillaHack(); + self.layoutFixedPolyfillIterator++; + self._layoutFixedPolyfill(); } else { return false; } -- GitLab From 1af85c6addbb26f9f86d5568deacc8572682d017 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Thu, 1 Oct 2015 19:31:37 +0300 Subject: [PATCH 211/420] MAGETWO-42762: Improve performance of table rendering - Fix bug --- .../Ui/view/base/web/js/lib/core/component/component.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/component/component.js b/app/code/Magento/Ui/view/base/web/js/lib/core/component/component.js index b86ffa340da..9cd1bcfee3c 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/component/component.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/component/component.js @@ -64,8 +64,11 @@ define([ * @returns {Component} Chainable. */ initProperties: function () { + if (!this.source) { + this.source = registry.get(this.provider); + } + _.extend(this, { - source: registry.get(this.provider), containers: [], _elems: [] }); @@ -159,7 +162,9 @@ define([ var regions = this.regions = this.regions || {}; if (!regions[name]) { - this.observe.call(regions, name, []); + regions[name] = []; + + this.observe.call(regions, name); } return regions[name]; -- GitLab From cc38a4a3a66fb0fe9a94e084a78af11247de6ee2 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Thu, 1 Oct 2015 20:15:23 +0300 Subject: [PATCH 212/420] MAGETWO-42762: Improve performance of table rendering - Fix configurable product grid --- ...onfigurable_associated_product_listing.xml | 5 +++- .../base/web/js/form/element/ui-select.js | 28 ++----------------- .../view/base/web/js/grid/filters/filters.js | 7 +++-- 3 files changed, 10 insertions(+), 30 deletions(-) diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml index 969a2a5fb9a..9c2e8d868fd 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml @@ -37,7 +37,7 @@ <item name="template" xsi:type="string">ui/grid/toolbar</item> </item> </argument> - <filters name="listing_filters" class="Magento\ConfigurableProduct\Ui\Component\Listing\AssociatedProduct\Filters"> + <filters name="listing_filters"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="columnsProvider" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.product_columns</item> @@ -50,6 +50,9 @@ <item name="visible" xsi:type="string">configurable_associated_product_listing.configurable_associated_product_listing.product_columns.${ $.index }:visible</item> </item> </item> + <item name="observers" xsi:type="array"> + <item name="filters" xsi:type="object">Magento\ConfigurableProduct\Ui\Component\Listing\AssociatedProduct\Filters</item> + </item> </item> </argument> <filterSelect name="status"> diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js b/app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js index 638f78341d6..550ca108b20 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js @@ -5,12 +5,10 @@ define([ 'underscore', - 'ko', './abstract', 'Magento_Ui/js/lib/key-codes', - 'mage/translate', - 'uiLayout' -], function (_, ko, Abstract, keyCodes, $t, layout) { + 'mage/translate' +], function (_, Abstract, keyCodes, $t) { 'use strict'; /** @@ -52,20 +50,10 @@ define([ defaultPlaceholder: $t('Select...'), lotPlaceholders: $t('Selected') }, - optionsConfig: { - name: '${ $.name }_options', - component: 'Magento_Ui/js/form/element/helpers/options' - }, hoverElIndex: null, listens: { listVisible: 'cleanHoveredElement', filterInputValue: 'filterOptionsList' - }, - imports: { - options: '${ $.optionsConfig.name }:options' - }, - modules: { - optionsProvider: '${ $.optionsConfig.name }' } }, @@ -134,18 +122,6 @@ define([ return this; }, - /** - * Initializes optionsProvider - * - * @returns {Object} Chainable. - */ - initOptions: function () { - this.optionsConfig.options = this.options(); - layout([this.optionsConfig]); - - return this; - }, - /** * Handler outerClick event. Closed options list */ diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js index bcfbf06de08..42ec8cf7513 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js @@ -61,9 +61,10 @@ define([ template: 'ui/grid/filters/elements/input' }, select: { - component: 'Magento_Ui/js/form/element/ui-select', - template: 'ui/grid/filters/elements/ui-select', - options: '${ JSON.stringify($.$data.column.options) }' + component: 'Magento_Ui/js/form/element/select', + template: 'ui/grid/filters/elements/select', + options: '${ JSON.stringify($.$data.column.options) }', + caption: ' ' }, dateRange: { component: 'Magento_Ui/js/grid/filters/range', -- GitLab From 4557e008ab2369227d3d9bd514c489365f5126bd Mon Sep 17 00:00:00 2001 From: Dale Sikkema <dsikkema@ebay.com> Date: Thu, 1 Oct 2015 13:45:56 -0500 Subject: [PATCH 213/420] MAGETWO-43197: Product's options are not saved after running setup:di:compile --- lib/internal/Magento/Framework/Code/Generator.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/internal/Magento/Framework/Code/Generator.php b/lib/internal/Magento/Framework/Code/Generator.php index ed16a98977c..edd02f6c204 100644 --- a/lib/internal/Magento/Framework/Code/Generator.php +++ b/lib/internal/Magento/Framework/Code/Generator.php @@ -89,7 +89,7 @@ class Generator } } - if ($skipReason = $this->validate($resultEntityType, $sourceClassName, $className)) { + if ($skipReason = $this->shouldSkipGeneration($resultEntityType, $sourceClassName, $className)) { return $skipReason; } @@ -198,7 +198,7 @@ class Generator * @param string $resultClass * @return string|bool */ - protected function validate($resultEntityType, $sourceClassName, $resultClass) + protected function shouldSkipGeneration($resultEntityType, $sourceClassName, $resultClass) { if (!$resultEntityType || !$sourceClassName) { return self::GENERATION_ERROR; -- GitLab From fe49f3d61f7fb24b947d69afbb4cac64a072b4d9 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Thu, 1 Oct 2015 22:00:50 +0300 Subject: [PATCH 214/420] MAGETWO-42607: MAP popup isn't displayed for Tier Prices on "view Product" Storefront page --- .../templates/product/price/tier_prices.phtml | 3 +- .../Catalog/view/frontend/requirejs-config.js | 1 + .../Magento/Msrp/view/base/web/js/msrp.js | 197 ++++++++++++++---- .../Msrp/view/frontend/templates/popup.phtml | 5 +- 4 files changed, 160 insertions(+), 46 deletions(-) diff --git a/app/code/Magento/Catalog/view/base/templates/product/price/tier_prices.phtml b/app/code/Magento/Catalog/view/base/templates/product/price/tier_prices.phtml index c0b494718c0..030e663359f 100644 --- a/app/code/Magento/Catalog/view/base/templates/product/price/tier_prices.phtml +++ b/app/code/Magento/Catalog/view/base/templates/product/price/tier_prices.phtml @@ -86,8 +86,9 @@ $product = $block->getSaleableItem(); <script type="text/x-magento-init"> { ".product-info-main": { - "tierPrice": { + "addToCart": { "inputQty": "#qty", + "attr": "[data-tier-price]", "productForm": "#product_addtocart_form" } } diff --git a/app/code/Magento/Catalog/view/frontend/requirejs-config.js b/app/code/Magento/Catalog/view/frontend/requirejs-config.js index a840a196c6a..3c0ffa65c8d 100644 --- a/app/code/Magento/Catalog/view/frontend/requirejs-config.js +++ b/app/code/Magento/Catalog/view/frontend/requirejs-config.js @@ -12,6 +12,7 @@ var config = { upsellProducts: 'Magento_Catalog/js/upsell-products', productListToolbarForm: 'Magento_Catalog/js/product/list/toolbar', tierPrice: 'Magento_Catalog/js/tier-price', + addToCart: 'Magento_Msrp/js/msrp', catalogGallery: 'Magento_Catalog/js/gallery', priceBox: 'Magento_Catalog/js/price-box', priceOptionDate: 'Magento_Catalog/js/price-option-date', diff --git a/app/code/Magento/Msrp/view/base/web/js/msrp.js b/app/code/Magento/Msrp/view/base/web/js/msrp.js index 8bad507ec07..42603c231fb 100644 --- a/app/code/Magento/Msrp/view/base/web/js/msrp.js +++ b/app/code/Magento/Msrp/view/base/web/js/msrp.js @@ -6,7 +6,8 @@ define([ 'jquery', 'underscore', 'jquery/ui', - 'mage/dropdown' + 'mage/dropdown', + 'mage/template' ], function ($, _) { 'use strict'; @@ -31,56 +32,163 @@ define([ // Text options productName: '', addToCartUrl: '' + }, openDropDown: null, + triggerClass:'dropdown-active', + popUpOptions: { + appendTo: 'body', + dialogContentClass: 'active', + closeOnMouseLeave: false, + autoPosition: true, + closeOnClickOutside: false, + 'dialogClass': 'popup map-popup-wrapper', + position: { + my: 'left top', + collision: 'fit none', + at: 'left bottom', + within: 'body' + }, + shadowHinter: 'popup popup-pointer' + }, + popupOpened: false, /** * Creates widget instance * @private */ _create: function () { - $(this.options.cartButtonId).on('click', this._addToCartSubmit.bind(this)); + this.popupDOM = $('[data-role=msrp-popup-template]')[0]; + this.infoPopupDOM = $('[data-role=msrp-info-template]')[0]; - $(this.options.popupId).on('click', function (event) { - var dialog; - event.preventDefault(); + if(this.options.popupId){ + this.$popup = $(this.popupDOM.innerText).appendTo('body'); - if (this.options.submitUrl) { - location.href = this.options.submitUrl; - } else { - $(this.options.popupCartButtonId) - .off('click') - .on('click', this._addToCartSubmit.bind(this)); - $('#map-popup-heading-price').text(this.options.productName); - $('#map-popup-price').html($(this.options.realPrice).html().trim()); - $('#map-popup-msrp > span.price').html(this.options.msrpPrice); - this.element.trigger('reloadPrice'); + //.on('dropdowndialogclose', function () { + // this.$popup.removeClass(this.triggerClass); + //}.bind(this)) + //.on('dropdowndialogopen', function () { + // this.$popup.addClass(this.triggerClass); + //}.bind(this)).dropdownDialog('open'); - dialog = $('#map-popup-click-for-price'); - this._popupDialog(dialog, this.options.popupId); + $(this.options.popupId).on('click', function(e){ + this.popUpOptions.position.of = $(e.target); + this.$popup.dropdownDialog(this.popUpOptions).dropdownDialog('open'); + this._toggle(this.$popup); + }.bind(this)); + } - if (this.options.addToCartUrl) { - $(this.options.cartForm).attr('action', this.options.addToCartUrl); - } + if(this.options.helpLinkId) { + this.$infoPopup = $(this.infoPopupDOM.innerText).appendTo('body'); - if (!this.options.showAddToCart) { - $('#product_addtocart_form_from_popup').hide(); - } + $(this.options.helpLinkId).on('click', function(e){ + this.popUpOptions.position.of = $(e.target); + this.$infoPopup.dropdownDialog(this.popUpOptions).dropdownDialog('open'); + this._toggle(this.$infoPopup); + }.bind(this)); + } - return false; - } - }.bind(this)); + if(this.options.attr){ + this.popupDOM = $('[data-role=msrp-popup-template]')[0]; + this.$popup = $(this.popupDOM.innerText).appendTo('body'); + //$(this.options.attr).on('mousedown', function(e){ + // this.drawPopup(e); + //}.bind(this)); - $(this.options.helpLinkId).on('click', function () { - $('#map-popup-heading-what-this').text(this.options.productName); - this._popupDialog($('#map-popup-what-this'), this.options.helpLinkId); + this.popUpOptions.position.of = $(this.options.helpLinkId); + + $(this.options.attr).on('click', function(e){ + this.popUpOptions.position.of = $(e.target); + this.$popup.dropdownDialog(this.popUpOptions).dropdownDialog('open'); + this._toggle(this.$popup); + + }.bind(this)); + } + //console.log(popup.innerHTML); + //console.log(infoPopup.innerHTML); + //document.body.innerHTML += data.innerHTML; + + //$(this.options.cartButtonId).on('click', this._addToCartSubmit.bind(this)); + // + //$(this.options.popupId).on('click', function (event) { + // var dialog; + // event.preventDefault(); + // + // if (this.options.submitUrl) { + // location.href = this.options.submitUrl; + // } else { + // $(this.options.popupCartButtonId) + // .off('click') + // .on('click', this._addToCartSubmit.bind(this)); + // $('#map-popup-heading-price').text(this.options.productName); + // $('#map-popup-price').html($(this.options.realPrice).html().trim()); + // $('#map-popup-msrp > span.price').html(this.options.msrpPrice); + // + // this.element.trigger('reloadPrice'); + // + // dialog = $('#map-popup-click-for-price'); + // this._popupDialog(dialog, this.options.popupId); + // + // if (this.options.addToCartUrl) { + // $(this.options.cartForm).attr('action', this.options.addToCartUrl); + // } + // + // if (!this.options.showAddToCart) { + // $('#product_addtocart_form_from_popup').hide(); + // } + // + // return false; + // } + //}.bind(this)); + // + //$(this.options.helpLinkId).on('click', function () { + // $('#map-popup-heading-what-this').text(this.options.productName); + // this._popupDialog($('#map-popup-what-this'), this.options.helpLinkId); + // + // return false; + //}.bind(this)); + }, + _toggle: function($elem){ + $(document).on('mouseup', function(e){ + + if (!$elem.is(e.target) && $elem.has(e.target).length === 0) { + $elem.dropdownDialog('close'); + $(document).off('mouseup'); + } - return false; }.bind(this)); }, + initDropDown: function(){ + this.popUpOptions.position.of = $(this.options.popupId); + this.dropdown = this.$popup.dropdownDialog(this.popUpOptions) + .on('dropdowndialogclose', function () { + this.$popup.removeClass(this.triggerClass); + }.bind(this)) + .on('dropdowndialogopen', function () { + this.$popup.addClass(this.triggerClass); + }.bind(this)); + }, + drawPopup: function(e){ + //this.popUpOptions.position.of = $(e.target); + this.dropdown.dropdownDialog('open'); + }, + + drawInfo: function(e){ + this.popUpOptions.position.of = $(e.target); + openDropDown = this.$infoPopup.dropdownDialog(this.popUpOptions) + .on('dropdowndialogclose', function () { + + this.$infoPopup.removeClass(this.triggerClass); + }.bind(this)) + .on('dropdowndialogopen', function () { + this.$infoPopup.addClass(this.triggerClass); + }.bind(this)) + .dropdownDialog('open'); + + }, /** * Handler for dialog popup * @param {jQuery} elementTarget @@ -153,21 +261,22 @@ define([ * @private */ _addToCartSubmit: function () { - this.element.trigger('addToCart', this.element); - if (this.element.data('stop-processing')) { - return false; - } - - if (this.options.addToCartButton) { - $(this.options.addToCartButton).click(); + //this.element.trigger('addToCart', this.element); + //if (this.element.data('stop-processing')) { + // return false; + //} + // + //if (this.options.addToCartButton) { + // $(this.options.addToCartButton).click(); + // + // return; + //} + // + //if (this.options.addToCartUrl) { + // $('.mage-dropdown-dialog > .ui-dialog-content').dropdownDialog('close'); + //} + //$(this.options.cartForm).submit(); - return; - } - - if (this.options.addToCartUrl) { - $('.mage-dropdown-dialog > .ui-dialog-content').dropdownDialog('close'); - } - $(this.options.cartForm).submit(); } }); diff --git a/app/code/Magento/Msrp/view/frontend/templates/popup.phtml b/app/code/Magento/Msrp/view/frontend/templates/popup.phtml index 07230989e18..521f17e4971 100644 --- a/app/code/Magento/Msrp/view/frontend/templates/popup.phtml +++ b/app/code/Magento/Msrp/view/frontend/templates/popup.phtml @@ -11,6 +11,7 @@ /** @var \Magento\Msrp\Block\Popup $block */ ?> <?php if ($block->isEnabled()): ?> + <script data-role="msrp-popup-template" type="text/x-magento-template"> <div id="map-popup-click-for-price" class="map-popup"> <div class="popup-header"> <strong class="title" id="map-popup-heading-price"></strong> @@ -47,7 +48,8 @@ </div> </div> </div> - + </script> + <script data-role="msrp-info-template" type="text/x-magento-template"> <div id="map-popup-what-this" class="map-popup"> <div class="popup-header"> <strong class="title" id="map-popup-heading-what-this"></strong> @@ -58,4 +60,5 @@ </div> </div> </div> + </script> <?php endif; ?> -- GitLab From dcb04da5585a3ce8a7d4a19c584370576d93643f Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Fri, 2 Oct 2015 09:21:30 +0300 Subject: [PATCH 215/420] MAGETWO-39938: [static scan] Code injection: #15723895, #15723900, #15723908 --- .../view/adminhtml/templates/catalog/category/tree.phtml | 2 ++ .../SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml index 249f02f6e3f..63927772b31 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml @@ -229,6 +229,8 @@ function reRenderTree(switcherParams) { try { response = JSON.parse(transport.responseText); + } catch { + console.warn('error when parse response'); } if (!response || !response['parameters']) { diff --git a/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml b/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml index fea5d38e825..ae7deb609bb 100644 --- a/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml +++ b/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml @@ -82,6 +82,8 @@ function generateCouponCodes(idPrefix, generateUrl, grid) { if (transport && transport.responseText) { try { response = JSON.parse(transport.responseText); + } catch { + console.warn('error when parse response'); } } if (couponCodesGrid) { -- GitLab From bda701f33255178512fc27ab0fe42b54e5510ab3 Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Fri, 2 Oct 2015 09:25:32 +0300 Subject: [PATCH 216/420] MAGETWO-39938: [static scan] Code injection: #15723895, #15723900, #15723908 --- .../view/adminhtml/templates/catalog/category/tree.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml index 63927772b31..92559461ed1 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml @@ -229,7 +229,7 @@ function reRenderTree(switcherParams) { try { response = JSON.parse(transport.responseText); - } catch { + } catch (e) { console.warn('error when parse response'); } -- GitLab From 8dd8cd533b102533c36b63a356b4a2016844d191 Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Fri, 2 Oct 2015 09:26:09 +0300 Subject: [PATCH 217/420] MAGETWO-39938: [static scan] Code injection: #15723895, #15723900, #15723908 --- .../SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml b/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml index ae7deb609bb..c0bf9182600 100644 --- a/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml +++ b/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml @@ -82,7 +82,7 @@ function generateCouponCodes(idPrefix, generateUrl, grid) { if (transport && transport.responseText) { try { response = JSON.parse(transport.responseText); - } catch { + } catch (e) { console.warn('error when parse response'); } } -- GitLab From 570bc60556978a97beee3f1e28931c34394702e7 Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Fri, 2 Oct 2015 09:31:59 +0300 Subject: [PATCH 218/420] MAGETWO-43528: Randomly re-sized grid --- app/code/Magento/Ui/view/base/web/js/grid/resize.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Ui/view/base/web/js/grid/resize.js b/app/code/Magento/Ui/view/base/web/js/grid/resize.js index 98ac631409f..6f0ea9bd337 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/resize.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/resize.js @@ -242,7 +242,7 @@ define([ var self = this; setTimeout(function () { - if (self.layoutFixedPolyfillIterator < 10) { + if (self.layoutFixedPolyfillIterator < 20) { $(window).resize(); self.layoutFixedPolyfillIterator++; self._layoutFixedPolyfill(); -- GitLab From f8aee1be6e732ab8b7a1f39206f0a297bc741989 Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Fri, 2 Oct 2015 10:44:26 +0300 Subject: [PATCH 219/420] MAGETWO-39938: [static scan] Code injection: #15723895, #15723900, #15723908 --- .../view/adminhtml/templates/catalog/category/tree.phtml | 2 +- .../SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml index 92559461ed1..36a55789dfd 100644 --- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml +++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/category/tree.phtml @@ -230,7 +230,7 @@ function reRenderTree(switcherParams) { try { response = JSON.parse(transport.responseText); } catch (e) { - console.warn('error when parse response'); + console.warn('An error occured while parsing response'); } if (!response || !response['parameters']) { diff --git a/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml b/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml index c0bf9182600..2fd5b395e3b 100644 --- a/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml +++ b/app/code/Magento/SalesRule/view/adminhtml/templates/promo/salesrulejs.phtml @@ -83,7 +83,7 @@ function generateCouponCodes(idPrefix, generateUrl, grid) { try { response = JSON.parse(transport.responseText); } catch (e) { - console.warn('error when parse response'); + console.warn('An error occured while parsing response'); } } if (couponCodesGrid) { -- GitLab From 295fb0baebf7d7da96888e51a347c703c11c1ed6 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Fri, 2 Oct 2015 11:09:04 +0300 Subject: [PATCH 220/420] JS-51: Gallery Widget Configuration and Extension on theme level - Fix typos --- app/design/frontend/Magento/luma/etc/view.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index e6f6ef625a4..29336ddfbd2 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -211,6 +211,7 @@ <var name="transition"> <var name="effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="duration">500</var> <!-- Sets transition duration in ms --> + <var name="carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> </var> </var> </var> -- GitLab From 43886c03e2114d35d07fa66e34fd6760db7d830c Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Fri, 2 Oct 2015 11:16:55 +0300 Subject: [PATCH 221/420] JS-51: Gallery Widget Configuration and Extension on theme level - Fix typos --- app/design/frontend/Magento/blank/etc/view.xml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 805f28e906f..83600f8db5e 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -196,15 +196,16 @@ </var> <var name="fullscreen"> <var name="nav">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> - <var name="loop">false</var> <!-- Fullscreen navigation loop (true/false) --> + <var name="loop">true</var> <!-- Fullscreen navigation loop (true/false/null) --> <var name="keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> - <var name="arrows">null</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> - <var name="caption">null</var> <!-- Display alt text as image title (true/false/null) --> - <var name="navdir">vertical</var> <!--Sliding direction of thumbnails in full screen(horizontal/vertical) --> - <var name="thumbwidth">100</var> <!-- Width of thumbnails in fullscreen --> - <var name="thumbheight">100</var> <!-- Height of thumbnails in fullscreen --> + <var name="arrows">false</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> + <var name="caption">false</var> <!-- Display alt text as image title (true/false) --> + <var name="navdir">horizontal</var> <!--Sliding direction of thumbnails in full screen(horizontal/vertical) --> + <var name="thumbwidth">150</var> <!-- Width of thumbnails in fullscreen --> + <var name="thumbheight">150</var> <!-- Height of thumbnails in fullscreen --> + <var name="navigation_carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> <var name="transition"> - <var name="effect">crossfade</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> + <var name="effect">dissolve</var> <!-- Sets transition effect for slides changing (slide/crossfade/dissolve) --> <var name="duration">500</var> <!-- Sets transition duration in ms --> <var name="carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> </var> -- GitLab From 2fd8ef5a7a5db6a41ab0d3069b4777de334ec312 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Fri, 2 Oct 2015 12:33:07 +0300 Subject: [PATCH 222/420] MAGETWO-42762: Improve performance of table rendering - Change format of statefull properties - Move core functionality to uiElement --- .../frontend/web/js/model/gift-message.js | 6 +- .../Magento/Ui/view/base/requirejs-config.js | 5 +- .../Magento/Ui/view/base/web/js/core/app.js | 3 +- .../view/base/web/js/form/components/group.js | 6 +- .../view/base/web/js/form/components/tab.js | 6 +- .../web/js/form/element/helpers/options.js | 13 -- .../Magento/Ui/view/base/web/js/form/form.js | 6 +- .../Ui/view/base/web/js/form/provider.js | 6 +- .../view/base/web/js/grid/columns/column.js | 12 +- .../Ui/view/base/web/js/grid/columns/date.js | 8 +- .../js/grid/controls/bookmarks/bookmarks.js | 6 +- .../web/js/grid/controls/bookmarks/storage.js | 2 +- .../view/base/web/js/grid/controls/columns.js | 6 +- .../view/base/web/js/grid/editing/editor.js | 6 +- .../view/base/web/js/grid/editing/record.js | 6 +- .../Ui/view/base/web/js/grid/export.js | 7 +- .../Ui/view/base/web/js/grid/filters/chips.js | 6 +- .../view/base/web/js/grid/filters/filters.js | 10 +- .../Ui/view/base/web/js/grid/listing.js | 18 +-- .../Ui/view/base/web/js/grid/paging/paging.js | 6 +- .../Ui/view/base/web/js/grid/paging/sizes.js | 12 +- .../Ui/view/base/web/js/grid/provider.js | 6 +- .../Ui/view/base/web/js/grid/resize.js | 6 +- .../Ui/view/base/web/js/grid/search/search.js | 12 +- .../{component/component.js => collection.js} | 43 +++---- .../{model/model.js => element/element.js} | 120 ++++++++++++++---- .../js/lib/core/{model => element}/links.js | 0 .../Ui/view/base/web/js/lib/core/events.js | 5 +- .../web/js/lib/core/{model => }/storage.js | 0 .../Ui/view/base/web/js/lib/ko/initialize.js | 3 +- .../base/web/js/lib/ko/template/engine.js | 2 +- .../web/js/lib/{ => ko/template}/loader.js | 1 + .../lib/{renderer => ko/template}/renderer.js | 2 +- .../Ui/base/js/lib/component/links.test.js | 4 +- .../Test/Js/_files/blacklist/magento.txt | 4 +- 35 files changed, 204 insertions(+), 160 deletions(-) delete mode 100644 app/code/Magento/Ui/view/base/web/js/form/element/helpers/options.js rename app/code/Magento/Ui/view/base/web/js/lib/core/{component/component.js => collection.js} (91%) rename app/code/Magento/Ui/view/base/web/js/lib/core/{model/model.js => element/element.js} (75%) rename app/code/Magento/Ui/view/base/web/js/lib/core/{model => element}/links.js (100%) rename app/code/Magento/Ui/view/base/web/js/lib/core/{model => }/storage.js (100%) rename app/code/Magento/Ui/view/base/web/js/lib/{ => ko/template}/loader.js (99%) rename app/code/Magento/Ui/view/base/web/js/lib/{renderer => ko/template}/renderer.js (99%) diff --git a/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js b/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js index d72057e2b85..502e3ab77d2 100644 --- a/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js +++ b/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js @@ -3,11 +3,11 @@ * See COPYING.txt for license details. */ /*global define*/ -define(['uiModel', 'underscore', 'mage/url'], - function (uiModel, _, url) { +define(['uiElement', 'underscore', 'mage/url'], + function (uiElement, _, url) { 'use strict'; - var provider = uiModel(); + var provider = uiElement(); return function (itemId) { var model = { diff --git a/app/code/Magento/Ui/view/base/requirejs-config.js b/app/code/Magento/Ui/view/base/requirejs-config.js index e704a698879..604ed1e5904 100644 --- a/app/code/Magento/Ui/view/base/requirejs-config.js +++ b/app/code/Magento/Ui/view/base/requirejs-config.js @@ -9,9 +9,10 @@ var config = { }, map: { '*': { - uiComponent: 'Magento_Ui/js/lib/core/component/component', + uiElement: 'Magento_Ui/js/lib/core/element/element', + uiCollection: 'Magento_Ui/js/lib/core/collection', + uiComponent: 'Magento_Ui/js/lib/core/collection', uiClass: 'Magento_Ui/js/lib/core/class', - uiModel: 'Magento_Ui/js/lib/core/model/model', uiEvents: 'Magento_Ui/js/lib/core/events', uiRegistry: 'Magento_Ui/js/lib/registry/registry', uiLayout: 'Magento_Ui/js/core/renderer/layout' diff --git a/app/code/Magento/Ui/view/base/web/js/core/app.js b/app/code/Magento/Ui/view/base/web/js/core/app.js index 5c4593bd486..b009aca28d2 100644 --- a/app/code/Magento/Ui/view/base/web/js/core/app.js +++ b/app/code/Magento/Ui/view/base/web/js/core/app.js @@ -4,7 +4,8 @@ */ define([ './renderer/types', - './renderer/layout' + './renderer/layout', + 'Magento_Ui/js/lib/ko/initialize' ], function (types, layout) { 'use strict'; diff --git a/app/code/Magento/Ui/view/base/web/js/form/components/group.js b/app/code/Magento/Ui/view/base/web/js/form/components/group.js index daf56e7e564..18bc1779477 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/components/group.js +++ b/app/code/Magento/Ui/view/base/web/js/form/components/group.js @@ -4,11 +4,11 @@ */ define([ 'underscore', - 'uiComponent' -], function (_, Component) { + 'uiCollection' +], function (_, Collection) { 'use strict'; - return Component.extend({ + return Collection.extend({ defaults: { visible: true, label: '', diff --git a/app/code/Magento/Ui/view/base/web/js/form/components/tab.js b/app/code/Magento/Ui/view/base/web/js/form/components/tab.js index 61560892e3e..8559e658835 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/components/tab.js +++ b/app/code/Magento/Ui/view/base/web/js/form/components/tab.js @@ -3,11 +3,11 @@ * See COPYING.txt for license details. */ define([ - 'uiComponent' -], function (Component) { + 'uiCollection' +], function (Collection) { 'use strict'; - return Component.extend({ + return Collection.extend({ defaults: { uniqueProp: 'active', active: false, diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/helpers/options.js b/app/code/Magento/Ui/view/base/web/js/form/element/helpers/options.js deleted file mode 100644 index 99b14e19582..00000000000 --- a/app/code/Magento/Ui/view/base/web/js/form/element/helpers/options.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ - -define([ - 'uiComponent' -], function (Component) { - 'use strict'; - - return Component.extend({ - }); -}); diff --git a/app/code/Magento/Ui/view/base/web/js/form/form.js b/app/code/Magento/Ui/view/base/web/js/form/form.js index 2a192c20c24..692f92d6a02 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/form.js +++ b/app/code/Magento/Ui/view/base/web/js/form/form.js @@ -4,10 +4,10 @@ */ define([ 'underscore', - 'uiComponent', + 'uiCollection', 'Magento_Ui/js/lib/spinner', './adapter' -], function (_, Component, loader, adapter) { +], function (_, Collection, loader, adapter) { 'use strict'; function collectData(selector) { @@ -23,7 +23,7 @@ define([ return result; } - return Component.extend({ + return Collection.extend({ initialize: function () { this._super() .initAdapter() diff --git a/app/code/Magento/Ui/view/base/web/js/form/provider.js b/app/code/Magento/Ui/view/base/web/js/form/provider.js index 8b182d2b8f2..0acd2dac31d 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/provider.js +++ b/app/code/Magento/Ui/view/base/web/js/form/provider.js @@ -4,12 +4,12 @@ */ define([ 'underscore', - 'uiComponent', + 'uiElement', './client' -], function (_, Component, Client) { +], function (_, Element, Client) { 'use strict'; - return Component.extend({ + return Element.extend({ initialize: function () { this._super() .initClient(); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js index 8cb07d8a714..0d113fdbae5 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/column.js @@ -6,11 +6,11 @@ define([ 'underscore', 'uiRegistry', 'mageUtils', - 'uiComponent' -], function (_, registry, utils, Component) { + 'uiElement' +], function (_, registry, utils, Element) { 'use strict'; - return Component.extend({ + return Element.extend({ defaults: { headerTmpl: 'ui/grid/columns/text', bodyTmpl: 'ui/grid/cells/text', @@ -24,9 +24,9 @@ define([ ignoreTmpls: { fieldAction: true }, - links: { - visible: '${ $.storageConfig.path }.visible', - sorting: '${ $.storageConfig.path }.sorting' + statefull: { + visible: true, + sorting: true }, imports: { exportSorting: 'sorting' diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/date.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/date.js index a12e0436eec..19ac459e2dc 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/date.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/date.js @@ -15,14 +15,16 @@ define([ }, /** - * Initializes components' static properties. + * Overrides base method to normalize date format. * * @returns {DateColumn} Chainable. */ - initProperties: function () { + initConfig: function () { + this._super(); + this.dateFormat = utils.normalizeDate(this.dateFormat); - return this._super(); + return this; }, /** diff --git a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js index d9cd0f66a39..81759664b63 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js @@ -7,8 +7,8 @@ define([ 'mageUtils', 'mage/translate', 'uiLayout', - 'uiComponent' -], function (_, utils, $t, layout, Component) { + 'uiCollection' +], function (_, utils, $t, layout, Collection) { 'use strict'; /** @@ -27,7 +27,7 @@ define([ return path.join('.'); } - return Component.extend({ + return Collection.extend({ defaults: { template: 'ui/grid/controls/bookmarks/bookmarks', viewTmpl: 'ui/grid/controls/bookmarks/view', diff --git a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/storage.js b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/storage.js index 4a7eef274f8..48d3e7fa73d 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/storage.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/storage.js @@ -5,7 +5,7 @@ define([ 'jquery', 'mageUtils', - 'Magento_Ui/js/lib/core/model/storage', + 'Magento_Ui/js/lib/core/storage', 'uiClass' ], function ($, utils, storage, Class) { 'use strict'; diff --git a/app/code/Magento/Ui/view/base/web/js/grid/controls/columns.js b/app/code/Magento/Ui/view/base/web/js/grid/controls/columns.js index 73fe224b55e..9965231c535 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/controls/columns.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/controls/columns.js @@ -6,11 +6,11 @@ define([ 'underscore', 'mageUtils', 'mage/translate', - 'uiComponent' -], function (_, utils, $t, Component) { + 'uiCollection' +], function (_, utils, $t, Collection) { 'use strict'; - return Component.extend({ + return Collection.extend({ defaults: { template: 'ui/grid/controls/columns', minVisible: 1, diff --git a/app/code/Magento/Ui/view/base/web/js/grid/editing/editor.js b/app/code/Magento/Ui/view/base/web/js/grid/editing/editor.js index 674c8d93e7d..38c36ae137b 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/editing/editor.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/editing/editor.js @@ -8,11 +8,11 @@ define([ 'mageUtils', 'uiLayout', 'mage/translate', - 'uiComponent' -], function (_, utils, layout, $t, Component) { + 'uiCollection' +], function (_, utils, layout, $t, Collection) { 'use strict'; - return Component.extend({ + return Collection.extend({ defaults: { rowButtonsTmpl: 'ui/grid/editing/row-buttons', headerButtonsTmpl: 'ui/grid/editing/header-buttons', diff --git a/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js b/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js index 434dda5349e..2097ee77947 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js @@ -7,11 +7,11 @@ define([ 'underscore', 'mageUtils', 'uiLayout', - 'uiComponent' -], function (_, utils, layout, Component) { + 'uiCollection' +], function (_, utils, layout, Collection) { 'use strict'; - return Component.extend({ + return Collection.extend({ defaults: { active: true, hasChanges: false, diff --git a/app/code/Magento/Ui/view/base/web/js/grid/export.js b/app/code/Magento/Ui/view/base/web/js/grid/export.js index 032f5fcc367..cbc99b0319e 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/export.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/export.js @@ -5,12 +5,11 @@ define([ 'jquery', 'underscore', - 'uiComponent' -], function ($, _, Component) { + 'uiElement' +], function ($, _, Element) { 'use strict'; - return Component.extend({ - + return Element.extend({ defaults: { template: 'ui/grid/exportButton', checked: '', diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/chips.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/chips.js index 5a4499780f8..e7617aadf95 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/chips.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/chips.js @@ -4,11 +4,11 @@ */ define([ 'underscore', - 'uiComponent' -], function (_, Component) { + 'uiCollection' +], function (_, Collection) { 'use strict'; - return Component.extend({ + return Collection.extend({ defaults: { template: 'ui/grid/filters/chips', stickyTmpl: 'ui/grid/sticky/chips' diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js index 42ec8cf7513..8decc3f0849 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js @@ -6,8 +6,8 @@ define([ 'underscore', 'mageUtils', 'uiLayout', - 'uiComponent' -], function (_, utils, layout, Component) { + 'uiCollection' +], function (_, utils, layout, Collection) { 'use strict'; /** @@ -34,7 +34,7 @@ define([ return utils.mapRecursive(data, utils.removeEmptyValues.bind(utils)); } - return Component.extend({ + return Collection.extend({ defaults: { template: 'ui/grid/filters/filters', stickyTmpl: 'ui/grid/sticky/filters', @@ -85,8 +85,8 @@ define([ active: 'updatePreviews', applied: 'cancel updateActive' }, - links: { - applied: '${ $.storageConfig.path }' + statefull: { + applied: true }, exports: { applied: '${ $.provider }:params.filters' diff --git a/app/code/Magento/Ui/view/base/web/js/grid/listing.js b/app/code/Magento/Ui/view/base/web/js/grid/listing.js index 86aea5c6474..6188522e960 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/listing.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/listing.js @@ -8,18 +8,15 @@ define([ 'underscore', 'Magento_Ui/js/lib/spinner', 'uiLayout', - 'uiComponent' -], function (ko, _, loader, layout, Component) { + 'uiCollection' +], function (ko, _, loader, layout, Collection) { 'use strict'; - return Component.extend({ + return Collection.extend({ defaults: { template: 'ui/grid/listing', stickyTmpl: 'ui/grid/sticky/listing', positions: false, - storageConfig: { - positions: '${ $.storageConfig.path }.positions' - }, dndConfig: { name: '${ $.name }_dnd', component: 'Magento_Ui/js/grid/dnd', @@ -141,8 +138,6 @@ define([ element.on('visible', this.updateVisible); - this.updateVisible(); - return this._super(); }, @@ -152,14 +147,9 @@ define([ * @returns {Listing} Chainable. */ initPositions: function () { - var link = { - positions: this.storageConfig.positions - }; - this.on('positions', this.applyPositions.bind(this)); - this.setLinks(link, 'imports') - .setLinks(link, 'exports'); + this.setStatefull('positions'); return this; }, diff --git a/app/code/Magento/Ui/view/base/web/js/grid/paging/paging.js b/app/code/Magento/Ui/view/base/web/js/grid/paging/paging.js index 01729f4aebd..e121aeb5407 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/paging/paging.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/paging/paging.js @@ -8,11 +8,11 @@ define([ 'underscore', 'mageUtils', 'uiLayout', - 'uiComponent' -], function (ko, _, utils, layout, Component) { + 'uiElement' +], function (ko, _, utils, layout, Element) { 'use strict'; - return Component.extend({ + return Element.extend({ defaults: { template: 'ui/grid/paging/paging', totalTmpl: 'ui/grid/paging-total', diff --git a/app/code/Magento/Ui/view/base/web/js/grid/paging/sizes.js b/app/code/Magento/Ui/view/base/web/js/grid/paging/sizes.js index df287a12703..0354dd4517e 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/paging/sizes.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/paging/sizes.js @@ -6,11 +6,11 @@ define([ 'ko', 'underscore', 'mageUtils', - 'uiComponent' -], function (ko, _, utils, Component) { + 'uiElement' +], function (ko, _, utils, Element) { 'use strict'; - return Component.extend({ + return Element.extend({ defaults: { template: 'ui/grid/paging/sizes', value: 20, @@ -38,9 +38,9 @@ define([ label: 200 } }, - links: { - options: '${ $.storageConfig.path }.options', - value: '${ $.storageConfig.path }.value' + statefull: { + options: true, + value: true }, listens: { value: 'onValueChange', diff --git a/app/code/Magento/Ui/view/base/web/js/grid/provider.js b/app/code/Magento/Ui/view/base/web/js/grid/provider.js index b4aa11c5111..9232347df83 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/provider.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/provider.js @@ -7,13 +7,13 @@ define([ 'jquery', 'underscore', 'mageUtils', - 'uiComponent', + 'uiElement', 'Magento_Ui/js/modal/alert', 'mage/translate' -], function ($, _, utils, Component, alert, $t) { +], function ($, _, utils, Element, alert, $t) { 'use strict'; - return Component.extend({ + return Element.extend({ defaults: { listens: { params: 'reload' diff --git a/app/code/Magento/Ui/view/base/web/js/grid/resize.js b/app/code/Magento/Ui/view/base/web/js/grid/resize.js index 771126ff3a6..01faaedebe0 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/resize.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/resize.js @@ -10,11 +10,11 @@ define([ 'mageUtils', 'uiRegistry', 'Magento_Ui/js/lib/ko/extender/bound-nodes', - 'uiComponent' -], function ($, ko, _, utils, registry, boundedNodes, Component) { + 'uiElement' +], function ($, ko, _, utils, registry, boundedNodes, Element) { 'use strict'; - return Component.extend({ + return Element.extend({ defaults: { rootSelector: '${ $.columnsProvider }:.admin__data-grid-wrap', tableSelector: '${ $.rootSelector } -> table.data-grid', diff --git a/app/code/Magento/Ui/view/base/web/js/grid/search/search.js b/app/code/Magento/Ui/view/base/web/js/grid/search/search.js index f273c6dcd37..88c6bf6e449 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/search/search.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/search/search.js @@ -7,16 +7,19 @@ define([ 'uiLayout', 'mage/translate', 'mageUtils', - 'uiComponent' -], function (_, layout, $t, utils, Component) { + 'uiElement' +], function (_, layout, $t, utils, Element) { 'use strict'; - return Component.extend({ + return Element.extend({ defaults: { template: 'ui/grid/search/search', placeholder: $t('Search by keyword'), label: $t('Keyword'), value: '', + statefull: { + value: true + }, imports: { inputValue: 'value', updatePreview: 'value' @@ -24,9 +27,6 @@ define([ exports: { value: '${ $.provider }:params.search' }, - links: { - value: '${ $.storageConfig.path }' - }, modules: { chips: '${ $.chipsProvider }' } diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/component/component.js b/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js similarity index 91% rename from app/code/Magento/Ui/view/base/web/js/lib/core/component/component.js rename to app/code/Magento/Ui/view/base/web/js/lib/core/collection.js index 9cd1bcfee3c..af637dacc0c 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/component/component.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js @@ -6,9 +6,8 @@ define([ 'underscore', 'mageUtils', 'uiRegistry', - 'uiModel', - 'Magento_Ui/js/lib/ko/initialize' -], function (_, utils, registry, Model) { + 'uiElement' +], function (_, utils, registry, Element) { 'use strict'; /** @@ -21,7 +20,7 @@ define([ return container.filter(utils.isObject); } - return Model.extend({ + return Element.extend({ defaults: { template: 'ui/collection', componentType: 'container', @@ -34,7 +33,7 @@ define([ /** * Initializes component. * - * @returns {Component} Chainable. + * @returns {Collection} Chainable. */ initialize: function () { this._super() @@ -61,7 +60,7 @@ define([ /** * Defines various properties. * - * @returns {Component} Chainable. + * @returns {Collection} Chainable. */ initProperties: function () { if (!this.source) { @@ -79,7 +78,7 @@ define([ /** * Initializes listeners of the unique property. * - * @returns {Component} Chainable. + * @returns {Collection} Chainable. */ initUnique: function () { var update = this.onUniqueUpdate.bind(this), @@ -98,7 +97,7 @@ define([ * Called when current element was injected to another component. * * @param {Object} parent - Instance of a 'parent' component. - * @returns {Component} Chainable. + * @returns {Collection} Chainable. */ initContainer: function (parent) { this.containers.push(parent); @@ -110,27 +109,21 @@ define([ * Called when another element was added to current component. * * @param {Object} elem - Instance of an element that was added. - * @returns {Component} Chainable. + * @returns {Collection} Chainable. */ initElement: function (elem) { - elem.initContainer(this); + if (_.isFunction(elem.initContainer)) { + elem.initContainer(this); + } return this; }, - /** - * Returns path to components' template. - * @returns {String} - */ - getTemplate: function () { - return this.template; - }, - /** * Updates property specified in uniqueNs * if components' unique property is set to 'true'. * - * @returns {Component} Chainable. + * @returns {Collection} Chainable. */ setUnique: function () { var property = this.uniqueProp; @@ -176,7 +169,7 @@ define([ * * @param {Array} items - New regions' data. * @param {String} name - Name of the region. - * @returns {Component} Chainable. + * @returns {Collection} Chainable. */ updateRegion: function (items, name) { if (name) { @@ -192,7 +185,7 @@ define([ * * @param {(String|Array)} elems - Name of the component to insert. * @param {Number} [position=-1] - Position at which to insert elements. - * @returns {Component} Chainable. + * @returns {Collection} Chainable. */ insertChild: function (elems, position) { var container = this._elems, @@ -228,7 +221,7 @@ define([ * Removes specified element from the 'elems' array. * * @param {Object} elem - Element to be removed. - * @returns {Component} Chainable. + * @returns {Collection} Chainable. */ removeChild: function (elem) { utils.remove(this._elems, elem); @@ -249,7 +242,7 @@ define([ * Removes events listeners. * @private * - * @returns {Component} Chainable. + * @returns {Collection} Chainable. */ _dropHandlers: function () { this.off(); @@ -264,7 +257,7 @@ define([ * calls 'destroy' method on all of its' children. * @private * - * @returns {Component} Chainable. + * @returns {Collection} Chainable. */ _clearRefs: function () { registry.remove(this.name); @@ -300,7 +293,7 @@ define([ * Performs elemets grouping by theirs 'displayArea' property. * @private * - * @returns {Component} Chainable. + * @returns {Collection} Chainable. */ _update: function () { var _elems = compact(this._elems), diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/model/model.js b/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js similarity index 75% rename from app/code/Magento/Ui/view/base/web/js/lib/core/model/model.js rename to app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js index fd196863cc7..93371c5145b 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/model/model.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js @@ -10,11 +10,11 @@ define([ 'uiEvents', 'uiClass', './links', - './storage' + '../storage' ], function (ko, _, utils, registry, Events, Class, links) { 'use strict'; - var Model; + var Module; /** * Creates observable property using knockouts' @@ -60,16 +60,17 @@ define([ } } - Model = { + Module = _.extend({ defaults: { + template: '', storageConfig: { provider: 'localStorage', namespace: '${ $.name }', path: '${ $.storageConfig.provider }:${ $.storageConfig.namespace }' }, maps: { - exports: {}, - imports: {} + imports: {}, + exports: {} }, modules: { storage: '${ $.storageConfig.provider }' @@ -79,13 +80,13 @@ define([ /** * Initializes model instance. * - * @returns {Model} Chainable. + * @returns {Element} Chainable. */ initialize: function () { this._super() .initObservable() .initModules() - .setListeners(this.listens) + .initStatefull() .initLinks(); return this; @@ -94,17 +95,37 @@ define([ /** * Initializes observable properties. * - * @returns {Model} Chainable. + * @returns {Element} Chainable. */ initObservable: function () { return this; }, + /** + * Initializes statefull properties, + * based on the keys of 'statefull' object. + * + * @returns {Element} Chainable. + */ + initStatefull: function () { + var statefull = this.statefull || {}; + + _.each(statefull, function (path, key) { + if (!path) { + return; + } + + this.setStatefull(key, path); + }, this); + + return this; + }, + /** * Parses 'modules' object and creates * async wrappers on specified components. * - * @returns {Component} Chainable. + * @returns {Element} Chainable. */ initModules: function () { var modules = this.modules || {}; @@ -119,10 +140,11 @@ define([ /** * Initializes links between properties. * - * @returns {Component} Chainbale. + * @returns {Element} Chainbale. */ initLinks: function () { - this.setLinks(this.links, 'imports') + this.setListeners(this.listens) + .setLinks(this.links, 'imports') .setLinks(this.links, 'exports'); _.each({ @@ -133,6 +155,35 @@ define([ return this; }, + /** + * Makes specified property to be statefull. + * + * @param {String} key - Name of the property + * that will be stored. + * @param {String} [path=key] - Path to the property in storage. + * @returns {Element} Chainable. + */ + setStatefull: function (key, path) { + var link = {}; + + path = !_.isString(path) || !path ? key : path; + link[key] = this.storageConfig.path + '.' + path; + + this.setLinks(link, 'imports') + .setLinks(link, 'exports'); + + return this; + }, + + /** + * Returns path to elements' template. + * + * @returns {String} + */ + getTemplate: function () { + return this.template; + }, + /** * Returns value of the nested property. * @@ -149,10 +200,10 @@ define([ * * @param {String} path - Path to property. * @param {*} value - New value of the property. - * @returns {Model} Chainable. + * @returns {Element} Chainable. */ set: function (path, value) { - var data = utils.nested(this, path), + var data = this.get(path), diffs; if (!_.isFunction(data)) { @@ -172,7 +223,7 @@ define([ * Removes nested property from the object. * * @param {String} path - Path to the property. - * @returns {Model} Chainable. + * @returns {Element} Chainable. */ remove: function (path) { var data, @@ -206,7 +257,7 @@ define([ * @param {Boolean} [useAccessors=false] - Whether to create an * observable function or to use property accesessors. * @param {(Object|String|Array)} properties - List of observable properties. - * @returns {Model} Chainable. + * @returns {Element} Chainable. * * @example Sample declaration and equivalent knockout methods. * this.key = 'value'; @@ -256,7 +307,7 @@ define([ * with a predefined 'useAccessors' flag. * * @param {(String|Array|Object)} properties - List of observable properties. - * @returns {Model} Chainable. + * @returns {Element} Chainable. */ track: function (properties) { this.observe(true, properties); @@ -268,7 +319,7 @@ define([ * Invokes subscribers for the provided changes. * * @param {Object} diffs - Object with changes descriptions. - * @returns {Model} Chainable. + * @returns {Element} Chainable. */ _notifyChanges: function (diffs) { diffs.changes.forEach(function (change) { @@ -303,24 +354,47 @@ define([ * * @param {String} property * @param {*} [data=this[property]] - * @returns {Model} Chainable. + * @returns {Element} Chainable. */ store: function (property, data) { var ns = this.storageConfig.namespace, path = utils.fullPath(ns, property); - data = data || this.get(property); + if (arguments.length < 2) { + data = this.get(property); + } this.storage('set', path, data); return this; }, + /** + * Extracts specified property from storage. + * + * @param {String} [property] - Name of the property + * to be extracted. If not specified then all of the + * stored will be returned. + * @returns {*} + */ + getStored: function (property) { + var ns = this.storageConfig.namespace, + path = utils.fullPath(ns, property), + storage = this.storage(), + data; + + if (storage) { + data = storage.get(path); + } + + return data; + }, + /** * Removes stored property. * * @param {String} property - Property to be removed from storage. - * @returns {Model} Chainable. + * @returns {Element} Chainable. */ removeStored: function (property) { var ns = this.storageConfig.namespace, @@ -330,9 +404,7 @@ define([ return this; } - }; - - _.extend(Model, Events, links); + }, Events, links); - return Class.extend(Model); + return Class.extend(Module); }); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/model/links.js b/app/code/Magento/Ui/view/base/web/js/lib/core/element/links.js similarity index 100% rename from app/code/Magento/Ui/view/base/web/js/lib/core/model/links.js rename to app/code/Magento/Ui/view/base/web/js/lib/core/element/links.js diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/events.js b/app/code/Magento/Ui/view/base/web/js/lib/core/events.js index 42e06915c37..f5e08657552 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/events.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/events.js @@ -140,8 +140,9 @@ define([ }, /** - * Triggers event and executes all attached callbacks - * @param {String} name + * Triggers event and executes all attached callbacks. + * + * @param {String} name - Name of the event to be triggered. * @returns {Boolean} */ trigger: function (name) { diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/model/storage.js b/app/code/Magento/Ui/view/base/web/js/lib/core/storage.js similarity index 100% rename from app/code/Magento/Ui/view/base/web/js/lib/core/model/storage.js rename to app/code/Magento/Ui/view/base/web/js/lib/core/storage.js diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/initialize.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/initialize.js index 3ca5a53bbb4..7a4dbb25680 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/ko/initialize.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/initialize.js @@ -23,8 +23,7 @@ define([ './bind/collapsible', './bind/autoselect', './extender/observable_array', - './extender/bound-nodes', - './extender/observable_array' + './extender/bound-nodes' ], function (ko, templateEngine) { 'use strict'; diff --git a/app/code/Magento/Ui/view/base/web/js/lib/ko/template/engine.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/template/engine.js index 794a62b4d25..ad56e701e37 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/ko/template/engine.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/template/engine.js @@ -5,7 +5,7 @@ define([ 'ko', './observable_source', - '../../renderer/renderer' + './renderer' ], function (ko, Source, Renderer) { 'use strict'; diff --git a/app/code/Magento/Ui/view/base/web/js/lib/loader.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/template/loader.js similarity index 99% rename from app/code/Magento/Ui/view/base/web/js/lib/loader.js rename to app/code/Magento/Ui/view/base/web/js/lib/ko/template/loader.js index 03d97b399d7..da06db38124 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/loader.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/template/loader.js @@ -46,6 +46,7 @@ define([ } return { + /** * Loops over arguments and loads template for each. * @return {Deferred} - promise of templates to be loaded diff --git a/app/code/Magento/Ui/view/base/web/js/lib/renderer/renderer.js b/app/code/Magento/Ui/view/base/web/js/lib/ko/template/renderer.js similarity index 99% rename from app/code/Magento/Ui/view/base/web/js/lib/renderer/renderer.js rename to app/code/Magento/Ui/view/base/web/js/lib/ko/template/renderer.js index 4445e7f3936..55bf6399847 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/renderer/renderer.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/ko/template/renderer.js @@ -3,7 +3,7 @@ * See COPYING.txt for license details. */ define([ - '../loader', + './loader', 'jquery', 'underscore' ], function (loader, $, _) { diff --git a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/component/links.test.js b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/component/links.test.js index edc08dc3de7..90e17a46a65 100644 --- a/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/component/links.test.js +++ b/dev/tests/js/jasmine/tests/app/code/Magento/Ui/base/js/lib/component/links.test.js @@ -3,11 +3,11 @@ * See COPYING.txt for license details. */ define([ - 'Magento_Ui/js/lib/core/model/links' + 'Magento_Ui/js/lib/core/element/links' ], function (links) { 'use strict'; - describe('Magento_Ui/js/lib/core/model/links', function () { + describe('Magento_Ui/js/lib/core/element/links', function () { var linksObj, returnedValue; diff --git a/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt b/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt index b25abe1110b..117b383ade0 100644 --- a/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt +++ b/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt @@ -400,8 +400,7 @@ app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/storage.js app/code/Magento/Ui/view/base/web/js/grid/export.js app/code/Magento/Ui/view/base/web/js/grid/resize.js app/code/Magento/Ui/view/base/web/js/grid/sticky/sticky.js -app/code/Magento/Ui/view/base/web/js/lib/core/model/links.js -app/code/Magento/Ui/view/base/web/js/lib/events.js +app/code/Magento/Ui/view/base/web/js/lib/core/element/links.js app/code/Magento/Ui/view/base/web/js/lib/key-codes.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/datepicker.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/fadeVisible.js @@ -410,7 +409,6 @@ app/code/Magento/Ui/view/base/web/js/lib/ko/bind/keyboard.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/mage-init.js app/code/Magento/Ui/view/base/web/js/lib/ko/bind/optgroup.js app/code/Magento/Ui/view/base/web/js/lib/ko/extender/observable_array.js -app/code/Magento/Ui/view/base/web/js/lib/loader.js app/code/Magento/Ui/view/base/web/js/lib/spinner.js app/code/Magento/Ui/view/base/web/js/lib/step-wizard.js app/code/Magento/Ui/view/base/web/js/lib/validation/rules.js -- GitLab From ce8ba925c09513d00c48f080c77d61a5b2aace97 Mon Sep 17 00:00:00 2001 From: Maxim Medinskiy <mmedinskiy@ebay.com> Date: Fri, 2 Oct 2015 13:01:44 +0300 Subject: [PATCH 223/420] MAGETWO-42838: Combine filter and column components definition --- app/code/Magento/Catalog/Ui/Component/Listing/Columns.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/code/Magento/Catalog/Ui/Component/Listing/Columns.php b/app/code/Magento/Catalog/Ui/Component/Listing/Columns.php index 01c0cc07296..04e58709d40 100644 --- a/app/code/Magento/Catalog/Ui/Component/Listing/Columns.php +++ b/app/code/Magento/Catalog/Ui/Component/Listing/Columns.php @@ -52,6 +52,7 @@ class Columns extends \Magento\Ui\Component\Listing\Columns { $columnSortOrder = self::DEFAULT_COLUMNS_MAX_ORDER; foreach ($this->attributeRepository->getList() as $attribute) { + $config = []; if (!isset($this->components[$attribute->getAttributeCode()])) { $config['sortOrder'] = ++$columnSortOrder; if ($attribute->getIsFilterableInGrid()) { -- GitLab From 8fe8a80c73d9abd7abadd984a5243176eac6470d Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Fri, 2 Oct 2015 13:14:16 +0300 Subject: [PATCH 224/420] JS-245: Thumbnail change moves active thumbnail out of view --- lib/web/fotorama/fotorama.js | 105 +++++++++++++++++++++-------------- 1 file changed, 62 insertions(+), 43 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index ea23322ad9e..24872dc0137 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -866,6 +866,7 @@ fotoramaVersion = '4.6.4'; } return encodedFuncName; } + var $WINDOW = $(window), $DOCUMENT = $(document), $HTML, @@ -1028,6 +1029,7 @@ fotoramaVersion = '4.6.4'; home: false, end: false }; + function noop() { } @@ -1037,7 +1039,7 @@ fotoramaVersion = '4.6.4'; function readTransform(css, dir) { return css.match(/ma/) && css.match(/-?\d+(?!d)/g)[css.match(/3d/) ? - (dir === 'vertical' ? 13: 12) : (dir === 'vertical' ? 5 : 4) + (dir === 'vertical' ? 13 : 12) : (dir === 'vertical' ? 5 : 4) ] } @@ -1045,7 +1047,7 @@ fotoramaVersion = '4.6.4'; if (CSS3) { return +readTransform($el.css('transform'), dir); } else { - return +$el.css(dir === 'vertical' ? 'top': 'left').replace('px', ''); + return +$el.css(dir === 'vertical' ? 'top' : 'left').replace('px', ''); } } @@ -1054,7 +1056,7 @@ fotoramaVersion = '4.6.4'; if (CSS3) { - switch (direction){ + switch (direction) { case 'vertical': obj.transform = 'translate3d(0, ' + (pos) + 'px,0)'; break; @@ -1240,7 +1242,10 @@ fotoramaVersion = '4.6.4'; dataType: 'jsonp', success: function (json) { dataFrame.thumbsReady = true; - updateData(data, {img: json[0].thumbnail_large, thumb: json[0].thumbnail_small}, dataFrame.i, fotorama); + updateData(data, { + img: json[0].thumbnail_large, + thumb: json[0].thumbnail_small + }, dataFrame.i, fotorama); } }); } else { @@ -1532,7 +1537,7 @@ fotoramaVersion = '4.6.4'; return position; } - function validateSlidePos(opt, navShaftTouchTail, guessIndex, offsetNav, $guessNavFrame, $navWrap, dir){ + function validateSlidePos(opt, navShaftTouchTail, guessIndex, offsetNav, $guessNavFrame, $navWrap, dir) { var position, size, wrapSize; @@ -1656,6 +1661,7 @@ fotoramaVersion = '4.6.4'; }; }(UTIL || {}, jQuery)); + function slide($el, options) { var elData = $el.data(), elPos = Math.round(options.pos), @@ -1728,6 +1734,7 @@ fotoramaVersion = '4.6.4'; (_$el1 && crossfadeFLAG) || _$el2 || onEndFn(); } + var lastEvent, moveEventType, preventEvent, @@ -1933,8 +1940,8 @@ fotoramaVersion = '4.6.4'; min = tail.min; max = tail.max; snap = tail.snap, - dir = tail.direction || 'horizontal', - $el.navdir = dir; + dir = tail.direction || 'horizontal', + $el.navdir = dir; slowFLAG = e.altKey; tracked = moved = false; @@ -2056,7 +2063,7 @@ fotoramaVersion = '4.6.4'; newPos: newPos, overPos: overPos, time: time, - dir:dir + dir: dir })); } @@ -2068,6 +2075,7 @@ fotoramaVersion = '4.6.4'; return tail; } + function wheel($el, options) { var el = $el[0], lockFLAG, @@ -2112,6 +2120,7 @@ fotoramaVersion = '4.6.4'; return tail; } + jQuery.Fotorama = function ($fotorama, opts) { $HTML = $('html'); $BODY = $('body'); @@ -2668,10 +2677,10 @@ fotoramaVersion = '4.6.4'; function loaded() { $.Fotorama.measures[src] = imgData.measures = $.Fotorama.measures[src] || { - width: img.width, - height: img.height, - ratio: img.width / img.height - }; + width: img.width, + height: img.height, + ratio: img.width / img.height + }; setMeasures(imgData.measures.width, imgData.measures.height, imgData.measures.ratio, index); @@ -2685,7 +2694,7 @@ fotoramaVersion = '4.6.4'; } fit($img, ( - $.isFunction(specialMeasures) ? specialMeasures() : specialMeasures) || measures); + $.isFunction(specialMeasures) ? specialMeasures() : specialMeasures) || measures); $.Fotorama.cache[src] = frameData.state = 'loaded'; @@ -2988,13 +2997,13 @@ fotoramaVersion = '4.6.4'; var isLeftDisable = false, isRightDisable = false; if (opts.navtype === 'thumbs' && !opts.loop) { - (activeIndex == 0) ? isLeftDisable = true: isLeftDisable = false; - (activeIndex == opts.data.length - 1) ? isRightDisable = true: isRightDisable = false; + (activeIndex == 0) ? isLeftDisable = true : isLeftDisable = false; + (activeIndex == opts.data.length - 1) ? isRightDisable = true : isRightDisable = false; } if (opts.navtype === 'slides') { var pos = readPosition($navShaft, opts.navdir); - pos >= navShaftTouchTail.max ? isLeftDisable = true: isLeftDisable = false; - pos <= navShaftTouchTail.min ? isRightDisable = true: isRightDisable = false; + pos >= navShaftTouchTail.max ? isLeftDisable = true : isLeftDisable = false; + pos <= navShaftTouchTail.min ? isRightDisable = true : isRightDisable = false; } $thumbArrLeft .toggleClass(arrDisabledClass, isLeftDisable) @@ -3156,7 +3165,7 @@ fotoramaVersion = '4.6.4'; stageFramePosition(activeIndexes); setStageShaftMinmaxAndSnap(); setNavShaftMinMax(); - addEnterUp($stageShaft[0], function() { + addEnterUp($stageShaft[0], function () { if (!$fotorama.hasClass(fullscreenClass)) { that.requestFullScreen(); $(fullscreenIcon).trigger('focus'); @@ -3756,7 +3765,11 @@ fotoramaVersion = '4.6.4'; toggleControlsClass(); } else if (opts.click) { - clickToShow({index: e.shiftKey || getDirectionSign(getDirection(e._x)), slow: e.altKey, user: true}); + clickToShow({ + index: e.shiftKey || getDirectionSign(getDirection(e._x)), + slow: e.altKey, + user: true + }); } } } @@ -3880,7 +3893,12 @@ fotoramaVersion = '4.6.4'; function onNavFrameClick(e) { var index = $(this).data().eq; - clickToShow({index: index, slow: e.altKey, user: true, coo: e._x - $nav.offset().left}); + + if (opts.navtype === 'thumbs') { + clickToShow({index: index, slow: e.altKey, user: true, coo: e._x - $nav.offset().left}); + } else { + clickToShow({index: index, slow: e.altKey, user: true}); + } } function onArrClick(e) { @@ -3935,7 +3953,7 @@ fotoramaVersion = '4.6.4'; addFocusOnControls(this); }); - addEnterUp(fullscreenIcon, function() { + addEnterUp(fullscreenIcon, function () { that.toggleFullScreen(); $(fullscreenIcon).trigger('focus'); }); @@ -4049,49 +4067,50 @@ fotoramaVersion = '4.6.4'; $.Fotorama.instances.splice(instance.index, 1); calculateIndexes(); } + $.Fotorama.cache = {}; $.Fotorama.measures = {}; $ = $ || {}; $.Fotorama = $.Fotorama || {}; $.Fotorama.jst = $.Fotorama.jst || {}; - $.Fotorama.jst.dots = function(v) { + $.Fotorama.jst.dots = function (v) { var __t, __p = '', __e = _.escape; __p += '<div class="fotorama__nav__frame fotorama__nav__frame--dot" tabindex="0" role="button" data-gallery-role="nav-frame" data-nav-type="thumb" aria-label>\r\n <div class="fotorama__dot"></div>\r\n</div>'; return __p }; - $.Fotorama.jst.frameCaption = function(v) { + $.Fotorama.jst.frameCaption = function (v) { var __t, __p = '', __e = _.escape; __p += '<div class="fotorama__caption" aria-hidden="true">\r\n <div class="fotorama__caption__wrap" id="' + - ((__t = ( v.labelledby )) == null ? '' : __t) + - '">' + - ((__t = ( v.caption )) == null ? '' : __t) + - '</div>\r\n</div>\r\n'; + ((__t = ( v.labelledby )) == null ? '' : __t) + + '">' + + ((__t = ( v.caption )) == null ? '' : __t) + + '</div>\r\n</div>\r\n'; return __p }; - $.Fotorama.jst.style = function(v) { + $.Fotorama.jst.style = function (v) { var __t, __p = '', __e = _.escape; __p += '.fotorama' + - ((__t = ( v.s )) == null ? '' : __t) + - ' .fotorama__nav--thumbs .fotorama__nav__frame{\r\npadding:' + - ((__t = ( v.m )) == null ? '' : __t) + - 'px;\r\nheight:' + - ((__t = ( v.h )) == null ? '' : __t) + - 'px}\r\n.fotorama' + - ((__t = ( v.s )) == null ? '' : __t) + - ' .fotorama__thumb-border{\r\nheight:' + - ((__t = ( v.h )) == null ? '' : __t) + - 'px;\r\nborder-width:' + - ((__t = ( v.b )) == null ? '' : __t) + - 'px;\r\nmargin-top:' + - ((__t = ( v.m )) == null ? '' : __t) + - 'px}'; + ((__t = ( v.s )) == null ? '' : __t) + + ' .fotorama__nav--thumbs .fotorama__nav__frame{\r\npadding:' + + ((__t = ( v.m )) == null ? '' : __t) + + 'px;\r\nheight:' + + ((__t = ( v.h )) == null ? '' : __t) + + 'px}\r\n.fotorama' + + ((__t = ( v.s )) == null ? '' : __t) + + ' .fotorama__thumb-border{\r\nheight:' + + ((__t = ( v.h )) == null ? '' : __t) + + 'px;\r\nborder-width:' + + ((__t = ( v.b )) == null ? '' : __t) + + 'px;\r\nmargin-top:' + + ((__t = ( v.m )) == null ? '' : __t) + + 'px}'; return __p }; - $.Fotorama.jst.thumb = function(v) { + $.Fotorama.jst.thumb = function (v) { var __t, __p = '', __e = _.escape; __p += '<div class="fotorama__nav__frame fotorama__nav__frame--thumb" tabindex="0" role="button" data-gallery-role="nav-frame" data-nav-type="thumb" aria-label>\r\n <div class="fotorama__thumb">\r\n </div>\r\n</div>'; return __p -- GitLab From 20e9f38a978b11caa682318f8eba1851a08e13b6 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Fri, 2 Oct 2015 14:04:53 +0300 Subject: [PATCH 225/420] MAGETWO-42607: MAP popup isn't displayed for Tier Prices on "view Product" Storefront page --- .../Catalog/view/base/web/js/tier-price.js | 60 ----- .../Magento/Msrp/view/base/web/js/msrp.js | 238 ++++-------------- .../Magento_Msrp/web/css/source/_module.less | 2 + .../Magento_Msrp/web/css/source/_module.less | 2 + lib/web/css/source/lib/variables/_popups.less | 2 +- 5 files changed, 53 insertions(+), 251 deletions(-) delete mode 100644 app/code/Magento/Catalog/view/base/web/js/tier-price.js diff --git a/app/code/Magento/Catalog/view/base/web/js/tier-price.js b/app/code/Magento/Catalog/view/base/web/js/tier-price.js deleted file mode 100644 index 95622a56f6c..00000000000 --- a/app/code/Magento/Catalog/view/base/web/js/tier-price.js +++ /dev/null @@ -1,60 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -/*jshint browser:true jquery:true*/ -define([ - "jquery", - "jquery/ui" -], function($){ - "use strict"; - - $.widget('mage.tierPrice', { - options: { - popupHeading: '#map-popup-heading', - productForm: '#product_addtocart_form', - popupPrice: '#map-popup-price', - popupMsrp: '#map-popup-msrp', - popup: '#map-popup', - popupContent: '#map-popup-content', - popupText: '#map-popup-text', - popupOnlyText: 'map-popup-only-text', - popupTextWhatThis: '#map-popup-text-what-this', - popupCartButtonId: '#map-popup-button' - }, - - _create: function() { - this.element.on('click', '[data-tier-price]', $.proxy(this._showTierPrice, this)); - }, - - /** - * Show tier price popup on gesture - * @private - * @param e - element got the clicked on - * @return {Boolean} - */ - _showTierPrice: function(e) { - var data = $(e.target).data('tier-price'); - $(this.options.popupCartButtonId).off('click'); - $(this.options.popupCartButtonId).on('click', $.proxy(function() { - this.element.find(this.options.inputQty).val(data.qty); - this.element.find(this.options.productForm).submit(); - }, this)); - $(this.options.popupHeading).text(data.name); - $(this.options.popupPrice).html($(data.price)).find('[id^="product-price-"]').attr('id', function() { - // change price element id, so price option won't update the tier price - return 'tier' + $(this).attr('id'); - }); - $(this.options.popupMsrp).html(data.msrp); - var width = $(this.options.popup).width(); - var offsetX = e.pageX - (width / 2) + "px"; - $(this.options.popup).css({left: offsetX, top: e.pageY}).addClass('active').show(); - $(this.options.popupContent).show(); - $(this.options.popupText).addClass(this.options.popupOnlyText).show(); - $(this.options.popupTextWhatThis).hide(); - return false; - } - }); - - return $.mage.tierPrice; -}); \ No newline at end of file diff --git a/app/code/Magento/Msrp/view/base/web/js/msrp.js b/app/code/Magento/Msrp/view/base/web/js/msrp.js index 42603c231fb..11fe0848ce1 100644 --- a/app/code/Magento/Msrp/view/base/web/js/msrp.js +++ b/app/code/Magento/Msrp/view/base/web/js/msrp.js @@ -22,6 +22,9 @@ define([ // Selectors cartForm: '.form.map.checkout', + msrpLabelId: '#map-popup-msrp', + priceLabelId: '#map-popup-price', + popUpAttr: '[data-role=msrp-popup-template]', cartButtonId: '', // better to be cartButton popupId: '', // better to be popup realPrice: '', @@ -36,7 +39,7 @@ define([ }, openDropDown: null, - triggerClass:'dropdown-active', + triggerClass: 'dropdown-active', popUpOptions: { appendTo: 'body', @@ -54,229 +57,84 @@ define([ shadowHinter: 'popup popup-pointer' }, popupOpened: false, + /** * Creates widget instance * @private */ _create: function () { - this.popupDOM = $('[data-role=msrp-popup-template]')[0]; + var tierOptions; + + this.popupDOM = $(this.options.popUpAttr)[0]; this.infoPopupDOM = $('[data-role=msrp-info-template]')[0]; - if(this.options.popupId){ + if (this.options.popupId) { this.$popup = $(this.popupDOM.innerText).appendTo('body'); + $(this.options.popupId).on('click', function (e) { + this.popUpOptions.position.of = $(e.target); + this.$popup.find(this.options.msrpLabelId).html(this.options.msrpPrice); + this.$popup.find(this.options.priceLabelId).html(this.options.realPrice); + this.$popup.dropdownDialog(this.popUpOptions).dropdownDialog('open'); - - //.on('dropdowndialogclose', function () { - // this.$popup.removeClass(this.triggerClass); - //}.bind(this)) - //.on('dropdowndialogopen', function () { - // this.$popup.addClass(this.triggerClass); - //}.bind(this)).dropdownDialog('open'); - - $(this.options.popupId).on('click', function(e){ - this.popUpOptions.position.of = $(e.target); - this.$popup.dropdownDialog(this.popUpOptions).dropdownDialog('open'); - this._toggle(this.$popup); + this.$popup.find('button').on('click', function () { + if (this.options.addToCartButton) { + $(this.options.addToCartButton).click(); + } + }.bind(this)); + this._toggle(this.$popup); }.bind(this)); } - if(this.options.helpLinkId) { + if (this.options.helpLinkId) { this.$infoPopup = $(this.infoPopupDOM.innerText).appendTo('body'); - - $(this.options.helpLinkId).on('click', function(e){ + $(this.options.helpLinkId).on('click', function (e) { this.popUpOptions.position.of = $(e.target); this.$infoPopup.dropdownDialog(this.popUpOptions).dropdownDialog('open'); this._toggle(this.$infoPopup); }.bind(this)); } - if(this.options.attr){ - this.popupDOM = $('[data-role=msrp-popup-template]')[0]; + if (this.options.attr) { + this.popupDOM = $(this.options.popUpAttr)[0]; this.$popup = $(this.popupDOM.innerText).appendTo('body'); - //$(this.options.attr).on('mousedown', function(e){ - // this.drawPopup(e); - //}.bind(this)); - this.popUpOptions.position.of = $(this.options.helpLinkId); - - $(this.options.attr).on('click', function(e){ + $(this.options.attr).on('click', function (e) { this.popUpOptions.position.of = $(e.target); + tierOptions = JSON.parse($(e.target).attr('data-tier-price')); + this.$popup.find(this.options.msrpLabelId).html(tierOptions.msrp); + this.$popup.find(this.options.priceLabelId).html(tierOptions.price); + this.$popup.find('button').on('click', function (e) { + e.preventDefault(); + this.$popup.find('form').attr('action', tierOptions.addToCartUrl).submit(); + }.bind(this)); this.$popup.dropdownDialog(this.popUpOptions).dropdownDialog('open'); this._toggle(this.$popup); - }.bind(this)); } - //console.log(popup.innerHTML); - //console.log(infoPopup.innerHTML); - //document.body.innerHTML += data.innerHTML; - - //$(this.options.cartButtonId).on('click', this._addToCartSubmit.bind(this)); - // - //$(this.options.popupId).on('click', function (event) { - // var dialog; - // event.preventDefault(); - // - // if (this.options.submitUrl) { - // location.href = this.options.submitUrl; - // } else { - // $(this.options.popupCartButtonId) - // .off('click') - // .on('click', this._addToCartSubmit.bind(this)); - // $('#map-popup-heading-price').text(this.options.productName); - // $('#map-popup-price').html($(this.options.realPrice).html().trim()); - // $('#map-popup-msrp > span.price').html(this.options.msrpPrice); - // - // this.element.trigger('reloadPrice'); - // - // dialog = $('#map-popup-click-for-price'); - // this._popupDialog(dialog, this.options.popupId); - // - // if (this.options.addToCartUrl) { - // $(this.options.cartForm).attr('action', this.options.addToCartUrl); - // } - // - // if (!this.options.showAddToCart) { - // $('#product_addtocart_form_from_popup').hide(); - // } - // - // return false; - // } - //}.bind(this)); - // - //$(this.options.helpLinkId).on('click', function () { - // $('#map-popup-heading-what-this').text(this.options.productName); - // this._popupDialog($('#map-popup-what-this'), this.options.helpLinkId); - // - // return false; - //}.bind(this)); }, - _toggle: function($elem){ - $(document).on('mouseup', function(e){ - - if (!$elem.is(e.target) && $elem.has(e.target).length === 0) { - $elem.dropdownDialog('close'); - $(document).off('mouseup'); - } - }.bind(this)); - }, - initDropDown: function(){ - this.popUpOptions.position.of = $(this.options.popupId); - this.dropdown = this.$popup.dropdownDialog(this.popUpOptions) - .on('dropdowndialogclose', function () { - this.$popup.removeClass(this.triggerClass); - }.bind(this)) - .on('dropdowndialogopen', function () { - this.$popup.addClass(this.triggerClass); - }.bind(this)); - }, - drawPopup: function(e){ - //this.popUpOptions.position.of = $(e.target); - this.dropdown.dropdownDialog('open'); - }, - - drawInfo: function(e){ - this.popUpOptions.position.of = $(e.target); - openDropDown = this.$infoPopup.dropdownDialog(this.popUpOptions) - - .on('dropdowndialogclose', function () { - - this.$infoPopup.removeClass(this.triggerClass); - }.bind(this)) - .on('dropdowndialogopen', function () { - this.$infoPopup.addClass(this.triggerClass); - }.bind(this)) - .dropdownDialog('open'); - - }, /** - * Handler for dialog popup - * @param {jQuery} elementTarget - * @param {jQuery} elementTrigger + * + * @param $elem * @private */ - _popupDialog: function (elementTarget, elementTrigger) { - var target = $(elementTarget), - trigger = $(elementTrigger), - counter = 0, - triggerClass = 'dropdown-active', - options; - - options = { - appendTo: 'body', - dialogContentClass: 'active', - closeOnMouseLeave: false, - autoPosition: true, - 'dialogClass': 'popup map-popup-wrapper', - position: { - my: 'left top', - collision: 'fit none', - at: 'left bottom', - within: 'body', - of: trigger - }, - shadowHinter: 'popup popup-pointer' - }; - options = _.extend(options, this.options.dialog); - - if (openDropDown && openDropDown.is(':data(mage-dropdownDialog)')) { - openDropDown.dropdownDialog('close'); - } - - if (this.options.singleOpenDropDown) { - this.openDropDown = openDropDown; - } - openDropDown = target - .dropdownDialog(options) - .off('dropdowndialogclose') - .on('dropdowndialogclose', function () { - if (!counter) { - openDropDown = null; - $(window).off('resize'); - } - trigger.removeClass(triggerClass); - }) - .on('dropdowndialogopen', function () { - trigger.addClass(triggerClass); - }) - .dropdownDialog('open'); - - $(window) - .resize(_.debounce(function () { - if (openDropDown) { - counter--; - openDropDown.dropdownDialog('open'); - } - }, this.options.dialogDelay)) - .resize(_.debounce(function () { - if (openDropDown) { - counter++; - openDropDown.dropdownDialog('close'); - } - }, this.options.dialogDelay, true)); + _toggle: function ($elem) { + $(document).on('mouseup', function (e) { + if (!$elem.is(e.target) && $elem.has(e.target).length === 0) { + this.closePopup($elem); + } + }.bind(this)); + $(window).on('resize', function () { + this.closePopup($elem); + }.bind(this)) }, - /** - * Handler for addToCart action - * @private + * + * @param $elem */ - _addToCartSubmit: function () { - //this.element.trigger('addToCart', this.element); - //if (this.element.data('stop-processing')) { - // return false; - //} - // - //if (this.options.addToCartButton) { - // $(this.options.addToCartButton).click(); - // - // return; - //} - // - //if (this.options.addToCartUrl) { - // $('.mage-dropdown-dialog > .ui-dialog-content').dropdownDialog('close'); - //} - //$(this.options.cartForm).submit(); - + closePopup: function ($elem) { + $elem.dropdownDialog('close'); + $(document).off('mouseup'); } }); diff --git a/app/design/frontend/Magento/blank/Magento_Msrp/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_Msrp/web/css/source/_module.less index ff6f64201fa..a264096d77b 100644 --- a/app/design/frontend/Magento/blank/Magento_Msrp/web/css/source/_module.less +++ b/app/design/frontend/Magento/blank/Magento_Msrp/web/css/source/_module.less @@ -28,6 +28,8 @@ @_popup-position-right: false, @_popup-position: absolute ); + box-sizing: border-box; + word-wrap: break-word; .map-info-price { &:extend(.abs-add-clearfix all); margin-bottom: 15px; diff --git a/app/design/frontend/Magento/luma/Magento_Msrp/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Msrp/web/css/source/_module.less index bdc3e39e975..fad67e2cd7c 100644 --- a/app/design/frontend/Magento/luma/Magento_Msrp/web/css/source/_module.less +++ b/app/design/frontend/Magento/luma/Magento_Msrp/web/css/source/_module.less @@ -28,6 +28,8 @@ @_popup-position-right: false, @_popup-position: absolute ); + box-sizing: border-box; + word-wrap: break-word; .map-info-price { &:extend(.abs-add-clearfix all); margin: 0 0 @indent__base; diff --git a/lib/web/css/source/lib/variables/_popups.less b/lib/web/css/source/lib/variables/_popups.less index bd574bd0930..7769ae923a9 100644 --- a/lib/web/css/source/lib/variables/_popups.less +++ b/lib/web/css/source/lib/variables/_popups.less @@ -7,7 +7,7 @@ // Popup variables // _____________________________________________ -@popup__width: auto; +@popup__width: 100%; @popup__height: auto; @popup__padding: 22px; @popup__background: @color-white; -- GitLab From 25bd83b7b845db52db6675382d357b1b1b395182 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Fri, 2 Oct 2015 14:05:48 +0300 Subject: [PATCH 226/420] MAGETWO-42607: MAP popup isn't displayed for Tier Prices on "view Product" Storefront page --- app/code/Magento/Msrp/view/base/web/js/msrp.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Msrp/view/base/web/js/msrp.js b/app/code/Magento/Msrp/view/base/web/js/msrp.js index 11fe0848ce1..06bf5bda508 100644 --- a/app/code/Magento/Msrp/view/base/web/js/msrp.js +++ b/app/code/Magento/Msrp/view/base/web/js/msrp.js @@ -11,7 +11,6 @@ define([ ], function ($, _) { 'use strict'; - var openDropDown = null; $.widget('mage.addToCart', { options: { showAddToCart: true, @@ -128,6 +127,7 @@ define([ this.closePopup($elem); }.bind(this)) }, + /** * * @param $elem -- GitLab From d3afdfc1089040ad020fc7898ffd2554f94179d3 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Fri, 2 Oct 2015 14:41:39 +0300 Subject: [PATCH 227/420] MAGETWO-42762: Improve performance of table rendering - Fix block-loader issue - Fix namespace for export component radio buttons - Add comments --- ...onfigurable_associated_product_listing.xml | 2 +- .../Ui/view/base/web/js/block-loader.js | 2 +- .../js/grid/controls/bookmarks/bookmarks.js | 10 +++- .../view/base/web/js/lib/core/collection.js | 57 +++++++++---------- .../base/web/js/lib/core/element/element.js | 42 +++++++++++++- .../base/web/templates/grid/exportButton.html | 6 +- 6 files changed, 79 insertions(+), 40 deletions(-) diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml index 9c2e8d868fd..6b66ea5031f 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/ui_component/configurable_associated_product_listing.xml @@ -101,7 +101,7 @@ <column name="entity_id"> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> - <item name="filter" xsi:type="string">text</item> + <item name="filter" xsi:type="string">textRange</item> <item name="sorting" xsi:type="string">asc</item> <item name="label" xsi:type="string" translate="true">ID</item> <item name="sortOrder" xsi:type="number">10</item> diff --git a/app/code/Magento/Ui/view/base/web/js/block-loader.js b/app/code/Magento/Ui/view/base/web/js/block-loader.js index e3cb1b422bb..bc1d30db768 100644 --- a/app/code/Magento/Ui/view/base/web/js/block-loader.js +++ b/app/code/Magento/Ui/view/base/web/js/block-loader.js @@ -5,7 +5,7 @@ define([ 'ko', 'jquery', - 'Magento_Ui/js/lib/loader', + 'Magento_Ui/js/lib/ko/template/loader', 'mage/template' ], function (ko, $, templateLoader, template) { 'use strict'; diff --git a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js index 81759664b63..02ab2b1ec16 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/controls/bookmarks/bookmarks.js @@ -318,7 +318,10 @@ define([ }, /** + * Sets data to the specified view. * + * @param {String} index - Index of a view whose data will be replaced. + * @param {Object} data - New view data. * @returns {Bookmarks} Chainable. */ setViewData: function (index, data) { @@ -330,8 +333,9 @@ define([ }, /** + * Starts editing of a specified view. * - * @param {String} index + * @param {String} index - Index of a view. * @returns {Bookmarks} Chainable. */ editView: function (index) { @@ -341,8 +345,10 @@ define([ }, /** + * Ends editing of specified view + * and restores its' label. * - * @param {String} index + * @param {String} index - Index of a view. * @returns {Bookmarks} Chainable. */ endEdit: function (index) { diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js b/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js index af637dacc0c..403b98656ff 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js @@ -24,7 +24,6 @@ define([ defaults: { template: 'ui/collection', componentType: 'container', - registerNodes: true, ignoreTmpls: { childDefaults: true } @@ -135,16 +134,6 @@ define([ return this; }, - /** - * Callback which fires when property under uniqueNs has changed. - */ - onUniqueUpdate: function (name) { - var active = name === this.name, - property = this.uniqueProp; - - this[property](active); - }, - /** * Retrieves requested region. * Creates region if it was not created yet @@ -152,15 +141,20 @@ define([ * @returns {ObservableArray}. */ getRegion: function (name) { - var regions = this.regions = this.regions || {}; + var regions = this.regions = this.regions || {}, + region; + + if (name) { + if (!regions[name]) { + regions[name] = []; - if (!regions[name]) { - regions[name] = []; + this.observe.call(regions, name); + } - this.observe.call(regions, name); + region = regions[name]; } - return regions[name]; + return region; }, /** @@ -172,8 +166,10 @@ define([ * @returns {Collection} Chainable. */ updateRegion: function (items, name) { - if (name) { - this.getRegion(name)(items); + var region = this.getRegion(name); + + if (region) { + region(items); } return this; @@ -230,14 +226,6 @@ define([ return this; }, - /** - * Destroys current instance along with all of its' children. - */ - destroy: function () { - this._dropHandlers() - ._clearRefs(); - }, - /** * Removes events listeners. * @private @@ -245,9 +233,8 @@ define([ * @returns {Collection} Chainable. */ _dropHandlers: function () { - this.off(); - - this.source.off(this.name); + this._super() + .source.off(this.name); return this; }, @@ -260,7 +247,7 @@ define([ * @returns {Collection} Chainable. */ _clearRefs: function () { - registry.remove(this.name); + this._super(); this.containers.forEach(function (parent) { parent.removeChild(this); @@ -367,6 +354,16 @@ define([ }); return !!bubble; + }, + + /** + * Callback which fires when property under uniqueNs has changed. + */ + onUniqueUpdate: function (name) { + var active = name === this.name, + property = this.uniqueProp; + + this[property](active); } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js b/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js index 93371c5145b..edb013f5199 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js @@ -63,6 +63,7 @@ define([ Module = _.extend({ defaults: { template: '', + registerNodes: true, storageConfig: { provider: 'localStorage', namespace: '${ $.name }', @@ -102,7 +103,7 @@ define([ }, /** - * Initializes statefull properties, + * Initializes statefull properties * based on the keys of 'statefull' object. * * @returns {Element} Chainable. @@ -123,7 +124,7 @@ define([ /** * Parses 'modules' object and creates - * async wrappers on specified components. + * async wrappers for specified components. * * @returns {Element} Chainable. */ @@ -156,7 +157,7 @@ define([ }, /** - * Makes specified property to be statefull. + * Makes specified property to be stored automatically. * * @param {String} key - Name of the property * that will be stored. @@ -246,6 +247,39 @@ define([ return this; }, + /** + * Destroys current instance along with all of its' children. + */ + destroy: function () { + this._dropHandlers() + ._clearRefs(); + }, + + /** + * Removes events listeners. + * @private + * + * @returns {Element} Chainable. + */ + _dropHandlers: function () { + this.off(); + + return this; + }, + + /** + * Removes all references to current instance and + * calls 'destroy' method on all of its' children. + * @private + * + * @returns {Element} Chainable. + */ + _clearRefs: function () { + registry.remove(this.name); + + return this; + }, + /** * Creates observable properties for the current object. * @@ -336,7 +370,9 @@ define([ }, /** + * Extracts all stored data and sets it to element. * + * @returns {Element} Chainable. */ restore: function () { var ns = this.storageConfig.namespace, diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/exportButton.html b/app/code/Magento/Ui/view/base/web/templates/grid/exportButton.html index 3585d6cb5e2..b77069084f4 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/exportButton.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/exportButton.html @@ -23,8 +23,8 @@ class="admin__control-radio" data-bind=" attr: { - id: 'export-field-' + value + $index(), - name: 'export' + id: ++ko.bindingHandlers['uniqueName'].currentIndex + '_uid', + name: $parent.name }, checkedValue: value, checked: $parent.checked" @@ -34,7 +34,7 @@ data-bind=" text: label, attr: { - for: 'export-field-' + value + $index() + for: ko.bindingHandlers['uniqueName'].currentIndex + '_uid' }"></label> </div> <!-- /ko --> -- GitLab From 590bb7039b4d4042bd3e0048548879ab063f47bc Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Fri, 2 Oct 2015 16:02:52 +0300 Subject: [PATCH 228/420] JS-241: Various rendering bugs with Fullscreen Gallery --- lib/web/fotorama/fotorama.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 24872dc0137..ae1de488584 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -3390,11 +3390,11 @@ fotoramaVersion = '4.6.4'; pos: -getPosByIndex(dirtyIndex, measures.w, opts.margin, repositionIndex), overPos: overPos, time: time, - onEnd: onEnd, + onEnd: onEnd }); } else { var $activeFrame = activeFrame[STAGE_FRAME_KEY], - $prevActiveFrame = activeIndex !== lastActiveIndex ? data[lastActiveIndex][STAGE_FRAME_KEY] : null; + $prevActiveFrame = data[lastActiveIndex] && activeIndex !== lastActiveIndex ? data[lastActiveIndex][STAGE_FRAME_KEY] : null; fade($activeFrame, $prevActiveFrame, $stageFrame, { time: time, -- GitLab From fc3caede7b7575ef59d107516ec52edf6a4e4b4f Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Fri, 2 Oct 2015 16:23:20 +0300 Subject: [PATCH 229/420] JS-248: Image size in gallery --- .../Magento/Catalog/Block/Product/View/Gallery.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/View/Gallery.php b/app/code/Magento/Catalog/Block/Product/View/Gallery.php index 4b5fad3db27..42e4e73d4fc 100644 --- a/app/code/Magento/Catalog/Block/Product/View/Gallery.php +++ b/app/code/Magento/Catalog/Block/Product/View/Gallery.php @@ -26,13 +26,18 @@ class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView */ protected $jsonEncoder; + /** + * @param \Magento\Catalog\Block\Product\Context $context + * @param \Magento\Framework\Stdlib\ArrayUtils $arrayUtils + * @param EncoderInterface $jsonEncoder + * @param array $data + */ public function __construct( \Magento\Catalog\Block\Product\Context $context, \Magento\Framework\Stdlib\ArrayUtils $arrayUtils, EncoderInterface $jsonEncoder, array $data = [] - ) - { + ) { $this->jsonEncoder = $jsonEncoder; parent::__construct($context, $arrayUtils, $data); } @@ -111,7 +116,7 @@ class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView 'isMain' => $this->isMainImage($image), ]; } - if(empty($imagesItems)) { + if (empty($imagesItems)) { $imagesItems[] = [ 'thumb' => $this->_imageHelper->getDefaultPlaceholderUrl('thumbnail'), 'img' => $this->_imageHelper->getDefaultPlaceholderUrl('image'), @@ -175,4 +180,4 @@ class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView } return $this->configView; } -} \ No newline at end of file +} -- GitLab From fc33b099a02fe18a199bef0af75b764d7891529c Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Fri, 2 Oct 2015 16:31:28 +0300 Subject: [PATCH 230/420] JS-251: Base image is not respected --- lib/web/mage/gallery/gallery.js | 36 +++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index 0b585c192fa..c4fb263b4ba 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -12,6 +12,28 @@ define([ ], function ($, fotorama, _, mediaCheck, template, Class) { 'use strict'; + /** + * Set main item first in order. + * @param {Array.<Object>} data - Set of gallery items to update. + */ + var pushMainFirst = function(data){ + var mainIndex; + + if(!_.every(data, function(item){ + return _.isObject(item); + })) + { + return data; + } + + mainIndex = _.findIndex(data, function(item){ + return item.isMain; + }); + if(mainIndex > -1){ + data.unshift(data.splice(mainIndex, 1)[0]); + } + }; + return Class.extend({ defaults: { @@ -51,7 +73,7 @@ define([ fotoramaApi: null, isFullscreen: false, api: null, - data: _.clone(config.data), + data: _.clone(pushMainFirst(config.data)), fullscreenData: [] }; @@ -112,8 +134,7 @@ define([ initGallery: function () { var breakpoints = {}, settings = this.settings, - config = this.config, - mainImage; + config = this.config; if (settings.breakpoints) { _.each(_.values(settings.breakpoints), function (breakpoint) { @@ -134,16 +155,8 @@ define([ config.arrows = false; } - /** - * Returns index of main image. - */ - mainImage = _.findIndex(config.data, function (obj) { - return obj.isMain === true; - }); - config.click = false; config.breakpoints = null; - config.startindex = mainImage; settings.currentConfig = config; settings.$element.html(template); settings.$elementF = $(settings.$element.children()[0]); @@ -289,6 +302,7 @@ define([ */ updateData: function (data) { if (_.isArray(data)) { + pushMainFirst(data); settings.fotoramaApi.load(data); $.extend(false, settings.defaultConfig, { data: data -- GitLab From 13291bb5badb293f718a6b84c23c31783db531a6 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Fri, 2 Oct 2015 17:17:22 +0300 Subject: [PATCH 231/420] MAGETWO-42762: Improve performance of table rendering - Fix customer form issue - Fix invalid values in options column - Fix sales shipments massactions --- .../sales_order_view_shipment_grid.xml | 4 - app/code/Magento/Ui/Component/MassAction.php | 3 +- .../web/js/form/components/collection/item.js | 2 +- .../view/base/web/js/grid/columns/select.js | 23 +++-- .../Ui/view/base/web/js/grid/listing.js | 30 +++--- .../view/base/web/js/lib/core/collection.js | 2 +- .../base/web/js/lib/core/element/element.js | 92 ++++++++++--------- .../web/templates/form/element/checkbox.html | 3 +- .../view/base/web/templates/grid/listing.html | 6 +- 9 files changed, 87 insertions(+), 78 deletions(-) diff --git a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml index 2c919506f81..24ad769cca7 100644 --- a/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml +++ b/app/code/Magento/Sales/view/adminhtml/ui_component/sales_order_view_shipment_grid.xml @@ -112,10 +112,6 @@ <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> <item name="selectProvider" xsi:type="string">sales_order_view_shipment_grid.sales_order_view_shipment_grid.sales_order_shipment_columns.ids</item> - <item name="actions" xsi:type="array"> - <item name="pdfshipments_order" xsi:type="array"> - </item> - </item> <item name="indexField" xsi:type="string">entity_id</item> </item> </argument> diff --git a/app/code/Magento/Ui/Component/MassAction.php b/app/code/Magento/Ui/Component/MassAction.php index 025c9987871..c1e08af04c0 100644 --- a/app/code/Magento/Ui/Component/MassAction.php +++ b/app/code/Magento/Ui/Component/MassAction.php @@ -24,7 +24,8 @@ class MassAction extends AbstractComponent }; $this->setData('config', array_replace_recursive($config, $this->getConfiguration())); - + $this->components = []; + parent::prepare(); } diff --git a/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js b/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js index 41c246cdea6..c13d5a0a77d 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js +++ b/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js @@ -125,7 +125,7 @@ define([ * @returns {Component} Chainable. */ _clearData: function () { - this.source('remove', this.dataScope); + this.source.remove(this.dataScope); return this; }, diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/select.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/select.js index 195fc0c1d54..afa8831e510 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/select.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/select.js @@ -3,8 +3,9 @@ * See COPYING.txt for license details. */ define([ + 'underscore', './column' -], function (Column) { +], function (_, Column) { 'use strict'; return Column.extend({ @@ -17,16 +18,24 @@ define([ */ getLabel: function () { var options = this.options || [], - label = '', - value = this._super(); + values = this._super(), + label = []; - options.some(function (item) { - label = item.label; + if (!Array.isArray(values)) { + values = [values]; + } - return item.value == value; + values = values.map(function (value) { + return value + ''; }); - return label; + options.forEach(function (item) { + if (_.contains(values, item.value + '')) { + label.push(item.label); + } + }); + + return label.join(', '); } /*eslint-enable eqeqeq*/ diff --git a/app/code/Magento/Ui/view/base/web/js/grid/listing.js b/app/code/Magento/Ui/view/base/web/js/grid/listing.js index 6188522e960..a972f3cfbf1 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/listing.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/listing.js @@ -58,19 +58,10 @@ define([ initialize: function () { _.bindAll(this, 'updateVisible'); - this._super(); - - if (this.resizeConfig.enabled) { - this.initResize(); - } - - if (this.dndConfig.enabled) { - this.initDnd(); - } - - if (this.editorConfig.enabled) { - this.initEditor(); - } + this._super() + .initDnd() + .initEditor() + .initResize(); return this; }, @@ -96,7 +87,9 @@ define([ * @returns {Listing} Chainable. */ initDnd: function () { - layout([this.dndConfig]); + if (this.dndConfig.enabled) { + layout([this.dndConfig]); + } return this; }, @@ -107,7 +100,9 @@ define([ * @returns {Listing} Chainable. */ initResize: function () { - layout([this.resizeConfig]); + if (this.resizeConfig.enabled) { + layout([this.resizeConfig]); + } return this; }, @@ -118,7 +113,9 @@ define([ * @returns {Listing} Chainable. */ initEditor: function () { - layout([this.editorConfig]); + if (this.editorConfig.enabled) { + layout([this.editorConfig]); + } return this; }, @@ -206,6 +203,7 @@ define([ }, /** + * Returns reference to 'visibleColumns' array. * * @returns {Array} */ diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js b/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js index 403b98656ff..514cd061807 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js @@ -62,7 +62,7 @@ define([ * @returns {Collection} Chainable. */ initProperties: function () { - if (!this.source) { + if (!_.isFunction(this.source)) { this.source = registry.get(this.provider); } diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js b/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js index edb013f5199..adf2ddeb8e2 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js @@ -14,7 +14,7 @@ define([ ], function (ko, _, utils, registry, Events, Class, links) { 'use strict'; - var Module; + var Element; /** * Creates observable property using knockouts' @@ -60,7 +60,7 @@ define([ } } - Module = _.extend({ + Element = _.extend({ defaults: { template: '', registerNodes: true, @@ -207,14 +207,14 @@ define([ var data = this.get(path), diffs; - if (!_.isFunction(data)) { - diffs = utils.compare(data, value, path); + diffs = !_.isFunction(data) && !this.isTracked(path) ? + utils.compare(data, value, path) : + false; - utils.nested(this, path, value); + utils.nested(this, path, value); + if (diffs) { this._notifyChanges(diffs); - } else { - utils.nested(this, path, value); } return this; @@ -247,39 +247,6 @@ define([ return this; }, - /** - * Destroys current instance along with all of its' children. - */ - destroy: function () { - this._dropHandlers() - ._clearRefs(); - }, - - /** - * Removes events listeners. - * @private - * - * @returns {Element} Chainable. - */ - _dropHandlers: function () { - this.off(); - - return this; - }, - - /** - * Removes all references to current instance and - * calls 'destroy' method on all of its' children. - * @private - * - * @returns {Element} Chainable. - */ - _clearRefs: function () { - registry.remove(this.name); - - return this; - }, - /** * Creates observable properties for the current object. * @@ -349,6 +316,16 @@ define([ return this; }, + /** + * Checks if specified property is tracked. + * + * @param {String} property - Property to be checked. + * @returns {Boolean} + */ + isTracked: function (property) { + return ko.es5.isTracked(this, property); + }, + /** * Invokes subscribers for the provided changes. * @@ -438,9 +415,42 @@ define([ this.storage('remove', path); + return this; + }, + + /** + * Destroys current instance along with all of its' children. + */ + destroy: function () { + this._dropHandlers() + ._clearRefs(); + }, + + /** + * Removes events listeners. + * @private + * + * @returns {Element} Chainable. + */ + _dropHandlers: function () { + this.off(); + + return this; + }, + + /** + * Removes all references to current instance and + * calls 'destroy' method on all of its' children. + * @private + * + * @returns {Element} Chainable. + */ + _clearRefs: function () { + registry.remove(this.name); + return this; } }, Events, links); - return Class.extend(Module); + return Class.extend(Element); }); diff --git a/app/code/Magento/Ui/view/base/web/templates/form/element/checkbox.html b/app/code/Magento/Ui/view/base/web/templates/form/element/checkbox.html index 01dca8a5b93..1d00fae66ae 100644 --- a/app/code/Magento/Ui/view/base/web/templates/form/element/checkbox.html +++ b/app/code/Magento/Ui/view/base/web/templates/form/element/checkbox.html @@ -7,8 +7,7 @@ <div class="admin__field admin__field-option"> <input type="checkbox" class="admin__control-checkbox" data-bind="checked: value, attr: { id: uid, disabled: disabled, name: inputName }, hasFocus: focused"> - <label class="admin__field-label" data-bind="checked: value, attr: { for: uid }"> - <span data-bind="text: description || label"></span> + <label class="admin__field-label" data-bind="text: description || label, attr: { for: uid }"> </label> <!-- ko if: notice --> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/listing.html b/app/code/Magento/Ui/view/base/web/templates/grid/listing.html index 875fc0e41c7..68595ee8784 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/listing.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/listing.html @@ -7,11 +7,7 @@ <div class="admin__data-grid-wrap" data-role="grid-wrapper"> <table class="data-grid" data-role="grid"> <thead> - <tr data-bind=" - fastForEach: { - data: getVisible(), - as: '$col' - }"> + <tr data-bind="fastForEach: {data: getVisible(), as: '$col'}"> <!-- ko template: $col.getHeader() --><!-- /ko --> </tr> </thead> -- GitLab From 50be205b8382c750b8b47322539341caa276dd4b Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Fri, 2 Oct 2015 17:27:34 +0300 Subject: [PATCH 232/420] MAGETWO-43593: PR --- app/code/Magento/Ui/view/base/web/js/modal/modal.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/modal/modal.js b/app/code/Magento/Ui/view/base/web/js/modal/modal.js index 0fd610909fa..e99f8180685 100644 --- a/app/code/Magento/Ui/view/base/web/js/modal/modal.js +++ b/app/code/Magento/Ui/view/base/web/js/modal/modal.js @@ -45,7 +45,7 @@ define([ type: 'popup', title: '', modalClass: '', - focus: '', + focus: '[data-role="closeBtn"]', autoOpen: false, clickableOverlay: true, popupTpl: popupTpl, @@ -224,13 +224,9 @@ define([ infelicity; if (type === 'opened' && this.options.focus) { - if (typeof this.options.focus === 'object') { - this.options.focus.focus(); - } else if (this.options.focus !== 'none') { - this.modal.find(this.options.focus).focus(); - } else { - this.modal.find(this.options.focusableScope).focus(); - } + this.modal.find($(this.options.focus)).focus(); + } else if (type === 'opened' && !this.options.focus) { + this.modal.find(this.options.focusableScope).focus(); } else if (position === 'end') { this.modal.find(this.options.modalCloseBtn).focus(); } else if (position === 'start') { -- GitLab From ae649f7828245a438397e89f8b92bf9e707fa02a Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Fri, 2 Oct 2015 17:59:13 +0300 Subject: [PATCH 233/420] MAGETWO-42762: Improve performance of table rendering - Fix issue with a default billing/shipping checkboxes --- .../base/web/js/form/components/collection/item.js | 13 ++++++------- .../Ui/view/base/web/js/form/components/tab.js | 10 ++-------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js b/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js index c13d5a0a77d..2ad6566d15a 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js +++ b/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js @@ -69,12 +69,11 @@ define([ * @return {Object} - reference to instance */ initObservable: function () { - this._super(); - - this.observe({ - 'noPreview': true, - 'indexed': {} - }); + this._super() + .observe({ + noPreview: true, + indexed: {} + }); return this; }, @@ -122,7 +121,7 @@ define([ * Clears all data associated with component. * @private * - * @returns {Component} Chainable. + * @returns {Item} Chainable. */ _clearData: function () { this.source.remove(this.dataScope); diff --git a/app/code/Magento/Ui/view/base/web/js/form/components/tab.js b/app/code/Magento/Ui/view/base/web/js/form/components/tab.js index 8559e658835..bd9537f747e 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/components/tab.js +++ b/app/code/Magento/Ui/view/base/web/js/form/components/tab.js @@ -35,14 +35,6 @@ define([ return this; }, - onUniqueUpdate: function (name) { - var active = name === this.name; - - this._super(); - - this.trigger('active', active); - }, - /** * Sets active property to true, then invokes pushParams method. */ @@ -51,6 +43,8 @@ define([ this.wasActivated(true); this.setUnique(); + + return true; } }); }); -- GitLab From 780e968407bce98288dc6746228060184f0c582b Mon Sep 17 00:00:00 2001 From: Evgeniy Kolesov <ikolesov@ebay.com> Date: Fri, 2 Oct 2015 18:50:39 +0300 Subject: [PATCH 234/420] MAGETWO-43358: Shipment packages cannot be shown in Admin --- .../templates/order/packaging/packed.phtml | 322 +++++++++--------- .../view/adminhtml/web/js/packages.js | 39 +++ .../Magento_Sales/web/css/source/_email.less | 6 +- 3 files changed, 196 insertions(+), 171 deletions(-) create mode 100644 app/code/Magento/Shipping/view/adminhtml/web/js/packages.js diff --git a/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/packed.phtml b/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/packed.phtml index 821d5065ac6..1779164460f 100644 --- a/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/packed.phtml +++ b/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/packed.phtml @@ -7,184 +7,170 @@ // @codingStandardsIgnoreFile ?> -<div id="popup-window-mask" style="display:none;"></div> -<div id="packed_window" style="display:none;" class="packed-window"> - <div class="popup-window-wrapper"> - <div class="popup-window-title"> - <span class="title"><?php /* @escapeNotVerified */ echo __('Packages') ?></span> + +<div id="packed_window"> +<?php foreach ($block->getPackages() as $packageId => $package): ?> + <?php $package = new \Magento\Framework\DataObject($package) ?> + <?php $params = new \Magento\Framework\DataObject($package->getParams()) ?> + <section class="admin__page-section"> + <div class="admin__page-section-title"> + <span class="title"><?php /* @escapeNotVerified */ echo __('Package') . ' ' . $packageId ?></span> </div> - <div class="packed-content"> - <div class="popup-window-content"> - <?php foreach ($block->getPackages() as $packageId => $package): ?> - <div class="package"> - <?php $package = new \Magento\Framework\DataObject($package) ?> - <?php $params = new \Magento\Framework\DataObject($package->getParams()) ?> - <div class="package-number popup-fieldset-title"> - <div class="title"><?php /* @escapeNotVerified */ echo __('Package') . ' ' . $packageId ?></div> - </div> - <div class="package-info"> - <table class="package-options"> - <tbody> - <tr> - <th><?php /* @escapeNotVerified */ echo __('Type') ?></th> - <td><?php /* @escapeNotVerified */ echo $block->getContainerTypeByCode($params->getContainer()) ?></td> - <th><?php /* @escapeNotVerified */ echo __('Length') ?></th> - <td> - <?php if ($params->getLength() != null): ?> - <?php /* @escapeNotVerified */ echo $params->getLength() . ' ' . $this->helper('Magento\Shipping\Helper\Carrier')->getMeasureDimensionName($params->getDimensionUnits()) ?> - <?php else: ?> - -- - <?php endif; ?> - </td> - <?php if ($params->getDeliveryConfirmation() != null): ?> - <th><?php /* @escapeNotVerified */ echo __('Signature Confirmation') ?></th> - <td><?php /* @escapeNotVerified */ echo $block->getDeliveryConfirmationTypeByCode($params->getDeliveryConfirmation()) ?></td> - <?php else: ?> - <th> </th> - <td> </td> - <?php endif; ?> - </tr> - <tr> - <?php if ($block->displayCustomsValue()): ?> - <th><?php /* @escapeNotVerified */ echo __('Customs Value') ?></th> - <td><?php /* @escapeNotVerified */ echo $block->displayCustomsPrice($params->getCustomsValue()) ?></td> - <?php else: ?> - <th><?php /* @escapeNotVerified */ echo __('Total Weight') ?></th> - <td><?php /* @escapeNotVerified */ echo $params->getWeight() . ' ' . $this->helper('Magento\Shipping\Helper\Carrier')->getMeasureWeightName($params->getWeightUnits()) ?></td> - <?php endif; ?> - <th><?php /* @escapeNotVerified */ echo __('Width') ?></th> - <td> - <?php if ($params->getWidth() != null): ?> - <?php /* @escapeNotVerified */ echo $params->getWidth() . ' ' . $this->helper('Magento\Shipping\Helper\Carrier')->getMeasureDimensionName($params->getDimensionUnits()) ?> - <?php else: ?> - -- - <?php endif; ?> - </td> - <?php if ($params->getContentType() != null): ?> - <th><?php /* @escapeNotVerified */ echo __('Contents') ?></th> - <?php if ($params->getContentType() == 'OTHER'): ?> - <td><?php echo $block->escapeHtml($params->getContentTypeOther()) ?></td> - <?php else: ?> - <td><?php /* @escapeNotVerified */ echo $block->getContentTypeByCode($params->getContentType()) ?></td> - <?php endif; ?> - <?php else: ?> - <th> </th> - <td> </td> - <?php endif; ?> - </tr> - <tr> - <?php if ($block->displayCustomsValue()): ?> - <th><?php /* @escapeNotVerified */ echo __('Total Weight') ?></th> - <td><?php /* @escapeNotVerified */ echo $params->getWeight() . ' ' . $this->helper('Magento\Shipping\Helper\Carrier')->getMeasureWeightName($params->getWeightUnits()) ?></td> - <?php else: ?> - <th> </th> - <td> </td> - <?php endif; ?> - <th><?php /* @escapeNotVerified */ echo __('Height') ?></th> - <td> - <?php if ($params->getHeight() != null): ?> - <?php /* @escapeNotVerified */ echo $params->getHeight() . ' ' . $this->helper('Magento\Shipping\Helper\Carrier')->getMeasureDimensionName($params->getDimensionUnits()) ?> - <?php else: ?> - -- - <?php endif; ?> - <td> - <th> </th> - <td> </td> - </tr> - <tr> - <?php if ($params->getSize()): ?> - <th><?php /* @escapeNotVerified */ echo __('Size') ?></th> - <td><?php /* @escapeNotVerified */ echo ucfirst(strtolower($params->getSize())) ?></td> - <?php else: ?> - <th> </th> - <td> </td> - <?php endif; ?> - <?php if ($params->getGirth()): ?> - <th><?php /* @escapeNotVerified */ echo __('Girth') ?></th> - <td><?php /* @escapeNotVerified */ echo $params->getGirth() . ' ' . $this->helper('Magento\Shipping\Helper\Carrier')->getMeasureDimensionName($params->getGirthDimensionUnits()) ?></td> - <?php else: ?> - <th> </th> - <td> </td> - <?php endif; ?> - <th> </th> - <td> </td> - </tr> - </tbody> - </table> - </div> - <div class="package-number popup-fieldset-title"> - <div class="title"><?php /* @escapeNotVerified */ echo __('Items in the Package') ?></div> - </div> - <div class="grid"> - <table class="data"> - <thead> - <tr class="headings"> - <th class="col-product no-link"><span><?php /* @escapeNotVerified */ echo __('Product') ?></span></th> - <th class="col-weight no-link"><span><?php /* @escapeNotVerified */ echo __('Weight') ?></span></th> - <?php if ($block->displayCustomsValue()): ?> - <th class="col-custom no-link"><span><?php /* @escapeNotVerified */ echo __('Customs Value') ?></span></th> + <div class="admin__page-section-content"> + <div class="row row-gutter"> + <div class="col-m-4"> + <table class="admin__table-secondary"> + <tbody> + <tr> + <th><?php /* @escapeNotVerified */ echo __('Type') ?></th> + <td><?php /* @escapeNotVerified */ echo $block->getContainerTypeByCode($params->getContainer()) ?></td> + </tr> + <tr> + <?php if ($block->displayCustomsValue()): ?> + <th><?php /* @escapeNotVerified */ echo __('Customs Value') ?></th> + <td><?php /* @escapeNotVerified */ echo $block->displayCustomsPrice($params->getCustomsValue()) ?></td> + <?php else: ?> + <th><?php /* @escapeNotVerified */ echo __('Total Weight') ?></th> + <td><?php /* @escapeNotVerified */ echo $params->getWeight() . ' ' . $this->helper('Magento\Shipping\Helper\Carrier')->getMeasureWeightName($params->getWeightUnits()) ?></td> + <?php endif; ?> + </tr> + <?php if ($params->getSize()): ?> + <tr> + <th><?php /* @escapeNotVerified */ echo __('Size') ?></th> + <td><?php /* @escapeNotVerified */ echo ucfirst(strtolower($params->getSize())) ?></td> + </tr> + <?php endif; ?> + </tbody> + </table> + </div> + <div class="col-m-4"> + <table class="admin__table-secondary"> + <tbody> + <tr> + <th><?php /* @escapeNotVerified */ echo __('Length') ?></th> + <td> + <?php if ($params->getLength() != null): ?> + <?php /* @escapeNotVerified */ echo $params->getLength() . ' ' . $this->helper('Magento\Shipping\Helper\Carrier')->getMeasureDimensionName($params->getDimensionUnits()) ?> + <?php else: ?> + -- <?php endif; ?> - <th class="col-qty_ordered no-link"><span><?php /* @escapeNotVerified */ echo __('Qty Ordered') ?></span></th> - <th class="col-qty no-link last"><span><?php /* @escapeNotVerified */ echo __('Qty') ?></span></th> + </td> </tr> - </thead> - <tbody id=""> - <?php foreach ($package->getItems() as $itemId => $item) : ?> - <?php $item = new \Magento\Framework\DataObject($item) ?> - <tr title="#" id="" class=""> - <td class="col-product name"> - <?php /* @escapeNotVerified */ echo $item->getName(); ?> - </td> - <td class="col-weight weight "> - <?php /* @escapeNotVerified */ echo $item->getWeight(); ?> - </td> - <?php if ($block->displayCustomsValue()): ?> - <td class="col-custom "><?php /* @escapeNotVerified */ echo $block->displayCustomsPrice($item->getCustomsValue()) ?></td> - <?php endif; ?> - <td class="col-qty_ordered"> - <?php /* @escapeNotVerified */ echo $block->getQtyOrderedItem($item->getOrderItemId()); ?> - </td> - <td class="col-qty last"> - <?php /* @escapeNotVerified */ echo $item->getQty()*1; ?> - </td> - </tr> - <?php endforeach; ?> - </tbody> - </table> - </div> + <tr> + <th><?php /* @escapeNotVerified */ echo __('Width') ?></th> + <td> + <?php if ($params->getWidth() != null): ?> + <?php /* @escapeNotVerified */ echo $params->getWidth() . ' ' . $this->helper('Magento\Shipping\Helper\Carrier')->getMeasureDimensionName($params->getDimensionUnits()) ?> + <?php else: ?> + -- + <?php endif; ?> + </td> + </tr> + <tr> + <th><?php /* @escapeNotVerified */ echo __('Height') ?></th> + <td> + <?php if ($params->getHeight() != null): ?> + <?php /* @escapeNotVerified */ echo $params->getHeight() . ' ' . $this->helper('Magento\Shipping\Helper\Carrier')->getMeasureDimensionName($params->getDimensionUnits()) ?> + <?php else: ?> + -- + <?php endif; ?> + </td> + </tr> + </tbody> + </table> + </div> + <div class="col-m-4"> + <table class="admin__table-secondary"> + <tbody> + <?php if ($params->getDeliveryConfirmation() != null): ?> + <tr> + <th><?php /* @escapeNotVerified */ echo __('Signature Confirmation') ?></th> + <td><?php /* @escapeNotVerified */ echo $block->getDeliveryConfirmationTypeByCode($params->getDeliveryConfirmation()) ?></td> + </tr> + <?php endif; ?> + <?php if ($params->getContentType() != null): ?> + <tr> + <th><?php /* @escapeNotVerified */ echo __('Contents') ?></th> + <?php if ($params->getContentType() == 'OTHER'): ?> + <td><?php echo $block->escapeHtml($params->getContentTypeOther()) ?></td> + <?php else: ?> + <td><?php /* @escapeNotVerified */ echo $block->getContentTypeByCode($params->getContentType()) ?></td> + <?php endif; ?> + </tr> + <?php endif; ?> + <?php if ($params->getGirth()): ?> + <tr> + <th><?php /* @escapeNotVerified */ echo __('Girth') ?></th> + <td><?php /* @escapeNotVerified */ echo $params->getGirth() . ' ' . $this->helper('Magento\Shipping\Helper\Carrier')->getMeasureDimensionName($params->getGirthDimensionUnits()) ?></td> + </tr> + <?php endif; ?> + </tbody> + </table> </div> - <?php endforeach; ?> </div> </div> - <div class="popup-window-buttons-set"> - <?php /* @escapeNotVerified */ echo $block->getPrintButton() ?> - <button type="button" class="action-ok SavePackagesBtn save" onclick="hidePackedWindow();" title="<?php /* @escapeNotVerified */ echo __('Products should be added to package(s)')?>"> - <span><?php /* @escapeNotVerified */ echo __('OK') ?></span> - </button> + <div class="admin__page-section-item-title"> + <span class="title"><?php /* @escapeNotVerified */ echo __('Items in the Package') ?></span> </div> - </div> + <div class="admin__table-wrapper"> + <table class="data-table admin__table-primary"> + <thead> + <tr class="headings"> + <th class="col-product"><span><?php /* @escapeNotVerified */ echo __('Product') ?></span></th> + <th class="col-weight"><span><?php /* @escapeNotVerified */ echo __('Weight') ?></span></th> + <?php if ($block->displayCustomsValue()): ?> + <th class="col-custom"><span><?php /* @escapeNotVerified */ echo __('Customs Value') ?></span></th> + <?php endif; ?> + <th class="col-qty"><span><?php /* @escapeNotVerified */ echo __('Qty Ordered') ?></span></th> + <th class="col-qty"><span><?php /* @escapeNotVerified */ echo __('Qty') ?></span></th> + </tr> + </thead> + <tbody id=""> + <?php foreach ($package->getItems() as $itemId => $item) : ?> + <?php $item = new \Magento\Framework\DataObject($item) ?> + <tr title="#" id=""> + <td class="col-product"> + <?php /* @escapeNotVerified */ echo $item->getName(); ?> + </td> + <td class="col-weight"> + <?php /* @escapeNotVerified */ echo $item->getWeight(); ?> + </td> + <?php if ($block->displayCustomsValue()): ?> + <td class="col-custom"><?php /* @escapeNotVerified */ echo $block->displayCustomsPrice($item->getCustomsValue()) ?></td> + <?php endif; ?> + <td class="col-qty"> + <?php /* @escapeNotVerified */ echo $block->getQtyOrderedItem($item->getOrderItemId()); ?> + </td> + <td class="col-qty"> + <?php /* @escapeNotVerified */ echo $item->getQty()*1; ?> + </td> + </tr> + <?php endforeach; ?> + </tbody> + </table> + </div> + </section> +<?php endforeach; ?> </div> - <script> -require(['prototype'], function(){ - -//<![CDATA[ function showPackedWindow() { - var window = $('packed_window'); - window.show().setStyle({ - 'marginLeft': -window.getDimensions().width/2 + 'px' - }); - $('popup-window-mask').setStyle({ - height: $('html-body').getHeight() + 'px' - }).show(); + jQuery('#packed_window').modal('openModal'); } - function hidePackedWindow() { - $('packed_window').hide(); - $('popup-window-mask').hide(); +</script> +<?php +$printLocation = $block->getUrl( + 'adminhtml/order_shipment/printPackage', + array('shipment_id' => $block->getShipment()->getId()) +); +?> +<script type="text/x-magento-init"> + { + "#packed_window": { + "Magento_Shipping/js/packages":{ + "type":"slide", + "title":"<?= /* @escapeNotVerified */ __('Packages') ?>", + "url": "<?= /* @escapeNotVerified */ $printLocation ?>" + } + } } - window.hidePackedWindow = hidePackedWindow; - window.showPackedWindow = showPackedWindow; -//]]> - -}); </script> diff --git a/app/code/Magento/Shipping/view/adminhtml/web/js/packages.js b/app/code/Magento/Shipping/view/adminhtml/web/js/packages.js new file mode 100644 index 00000000000..36b934c0e9c --- /dev/null +++ b/app/code/Magento/Shipping/view/adminhtml/web/js/packages.js @@ -0,0 +1,39 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +define([ + 'jquery', + 'Magento_Ui/js/modal/modal', + 'mage/translate' +], function ($, modal, $t) { + 'use strict'; + + return function (config, element) { + config.buttons = [ + { + text: $t('Print'), + 'class': 'action action-primary', + + /** + * Click handler + */ + click: function () { + window.location.href = this.options.url; + } + }, { + text: $t('Cancel'), + 'class': 'action action-secondary', + + /** + * Click handler + */ + click: function () { + this.closeModal(); + } + } + ]; + modal(config, element); + }; +}); diff --git a/app/design/frontend/Magento/luma/Magento_Sales/web/css/source/_email.less b/app/design/frontend/Magento/luma/Magento_Sales/web/css/source/_email.less index 8d002c55b8e..9fbeb9458d0 100644 --- a/app/design/frontend/Magento/luma/Magento_Sales/web/css/source/_email.less +++ b/app/design/frontend/Magento/luma/Magento_Sales/web/css/source/_email.less @@ -100,7 +100,7 @@ // ---------------------------------------------- .shipment-track { - .table(@table__width, 0); + .lib-table(@table__width, 0); thead, tbody { @@ -127,7 +127,7 @@ // ---------------------------------------------- .email-items { - .table(@table__width, 0); + .lib-table(@table__width, 0); tfoot { > tr { > th, @@ -241,6 +241,6 @@ .email-non-inline() { .email-items { - .table-overflow(); + .lib-table-overflow(); } } -- GitLab From c972665d70488bc1cc237daf68c22755c1bfeba1 Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Fri, 2 Oct 2015 18:51:25 +0300 Subject: [PATCH 235/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix php unit tests --- .../Catalog/Test/Unit/Block/Product/View/GalleryTest.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Test/Unit/Block/Product/View/GalleryTest.php b/app/code/Magento/Catalog/Test/Unit/Block/Product/View/GalleryTest.php index 564e08a1cbc..484c48003d4 100644 --- a/app/code/Magento/Catalog/Test/Unit/Block/Product/View/GalleryTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Block/Product/View/GalleryTest.php @@ -32,6 +32,11 @@ class GalleryTest extends \PHPUnit_Framework_TestCase */ protected $registry; + /** + * @var \Magento\Framework\Json\EncoderInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $jsonEncoderMock; + protected function setUp() { $this->mockContext(); @@ -42,7 +47,8 @@ class GalleryTest extends \PHPUnit_Framework_TestCase $this->model = new \Magento\Catalog\Block\Product\View\Gallery( $this->context, - $this->arrayUtils + $this->arrayUtils, + $this->jsonEncoderMock ); } -- GitLab From cead703a43c5638fa63f1dd407463a5e572b2c0c Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Fri, 2 Oct 2015 20:32:00 +0300 Subject: [PATCH 236/420] MAGETWO-42762: Improve performance of table rendering - Apply patch wit date range fix - Fix double initialization in filters component --- .../Ui/Component/Filters/Type/Date.php | 38 +++++++++++++++---- .../view/base/web/js/grid/filters/filters.js | 8 +++- .../base/web/js/lib/core/element/element.js | 32 ++++++++-------- 3 files changed, 53 insertions(+), 25 deletions(-) diff --git a/app/code/Magento/Ui/Component/Filters/Type/Date.php b/app/code/Magento/Ui/Component/Filters/Type/Date.php index f1689efa87a..98e782a4da1 100644 --- a/app/code/Magento/Ui/Component/Filters/Type/Date.php +++ b/app/code/Magento/Ui/Component/Filters/Type/Date.php @@ -66,16 +66,40 @@ class Date extends AbstractFilter if (isset($this->filterData[$this->getName()])) { $value = $this->filterData[$this->getName()]; - if (!empty($value)) { - $value = $this->wrappedComponent->convertDate($value); + if (empty($value)) { + return; + } - $filter = $this->filterBuilder->setConditionType('eq') - ->setField($this->getName()) - ->setValue($value->format('Y-m-d H:i:s')) - ->create(); + if (is_array($value)) { + if (isset($value['from'])) { + $this->applyFilterByType('gteq', $this->wrappedComponent->convertDate($value['from'])); + } - $this->getContext()->getDataProvider()->addFilter($filter); + if (isset($value['to'])) { + $this->applyFilterByType('lteq', $this->wrappedComponent->convertDate($value['to'])); + } + } else { + $this->applyFilterByType('eq', $this->wrappedComponent->convertDate($value)); } } } + + /** + * Apply filter by its type + * + * @param string $type + * @param string $value + * @return void + */ + protected function applyFilterByType($type, $value) + { + if (!empty($value)) { + $filter = $this->filterBuilder->setConditionType($type) + ->setField($this->getName()) + ->setValue($value->format('Y-m-d H:i:s')) + ->create(); + + $this->getContext()->getDataProvider()->addFilter($filter); + } + } } diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js index 8decc3f0849..1711a6f76ff 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js @@ -38,6 +38,7 @@ define([ defaults: { template: 'ui/grid/filters/filters', stickyTmpl: 'ui/grid/sticky/filters', + _processed: [], applied: { placeholder: true }, @@ -218,15 +219,18 @@ define([ * @returns {Filters} Chainable. */ addFilter: function (column) { - var index = column.index, + var index = column.index, + processed = this._processed, filter; - if (!column.filter || this.hasFilter(index)) { + if (!column.filter || _.contains(processed, index)) { return this; } filter = this.buildFilter(column); + processed.push(index); + layout([filter]); return this; diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js b/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js index adf2ddeb8e2..7b1df267452 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js @@ -103,36 +103,36 @@ define([ }, /** - * Initializes statefull properties - * based on the keys of 'statefull' object. + * Parses 'modules' object and creates + * async wrappers for specified components. * * @returns {Element} Chainable. */ - initStatefull: function () { - var statefull = this.statefull || {}; - - _.each(statefull, function (path, key) { - if (!path) { - return; - } + initModules: function () { + var modules = this.modules || {}; - this.setStatefull(key, path); + _.each(modules, function (component, property) { + this[property] = registry.async(component); }, this); return this; }, /** - * Parses 'modules' object and creates - * async wrappers for specified components. + * Initializes statefull properties + * based on the keys of 'statefull' object. * * @returns {Element} Chainable. */ - initModules: function () { - var modules = this.modules || {}; + initStatefull: function () { + var statefull = this.statefull || {}; - _.each(modules, function (component, property) { - this[property] = registry.async(component); + _.each(statefull, function (path, key) { + if (!path) { + return; + } + + this.setStatefull(key, path); }, this); return this; -- GitLab From 24bbf9777b4c656b50aa1bf9c33fa7c17538f71e Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Sat, 3 Oct 2015 13:52:06 +0300 Subject: [PATCH 237/420] MAGETWO-42762: Improve performance of table rendering - Fix update of active filters - Migrate uiElement in form elements - Get rid of initProperties method --- .../ui_component/product_listing.xml | 2 +- .../web/js/view/cart/shipping-rates.js | 2 +- .../address-renderer/default.js | 2 +- .../web/js/view/shipping-address/list.js | 2 +- .../web/js/view/shipping-information/list.js | 2 +- .../web/js/form/components/collection/item.js | 4 +- .../view/base/web/js/form/components/group.js | 9 ++ .../view/base/web/js/form/element/abstract.js | 8 +- .../Ui/view/base/web/js/form/element/date.js | 6 +- .../Magento/Ui/view/base/web/js/form/form.js | 2 +- .../view/base/web/js/grid/filters/filters.js | 20 +++-- .../Ui/view/base/web/js/grid/filters/range.js | 9 -- .../view/base/web/js/lib/core/collection.js | 87 +++---------------- .../base/web/js/lib/core/element/element.js | 60 +++++++++++-- 14 files changed, 105 insertions(+), 110 deletions(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml index b5cc8a86dc5..77791aa296f 100644 --- a/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml +++ b/app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml @@ -282,7 +282,7 @@ </item> </argument> </column> - <column name="websites" class="Magento\Catalog\Ui\Component\Listing\Columns\Websites"> + <column name="websites"> <argument name="data" xsi:type="array"> <item name="options" xsi:type="object">Magento\Store\Model\Resource\Website\Collection</item> <item name="config" xsi:type="array"> diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/cart/shipping-rates.js b/app/code/Magento/Checkout/view/frontend/web/js/view/cart/shipping-rates.js index e569f88a111..f8a63000aa8 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/view/cart/shipping-rates.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/view/cart/shipping-rates.js @@ -42,7 +42,7 @@ define( /** * @override */ - initProperties: function () { + initObservable: function () { var self = this; this._super(); diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-address/address-renderer/default.js b/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-address/address-renderer/default.js index 221e9f6f151..0b932a29e52 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-address/address-renderer/default.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-address/address-renderer/default.js @@ -20,7 +20,7 @@ define([ template: 'Magento_Checkout/shipping-address/address-renderer/default' }, - initProperties: function () { + initObservable: function () { this._super(); this.isSelected = ko.computed(function() { var isSelected = false; diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-address/list.js b/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-address/list.js index 639d4823c75..5ee2b5d4ed9 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-address/list.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-address/list.js @@ -44,7 +44,7 @@ define([ return this; }, - initProperties: function () { + initConfig: function () { this._super(); // the list of child components that are responsible for address rendering this.rendererComponents = []; diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-information/list.js b/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-information/list.js index 1d357ca80e9..f024358ae0d 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-information/list.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/view/shipping-information/list.js @@ -35,7 +35,7 @@ define([ return this; }, - initProperties: function () { + initConfig: function () { this._super(); // the list of child components that are responsible for address rendering this.rendererComponents = {}; diff --git a/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js b/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js index 2ad6566d15a..91cee0068ca 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js +++ b/app/code/Magento/Ui/view/base/web/js/form/components/collection/item.js @@ -54,7 +54,7 @@ define([ * * @return {Object} - reference to instance */ - initProperties: function () { + initConfig: function () { this._super(); this.displayed = []; @@ -177,7 +177,7 @@ define([ items = items.map(function (index) { var elem = elems[index]; - preview = elem && elem.visible() ? elem.delegate('getPreview') : ''; + preview = elem && elem.visible() ? elem.getPreview() : ''; preview = Array.isArray(preview) ? _.compact(preview).join(', ') : diff --git a/app/code/Magento/Ui/view/base/web/js/form/components/group.js b/app/code/Magento/Ui/view/base/web/js/form/components/group.js index 18bc1779477..468dff2ec66 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/components/group.js +++ b/app/code/Magento/Ui/view/base/web/js/form/components/group.js @@ -88,6 +88,15 @@ define([ */ isMultiple: function () { return this.elems.getLength() > 1; + }, + + /** + * Returns an array of child components previews. + * + * @returns {Array} + */ + getPreview: function () { + return this.elems.map('getPreview'); } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js b/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js index b9efcbef944..a92b0714872 100755 --- a/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js @@ -6,12 +6,12 @@ define([ 'underscore', 'mageUtils', - 'uiComponent', + 'uiElement', 'Magento_Ui/js/lib/validation/validator' -], function (_, utils, Component, validator) { +], function (_, utils, Element, validator) { 'use strict'; - return Component.extend({ + return Element.extend({ defaults: { visible: true, preview: '', @@ -77,7 +77,7 @@ define([ * * @returns {Abstract} Chainable. */ - initProperties: function () { + initConfig: function () { var uid = utils.uniqueid(); this._super(); diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/date.js b/app/code/Magento/Ui/view/base/web/js/form/element/date.js index c9ee948d681..d4dc131c7a2 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/element/date.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/date.js @@ -20,10 +20,12 @@ define([ * * @returns {Object} Chainable. */ - initProperties: function () { + initConfig: function () { + this._super(); + this.dateFormat = utils.normalizeDate(this.dateFormat); - return this._super(); + return this; }, /** diff --git a/app/code/Magento/Ui/view/base/web/js/form/form.js b/app/code/Magento/Ui/view/base/web/js/form/form.js index 692f92d6a02..d179d4706a7 100644 --- a/app/code/Magento/Ui/view/base/web/js/form/form.js +++ b/app/code/Magento/Ui/view/base/web/js/form/form.js @@ -42,7 +42,7 @@ define([ return this; }, - initProperties: function () { + initConfig: function () { this._super(); this.selector = '[data-form-part=' + this.namespace + ']'; diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js index 1711a6f76ff..daad5333abc 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js @@ -107,10 +107,11 @@ define([ * @returns {Filters} Chainable. */ initialize: function () { + _.bindAll(this, 'updateActive'); + this._super() .initChips() - .cancel() - .updateActive(); + .cancel(); return this; }, @@ -148,9 +149,12 @@ define([ * * @returns {Filters} Chainable. */ - initElement: function () { - this._super() - .updateActive(); + initElement: function (elem) { + this._super(); + + elem.on('elems', this.updateActive); + + this.updateActive(); return this; }, @@ -341,7 +345,11 @@ define([ * @returns {Filters} Chainable. */ updateActive: function () { - this.active = this.elems.filter('hasData'); + var applied = _.keys(this.applied); + + this.active = this.elems.filter(function (elem) { + return _.contains(applied, elem.index); + }); return this; }, diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/range.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/range.js index 1c9c04705b0..361d2db0713 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/range.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/range.js @@ -104,15 +104,6 @@ define([ */ hasData: function () { return this.elems.some('hasData'); - }, - - /** - * Returns an array of child components previews. - * - * @returns {Array} - */ - getPreview: function () { - return this.elems.map('getPreview'); } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js b/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js index 514cd061807..d81d1969392 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js @@ -24,6 +24,7 @@ define([ defaults: { template: 'ui/collection', componentType: 'container', + _elems: [], ignoreTmpls: { childDefaults: true } @@ -36,7 +37,6 @@ define([ */ initialize: function () { this._super() - .initProperties() .initUnique(); return this; @@ -56,24 +56,6 @@ define([ return this; }, - /** - * Defines various properties. - * - * @returns {Collection} Chainable. - */ - initProperties: function () { - if (!_.isFunction(this.source)) { - this.source = registry.get(this.provider); - } - - _.extend(this, { - containers: [], - _elems: [] - }); - - return this; - }, - /** * Initializes listeners of the unique property. * @@ -92,18 +74,6 @@ define([ return this; }, - /** - * Called when current element was injected to another component. - * - * @param {Object} parent - Instance of a 'parent' component. - * @returns {Collection} Chainable. - */ - initContainer: function (parent) { - this.containers.push(parent); - - return this; - }, - /** * Called when another element was added to current component. * @@ -111,9 +81,7 @@ define([ * @returns {Collection} Chainable. */ initElement: function (elem) { - if (_.isFunction(elem.initContainer)) { - elem.initContainer(this); - } + elem.initContainer(this); return this; }, @@ -226,19 +194,6 @@ define([ return this; }, - /** - * Removes events listeners. - * @private - * - * @returns {Collection} Chainable. - */ - _dropHandlers: function () { - this._super() - .source.off(this.name); - - return this; - }, - /** * Removes all references to current instance and * calls 'destroy' method on all of its' children. @@ -249,10 +204,6 @@ define([ _clearRefs: function () { this._super(); - this.containers.forEach(function (parent) { - parent.removeChild(this); - }, this); - this.elems.each('destroy'); return this; @@ -324,36 +275,20 @@ define([ var result; result = this.elems.map(function (elem) { - return elem.delegate.apply(elem, args); - }); + var target; - return _.flatten(result); - }, - - /** - * Overrides 'EventsBus.trigger' method to implement events bubbling. - * - * @param {...*} parameters - Any number of arguments that should be passed to the events' handler. - * @returns {Boolean} False if event bubbling was canceled. - */ - bubble: function () { - var args = _.toArray(arguments), - bubble = this.trigger.apply(this, args), - result; - - if (!bubble) { - return false; - } + if (!_.isFunction(elem.delegate)) { + target = elem[args[0]]; - this.containers.forEach(function (parent) { - result = parent.bubble.apply(parent, args); - - if (result === false) { - bubble = false; + if (_.isFunction(target)) { + return target.apply(elem, args.slice(1)); + } + } else { + return elem.delegate.apply(elem, args); } }); - return !!bubble; + return _.flatten(result); }, /** diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js b/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js index 7b1df267452..3229f91ca36 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js @@ -63,6 +63,7 @@ define([ Element = _.extend({ defaults: { template: '', + containers: [], registerNodes: true, storageConfig: { provider: 'localStorage', @@ -115,6 +116,22 @@ define([ this[property] = registry.async(component); }, this); + if (!_.isFunction(this.source)) { + this.source = registry.get(this.provider); + } + + return this; + }, + + /** + * Called when current element was injected to another component. + * + * @param {Object} parent - Instance of a 'parent' component. + * @returns {Collection} Chainable. + */ + initContainer: function (parent) { + this.containers.push(parent); + return this; }, @@ -236,13 +253,15 @@ define([ data = utils.nested(this, path); - if (!_.isUndefined(data) && !_.isFunction(data)) { - diffs = utils.compare(data, undefined, path); + if (_.isUndefined(data) || _.isFunction(data)) { + return this; + } - utils.nestedRemove(this, path); + diffs = utils.compare(data, undefined, path); - this._notifyChanges(diffs); - } + utils.nestedRemove(this, path); + + this._notifyChanges(diffs); return this; }, @@ -434,6 +453,7 @@ define([ */ _dropHandlers: function () { this.off(); + this.source.off(this.name); return this; }, @@ -448,7 +468,37 @@ define([ _clearRefs: function () { registry.remove(this.name); + this.containers.forEach(function (parent) { + parent.removeChild(this); + }, this); + return this; + }, + + /** + * Overrides 'EventsBus.trigger' method to implement events bubbling. + * + * @param {...*} parameters - Any number of arguments that should be passed to the events' handler. + * @returns {Boolean} False if event bubbling was canceled. + */ + bubble: function () { + var args = _.toArray(arguments), + bubble = this.trigger.apply(this, args), + result; + + if (!bubble) { + return false; + } + + this.containers.forEach(function (parent) { + result = parent.bubble.apply(parent, args); + + if (result === false) { + bubble = false; + } + }); + + return !!bubble; } }, Events, links); -- GitLab From 02b5e100d7fafe4df667ebfcbdb7e73ef53e97e1 Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Sat, 3 Oct 2015 15:29:53 +0300 Subject: [PATCH 238/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product --- lib/web/magnifier/magnifier.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index a5d89209c9f..f7c880ab104 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -202,7 +202,7 @@ function onThumbEnter() { - if (enabled === true) { + if (enabled === 'true') { currentOpts = data[curIdx]; curLens = $box.find('.magnify-lens'); @@ -241,7 +241,7 @@ } function move() { - if (enabled === true) { + if (enabled === 'true') { if (status !== currentOpts.status) { onThumbEnter(); } @@ -336,7 +336,7 @@ opts.thumb = $thumb; enabled = opts.enabled; - if(enabled) { + if(enabled === 'true') { $largeWrapper.show().css('display', ''); $largeWrapper.addClass(MagnifyCls.magnifyHidden); -- GitLab From 96688d6995c479fa0d099e02faf1f53bf308efde Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Sat, 3 Oct 2015 15:59:40 +0300 Subject: [PATCH 239/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product --- lib/web/magnifier/magnifier.js | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index f7c880ab104..1c6bac93ff4 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -116,6 +116,20 @@ _init($box, options); }; + function _toBoolean (str) { + if (typeof str === 'string') { + if (str === 'true') { + return true; + } else if (str === 'false' || '') { + return false; + } else { + console.warn("Wrong type: can't be transformed to Boolean"); + } + } else if (typeof str === 'boolean') { + return str; + } + } + function createLens(thumb) { if ($(thumb).siblings('.magnify-lens').length) { return false; @@ -202,7 +216,7 @@ function onThumbEnter() { - if (enabled === 'true') { + if (_toBoolean(enabled)) { currentOpts = data[curIdx]; curLens = $box.find('.magnify-lens'); @@ -241,7 +255,7 @@ } function move() { - if (enabled === 'true') { + if (_toBoolean(enabled)) { if (status !== currentOpts.status) { onThumbEnter(); } @@ -336,7 +350,7 @@ opts.thumb = $thumb; enabled = opts.enabled; - if(enabled === 'true') { + if(_toBoolean(enabled)) { $largeWrapper.show().css('display', ''); $largeWrapper.addClass(MagnifyCls.magnifyHidden); -- GitLab From e39ab8bb52a5b31c14d3207ec7974457d1ca2c15 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Sat, 3 Oct 2015 16:38:55 +0300 Subject: [PATCH 240/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fixed Swatches fallback --- .../view/frontend/web/js/SwatchRenderer.js | 35 ++++++++++++++++--- lib/web/mage/gallery/gallery.js | 4 ++- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js index cae146c4e00..695cc63ed69 100644 --- a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js +++ b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js @@ -181,7 +181,8 @@ define(["jquery", "jquery/ui"], function ($) { onlySwatches: false, // show only swatch controls enableControlLabel: true, // enable label for control moreButtonText: 'More', // text for more button - mediaCallback: '' // Callback url for media + mediaCallback: '', // Callback url for media + mediaGalleryInitial: [{}] // Cache for BaseProduct images. Needed when option unset }, /** @@ -204,6 +205,20 @@ define(["jquery", "jquery/ui"], function ($) { } }, + /** + * @private + */ + _create: function () { + var options = this.options, + gallery = $('[data-gallery-role=gallery-placeholder]', '.column.main'); + + gallery.on('gallery:loaded', function () { + var galleryObject = gallery.data('gallery'); + + options.mediaGalleryInitial = galleryObject.returnCurrentImages(); + }); + }, + /** * Render controls * @@ -705,6 +720,8 @@ define(["jquery", "jquery/ui"], function ($) { }; if ($widget._ObjectLength(response) < 1) { + this.updateBaseImage(this.options.mediaGalleryInitial, $main, isProductViewExist); + return; } @@ -717,7 +734,7 @@ define(["jquery", "jquery/ui"], function ($) { if (response.hasOwnProperty('gallery')) { $.each(response.gallery, function () { - if (!support(this) || response.large == this.large) { + if (!support(this) || response.large === this.large) { return; } images.push({ @@ -729,13 +746,23 @@ define(["jquery", "jquery/ui"], function ($) { } } + this.updateBaseImage(images, $main, isProductViewExist); + }, + + /** + * Update [gallery-placeholder] or [product-image-photo] + * @param {Array} images + * @param {jQuery} context + * @param {Boolean} isProductViewExist + */ + updateBaseImage: function (images, context, isProductViewExist) { if (isProductViewExist) { - $main + context .find('[data-gallery-role=gallery-placeholder]') .data('gallery') .updateData(images); } else { - $main.find('.product-image-photo').attr('src', images.shift().medium); + context.find('.product-image-photo').attr('src', images.shift().medium); } }, diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index c4fb263b4ba..9aa2d7302bc 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -321,7 +321,9 @@ define([ returnCurrentImages: function () { var images = []; - _(settings.fotoramaApi.data).each(images.push, images); + _.each(settings.fotoramaApi.data, function (item) { + images.push(item); + }); return images; } -- GitLab From e1065a647f203b3f4c565d7ac6f8220b65b307c1 Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Sat, 3 Oct 2015 17:07:13 +0300 Subject: [PATCH 241/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product --- lib/web/magnifier/magnify.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index c78f1705517..869e2f4ce89 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -84,8 +84,10 @@ define([ config.magnifierOpts.original = fotorama.data[fotorama.activeIndex].original; $($(gallerySelector).data('fotorama').activeFrame.$stageFrame).magnify(config.magnifierOpts); }); - $(element).on('fotorama:show fotorama:fullscreenenter ', function () { - hideMagnifier(); + $(element).on('gallery:loaded', function () { + $(element).find(gallerySelector).on('fotorama:show fotorama:fullscreenenter ', function () { + hideMagnifier(); + }); }); return config; -- GitLab From 997f112279092cbc60f7437a53204cc39dc25095 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Sat, 3 Oct 2015 17:25:29 +0300 Subject: [PATCH 242/420] MAGETWO-42762: Improve performance of table rendering - Fix shipping methods issue --- .../Ui/view/base/web/js/form/element/abstract.js | 1 - .../Ui/view/base/web/js/lib/core/element/element.js | 10 ++++++++++ .../Magento/Ui/view/base/web/templates/collection.html | 4 +++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js b/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js index a92b0714872..fe04f21e371 100755 --- a/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js +++ b/app/code/Magento/Ui/view/base/web/js/form/element/abstract.js @@ -18,7 +18,6 @@ define([ focused: false, required: false, disabled: false, - tmpPath: 'ui/form/element/', tooltipTpl: 'ui/form/element/helper/tooltip', 'input_type': 'input', placeholder: '', diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js b/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js index 3229f91ca36..84688e9a3a4 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js @@ -63,6 +63,7 @@ define([ Element = _.extend({ defaults: { template: '', + displayArea: '', containers: [], registerNodes: true, storageConfig: { @@ -202,6 +203,15 @@ define([ return this.template; }, + /** + * Checks if template was specified for an element. + * + * @returns {Boolean} + */ + hasTemplate: function () { + return !!this.template; + }, + /** * Returns value of the nested property. * diff --git a/app/code/Magento/Ui/view/base/web/templates/collection.html b/app/code/Magento/Ui/view/base/web/templates/collection.html index ac5ce2ca9de..a5e802420e3 100644 --- a/app/code/Magento/Ui/view/base/web/templates/collection.html +++ b/app/code/Magento/Ui/view/base/web/templates/collection.html @@ -5,5 +5,7 @@ */ --> <!-- ko foreach: { data: elems, as: 'element' } --> - <!-- ko template: element.getTemplate() --><!-- /ko --> + <!-- ko if: hasTemplate() --> + <!-- ko template: getTemplate() --><!-- /ko --> + <!-- /ko --> <!-- /ko --> -- GitLab From dbb81e87f06cacbc0c2b13c2abf38ab31754c3d1 Mon Sep 17 00:00:00 2001 From: Uladzislau Harbachou <uladzislau_harbachou@epam.com> Date: Sat, 3 Oct 2015 17:41:55 +0300 Subject: [PATCH 243/420] JS-241 - Various rendering bugs with Fullscreen Gallery --- lib/web/fotorama/fotorama.js | 48 ++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index ae1de488584..c1fe1fcf217 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -1548,23 +1548,26 @@ fotoramaVersion = '4.6.4'; size = opt.thumbheight; wrapSize = $navWrap.height(); } - if ((size + opt.margin) * (guessIndex + 1) >= wrapSize - offsetNav) { + if ( (size + opt.margin) * (guessIndex + 1) >= (wrapSize - offsetNav) ) { if (dir === 'horizontal') { position = -$guessNavFrame.position().left; } else { position = -$guessNavFrame.position().top; } - } - if ((size + opt.margin) * (guessIndex) <= Math.abs(offsetNav)) { - if (dir === 'horizontal') { - position = -$guessNavFrame.position().left + wrapSize - (size + opt.margin); + } else { + if ((size + opt.margin) * (guessIndex) <= Math.abs(offsetNav)) { + if (dir === 'horizontal') { + position = -$guessNavFrame.position().left + wrapSize - (size + opt.margin); + } else { + position = -$guessNavFrame.position().top + wrapSize - (size + opt.margin); + } } else { - position = -$guessNavFrame.position().top + wrapSize - (size + opt.margin); + position = offsetNav; } } position = validateRestrictions(position, navShaftTouchTail); - return position; + return position || 0; } function elIsDisabled(el) { @@ -3082,14 +3085,13 @@ fotoramaVersion = '4.6.4'; boundTop = overflowFLAG && (options.keep && slideNavShaft.t ? slideNavShaft.l : minMaxLimit((options.coo || measures.nw / 2) - getNavFrameBounds($guessNavFrame).c, minMax.min, minMax.max)); boundLeft = overflowFLAG && (options.keep && slideNavShaft.l ? slideNavShaft.l : minMaxLimit((options.coo || measures.nw / 2) - getNavFrameBounds($guessNavFrame).c, minMax.min, minMax.max)); l = (opts.navdir === 'vertical' ? boundTop : boundLeft); - pos = overflowFLAG && minMaxLimit(l, navShaftTouchTail.min, navShaftTouchTail.max); + pos = overflowFLAG && minMaxLimit(l, navShaftTouchTail.min, navShaftTouchTail.max) || 0; time = options.time * 1.1; slide($navShaft, { time: time, - pos: pos || 0, + pos: pos, direction: opts.navdir, onEnd: function () { - thumbsDraw(pos, true); thumbArrUpdate(); } }); @@ -3102,17 +3104,15 @@ fotoramaVersion = '4.6.4'; pos = validateSlidePos(opts, navShaftTouchTail, options.guessIndex, x, $guessNavFrame, $navWrap, opts.navdir); - if (pos != undefined) { - slide($navShaft, { - time: time, - pos: pos || 0, - direction: opts.navdir, - onEnd: function () { - thumbsDraw(pos, true); - thumbArrUpdate(); - } - }); - } + slide($navShaft, { + time: time, + pos: pos, + direction: opts.navdir, + onEnd: function () { + thumbsDraw(pos, true); + thumbArrUpdate(); + } + }); setShadow($nav, findShadowEdge(pos, navShaftTouchTail.min, navShaftTouchTail.max, opts.navdir)); } } @@ -3290,17 +3290,17 @@ fotoramaVersion = '4.6.4'; pos, time = 500 * 1.1, size = opts.navdir === 'horizontal' ? opts.thumbwidth : opts.thumbheight, - onEnd = function (pos) { - thumbsDraw(pos, true); + onEnd = function () { thumbArrUpdate(); }; if (slideDir === 'next') { pos = currentPosition - (size + opts.margin) * thumbsPerSlide; } if (slideDir === 'prev') { - pos = currentPosition + (size + opts.margin) * thumbsPerSlide + pos = currentPosition + (size + opts.margin) * thumbsPerSlide; } pos = validateRestrictions(pos, navShaftTouchTail); + thumbsDraw(pos, true); slide($navShaft, { time: time, pos: pos, -- GitLab From e3ea775cca255874b50512ee4c7da062d08669ad Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Sat, 3 Oct 2015 18:25:00 +0300 Subject: [PATCH 244/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix unittests --- .../Catalog/Test/Unit/Block/Product/View/GalleryTest.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/code/Magento/Catalog/Test/Unit/Block/Product/View/GalleryTest.php b/app/code/Magento/Catalog/Test/Unit/Block/Product/View/GalleryTest.php index 484c48003d4..2912429dd9b 100644 --- a/app/code/Magento/Catalog/Test/Unit/Block/Product/View/GalleryTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Block/Product/View/GalleryTest.php @@ -45,6 +45,10 @@ class GalleryTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->getMock(); + $this->jsonEncoderMock = $this->getMockBuilder('Magento\Framework\Json\EncoderInterface') + ->disableOriginalConstructor() + ->getMock(); + $this->model = new \Magento\Catalog\Block\Product\View\Gallery( $this->context, $this->arrayUtils, -- GitLab From 5da00870aece2b2f7966fbb0230bde4d8dddb5a5 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Sat, 3 Oct 2015 19:33:54 +0300 Subject: [PATCH 245/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix unittests --- .../Test/Unit/Helper/DataTest.php | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/app/code/Magento/ConfigurableProduct/Test/Unit/Helper/DataTest.php b/app/code/Magento/ConfigurableProduct/Test/Unit/Helper/DataTest.php index 67c6a01be1f..ead7283f2d5 100644 --- a/app/code/Magento/ConfigurableProduct/Test/Unit/Helper/DataTest.php +++ b/app/code/Magento/ConfigurableProduct/Test/Unit/Helper/DataTest.php @@ -139,7 +139,7 @@ class DataTest extends \PHPUnit_Framework_TestCase $allowedProducts = []; for ($i = 1; $i <= 2; $i++) { $productMock = $this->getMock( - 'Magento\Catalog\Model\Product', ['getData', 'getImage', 'getId', '__wakeup'], [], '', false + 'Magento\Catalog\Model\Product', ['getData', 'getImage', 'getId', '__wakeup', 'getMediaGalleryImages'], [], '', false ); $productMock->expects($this->any()) ->method('getData') @@ -159,19 +159,17 @@ class DataTest extends \PHPUnit_Framework_TestCase 'attribute_id_1' => [ 'attribute_code_value_1' => ['product_id_1', 'product_id_2'], ], - 'images' => [ - 'attribute_id_1' => [ - 'attribute_code_value_1' => [ - 'product_id_1' => 'http://example.com/base_img_url', - 'product_id_2' => 'http://example.com/base_img_url_2', - ], - ], - 'attribute_id_2' => [ - 'attribute_code_value_2' => [ - 'product_id_1' => 'http://example.com/base_img_url', - 'product_id_2' => 'http://example.com/base_img_url_2', - ], + 'index' => [ + 'product_id_1' => [ + 'attribute_id_1' => 'attribute_code_value_1', + 'attribute_id_2' => 'attribute_code_value_2' ], + + 'product_id_2' => [ + 'attribute_id_1' => 'attribute_code_value_1', + 'attribute_id_2' => 'attribute_code_value_2' + ] + ], 'attribute_id_2' => [ 'attribute_code_value_2' => ['product_id_1', 'product_id_2'], -- GitLab From 5ab0874db407964c8bdc10ea2a2291d861d9081b Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Sat, 3 Oct 2015 20:17:46 +0300 Subject: [PATCH 246/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product --- .../Catalog/view/frontend/templates/product/view/gallery.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 1e7cd3db22f..40afc9e365c 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -35,7 +35,7 @@ ?: $block->getImageAttribute('product_page_image_medium', 'width'); ?>, "transitionduration": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/transition/duration"); ?>, "transition": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/transition/effect"); ?>", - "navarrows": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/navarrows"); ?>", + "navarrows": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/navarrows"); ?>, "navtype": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/navtype"); ?>", "navdir": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/navdir"); ?>" }, -- GitLab From 08166101674f073419352e7d59636b88bacd8094 Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Sat, 3 Oct 2015 20:17:49 +0300 Subject: [PATCH 247/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product --- app/design/frontend/Magento/luma/etc/view.xml | 2 +- lib/web/mage/gallery/gallery.html | 6 +- lib/web/mage/gallery/gallery.js | 63 +++++++++++++++++-- 3 files changed, 64 insertions(+), 7 deletions(-) diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index 29336ddfbd2..46abe7f13b1 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -199,7 +199,7 @@ <var name="duration">500</var> <!-- Sets transition duration in ms --> </var> <var name="fullscreen"> - <var name="nav">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> + <var name="navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="loop">true</var> <!-- Fullscreen navigation loop (true/false/null) --> <var name="keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="arrows">false</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> diff --git a/lib/web/mage/gallery/gallery.html b/lib/web/mage/gallery/gallery.html index 11b2ad5fd07..4f4c92b7e54 100644 --- a/lib/web/mage/gallery/gallery.html +++ b/lib/web/mage/gallery/gallery.html @@ -4,7 +4,8 @@ * See COPYING.txt for license details. */ --> -<div class="fotorama-item" data-gallery-role="gallery"> +<div class="fotorama-item" data-gallery-role="gallery" tabindex="0"> + <div data-gallery-role="fotorama__focusable-start" tabindex="0"></div> <div class="fotorama__wrap fotorama__wrap--css3 fotorama__wrap--slide fotorama__wrap--toggle-arrows"> <div class="fotorama__stage"> <div class="fotorama__arr fotorama__arr--prev" tabindex="0" role="button" aria-label="Previos"> @@ -22,7 +23,7 @@ </div> <div class="fotorama__nav-wrap" data-gallery-role="nav-wrap"> <div class="fotorama__nav fotorama__nav--thumbs"> - <div class="fotorama__fullscreen-icon" tabindex="0" role="button"></div> + <div class="fotorama__fullscreen-icon" data-gallery-role="fotorama__fullscreen-icon" tabindex="0" role="button"></div> <div class="fotorama__thumb__arr--left" tabindex="0" role="button" aria-label="Previos"> <div class="fotorama__thumb__arr" data-gallery-role="arrow"></div> </div> @@ -35,5 +36,6 @@ </div> </div> </div> + <div data-gallery-role="fotorama__focusable-end" tabindex="0"></div> </div> <div class="magnifier-preview" data-gallery-role="magnifier" id="preview"></div> diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index 9aa2d7302bc..86851cb6105 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -60,6 +60,10 @@ define([ this._super(); + _.bindAll(this, + '_focusSwitcher' + ); + config.options.swipe = true; this.config = config; @@ -83,7 +87,6 @@ define([ thumb: item.thumb }); }); - this.settings.fullscreenData = fullscreenData; config.options.ratio = config.options.width / config.options.height; config.options.height = null; @@ -101,12 +104,21 @@ define([ */ initFullscreenSettings: function () { var settings = this.settings, + self = this, items = []; - settings.fullscreenConfig.swipe = false; + settings.$gallery = this.settings.$element.find('[data-gallery-role="gallery"]'); + settings.focusableStart = this.settings.$element.find('[data-gallery-role="fotorama__focusable-start"]'); + settings.focusableEnd = this.settings.$element.find('[data-gallery-role="fotorama__focusable-end"]'); + settings.closeIcon = this.settings.$element.find('[data-gallery-role="fotorama__fullscreen-icon"]'); + + settings.fullscreenConfig.swipe = true; - settings.$element.on('fotorama:fullscreenenter', function () { + settings.$gallery.on('fotorama:fullscreenenter', function () { + settings.$gallery.focus(); + settings.focusableStart.bind('focusin', self._focusSwitcher); + settings.focusableEnd.bind('focusin', self._focusSwitcher); settings.api.updateOptions(settings.defaultConfig.options, true); settings.api.updateOptions(settings.fullscreenConfig, true); @@ -117,8 +129,10 @@ define([ settings.isFullscreen = true; }); - settings.$element.on('fotorama:fullscreenexit', function () { + settings.$gallery.on('fotorama:fullscreenexit', function () { settings.api.updateOptions(settings.defaultConfig.options, true); + settings.focusableStart.unbind('focusin', this._focusSwitcher); + settings.focusableEnd.unbind('focusin', this._focusSwitcher); if (!_.isEqual(settings.activeBreakpoint, {})) { settings.api.updateOptions(settings.activeBreakpoint.options, true); @@ -128,6 +142,47 @@ define([ }); }, + /** + * Switcher focus. + */ + _focusSwitcher: function (e) { + var target = $(e.target), + settings = this.settings; + + if (target.is(settings.focusableStart)) { + this._setFocus('start'); + } else if (target.is(settings.focusableEnd)) { + this._setFocus('end'); + } + }, + + /** + * Set focus to element. + * @param {String} position - can be "start" and "end" + * positions. + * If position is "end" - sets focus to first + * focusable element in modal window scope. + * If position is "start" - sets focus to last + * focusable element in modal window scope + * + * @param {String} type - can be "opened" or false + * If type is "opened" - looks to "this.options.focus" + * property and sets focus + */ + _setFocus: function (position) { + var settings = this.settings, + focusableElements, + infelicity; + + if (position === 'end') { + settings.$gallery.find(settings.closeIcon).focus(); + } else if (position === 'start') { + infelicity = 2; //Constant for find last focusable element + focusableElements = settings.$gallery.find(':focusable'); + focusableElements.eq(focusableElements.length - infelicity).focus(); + } + }, + /** * Initializes gallery with configuration options. */ -- GitLab From 272fc1e6a22d9d3fb46a221ec9375bf1f542c8b2 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Sat, 3 Oct 2015 21:08:05 +0300 Subject: [PATCH 248/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product --- app/code/Magento/Catalog/Block/Product/View/Gallery.php | 2 ++ app/code/Magento/ConfigurableProduct/Helper/Data.php | 2 ++ app/design/frontend/Magento/luma/etc/view.xml | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/View/Gallery.php b/app/code/Magento/Catalog/Block/Product/View/Gallery.php index 42e4e73d4fc..6bcb8e66813 100644 --- a/app/code/Magento/Catalog/Block/Product/View/Gallery.php +++ b/app/code/Magento/Catalog/Block/Product/View/Gallery.php @@ -63,12 +63,14 @@ class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView $image->setData( 'medium_image_url', $this->_imageHelper->init($product, 'product_page_image_medium') + ->constrainOnly(true)->keepAspectRatio(true)->keepFrame(false) ->setImageFile($image->getFile()) ->getUrl() ); $image->setData( 'large_image_url', $this->_imageHelper->init($product, 'product_page_image_large') + ->constrainOnly(true)->keepAspectRatio(true)->keepFrame(false) ->setImageFile($image->getFile()) ->getUrl() ); diff --git a/app/code/Magento/ConfigurableProduct/Helper/Data.php b/app/code/Magento/ConfigurableProduct/Helper/Data.php index 45302ad89f8..347be9282be 100644 --- a/app/code/Magento/ConfigurableProduct/Helper/Data.php +++ b/app/code/Magento/ConfigurableProduct/Helper/Data.php @@ -51,12 +51,14 @@ class Data $image->setData( 'medium_image_url', $this->imageHelper->init($product, 'product_page_image_medium') + ->constrainOnly(true)->keepAspectRatio(true)->keepFrame(false) ->setImageFile($image->getFile()) ->getUrl() ); $image->setData( 'large_image_url', $this->imageHelper->init($product, 'product_page_image_large') + ->constrainOnly(true)->keepAspectRatio(true)->keepFrame(false) ->setImageFile($image->getFile()) ->getUrl() ); diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index 46abe7f13b1..7d25912c636 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -77,8 +77,8 @@ </image> <image id="product_page_image_large" type="image"/> <image id="product_page_image_medium" type="image"> - <width>560</width> - <height>700</height> + <width>700</width> + <height>560</height> </image> <image id="product_page_image_small" type="thumbnail"> <width>88</width> -- GitLab From c69836da29d3634981578d01f80e35d9e4faea8c Mon Sep 17 00:00:00 2001 From: Dale Sikkema <dsikkema@ebay.com> Date: Sun, 4 Oct 2015 18:58:07 -0500 Subject: [PATCH 249/420] MAGETWO-39769: [GITHUB] lastInsertId returns 0 when PK is not AI #1445 --- .../Magento/Framework/Model/Resource/Db/AbstractDb.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/Model/Resource/Db/AbstractDb.php b/lib/internal/Magento/Framework/Model/Resource/Db/AbstractDb.php index 204f868d442..e3842b75db0 100644 --- a/lib/internal/Magento/Framework/Model/Resource/Db/AbstractDb.php +++ b/lib/internal/Magento/Framework/Model/Resource/Db/AbstractDb.php @@ -768,7 +768,9 @@ abstract class AbstractDb extends AbstractResource } $this->getConnection()->insert($this->getMainTable(), $bind); - $object->setId($this->getConnection()->lastInsertId($this->getMainTable())); + if ($this->_isPkAutoIncrement) { + $object->setId($this->getConnection()->lastInsertId($this->getMainTable())); + } if ($this->_useIsObjectNew) { $object->isObjectNew(false); -- GitLab From e9fa63b3e64aac1e16c3908d948c116a58baedf5 Mon Sep 17 00:00:00 2001 From: Dale Sikkema <dsikkema@ebay.com> Date: Sun, 4 Oct 2015 20:26:45 -0500 Subject: [PATCH 250/420] MAGETWO-39769: [GITHUB] lastInsertId returns 0 when PK is not AI #1445 --- .../Test/Unit/Resource/Db/AbstractDbTest.php | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/Resource/Db/AbstractDbTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/Resource/Db/AbstractDbTest.php index 44a367a3df5..afb5b95f6e1 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/Resource/Db/AbstractDbTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/Resource/Db/AbstractDbTest.php @@ -487,4 +487,71 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase $this->_model->save($abstractModelMock); } + + /** + * Test that we only set/override id on object if PK autoincrement is enabled + * @param bool $pkIncrement + * @dataProvider testSaveNewObjectDataProvider + */ + public function testSaveNewObject($pkIncrement) + { + /** + * Mock SUT so as not to test extraneous logic + */ + $model = $this->getMockBuilder('Magento\Framework\Model\Resource\Db\AbstractDb') + ->disableOriginalConstructor() + ->setMethods(['_prepareDataForSave', 'getIdFieldName', 'getConnection', 'getMainTable']) + ->getMockForAbstractClass(); + /** + * Only testing the logic in a protected method and property, must use reflection to avoid dealing with large + * amounts of unrelated logic in save function + * + * make saveNewObject and _isPkAutoIncrement public + */ + $reflectionMethod = new \ReflectionMethod($model, 'saveNewObject'); + $reflectionMethod->setAccessible(true); + $reflectionProperty = new \ReflectionProperty($model, '_isPkAutoIncrement'); + $reflectionProperty->setAccessible(true); + $reflectionProperty->setValue($model, $pkIncrement); + + // Mocked behavior + $connectionMock = $this->getMockBuilder('\Magento\Framework\DB\Adapter\AdapterInterface') + ->disableOriginalConstructor() + ->setMethods(['lastInsertId']) + ->getMockForAbstractClass(); + $getConnectionInvokedCount = $pkIncrement ? 2 : 1; + $model->expects($this->exactly($getConnectionInvokedCount)) + ->method('getConnection') + ->willReturn($connectionMock); + + $idFieldName = 'id_field_name'; + $model->expects($this->once())->method('_prepareDataForSave')->willReturn([$idFieldName => 'id',]); + + + // Test expectations + // Only get object's id field name if not PK autoincrement + $getIdFieldNameInvokedCount = $pkIncrement ? 1 : 0; + $model->expects($this->exactly($getIdFieldNameInvokedCount)) + ->method('getIdFieldName') + ->willReturn($idFieldName); + + // Only set object id if not PK autoincrement + $setIdInvokedCount = $pkIncrement ? 1 : 0; + $inputObject = $this->getMockBuilder('\Magento\Framework\Model\AbstractModel') + ->disableOriginalConstructor() + ->getMock(); + $inputObject->expects($this->exactly($setIdInvokedCount))->method('setId'); + + // Only call lastInsertId if not PK autoincrement + $lastInsertIdInvokedCount = $pkIncrement ? 1 : 0; + $connectionMock->expects($this->exactly($lastInsertIdInvokedCount))->method('lastInsertId'); + + $reflectionMethod->invokeArgs($model, [$inputObject]); + } + + public function testSaveNewObjectDataProvider() + { + return [[true], [false]]; + } + } -- GitLab From d0d1605918454996dcca922b9e0bd34cea08338a Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Mon, 5 Oct 2015 14:04:24 +0300 Subject: [PATCH 251/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Thumbnails background color --- lib/web/mage/gallery/gallery.less | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index a701e89c4c8..04696062fe9 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -509,6 +509,7 @@ } .fotorama__thumb { + background-color: @color-gray94; height: 100%; overflow: hidden; position: relative; -- GitLab From 700ffaf8d7d4927b289c8fc44da4ad34a4108f29 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Mon, 5 Oct 2015 14:10:01 +0300 Subject: [PATCH 252/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix missed part --- lib/internal/Magento/Framework/Config/View.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/internal/Magento/Framework/Config/View.php b/lib/internal/Magento/Framework/Config/View.php index fb294bbbd0e..703cd37bc40 100644 --- a/lib/internal/Magento/Framework/Config/View.php +++ b/lib/internal/Magento/Framework/Config/View.php @@ -105,6 +105,10 @@ class View extends \Magento\Framework\Config\AbstractXml */ public function getVarValue($module, $var) { + if (!isset($this->_data['vars'][$module])) { + return false; + } + $value = $this->_data['vars'][$module]; foreach (explode('/', $var) as $node) { if (is_array($value) && isset($value[$node])) { @@ -113,6 +117,7 @@ class View extends \Magento\Framework\Config\AbstractXml return false; } } + return $value; } -- GitLab From 34113567f942ed6dd6eb17faea9d221b04fdb23a Mon Sep 17 00:00:00 2001 From: Uladzislau Harbachou <uladzislau_harbachou@epam.com> Date: Mon, 5 Oct 2015 14:13:24 +0300 Subject: [PATCH 253/420] JS-241: Various rendering bugs with Fullscreen Gallery - Fixed error in console - Fixed undefined error in magnifier --- lib/web/mage/gallery/gallery.less | 27 ++++++++++ lib/web/magnifier/magnifier.js | 84 ++++++++++++++++++------------- lib/web/magnifier/magnify.js | 2 +- 3 files changed, 76 insertions(+), 37 deletions(-) diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index a701e89c4c8..2034fc98abb 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -721,6 +721,7 @@ } .fotorama__fullscreen-icon { + //display: none; &:focus { &:extend(.fotorama-focus); border-radius: 50%; @@ -730,6 +731,7 @@ .fotorama--fullscreen { .fotorama__fullscreen-icon { + //display: inline-block; background-position: (-@size-fotorama-block) 0; } } @@ -1181,6 +1183,19 @@ } } +.fotorama__wrap--only-active { + .fotorama__stage, + .fotorama__nav { + max-width: 99999px !important; + } + .fotorama__stage__frame { + visibility: hidden; + } + .fotorama__stage__frame.fotorama__active { + visibility: visible; + } +} + .fotorama__thumb__arr { &:extend(.fotorama-sprite); background-size: 300%; @@ -1188,6 +1203,18 @@ padding-bottom: @fotorama-thumb-arrow; } +.magnify-fullimage { + display: none; +} + body.fotorama__fullscreen { overflow-y: hidden; + .magnify-fullimage { + display: inline-block; + } + .fotorama__stage__shaft { + //.fotorama__img { + // display: none; + //} + } } diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 1c6bac93ff4..cdc3b13c2b7 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -96,7 +96,9 @@ var MagnifyCls = { magnifyHidden: "magnify-hidden", - magnifyOpaque: "magnify-opaque" + magnifyOpaque: "magnify-opaque", + magnifyFull: "magnify-fullimage" + }; @@ -459,7 +461,7 @@ ? options.onthumbmove : currentOpts.onthumbmove; - largeUrl = gOptions.original || $thumb.attr('src'); + largeUrl = gOptions.full || $thumb.attr('src'); if (thumb.id === '') { idx = thumb.id = 'magnifier-item-' + gId; @@ -557,14 +559,17 @@ } function toggleZoomButtons($image) { - var image = new Image(); - image.src = $image.attr("src"); - if ( (image.height > $image.parent().height()) || (image.width > $image.parent().width()) ) { - $('.fotorama__zoom-in').show(); - $('.fotorama__zoom-out').show(); - } else { - $('.fotorama__zoom-in').hide(); - $('.fotorama__zoom-out').hide(); + var path = $image.attr("src"), + imgSize; + if (path) { + imgSize = getImageSize(path); + if ((imgSize.rh > $image.parent().height()) || (imgSize.rw > $image.parent().width())) { + $('.fotorama__zoom-in').show(); + $('.fotorama__zoom-out').show(); + } else { + $('.fotorama__zoom-in').hide(); + $('.fotorama__zoom-out').hide(); + } } } @@ -578,8 +583,9 @@ isTouchEnabled = 'ontouchstart' in document.documentElement; $('[data-gallery-role="gallery"]').on('fotorama:fullscreenenter fotorama:showend fotorama:load', function () { - var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), - $imageContainer = $image.parent(), + var $preview = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage'), + $imageContainer = $preview.parent(), gallery = $('[data-gallery-role="gallery"]'); gallery.on('fotorama:fullscreenexit', function () { @@ -590,29 +596,33 @@ }); if (gallery.data('fotorama').fullScreen) { - + //if (!$imageContainer.find('.' + MagnifyCls.magnifyFull).length) { + // $imageContainer.append('<img class="' + MagnifyCls.magnifyFull + '" src ="' + options.full + '"/>'); + //} toggleZoomButtons($image); $('.fotorama__stage__frame .fotorama__img').each(function () { - var image = new Image(); - image.src = $(this).attr("src"); - - if ( (image.height > $(this).parent().height()) || (image.width > $(this).parent().width()) ) { - - if (image.height / image.width < $(this).parent().height() / $(this).parent().width()) { - $(this).width($(this).parent().width()); - $(this).height('auto'); - } else { - $(this).height($(this).parent().height()); - $(this).width('auto'); + var path = $(this).attr("src"), + imgSize; + if (path) { + imgSize = getImageSize(path); + + if ((imgSize.rh > $(this).parent().height()) || (imgSize.rw > $(this).parent().width())) { + + if (imgSize.rh / imgSize.rw < $(this).parent().height() / $(this).parent().width()) { + $(this).width($(this).parent().width()); + $(this).height('auto'); + } else { + $(this).height($(this).parent().height()); + $(this).width('auto'); + } + + $(this).css({ + 'top': '', + 'left': '' + }); } - - $(this).css({ - 'top': '', - 'left': '' - }); } - }); } @@ -690,7 +700,7 @@ } }); }); - }; + } function onScroll() { @@ -749,8 +759,10 @@ function checkFullscreenImagePosition() { if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { - var $image = $('[data-gallery-role="stage-shaft"] > [data-active="true"] > img'), - $imageContainer = $image.parent(), + var $preview = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage'), + $imageContainer = $preview.parent(), + gallery = $('[data-gallery-role="gallery"]'), top, left; if (($imageContainer.offset().top + $imageContainer.height()) > ($image.offset().top + $image.height())) { @@ -793,7 +805,7 @@ } - if (setedResult >imgOriginalSize.rw) { + if (setedResult > imgOriginalSize.rw) { setedResult = imgOriginalSize.rw; } $image.css({'width': setedResult, height: 'auto'}); @@ -882,9 +894,9 @@ var delta = e.deltaY || e.detail || e.wheelDelta; if (delta > 0) { - zoomOut(e) + zoomOut(e); } else { - zoomIn(e) + zoomIn(e); } e.preventDefault ? e.preventDefault() : (e.returnValue = false); diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index 869e2f4ce89..22b50c0e8d5 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -81,7 +81,7 @@ define([ $(element).on('fotorama:showend fotorama:load fotorama:fullscreenexit fotorama:ready', function (e, fotorama) { hideMagnifier(); config.magnifierOpts.large = $(gallerySelector).data('fotorama').activeFrame.img; - config.magnifierOpts.original = fotorama.data[fotorama.activeIndex].original; + config.magnifierOpts.full = fotorama.data[fotorama.activeIndex].original; $($(gallerySelector).data('fotorama').activeFrame.$stageFrame).magnify(config.magnifierOpts); }); $(element).on('gallery:loaded', function () { -- GitLab From 19abfb90ec9450937ccdf21a65c214ceb68efa18 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Mon, 5 Oct 2015 14:53:07 +0300 Subject: [PATCH 254/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix missed Gallery Unit test --- .../Test/Unit/Block/Product/View/GalleryTest.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Test/Unit/Block/Product/View/GalleryTest.php b/app/code/Magento/Catalog/Test/Unit/Block/Product/View/GalleryTest.php index 2912429dd9b..eec42410e2e 100644 --- a/app/code/Magento/Catalog/Test/Unit/Block/Product/View/GalleryTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Block/Product/View/GalleryTest.php @@ -113,7 +113,8 @@ class GalleryTest extends \PHPUnit_Framework_TestCase [$productMock, 'product_page_image_small', [], $this->imageHelper], [$productMock, 'product_page_image_medium', [], $this->imageHelper], [$productMock, 'product_page_image_large', [], $this->imageHelper], - ]); + ]) + ->willReturnSelf(); $this->imageHelper->expects($this->exactly(3)) ->method('setImageFile') ->with('test_file') @@ -128,6 +129,19 @@ class GalleryTest extends \PHPUnit_Framework_TestCase ->method('getUrl') ->willReturn('product_page_image_large_url'); + $this->imageHelper->expects($this->exactly(2)) + ->method('constrainOnly') + ->with(true) + ->willReturnSelf(); + $this->imageHelper->expects($this->exactly(2)) + ->method('keepAspectRatio') + ->with(true) + ->willReturnSelf(); + $this->imageHelper->expects($this->exactly(2)) + ->method('keepFrame') + ->with(false) + ->willReturnSelf(); + $images = $this->model->getGalleryImages(); $this->assertInstanceOf('Magento\Framework\Data\Collection', $images); } -- GitLab From f15da4f3412f242432c53b3d461cffab6c5ded1a Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Mon, 5 Oct 2015 15:38:33 +0300 Subject: [PATCH 255/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix configuration bug --- lib/internal/Magento/Framework/Config/View.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/internal/Magento/Framework/Config/View.php b/lib/internal/Magento/Framework/Config/View.php index fb294bbbd0e..3f1edc40836 100644 --- a/lib/internal/Magento/Framework/Config/View.php +++ b/lib/internal/Magento/Framework/Config/View.php @@ -71,15 +71,18 @@ class View extends \Magento\Framework\Config\AbstractXml */ protected function parseVarElement(\DOMElement $node) { - if ($node->getElementsByTagName('var')->length) { - $result = []; - foreach ($node->getElementsByTagName('var') as $varNode) { + $result = []; + for ($varNode = $node->firstChild; $varNode !== null; $varNode = $varNode->nextSibling) { + if ($varNode instanceof \DOMElement && $varNode->tagName == "var") { $varName = $varNode->getAttribute('name'); $result[$varName] = $this->parseVarElement($varNode); } - } else { + } + if (!count($result)) + { $result = $node->nodeValue; } + return $result; } -- GitLab From 6aabb0e828e12f8b4c8704bd5a0a581394eb26b0 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Mon, 5 Oct 2015 15:53:50 +0300 Subject: [PATCH 256/420] MAGETWO-42762: Improve performance of table rendering - Extend uiCollection methods - Move unique properties handling to base element --- .../view/base/web/js/grid/editing/record.js | 18 +- .../view/base/web/js/grid/filters/filters.js | 22 -- .../Ui/view/base/web/js/grid/listing.js | 16 +- .../Ui/view/base/web/js/grid/massactions.js | 1 - .../Ui/view/base/web/js/grid/paging/paging.js | 1 - .../view/base/web/js/lib/core/collection.js | 199 ++++++++---------- .../base/web/js/lib/core/element/element.js | 79 ++++++- .../web/templates/grid/sticky/toolbar.html | 33 +-- .../view/base/web/templates/grid/toolbar.html | 33 +-- 9 files changed, 184 insertions(+), 218 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js b/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js index 2097ee77947..15baff272c9 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/editing/record.js @@ -142,7 +142,7 @@ define([ */ createFields: function (columns) { columns.forEach(function (column) { - if (column.editor && !this.getField(column.index)) { + if (column.editor && !this.hasChild(column.index)) { this.initField(column); } }, this); @@ -150,18 +150,6 @@ define([ return this; }, - /** - * Returns instance of a field found by provided identifier. - * - * @param {String} index - Identifier of a field inside record. - * @returns {Object} - */ - getField: function (index) { - return this.elems.findWhere({ - index: index - }); - }, - /** * Returns instance of a column found by provided index. * @@ -169,7 +157,7 @@ define([ * @returns {Column} */ getColumn: function (index) { - return this.columns().getColumn(index); + return this.columns().getChild(index); }, /** @@ -320,7 +308,7 @@ define([ var fields; fields = this.columns().elems.map(function (column) { - return this.getField(column.index) || column; + return this.getChild(column.index) || column; }, this); this.fields(fields); diff --git a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js index daad5333abc..d58e7895654 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/filters/filters.js @@ -265,28 +265,6 @@ define([ }, true, true); }, - /** - * Returns instance of a filter found by provided index. - * - * @param {String} index - Index of a filter (e.g. 'title'). - * @returns {Filter} - */ - getFilter: function (index) { - return this.elems.findWhere({ - index: index - }); - }, - - /** - * Checks if collection contains a specfied filter. - * - * @param {String} index - Index of a filter. - * @returns {Boolean} - */ - hasFilter: function (index) { - return !!this.getFilter(index); - }, - /** * Returns an array of range filters. * diff --git a/app/code/Magento/Ui/view/base/web/js/grid/listing.js b/app/code/Magento/Ui/view/base/web/js/grid/listing.js index a972f3cfbf1..5b68524bc69 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/listing.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/listing.js @@ -40,7 +40,7 @@ define([ rows: '${ $.provider }:data.items' }, listens: { - elems: 'setPositions updateVisible', + elems: 'updatePositions updateVisible', '${ $.provider }:reload': 'showLoader', '${ $.provider }:reloaded': 'hideLoader' }, @@ -156,7 +156,7 @@ define([ * * @returns {Listing} Chainable. */ - setPositions: function () { + updatePositions: function () { var positions = {}; this.elems.each(function (elem, index) { @@ -190,18 +190,6 @@ define([ return this; }, - /** - * Returns instance of a column found by provided identifier. - * - * @param {String} index - Columns' identifier. - * @returns {Column} - */ - getColumn: function (index) { - return this.elems.findWhere({ - index: index - }); - }, - /** * Returns reference to 'visibleColumns' array. * diff --git a/app/code/Magento/Ui/view/base/web/js/grid/massactions.js b/app/code/Magento/Ui/view/base/web/js/grid/massactions.js index 2e9a39b2bdd..e2273b9a1f3 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/massactions.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/massactions.js @@ -18,7 +18,6 @@ define([ defaults: { template: 'ui/grid/actions', stickyTmpl: 'ui/grid/sticky/actions', - componentType: 'massaction', selectProvider: '', actions: [], noItemsMsg: $t('You haven\'t selected any items!'), diff --git a/app/code/Magento/Ui/view/base/web/js/grid/paging/paging.js b/app/code/Magento/Ui/view/base/web/js/grid/paging/paging.js index e121aeb5407..5605f8faf92 100644 --- a/app/code/Magento/Ui/view/base/web/js/grid/paging/paging.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/paging/paging.js @@ -19,7 +19,6 @@ define([ pageSize: 20, current: 1, selectProvider: '', - componentType: 'paging', sizesConfig: { component: 'Magento_Ui/js/grid/paging/sizes', diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js b/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js index d81d1969392..5cac8edb895 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/collection.js @@ -23,25 +23,12 @@ define([ return Element.extend({ defaults: { template: 'ui/collection', - componentType: 'container', _elems: [], ignoreTmpls: { childDefaults: true } }, - /** - * Initializes component. - * - * @returns {Collection} Chainable. - */ - initialize: function () { - this._super() - .initUnique(); - - return this; - }, - /** * Initializes observable properties. * @@ -56,24 +43,6 @@ define([ return this; }, - /** - * Initializes listeners of the unique property. - * - * @returns {Collection} Chainable. - */ - initUnique: function () { - var update = this.onUniqueUpdate.bind(this), - uniqueNs = this.uniqueNs; - - this.hasUnique = this.uniqueProp && uniqueNs; - - if (this.hasUnique) { - this.source.on(uniqueNs, update, this.name); - } - - return this; - }, - /** * Called when another element was added to current component. * @@ -87,60 +56,15 @@ define([ }, /** - * Updates property specified in uniqueNs - * if components' unique property is set to 'true'. - * - * @returns {Collection} Chainable. - */ - setUnique: function () { - var property = this.uniqueProp; - - if (this[property]()) { - this.source.set(this.uniqueNs, this.name); - } - - return this; - }, - - /** - * Retrieves requested region. - * Creates region if it was not created yet + * Returns instance of a child found by provided index. * - * @returns {ObservableArray}. + * @param {String} index - Index of a child. + * @returns {Object} */ - getRegion: function (name) { - var regions = this.regions = this.regions || {}, - region; - - if (name) { - if (!regions[name]) { - regions[name] = []; - - this.observe.call(regions, name); - } - - region = regions[name]; - } - - return region; - }, - - /** - * Replaces specified regions' data with a provided one. - * Creates region if it was not created yet. - * - * @param {Array} items - New regions' data. - * @param {String} name - Name of the region. - * @returns {Collection} Chainable. - */ - updateRegion: function (items, name) { - var region = this.getRegion(name); - - if (region) { - region(items); - } - - return this; + getChild: function (index) { + return _.findWhere(this.elems(), { + index: index + }); }, /** @@ -175,38 +99,104 @@ define([ }); if (update) { - this._update(); + this._updateCollection(); } return this; }, /** - * Removes specified element from the 'elems' array. + * Removes specified child from collection. * - * @param {Object} elem - Element to be removed. + * @param {(Object|String)} elem - Child or index of a child to be removed. * @returns {Collection} Chainable. */ removeChild: function (elem) { - utils.remove(this._elems, elem); - this._update(); + if (_.isString(elem)) { + elem = this.getChild(elem); + } + + if (elem) { + utils.remove(this._elems, elem); + this._updateCollection(); + } return this; }, /** - * Removes all references to current instance and - * calls 'destroy' method on all of its' children. - * @private + * Checks if specified child exists in collection. + * + * @param {Sring} index - Index of a child. + * @returns {Boolean} + */ + hasChild: function (index) { + return !!this.getChild(index); + }, + + /** + * Creates 'async' wrapper for the specified child + * using uiRegistry 'async' method and caches it + * in a '_requested' components object. * + * @param {String} index - Index of a child. + * @returns {Function} Async module wrapper. + */ + requestChild: function (index) { + var name = this.formChildName(index); + + return this.requestModule(name); + }, + + /** + * Creates complete child name based on a provided index. + * + * @param {String} index - Index of a child. + * @returns {String} + */ + formChildName: function (index) { + return this.name + '.' + index; + }, + + /** + * Retrieves requested region. + * Creates region if it was not created yet + * + * @returns {ObservableArray} + */ + getRegion: function (name) { + var regions = this.regions = this.regions || {}; + + if (!regions[name]) { + regions[name] = []; + + this.observe.call(regions, name); + } + + return regions[name]; + }, + + /** + * Replaces specified regions' data with a provided one. + * Creates region if it was not created yet. + * + * @param {Array} items - New regions' data. + * @param {String} name - Name of the region. * @returns {Collection} Chainable. */ - _clearRefs: function () { + updateRegion: function (items, name) { + this.getRegion(name)(items); + + return this; + }, + + /** + * Destroys collection along with its' elements. + */ + destroy: function () { this._super(); this.elems.each('destroy'); - - return this; }, /** @@ -222,7 +212,7 @@ define([ this._elems[index] = elem; } - this._update() + this._updateCollection() .initElement(elem); }, @@ -233,9 +223,14 @@ define([ * * @returns {Collection} Chainable. */ - _update: function () { + _updateCollection: function () { var _elems = compact(this._elems), - grouped = _.groupBy(_elems, 'displayArea'); + grouped; + + grouped = _elems.filter(function (elem) { + return elem.displayArea && _.isString(elem.displayArea); + }); + grouped = _.groupBy(grouped, 'displayArea'); _.each(grouped, this.updateRegion, this); @@ -289,16 +284,6 @@ define([ }); return _.flatten(result); - }, - - /** - * Callback which fires when property under uniqueNs has changed. - */ - onUniqueUpdate: function (name) { - var active = name === this.name, - property = this.uniqueProp; - - this[property](active); } }); }); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js b/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js index 84688e9a3a4..4e83320b6b3 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js @@ -63,8 +63,8 @@ define([ Element = _.extend({ defaults: { template: '', - displayArea: '', containers: [], + _requesetd: {}, registerNodes: true, storageConfig: { provider: 'localStorage', @@ -90,7 +90,8 @@ define([ .initObservable() .initModules() .initStatefull() - .initLinks(); + .initLinks() + .initUnique(); return this; }, @@ -113,8 +114,8 @@ define([ initModules: function () { var modules = this.modules || {}; - _.each(modules, function (component, property) { - this[property] = registry.async(component); + _.each(modules, function (name, property) { + this[property] = this.requestModule(name); }, this); if (!_.isFunction(this.source)) { @@ -174,6 +175,24 @@ define([ return this; }, + /** + * Initializes listeners of the unique property. + * + * @returns {Element} Chainable. + */ + initUnique: function () { + var update = this.onUniqueUpdate.bind(this), + uniqueNs = this.uniqueNs; + + this.hasUnique = this.uniqueProp && uniqueNs; + + if (this.hasUnique) { + this.source.on(uniqueNs, update, this.name); + } + + return this; + }, + /** * Makes specified property to be stored automatically. * @@ -194,6 +213,40 @@ define([ return this; }, + /** + * Updates property specified in uniqueNs + * if elements' unique property is set to 'true'. + * + * @returns {Element} Chainable. + */ + setUnique: function () { + var property = this.uniqueProp; + + if (this[property]()) { + this.source.set(this.uniqueNs, this.name); + } + + return this; + }, + + /** + * Creates 'async' wrapper for the specified component + * using uiRegistry 'async' method and caches it + * in a '_requested' components object. + * + * @param {String} name - Name of requested component. + * @returns {Function} Async module wrapper. + */ + requestModule: function (name) { + var requested = this._requesetd; + + if (!requested[name]) { + requested[name] = registry.async(name); + } + + return requested[name]; + }, + /** * Returns path to elements' template. * @@ -254,15 +307,9 @@ define([ * @returns {Element} Chainable. */ remove: function (path) { - var data, + var data = utils.nested(this, path), diffs; - if (!path) { - return this; - } - - data = utils.nested(this, path); - if (_.isUndefined(data) || _.isFunction(data)) { return this; } @@ -509,6 +556,16 @@ define([ }); return !!bubble; + }, + + /** + * Callback which fires when property under uniqueNs has changed. + */ + onUniqueUpdate: function (name) { + var active = name === this.name, + property = this.uniqueProp; + + this[property](active); } }, Events, links); diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/sticky/toolbar.html b/app/code/Magento/Ui/view/base/web/templates/grid/sticky/toolbar.html index 15687352050..140a5242289 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/sticky/toolbar.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/sticky/toolbar.html @@ -4,38 +4,25 @@ * See COPYING.txt for license details. */ --> - <div class="admin__data-grid-header" data-role="sticky-el-root"> <div class="admin__data-grid-header-row"> - <!-- ko foreach: getRegion('bottom') --> - <!-- ko if: $data.componentType === 'massaction' --> - <!-- ko template: getTemplate() --><!-- /ko --> - <!-- /ko --> + <!-- ko scope: requestChild('listing_massaction') --> + <!-- ko template: getTemplate() --><!-- /ko --> <!-- /ko --> - <!-- ko foreach: getRegion('bottom') --> - <!-- ko if: $data.componentType === 'paging' --> - <!-- ko template: totalTmpl --><!-- /ko --> - <!-- /ko --> + <!-- ko scope: requestChild('listing_paging') --> + <!-- ko template: totalTmpl --><!-- /ko --> <!-- /ko --> <!-- ko foreach: getRegion('dataGridFilters') --> <!-- ko template: $data.stickyTmpl || getTemplate() --><!-- /ko --> <!-- /ko --> - <div class="admin__data-grid-actions-wrap"> - <!-- ko foreach: getRegion('dataGridActions') --> - <!-- ko template: getTemplate() --><!-- /ko --> - <!-- /ko --> + <div class="admin__data-grid-actions-wrap" data-bind="foreach: getRegion('dataGridActions')"> + <!-- ko template: getTemplate() --><!-- /ko --> </div> - <!-- ko foreach: getRegion('bottom') --> - <!-- ko if: $data.componentType === 'paging' --> - <!-- ko template: getTemplate() --><!-- /ko --> - <!-- /ko --> + <!-- ko scope: requestChild('listing_paging') --> + <!-- ko template: getTemplate() --><!-- /ko --> <!-- /ko --> </div> </div> -<!-- ko foreach: getRegion('dataGridFilters') --> - <!-- ko if: $data.index === 'listing_filters' --> - <!-- ko scope: chips --> - <!-- ko template: $data.stickyTmpl || getTemplate() --> - <!-- /ko --> - <!-- /ko --> +<!-- ko scope: requestChild('listing_filters_chips') --> + <!-- ko template: $data.stickyTmpl || getTemplate() --> <!-- /ko --> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/toolbar.html b/app/code/Magento/Ui/view/base/web/templates/grid/toolbar.html index 36482b1d973..529b32d7d7a 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/toolbar.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/toolbar.html @@ -5,41 +5,26 @@ */ --> -<div class="admin__data-grid-header" - data-role="data-grid-toolbar"> +<div class="admin__data-grid-header" data-role="data-grid-toolbar"> <div class="admin__data-grid-header-row"> - <div class="admin__data-grid-actions-wrap"> - <!-- ko foreach: getRegion('dataGridActions') --> + <div class="admin__data-grid-actions-wrap" data-bind="foreach: getRegion('dataGridActions')"> <!-- ko template: getTemplate() --><!-- /ko --> - <!-- /ko --> </div> <!-- ko foreach: getRegion('dataGridFilters') --> - <!-- ko template: getTemplate() --><!-- /ko --> + <!-- ko template: getTemplate() --><!-- /ko --> <!-- /ko --> </div> <div class="admin__data-grid-header-row row row-gutter"> - <div class="col-xs-2"> - <!-- ko foreach: getRegion('bottom') --> - <!-- ko if: $data.componentType === 'massaction' --> - <!-- ko template: getTemplate() --><!-- /ko --> - <!-- /ko --> - <!-- /ko --> + <div class="col-xs-2" data-bind="scope: requestChild('listing_massaction')"> + <!-- ko template: getTemplate() --><!-- /ko --> </div> <div class="col-xs-10"> <div class="row"> - <div class="col-xs-3"> - <!-- ko foreach: getRegion('bottom') --> - <!-- ko if: $data.componentType === 'paging' --> - <!-- ko template: totalTmpl --><!-- /ko --> - <!-- /ko --> - <!-- /ko --> + <div class="col-xs-3" data-bind="scope: requestChild('listing_paging')"> + <!-- ko template: totalTmpl --><!-- /ko --> </div> - <div class="col-xs-9"> - <!-- ko foreach: getRegion('bottom') --> - <!-- ko if: $data.componentType === 'paging' --> - <!-- ko template: getTemplate() --><!-- /ko --> - <!-- /ko --> - <!-- /ko --> + <div class="col-xs-9" data-bind="scope: requestChild('listing_paging')"> + <!-- ko template: getTemplate() --><!-- /ko --> </div> </div> </div> -- GitLab From cea95472214f228e6e533d2d0ccb74c58a69a2a4 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Mon, 5 Oct 2015 17:09:10 +0300 Subject: [PATCH 257/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix configuration --- .../frontend/Magento/blank/etc/view.xml | 24 ++++--------------- app/design/frontend/Magento/luma/etc/view.xml | 19 +++------------ 2 files changed, 8 insertions(+), 35 deletions(-) diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index 83600f8db5e..02a511df476 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -179,7 +179,7 @@ </images> <vars module="Magento_Catalog"> - <!-- New gallery and magnifier theme settings --> + <!-- Gallery and magnifier theme settings. Start --> <var name="gallery"> <var name="navigation">thumbs</var> <!-- Gallery navigation style (false/thumbs/dots) --> <var name="loop">true</var> <!-- Gallery navigation loop (true/false) --> @@ -195,7 +195,7 @@ <var name="duration">500</var> <!-- Sets transition duration in ms --> </var> <var name="fullscreen"> - <var name="nav">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> + <var name="navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="loop">true</var> <!-- Fullscreen navigation loop (true/false/null) --> <var name="keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="arrows">false</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> @@ -210,11 +210,10 @@ <var name="carousel">true</var> <!-- Display navigation thumbs as carousel (true/false) --> </var> </var> - </var> <var name="magnifier"> - <var name="fullscreenzoom">20</var> <!-- Zoom for fullscreen --> + <var name="fullscreenzoom">5</var> <!-- Zoom for fullscreen (integer)--> <var name="top"></var> <!-- Top position of magnifier --> <var name="left"></var> <!-- Left position of magnifier --> <var name="width"></var> <!-- Width of magnifier block --> @@ -230,28 +229,15 @@ </var> <var name="options"> <var name="options"> - <var name="nav">dots</var> + <var name="navigation">dots</var> </var> <var name="magnifierOpts"> <var name="enabled">false</var> </var> </var> </var> - <var name="desktop"> - <var name="conditions"> - <var name="max-width">768px</var> - </var> - <var name="options"> - <var name="options"> - <var name="nav">thumbs</var> - </var> - <var name="magnifierOpts"> - <var name="enabled">true</var> - </var> - </var> - </var> </var> - <!-- end --> + <!-- end. Gallery and magnifier theme settings --> <var name="product_small_image_sidebar_size">100</var> <!-- Override for small product image --> <var name="product_base_image_size">275</var> <!-- Override for base product image --> diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index 7d25912c636..ce50357dba1 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -183,7 +183,7 @@ </images> <vars module="Magento_Catalog"> - <!-- New gallery and magnifier theme settings --> + <!-- Gallery and magnifier theme settings. Start --> <var name="gallery"> <var name="navigation">thumbs</var> <!-- Gallery navigation style (false/thumbs/dots) --> <var name="loop">true</var> <!-- Gallery navigation loop (true/false) --> @@ -233,28 +233,15 @@ </var> <var name="options"> <var name="options"> - <var name="nav">dots</var> + <var name="navigation">dots</var> </var> <var name="magnifierOpts"> <var name="enabled">false</var> </var> </var> </var> - <var name="desktop"> - <var name="conditions"> - <var name="max-width">768px</var> - </var> - <var name="options"> - <var name="options"> - <var name="nav">thumbs</var> - </var> - <var name="magnifierOpts"> - <var name="enabled">true</var> - </var> - </var> - </var> </var> - <!-- end --> + <!-- end. Gallery and magnifier theme settings --> <var name="product_small_image_sidebar_size">100</var> <!-- Override for small product image --> <var name="product_base_image_size">275</var> <!-- Override for base product image --> -- GitLab From 5db0d38170679e1b40586ba47ddae5a86e04aa48 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Mon, 5 Oct 2015 17:54:30 +0300 Subject: [PATCH 258/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product --- .../view/frontend/web/js/configurable.js | 6 +++++- app/code/Magento/Ui/view/base/web/js/lib/class.js | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js b/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js index 444749e6b1e..c2f0e189946 100644 --- a/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js +++ b/app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js @@ -235,7 +235,11 @@ define([ this._fillSelect(element.nextSetting); this._resetChildren(element.nextSetting); } else { - this.inputSimpleProduct.val(element.selectedOptions[0].config.allowedProducts[0]); + if (!!document.documentMode) { + this.inputSimpleProduct.val(element.options[element.selectedIndex].config.allowedProducts[0]); + } else { + this.inputSimpleProduct.val(element.selectedOptions[0].config.allowedProducts[0]); + } } } else { this._resetChildren(element); diff --git a/app/code/Magento/Ui/view/base/web/js/lib/class.js b/app/code/Magento/Ui/view/base/web/js/lib/class.js index 12b70b4a45c..d118959bd26 100644 --- a/app/code/Magento/Ui/view/base/web/js/lib/class.js +++ b/app/code/Magento/Ui/view/base/web/js/lib/class.js @@ -40,7 +40,7 @@ define([ constr = function () { var obj = this; - if (!obj || !Object.getPrototypeOf(obj) === constr.prototype) { + if (!obj || !Object.getPrototypeOf(obj) === constr.prototype || obj === window) { obj = Object.create(constr.prototype); } -- GitLab From 5127018481b5bc73e19c32827855124d5584c909 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Mon, 5 Oct 2015 18:29:24 +0300 Subject: [PATCH 259/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix styles due code review --- lib/web/mage/gallery/gallery.less | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 78db483bc6c..daab28cddf4 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -196,7 +196,7 @@ height: 100%; position: absolute; width: 100%; - left:0; + left: 0; } .fotorama-transform-disabled { @@ -268,9 +268,6 @@ .fotorama-sprite { &:extend(.fotorama-print-background); background: url('gallery.png') no-repeat; - //@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 2dppx) { - // background: url('fotorama@2x.png') no-repeat; - //} } .fotorama-print-background { @@ -668,7 +665,6 @@ .fotorama__arr { z-index: @z-index-9; - } .fotorama__fullscreen-icon, .fotorama__video-close { @@ -722,7 +718,6 @@ } .fotorama__fullscreen-icon { - //display: none; &:focus { &:extend(.fotorama-focus); border-radius: 50%; @@ -732,7 +727,6 @@ .fotorama--fullscreen { .fotorama__fullscreen-icon { - //display: inline-block; background-position: (-@size-fotorama-block) 0; } } @@ -948,10 +942,10 @@ &.fotorama__shadows--top:before, &.fotorama__shadows--bottom:after { left: 0; - right:0; + right: 0; background-size: 100% 1px, 100% 5px ; - height:10px; - width:auto; + height: 10px; + width: auto; } &.fotorama__shadows--left:before { .fotorama-shadow-gradient(0, 50%); @@ -967,13 +961,13 @@ &.fotorama__shadows--top:before { .fotorama-shadow-gradient(50%, 0); background-position: 0 0, 0 0; - top:0; + top: 0; } &.fotorama__shadows--bottom:after { .fotorama-shadow-gradient(50%, 100%); background-position: 0 100%, 0 100%; - bottom:0; + bottom: 0; } } @@ -1213,9 +1207,5 @@ body.fotorama__fullscreen { .magnify-fullimage { display: inline-block; } - .fotorama__stage__shaft { - //.fotorama__img { - // display: none; - //} - } + .fotorama__stage__shaft {} } -- GitLab From 6dd01813020075e48a182c454a3fc788ab438dd5 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Mon, 5 Oct 2015 19:15:16 +0300 Subject: [PATCH 260/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Gallery loader --- .../frontend/templates/product/view/gallery.phtml | 8 +++++++- lib/web/mage/gallery/gallery.html | 4 ++-- lib/web/mage/gallery/gallery.js | 15 +++++++++++---- lib/web/mage/gallery/gallery.less | 10 ++++++++++ 4 files changed, 30 insertions(+), 7 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 40afc9e365c..413f1cfe921 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -12,7 +12,13 @@ * @var $block \Magento\Catalog\Block\Product\View\Gallery */ ?> -<div class="gallery-placeholder" data-gallery-role="gallery-placeholder"></div> +<div class="gallery-placeholder _block-content-loading" data-gallery-role="gallery-placeholder"> + <div data-role="loader" class="loading-mask"> + <div class="loader"> + <img src="<?php /* @escapeNotVerified */ echo $block->getViewFileUrl('images/loader-2.gif'); ?>" alt="Loading..."> + </div> + </div> +</div> <script type="text/x-magento-init"> { "[data-gallery-role=gallery-placeholder]": { diff --git a/lib/web/mage/gallery/gallery.html b/lib/web/mage/gallery/gallery.html index 4f4c92b7e54..34d26c812da 100644 --- a/lib/web/mage/gallery/gallery.html +++ b/lib/web/mage/gallery/gallery.html @@ -24,13 +24,13 @@ <div class="fotorama__nav-wrap" data-gallery-role="nav-wrap"> <div class="fotorama__nav fotorama__nav--thumbs"> <div class="fotorama__fullscreen-icon" data-gallery-role="fotorama__fullscreen-icon" tabindex="0" role="button"></div> - <div class="fotorama__thumb__arr--left" tabindex="0" role="button" aria-label="Previos"> + <div class="fotorama__thumb__arr--left" tabindex="0" role="button" aria-label="<%= previous %>"> <div class="fotorama__thumb__arr" data-gallery-role="arrow"></div> </div> <div class="fotorama__nav__shaft"> <div class="fotorama__thumb-border"></div> </div> - <div class="fotorama__thumb__arr--right" tabindex="0" role="button" aria-label="Next"> + <div class="fotorama__thumb__arr--right" tabindex="0" role="button" aria-label="<%= next %>"> <div class="fotorama__thumb__arr" data-gallery-role="arrow"></div> </div> </div> diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index 86851cb6105..8eed70fc449 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -7,9 +7,11 @@ define([ 'fotorama/fotorama', 'underscore', 'matchMedia', + 'mage/template', 'text!mage/gallery/gallery.html', - 'Magento_Ui/js/lib/class' -], function ($, fotorama, _, mediaCheck, template, Class) { + 'Magento_Ui/js/lib/class', + 'mage/translate' +], function ($, fotorama, _, mediaCheck, template, galleryTpl, Class, $t) { 'use strict'; /** @@ -189,7 +191,11 @@ define([ initGallery: function () { var breakpoints = {}, settings = this.settings, - config = this.config; + config = this.config, + tpl = template(galleryTpl, { + next: $t('Next'), + previous: $t('Previous') + }); if (settings.breakpoints) { _.each(_.values(settings.breakpoints), function (breakpoint) { @@ -213,7 +219,8 @@ define([ config.click = false; config.breakpoints = null; settings.currentConfig = config; - settings.$element.html(template); + settings.$element.html(tpl); + settings.$element.removeClass('_block-content-loading'); settings.$elementF = $(settings.$element.children()[0]); settings.$elementF.fotorama(config); settings.fotoramaApi = settings.$elementF.data('fotorama'); diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 78db483bc6c..22c702b637b 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -1208,6 +1208,16 @@ display: none; } +.gallery-placeholder { + .loader img { + position: absolute; + } + .loading-mask { + padding: 0 0 50%; + position: absolute; + } +} + body.fotorama__fullscreen { overflow-y: hidden; .magnify-fullimage { -- GitLab From e41ba9e8dff701603fe4339e4fffce47073736b5 Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Mon, 5 Oct 2015 19:17:06 +0300 Subject: [PATCH 261/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix slide long press bug --- lib/web/fotorama/fotorama.js | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index c1fe1fcf217..78f5b81bbe7 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -2300,6 +2300,7 @@ fotoramaVersion = '4.6.4'; var keydownCommon = 'keydown.' + _fotoramaClass, localStamp = _fotoramaClass + stamp, keydownLocal = 'keydown.' + localStamp, + keyupLocal = 'keyup.' + localStamp, resizeLocal = 'resize.' + localStamp + ' ' + 'orientationchange.' + localStamp; if (FLAG) { @@ -2316,12 +2317,16 @@ fotoramaVersion = '4.6.4'; catched = true; that.cancelFullScreen(); } else if ((e.shiftKey && e.keyCode === 32 && allowKey('space')) || (e.keyCode === 37 && allowKey('left')) || (e.keyCode === 38 && allowKey('up'))) { + that.longPress.progress(); index = '<'; } else if ((e.keyCode === 32 && allowKey('space')) || (e.keyCode === 39 && allowKey('right')) || (e.keyCode === 40 && allowKey('down'))) { + that.longPress.progress(); index = '>'; } else if (e.keyCode === 36 && allowKey('home')) { + that.longPress.progress(); index = '<<'; } else if (e.keyCode === 35 && allowKey('end')) { + that.longPress.progress(); index = '>>'; } } @@ -2330,6 +2335,13 @@ fotoramaVersion = '4.6.4'; index && that.show({index: index, slow: e.altKey, user: true}); }); + if (FLAG) { + $DOCUMENT + .on(keyupLocal, function (e) { + that.longPress.end(); + }); + } + if (!that.index) { $DOCUMENT .off(keydownCommon) @@ -3385,7 +3397,7 @@ fotoramaVersion = '4.6.4'; changeAutoplay(); }; - if (!o_fade) { + if (!o_fade || that.longPress.inProgress) { slide($stageShaft, { pos: -getPosByIndex(dirtyIndex, measures.w, opts.margin, repositionIndex), overPos: overPos, @@ -3416,8 +3428,7 @@ fotoramaVersion = '4.6.4'; guessIndex: typeof options.coo !== 'undefined' ? guessIndex : activeIndex, keep: silent }); - - if (o_navThumbs) slideThumbBorder(time); + if (o_navThumbs) slideThumbBorder(that.longPress.inProgress ? that.longPress.calcThumbSlideTime(time) : time); } showedFLAG = typeof lastActiveIndex !== 'undefined' && lastActiveIndex !== activeIndex; @@ -3636,6 +3647,21 @@ fotoramaVersion = '4.6.4'; } } + that.longPress = { + progress: function(){ + this.inProgress = this.count > 3; + this.count++; + }, + end: function(){ + this.inProgress = false; + this.count = 0; + }, + count: 0, + calcThumbSlideTime: function(msec){ + return msec/50; + } + }; + that.destroy = function () { that.cancelFullScreen(); that.stopAutoplay(); -- GitLab From 4e165ef57009bae9bdeb271b00d219f5b072a557 Mon Sep 17 00:00:00 2001 From: Uladzislau Harbachou <uladzislau_harbachou@epam.com> Date: Tue, 6 Oct 2015 03:08:11 +0300 Subject: [PATCH 262/420] JS-241: Various rendering bugs with Fullscreen Gallery -Fixed zoomIn/Out in fullscreen -replaced original size -fixed zoom step --- lib/web/mage/gallery/gallery.html | 6 +- lib/web/mage/gallery/gallery.less | 13 +- lib/web/magnifier/magnifier.js | 330 ------------------------------ lib/web/magnifier/magnify.js | 253 ++++++++++++++++++++++- 4 files changed, 259 insertions(+), 343 deletions(-) diff --git a/lib/web/mage/gallery/gallery.html b/lib/web/mage/gallery/gallery.html index 4f4c92b7e54..7a4565e7b57 100644 --- a/lib/web/mage/gallery/gallery.html +++ b/lib/web/mage/gallery/gallery.html @@ -7,7 +7,7 @@ <div class="fotorama-item" data-gallery-role="gallery" tabindex="0"> <div data-gallery-role="fotorama__focusable-start" tabindex="0"></div> <div class="fotorama__wrap fotorama__wrap--css3 fotorama__wrap--slide fotorama__wrap--toggle-arrows"> - <div class="fotorama__stage"> + <div class="fotorama__stage" data-fotorama-stage="fotorama__stage"> <div class="fotorama__arr fotorama__arr--prev" tabindex="0" role="button" aria-label="Previos"> <div class="fotorama__arr__arr" data-gallery-role="arrow"></div> </div> @@ -18,8 +18,8 @@ <div class="fotorama__arr__arr" data-gallery-role="arrow"></div> </div> <div class="fotorama__video-close"></div> - <div class="fotorama__zoom-in"></div> - <div class="fotorama__zoom-out"></div> + <div class="fotorama__zoom-in" data-zoom-in="fotorama__zoom-in"></div> + <div class="fotorama__zoom-out" data-zoom-out="fotorama__zoom-out"></div> </div> <div class="fotorama__nav-wrap" data-gallery-role="nav-wrap"> <div class="fotorama__nav fotorama__nav--thumbs"> diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 2034fc98abb..8aefc6d9e9d 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -721,7 +721,7 @@ } .fotorama__fullscreen-icon { - //display: none; + display: none; &:focus { &:extend(.fotorama-focus); border-radius: 50%; @@ -731,7 +731,7 @@ .fotorama--fullscreen { .fotorama__fullscreen-icon { - //display: inline-block; + display: inline-block; background-position: (-@size-fotorama-block) 0; } } @@ -1212,9 +1212,12 @@ body.fotorama__fullscreen { .magnify-fullimage { display: inline-block; } + .magnify-lens { + display: none !important; + } .fotorama__stage__shaft { - //.fotorama__img { - // display: none; - //} + .fotorama__img { + display: none; + } } } diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index cdc3b13c2b7..232579bb4f4 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -558,150 +558,6 @@ } } - function toggleZoomButtons($image) { - var path = $image.attr("src"), - imgSize; - if (path) { - imgSize = getImageSize(path); - if ((imgSize.rh > $image.parent().height()) || (imgSize.rw > $image.parent().width())) { - $('.fotorama__zoom-in').show(); - $('.fotorama__zoom-out').show(); - } else { - $('.fotorama__zoom-in').hide(); - $('.fotorama__zoom-out').hide(); - } - } - } - - function magnifierFullscreen () { - var isDragActive = false, - startX, - startY, - imagePosX, - imagePosY, - touch, - isTouchEnabled = 'ontouchstart' in document.documentElement; - - $('[data-gallery-role="gallery"]').on('fotorama:fullscreenenter fotorama:showend fotorama:load', function () { - var $preview = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), - $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage'), - $imageContainer = $preview.parent(), - gallery = $('[data-gallery-role="gallery"]'); - - gallery.on('fotorama:fullscreenexit', function () { - $thumb.css({ - 'top': '', - 'left': '' - }); - }); - - if (gallery.data('fotorama').fullScreen) { - //if (!$imageContainer.find('.' + MagnifyCls.magnifyFull).length) { - // $imageContainer.append('<img class="' + MagnifyCls.magnifyFull + '" src ="' + options.full + '"/>'); - //} - toggleZoomButtons($image); - - $('.fotorama__stage__frame .fotorama__img').each(function () { - var path = $(this).attr("src"), - imgSize; - if (path) { - imgSize = getImageSize(path); - - if ((imgSize.rh > $(this).parent().height()) || (imgSize.rw > $(this).parent().width())) { - - if (imgSize.rh / imgSize.rw < $(this).parent().height() / $(this).parent().width()) { - $(this).width($(this).parent().width()); - $(this).height('auto'); - } else { - $(this).height($(this).parent().height()); - $(this).width('auto'); - } - - $(this).css({ - 'top': '', - 'left': '' - }); - } - } - }); - } - - $image.on(isTouchEnabled ? 'touchstart' : 'pointerdown mousedown MSPointerDown', function (e) { - if (gallery.data('fotorama').fullScreen) { - e.preventDefault(); - - $image.css('cursor', 'move'); - imagePosY = $image.offset().top; - imagePosX = $image.offset().left; - - if (isTouchEnabled) { - touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; - e.clientX = touch.pageX; - e.clientY = touch.pageY; - } - startX = e.clientX || e.originalEvent.clientX; - startY = e.clientY || e.originalEvent.clientY; - isDragActive = true; - } - }); - - - - $image.on(isTouchEnabled ? 'touchmove' : 'mousemove pointermove MSPointerMove', function (e) { - if (gallery.data('fotorama').fullScreen && isDragActive) { - - var top, - left, - startOffset = $image.offset(), - clientX = e.clientX || e.originalEvent.clientX, - clientY = e.clientY || e.originalEvent.clientY; - - - e.preventDefault(); - - if (isTouchEnabled) { - touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; - e.clientX = touch.pageX; - e.clientY = touch.pageY; - } - top = +imagePosY + (clientY - startY); - left = +imagePosX + (clientX - startX); - - if ($image.height() > $imageContainer.height()) { - - if (($imageContainer.offset().top + $imageContainer.height()) > (top + $image.height())) { - top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); - } else { - top = ($imageContainer.offset().top < top) ? 0 : top; - } - $image.offset({ - 'top': top - }); - } - - if ($image.width() > $imageContainer.width()) { - - if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width())) { - left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); - } else { - left = ($imageContainer.offset().left < left) ? $imageContainer.offset().left : left; - } - $image.offset({ - 'left': left - }); - } - } - }); - - $image.on(isTouchEnabled ? 'touchend' : 'mouseup pointerup MSPointerUp', function (e) { - if (gallery.data('fotorama').fullScreen) { - isDragActive = false; - $image.css('cursor', 'pointer'); - } - }); - }); - } - function onScroll() { if (curThumb !== null) { @@ -709,200 +565,14 @@ } } - if ($('.fotorama-item').data('fotorama').fullScreen) { - $('.fotorama__stage__frame .fotorama__img').each(function () { - var image = new Image(); - image.src = $(this).attr("src"); - - if ( (image.height > $(this).parent().height()) || (image.width > $(this).parent().width()) ) { - - if (image.height / image.width < $(this).parent().height() / $(this).parent().width()) { - $(this).width($(this).parent().width()); - $(this).height(''); - } else { - $(this).height($(this).parent().height()); - $(this).width(''); - } - } - }); - } $(window).on('scroll', onScroll); $(window).resize(function() { - - if ($('.fotorama-item').data('fotorama').fullScreen) { - - $('.fotorama__stage__frame .fotorama__img').each(function () { - var image = new Image(); - image.src = $(this).attr("src"); - - if ( (image.height > $(this).parent().height()) || (image.width > $(this).parent().width()) ) { - - if (image.height / image.width < $(this).parent().height() / $(this).parent().width()) { - $(this).width($(this).parent().width()); - $(this).height(''); - } else { - $(this).height($(this).parent().height()); - $(this).width(''); - } - } - }); - - toggleZoomButtons($('[data-gallery-role="stage-shaft"] [data-active="true"] img')); - } - - _init($box, gOptions); - }); - function checkFullscreenImagePosition() { - if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { - - var $preview = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), - $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage'), - $imageContainer = $preview.parent(), - gallery = $('[data-gallery-role="gallery"]'), - top, left; - - if (($imageContainer.offset().top + $imageContainer.height()) > ($image.offset().top + $image.height())) { - top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); - } else { - top = ($imageContainer.offset().top < $image.offset().top) ? 0 : top; - } - - if (top !== undefined) { - $image.css('top', top); - } - - if (($imageContainer.offset().left + $imageContainer.width()) > ($image.offset().left + $image.width())) { - left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); - } else { - left = ($imageContainer.offset().left < $image.offset().left) ? 0 : left; - } - - if (left !== undefined) { - $image.css('left', left); - } - - if ($image.width() < $imageContainer.width()) { - $image.css('left', ''); - } - - if ($image.height() < $imageContainer.height()) { - $image.css('top', ''); - } - } - } - - function zoomIn(e) { - var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), - gallery = $('[data-gallery-role="gallery"]'), - imgOriginalSize = getImageSize($image[0].src), - setedResult = Math.round($image.width() + options.inc); - if(e) { - e.preventDefault(); - } - - - if (setedResult > imgOriginalSize.rw) { - setedResult = imgOriginalSize.rw; - } - $image.css({'width': setedResult, height: 'auto'}); - checkFullscreenImagePosition(); - } - - function zoomOut(e) { - var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), - gallery = $('[data-gallery-role="gallery"]'), - imgOriginalSize = getImageSize($image[0].src), - setedResult = Math.round($image.width() - options.inc); - if (e) { - e.preventDefault(); - } - - if ($image.width() > $image.height() && $image.width() <= $image.parent().width()) { - return - } - if ($image.width() <= $image.height() && $image.height() <= $image.parent().height()) { - return - } - - $image.css({'width': setedResult, height: 'auto'}); - checkFullscreenImagePosition(); - } - - /** - * Return width and height of original image - * @param src path for original image - * @returns {{rw: number, rh: number}} - */ - function getImageSize(src) { - var img = new Image(), - imgSize = { - rw: 0, - rh: 0 - }; - img.src = src; - imgSize.rw = img.width; - imgSize.rh = img.height; - return imgSize; - } - - - function setEventOnce() { - $('.fotorama__zoom-in') - .off('click', zoomIn) - .on('click', zoomIn); - $('.fotorama__zoom-out') - .off('click', zoomOut) - .on('click', zoomOut); - $('.fotorama__zoom-in') - .off('touchstart', zoomIn) - .on('touchstart', zoomIn); - $('.fotorama__zoom-out') - .off('touchstart', zoomOut) - .on('touchstart', zoomOut); - } - $(document).on('mousemove', onMousemove); _init($box, gOptions); - setEventOnce(); - magnifierFullscreen(); - - $('.fotorama-item').on('fotorama:load', function () { - if (document.querySelector('.fotorama__stage').addEventListener) { - if ('onwheel' in document) { - // IE9+, FF17+, Ch31+ - document.querySelector('.fotorama__stage').addEventListener("wheel", onWheel); - } else if ('onmousewheel' in document) { - - document.querySelector('.fotorama__stage').addEventListener("mousewheel", onWheel); - } else { - // Firefox < 17 - document.querySelector('.fotorama__stage').addEventListener("MozMousePixelScroll", onWheel); - } - } else { // IE8- - document.querySelector('.fotorama__stage').attachEvent("onmousewheel", onWheel); - } - - function onWheel(e) { - if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { - e = e || window.event; - - - var delta = e.deltaY || e.detail || e.wheelDelta; - - if (delta > 0) { - zoomOut(e); - } else { - zoomIn(e); - } - - e.preventDefault ? e.preventDefault() : (e.returnValue = false); - } - } - }) } }(jQuery)); diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index 22b50c0e8d5..db3662a37da 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -24,6 +24,226 @@ define([ }); } + /** + * Return width and height of original image + * @param src path for original image + * @returns {{rw: number, rh: number}} + */ + function getImageSize(src) { + var img = new Image(), + imgSize = { + rw: 0, + rh: 0 + }; + img.src = src; + imgSize.rw = img.width; + imgSize.rh = img.height; + return imgSize; + } + + function zoomIn(e) { + var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage'), + gallery = $(gallerySelector), + imgMaxSize, + setedResult; + e.preventDefault(); + if ($image.length && $image[0].src) { + imgMaxSize = getImageSize($image[0].src); + setedResult = Math.round($image.width() + 10); + $image.css({'width': setedResult, height: 'auto'}); + } + checkFullscreenImagePosition(); + } + + function zoomOut(e) { + var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage'), + gallery = $(gallerySelector), + imgMaxSize, + setedResult; + e.preventDefault(); + if ($image.length && $image[0].src) { + imgMaxSize = getImageSize($image[0].src); + setedResult = Math.round($image.width() - 10); + $image.css({'width': setedResult, height: 'auto'}); + } + checkFullscreenImagePosition(); + } + + /** + * Bind event on scroll on active item in fotorama + * @param e + * @param fotorama - object of fotorama + */ + function mousewheel(e, fotorama, element) { + var $fotoramaStage = $(element).find('[data-fotorama-stage="fotorama__stage"]'), + fotoramaStage = $fotoramaStage.get(0); + if (fotoramaStage.addEventListener) { + if ('onwheel' in document) { + fotoramaStage.addEventListener("wheel", onWheel); + } else if ('onmousewheel' in document) { + fotoramaStage.addEventListener("mousewheel", onWheel); + } else { + fotoramaStage.addEventListener("MozMousePixelScroll", onWheel); + } + } + + function onWheel(e) { + if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { + e = e || window.event; + var delta = e.deltaY || e.detail || e.wheelDelta; + if (delta > 0) { + zoomOut(e); + } else { + zoomIn(e); + } + + e.preventDefault ? e.preventDefault() : (e.returnValue = false); + } + } + + } + + function checkFullscreenImagePosition() { + if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { + + var $preview = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage'), + $imageContainer = $preview.parent(), + gallery = $('[data-gallery-role="gallery"]'), + top, left; + + if (($imageContainer.offset().top + $imageContainer.height()) > ($image.offset().top + $image.height())) { + top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); + } else { + top = ($imageContainer.offset().top < $image.offset().top) ? 0 : top; + } + + if (top !== undefined) { + $image.css('top', top); + } + + if (($imageContainer.offset().left + $imageContainer.width()) > ($image.offset().left + $image.width())) { + left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); + } else { + left = ($imageContainer.offset().left < $image.offset().left) ? 0 : left; + } + + if (left !== undefined) { + $image.css('left', left); + } + + if ($image.width() < $imageContainer.width()) { + $image.css('left', ''); + } + + if ($image.height() < $imageContainer.height()) { + $image.css('top', ''); + } + } + } + + /** + * Metod which makes draggable picture. Also work + * on tauch devices. + * @param e - event object + * @param fotorama - fotorama object + */ + function magnifierFullscreen (e, fotorama) { + var isDragActive = false, + startX, + startY, + imagePosX, + imagePosY, + touch, + isTouchEnabled = 'ontouchstart' in document.documentElement; + + var $gallery = $('[data-gallery-role="gallery"]'), + $preview = $('[data-gallery-role="stage-shaft"] [data-active="true"] img', $gallery), + $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage', $gallery), + $imageContainer = $preview.parent(), + gallery = $gallery.data('fotorama'); + console.log("asdasdad"); + if (gallery.fullScreen) { + if (!$imageContainer.find('.magnify-fullimage').length) { + $imageContainer.append('<img class="magnify-fullimage" src ="' + gallery.options.data[gallery.activeIndex].original + '"/>'); + } + } + + $image.on(isTouchEnabled ? 'touchstart' : 'pointerdown mousedown MSPointerDown', function (e) { + if (gallery.fullScreen) { + e.preventDefault(); + + $image.css('cursor', 'move'); + imagePosY = $image.offset().top; + imagePosX = $image.offset().left; + + if (isTouchEnabled) { + touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; + e.clientX = touch.pageX; + e.clientY = touch.pageY; + } + startX = e.clientX || e.originalEvent.clientX; + startY = e.clientY || e.originalEvent.clientY; + isDragActive = true; + } + }); + + + + $image.on(isTouchEnabled ? 'touchmove' : 'mousemove pointermove MSPointerMove', function (e) { + if (gallery.fullScreen && isDragActive) { + + var top, + left, + clientX = e.clientX || e.originalEvent.clientX, + clientY = e.clientY || e.originalEvent.clientY; + + + e.preventDefault(); + + if (isTouchEnabled) { + touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; + e.clientX = touch.pageX; + e.clientY = touch.pageY; + } + top = +imagePosY + (clientY - startY); + left = +imagePosX + (clientX - startX); + + if ($image.height() > $imageContainer.height()) { + + if (($imageContainer.offset().top + $imageContainer.height()) > (top + $image.height())) { + top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); + } else { + top = ($imageContainer.offset().top < top) ? 0 : top; + } + $image.offset({ + 'top': top + }); + } + + if ($image.width() > $imageContainer.width()) { + + if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width())) { + left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); + } else { + left = ($imageContainer.offset().left < left) ? $imageContainer.offset().left : left; + } + $image.offset({ + 'left': left + }); + } + } + }); + + $image.on(isTouchEnabled ? 'touchend' : 'mouseup pointerup MSPointerUp', function (e) { + if (gallery.fullScreen) { + isDragActive = false; + $image.css('cursor', 'pointer'); + } + }); + } + + /** * Hides magnifier preview and zoom blocks. */ @@ -78,16 +298,39 @@ define([ } }); - $(element).on('fotorama:showend fotorama:load fotorama:fullscreenexit fotorama:ready', function (e, fotorama) { + $(element).on('fotorama:load fotorama:showend fotorama:fullscreenexit fotorama:ready', function (e, fotorama) { hideMagnifier(); config.magnifierOpts.large = $(gallerySelector).data('fotorama').activeFrame.img; config.magnifierOpts.full = fotorama.data[fotorama.activeIndex].original; $($(gallerySelector).data('fotorama').activeFrame.$stageFrame).magnify(config.magnifierOpts); }); - $(element).on('gallery:loaded', function () { - $(element).find(gallerySelector).on('fotorama:show fotorama:fullscreenenter ', function () { - hideMagnifier(); - }); + $(element).on('gallery:loaded', function (e, fotorama) { + $(element).find(gallerySelector) + .on('fotorama:ready', function (e, fotorama) { + var $zoomIn = $('[data-zoom-in="fotorama__zoom-in"]'), + $zoomOut = $('[data-zoom-out="fotorama__zoom-out"]'); + if ( !$zoomIn.hasClass('zoom-in-loaded') ) { + $zoomIn.on('click touchstart', zoomIn); + $zoomIn.addClass('zoom-in-loaded'); + } + if ( !$zoomOut.hasClass('zoom-out-loaded') ) { + $zoomOut.on('click touchstart', zoomOut); + $zoomOut.addClass('zoom-out-loaded'); + } + + }) + .on('fotorama:fullscreenenter', function (e, fotorama) { + magnifierFullscreen(e, fotorama); + mousewheel(e, fotorama, element); + fotorama.setOptions({swipe: false}); + }) + .on('fotorama:load', function (e, fotorama) { + magnifierFullscreen(e, fotorama); + mousewheel(e, fotorama, element); + }) + .on('fotorama:show fotorama:showend', function (e, fotorama) { + magnifierFullscreen(e, fotorama); + }); }); return config; -- GitLab From e0a715ab915cdbdfdcd07c82e365b284d88f9dcc Mon Sep 17 00:00:00 2001 From: Uladzislau Harbachou <uladzislau_harbachou@epam.com> Date: Tue, 6 Oct 2015 09:42:40 +0300 Subject: [PATCH 263/420] JS-258: Click on preview must be opened fullscreen mode -Fix preview on scroll -Added options to control way to open fullscreen --- lib/web/fotorama/fotorama.js | 16 +++++++++++++--- lib/web/mage/gallery/gallery.less | 7 ++++++- lib/web/magnifier/magnify.js | 19 +++++++++++-------- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index c1fe1fcf217..8b9cd658222 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -61,6 +61,7 @@ fotoramaVersion = '4.6.4'; hiddenClass = _fotoramaClass + '--hidden', fullscreenClass = _fotoramaClass + '--fullscreen', + fullscreenPreview = fullscreenClass + '-icons', fullscreenIconClass = _fotoramaClass + '__fullscreen-icon', errorClass = _fotoramaClass + '__error', @@ -1016,7 +1017,13 @@ fotoramaVersion = '4.6.4'; /** * Set type of navigation. Can be thumbs or slides */ - navtype: 'thumbs' + navtype: 'thumbs', + + /** + * If true, fullscreen will be opened on preview click + * If false, will be shown fullscreen icons. + */ + fullpreview: true }, @@ -2418,7 +2425,7 @@ fotoramaVersion = '4.6.4'; * */ function setOptions() { if (!opts.nav || opts.nav === 'dots') { - opts.navdir = 'horizontal' + opts.navdir = 'horizontal'; } that.options = opts = optionsToLowerCase(opts); @@ -2457,6 +2464,7 @@ fotoramaVersion = '4.6.4'; arrsUpdate(); stageWheelUpdate(); thumbArrUpdate(); + $fotorama.toggleClass(fullscreenPreview, opts.fullpreview); if (opts.autoplay) setAutoplayInterval(opts.autoplay); o_thumbSide = numberFromMeasure(opts.thumbwidth) || THUMB_SIZE; @@ -3786,7 +3794,9 @@ fotoramaVersion = '4.6.4'; onTouchEnd: onTouchEnd, onEnd: function (result) { setShadow($stage); - + if (!result.moved && !that.fullScreen && opts.fullpreview) { + that.requestFullScreen(); + } var toggleControlsFLAG = (MS_POINTER && !hoverFLAG || result.touch) && opts.arrows && opts.arrows !== 'always'; diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 9629be938ec..325548988be 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -717,8 +717,13 @@ z-index: @z-index-10; } +.fotorama--fullscreen-icons { + .fotorama__fullscreen-icon { + display: none; + } +} + .fotorama__fullscreen-icon { - display: none; &:focus { &:extend(.fotorama-focus); border-radius: 50%; diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index db3662a37da..775e7187435 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -77,13 +77,17 @@ define([ function mousewheel(e, fotorama, element) { var $fotoramaStage = $(element).find('[data-fotorama-stage="fotorama__stage"]'), fotoramaStage = $fotoramaStage.get(0); - if (fotoramaStage.addEventListener) { - if ('onwheel' in document) { - fotoramaStage.addEventListener("wheel", onWheel); - } else if ('onmousewheel' in document) { - fotoramaStage.addEventListener("mousewheel", onWheel); - } else { - fotoramaStage.addEventListener("MozMousePixelScroll", onWheel); + + if (!$fotoramaStage.hasClass('magnify-wheel-loaded')) { + if (fotoramaStage && fotoramaStage.addEventListener) { + if ('onwheel' in document) { + fotoramaStage.addEventListener("wheel", onWheel); + } else if ('onmousewheel' in document) { + fotoramaStage.addEventListener("mousewheel", onWheel); + } else { + fotoramaStage.addEventListener("MozMousePixelScroll", onWheel); + } + $fotoramaStage.addClass('magnify-wheel-loaded'); } } @@ -162,7 +166,6 @@ define([ $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage', $gallery), $imageContainer = $preview.parent(), gallery = $gallery.data('fotorama'); - console.log("asdasdad"); if (gallery.fullScreen) { if (!$imageContainer.find('.magnify-fullimage').length) { $imageContainer.append('<img class="magnify-fullimage" src ="' + gallery.options.data[gallery.activeIndex].original + '"/>'); -- GitLab From 47cd88ee4c8744bef86ae3a327cbe565737eded0 Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Tue, 6 Oct 2015 09:48:57 +0300 Subject: [PATCH 264/420] MAGETWO-43593: PR - fix FAT --- .../Test/Block/Adminhtml/Product/Grid.php | 20 +++++++++---------- .../Checkout/Test/Block/Cart/Shipping.xml | 1 - .../Checkout/Test/Block/Onepage/Shipping.xml | 5 ++--- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Grid.php b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Grid.php index 408336d433e..c1bb7aeeaad 100644 --- a/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Grid.php +++ b/dev/tests/functional/tests/app/Magento/Catalog/Test/Block/Adminhtml/Product/Grid.php @@ -27,37 +27,37 @@ class Grid extends DataGrid */ protected $filters = [ 'name' => [ - 'selector' => '[name="filters[name]"]', + 'selector' => '[name="name"]', ], 'sku' => [ - 'selector' => '[name="filters[sku]"]', + 'selector' => '[name="sku"]', ], 'type' => [ - 'selector' => '[name="filters[type_id]"]', + 'selector' => '[name="type_id"]', 'input' => 'select', ], 'price_from' => [ - 'selector' => '[name="filters[price][from]"]', + 'selector' => '[name="price[from]"]', ], 'price_to' => [ - 'selector' => '[name="filters[price][to]"]', + 'selector' => '[name="price[to]"]', ], 'qty_from' => [ - 'selector' => '[name="filters[qty][from]"]', + 'selector' => '[name="qty[from]"]', ], 'qty_to' => [ - 'selector' => '[name="filters[qty][to]"]', + 'selector' => '[name="qty[to]"]', ], 'visibility' => [ - 'selector' => '[name="filters[visibility]"]', + 'selector' => '[name="visibility"]', 'input' => 'select', ], 'status' => [ - 'selector' => '[name="filters[status]"]', + 'selector' => '[name="status"]', 'input' => 'select', ], 'set_name' => [ - 'selector' => '[name="filters[attribute_set_id]"]', + 'selector' => '[name="attribute_set_id"]', 'input' => 'select', ], ]; diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Shipping.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Shipping.xml index b2b6b2290fb..6056844a064 100644 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Shipping.xml +++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart/Shipping.xml @@ -6,7 +6,6 @@ */ --> <mapping strict="0"> - <wrapper>shippingAddress</wrapper> <fields> <country_id> <input>select</input> diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml index 1b99093b23e..43064a460be 100644 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml +++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml @@ -6,7 +6,6 @@ */ --> <mapping strict="0"> - <wrapper>shippingAddress</wrapper> <fields> <email> <selector>#customer-email</selector> @@ -15,7 +14,7 @@ <lastname /> <company /> <street> - <selector>[name='shippingAddress[street][0]']</selector> + <selector>[name='street.0']</selector> </street> <city /> <region_id> @@ -26,7 +25,7 @@ </country_id> <telephone /> <postcode> - <selector>[name='shippingAddress[postcode]']</selector> + <selector>[name='postcode']</selector> </postcode> </fields> </mapping> -- GitLab From a5ce4c8b7e142206d03a4d5ca8b172a81fefa2ff Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Tue, 6 Oct 2015 09:52:47 +0300 Subject: [PATCH 265/420] MAGETWO-43593: PR - fix FAT --- .../app/Magento/Checkout/Test/Block/Onepage/Shipping.xml | 4 ++-- .../Test/Block/Adminhtml/Product/AttributesGrid.php | 2 +- .../app/Magento/Sales/Test/Block/Adminhtml/Order/Grid.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml index 43064a460be..51f6b61287f 100644 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml +++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml @@ -14,7 +14,7 @@ <lastname /> <company /> <street> - <selector>[name='street.0']</selector> + <selector>[name='shippingAddress.street.0']</selector> </street> <city /> <region_id> @@ -25,7 +25,7 @@ </country_id> <telephone /> <postcode> - <selector>[name='postcode']</selector> + <selector>[name='shippingAddress.postcode']</selector> </postcode> </fields> </mapping> diff --git a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AttributesGrid.php b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AttributesGrid.php index 523ff4c9c37..78e58b4926c 100644 --- a/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AttributesGrid.php +++ b/dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Block/Adminhtml/Product/AttributesGrid.php @@ -20,7 +20,7 @@ class AttributesGrid extends DataGrid */ protected $filters = [ 'frontend_label' => [ - 'selector' => '[name="filters[frontend_label]"]', + 'selector' => '[name="frontend_label"]', ], ]; } diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Grid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Grid.php index 8edbfb720f7..6fa5b0622f0 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Grid.php +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Grid.php @@ -21,7 +21,7 @@ class Grid extends DataGrid */ protected $filters = [ 'id' => [ - 'selector' => '[name="filters[increment_id]"]', + 'selector' => '[name="increment_id"]', ], 'status' => [ 'selector' => '[name="filters[status]"]', -- GitLab From b1b0253479c93cce63f86edb76321e7f9cdd4390 Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Tue, 6 Oct 2015 11:00:10 +0300 Subject: [PATCH 266/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix slide long press bug --- lib/web/fotorama/fotorama.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 78f5b81bbe7..edf3ca3138e 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -3423,7 +3423,7 @@ fotoramaVersion = '4.6.4'; var guessIndex = limitIndex(activeIndex + minMaxLimit(dirtyIndex - lastActiveIndex, -1, 1)); slideNavShaft({ - time: time, + time: that.longPress.inProgress ? that.longPress.calcThumbSlideTime(time) : time, coo: guessIndex !== activeIndex && options.coo, guessIndex: typeof options.coo !== 'undefined' ? guessIndex : activeIndex, keep: silent @@ -3648,15 +3648,18 @@ fotoramaVersion = '4.6.4'; } that.longPress = { + threshold: 3, + count: 0, progress: function(){ - this.inProgress = this.count > 3; - this.count++; + if (!this.inProgress) { + this.count++; + this.inProgress = this.count > this.threshold; + } }, end: function(){ - this.inProgress = false; this.count = 0; + this.inProgress = false; }, - count: 0, calcThumbSlideTime: function(msec){ return msec/50; } -- GitLab From a11651cbe5fcdd882a56b0c43c11fb0ff72e841f Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Tue, 6 Oct 2015 11:29:46 +0300 Subject: [PATCH 267/420] MAGETWO-43593: PR - fix FAT --- .../Cms/Test/Block/Adminhtml/Page/Grid.php | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Grid.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Grid.php index 76415b59ed4..85622323053 100644 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Grid.php +++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Page/Grid.php @@ -29,43 +29,43 @@ class Grid extends DataGrid */ protected $filters = [ 'page_id_from' => [ - 'selector' => '[name="filters[page_id][from]"]', + 'selector' => '[name="page_id[from]"]', ], 'page_id_to' => [ - 'selector' => '[name="filters[page_id][to]"]', + 'selector' => '[name="page_id[to]"]', ], 'title' => [ - 'selector' => '[name="filters[title]"]', + 'selector' => '[name="title"]', ], 'identifier' => [ - 'selector' => '[name="filters[identifier]"]', + 'selector' => '[name="identifier"]', ], 'page_layout' => [ - 'selector' => '[name="filters[page_layout]"]', + 'selector' => '[name="page_layout"]', 'input' => 'select', ], 'store_id' => [ - 'selector' => '[name="filters[store_id]"]', + 'selector' => '[name="store_id"]', 'input' => 'selectstore' ], 'is_active' => [ - 'selector' => '[name="filters[is_active]"]', + 'selector' => '[name="is_active"]', 'input' => 'select', ], 'creation_time_from' => [ - 'selector' => '[name="filters[creation_time][from]"]', + 'selector' => '[name="creation_time[from]"]', ], 'creation_time_to' => [ - 'selector' => '[name="filters[creation_time][to]"]', + 'selector' => '[name="creation_time[to]"]', ], 'update_time_from' => [ - 'selector' => '[name="filters[update_time][from]"]', + 'selector' => '[name="update_time[from]"]', ], 'update_time_to' => [ - 'selector' => '[name="filters[update_time][to]"]', + 'selector' => '[name="update_time[to]"]', ], 'under_version_control' => [ - 'selector' => '[name="filters[under_version_control]"]', + 'selector' => '[name="under_version_control"]', ], ]; -- GitLab From 6d6a6784fa454f55715cbf0674fa5e72b33c05ca Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Tue, 6 Oct 2015 11:34:17 +0300 Subject: [PATCH 268/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix slide long press bug --- lib/web/fotorama/fotorama.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 2d191beca87..2ed30f8987a 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -3405,7 +3405,7 @@ fotoramaVersion = '4.6.4'; changeAutoplay(); }; - if (!o_fade || that.longPress.inProgress) { + if (!o_fade) { slide($stageShaft, { pos: -getPosByIndex(dirtyIndex, measures.w, opts.margin, repositionIndex), overPos: overPos, @@ -3669,7 +3669,7 @@ fotoramaVersion = '4.6.4'; this.inProgress = false; }, calcThumbSlideTime: function(msec){ - return msec/50; + return msec/10; } }; -- GitLab From 4e178405b08aa2495a019d86444ae8251183daa9 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Tue, 6 Oct 2015 11:53:39 +0300 Subject: [PATCH 269/420] Revert "JS-258: Click on preview must be opened fullscreen mode" This reverts commit e0a715ab915cdbdfdcd07c82e365b284d88f9dcc. --- lib/web/fotorama/fotorama.js | 16 +++------------- lib/web/mage/gallery/gallery.less | 7 +------ lib/web/magnifier/magnify.js | 19 ++++++++----------- 3 files changed, 12 insertions(+), 30 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 87ccca51ddc..78f5b81bbe7 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -61,7 +61,6 @@ fotoramaVersion = '4.6.4'; hiddenClass = _fotoramaClass + '--hidden', fullscreenClass = _fotoramaClass + '--fullscreen', - fullscreenPreview = fullscreenClass + '-icons', fullscreenIconClass = _fotoramaClass + '__fullscreen-icon', errorClass = _fotoramaClass + '__error', @@ -1017,13 +1016,7 @@ fotoramaVersion = '4.6.4'; /** * Set type of navigation. Can be thumbs or slides */ - navtype: 'thumbs', - - /** - * If true, fullscreen will be opened on preview click - * If false, will be shown fullscreen icons. - */ - fullpreview: true + navtype: 'thumbs' }, @@ -2437,7 +2430,7 @@ fotoramaVersion = '4.6.4'; * */ function setOptions() { if (!opts.nav || opts.nav === 'dots') { - opts.navdir = 'horizontal'; + opts.navdir = 'horizontal' } that.options = opts = optionsToLowerCase(opts); @@ -2476,7 +2469,6 @@ fotoramaVersion = '4.6.4'; arrsUpdate(); stageWheelUpdate(); thumbArrUpdate(); - $fotorama.toggleClass(fullscreenPreview, opts.fullpreview); if (opts.autoplay) setAutoplayInterval(opts.autoplay); o_thumbSide = numberFromMeasure(opts.thumbwidth) || THUMB_SIZE; @@ -3820,9 +3812,7 @@ fotoramaVersion = '4.6.4'; onTouchEnd: onTouchEnd, onEnd: function (result) { setShadow($stage); - if (!result.moved && !that.fullScreen && opts.fullpreview) { - that.requestFullScreen(); - } + var toggleControlsFLAG = (MS_POINTER && !hoverFLAG || result.touch) && opts.arrows && opts.arrows !== 'always'; diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 511f6023d48..1fe94fb76c5 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -717,13 +717,8 @@ z-index: @z-index-10; } -.fotorama--fullscreen-icons { - .fotorama__fullscreen-icon { - display: none; - } -} - .fotorama__fullscreen-icon { + display: none; &:focus { &:extend(.fotorama-focus); border-radius: 50%; diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index 775e7187435..db3662a37da 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -77,17 +77,13 @@ define([ function mousewheel(e, fotorama, element) { var $fotoramaStage = $(element).find('[data-fotorama-stage="fotorama__stage"]'), fotoramaStage = $fotoramaStage.get(0); - - if (!$fotoramaStage.hasClass('magnify-wheel-loaded')) { - if (fotoramaStage && fotoramaStage.addEventListener) { - if ('onwheel' in document) { - fotoramaStage.addEventListener("wheel", onWheel); - } else if ('onmousewheel' in document) { - fotoramaStage.addEventListener("mousewheel", onWheel); - } else { - fotoramaStage.addEventListener("MozMousePixelScroll", onWheel); - } - $fotoramaStage.addClass('magnify-wheel-loaded'); + if (fotoramaStage.addEventListener) { + if ('onwheel' in document) { + fotoramaStage.addEventListener("wheel", onWheel); + } else if ('onmousewheel' in document) { + fotoramaStage.addEventListener("mousewheel", onWheel); + } else { + fotoramaStage.addEventListener("MozMousePixelScroll", onWheel); } } @@ -166,6 +162,7 @@ define([ $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage', $gallery), $imageContainer = $preview.parent(), gallery = $gallery.data('fotorama'); + console.log("asdasdad"); if (gallery.fullScreen) { if (!$imageContainer.find('.magnify-fullimage').length) { $imageContainer.append('<img class="magnify-fullimage" src ="' + gallery.options.data[gallery.activeIndex].original + '"/>'); -- GitLab From 4cbe506cc99a7e486656be179341f9e4694e7c61 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Tue, 6 Oct 2015 11:58:51 +0300 Subject: [PATCH 270/420] Revert "JS-241: Various rendering bugs with Fullscreen Gallery" This reverts commit 4e165ef57009bae9bdeb271b00d219f5b072a557. Conflicts: lib/web/mage/gallery/gallery.less --- lib/web/mage/gallery/gallery.html | 6 +- lib/web/mage/gallery/gallery.less | 41 ++-- lib/web/magnifier/magnifier.js | 330 ++++++++++++++++++++++++++++++ lib/web/magnifier/magnify.js | 253 +---------------------- 4 files changed, 353 insertions(+), 277 deletions(-) diff --git a/lib/web/mage/gallery/gallery.html b/lib/web/mage/gallery/gallery.html index 53cd4242f08..34d26c812da 100644 --- a/lib/web/mage/gallery/gallery.html +++ b/lib/web/mage/gallery/gallery.html @@ -7,7 +7,7 @@ <div class="fotorama-item" data-gallery-role="gallery" tabindex="0"> <div data-gallery-role="fotorama__focusable-start" tabindex="0"></div> <div class="fotorama__wrap fotorama__wrap--css3 fotorama__wrap--slide fotorama__wrap--toggle-arrows"> - <div class="fotorama__stage" data-fotorama-stage="fotorama__stage"> + <div class="fotorama__stage"> <div class="fotorama__arr fotorama__arr--prev" tabindex="0" role="button" aria-label="Previos"> <div class="fotorama__arr__arr" data-gallery-role="arrow"></div> </div> @@ -18,8 +18,8 @@ <div class="fotorama__arr__arr" data-gallery-role="arrow"></div> </div> <div class="fotorama__video-close"></div> - <div class="fotorama__zoom-in" data-zoom-in="fotorama__zoom-in"></div> - <div class="fotorama__zoom-out" data-zoom-out="fotorama__zoom-out"></div> + <div class="fotorama__zoom-in"></div> + <div class="fotorama__zoom-out"></div> </div> <div class="fotorama__nav-wrap" data-gallery-role="nav-wrap"> <div class="fotorama__nav fotorama__nav--thumbs"> diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 1fe94fb76c5..2034fc98abb 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -196,7 +196,7 @@ height: 100%; position: absolute; width: 100%; - left: 0; + left:0; } .fotorama-transform-disabled { @@ -268,6 +268,9 @@ .fotorama-sprite { &:extend(.fotorama-print-background); background: url('gallery.png') no-repeat; + //@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 2dppx) { + // background: url('fotorama@2x.png') no-repeat; + //} } .fotorama-print-background { @@ -506,7 +509,6 @@ } .fotorama__thumb { - background-color: @color-gray94; height: 100%; overflow: hidden; position: relative; @@ -665,6 +667,7 @@ .fotorama__arr { z-index: @z-index-9; + } .fotorama__fullscreen-icon, .fotorama__video-close { @@ -718,7 +721,7 @@ } .fotorama__fullscreen-icon { - display: none; + //display: none; &:focus { &:extend(.fotorama-focus); border-radius: 50%; @@ -728,7 +731,7 @@ .fotorama--fullscreen { .fotorama__fullscreen-icon { - display: inline-block; + //display: inline-block; background-position: (-@size-fotorama-block) 0; } } @@ -944,10 +947,10 @@ &.fotorama__shadows--top:before, &.fotorama__shadows--bottom:after { left: 0; - right: 0; + right:0; background-size: 100% 1px, 100% 5px ; - height: 10px; - width: auto; + height:10px; + width:auto; } &.fotorama__shadows--left:before { .fotorama-shadow-gradient(0, 50%); @@ -963,13 +966,13 @@ &.fotorama__shadows--top:before { .fotorama-shadow-gradient(50%, 0); background-position: 0 0, 0 0; - top: 0; + top:0; } &.fotorama__shadows--bottom:after { .fotorama-shadow-gradient(50%, 100%); background-position: 0 100%, 0 100%; - bottom: 0; + bottom:0; } } @@ -1204,28 +1207,14 @@ display: none; } -.gallery-placeholder { - .loader img { - position: absolute; - } - .loading-mask { - padding: 0 0 50%; - position: absolute; - } -} - body.fotorama__fullscreen { overflow-y: hidden; .magnify-fullimage { display: inline-block; } - - .magnify-lens { - display: none !important; - } .fotorama__stage__shaft { - .fotorama__img { - display: none; - } + //.fotorama__img { + // display: none; + //} } } diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 232579bb4f4..cdc3b13c2b7 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -558,6 +558,150 @@ } } + function toggleZoomButtons($image) { + var path = $image.attr("src"), + imgSize; + if (path) { + imgSize = getImageSize(path); + if ((imgSize.rh > $image.parent().height()) || (imgSize.rw > $image.parent().width())) { + $('.fotorama__zoom-in').show(); + $('.fotorama__zoom-out').show(); + } else { + $('.fotorama__zoom-in').hide(); + $('.fotorama__zoom-out').hide(); + } + } + } + + function magnifierFullscreen () { + var isDragActive = false, + startX, + startY, + imagePosX, + imagePosY, + touch, + isTouchEnabled = 'ontouchstart' in document.documentElement; + + $('[data-gallery-role="gallery"]').on('fotorama:fullscreenenter fotorama:showend fotorama:load', function () { + var $preview = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage'), + $imageContainer = $preview.parent(), + gallery = $('[data-gallery-role="gallery"]'); + + gallery.on('fotorama:fullscreenexit', function () { + $thumb.css({ + 'top': '', + 'left': '' + }); + }); + + if (gallery.data('fotorama').fullScreen) { + //if (!$imageContainer.find('.' + MagnifyCls.magnifyFull).length) { + // $imageContainer.append('<img class="' + MagnifyCls.magnifyFull + '" src ="' + options.full + '"/>'); + //} + toggleZoomButtons($image); + + $('.fotorama__stage__frame .fotorama__img').each(function () { + var path = $(this).attr("src"), + imgSize; + if (path) { + imgSize = getImageSize(path); + + if ((imgSize.rh > $(this).parent().height()) || (imgSize.rw > $(this).parent().width())) { + + if (imgSize.rh / imgSize.rw < $(this).parent().height() / $(this).parent().width()) { + $(this).width($(this).parent().width()); + $(this).height('auto'); + } else { + $(this).height($(this).parent().height()); + $(this).width('auto'); + } + + $(this).css({ + 'top': '', + 'left': '' + }); + } + } + }); + } + + $image.on(isTouchEnabled ? 'touchstart' : 'pointerdown mousedown MSPointerDown', function (e) { + if (gallery.data('fotorama').fullScreen) { + e.preventDefault(); + + $image.css('cursor', 'move'); + imagePosY = $image.offset().top; + imagePosX = $image.offset().left; + + if (isTouchEnabled) { + touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; + e.clientX = touch.pageX; + e.clientY = touch.pageY; + } + startX = e.clientX || e.originalEvent.clientX; + startY = e.clientY || e.originalEvent.clientY; + isDragActive = true; + } + }); + + + + $image.on(isTouchEnabled ? 'touchmove' : 'mousemove pointermove MSPointerMove', function (e) { + if (gallery.data('fotorama').fullScreen && isDragActive) { + + var top, + left, + startOffset = $image.offset(), + clientX = e.clientX || e.originalEvent.clientX, + clientY = e.clientY || e.originalEvent.clientY; + + + e.preventDefault(); + + if (isTouchEnabled) { + touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; + e.clientX = touch.pageX; + e.clientY = touch.pageY; + } + top = +imagePosY + (clientY - startY); + left = +imagePosX + (clientX - startX); + + if ($image.height() > $imageContainer.height()) { + + if (($imageContainer.offset().top + $imageContainer.height()) > (top + $image.height())) { + top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); + } else { + top = ($imageContainer.offset().top < top) ? 0 : top; + } + $image.offset({ + 'top': top + }); + } + + if ($image.width() > $imageContainer.width()) { + + if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width())) { + left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); + } else { + left = ($imageContainer.offset().left < left) ? $imageContainer.offset().left : left; + } + $image.offset({ + 'left': left + }); + } + } + }); + + $image.on(isTouchEnabled ? 'touchend' : 'mouseup pointerup MSPointerUp', function (e) { + if (gallery.data('fotorama').fullScreen) { + isDragActive = false; + $image.css('cursor', 'pointer'); + } + }); + }); + } + function onScroll() { if (curThumb !== null) { @@ -565,14 +709,200 @@ } } + if ($('.fotorama-item').data('fotorama').fullScreen) { + $('.fotorama__stage__frame .fotorama__img').each(function () { + var image = new Image(); + image.src = $(this).attr("src"); + + if ( (image.height > $(this).parent().height()) || (image.width > $(this).parent().width()) ) { + + if (image.height / image.width < $(this).parent().height() / $(this).parent().width()) { + $(this).width($(this).parent().width()); + $(this).height(''); + } else { + $(this).height($(this).parent().height()); + $(this).width(''); + } + } + }); + } $(window).on('scroll', onScroll); $(window).resize(function() { + + if ($('.fotorama-item').data('fotorama').fullScreen) { + + $('.fotorama__stage__frame .fotorama__img').each(function () { + var image = new Image(); + image.src = $(this).attr("src"); + + if ( (image.height > $(this).parent().height()) || (image.width > $(this).parent().width()) ) { + + if (image.height / image.width < $(this).parent().height() / $(this).parent().width()) { + $(this).width($(this).parent().width()); + $(this).height(''); + } else { + $(this).height($(this).parent().height()); + $(this).width(''); + } + } + }); + + toggleZoomButtons($('[data-gallery-role="stage-shaft"] [data-active="true"] img')); + } + + _init($box, gOptions); + }); + function checkFullscreenImagePosition() { + if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { + + var $preview = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage'), + $imageContainer = $preview.parent(), + gallery = $('[data-gallery-role="gallery"]'), + top, left; + + if (($imageContainer.offset().top + $imageContainer.height()) > ($image.offset().top + $image.height())) { + top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); + } else { + top = ($imageContainer.offset().top < $image.offset().top) ? 0 : top; + } + + if (top !== undefined) { + $image.css('top', top); + } + + if (($imageContainer.offset().left + $imageContainer.width()) > ($image.offset().left + $image.width())) { + left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); + } else { + left = ($imageContainer.offset().left < $image.offset().left) ? 0 : left; + } + + if (left !== undefined) { + $image.css('left', left); + } + + if ($image.width() < $imageContainer.width()) { + $image.css('left', ''); + } + + if ($image.height() < $imageContainer.height()) { + $image.css('top', ''); + } + } + } + + function zoomIn(e) { + var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + gallery = $('[data-gallery-role="gallery"]'), + imgOriginalSize = getImageSize($image[0].src), + setedResult = Math.round($image.width() + options.inc); + if(e) { + e.preventDefault(); + } + + + if (setedResult > imgOriginalSize.rw) { + setedResult = imgOriginalSize.rw; + } + $image.css({'width': setedResult, height: 'auto'}); + checkFullscreenImagePosition(); + } + + function zoomOut(e) { + var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + gallery = $('[data-gallery-role="gallery"]'), + imgOriginalSize = getImageSize($image[0].src), + setedResult = Math.round($image.width() - options.inc); + if (e) { + e.preventDefault(); + } + + if ($image.width() > $image.height() && $image.width() <= $image.parent().width()) { + return + } + if ($image.width() <= $image.height() && $image.height() <= $image.parent().height()) { + return + } + + $image.css({'width': setedResult, height: 'auto'}); + checkFullscreenImagePosition(); + } + + /** + * Return width and height of original image + * @param src path for original image + * @returns {{rw: number, rh: number}} + */ + function getImageSize(src) { + var img = new Image(), + imgSize = { + rw: 0, + rh: 0 + }; + img.src = src; + imgSize.rw = img.width; + imgSize.rh = img.height; + return imgSize; + } + + + function setEventOnce() { + $('.fotorama__zoom-in') + .off('click', zoomIn) + .on('click', zoomIn); + $('.fotorama__zoom-out') + .off('click', zoomOut) + .on('click', zoomOut); + $('.fotorama__zoom-in') + .off('touchstart', zoomIn) + .on('touchstart', zoomIn); + $('.fotorama__zoom-out') + .off('touchstart', zoomOut) + .on('touchstart', zoomOut); + } + $(document).on('mousemove', onMousemove); _init($box, gOptions); + setEventOnce(); + magnifierFullscreen(); + + $('.fotorama-item').on('fotorama:load', function () { + if (document.querySelector('.fotorama__stage').addEventListener) { + if ('onwheel' in document) { + // IE9+, FF17+, Ch31+ + document.querySelector('.fotorama__stage').addEventListener("wheel", onWheel); + } else if ('onmousewheel' in document) { + + document.querySelector('.fotorama__stage').addEventListener("mousewheel", onWheel); + } else { + // Firefox < 17 + document.querySelector('.fotorama__stage').addEventListener("MozMousePixelScroll", onWheel); + } + } else { // IE8- + document.querySelector('.fotorama__stage').attachEvent("onmousewheel", onWheel); + } + + function onWheel(e) { + if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { + e = e || window.event; + + + var delta = e.deltaY || e.detail || e.wheelDelta; + + if (delta > 0) { + zoomOut(e); + } else { + zoomIn(e); + } + + e.preventDefault ? e.preventDefault() : (e.returnValue = false); + } + } + }) } }(jQuery)); diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index db3662a37da..22b50c0e8d5 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -24,226 +24,6 @@ define([ }); } - /** - * Return width and height of original image - * @param src path for original image - * @returns {{rw: number, rh: number}} - */ - function getImageSize(src) { - var img = new Image(), - imgSize = { - rw: 0, - rh: 0 - }; - img.src = src; - imgSize.rw = img.width; - imgSize.rh = img.height; - return imgSize; - } - - function zoomIn(e) { - var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage'), - gallery = $(gallerySelector), - imgMaxSize, - setedResult; - e.preventDefault(); - if ($image.length && $image[0].src) { - imgMaxSize = getImageSize($image[0].src); - setedResult = Math.round($image.width() + 10); - $image.css({'width': setedResult, height: 'auto'}); - } - checkFullscreenImagePosition(); - } - - function zoomOut(e) { - var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage'), - gallery = $(gallerySelector), - imgMaxSize, - setedResult; - e.preventDefault(); - if ($image.length && $image[0].src) { - imgMaxSize = getImageSize($image[0].src); - setedResult = Math.round($image.width() - 10); - $image.css({'width': setedResult, height: 'auto'}); - } - checkFullscreenImagePosition(); - } - - /** - * Bind event on scroll on active item in fotorama - * @param e - * @param fotorama - object of fotorama - */ - function mousewheel(e, fotorama, element) { - var $fotoramaStage = $(element).find('[data-fotorama-stage="fotorama__stage"]'), - fotoramaStage = $fotoramaStage.get(0); - if (fotoramaStage.addEventListener) { - if ('onwheel' in document) { - fotoramaStage.addEventListener("wheel", onWheel); - } else if ('onmousewheel' in document) { - fotoramaStage.addEventListener("mousewheel", onWheel); - } else { - fotoramaStage.addEventListener("MozMousePixelScroll", onWheel); - } - } - - function onWheel(e) { - if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { - e = e || window.event; - var delta = e.deltaY || e.detail || e.wheelDelta; - if (delta > 0) { - zoomOut(e); - } else { - zoomIn(e); - } - - e.preventDefault ? e.preventDefault() : (e.returnValue = false); - } - } - - } - - function checkFullscreenImagePosition() { - if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { - - var $preview = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), - $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage'), - $imageContainer = $preview.parent(), - gallery = $('[data-gallery-role="gallery"]'), - top, left; - - if (($imageContainer.offset().top + $imageContainer.height()) > ($image.offset().top + $image.height())) { - top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); - } else { - top = ($imageContainer.offset().top < $image.offset().top) ? 0 : top; - } - - if (top !== undefined) { - $image.css('top', top); - } - - if (($imageContainer.offset().left + $imageContainer.width()) > ($image.offset().left + $image.width())) { - left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); - } else { - left = ($imageContainer.offset().left < $image.offset().left) ? 0 : left; - } - - if (left !== undefined) { - $image.css('left', left); - } - - if ($image.width() < $imageContainer.width()) { - $image.css('left', ''); - } - - if ($image.height() < $imageContainer.height()) { - $image.css('top', ''); - } - } - } - - /** - * Metod which makes draggable picture. Also work - * on tauch devices. - * @param e - event object - * @param fotorama - fotorama object - */ - function magnifierFullscreen (e, fotorama) { - var isDragActive = false, - startX, - startY, - imagePosX, - imagePosY, - touch, - isTouchEnabled = 'ontouchstart' in document.documentElement; - - var $gallery = $('[data-gallery-role="gallery"]'), - $preview = $('[data-gallery-role="stage-shaft"] [data-active="true"] img', $gallery), - $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage', $gallery), - $imageContainer = $preview.parent(), - gallery = $gallery.data('fotorama'); - console.log("asdasdad"); - if (gallery.fullScreen) { - if (!$imageContainer.find('.magnify-fullimage').length) { - $imageContainer.append('<img class="magnify-fullimage" src ="' + gallery.options.data[gallery.activeIndex].original + '"/>'); - } - } - - $image.on(isTouchEnabled ? 'touchstart' : 'pointerdown mousedown MSPointerDown', function (e) { - if (gallery.fullScreen) { - e.preventDefault(); - - $image.css('cursor', 'move'); - imagePosY = $image.offset().top; - imagePosX = $image.offset().left; - - if (isTouchEnabled) { - touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; - e.clientX = touch.pageX; - e.clientY = touch.pageY; - } - startX = e.clientX || e.originalEvent.clientX; - startY = e.clientY || e.originalEvent.clientY; - isDragActive = true; - } - }); - - - - $image.on(isTouchEnabled ? 'touchmove' : 'mousemove pointermove MSPointerMove', function (e) { - if (gallery.fullScreen && isDragActive) { - - var top, - left, - clientX = e.clientX || e.originalEvent.clientX, - clientY = e.clientY || e.originalEvent.clientY; - - - e.preventDefault(); - - if (isTouchEnabled) { - touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; - e.clientX = touch.pageX; - e.clientY = touch.pageY; - } - top = +imagePosY + (clientY - startY); - left = +imagePosX + (clientX - startX); - - if ($image.height() > $imageContainer.height()) { - - if (($imageContainer.offset().top + $imageContainer.height()) > (top + $image.height())) { - top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); - } else { - top = ($imageContainer.offset().top < top) ? 0 : top; - } - $image.offset({ - 'top': top - }); - } - - if ($image.width() > $imageContainer.width()) { - - if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width())) { - left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); - } else { - left = ($imageContainer.offset().left < left) ? $imageContainer.offset().left : left; - } - $image.offset({ - 'left': left - }); - } - } - }); - - $image.on(isTouchEnabled ? 'touchend' : 'mouseup pointerup MSPointerUp', function (e) { - if (gallery.fullScreen) { - isDragActive = false; - $image.css('cursor', 'pointer'); - } - }); - } - - /** * Hides magnifier preview and zoom blocks. */ @@ -298,39 +78,16 @@ define([ } }); - $(element).on('fotorama:load fotorama:showend fotorama:fullscreenexit fotorama:ready', function (e, fotorama) { + $(element).on('fotorama:showend fotorama:load fotorama:fullscreenexit fotorama:ready', function (e, fotorama) { hideMagnifier(); config.magnifierOpts.large = $(gallerySelector).data('fotorama').activeFrame.img; config.magnifierOpts.full = fotorama.data[fotorama.activeIndex].original; $($(gallerySelector).data('fotorama').activeFrame.$stageFrame).magnify(config.magnifierOpts); }); - $(element).on('gallery:loaded', function (e, fotorama) { - $(element).find(gallerySelector) - .on('fotorama:ready', function (e, fotorama) { - var $zoomIn = $('[data-zoom-in="fotorama__zoom-in"]'), - $zoomOut = $('[data-zoom-out="fotorama__zoom-out"]'); - if ( !$zoomIn.hasClass('zoom-in-loaded') ) { - $zoomIn.on('click touchstart', zoomIn); - $zoomIn.addClass('zoom-in-loaded'); - } - if ( !$zoomOut.hasClass('zoom-out-loaded') ) { - $zoomOut.on('click touchstart', zoomOut); - $zoomOut.addClass('zoom-out-loaded'); - } - - }) - .on('fotorama:fullscreenenter', function (e, fotorama) { - magnifierFullscreen(e, fotorama); - mousewheel(e, fotorama, element); - fotorama.setOptions({swipe: false}); - }) - .on('fotorama:load', function (e, fotorama) { - magnifierFullscreen(e, fotorama); - mousewheel(e, fotorama, element); - }) - .on('fotorama:show fotorama:showend', function (e, fotorama) { - magnifierFullscreen(e, fotorama); - }); + $(element).on('gallery:loaded', function () { + $(element).find(gallerySelector).on('fotorama:show fotorama:fullscreenenter ', function () { + hideMagnifier(); + }); }); return config; -- GitLab From a54ff0dd7c9b9b4b9204d3e056a0d3a97ef5844f Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Tue, 6 Oct 2015 13:25:18 +0300 Subject: [PATCH 271/420] MAGETWO-43593: PR - fix FAT --- .../Sales/Test/Block/Adminhtml/Order/Grid.php | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Grid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Grid.php index 6fa5b0622f0..75078a0d021 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Grid.php +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Grid.php @@ -24,36 +24,36 @@ class Grid extends DataGrid 'selector' => '[name="increment_id"]', ], 'status' => [ - 'selector' => '[name="filters[status]"]', + 'selector' => '[name="status"]', 'input' => 'select', ], 'purchase_date_from' => [ - 'selector' => '[name="filters[created_at][from]"]', + 'selector' => '[name="created_at[from]"]', ], 'purchase_date_to' => [ - 'selector' => '[name="filters[created_at][to]"]', + 'selector' => '[name="created_at[to]"]', ], 'base_grand_total_from' => [ - 'selector' => '[name="filters[base_grand_total][from]"]', + 'selector' => '[name="base_grand_total[from]"]', ], 'base_grand_total_to' => [ - 'selector' => '[name="filters[base_grand_total][to]"]', + 'selector' => '[name="base_grand_total[to]"]', ], 'purchased_gran_total_from' => [ - 'selector' => '[name="filters[grand_total][from]"]', + 'selector' => '[name="grand_total[from]"]', ], 'purchased_gran_total_to' => [ - 'selector' => '[name="filters[grand_total][to]"]', + 'selector' => '[name="grand_total[to]"]', ], 'purchase_point' => [ - 'selector' => '[name="filters[store_id]"]', + 'selector' => '[name="store_id"]', 'input' => 'selectstore' ], 'bill_to_name' => [ - 'selector' => '[name="filters[billing_name]"]' + 'selector' => '[name="billing_name"]' ], 'ship_to_name' => [ - 'selector' => '[name="filters[shipping_name]"]', + 'selector' => '[name="shipping_name"]', ] ]; -- GitLab From 24e3e1395742ce7b4322a24c1474ca07b8279a20 Mon Sep 17 00:00:00 2001 From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com> Date: Tue, 6 Oct 2015 14:57:26 +0300 Subject: [PATCH 272/420] PV-224: CSS to LESS refactoring --- .../adminhtml/layout/catalog_product_new.xml | 1 - .../product/edit/slideout/form.phtml | 2 +- .../view/adminhtml/web/css/productvideo.css | 261 ------------------ .../frontend/layout/catalog_product_view.xml | 1 - .../view/frontend/web/css/product-video.css | 75 ----- .../web/js/fotorama-add-video-events.js | 8 +- .../web/css/source/_module.less | 236 ++++++++++++++++ .../web/css/source/_module.less | 70 +++++ 8 files changed, 309 insertions(+), 345 deletions(-) delete mode 100755 app/code/Magento/ProductVideo/view/adminhtml/web/css/productvideo.css delete mode 100644 app/code/Magento/ProductVideo/view/frontend/web/css/product-video.css create mode 100644 app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less create mode 100644 app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less diff --git a/app/code/Magento/ProductVideo/view/adminhtml/layout/catalog_product_new.xml b/app/code/Magento/ProductVideo/view/adminhtml/layout/catalog_product_new.xml index e2362f94732..8670703fcf3 100755 --- a/app/code/Magento/ProductVideo/view/adminhtml/layout/catalog_product_new.xml +++ b/app/code/Magento/ProductVideo/view/adminhtml/layout/catalog_product_new.xml @@ -7,7 +7,6 @@ --> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-2columns-left" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd"> <head> - <css src="Magento_ProductVideo::css/productvideo.css"/> <link src="Magento_ProductVideo::js/get-video-information.js"/> </head> <body> diff --git a/app/code/Magento/ProductVideo/view/adminhtml/templates/product/edit/slideout/form.phtml b/app/code/Magento/ProductVideo/view/adminhtml/templates/product/edit/slideout/form.phtml index 6e2418f1196..50d5324fc43 100644 --- a/app/code/Magento/ProductVideo/view/adminhtml/templates/product/edit/slideout/form.phtml +++ b/app/code/Magento/ProductVideo/view/adminhtml/templates/product/edit/slideout/form.phtml @@ -17,7 +17,7 @@ }); }); </script> - <div id="video-player-preview-location"> + <div id="video-player-preview-location" class="video-player-sidebar"> <div class="video-player-container"></div> <div class="video-information title"> <label><?php /* @escapeNotVerified */ echo __('Title:') ?> </label><span></span> diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/css/productvideo.css b/app/code/Magento/ProductVideo/view/adminhtml/web/css/productvideo.css deleted file mode 100755 index e2aa3047a68..00000000000 --- a/app/code/Magento/ProductVideo/view/adminhtml/web/css/productvideo.css +++ /dev/null @@ -1,261 +0,0 @@ - /** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -.image.video-placeholder { - position: relative; - display: inline-block; - text-decoration: none; -} - -.image.video-placeholder:before { - background: url(../images/gallery-sprite.png) no-repeat left bottom; - content: ''; - position: absolute; - height: 49px; - width: 49px; - left: 50%; - top: 18px; - margin-left: -24px; - opacity: 0.7; - z-index: 1; -} - -.video-placeholder .image-placeholder-text { - font-weight: 400; -} - -.admin__field.field-video_image .admin__field-control, -.admin__field.field-video_small_image .admin__field-control, -.admin__field.field-video_thumbnail .admin__field-control, -.admin__field.field-video_swatch_image .admin__field-control, -.admin__field.field-new_video_disabled .admin__field-control { - width: 82px; - margin-left: calc((100%) * .33333333 - 30px); -} - -.admin__field.field-video_image .admin__field-control input, -.admin__field.field-video_small_image .admin__field-control input, -.admin__field.field-video_thumbnail .admin__field-control input, -.admin__field.field-video_swatch_image .admin__field-control input, -.admin__field.field-new_video_disabled .admin__field-control input { - float: right; -} - -.admin__field.field-video_image .admin__field-label, -.admin__field.field-video_small_image .admin__field-label, -.admin__field.field-video_thumbnail .admin__field-label, -.admin__field.field-video_swatch_image .admin__field-label, -.admin__field.field-new_video_disabled .admin__field-label { - width: 200px; - position: absolute; - margin-left: calc((100%) * .33333333 - 30px + 90px); - left: 0px; -} - -.admin__field.field-video_image .admin__field-label:before, -.admin__field.field-video_small_image .admin__field-label:before, -.admin__field.field-video_thumbnail .admin__field-label:before, -.admin__field.field-video_swatch_image .admin__field-label:before, -.admin__field.field-new_video_disabled .admin__field-label:before { - content: none; -} - -.admin__field.field-video_image .admin__field-label span, -.admin__field.field-video_small_image .admin__field-label span, -.admin__field.field-video_thumbnail .admin__field-label span, -.admin__field.field-video_swatch_image .admin__field-label span, -.admin__field.field-new_video_disabled .admin__field-label span { - float: left; -} - -.admin__field.field-video_image, -.admin__field.field-video_small_image, -.admin__field.field-video_thumbnail, -.admin__field.field-video_swatch_image { - margin-bottom: 20px !important; -} - -.admin__field.field-new_video_disabled { - margin-top: 32px !important; -} - -.admin__field.field-video_image .admin__field-control { - position: relative; -} - -.admin__field.field-video_image .admin__field-control:after { - content: 'Role'; - position: absolute; - color: #000; - width: 34px; - height: 20px; - left: 1px; - top: -2px; - font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 1.4rem; - font-weight: 600; -} - -.preview_hidden_image_input_button { - display: none; -} - -.video-item { - position: relative; -} - -.video-item:after { - content: ''; - position: absolute; - bottom: 0; - right: 0; - background: url(../images/gallery-sprite.png) bottom left; - width: 49px; - height: 40px; - z-index: 3; - left: 0; - top: 10px; - margin: auto; -} - -.mage-new-video-dialog #new_video_form { - width: 65%; - float: left; -} - -.mage-new-video-dialog #video-player-preview-location { - width: 34.99999%; - float: left; -} - -.video-player-container { - width: 100%; - height: 20vw; - margin-bottom: 30px; - border: 1px solid #e3e3e3; - position: relative; -} - -.video-player-container:after { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - margin: auto; - width: 93px; - height: 60px; - background: url(../images/camera.png) no-repeat center; - z-index: 1; -} - -.video-information { - margin-bottom: 7px; - display: none; -} - -.video-information:after { - content: " "; /* Older browser do not support empty content */ - visibility: hidden; - display: block; - height: 0; - clear: both; -} - -.video-information label { - font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 1.4rem; - font-weight: 600; - display: block; - width: 25%; - float: left; - text-align: right; -} - -.video-information span { - font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 1.4rem; - font-weight: 300; - display: block; - width: 74.9999%; - float: left; - padding-left: 20px; -} - -.product-video { - width: 100%; - z-index: 20; - height: 100%; - position: relative; -} - -.image.video-placeholder > button[data-role="add-video-button"], -.image.video-placeholder > button { - width: 100%; - height: 100%; - border: 0; - background: transparent; - z-index: 10; - position: relative; -} - -.add-video-button-container { - float: right; - margin-bottom: 10px; -} - -.admin__field.field.field-new_video_screenshot { - margin-bottom: 5px; -} - -.admin__field.field.field-new_video_screenshot_preview { - margin-bottom: 50px; -} - -.image .action-make-base:after { - -webkit-font-smoothing: antialiased; - font-size: 1.8rem; - line-height: inherit; - color: #9e9e9e; - content: '\e63b'; - font-family: 'Admin Icons'; - vertical-align: middle; - display: inline-block; - font-weight: normal; - overflow: hidden; - speak: none; - text-align: center; - position: absolute; - top: -7px; - left: -4px; -} - -.image .action-make-base:hover:after { - color: #7d7d7d; -} - -.admin__scope-old .gallery .image .action-make-base { - border: 0; - width: 0; - height: 0; - position: absolute; - margin: 0; - bottom: 9px; - right: 9px; - left: auto; - background: transparent; -} - -.image .action-make-base span { - display: none; -} - -.admin__scope-old .base-image .image-label { - display: block; -} - -.image.base-image:hover .image-label { - display: none; -} diff --git a/app/code/Magento/ProductVideo/view/frontend/layout/catalog_product_view.xml b/app/code/Magento/ProductVideo/view/frontend/layout/catalog_product_view.xml index 340d82d4ada..69621aaa859 100644 --- a/app/code/Magento/ProductVideo/view/frontend/layout/catalog_product_view.xml +++ b/app/code/Magento/ProductVideo/view/frontend/layout/catalog_product_view.xml @@ -7,7 +7,6 @@ --> <page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd"> <head> - <css src="Magento_ProductVideo::css/product-video.css"/> <link src="Magento_ProductVideo::js/fotorama-add-video-events.js"/> <link src="Magento_ProductVideo::js/load-player.js"/> </head> diff --git a/app/code/Magento/ProductVideo/view/frontend/web/css/product-video.css b/app/code/Magento/ProductVideo/view/frontend/web/css/product-video.css deleted file mode 100644 index 0198f8c98ec..00000000000 --- a/app/code/Magento/ProductVideo/view/frontend/web/css/product-video.css +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ - -.fotorama-video-container.video-unplayed:after { - content: ''; - position: absolute; - bottom: 0; - right: 0; - background: url(../img/gallery-sprite.png) bottom right; - width: 100px; - height: 100px; - left: 0; - top: 12px; - margin: auto; -} -.fotorama-video-container .magnify-lens { - display: none !important; -} -.fotorama-video-container.video-unplayed:hover img { - opacity: 0.6; -} -.fotorama-video-container.video-unplayed:hover:after { - transform: scale(1.25); -} -.video-thumb-icon:after { - content: ''; - position: absolute; - bottom: 0; - right: 0; - background: url(../img/gallery-sprite.png) bottom left; - width: 49px; - height: 40px; - left: 0; - top: 10px; - margin: auto; -} -.video-timing { - width: auto; - height: 30px; - background: rgba(0, 0, 0, 0.75); - padding: 0 17px; - color: #fff; - position: absolute; - right: 0; - line-height: 2; - transition: 0.3s; - bottom: -30px; -} -.video-timing.fadeIn { - bottom: 0; -} -.product-video { - position: absolute; - top: 0; - width: 100%; - height: 85%; - margin-top: 15%; -} -.product-video iframe { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 9999; -} -.fotorama__arr.hidden-video { - z-index: -1; -} -.fotorama__video-close { - bottom: 89%; - top: auto; -} diff --git a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js index e19d635a72b..c6cbc9ca228 100644 --- a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js +++ b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js @@ -30,9 +30,7 @@ require(['jquery', 'jquery/ui', 'catalogGallery'], function ($) { * @param {String} srchref * @returns {{}} */ - function _getYoutubeId(srchref) { - var srcid = srchref.search.split('v=')[1]; - + function _getYoutubeId(srcid) { if (srcid) { ampersandPosition = srcid.indexOf('&'); @@ -278,7 +276,6 @@ require(['jquery', 'jquery/ui', 'catalogGallery'], function ($) { _isVideoBase: function () { var allVideoData = this.options.VideoData, videoItem, - videoSettings, allVideoDataKeys, key, i; @@ -288,10 +285,9 @@ require(['jquery', 'jquery/ui', 'catalogGallery'], function ($) { for (i = 0; i < allVideoDataKeys.length; i++) { key = allVideoDataKeys[i]; videoItem = allVideoData[key]; - videoSettings = allVideoData[videoItem]; if ( - videoSettings.mediaType === this.VID && videoSettings.isBase && + videoItem.mediaType === this.VID && videoItem.isBase && this.options.VideoSettings[0].playIfBase ) { this.Base = true; diff --git a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less new file mode 100644 index 00000000000..7f13601b809 --- /dev/null +++ b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less @@ -0,0 +1,236 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +.image.video-placeholder { + display: inline-block; + position: relative; + text-decoration: none; + &:before { + background: url(../Magento_ProductVideo/images/gallery-sprite.png) no-repeat left bottom; + content: ''; + height: 49px; + left: 50%; + margin-left: -24px; + opacity: 0.7; + position: absolute; + top: 18px; + width: 49px; + z-index: 1; + } + .image-placeholder-text { + font-weight: 400; + } +} + +//re-arrange checkboxes fields in slideout video panel (base, small image etc) +.admin__field { + &.field-video_image, + &.field-video_small_image, + &.field-video_thumbnail, + &.field-video_swatch_image, + &.field-new_video_disabled { + .admin__field-control { + #mix-grid .column(3, @field-grid__columns); + float: left; + margin-left: 80px; + position: relative; + input { + float: right; + } + } + .admin__field-label { + left: 0; + margin-left: 35%; + padding-left: 45px; + position: absolute; + width: 250px; + &:before { + content: none; + } + span { + float: left; + } + } + } + &.field-new_video_disabled { + margin-top: 32px; + } + &.field-video_image .admin__field-control { + position: relative; + &:after { + color: #000; + content: 'Role'; + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 1.4rem; + font-weight: 600; + height: 20px; + position: absolute; + right: 50px; + top: -2px; + width: 34px; + } + } + &.field.field-new_video_screenshot { + margin-bottom: 5px; + } + &.field.field-new_video_screenshot_preview { + margin-bottom: 50px; + } +} + +.admin__scope-old { + .fieldset .admin__field { + &.field-video_image, + &.field-video_small_image, + &.field-video_thumbnail, + &.field-video_swatch_image { + margin-bottom: 20px; + } + } + .gallery .image .action-make-base { + background: transparent; + border: 0; + bottom: 9px; + height: 0; + left: auto; + margin: 0; + position: absolute; + right: 9px; + width: 0 !important; + &:after { + color: #9e9e9e; + content: '\e63b'; + display: inline-block; + font-family: 'Admin Icons'; + font-size: 1.8rem; + font-weight: normal; + left: -4px; + line-height: inherit; + overflow: hidden; + position: absolute; + text-align: center; + top: -7px; + vertical-align: middle; + -webkit-font-smoothing: antialiased; + speak: none; + } + &:hover:after { + color: #7d7d7d; + } + span { + display: none; + } + } + .base-image .image-label { + display: block; + } +} + +.preview_hidden_image_input_button { + display: none; +} + +.video-item { + position: relative; + &:after { + background: url(../Magento_ProductVideo/images/gallery-sprite.png) bottom left; + bottom: 0; + content: ''; + height: 40px; + left: 0; + margin: auto; + position: absolute; + right: 0; + top: 10px; + width: 49px; + z-index: 3; + } +} + +//style slideout panel add video +.mage-new-video-dialog { + form.admin__scope-old { + float: left; + width: 65%; + } + .video-player-sidebar { + width: 34.99999%; + float: left; + } + .video-player-container { + width: 100%; + height: 20vw; + margin-bottom: 30px; + border: 1px solid #e3e3e3; + position: relative; + &:after { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + margin: auto; + width: 93px; + height: 60px; + background: url(../Magento_ProductVideo/images/camera.png) no-repeat center; + z-index: 1; + } + } + .video-information { + margin-bottom: 7px; + display: none; + &:after { + content: " "; /* Older browser do not support empty content */ + visibility: hidden; + display: block; + height: 0; + clear: both; + } + label { + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 1.4rem; + font-weight: 600; + display: block; + width: 25%; + float: left; + text-align: right; + } + span { + font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 1.4rem; + font-weight: 300; + display: block; + width: 74.9999%; + float: left; + padding-left: 20px; + } + } + .product-video { + width: 100%; + z-index: 20; + height: 100%; + position: relative; + } +} + +.image.video-placeholder > button[data-role="add-video-button"], +.image.video-placeholder > button { + background: transparent; + border: 0; + height: 100%; + position: relative; + width: 100%; + z-index: 10; +} + +.add-video-button-container { + float: right; + margin-bottom: 10px; +} + +.image.base-image:hover .image-label { + display: none; +} diff --git a/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less new file mode 100644 index 00000000000..d51b978a97e --- /dev/null +++ b/app/design/frontend/Magento/blank/Magento_ProductVideo/web/css/source/_module.less @@ -0,0 +1,70 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +.fotorama-video-container { + &:after { + background: url(../Magento_ProductVideo/img/gallery-sprite.png) bottom right; + bottom: 0; + content: ''; + height: 100px; + left: 0; + margin: auto; + position: absolute; + right: 0; + top: 12px; + width: 100px; + } + .magnify-lens { + display: none !important; + } + &.video-unplayed { + &:hover { + img { + opacity: 0.6; + } + &:after { + transform: scale(1.25); + } + } + } +} + +.video-thumb-icon:after { + background: url(../Magento_ProductVideo/img/gallery-sprite.png) bottom left; + bottom: 0; + content: ''; + height: 40px; + left: 0; + margin: auto; + position: absolute; + right: 0; + top: 10px; + width: 49px; +} + +.product-video { + height: 85%; + margin-top: 15%; + position: absolute; + top: 0; + width: 100%; + iframe { + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + z-index: 9999; + } +} + +.fotorama__arr.hidden-video { + z-index: -1; +} + +.fotorama__video-close { + bottom: 89%; + top: auto; +} -- GitLab From d9f14c21f79946f6556b8eb9b3287f60e3f5ad62 Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Tue, 6 Oct 2015 15:04:00 +0300 Subject: [PATCH 273/420] MAGETWO-43593: PR - fix FAT --- .../app/Magento/Checkout/Test/Block/Onepage/Shipping.xml | 6 ++---- .../Customer/Test/Block/Adminhtml/Edit/CustomerForm.xml | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml index 51f6b61287f..a61ff0273b5 100644 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml +++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping.xml @@ -14,7 +14,7 @@ <lastname /> <company /> <street> - <selector>[name='shippingAddress.street.0']</selector> + <selector>input[name="street[0]"]</selector> </street> <city /> <region_id> @@ -24,8 +24,6 @@ <input>select</input> </country_id> <telephone /> - <postcode> - <selector>[name='shippingAddress.postcode']</selector> - </postcode> + <postcode /> </fields> </mapping> diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/CustomerForm.xml b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/CustomerForm.xml index bc70891ffa4..c4778125723 100644 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/CustomerForm.xml +++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Block/Adminhtml/Edit/CustomerForm.xml @@ -10,7 +10,7 @@ <class>\Magento\Backend\Test\Block\Widget\Tab</class> <selector>#tab_customer</selector> <strategy>css selector</strategy> - <wrapper>data[customer]</wrapper> + <wrapper>customer</wrapper> <fields> <website_id> <input>select</input> -- GitLab From 9c0dfc1f9f6700d9848bd7e593d080175c9a3962 Mon Sep 17 00:00:00 2001 From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com> Date: Tue, 6 Oct 2015 16:16:11 +0300 Subject: [PATCH 274/420] PV-224: CSS to LESS refactoring. Fix code style --- .../view/frontend/web/js/fotorama-add-video-events.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js index c6cbc9ca228..a9bc9eb2bc9 100644 --- a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js +++ b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js @@ -27,7 +27,7 @@ require(['jquery', 'jquery/ui', 'catalogGallery'], function ($) { /** * Get youtube ID - * @param {String} srchref + * @param {String} srcid * @returns {{}} */ function _getYoutubeId(srcid) { -- GitLab From c8c4a976237bd6effc8d152c68b3446163fc486c Mon Sep 17 00:00:00 2001 From: Maksym Aposov <maposov@ebay.com> Date: Tue, 6 Oct 2015 16:24:27 +0300 Subject: [PATCH 275/420] MAGETWO-41964: Log created on random requests - leads to DoS attack --- .../Store/App/Request/PathInfoProcessor.php | 13 ++- .../Magento/Store/Model/StoreRepository.php | 3 +- .../Magento/Store/Model/StoreResolver.php | 14 +-- .../App/Request/PathInfoProcessorTest.php | 5 +- .../App/Request/PathInfoProcessorTest.php | 106 ++++++++++++++++++ 5 files changed, 120 insertions(+), 21 deletions(-) create mode 100644 dev/tests/integration/testsuite/Magento/Store/App/Request/PathInfoProcessorTest.php diff --git a/app/code/Magento/Store/App/Request/PathInfoProcessor.php b/app/code/Magento/Store/App/Request/PathInfoProcessor.php index ebe3b64aa3b..ef07979226c 100644 --- a/app/code/Magento/Store/App/Request/PathInfoProcessor.php +++ b/app/code/Magento/Store/App/Request/PathInfoProcessor.php @@ -5,19 +5,21 @@ */ namespace Magento\Store\App\Request; +use Magento\Framework\Exception\NoSuchEntityException; + class PathInfoProcessor implements \Magento\Framework\App\Request\PathInfoProcessorInterface { /** * @var \Magento\Store\Model\StoreManagerInterface */ - private $_storeManager; + private $storeManager; /** * @param \Magento\Store\Model\StoreManagerInterface $storeManager */ public function __construct(\Magento\Store\Model\StoreManagerInterface $storeManager) { - $this->_storeManager = $storeManager; + $this->storeManager = $storeManager; } /** @@ -33,14 +35,15 @@ class PathInfoProcessor implements \Magento\Framework\App\Request\PathInfoProces $storeCode = $pathParts[0]; try { - $store = $this->_storeManager->getStore($storeCode); - } catch (\InvalidArgumentException $e) { // TODO: MAGETWO-39826 Need to replace on NoSuchEntityException + /** @var \Magento\Store\Api\Data\StoreInterface $store */ + $store = $this->storeManager->getStore($storeCode); + } catch (NoSuchEntityException $e) { return $pathInfo; } if ($store->isUseStoreInUrl()) { if (!$request->isDirectAccessFrontendName($storeCode)) { - $this->_storeManager->setCurrentStore($storeCode); + $this->storeManager->setCurrentStore($storeCode); $pathInfo = '/' . (isset($pathParts[1]) ? $pathParts[1] : ''); return $pathInfo; } elseif (!empty($storeCode)) { diff --git a/app/code/Magento/Store/Model/StoreRepository.php b/app/code/Magento/Store/Model/StoreRepository.php index 322c358be35..da72fae5cff 100644 --- a/app/code/Magento/Store/Model/StoreRepository.php +++ b/app/code/Magento/Store/Model/StoreRepository.php @@ -57,8 +57,7 @@ class StoreRepository implements \Magento\Store\Api\StoreRepositoryInterface $store = $this->storeFactory->create(); $store->load($code, 'code'); if ($store->getId() === null) { - // TODO: MAGETWO-39826 Need to replace on NoSuchEntityException - throw new \InvalidArgumentException(); + throw new NoSuchEntityException(); } $this->entities[$code] = $store; $this->entitiesById[$store->getId()] = $store; diff --git a/app/code/Magento/Store/Model/StoreResolver.php b/app/code/Magento/Store/Model/StoreResolver.php index 79a6e53423c..1f37a8611a2 100644 --- a/app/code/Magento/Store/Model/StoreResolver.php +++ b/app/code/Magento/Store/Model/StoreResolver.php @@ -137,14 +137,9 @@ class StoreResolver implements \Magento\Store\Api\StoreResolverInterface try { $store = $this->storeRepository->getActiveStoreByCode($storeCode); } catch (StoreIsInactiveException $e) { - $error = __('Requested store is inactive'); - } catch (\InvalidArgumentException $e) { // TODO: MAGETWO-39826 Need to replace on NoSuchEntityException - $error = __('Requested store is not found'); + throw new NoSuchEntityException(__('Requested store is inactive')); } - if (isset($error, $e)) { - throw new NoSuchEntityException($error, $e); - } return $store; } @@ -160,14 +155,9 @@ class StoreResolver implements \Magento\Store\Api\StoreResolverInterface try { $store = $this->storeRepository->getActiveStoreById($id); } catch (StoreIsInactiveException $e) { - $error = __('Default store is inactive'); - } catch (\InvalidArgumentException $e) { // TODO: MAGETWO-39826 Need to replace on NoSuchEntityException - $error = __('Default store is not found'); + throw new NoSuchEntityException(__('Default store is inactive')); } - if (isset($error, $e)) { - throw new NoSuchEntityException($error, $e); - } return $store; } } diff --git a/app/code/Magento/Store/Test/Unit/App/Request/PathInfoProcessorTest.php b/app/code/Magento/Store/Test/Unit/App/Request/PathInfoProcessorTest.php index b81f0a6544f..9ba184b9509 100644 --- a/app/code/Magento/Store/Test/Unit/App/Request/PathInfoProcessorTest.php +++ b/app/code/Magento/Store/Test/Unit/App/Request/PathInfoProcessorTest.php @@ -5,6 +5,8 @@ */ namespace Magento\Store\Test\Unit\App\Request; +use Magento\Framework\Exception\NoSuchEntityException; + class PathInfoProcessorTest extends \PHPUnit_Framework_TestCase { /** @@ -112,8 +114,7 @@ class PathInfoProcessorTest extends \PHPUnit_Framework_TestCase { $store = $this->getMock('\Magento\Store\Model\Store', [], [], '', false); $this->_storeManagerMock->expects($this->once())->method('getStore')->with('storeCode') - // TODO: MAGETWO-39826 Need to replace on NoSuchEntityException - ->willThrowException(new \InvalidArgumentException()); + ->willThrowException(new NoSuchEntityException()); $store->expects($this->never())->method('isUseStoreInUrl'); $this->_requestMock->expects($this->never())->method('isDirectAccessFrontendName'); diff --git a/dev/tests/integration/testsuite/Magento/Store/App/Request/PathInfoProcessorTest.php b/dev/tests/integration/testsuite/Magento/Store/App/Request/PathInfoProcessorTest.php new file mode 100644 index 00000000000..8470436c8bd --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Store/App/Request/PathInfoProcessorTest.php @@ -0,0 +1,106 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Store\App\Request; + +use \Magento\TestFramework\Helper\Bootstrap; +use \Magento\Store\Model\ScopeInterface; +use \Magento\Store\Model\Store; + +class PathInfoProcessorTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Store\App\Request\PathInfoProcessor + */ + protected $pathProcessor; + + protected function setUp() + { + $this->pathProcessor = Bootstrap::getObjectManager()->create('Magento\Store\App\Request\PathInfoProcessor'); + } + + /** + * @covers \Magento\Store\App\Request\PathInfoProcessor::process + * @dataProvider notValidStoreCodeDataProvider + */ + public function testProcessNotValidStoreCode($pathInfo) + { + /** @var \Magento\Framework\App\RequestInterface $request */ + $request = Bootstrap::getObjectManager()->create('Magento\Framework\App\RequestInterface'); + $this->assertEquals($pathInfo, $this->pathProcessor->process($request, $pathInfo)); + } + + public function notValidStoreCodeDataProvider() + { + return [ + ['not_valid_store_code_int' => '/100500/m/c/a'], + ['not_valid_store_code_str' => '/test_string/m/c/a'], + ]; + } + + /** + * @covers \Magento\Store\App\Request\PathInfoProcessor::process + * @magentoDataFixture Magento/Store/_files/core_fixturestore.php + */ + public function testProcessValidStoreCodeCase1() + { + /** @var \Magento\Store\Model\Store $store */ + $store = Bootstrap::getObjectManager()->get('Magento\Store\Model\Store'); + $store->load('fixturestore', 'code'); + + /** @var \Magento\Framework\App\RequestInterface $request */ + $request = Bootstrap::getObjectManager()->create('Magento\Framework\App\RequestInterface'); + + /** @var \Magento\Framework\App\Config\ReinitableConfigInterface $config */ + $config = Bootstrap::getObjectManager()->get('\Magento\Framework\App\Config\ReinitableConfigInterface'); + $config->setValue(Store::XML_PATH_STORE_IN_URL, false, ScopeInterface::SCOPE_STORE, $store->getCode()); + $pathInfo = sprintf('/%s/m/c/a', $store->getCode()); + $this->assertEquals($pathInfo, $this->pathProcessor->process($request, $pathInfo)); + } + + /** + * @covers \Magento\Store\App\Request\PathInfoProcessor::process + * @magentoDataFixture Magento/Store/_files/core_fixturestore.php + */ + public function testProcessValidStoreCodeCase2() + { + /** @var \Magento\Store\Model\Store $store */ + $store = Bootstrap::getObjectManager()->get('Magento\Store\Model\Store'); + $store->load('fixturestore', 'code'); + + /** @var \Magento\Framework\App\RequestInterface $request */ + $request = Bootstrap::getObjectManager()->create('Magento\Framework\App\RequestInterface'); + + /** @var \Magento\Framework\App\Config\ReinitableConfigInterface $config */ + $config = Bootstrap::getObjectManager()->get('\Magento\Framework\App\Config\ReinitableConfigInterface'); + $config->setValue(Store::XML_PATH_STORE_IN_URL, true, ScopeInterface::SCOPE_STORE, $store->getCode()); + $pathInfo = sprintf('/%s/m/c/a', $store->getCode()); + $this->assertEquals('/m/c/a', $this->pathProcessor->process($request, $pathInfo)); + } + + /** + * @covers \Magento\Store\App\Request\PathInfoProcessor::process + * @magentoDataFixture Magento/Store/_files/core_fixturestore.php + */ + public function testProcessValidStoreCodeCase3() + { + /** @var \Magento\Store\Model\Store $store */ + $store = Bootstrap::getObjectManager()->get('Magento\Store\Model\Store'); + $store->load('fixturestore', 'code'); + + /** @var \Magento\Framework\App\RequestInterface $request */ + $request = Bootstrap::getObjectManager()->create( + 'Magento\Framework\App\RequestInterface', + ['directFrontNames' => [$store->getCode() => true]] + ); + + /** @var \Magento\Framework\App\Config\ReinitableConfigInterface $config */ + $config = Bootstrap::getObjectManager()->get('\Magento\Framework\App\Config\ReinitableConfigInterface'); + $config->setValue(Store::XML_PATH_STORE_IN_URL, true, ScopeInterface::SCOPE_STORE, $store->getCode()); + $pathInfo = sprintf('/%s/m/c/a', $store->getCode()); + $this->assertEquals($pathInfo, $this->pathProcessor->process($request, $pathInfo)); + $this->assertEquals('noroute', $request->getActionName()); + } +} -- GitLab From cca23f64882772fbf124b50a243b1699be5a449d Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Tue, 6 Oct 2015 16:37:43 +0300 Subject: [PATCH 276/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Configurable options fix --- lib/web/mage/gallery/gallery.js | 4 ++-- lib/web/mage/gallery/gallery.less | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index 8eed70fc449..2a7c02f9d1f 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -383,8 +383,8 @@ define([ returnCurrentImages: function () { var images = []; - _.each(settings.fotoramaApi.data, function (item) { - images.push(item); + _.each(this.fotorama.data, function (item) { + images.push(_.omit(item, '$navThumbFrame', '$stageFrame')); }); return images; diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 2034fc98abb..55d19ef61d8 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -509,6 +509,7 @@ } .fotorama__thumb { + background-color: @color-gray92; height: 100%; overflow: hidden; position: relative; @@ -1207,6 +1208,16 @@ display: none; } +.gallery-placeholder { + .loading-mask { + padding: 0 0 50%; + position: absolute; + } + .loader img { + position: absolute; + } +} + body.fotorama__fullscreen { overflow-y: hidden; .magnify-fullimage { -- GitLab From 0e8eaa1822d98db0e904516c1658c9f6e892a339 Mon Sep 17 00:00:00 2001 From: Maksym Aposov <maposov@ebay.com> Date: Tue, 6 Oct 2015 16:43:02 +0300 Subject: [PATCH 277/420] MAGETWO-41964: Log created on random requests - leads to DoS attack --- app/code/Magento/Store/Controller/Store/SwitchAction.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Store/Controller/Store/SwitchAction.php b/app/code/Magento/Store/Controller/Store/SwitchAction.php index 647b2cf6c32..b527b7ad4fe 100644 --- a/app/code/Magento/Store/Controller/Store/SwitchAction.php +++ b/app/code/Magento/Store/Controller/Store/SwitchAction.php @@ -9,6 +9,7 @@ namespace Magento\Store\Controller\Store; use Magento\Framework\App\Action\Action; use Magento\Framework\App\Action\Context as ActionContext; use Magento\Framework\App\Http\Context as HttpContext; +use Magento\Framework\Exception\NoSuchEntityException; use Magento\Store\Api\StoreCookieManagerInterface; use Magento\Store\Api\StoreRepositoryInterface; use Magento\Store\Model\Store; @@ -78,7 +79,7 @@ class SwitchAction extends Action $store = $this->storeRepository->getActiveStoreByCode($storeCode); } catch (StoreIsInactiveException $e) { $error = __('Requested store is inactive'); - } catch (\InvalidArgumentException $e) { + } catch (NoSuchEntityException $e) { $error = __('Requested store is not found'); } -- GitLab From 6d5f2b3ec843c825eb947650e3eb7055c03977ad Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Tue, 6 Oct 2015 16:43:31 +0300 Subject: [PATCH 278/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product --- lib/web/mage/gallery/gallery.js | 11 ++++++++--- lib/web/mage/gallery/gallery.less | 1 + lib/web/magnifier/magnify.js | 15 ++++++++++++++- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index 8eed70fc449..817e5ba6fc3 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -80,6 +80,9 @@ define([ isFullscreen: false, api: null, data: _.clone(pushMainFirst(config.data)), + onClick: function(){ + alert(1); + }, fullscreenData: [] }; @@ -107,16 +110,17 @@ define([ initFullscreenSettings: function () { var settings = this.settings, self = this, - items = []; + items = [], + fotorama; settings.$gallery = this.settings.$element.find('[data-gallery-role="gallery"]'); + settings.$stageShaft = this.settings.$element.find('[data-gallery-role="stage_shaft"]'); + settings.$fullscreenIcon = this.settings.$element.find('[data-gallery-role="fotorama__fullscreen-icon"]'); settings.focusableStart = this.settings.$element.find('[data-gallery-role="fotorama__focusable-start"]'); settings.focusableEnd = this.settings.$element.find('[data-gallery-role="fotorama__focusable-end"]'); settings.closeIcon = this.settings.$element.find('[data-gallery-role="fotorama__fullscreen-icon"]'); - settings.fullscreenConfig.swipe = true; - settings.$gallery.on('fotorama:fullscreenenter', function () { settings.$gallery.focus(); settings.focusableStart.bind('focusin', self._focusSwitcher); @@ -141,6 +145,7 @@ define([ } settings.api.updateData(_.clone(settings.data)); settings.isFullscreen = false; + settings.$fullscreenIcon.hide(); }); }, diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 2034fc98abb..a6f45f10693 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -718,6 +718,7 @@ top: 2px; width: @size-fotorama-block; z-index: @z-index-10; + display: none; } .fotorama__fullscreen-icon { diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index 22b50c0e8d5..7f6ede63a7e 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -14,6 +14,7 @@ define([ gallerySelector = '[data-gallery-role="gallery"]', magnifierSelector = '[data-gallery-role="magnifier"]', magnifierZoomSelector = '[data-gallery-role="magnifier-zoom"]', + fullScreenIcon = '[data-gallery-role="fotorama__fullscreen-icon"]', hideMagnifier, behaveOnHover; @@ -38,7 +39,7 @@ define([ behaveOnHover = function (e, initPos) { var pos = [e.pageX, e.pageY], isArrow = $(e.target).data('gallery-role') === 'arrow', - isClick = initPos[0] === pos[0] && initPos[1] === pos[1]; + isClick = initPos[0] === pos[0] && initPos[1] === pos[1]; if (isArrow || !isClick) { hideMagnifier(); } @@ -49,9 +50,21 @@ define([ } else if (config.magnifierOpts.eventType === 'hover') { $(element).on('pointerdown mousedown MSPointerDown', function (e) { var pos = [e.pageX, e.pageY]; + $(element).on('mousemove pointermove MSPointerMove', function (ev) { navigator.msPointerEnabled ? hideMagnifier() : behaveOnHover(ev, pos); }); + $(element).on('click', function (e) { + if ($(e.target).attr('data-gallery-role')) { + $(gallerySelector).data('fotorama').requestFullScreen(); + $(fullScreenIcon).css({ + opacity: 1, + visibility: 'visible', + display: 'block' + }); + hideMagnifier(); + } + }); $(document).on('mouseup pointerup MSPointerUp', function () { $(element).off('mousemove pointermove MSPointerMove'); }); -- GitLab From db71778910761dc70077b0ea360b63d8eaceadb8 Mon Sep 17 00:00:00 2001 From: Joan He <joan@x.com> Date: Tue, 6 Oct 2015 08:50:40 -0500 Subject: [PATCH 279/420] MAGETWO-39769: [GITHUB] lastInsertId returns 0 when PK is not AI #1445 --- .../Framework/Model/Test/Unit/Resource/Db/AbstractDbTest.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/Resource/Db/AbstractDbTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/Resource/Db/AbstractDbTest.php index afb5b95f6e1..ccd92ab12cc 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/Resource/Db/AbstractDbTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/Resource/Db/AbstractDbTest.php @@ -491,7 +491,8 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase /** * Test that we only set/override id on object if PK autoincrement is enabled * @param bool $pkIncrement - * @dataProvider testSaveNewObjectDataProvider + * @dataProvider saveNewObjectDataProvider + * @SuppressWarnings(PHPMD.NPathComplexity) */ public function testSaveNewObject($pkIncrement) { @@ -549,7 +550,7 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase $reflectionMethod->invokeArgs($model, [$inputObject]); } - public function testSaveNewObjectDataProvider() + public function saveNewObjectDataProvider() { return [[true], [false]]; } -- GitLab From b52ff4e4e8dc395a7bed1af396aec721315dfe42 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Tue, 6 Oct 2015 17:41:56 +0300 Subject: [PATCH 280/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product --- lib/web/mage/gallery/gallery.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index f4ff956402f..ece286a938f 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -80,9 +80,6 @@ define([ isFullscreen: false, api: null, data: _.clone(pushMainFirst(config.data)), - onClick: function(){ - alert(1); - }, fullscreenData: [] }; -- GitLab From 6ccf1d5ba4543c1ac766f0edf2a9cbdea0a54b68 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Tue, 6 Oct 2015 18:11:02 +0300 Subject: [PATCH 281/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product --- lib/web/mage/gallery/gallery.less | 10 +--------- lib/web/magnifier/magnify.js | 5 +++-- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 0d80e945f2e..7050eca9193 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -1030,18 +1030,10 @@ overflow: hidden; position: absolute; top: 0; - z-index: @z-index-9; -} - -.magnify-lens { + z-index: @z-index-8; background: rgba(255, 255, 255, 0.5); - border: solid 1px @color-gray-light2; color: @color-white; - left: 0; - position: absolute; text-align: center; - top: 0; - z-index: @z-index-10; } .magnifier-loader-text { diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index 7f6ede63a7e..34abf723a50 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -54,8 +54,9 @@ define([ $(element).on('mousemove pointermove MSPointerMove', function (ev) { navigator.msPointerEnabled ? hideMagnifier() : behaveOnHover(ev, pos); }); - $(element).on('click', function (e) { - if ($(e.target).attr('data-gallery-role')) { + $(element).on('click', '[data-gallery-role="magnifier-zoom"]', function (e) { + + if ($(e.target).attr('data-gallery-role') === 'magnifier-zoom') { $(gallerySelector).data('fotorama').requestFullScreen(); $(fullScreenIcon).css({ opacity: 1, -- GitLab From 2457fa0144bc01e3594dde933d0da0efe800a27a Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Tue, 6 Oct 2015 18:27:59 +0300 Subject: [PATCH 282/420] MAGETWO-43593: PR - fix FAT --- .../affected-attribute-set-selector/js.phtml | 10 ++++++---- app/code/Magento/Msrp/view/base/web/js/msrp.js | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/js.phtml b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/js.phtml index a31a943b41f..70456828374 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/js.phtml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/product/configurable/affected-attribute-set-selector/js.phtml @@ -96,15 +96,17 @@ id: '<?php /* @escapeNotVerified */ echo $block->getJsId('close-button') ?>', 'class': 'action-close', click: function() { - $form.dialog('close'); + $form.modal('closeModal'); } }] }) .find('input[name=affected-attribute-set]').on('change', function() { - $('#affected-attribute-set-new-name-container')[$(this).val() == 'new' ? 'show' : 'hide'](); + var affectedAttributeSet = $(this).val(); + newAttributeSetContainer[affectedAttributeSet == 'new' ? 'show' : 'hide'](); + existingAttributeSetContainer[affectedAttributeSet == 'existing' ? 'show' : 'hide'](); resetValidation(); - if ($(this).val() == 'new') { - $form.find('input[name=new-attribute-set-name]').focus(); + if (affectedAttributeSet == 'new') { + newAttributeSetContainer.find('input[name=new-attribute-set-name]').focus(); } }); }); diff --git a/app/code/Magento/Msrp/view/base/web/js/msrp.js b/app/code/Magento/Msrp/view/base/web/js/msrp.js index 06bf5bda508..18ea804d238 100644 --- a/app/code/Magento/Msrp/view/base/web/js/msrp.js +++ b/app/code/Magento/Msrp/view/base/web/js/msrp.js @@ -68,7 +68,9 @@ define([ this.infoPopupDOM = $('[data-role=msrp-info-template]')[0]; if (this.options.popupId) { - this.$popup = $(this.popupDOM.innerText).appendTo('body'); + $('body').append($(this.popupDOM).html()); + this.$popup = $($(this.popupDOM).html()); + $(this.options.popupId).on('click', function (e) { this.popUpOptions.position.of = $(e.target); this.$popup.find(this.options.msrpLabelId).html(this.options.msrpPrice); -- GitLab From 1c979d52ff06858221a216c29db565c96e756fe2 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Tue, 6 Oct 2015 18:45:02 +0300 Subject: [PATCH 283/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product --- lib/web/magnifier/magnify.js | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index 34abf723a50..1706082a548 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -54,17 +54,14 @@ define([ $(element).on('mousemove pointermove MSPointerMove', function (ev) { navigator.msPointerEnabled ? hideMagnifier() : behaveOnHover(ev, pos); }); - $(element).on('click', '[data-gallery-role="magnifier-zoom"]', function (e) { - - if ($(e.target).attr('data-gallery-role') === 'magnifier-zoom') { - $(gallerySelector).data('fotorama').requestFullScreen(); - $(fullScreenIcon).css({ - opacity: 1, - visibility: 'visible', - display: 'block' - }); - hideMagnifier(); - } + $(element).on('click', '[data-gallery-role="magnifier-zoom"]', function () { + $(gallerySelector).data('fotorama').requestFullScreen(); + $(fullScreenIcon).css({ + opacity: 1, + visibility: 'visible', + display: 'block' + }); + hideMagnifier(); }); $(document).on('mouseup pointerup MSPointerUp', function () { $(element).off('mousemove pointermove MSPointerMove'); -- GitLab From 58ae2167e1c10eb74d4eab25116fca380a75c6de Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Wed, 7 Oct 2015 08:58:35 +0300 Subject: [PATCH 284/420] MAGETWO-43593: PR - fix FAT --- .../Test/Block/Adminhtml/Block/CmsGrid.php | 20 +++++++++---------- .../Sales/Test/Block/Adminhtml/Order/Grid.php | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/CmsGrid.php b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/CmsGrid.php index 4ca3fe0ead7..1f4c5cfbd65 100644 --- a/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/CmsGrid.php +++ b/dev/tests/functional/tests/app/Magento/Cms/Test/Block/Adminhtml/Block/CmsGrid.php @@ -28,36 +28,36 @@ class CmsGrid extends DataGrid */ protected $filters = [ 'block_id_from' => [ - 'selector' => '[name="filters[block_id][from]"]', + 'selector' => '[name="block_id[from]"]', ], 'block_id_to' => [ - 'selector' => '[name="filters[block_id][to]"]', + 'selector' => '[name="block_id[to]"]', ], 'title' => [ - 'selector' => '[name="filters[title]"]', + 'selector' => '[name="title"]', ], 'identifier' => [ - 'selector' => '[name="filters[identifier]"]', + 'selector' => '[name="identifier"]', ], 'store_id' => [ - 'selector' => '[name="filters[store_id]"]', + 'selector' => '[name="store_id"]', 'input' => 'simplifiedselect' ], 'is_active' => [ - 'selector' => '[name="filters[is_active]"]', + 'selector' => '[name="is_active"]', 'input' => 'select', ], 'creation_time_from' => [ - 'selector' => '[name="filters[creation_time][from]"]', + 'selector' => '[name="creation_time[from]"]', ], 'creation_time_to' => [ - 'selector' => '[name="filters[creation_time][to]"]', + 'selector' => '[name="creation_time[to]"]', ], 'update_time_from' => [ - 'selector' => '[name="filters[update_time][from]"]', + 'selector' => '[name="update_time[from]"]', ], 'update_time_to' => [ - 'selector' => '[name="filters[update_time][to]"]', + 'selector' => '[name="update_time[to]"]', ], ]; diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Grid.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Grid.php index 75078a0d021..e819f13a458 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Grid.php +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Grid.php @@ -67,7 +67,7 @@ class Grid extends DataGrid * * @var string */ - protected $purchasePointFilter = '[name="filters[store_id]"]'; + protected $purchasePointFilter = '[name="store_id"]'; /** * Order Id td selector. -- GitLab From 55979353724e0dd85295f7f87b19ee7eae5779cf Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Wed, 7 Oct 2015 10:13:17 +0300 Subject: [PATCH 285/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix code style --- lib/internal/Magento/Framework/Config/View.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/internal/Magento/Framework/Config/View.php b/lib/internal/Magento/Framework/Config/View.php index fed26a0e3a0..9c0df74c96e 100644 --- a/lib/internal/Magento/Framework/Config/View.php +++ b/lib/internal/Magento/Framework/Config/View.php @@ -78,8 +78,7 @@ class View extends \Magento\Framework\Config\AbstractXml $result[$varName] = $this->parseVarElement($varNode); } } - if (!count($result)) - { + if (!count($result)) { $result = $node->nodeValue; } -- GitLab From 08e209821231f89ab6f37ea32e5cf25b6276da8d Mon Sep 17 00:00:00 2001 From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com> Date: Wed, 7 Oct 2015 12:00:38 +0300 Subject: [PATCH 286/420] PV-224: CSS to LESS refactoring. Added Magento UI components --- .../web/css/source/_module.less | 67 +++++++++---------- 1 file changed, 31 insertions(+), 36 deletions(-) diff --git a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less index 7f13601b809..d2dee0e80e1 100644 --- a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less +++ b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less @@ -60,11 +60,11 @@ &.field-video_image .admin__field-control { position: relative; &:after { - color: #000; + color: @color-black; content: 'Role'; - font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 1.4rem; - font-weight: 600; + font-family: 'Open Sans', @font-family__sans-serif; + font-size: @font-size__s + 0.2; + font-weight: @font-weight__semibold; height: 20px; position: absolute; right: 50px; @@ -90,37 +90,32 @@ } } .gallery .image .action-make-base { - background: transparent; - border: 0; + .lib-button( + @_button-background: transparent, + @_button-border: none, + @_button-background-hover: transparent, + @_button-border-hover: none, + @_button-background-active: transparent, + @_button-border-active: none, + @_button-font-content: '\e63b', + @_button-icon-use: true, + @_button-icon-font: 'Admin Icons', + @_button-icon-font-text-hide: true, + @_button-icon-font-size: @font-size__xl, + @_button-icon-font-color: @color-gray62, + @_button-icon-font-color-hover: @color-gray52, + @_button-icon-font-color-active: @color-gray52, + @_button-margin: 0 + ); bottom: 9px; - height: 0; left: auto; - margin: 0; position: absolute; right: 9px; width: 0 !important; - &:after { - color: #9e9e9e; - content: '\e63b'; - display: inline-block; - font-family: 'Admin Icons'; - font-size: 1.8rem; - font-weight: normal; - left: -4px; - line-height: inherit; - overflow: hidden; + &:before { + left: 16px; position: absolute; - text-align: center; - top: -7px; - vertical-align: middle; - -webkit-font-smoothing: antialiased; - speak: none; - } - &:hover:after { - color: #7d7d7d; - } - span { - display: none; + top: -2px; } } .base-image .image-label { @@ -183,25 +178,25 @@ margin-bottom: 7px; display: none; &:after { - content: " "; /* Older browser do not support empty content */ + content: ""; visibility: hidden; display: block; height: 0; clear: both; } label { - font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 1.4rem; - font-weight: 600; + font-family: 'Open Sans', @font-family__sans-serif; + font-size: @font-size__s + 0.2; + font-weight: @font-weight__semibold; display: block; width: 25%; float: left; text-align: right; } span { - font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 1.4rem; - font-weight: 300; + font-family: 'Open Sans', @font-family__sans-serif; + font-size: @font-size__s + 0.2; + font-weight: @font-weight__light; display: block; width: 74.9999%; float: left; -- GitLab From cd5d0ee563a97727bb359eaee615ca46a78c2e1b Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Wed, 7 Oct 2015 12:05:07 +0300 Subject: [PATCH 287/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix breakpoints --- .../view/frontend/templates/product/view/gallery.phtml | 4 ++-- app/design/frontend/Magento/luma/etc/view.xml | 6 +++--- lib/web/fotorama/fotorama.js | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 413f1cfe921..7bc5622d15d 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -27,7 +27,7 @@ "magnifierOpts": <?php /* @escapeNotVerified */ echo $block->getMagnifier(); ?>, "data": <?php /* @escapeNotVerified */ echo $block->getGalleryImagesJson(); ?>, "options": { - "nav": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/navigation"); ?>", + "nav": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/nav"); ?>", "loop": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/loop"); ?>, "keyboard": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/keyboard"); ?>, "arrows": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/arrows"); ?>, @@ -46,7 +46,7 @@ "navdir": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/navdir"); ?>" }, "fullscreen": { - "nav": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/navigation"); ?>", + "nav": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/nav"); ?>", "loop": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/loop"); ?>, "navdir": "<?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/navdir"); ?>", "arrows": <?php /* @escapeNotVerified */ echo $block->getVar("gallery/fullscreen/arrows"); ?>, diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index ce50357dba1..ed78bbf2074 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -185,7 +185,7 @@ <!-- Gallery and magnifier theme settings. Start --> <var name="gallery"> - <var name="navigation">thumbs</var> <!-- Gallery navigation style (false/thumbs/dots) --> + <var name="nav">thumbs</var> <!-- Gallery navigation style (false/thumbs/dots) --> <var name="loop">true</var> <!-- Gallery navigation loop (true/false) --> <var name="keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false) --> <var name="arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> @@ -199,7 +199,7 @@ <var name="duration">500</var> <!-- Sets transition duration in ms --> </var> <var name="fullscreen"> - <var name="navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> + <var name="nav">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="loop">true</var> <!-- Fullscreen navigation loop (true/false/null) --> <var name="keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="arrows">false</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> @@ -233,7 +233,7 @@ </var> <var name="options"> <var name="options"> - <var name="navigation">dots</var> + <var name="nav">dots</var> </var> <var name="magnifierOpts"> <var name="enabled">false</var> diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 5a9f700255f..6fba2031b5a 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -3661,7 +3661,7 @@ fotoramaVersion = '4.6.4'; this.inProgress = false; }, calcThumbSlideTime: function(msec){ - return msec/10; + return msec/25; } }; -- GitLab From 3a466da363378b28ff85e4367d3cf134c452b64d Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Wed, 7 Oct 2015 12:41:37 +0300 Subject: [PATCH 288/420] MAGETWO-43593: PR --- .../Backend/view/adminhtml/templates/store/switcher.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml b/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml index f405298c178..293733ae9d7 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/store/switcher.phtml @@ -182,7 +182,7 @@ require([ reload(); }, cancel: function() { - obj.value = '<?php echo $block->getStoreId() ?>'; + obj.value = '<?php echo $block->escapeHtml($block->getStoreId()) ?>'; } } }); -- GitLab From e2cdf73c643d0fce728eab2348c07b1011441d8b Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Wed, 7 Oct 2015 12:42:40 +0300 Subject: [PATCH 289/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product --- app/design/frontend/Magento/luma/etc/view.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/design/frontend/Magento/luma/etc/view.xml b/app/design/frontend/Magento/luma/etc/view.xml index 483ebc5cb1e..e328e6857d7 100644 --- a/app/design/frontend/Magento/luma/etc/view.xml +++ b/app/design/frontend/Magento/luma/etc/view.xml @@ -86,8 +86,8 @@ <height>110</height> </image> <image id="product_page_main_image" type="image"> - <width>560</width> - <height>700</height> + <width>700</width> + <height>560</height> </image> <image id="product_page_main_image_default" type="image"> <width>700</width> -- GitLab From a41bdb0d956e37b05c62bec75966a93d0b169822 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Wed, 7 Oct 2015 12:49:58 +0300 Subject: [PATCH 290/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product --- lib/web/mage/gallery/gallery.js | 12 ++++++++++++ lib/web/magnifier/magnify.js | 9 --------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index ece286a938f..c8617dc6be0 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -90,6 +90,7 @@ define([ }); }); + config.options.ratio = config.options.width / config.options.height; config.options.height = null; @@ -99,6 +100,17 @@ define([ this.initApi(); this.setupBreakpoints(); this.initFullscreenSettings(); + + this.settings.$element.on('click', '.fotorama__stage__frame', function () { + if (parseInt($('[data-gallery-role="stage-shaft"]')[0].style.left) === 0 ) { + $('[data-gallery-role="gallery"]').data('fotorama').requestFullScreen(); + $('[data-gallery-role="fotorama__fullscreen-icon"]').css({ + opacity: 1, + visibility: 'visible', + display: 'block' + }); + } + }.bind(this)); }, /** diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index 1706082a548..5446e2c2643 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -54,15 +54,6 @@ define([ $(element).on('mousemove pointermove MSPointerMove', function (ev) { navigator.msPointerEnabled ? hideMagnifier() : behaveOnHover(ev, pos); }); - $(element).on('click', '[data-gallery-role="magnifier-zoom"]', function () { - $(gallerySelector).data('fotorama').requestFullScreen(); - $(fullScreenIcon).css({ - opacity: 1, - visibility: 'visible', - display: 'block' - }); - hideMagnifier(); - }); $(document).on('mouseup pointerup MSPointerUp', function () { $(element).off('mousemove pointermove MSPointerMove'); }); -- GitLab From a63d28bb08ce9ce3850ef4baf848420e59d412b0 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Wed, 7 Oct 2015 15:46:24 +0300 Subject: [PATCH 291/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix fullscreen images --- .../Catalog/Block/Product/View/Gallery.php | 4 +-- .../ConfigurableProduct/Helper/Data.php | 2 +- lib/web/mage/gallery/gallery.js | 29 ++++++------------- lib/web/magnifier/magnifier.js | 25 +++++++--------- lib/web/magnifier/magnify.js | 5 ++-- 5 files changed, 26 insertions(+), 39 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/View/Gallery.php b/app/code/Magento/Catalog/Block/Product/View/Gallery.php index 6bcb8e66813..a7a546bc80a 100644 --- a/app/code/Magento/Catalog/Block/Product/View/Gallery.php +++ b/app/code/Magento/Catalog/Block/Product/View/Gallery.php @@ -112,7 +112,7 @@ class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView $imagesItems[] = [ 'thumb' => $image->getData('small_image_url'), 'img' => $image->getData('medium_image_url'), - 'original' => $image->getData('large_image_url'), + 'full' => $image->getData('large_image_url'), 'caption' => $image->getLabel(), 'position' => $image->getPosition(), 'isMain' => $this->isMainImage($image), @@ -122,7 +122,7 @@ class Gallery extends \Magento\Catalog\Block\Product\View\AbstractView $imagesItems[] = [ 'thumb' => $this->_imageHelper->getDefaultPlaceholderUrl('thumbnail'), 'img' => $this->_imageHelper->getDefaultPlaceholderUrl('image'), - 'original' => $this->_imageHelper->getDefaultPlaceholderUrl('image'), + 'full' => $this->_imageHelper->getDefaultPlaceholderUrl('image'), 'caption' => '', 'position' => '0', 'isMain' => true, diff --git a/app/code/Magento/ConfigurableProduct/Helper/Data.php b/app/code/Magento/ConfigurableProduct/Helper/Data.php index 347be9282be..91dd7224242 100644 --- a/app/code/Magento/ConfigurableProduct/Helper/Data.php +++ b/app/code/Magento/ConfigurableProduct/Helper/Data.php @@ -87,7 +87,7 @@ class Data [ 'thumb' => $image->getData('small_image_url'), 'img' => $image->getData('medium_image_url'), - 'original' => $image->getData('large_image_url'), + 'full' => $image->getData('large_image_url'), 'caption' => $image->getLabel(), 'position' => $image->getPosition(), 'isMain' => $image->getFile() == $product->getImage(), diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index 2a7c02f9d1f..60d467491a6 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -34,6 +34,8 @@ define([ if(mainIndex > -1){ data.unshift(data.splice(mainIndex, 1)[0]); } + + return data; }; return Class.extend({ @@ -58,8 +60,6 @@ define([ * @param {String} element - String selector of gallery DOM element. */ initialize: function (config, element) { - var fullscreenData = []; - this._super(); _.bindAll(this, @@ -79,17 +79,8 @@ define([ fotoramaApi: null, isFullscreen: false, api: null, - data: _.clone(pushMainFirst(config.data)), - fullscreenData: [] + data: _.clone(pushMainFirst(config.data)) }; - - _.each(_.clone(this.settings.data), function (item) { - fullscreenData.push({ - img: item.original, - thumb: item.thumb - }); - }); - config.options.ratio = config.options.width / config.options.height; config.options.height = null; @@ -113,10 +104,8 @@ define([ settings.focusableStart = this.settings.$element.find('[data-gallery-role="fotorama__focusable-start"]'); settings.focusableEnd = this.settings.$element.find('[data-gallery-role="fotorama__focusable-end"]'); settings.closeIcon = this.settings.$element.find('[data-gallery-role="fotorama__fullscreen-icon"]'); - settings.fullscreenConfig.swipe = true; - settings.$gallery.on('fotorama:fullscreenenter', function () { settings.$gallery.focus(); settings.focusableStart.bind('focusin', self._focusSwitcher); @@ -127,7 +116,6 @@ define([ if (!_.isEqual(settings.activeBreakpoint, {})) { settings.api.updateOptions(settings.activeBreakpoint.options, true); } - settings.api.updateData(_.clone(settings.fullscreenData)); settings.isFullscreen = true; }); @@ -139,7 +127,6 @@ define([ if (!_.isEqual(settings.activeBreakpoint, {})) { settings.api.updateOptions(settings.activeBreakpoint.options, true); } - settings.api.updateData(_.clone(settings.data)); settings.isFullscreen = false; }); }, @@ -366,10 +353,12 @@ define([ if (_.isArray(data)) { pushMainFirst(data); settings.fotoramaApi.load(data); - $.extend(false, settings.defaultConfig, { - data: data + + _.extend(settings, { + data: data, + defaultConfig: data }); - $.extend(false, config, { + _.extend(config, { data: data }); } @@ -384,7 +373,7 @@ define([ var images = []; _.each(this.fotorama.data, function (item) { - images.push(_.omit(item, '$navThumbFrame', '$stageFrame')); + images.push(_.omit(item, '$navThumbFrame', '$navDotFrame', '$stageFrame')); }); return images; diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index cdc3b13c2b7..5a4f4ac7032 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -584,7 +584,7 @@ $('[data-gallery-role="gallery"]').on('fotorama:fullscreenenter fotorama:showend fotorama:load', function () { var $preview = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), - $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage'), + $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .fotorama__img--full'), $imageContainer = $preview.parent(), gallery = $('[data-gallery-role="gallery"]'); @@ -596,12 +596,9 @@ }); if (gallery.data('fotorama').fullScreen) { - //if (!$imageContainer.find('.' + MagnifyCls.magnifyFull).length) { - // $imageContainer.append('<img class="' + MagnifyCls.magnifyFull + '" src ="' + options.full + '"/>'); - //} toggleZoomButtons($image); - $('.fotorama__stage__frame .fotorama__img').each(function () { + $('.fotorama__stage__frame .fotorama__img--full').each(function () { var path = $(this).attr("src"), imgSize; if (path) { @@ -694,7 +691,7 @@ }); $image.on(isTouchEnabled ? 'touchend' : 'mouseup pointerup MSPointerUp', function (e) { - if (gallery.data('fotorama').fullScreen) { + if (gallery.data('fotorama').fullScreen && isDragActive) { isDragActive = false; $image.css('cursor', 'pointer'); } @@ -710,7 +707,7 @@ } if ($('.fotorama-item').data('fotorama').fullScreen) { - $('.fotorama__stage__frame .fotorama__img').each(function () { + $('.fotorama__stage__frame .fotorama__img--full').each(function () { var image = new Image(); image.src = $(this).attr("src"); @@ -732,7 +729,7 @@ if ($('.fotorama-item').data('fotorama').fullScreen) { - $('.fotorama__stage__frame .fotorama__img').each(function () { + $('.fotorama__stage__frame .fotorama__img--full').each(function () { var image = new Image(); image.src = $(this).attr("src"); @@ -748,7 +745,7 @@ } }); - toggleZoomButtons($('[data-gallery-role="stage-shaft"] [data-active="true"] img')); + toggleZoomButtons($('[data-gallery-role="stage-shaft"] [data-active="true"] .fotorama__img--full')); } @@ -760,7 +757,7 @@ if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { var $preview = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), - $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .magnify-fullimage'), + $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .fotorama__img--full'), $imageContainer = $preview.parent(), gallery = $('[data-gallery-role="gallery"]'), top, left; @@ -796,10 +793,10 @@ } function zoomIn(e) { - var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .fotorama__img--full'), gallery = $('[data-gallery-role="gallery"]'), imgOriginalSize = getImageSize($image[0].src), - setedResult = Math.round($image.width() + options.inc); + setedResult = Math.round($image.width() + parseFloat(options.fullscreenzoom)); if(e) { e.preventDefault(); } @@ -813,10 +810,10 @@ } function zoomOut(e) { - var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), + var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .fotorama__img--full'), gallery = $('[data-gallery-role="gallery"]'), imgOriginalSize = getImageSize($image[0].src), - setedResult = Math.round($image.width() - options.inc); + setedResult = Math.round($image.width() - parseFloat(options.fullscreenzoom)); if (e) { e.preventDefault(); } diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index 22b50c0e8d5..330dbeb52ff 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -60,7 +60,7 @@ define([ $.extend(config.magnifierOpts, { zoomable: false, - thumb: '.fotorama__img', + thumb: '.fotorama__img:not(".fotorama__img--full")', largeWrapper: '[data-gallery-role="magnifier"]', height: config.magnifierOpts.height || function () { return $('[data-active="true"]').height(); @@ -81,7 +81,8 @@ define([ $(element).on('fotorama:showend fotorama:load fotorama:fullscreenexit fotorama:ready', function (e, fotorama) { hideMagnifier(); config.magnifierOpts.large = $(gallerySelector).data('fotorama').activeFrame.img; - config.magnifierOpts.full = fotorama.data[fotorama.activeIndex].original; + config.magnifierOpts.full = fotorama.data[fotorama.activeIndex].full; + debugger; $($(gallerySelector).data('fotorama').activeFrame.$stageFrame).magnify(config.magnifierOpts); }); $(element).on('gallery:loaded', function () { -- GitLab From a4ab20116effa0ceedcffc3dcaac80059e80ff89 Mon Sep 17 00:00:00 2001 From: Ihor Melnychenko <imelnychenko@ebay.com> Date: Wed, 7 Oct 2015 16:31:33 +0300 Subject: [PATCH 292/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product --- lib/web/mage/gallery/gallery.js | 12 ++++++++++++ lib/web/mage/gallery/gallery.less | 11 ++--------- lib/web/magnifier/magnify.js | 1 - 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index 60d467491a6..df34178eabc 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -90,6 +90,16 @@ define([ this.initApi(); this.setupBreakpoints(); this.initFullscreenSettings(); + this.settings.$element.on('click', '.fotorama__stage__frame', function () { + if (parseInt($('[data-gallery-role="stage-shaft"]')[0].style.left) === 0) { + $('[data-gallery-role="gallery"]').data('fotorama').requestFullScreen(); + $('[data-gallery-role="fotorama__fullscreen-icon"]').css({ + opacity: 1, + visibility: 'visible', + display: 'block' + }); + } + }); }, /** @@ -101,6 +111,7 @@ define([ items = []; settings.$gallery = this.settings.$element.find('[data-gallery-role="gallery"]'); + settings.$fullscreenIcon = this.settings.$element.find('[data-gallery-role="fotorama__fullscreen-icon"]'); settings.focusableStart = this.settings.$element.find('[data-gallery-role="fotorama__focusable-start"]'); settings.focusableEnd = this.settings.$element.find('[data-gallery-role="fotorama__focusable-end"]'); settings.closeIcon = this.settings.$element.find('[data-gallery-role="fotorama__fullscreen-icon"]'); @@ -128,6 +139,7 @@ define([ settings.api.updateOptions(settings.activeBreakpoint.options, true); } settings.isFullscreen = false; + settings.$fullscreenIcon.hide(); }); }, diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 55d19ef61d8..12e4c73c713 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -719,6 +719,7 @@ top: 2px; width: @size-fotorama-block; z-index: @z-index-10; + display: none; } .fotorama__fullscreen-icon { @@ -1029,18 +1030,10 @@ overflow: hidden; position: absolute; top: 0; - z-index: @z-index-9; -} - -.magnify-lens { + z-index: @z-index-8; background: rgba(255, 255, 255, 0.5); - border: solid 1px @color-gray-light2; color: @color-white; - left: 0; - position: absolute; text-align: center; - top: 0; - z-index: @z-index-10; } .magnifier-loader-text { diff --git a/lib/web/magnifier/magnify.js b/lib/web/magnifier/magnify.js index 330dbeb52ff..76751b2829b 100644 --- a/lib/web/magnifier/magnify.js +++ b/lib/web/magnifier/magnify.js @@ -82,7 +82,6 @@ define([ hideMagnifier(); config.magnifierOpts.large = $(gallerySelector).data('fotorama').activeFrame.img; config.magnifierOpts.full = fotorama.data[fotorama.activeIndex].full; - debugger; $($(gallerySelector).data('fotorama').activeFrame.$stageFrame).magnify(config.magnifierOpts); }); $(element).on('gallery:loaded', function () { -- GitLab From 8b5ecdae4173aca00769572924dc0bf04b352eae Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Wed, 7 Oct 2015 17:21:49 +0300 Subject: [PATCH 293/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix thumbs navtype --- lib/web/fotorama/fotorama.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index b941b95e12d..1141f9d1473 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -3104,6 +3104,7 @@ fotoramaVersion = '4.6.4'; pos: pos, direction: opts.navdir, onEnd: function () { + thumbsDraw(pos, true); thumbArrUpdate(); } }); -- GitLab From 34f409f86a57234f995af812b5ec26561c0f6c96 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Wed, 7 Oct 2015 17:33:39 +0300 Subject: [PATCH 294/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix issue with classes inheritance --- .../Magento/ProductVideo/Block/Product/View/Gallery.php | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/app/code/Magento/ProductVideo/Block/Product/View/Gallery.php b/app/code/Magento/ProductVideo/Block/Product/View/Gallery.php index ce93d93700a..af26e074a02 100644 --- a/app/code/Magento/ProductVideo/Block/Product/View/Gallery.php +++ b/app/code/Magento/ProductVideo/Block/Product/View/Gallery.php @@ -18,11 +18,6 @@ class Gallery extends \Magento\Catalog\Block\Product\View\Gallery */ protected $mediaHelper; - /** - * @var \Magento\Framework\Json\EncoderInterface - */ - private $jsonEncoder; - /** * @param \Magento\Catalog\Block\Product\Context $context * @param \Magento\Framework\Stdlib\ArrayUtils $arrayUtils @@ -40,10 +35,10 @@ class Gallery extends \Magento\Catalog\Block\Product\View\Gallery parent::__construct( $context, $arrayUtils, + $jsonEncoder, $data ); $this->mediaHelper = $mediaHelper; - $this->jsonEncoder = $jsonEncoder; } /** -- GitLab From c2f173df231bd2cd6fb1d061ca3b67b5650a7bc8 Mon Sep 17 00:00:00 2001 From: Maksym Aposov <maposov@ebay.com> Date: Wed, 7 Oct 2015 18:31:21 +0300 Subject: [PATCH 295/420] MAGETWO-41964: Log created on random requests - leads to DoS attack --- app/code/Magento/Store/Model/StoreRepository.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Store/Model/StoreRepository.php b/app/code/Magento/Store/Model/StoreRepository.php index da72fae5cff..26c466f6cf9 100644 --- a/app/code/Magento/Store/Model/StoreRepository.php +++ b/app/code/Magento/Store/Model/StoreRepository.php @@ -57,7 +57,7 @@ class StoreRepository implements \Magento\Store\Api\StoreRepositoryInterface $store = $this->storeFactory->create(); $store->load($code, 'code'); if ($store->getId() === null) { - throw new NoSuchEntityException(); + throw new NoSuchEntityException(__('Requested store is not found')); } $this->entities[$code] = $store; $this->entitiesById[$store->getId()] = $store; @@ -88,7 +88,7 @@ class StoreRepository implements \Magento\Store\Api\StoreRepositoryInterface $store = $this->storeFactory->create(); $store->load($id); if ($store->getId() === null) { - throw new NoSuchEntityException(); + throw new NoSuchEntityException(__('Requested store is not found')); } $this->entitiesById[$id] = $store; $this->entities[$store->getCode()] = $store; -- GitLab From 41f6d492663ed07316e84b6a96a861673439b184 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Wed, 7 Oct 2015 18:53:54 +0300 Subject: [PATCH 296/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix ProductVideo initialization --- .../frontend/layout/catalog_product_view.xml | 4 +- .../view/frontend/requirejs-config.js | 1 - .../templates/product/view/gallery.phtml | 65 ++----------------- .../web/js/fotorama-add-video-events.js | 22 ++++--- .../view/frontend/web/js/load-player.js | 2 +- 5 files changed, 19 insertions(+), 75 deletions(-) diff --git a/app/code/Magento/ProductVideo/view/frontend/layout/catalog_product_view.xml b/app/code/Magento/ProductVideo/view/frontend/layout/catalog_product_view.xml index 81d7989a521..a8fd6ae7725 100644 --- a/app/code/Magento/ProductVideo/view/frontend/layout/catalog_product_view.xml +++ b/app/code/Magento/ProductVideo/view/frontend/layout/catalog_product_view.xml @@ -8,12 +8,10 @@ <page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <head> <css src="Magento_ProductVideo::css/product-video.css"/> - <link src="Magento_ProductVideo::js/fotorama-add-video-events.js"/> - <link src="Magento_ProductVideo::js/load-player.js"/> </head> <body> <referenceContainer name="product.info.media"> - <block class="Magento\ProductVideo\Block\Product\View\Gallery" name="product.info.media.image" template="product/view/gallery.phtml"/> + <block class="Magento\ProductVideo\Block\Product\View\Gallery" name="product.info.media.video" after="product.info.media.image" template="product/view/gallery.phtml"/> </referenceContainer> </body> </page> diff --git a/app/code/Magento/ProductVideo/view/frontend/requirejs-config.js b/app/code/Magento/ProductVideo/view/frontend/requirejs-config.js index 956dd40b89e..e19b89135b4 100644 --- a/app/code/Magento/ProductVideo/view/frontend/requirejs-config.js +++ b/app/code/Magento/ProductVideo/view/frontend/requirejs-config.js @@ -6,7 +6,6 @@ var config = { map: { '*': { - fotoramaAddVideoEvents: 'Magento_ProductVideo/js/fotorama-add-video-events', loadPlayer: 'Magento_ProductVideo/js/load-player' } } diff --git a/app/code/Magento/ProductVideo/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/ProductVideo/view/frontend/templates/product/view/gallery.phtml index 192a3f18e2c..131b9f7e4ff 100644 --- a/app/code/Magento/ProductVideo/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/ProductVideo/view/frontend/templates/product/view/gallery.phtml @@ -10,69 +10,12 @@ * @var $block \Magento\ProductVideo\Block\Product\View\Gallery */ ?> -<div class="gallery-placeholder" - data-mage-init='{"fotoramaAddVideoEvents":{}}' - data-fotorama-video-data='<?php /* @escapeNotVerified */ echo $block->getMediaGalleryDataJson(); ?>' - data-fotorama-video-settings='<?php /* @escapeNotVerified */ echo $block->getVideoSettingsJson(); ?>'> -</div> <script type="text/x-magento-init"> { - ".gallery-placeholder": { - "mage/gallery/gallery": { - "mixins":["magnifier/magnify"], - "magnifierOpts": { - "enabled": <?php /* @escapeNotVerified */ - echo $block->getVar("magnifier:enabled", "Magento_Catalog"); ?>, - "eventType": "<?php /* @escapeNotVerified */ - echo $block->getVar("magnifier:action", "Magento_Catalog"); ?>", - "width": "<?php /* @escapeNotVerified */ - echo $block->getVar("magnifier:width", "Magento_Catalog"); ?>", - "height": "<?php /* @escapeNotVerified */ - echo $block->getVar("magnifier:height", "Magento_Catalog"); ?>", - "top": "<?php /* @escapeNotVerified */ - echo $block->getVar("magnifier:top", "Magento_Catalog"); ?>", - "left": "<?php /* @escapeNotVerified */ - echo $block->getVar("magnifier:left", "Magento_Catalog"); ?>" - }, - "data": <?php /* @escapeNotVerified */ - echo $block->getGalleryImagesJson(); ?>, - "options": { - "nav": "<?php /* @escapeNotVerified */ - echo $block->getVar("gallery:nav", "Magento_Catalog"); ?>", - "loop": <?php /* @escapeNotVerified */ - echo $block->getVar("gallery:loop", "Magento_Catalog"); ?>, - "keyboard": <?php /* @escapeNotVerified */ - echo $block->getVar("gallery:keyboard", "Magento_Catalog"); ?>, - "arrows": <?php /* @escapeNotVerified */ - echo $block->getVar("gallery:arrows", "Magento_Catalog"); ?>, - "showCaption": <?php /* @escapeNotVerified */ - echo $block->getVar("gallery:showCaption", "Magento_Catalog"); ?>, - "width": <?php /* @escapeNotVerified */ - echo $block->getImageAttribute('product_page_image_medium', 'width'); ?>, - "thumbwidth": <?php /* @escapeNotVerified */ - echo $block->getImageAttribute('product_page_image_small', 'width'); ?>, - "thumbheight": <?php /* @escapeNotVerified */ - echo $block->getImageAttribute('product_page_image_small', 'height') - ?: $block->getImageAttribute('product_page_image_small', 'width'); ?>, - "height": <?php /* @escapeNotVerified */ - echo $block->getImageAttribute('product_page_image_medium', 'height') - ?: $block->getImageAttribute('product_page_image_medium', 'width'); ?> - }, - "breakpoints": { - "mobile": { - "conditions": { - "max-width": "767px" - }, - "options": { - "options": { - "nav": "dots" - }, - "magnifierOpts": { - "enabled": false - } - } - } - } + "[data-gallery-role=gallery-placeholder]": { + "Magento_ProductVideo/js/fotorama-add-video-events": { + "fotoramaVideoData": <?php /* @escapeNotVerified */ echo $block->getMediaGalleryDataJson(); ?>, + "fotoramaVideoSettings": <?php /* @escapeNotVerified */ echo $block->getVideoSettingsJson(); ?> } } } diff --git a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js index e19d635a72b..8b8f92f5b44 100644 --- a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js +++ b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js @@ -3,7 +3,12 @@ * See COPYING.txt for license details. */ -require(['jquery', 'jquery/ui', 'catalogGallery'], function ($) { +define([ + 'jquery', + 'jquery/ui', + 'catalogGallery', + 'Magento_ProductVideo/js/load-player' +], function ($) { 'use strict'; /** @@ -547,13 +552,12 @@ require(['jquery', 'jquery/ui', 'catalogGallery'], function ($) { } }); - $('.gallery-placeholder').on('fotorama:ready', function () { - $(this).find('.fotorama').AddFotoramaVideoEvents({ - VideoData: $(this).data('fotorama-video-data'), - VideoSettings: $(this).data('fotorama-video-settings') + return function (config, element) { + $('.gallery-placeholder').on('fotorama:ready', function () { + $(element).find('.fotorama').AddFotoramaVideoEvents({ + VideoData: config.fotoramaVideoData || [], + VideoSettings: config.fotoramaVideoSettings || {} + }); }); - //no reason to store video data and settings after - erase it - $(this).removeAttr('data-fotorama-video-data'); - $(this).removeAttr('data-fotorama-video-settings'); - }); + }; }); diff --git a/app/code/Magento/ProductVideo/view/frontend/web/js/load-player.js b/app/code/Magento/ProductVideo/view/frontend/web/js/load-player.js index 1f1c08bbe8d..937c62ae26c 100644 --- a/app/code/Magento/ProductVideo/view/frontend/web/js/load-player.js +++ b/app/code/Magento/ProductVideo/view/frontend/web/js/load-player.js @@ -7,7 +7,7 @@ @version 0.0.1 @requires jQuery & jQuery UI */ -require(['jquery', 'jquery/ui'], function ($) { +define(['jquery', 'jquery/ui'], function ($) { 'use strict'; var videoRegister = { -- GitLab From dcfafc9be23a271d6a79802468ab04b06c14291a Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Wed, 7 Oct 2015 19:09:40 +0300 Subject: [PATCH 297/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix fullscreen click handler - Fix magnify styles --- lib/web/mage/gallery/gallery.js | 18 ++++++++---------- lib/web/mage/gallery/gallery.less | 8 ++++++++ lib/web/magnifier/magnifier.js | 26 +++++++++++++++----------- 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/lib/web/mage/gallery/gallery.js b/lib/web/mage/gallery/gallery.js index df34178eabc..2f38ea505aa 100644 --- a/lib/web/mage/gallery/gallery.js +++ b/lib/web/mage/gallery/gallery.js @@ -91,14 +91,12 @@ define([ this.setupBreakpoints(); this.initFullscreenSettings(); this.settings.$element.on('click', '.fotorama__stage__frame', function () { - if (parseInt($('[data-gallery-role="stage-shaft"]')[0].style.left) === 0) { - $('[data-gallery-role="gallery"]').data('fotorama').requestFullScreen(); - $('[data-gallery-role="fotorama__fullscreen-icon"]').css({ - opacity: 1, - visibility: 'visible', - display: 'block' - }); - } + $('[data-gallery-role="gallery"]').data('fotorama').requestFullScreen(); + $('[data-gallery-role="fotorama__fullscreen-icon"]').css({ + opacity: 1, + visibility: 'visible', + display: 'block' + }); }); }, @@ -366,11 +364,11 @@ define([ pushMainFirst(data); settings.fotoramaApi.load(data); - _.extend(settings, { + $.extend(false, settings, { data: data, defaultConfig: data }); - _.extend(config, { + $.extend(false, config, { data: data }); } diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index 12e4c73c713..f6db8bb7761 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -1031,9 +1031,17 @@ position: absolute; top: 0; z-index: @z-index-8; +} + +.magnify-lens { background: rgba(255, 255, 255, 0.5); + border: solid 1px @color-gray-light2; color: @color-white; + left: 0; + position: absolute; text-align: center; + top: 0; + z-index: @z-index-10; } .magnifier-loader-text { diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 5a4f4ac7032..1630f5506e0 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -24,7 +24,8 @@ $thumb, that = this, largeWrapper = options.largeWrapper || ".magnifier-preview", - $largeWrapper = $(largeWrapper); + $largeWrapper = $(largeWrapper), + isDraggable = false; curThumb = null, currentOpts = { x: 0, @@ -624,7 +625,7 @@ } $image.on(isTouchEnabled ? 'touchstart' : 'pointerdown mousedown MSPointerDown', function (e) { - if (gallery.data('fotorama').fullScreen) { + if (gallery.data('fotorama').fullScreen && isDraggable) { e.preventDefault(); $image.css('cursor', 'move'); @@ -645,7 +646,7 @@ $image.on(isTouchEnabled ? 'touchmove' : 'mousemove pointermove MSPointerMove', function (e) { - if (gallery.data('fotorama').fullScreen && isDragActive) { + if (gallery.data('fotorama').fullScreen && isDragActive && isDraggable) { var top, left, @@ -691,9 +692,11 @@ }); $image.on(isTouchEnabled ? 'touchend' : 'mouseup pointerup MSPointerUp', function (e) { - if (gallery.data('fotorama').fullScreen && isDragActive) { + if (gallery.data('fotorama').fullScreen && isDragActive && isDraggable) { isDragActive = false; $image.css('cursor', 'pointer'); + + return false; } }); }); @@ -762,7 +765,7 @@ gallery = $('[data-gallery-role="gallery"]'), top, left; - if (($imageContainer.offset().top + $imageContainer.height()) > ($image.offset().top + $image.height())) { + if ($imageContainer.offset().top + $imageContainer.height() > $image.offset().top + $image.height()) { top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); } else { top = ($imageContainer.offset().top < $image.offset().top) ? 0 : top; @@ -772,12 +775,11 @@ $image.css('top', top); } - if (($imageContainer.offset().left + $imageContainer.width()) > ($image.offset().left + $image.width())) { + if ($imageContainer.offset().left + $imageContainer.width() > $image.offset().left + $image.width()) { left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); } else { - left = ($imageContainer.offset().left < $image.offset().left) ? 0 : left; + left = $imageContainer.offset().left < $image.offset().left ? 0 : left; } - if (left !== undefined) { $image.css('left', left); } @@ -801,11 +803,11 @@ e.preventDefault(); } - if (setedResult > imgOriginalSize.rw) { setedResult = imgOriginalSize.rw; } $image.css({'width': setedResult, height: 'auto'}); + isDraggable = true; checkFullscreenImagePosition(); } @@ -819,10 +821,12 @@ } if ($image.width() > $image.height() && $image.width() <= $image.parent().width()) { - return + isDraggable = false; + return; } if ($image.width() <= $image.height() && $image.height() <= $image.parent().height()) { - return + isDraggable = false; + return; } $image.css({'width': setedResult, height: 'auto'}); -- GitLab From 4c67f969ffea5718d83dff82f142d99dbb2d42f4 Mon Sep 17 00:00:00 2001 From: Maksym Savich <msavich@ebay.com> Date: Wed, 7 Oct 2015 18:12:49 -0500 Subject: [PATCH 298/420] MAGETWO-43197: Product's options are not saved after running setup:di:compile - Web installation competing code generation process workaround --- setup/pub/magento/setup/readiness-check.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/setup/pub/magento/setup/readiness-check.js b/setup/pub/magento/setup/readiness-check.js index e1c8a0ad9db..e176d9b6045 100644 --- a/setup/pub/magento/setup/readiness-check.js +++ b/setup/pub/magento/setup/readiness-check.js @@ -304,8 +304,10 @@ angular.module('readiness-check', []) angular.forEach($scope.items, function(item) { item.show(); }); + var $delay = 0; angular.forEach($scope.items, function(item) { - $scope.query(item); + $timeout( function(){ $scope.query(item); }, $delay * 1000); + $delay++; }); }; -- GitLab From 8e58706e77f618ea9750c0d93ee1e298fe190ee0 Mon Sep 17 00:00:00 2001 From: Joan He <joan@x.com> Date: Wed, 7 Oct 2015 18:17:22 -0500 Subject: [PATCH 299/420] MAGETWO-39769: [GITHUB] lastInsertId returns 0 when PK is not AI #1445 --- app/code/Magento/Tax/Model/Resource/Calculation.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/app/code/Magento/Tax/Model/Resource/Calculation.php b/app/code/Magento/Tax/Model/Resource/Calculation.php index 2bcc8382d79..567366e3901 100644 --- a/app/code/Magento/Tax/Model/Resource/Calculation.php +++ b/app/code/Magento/Tax/Model/Resource/Calculation.php @@ -24,13 +24,6 @@ class Calculation extends \Magento\Framework\Model\Resource\Db\AbstractDb */ protected $_ratesCache = []; - /** - * Primary key auto increment flag - * - * @var bool - */ - protected $_isPkAutoIncrement = false; - /** * Tax data * -- GitLab From cb83052cb83938364cd1a1f93356dbf6c671ebc8 Mon Sep 17 00:00:00 2001 From: Maksym Savich <msavich@ebay.com> Date: Wed, 7 Oct 2015 18:17:32 -0500 Subject: [PATCH 300/420] MAGETWO-43197: Product's options are not saved after running setup:di:compile - Web installation competing code generation process workaround, CR --- setup/pub/magento/setup/readiness-check.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup/pub/magento/setup/readiness-check.js b/setup/pub/magento/setup/readiness-check.js index e176d9b6045..cefedae21c4 100644 --- a/setup/pub/magento/setup/readiness-check.js +++ b/setup/pub/magento/setup/readiness-check.js @@ -306,7 +306,7 @@ angular.module('readiness-check', []) }); var $delay = 0; angular.forEach($scope.items, function(item) { - $timeout( function(){ $scope.query(item); }, $delay * 1000); + $timeout(function(){ $scope.query(item); }, $delay * 1000); $delay++; }); }; -- GitLab From df124fcd89ce3df03b87609eb6624702e6173d92 Mon Sep 17 00:00:00 2001 From: Maksym Savich <msavich@ebay.com> Date: Wed, 7 Oct 2015 18:18:10 -0500 Subject: [PATCH 301/420] MAGETWO-43197: Product's options are not saved after running setup:di:compile - Web installation competing code generation process workaround, CR --- setup/pub/magento/setup/readiness-check.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup/pub/magento/setup/readiness-check.js b/setup/pub/magento/setup/readiness-check.js index cefedae21c4..55b090ef138 100644 --- a/setup/pub/magento/setup/readiness-check.js +++ b/setup/pub/magento/setup/readiness-check.js @@ -306,7 +306,7 @@ angular.module('readiness-check', []) }); var $delay = 0; angular.forEach($scope.items, function(item) { - $timeout(function(){ $scope.query(item); }, $delay * 1000); + $timeout(function() { $scope.query(item); }, $delay * 1000); $delay++; }); }; -- GitLab From 50fe979dc0da8ebbcae7013678671e2248875208 Mon Sep 17 00:00:00 2001 From: Bohdan Korablov <bkorablov@ebay.com> Date: Thu, 8 Oct 2015 13:10:10 +0300 Subject: [PATCH 302/420] MAGETWO-43293: Added checking if not use wrapper for addOn --- .../templates/widget/form/renderer/fieldset/element.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset/element.phtml b/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset/element.phtml index b09be9491f0..c11293d6ae7 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset/element.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/widget/form/renderer/fieldset/element.phtml @@ -12,7 +12,7 @@ $element = $block->getElement(); $note = $element->getNote() ? '<div class="note" id="' . $element->getId() . '-note">' . $element->getNote() . '</div>' : ''; $elementBeforeLabel = $element->getExtType() == 'checkbox admin__control-checkbox' || $element->getExtType() == 'radio admin__control-radio'; -$addOn = $element->getBeforeElementHtml() || $element->getAfterElementHtml(); +$addOn = ($element->getBeforeElementHtml() || $element->getAfterElementHtml()) && !$element->getNoWrapAsAddon(); $fieldId = ($element->getHtmlContainerId()) ? ' id="' . $element->getHtmlContainerId() . '"' : ''; $fieldClass = "admin__field field field-{$element->getId()} {$element->getCssClass()}"; $fieldClass .= ($elementBeforeLabel) ? ' choice' : ''; -- GitLab From cdaa40bb4aa8c524779bd303208d060479096c97 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Thu, 8 Oct 2015 14:16:17 +0300 Subject: [PATCH 303/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix IE9 arrows display --- app/design/frontend/Magento/blank/etc/view.xml | 4 ++-- lib/web/mage/gallery/gallery.less | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/design/frontend/Magento/blank/etc/view.xml b/app/design/frontend/Magento/blank/etc/view.xml index b240e3cd0ba..bdb30144699 100644 --- a/app/design/frontend/Magento/blank/etc/view.xml +++ b/app/design/frontend/Magento/blank/etc/view.xml @@ -183,7 +183,7 @@ <!-- Gallery and magnifier theme settings. Start --> <var name="gallery"> - <var name="navigation">thumbs</var> <!-- Gallery navigation style (false/thumbs/dots) --> + <var name="nav">thumbs</var> <!-- Gallery navigation style (false/thumbs/dots) --> <var name="loop">true</var> <!-- Gallery navigation loop (true/false) --> <var name="keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false) --> <var name="arrows">true</var> <!-- Turn on/off arrows on the sides preview (true/false) --> @@ -197,7 +197,7 @@ <var name="duration">500</var> <!-- Sets transition duration in ms --> </var> <var name="fullscreen"> - <var name="navigation">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> + <var name="nav">thumbs</var> <!-- Fullscreen navigation style (false/thumbs/dots) --> <var name="loop">true</var> <!-- Fullscreen navigation loop (true/false/null) --> <var name="keyboard">true</var> <!-- Turn on/off keyboard arrows navigation (true/false/null) --> <var name="arrows">false</var> <!-- Turn on/off arrows on the sides preview (true/false/null) --> diff --git a/lib/web/mage/gallery/gallery.less b/lib/web/mage/gallery/gallery.less index f6db8bb7761..f1a68415517 100644 --- a/lib/web/mage/gallery/gallery.less +++ b/lib/web/mage/gallery/gallery.less @@ -687,6 +687,9 @@ .fotorama-abs-center(); height: @size-fotorama-block; width: @size-fotorama-block; + .ie9 & { + margin: (-@size-fotorama-block/2) 0 0 (-@size-fotorama-block/2); + } } } -- GitLab From 40d0916e5f99545971cb68a9944a595b536865e4 Mon Sep 17 00:00:00 2001 From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com> Date: Thu, 8 Oct 2015 14:23:23 +0300 Subject: [PATCH 304/420] PV-224: CSS to LESS refactoring. Fix bug IE related to storefront, fix video uploader link to blank, fix vimeo links --- .../adminhtml/web/js/get-video-information.js | 21 +++++++++++++++---- .../view/adminhtml/web/js/new-video-dialog.js | 4 ++-- .../web/js/fotorama-add-video-events.js | 8 +++++-- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js index d692aaf4ecc..86b47bfde2a 100644 --- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js +++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js @@ -429,8 +429,17 @@ require([ googleapisUrl = 'https://www.googleapis.com/youtube/v3/videos?id=' + id + '&part=snippet,contentDetails,statistics,status&key=' + - this.options.youtubeKey; - $.get(googleapisUrl, $.proxy(_onYouTubeLoaded, this)); + this.options.youtubeKey + '&alt=json&callback=?'; + $.getJSON(googleapisUrl, + { + format: 'json' + }, + $.proxy(_onYouTubeLoaded, self) + ).fail( + function () { + self._onRequestError('Video not found'); + } + ); } else if (type === 'vimeo') { $.getJSON('http://www.vimeo.com/api/v2/video/' + id + '.json?callback=?', { @@ -493,7 +502,8 @@ require([ _validateURL: function (href, forceVideo) { var id, type, - ampersandPosition; + ampersandPosition, + vimeoRegex; if (typeof href !== 'string') { return href; @@ -518,7 +528,10 @@ require([ type = 'youtube'; } else if (href.host.match(/vimeo\.com/)) { type = 'vimeo'; - id = href.pathname.replace(/^\/(video\/)?/, '').replace(/\/.*/, ''); + vimeoRegex = new RegExp(['https?:\\/\\/(?:www\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)', + '?|groups\\/([^\\/]*)\\/videos\\/|album\\/(\\d+)\\/video\\/|)(\\d+)(?:$|\\/|\\?)' + ].join('')); + id = href.href.match(vimeoRegex)[3]; } if ((!id || !type) && forceVideo) { diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js index 980ac3a2e4d..4e9203e0f2c 100644 --- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js +++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js @@ -93,7 +93,7 @@ define([ $(this.options.metaData.DOM.uploader).html( '<a href="https://youtube.com/channel/' + this.options.metaData.data.uploaderUrl + - '">' + + '" target="_blank">' + this.options.metaData.data.uploader + '</a>' ); @@ -102,7 +102,7 @@ define([ $(this.options.metaData.DOM.uploader).html( '<a href="' + this.options.metaData.data.uploaderUrl + - '">' + this.options.metaData.data.uploader + + '" target="_blank">' + this.options.metaData.data.uploader + '</a>'); } $('.' + this.options.videoClass).productVideoLoader(); diff --git a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js index a9bc9eb2bc9..aa3fe044a29 100644 --- a/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js +++ b/app/code/Magento/ProductVideo/view/frontend/web/js/fotorama-add-video-events.js @@ -23,7 +23,8 @@ require(['jquery', 'jquery/ui', 'catalogGallery'], function ($) { function parseURL(href, forceVideo) { var id, type, - ampersandPosition; + ampersandPosition, + vimeoRegex; /** * Get youtube ID @@ -62,7 +63,10 @@ require(['jquery', 'jquery/ui', 'catalogGallery'], function ($) { type = 'youtube'; } else if (href.host.match(/vimeo\.com/)) { type = 'vimeo'; - id = href.pathname.replace(/^\/(video\/)?/, '').replace(/\/.*/, ''); + vimeoRegex = new RegExp(['https?:\\/\\/(?:www\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)', + '?|groups\\/([^\\/]*)\\/videos\\/|album\\/(\\d+)\\/video\\/|)(\\d+)(?:$|\\/|\\?)' + ].join('')); + id = href.href.match(vimeoRegex)[3]; } if ((!id || !type) && forceVideo) { -- GitLab From 437859a645bff0caf76d1b4c3498aec6549998b4 Mon Sep 17 00:00:00 2001 From: Andrii Kasian <akasian@ebay.com> Date: Thu, 8 Oct 2015 14:45:21 +0300 Subject: [PATCH 305/420] =?UTF-8?q?MAGETWO-43755:=20[GITHUB]=20The=20commi?= =?UTF-8?q?t=20=C2=ABPCF:=20removing=20grouped=20price=C2=BB=20from=202015?= =?UTF-8?q?-10-02=20breaks=20Magento=20schema=20upgrading=20with=20the=20e?= =?UTF-8?q?xception?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Magento/Catalog/Setup/UpgradeData.php | 28 +++++++++++-------- .../Magento/Catalog/Setup/UpgradeSchema.php | 4 +++ 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/app/code/Magento/Catalog/Setup/UpgradeData.php b/app/code/Magento/Catalog/Setup/UpgradeData.php index 5adf385101f..a79f0c384ae 100644 --- a/app/code/Magento/Catalog/Setup/UpgradeData.php +++ b/app/code/Magento/Catalog/Setup/UpgradeData.php @@ -46,21 +46,26 @@ class UpgradeData implements UpgradeDataInterface $entityTypeId = $categorySetup->getEntityTypeId(\Magento\Catalog\Model\Product::ENTITY); $attributeSetId = $categorySetup->getDefaultAttributeSetId($entityTypeId); - $attributeGroupId = $categorySetup->getAttributeGroupId($entityTypeId, $attributeSetId, 'Images'); - - // update General Group - $categorySetup->updateAttributeGroup( + $attributeGroup = $categorySetup->getAttributeGroup( $entityTypeId, $attributeSetId, - $attributeGroupId, - 'attribute_group_name', - 'Images and Videos' + 'Images', + 'attribute_group_name' ); + if ($attributeGroup['attribute_group_name'] == 'Images') { + // update General Group + $categorySetup->updateAttributeGroup( + $entityTypeId, + $attributeSetId, + $attributeGroup['attribute_group_id'], + 'attribute_group_name', + 'Images and Videos' + ); + } $select = $setup->getConnection()->select() ->from( $setup->getTable('catalog_product_entity_group_price'), [ - 'value_id', 'entity_id', 'all_groups', 'customer_group_id', @@ -69,11 +74,10 @@ class UpgradeData implements UpgradeDataInterface 'website_id' ] ); - $setup->getConnection()->insertFromSelect( + $select = $setup->getConnection()->insertFromSelect( $select, - $setup->getTable('catalog_product_entity_group_price'), + $setup->getTable('catalog_product_entity_tier_price'), [ - 'value_id', 'entity_id', 'all_groups', 'customer_group_id', @@ -82,6 +86,8 @@ class UpgradeData implements UpgradeDataInterface 'website_id' ] ); + $setup->getConnection()->query($select); + $categorySetupManager = $this->categorySetupFactory->create(); $categorySetupManager->removeAttribute(\Magento\Catalog\Model\Product::ENTITY, 'group_price'); } diff --git a/app/code/Magento/Catalog/Setup/UpgradeSchema.php b/app/code/Magento/Catalog/Setup/UpgradeSchema.php index fe978e80a98..d54c6e6de4a 100644 --- a/app/code/Magento/Catalog/Setup/UpgradeSchema.php +++ b/app/code/Magento/Catalog/Setup/UpgradeSchema.php @@ -140,6 +140,10 @@ class UpgradeSchema implements UpgradeSchemaInterface */ private function addSupportVideoMediaAttributes(SchemaSetupInterface $setup) { + if ($setup->tableExists(Media::GALLERY_VALUE_TO_ENTITY_TABLE)) { + return; + }; + /** Add support video media attribute */ $this->createValueToEntityTable($setup); /** -- GitLab From 1e578261994f0489b90a1292dfa659aeadf61566 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Thu, 8 Oct 2015 15:51:05 +0300 Subject: [PATCH 306/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix arguments order --- app/code/Magento/ProductVideo/Block/Product/View/Gallery.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/ProductVideo/Block/Product/View/Gallery.php b/app/code/Magento/ProductVideo/Block/Product/View/Gallery.php index af26e074a02..8643a8bec34 100644 --- a/app/code/Magento/ProductVideo/Block/Product/View/Gallery.php +++ b/app/code/Magento/ProductVideo/Block/Product/View/Gallery.php @@ -28,8 +28,8 @@ class Gallery extends \Magento\Catalog\Block\Product\View\Gallery public function __construct( \Magento\Catalog\Block\Product\Context $context, \Magento\Framework\Stdlib\ArrayUtils $arrayUtils, - \Magento\ProductVideo\Helper\Media $mediaHelper, \Magento\Framework\Json\EncoderInterface $jsonEncoder, + \Magento\ProductVideo\Helper\Media $mediaHelper, array $data = [] ) { parent::__construct( -- GitLab From d51b7d8e8b073a4ce0e5df21ee944f436c50cf4f Mon Sep 17 00:00:00 2001 From: Vitali Kirychenka <Vitali_Kirychenka@epam.com> Date: Thu, 8 Oct 2015 16:34:25 +0300 Subject: [PATCH 307/420] PV:224: functional tests css selectors fix --- .../Test/Block/Adminhtml/Product/Edit/Tab/ImagesAndVideos.php | 2 +- .../ProductVideo/Test/Block/Adminhtml/Product/ProductForm.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/ImagesAndVideos.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/ImagesAndVideos.php index efbf9ac19ef..c490b2dbaf1 100755 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/ImagesAndVideos.php +++ b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/ImagesAndVideos.php @@ -20,7 +20,7 @@ class ImagesAndVideos extends Tab * * @var string */ - protected $addVideoButton = '#product_info_tabs_images-and-videos_content #add_video_button'; + protected $addVideoButton = '#product_info_tabs_image-management_content #add_video_button'; /** * Video dialog CSS locator. diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/ProductForm.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/ProductForm.xml index 94e28feef71..5a3c8fbe3fd 100755 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/ProductForm.xml +++ b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/ProductForm.xml @@ -8,7 +8,7 @@ <tabs> <images-and-videos> <class>\Magento\ProductVideo\Test\Block\Adminhtml\Product\Edit\Tab\ImagesAndVideos</class> - <selector>#product_info_tabs_images-and-videos</selector> + <selector>#product_info_tabs_image-management</selector> <strategy>css selector</strategy> <fields> <position /> -- GitLab From 324f527e4ff77fc5e78c2dac08c3e187931dac51 Mon Sep 17 00:00:00 2001 From: Vitali Kirychenka <Vitali_Kirychenka@epam.com> Date: Thu, 8 Oct 2015 16:34:25 +0300 Subject: [PATCH 308/420] PV-224: functional tests css selectors fix --- .../Test/Block/Adminhtml/Product/Edit/Tab/ImagesAndVideos.php | 2 +- .../ProductVideo/Test/Block/Adminhtml/Product/ProductForm.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/ImagesAndVideos.php b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/ImagesAndVideos.php index efbf9ac19ef..c490b2dbaf1 100755 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/ImagesAndVideos.php +++ b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/Edit/Tab/ImagesAndVideos.php @@ -20,7 +20,7 @@ class ImagesAndVideos extends Tab * * @var string */ - protected $addVideoButton = '#product_info_tabs_images-and-videos_content #add_video_button'; + protected $addVideoButton = '#product_info_tabs_image-management_content #add_video_button'; /** * Video dialog CSS locator. diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/ProductForm.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/ProductForm.xml index 94e28feef71..5a3c8fbe3fd 100755 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/ProductForm.xml +++ b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Block/Adminhtml/Product/ProductForm.xml @@ -8,7 +8,7 @@ <tabs> <images-and-videos> <class>\Magento\ProductVideo\Test\Block\Adminhtml\Product\Edit\Tab\ImagesAndVideos</class> - <selector>#product_info_tabs_images-and-videos</selector> + <selector>#product_info_tabs_image-management</selector> <strategy>css selector</strategy> <fields> <position /> -- GitLab From 8aaff81f470aaea3453bb081f0393d936e9c3c39 Mon Sep 17 00:00:00 2001 From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com> Date: Thu, 8 Oct 2015 17:01:23 +0300 Subject: [PATCH 309/420] PV-224: CSS to LESS refactoring. Fix styles in product details gallery --- .../backend/Magento_ProductVideo/web/css/source/_module.less | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less index d2dee0e80e1..b043b1173c7 100644 --- a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less +++ b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less @@ -89,7 +89,8 @@ margin-bottom: 20px; } } - .gallery .image .action-make-base { + .gallery .image .action-make-base, + .images .image .action-make-base { .lib-button( @_button-background: transparent, @_button-border: none, -- GitLab From d6f3c216e743f52d03ef96d6e1610e75f36c3885 Mon Sep 17 00:00:00 2001 From: Andrii Kasian <akasian@ebay.com> Date: Thu, 8 Oct 2015 17:38:36 +0300 Subject: [PATCH 310/420] =?UTF-8?q?MAGETWO-43755:=20[GITHUB]=20The=20commi?= =?UTF-8?q?t=20=C2=ABPCF:=20removing=20grouped=20price=C2=BB=20from=202015?= =?UTF-8?q?-10-02=20breaks=20Magento=20schema=20upgrading=20with=20the=20e?= =?UTF-8?q?xception?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/code/Magento/Catalog/Setup/UpgradeData.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Setup/UpgradeData.php b/app/code/Magento/Catalog/Setup/UpgradeData.php index a79f0c384ae..2d09cb6946d 100644 --- a/app/code/Magento/Catalog/Setup/UpgradeData.php +++ b/app/code/Magento/Catalog/Setup/UpgradeData.php @@ -52,7 +52,9 @@ class UpgradeData implements UpgradeDataInterface 'Images', 'attribute_group_name' ); - if ($attributeGroup['attribute_group_name'] == 'Images') { + if (isset($attributeGroup['attribute_group_name']) + && $attributeGroup['attribute_group_name'] == 'Images' + ) { // update General Group $categorySetup->updateAttributeGroup( $entityTypeId, -- GitLab From 2aff5a62139373efe41c7bfb55a6736b6c9c1144 Mon Sep 17 00:00:00 2001 From: Andrii Kasian <akasian@ebay.com> Date: Thu, 8 Oct 2015 17:48:33 +0300 Subject: [PATCH 311/420] =?UTF-8?q?MAGETWO-43755:=20[GITHUB]=20The=20commi?= =?UTF-8?q?t=20=C2=ABPCF:=20removing=20grouped=20price=C2=BB=20from=202015?= =?UTF-8?q?-10-02=20breaks=20Magento=20schema=20upgrading=20with=20the=20e?= =?UTF-8?q?xception?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/code/Magento/Catalog/Setup/UpgradeData.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Setup/UpgradeData.php b/app/code/Magento/Catalog/Setup/UpgradeData.php index 2d09cb6946d..78a0bc035df 100644 --- a/app/code/Magento/Catalog/Setup/UpgradeData.php +++ b/app/code/Magento/Catalog/Setup/UpgradeData.php @@ -39,7 +39,8 @@ class UpgradeData implements UpgradeDataInterface public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context) { $setup->startSetup(); - if (version_compare($context->getVersion(), '2.0.1') < 0) { + if ($context->getVersion() && version_compare($context->getVersion(), '2.0.1') < 0) { + /** @var \Magento\Catalog\Setup\CategorySetup $categorySetup */ $categorySetup = $this->categorySetupFactory->create(['setup' => $setup]); -- GitLab From 0ed510f118ecfb6ef5a734cbe406f5833ddfa0f5 Mon Sep 17 00:00:00 2001 From: Andrii Kasian <akasian@ebay.com> Date: Thu, 8 Oct 2015 18:15:50 +0300 Subject: [PATCH 312/420] =?UTF-8?q?MAGETWO-43755:=20[GITHUB]=20The=20commi?= =?UTF-8?q?t=20=C2=ABPCF:=20removing=20grouped=20price=C2=BB=20from=202015?= =?UTF-8?q?-10-02=20breaks=20Magento=20schema=20upgrading=20with=20the=20e?= =?UTF-8?q?xception?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/code/Magento/Catalog/Setup/UpgradeData.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/Catalog/Setup/UpgradeData.php b/app/code/Magento/Catalog/Setup/UpgradeData.php index 78a0bc035df..4c2d32738e8 100644 --- a/app/code/Magento/Catalog/Setup/UpgradeData.php +++ b/app/code/Magento/Catalog/Setup/UpgradeData.php @@ -39,8 +39,7 @@ class UpgradeData implements UpgradeDataInterface public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context) { $setup->startSetup(); - if ($context->getVersion() && version_compare($context->getVersion(), '2.0.1') < 0) { - + if (version_compare($context->getVersion(), '2.0.1') < 0) { /** @var \Magento\Catalog\Setup\CategorySetup $categorySetup */ $categorySetup = $this->categorySetupFactory->create(['setup' => $setup]); @@ -53,9 +52,7 @@ class UpgradeData implements UpgradeDataInterface 'Images', 'attribute_group_name' ); - if (isset($attributeGroup['attribute_group_name']) - && $attributeGroup['attribute_group_name'] == 'Images' - ) { + if (isset($attributeGroup['attribute_group_name']) && $attributeGroup['attribute_group_name'] == 'Images') { // update General Group $categorySetup->updateAttributeGroup( $entityTypeId, @@ -65,6 +62,11 @@ class UpgradeData implements UpgradeDataInterface 'Images and Videos' ); } + } + + if ($context->getVersion() + && version_compare($context->getVersion(), '2.0.1') < 0 + ) { $select = $setup->getConnection()->select() ->from( $setup->getTable('catalog_product_entity_group_price'), -- GitLab From ac1c10d228af1076b279d4b68901b527ee63f593 Mon Sep 17 00:00:00 2001 From: Volodymyr Zaets <vzaets@ebay.com> Date: Fri, 9 Oct 2015 10:38:19 +0300 Subject: [PATCH 313/420] MAGETWO-43593: PR - Change selector for test --- .../frontend/templates/cart/item/renderer/actions/remove.phtml | 2 +- .../functional/tests/app/Magento/Checkout/Test/Block/Cart.php | 2 +- lib/internal/Magento/Framework/Component/ComponentRegistrar.php | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Checkout/view/frontend/templates/cart/item/renderer/actions/remove.phtml b/app/code/Magento/Checkout/view/frontend/templates/cart/item/renderer/actions/remove.phtml index 65bc29c7135..b926bfd7aba 100644 --- a/app/code/Magento/Checkout/view/frontend/templates/cart/item/renderer/actions/remove.phtml +++ b/app/code/Magento/Checkout/view/frontend/templates/cart/item/renderer/actions/remove.phtml @@ -10,7 +10,7 @@ ?> <a href="#" title="<?php echo $block->escapeHtml(__('Remove item')); ?>" - class="action action-delete" + class="action action-delete delete-item-test" data-post='<?php /* @escapeNotVerified */ echo $block->getDeletePostJson(); ?>'> <span> <?php /* @escapeNotVerified */ echo __('Remove item')?> diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart.php index 22256fed04b..b8c70c95f0d 100644 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart.php +++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart.php @@ -76,7 +76,7 @@ class Cart extends Block * * @var string */ - protected $deleteItemButton = '.action.action-delete'; + protected $deleteItemButton = '.delete-item-test'; /** * Get Shopping Cart item. diff --git a/lib/internal/Magento/Framework/Component/ComponentRegistrar.php b/lib/internal/Magento/Framework/Component/ComponentRegistrar.php index a4eacac3ceb..c2c928b2376 100644 --- a/lib/internal/Magento/Framework/Component/ComponentRegistrar.php +++ b/lib/internal/Magento/Framework/Component/ComponentRegistrar.php @@ -48,7 +48,6 @@ class ComponentRegistrar implements ComponentRegistrarInterface if (isset(self::$paths[$type][$componentName])) { throw new \LogicException('\'' . $componentName . '\' component already exists'); } else { - $path = str_replace('\\', '/', $path); self::$paths[$type][$componentName] = $path; } } -- GitLab From 37ca44d0d3fd0c25e50f55ae2c12454c29b48fd8 Mon Sep 17 00:00:00 2001 From: Olga Nakonechna <onakonechna@ebay.com> Date: Fri, 9 Oct 2015 10:49:10 +0300 Subject: [PATCH 314/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix long press --- lib/web/fotorama/fotorama.js | 113 +++++++++++++++++++++++++++++------ 1 file changed, 94 insertions(+), 19 deletions(-) diff --git a/lib/web/fotorama/fotorama.js b/lib/web/fotorama/fotorama.js index 1141f9d1473..445fe7d30c5 100644 --- a/lib/web/fotorama/fotorama.js +++ b/lib/web/fotorama/fotorama.js @@ -2301,7 +2301,8 @@ fotoramaVersion = '4.6.4'; localStamp = _fotoramaClass + stamp, keydownLocal = 'keydown.' + localStamp, keyupLocal = 'keyup.' + localStamp, - resizeLocal = 'resize.' + localStamp + ' ' + 'orientationchange.' + localStamp; + resizeLocal = 'resize.' + localStamp + ' ' + 'orientationchange.' + localStamp, + showParams; if (FLAG) { $DOCUMENT @@ -2332,13 +2333,19 @@ fotoramaVersion = '4.6.4'; } (catched || index) && stopEvent(e); - index && that.show({index: index, slow: e.altKey, user: true}); + showParams = {index: index, slow: e.altKey, user: true}; + index && (that.longPress.inProgress ? + that.showWhileLongPress(showParams) : + that.show(showParams)); }); if (FLAG) { $DOCUMENT .on(keyupLocal, function (e) { - that.longPress.end(); + if (that.longPress.inProgress) { + that.showEndLongPress({user:true}); + } + that.longPress.reset(); }); } @@ -3171,7 +3178,7 @@ fotoramaVersion = '4.6.4'; $frame.attr('aria-hidden', 'false'); } - skipOnEnd || that.show.onEnd(true); + skipOnEnd || that.showStage.onEnd(true); stop($stageShaft, 0, true); detachFrames(STAGE_FRAME_KEY); @@ -3322,7 +3329,46 @@ fotoramaVersion = '4.6.4'; }); }; - that.show = function (options) { + that.showWhileLongPress = function (options) { + if (that.longPress.singlePressInProgress) + { + return; + } + + var index = calcActiveIndex(options); + calcGlobalIndexes(index); + var time = calcTime(options)/50; + var _activeFrame = activeFrame; + that.activeFrame = activeFrame = data[activeIndex]; + var silent = _activeFrame === activeFrame && !options.user; + + that.showNav(silent, options, time); + + return this; + }; + + that.showEndLongPress = function (options) { + if (that.longPress.singlePressInProgress) + { + return; + } + + var index = calcActiveIndex(options); + calcGlobalIndexes(index); + var time = calcTime(options)/50; + var _activeFrame = activeFrame; + that.activeFrame = activeFrame = data[activeIndex]; + + var silent = _activeFrame === activeFrame && !options.user; + + that.showStage(silent, options, time); + + showedFLAG = typeof lastActiveIndex !== 'undefined' && lastActiveIndex !== activeIndex; + lastActiveIndex = activeIndex; + return this; + }; + + function calcActiveIndex (options) { var index; if (typeof options !== 'object') { @@ -3336,6 +3382,10 @@ fotoramaVersion = '4.6.4'; index = isNaN(index) ? undefined : index; index = typeof index === 'undefined' ? activeIndex || 0 : index; + return index; + } + + function calcGlobalIndexes (index) { that.activeIndex = activeIndex = edgeIndex(index); prevIndex = getPrevIndex(activeIndex); nextIndex = getNextIndex(activeIndex); @@ -3343,20 +3393,22 @@ fotoramaVersion = '4.6.4'; activeIndexes = [activeIndex, prevIndex, nextIndex]; dirtyIndex = o_loop ? index : activeIndex; + } + function calcTime (options) { var diffIndex = Math.abs(lastActiveIndex - dirtyIndex), time = getNumber(options.time, function () { return Math.min(o_transitionDuration * (1 + (diffIndex - 1) / 12), o_transitionDuration * 2); - }), - overPos = options.overPos; - - if (options.slow) time *= 10; + }); - var _activeFrame = activeFrame; - that.activeFrame = activeFrame = data[activeIndex]; + if (options.slow) { + time *= 10; + } - var silent = _activeFrame === activeFrame && !options.user; + return time; + } + that.showStage = function (silent, options, time) { unloadVideo($videoPlaying, activeFrame.i !== data[normalizeIndex(repositionIndex)].i); frameDraw(activeIndexes, 'stage'); stageFramePosition(SLOW ? [dirtyIndex] : [dirtyIndex, getPrevIndex(dirtyIndex), getNextIndex(dirtyIndex)]); @@ -3369,7 +3421,8 @@ fotoramaVersion = '4.6.4'; pausedAutoplayFLAG = true; - var onEnd = that.show.onEnd = function (skipReposition) { + var overPos = options.overPos; + var onEnd = that.showStage.onEnd = function (skipReposition) { if (onEnd.ok) return; onEnd.ok = true; @@ -3417,23 +3470,41 @@ fotoramaVersion = '4.6.4'; } arrsUpdate(); + }; + that.showNav = function(silent, options, time){ thumbArrUpdate(); if (o_nav) { navUpdate(); var guessIndex = limitIndex(activeIndex + minMaxLimit(dirtyIndex - lastActiveIndex, -1, 1)); slideNavShaft({ - time: that.longPress.inProgress ? that.longPress.calcThumbSlideTime(time) : time, + time: time, coo: guessIndex !== activeIndex && options.coo, guessIndex: typeof options.coo !== 'undefined' ? guessIndex : activeIndex, keep: silent }); - if (o_navThumbs) slideThumbBorder(that.longPress.inProgress ? that.longPress.calcThumbSlideTime(time) : time); + if (o_navThumbs) slideThumbBorder(time); } + }; + + that.show = function (options) { + that.longPress.singlePressInProgress = true; + + var index = calcActiveIndex(options); + calcGlobalIndexes(index); + var time = calcTime(options); + var _activeFrame = activeFrame; + that.activeFrame = activeFrame = data[activeIndex]; + + var silent = _activeFrame === activeFrame && !options.user; + + that.showStage(silent, options, time); + that.showNav(silent, options, time); showedFLAG = typeof lastActiveIndex !== 'undefined' && lastActiveIndex !== activeIndex; lastActiveIndex = activeIndex; + that.longPress.singlePressInProgress = false; return this; }; @@ -3649,8 +3720,9 @@ fotoramaVersion = '4.6.4'; } that.longPress = { - threshold: 3, + threshold: 1, count: 0, + thumbSlideTime: 20, progress: function(){ if (!this.inProgress) { this.count++; @@ -3658,11 +3730,14 @@ fotoramaVersion = '4.6.4'; } }, end: function(){ + if(this.inProgress) { + this.isEnded = true + } + }, + reset: function(){ this.count = 0; this.inProgress = false; - }, - calcThumbSlideTime: function(msec){ - return msec/25; + this.isEnded = false; } }; -- GitLab From 660a35208a406fb5908bc2cdf8702dd34be2a82a Mon Sep 17 00:00:00 2001 From: Andrii Kasian <akasian@ebay.com> Date: Fri, 9 Oct 2015 11:17:45 +0300 Subject: [PATCH 315/420] MAGETWO-39604: [GITHUB] Doesn't work sorting in the search list. #1432 --- app/code/Magento/Catalog/Block/Product/ListProduct.php | 2 +- .../Magento/Catalog/Block/Product/ProductList/Toolbar.php | 4 ++-- .../Catalog/view/frontend/web/js/product/list/toolbar.js | 6 ++++-- app/code/Magento/CatalogSearch/Block/Result.php | 3 ++- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/ListProduct.php b/app/code/Magento/Catalog/Block/Product/ListProduct.php index 73beec6b2b2..c28ab40b553 100644 --- a/app/code/Magento/Catalog/Block/Product/ListProduct.php +++ b/app/code/Magento/Catalog/Block/Product/ListProduct.php @@ -296,7 +296,7 @@ class ListProduct extends AbstractProduct implements IdentityInterface } $availableOrders = $this->getAvailableOrders(); if (!$this->getSortBy()) { - $categorySortBy = $category->getDefaultSortBy(); + $categorySortBy = $this->getDefaultSortBy() ?: $category->getDefaultSortBy(); if ($categorySortBy) { if (!$availableOrders) { $availableOrders = $this->_getConfig()->getAttributeUsedForSortByArray(); diff --git a/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php b/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php index 93b34bc6b31..cd107905e5f 100644 --- a/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php +++ b/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php @@ -355,7 +355,7 @@ class Toolbar extends \Magento\Framework\View\Element\Template } /** - * Compare defined order field vith current order field + * Compare defined order field with current order field * * @param string $order * @return bool @@ -375,7 +375,7 @@ class Toolbar extends \Magento\Framework\View\Element\Template { $urlParams = []; $urlParams['_current'] = true; - $urlParams['_escape'] = true; + $urlParams['_escape'] = false; $urlParams['_use_rewrite'] = true; $urlParams['_query'] = $params; return $this->getUrl('*/*/*', $urlParams); diff --git a/app/code/Magento/Catalog/view/frontend/web/js/product/list/toolbar.js b/app/code/Magento/Catalog/view/frontend/web/js/product/list/toolbar.js index 688f836fb10..5904b567278 100644 --- a/app/code/Magento/Catalog/view/frontend/web/js/product/list/toolbar.js +++ b/app/code/Magento/Catalog/view/frontend/web/js/product/list/toolbar.js @@ -68,7 +68,9 @@ define([ parameters; for (var i = 0; i < urlParams.length; i++) { parameters = urlParams[i].split('='); - paramData[parameters[0]] = parameters[1] !== undefined ? parameters[1] : ''; + paramData[parameters[0]] = parameters[1] !== undefined + ? window.decodeURIComponent(parameters[1].replace(/\+/g, '%20')) + : ''; } paramData[paramName] = paramValue; if (paramValue == defaultValue) { @@ -81,4 +83,4 @@ define([ }); return $.mage.productListToolbarForm; -}); \ No newline at end of file +}); diff --git a/app/code/Magento/CatalogSearch/Block/Result.php b/app/code/Magento/CatalogSearch/Block/Result.php index 4a041db7391..ccd292c7bd0 100644 --- a/app/code/Magento/CatalogSearch/Block/Result.php +++ b/app/code/Magento/CatalogSearch/Block/Result.php @@ -133,12 +133,13 @@ class Result extends Template /* @var $category \Magento\Catalog\Model\Category */ $availableOrders = $category->getAvailableSortByOptions(); unset($availableOrders['position']); + $availableOrders['relevance'] = __('Relevance'); $this->getListBlock()->setAvailableOrders( $availableOrders )->setDefaultDirection( 'desc' - )->setSortBy( + )->setDefaultSortBy( 'relevance' ); -- GitLab From f2bf765c76b3e721947ee8e54cc8af7a1f6c8885 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Fri, 9 Oct 2015 12:02:14 +0300 Subject: [PATCH 316/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix fullscreen click handler - Fix magnify styles --- app/code/Magento/Swatches/Helper/Data.php | 3 + .../view/frontend/web/js/SwatchRenderer.js | 4 +- lib/web/magnifier/magnifier.js | 182 ++++++++++-------- 3 files changed, 107 insertions(+), 82 deletions(-) diff --git a/app/code/Magento/Swatches/Helper/Data.php b/app/code/Magento/Swatches/Helper/Data.php index 25123be5155..3ddba372699 100644 --- a/app/code/Magento/Swatches/Helper/Data.php +++ b/app/code/Magento/Swatches/Helper/Data.php @@ -387,12 +387,15 @@ class Data extends \Magento\Framework\App\Helper\AbstractHelper { return [ 'large' => $this->imageHelper->init($product, 'product_page_image_large') + ->constrainOnly(true)->keepAspectRatio(true)->keepFrame(false) ->setImageFile($imageFile) ->getUrl(), 'medium' => $this->imageHelper->init($product, 'product_page_image_medium') + ->constrainOnly(true)->keepAspectRatio(true)->keepFrame(false) ->setImageFile($imageFile) ->getUrl(), 'small' => $this->imageHelper->init($product, 'product_page_image_small') + ->constrainOnly(true)->keepAspectRatio(true)->keepFrame(false) ->setImageFile($imageFile) ->getUrl(), ]; diff --git a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js index 96123ddf8fe..bac17e1f8b2 100644 --- a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js +++ b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js @@ -729,7 +729,7 @@ define(["jquery", "jquery/ui"], function ($) { if (support(response)) { images.push({ - large: response.large, + full: response.large, img: response.medium, thumb: response.small }); @@ -740,7 +740,7 @@ define(["jquery", "jquery/ui"], function ($) { return; } images.push({ - large: this.large, + full: this.large, img: this.medium, thumb: this.small }); diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 1630f5506e0..c253ca42375 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -4,6 +4,8 @@ */ ;(function ($) { + var onWheelCallback; + $.fn.magnify = function (options) { 'use strict'; @@ -25,8 +27,9 @@ that = this, largeWrapper = options.largeWrapper || ".magnifier-preview", $largeWrapper = $(largeWrapper), - isDraggable = false; - curThumb = null, + isDraggable = false, + zoomShown = false, + curThumb = null, currentOpts = { x: 0, y: 0, @@ -567,10 +570,16 @@ if ((imgSize.rh > $image.parent().height()) || (imgSize.rw > $image.parent().width())) { $('.fotorama__zoom-in').show(); $('.fotorama__zoom-out').show(); + zoomShown = true; } else { $('.fotorama__zoom-in').hide(); $('.fotorama__zoom-out').hide(); + zoomShown = false; } + } else { + $('.fotorama__zoom-in').hide(); + $('.fotorama__zoom-out').hide(); + zoomShown = false; } } @@ -756,81 +765,90 @@ }); - function checkFullscreenImagePosition() { + function checkFullscreenImagePosition(multiplier) { + var $preview, $image, $imageContainer, gallery, top, left; + if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { - var $preview = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'), - $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .fotorama__img--full'), - $imageContainer = $preview.parent(), - gallery = $('[data-gallery-role="gallery"]'), - top, left; + $preview = $('[data-gallery-role="stage-shaft"] [data-active="true"] img'); + $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .fotorama__img--full'); + $imageContainer = $preview.parent(); + gallery = $('[data-gallery-role="gallery"]'); + top = $image.offset().top; + left = $image.offset().left; - if ($imageContainer.offset().top + $imageContainer.height() > $image.offset().top + $image.height()) { - top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); - } else { - top = ($imageContainer.offset().top < $image.offset().top) ? 0 : top; + if ($image.height() > $imageContainer.height()) { + if ($imageContainer.offset().top + $imageContainer.height() > top + $image.height()) { + top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); + } else { + top = ($imageContainer.offset().top < top) ? 0 : top; + } + $image.offset({ + 'top': top + multiplier * options.fullscreenzoom/2 + }); } - if (top !== undefined) { - $image.css('top', top); + if ($image.width() > $imageContainer.width()) { + if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width())) { + left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); + } else { + left = ($imageContainer.offset().left < left) ? $imageContainer.offset().left : left; + } + $image.offset({ + 'left': left + multiplier * options.fullscreenzoom/2 + }); } + } + } - if ($imageContainer.offset().left + $imageContainer.width() > $image.offset().left + $image.width()) { - left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); - } else { - left = $imageContainer.offset().left < $image.offset().left ? 0 : left; + function zoomIn(e) { + if (zoomShown) { + var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .fotorama__img--full'), + imgOriginalSize = $image.length ? getImageSize($image[0].src) : '', + setedResult = Math.round($image.width() + parseFloat(options.fullscreenzoom)); + + if(e) { + e.preventDefault(); } - if (left !== undefined) { - $image.css('left', left); + if (setedResult > imgOriginalSize.rw) { + setedResult = imgOriginalSize.rw; } - if ($image.width() < $imageContainer.width()) { - $image.css('left', ''); + if ( zoomShown ) { + isDraggable = true; } - if ($image.height() < $imageContainer.height()) { - $image.css('top', ''); - } + $image.css({'width': setedResult, height: 'auto'}); + checkFullscreenImagePosition(-1); } } - function zoomIn(e) { - var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .fotorama__img--full'), - gallery = $('[data-gallery-role="gallery"]'), - imgOriginalSize = getImageSize($image[0].src), - setedResult = Math.round($image.width() + parseFloat(options.fullscreenzoom)); - if(e) { - e.preventDefault(); - } + function zoomOut(e) { + if (zoomShown) { + var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .fotorama__img--full'), + setedResult = Math.round($image.width() - parseFloat(options.fullscreenzoom)); - if (setedResult > imgOriginalSize.rw) { - setedResult = imgOriginalSize.rw; - } - $image.css({'width': setedResult, height: 'auto'}); - isDraggable = true; - checkFullscreenImagePosition(); - } + if (e) { + e.preventDefault(); + } + if ( + $image.width() <= $image.parent().width() && + $image.height() <= $image.parent().height() + ) { + isDraggable = false; + $image.css({ + top: 0, + left: 0, + right: 0, + bottom: 0 + }); - function zoomOut(e) { - var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .fotorama__img--full'), - gallery = $('[data-gallery-role="gallery"]'), - imgOriginalSize = getImageSize($image[0].src), - setedResult = Math.round($image.width() - parseFloat(options.fullscreenzoom)); - if (e) { - e.preventDefault(); - } + return; + } - if ($image.width() > $image.height() && $image.width() <= $image.parent().width()) { - isDraggable = false; - return; - } - if ($image.width() <= $image.height() && $image.height() <= $image.parent().height()) { - isDraggable = false; - return; + $image.css({'width': setedResult, height: 'auto'}); + checkFullscreenImagePosition(1); } - - $image.css({'width': setedResult, height: 'auto'}); - checkFullscreenImagePosition(); } /** @@ -853,16 +871,16 @@ function setEventOnce() { $('.fotorama__zoom-in') - .off('click', zoomIn) + .off('click') .on('click', zoomIn); $('.fotorama__zoom-out') - .off('click', zoomOut) + .off('click') .on('click', zoomOut); $('.fotorama__zoom-in') - .off('touchstart', zoomIn) + .off('touchstart') .on('touchstart', zoomIn); $('.fotorama__zoom-out') - .off('touchstart', zoomOut) + .off('touchstart') .on('touchstart', zoomOut); } @@ -871,23 +889,8 @@ setEventOnce(); magnifierFullscreen(); - $('.fotorama-item').on('fotorama:load', function () { - if (document.querySelector('.fotorama__stage').addEventListener) { - if ('onwheel' in document) { - // IE9+, FF17+, Ch31+ - document.querySelector('.fotorama__stage').addEventListener("wheel", onWheel); - } else if ('onmousewheel' in document) { - - document.querySelector('.fotorama__stage').addEventListener("mousewheel", onWheel); - } else { - // Firefox < 17 - document.querySelector('.fotorama__stage').addEventListener("MozMousePixelScroll", onWheel); - } - } else { // IE8- - document.querySelector('.fotorama__stage').attachEvent("onmousewheel", onWheel); - } - - function onWheel(e) { + if (!onWheelCallback) { + onWheelCallback = function onWheel(e) { if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { e = e || window.event; @@ -902,8 +905,27 @@ e.preventDefault ? e.preventDefault() : (e.returnValue = false); } + }; + } + $('.fotorama-item').on('fotorama:load', function () { + if (document.querySelector('.fotorama__stage').addEventListener) { + if ('onwheel' in document) { + // IE9+, FF17+, Ch31+ + document.querySelector('.fotorama__stage').removeEventListener("wheel", onWheelCallback); + document.querySelector('.fotorama__stage').addEventListener("wheel", onWheelCallback); + } else if ('onmousewheel' in document) { + document.querySelector('.fotorama__stage').removeEventListener("mousewheel", onWheelCallback); + document.querySelector('.fotorama__stage').addEventListener("mousewheel", onWheelCallback); + } else { + // Firefox < 17 + document.querySelector('.fotorama__stage').removeEventListener("MozMousePixelScroll", onWheelCallback); + document.querySelector('.fotorama__stage').addEventListener("MozMousePixelScroll", onWheelCallback); + } + } else { // IE8- + document.querySelector('.fotorama__stage').detachEvent("onmousewheel", onWheelCallback); + document.querySelector('.fotorama__stage').attachEvent("onmousewheel", onWheelCallback); } - }) + }); } }(jQuery)); -- GitLab From 9d86b684848c40c760b073d1f6d97165dc1757d6 Mon Sep 17 00:00:00 2001 From: Bohdan Korablov <bkorablov@ebay.com> Date: Fri, 9 Oct 2015 12:35:25 +0300 Subject: [PATCH 317/420] MAGETWO-43795: Title Prefix also appears on actual page (heading) --- app/code/Magento/Theme/Block/Html/Title.php | 8 ++ .../Theme/Test/Unit/Block/Html/TitleTest.php | 113 ++++++++++++++++++ .../view/frontend/templates/html/title.phtml | 4 +- .../Magento/Framework/View/Page/Title.php | 18 ++- .../View/Test/Unit/Page/TitleTest.php | 66 +++++++++- 5 files changed, 201 insertions(+), 8 deletions(-) create mode 100644 app/code/Magento/Theme/Test/Unit/Block/Html/TitleTest.php diff --git a/app/code/Magento/Theme/Block/Html/Title.php b/app/code/Magento/Theme/Block/Html/Title.php index 1863fa9468a..f22d4f010a5 100644 --- a/app/code/Magento/Theme/Block/Html/Title.php +++ b/app/code/Magento/Theme/Block/Html/Title.php @@ -37,6 +37,14 @@ class Title extends \Magento\Framework\View\Element\Template return $this->pageConfig->getTitle()->getShort(); } + public function getPageHeading() + { + if (!empty($this->pageTitle)) { + return $this->pageTitle; + } + return $this->pageConfig->getTitle()->getShortHeading(); + } + /** * Set own page title * diff --git a/app/code/Magento/Theme/Test/Unit/Block/Html/TitleTest.php b/app/code/Magento/Theme/Test/Unit/Block/Html/TitleTest.php new file mode 100644 index 00000000000..074316ccab3 --- /dev/null +++ b/app/code/Magento/Theme/Test/Unit/Block/Html/TitleTest.php @@ -0,0 +1,113 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Theme\Test\Unit\Block\Html; + +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper; + +class TitleTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var ObjectManagerHelper + */ + protected $objectManagerHelper; + + /** + * @var \Magento\Framework\View\Page\Config|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageConfigMock; + + /** + * @var \Magento\Framework\View\Page\Title|\PHPUnit_Framework_MockObject_MockObject + */ + protected $pageTitleMock; + + /** + * @var \Magento\Theme\Block\Html\Title + */ + protected $htmlTitle; + + /** + * @return void + */ + protected function setUp() + { + $this->objectManagerHelper = new ObjectManagerHelper($this); + $this->pageConfigMock = $this->getMock('Magento\Framework\View\Page\Config', [], [], '', false); + $this->pageTitleMock = $this->getMock('Magento\Framework\View\Page\Title', [], [], '', false); + + $context = $this->objectManagerHelper->getObject( + 'Magento\Framework\View\Element\Template\Context', + ['pageConfig' => $this->pageConfigMock] + ); + + $this->htmlTitle = $this->objectManagerHelper->getObject( + 'Magento\Theme\Block\Html\Title', + ['context' => $context] + ); + } + + /** + * @return void + */ + public function testGetPageTitleWithSetPageTitle() + { + $title = 'some title'; + + $this->htmlTitle->setPageTitle($title); + $this->pageConfigMock->expects($this->never()) + ->method('getTitle'); + + $this->assertEquals($title, $this->htmlTitle->getPageTitle()); + } + + /** + * @return void + */ + public function testGetPageTitle() + { + $title = 'some title'; + + $this->pageTitleMock->expects($this->once()) + ->method('getShort') + ->willReturn($title); + $this->pageConfigMock->expects($this->once()) + ->method('getTitle') + ->willReturn($this->pageTitleMock); + + $this->assertEquals($title, $this->htmlTitle->getPageTitle()); + } + + /** + * @return void + */ + public function testGetPageHeadingWithSetPageTitle() + { + $title = 'some title'; + + $this->htmlTitle->setPageTitle($title); + $this->pageConfigMock->expects($this->never()) + ->method('getTitle'); + + $this->assertEquals($title, $this->htmlTitle->getPageHeading()); + } + + /** + * @return void + */ + public function testGetPageHeading() + { + $title = 'some title'; + + $this->pageTitleMock->expects($this->once()) + ->method('getShortHeading') + ->willReturn($title); + $this->pageConfigMock->expects($this->once()) + ->method('getTitle') + ->willReturn($this->pageTitleMock); + + $this->assertEquals($title, $this->htmlTitle->getPageHeading()); + } +} diff --git a/app/code/Magento/Theme/view/frontend/templates/html/title.phtml b/app/code/Magento/Theme/view/frontend/templates/html/title.phtml index 1b9fb45d47c..f6941ca9ef2 100644 --- a/app/code/Magento/Theme/view/frontend/templates/html/title.phtml +++ b/app/code/Magento/Theme/view/frontend/templates/html/title.phtml @@ -11,9 +11,9 @@ */ $cssClass = $block->getCssClass() ? ' ' . $block->getCssClass() : ''; $title = ''; -if (trim($block->getPageTitle())) { +if (trim($block->getPageHeading())) { $title = '<span class="base" data-ui-id="page-title-wrapper" ' . $block->getAddBaseAttribute() . '>' - . $block->escapeHtml($block->getPageTitle()) . '</span>'; + . $block->escapeHtml($block->getPageHeading()) . '</span>'; } ?> <?php if ($title): ?> diff --git a/lib/internal/Magento/Framework/View/Page/Title.php b/lib/internal/Magento/Framework/View/Page/Title.php index 05540c3607b..250d8b43a8d 100644 --- a/lib/internal/Magento/Framework/View/Page/Title.php +++ b/lib/internal/Magento/Framework/View/Page/Title.php @@ -77,11 +77,25 @@ class Title } /** + * Same as getShort(), but return title without prefix and suffix + */ + public function getShortHeading() + { + $title = $this->build(false); + return reset($title); + } + + /** + * @param bool $withConfigValues * @return array */ - protected function build() + protected function build($withConfigValues = true) { - return array_merge($this->prependedValues, [$this->addConfigValues($this->textValue)], $this->appendedValues); + return array_merge( + $this->prependedValues, + [$withConfigValues ? $this->addConfigValues($this->textValue) : $this->textValue], + $this->appendedValues + ); } /** diff --git a/lib/internal/Magento/Framework/View/Test/Unit/Page/TitleTest.php b/lib/internal/Magento/Framework/View/Test/Unit/Page/TitleTest.php index ee9e035252d..cea9a66f29e 100644 --- a/lib/internal/Magento/Framework/View/Test/Unit/Page/TitleTest.php +++ b/lib/internal/Magento/Framework/View/Test/Unit/Page/TitleTest.php @@ -23,6 +23,9 @@ class TitleTest extends \PHPUnit_Framework_TestCase */ protected $scopeConfigMock; + /** + * @return void + */ public function setUp() { $this->scopeConfigMock = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface') @@ -36,6 +39,9 @@ class TitleTest extends \PHPUnit_Framework_TestCase ); } + /** + * @return void + */ public function testSet() { $value = 'test_value'; @@ -43,6 +49,9 @@ class TitleTest extends \PHPUnit_Framework_TestCase $this->assertEquals($value, $this->title->get()); } + /** + * @return void + */ public function testUnset() { $value = 'test'; @@ -52,6 +61,9 @@ class TitleTest extends \PHPUnit_Framework_TestCase $this->assertEmpty($this->title->get()); } + /** + * @return void + */ public function testGet() { $value = 'test'; @@ -61,16 +73,19 @@ class TitleTest extends \PHPUnit_Framework_TestCase $this->scopeConfigMock->expects($this->any()) ->method('getValue') - ->will($this->returnValueMap( + ->willReturnMap( [ ['design/head/title_prefix', ScopeInterface::SCOPE_STORE, null, $prefix], ['design/head/title_suffix', ScopeInterface::SCOPE_STORE, null, $suffix], ] - )); + ); $this->title->set($value); $this->assertEquals($expected, $this->title->get()); } + /** + * @return void + */ public function testGetShort() { $value = 'some_title'; @@ -81,6 +96,46 @@ class TitleTest extends \PHPUnit_Framework_TestCase $this->assertEquals($value, $this->title->getShort()); } + /** + * @return void + */ + public function testGetShortWithSuffixAndPrefix() + { + $value = 'some_title'; + $prefix = 'prefix'; + $suffix = 'suffix'; + $expected = $prefix . ' ' . $value . ' ' . $suffix; + $this->title->set($value); + + $this->scopeConfigMock->expects($this->any()) + ->method('getValue') + ->willReturnMap( + [ + ['design/head/title_prefix', ScopeInterface::SCOPE_STORE, null, $prefix], + ['design/head/title_suffix', ScopeInterface::SCOPE_STORE, null, $suffix], + ] + ); + + $this->assertEquals($expected, $this->title->getShort()); + } + + /** + * @return void + */ + public function testGetShortHeading() + { + $value = 'some_title'; + $this->title->set($value); + + $this->scopeConfigMock->expects($this->never()) + ->method('getValue'); + + $this->assertEquals($value, $this->title->getShortHeading()); + } + + /** + * @return void + */ public function testGetDefault() { $defaultTitle = 'default title'; @@ -90,16 +145,19 @@ class TitleTest extends \PHPUnit_Framework_TestCase $this->scopeConfigMock->expects($this->any()) ->method('getValue') - ->will($this->returnValueMap( + ->willReturnMap( [ ['design/head/title_prefix', ScopeInterface::SCOPE_STORE, null, $prefix], ['design/head/title_suffix', ScopeInterface::SCOPE_STORE, null, $suffix], ['design/head/default_title', ScopeInterface::SCOPE_STORE, null, $defaultTitle], ] - )); + ); $this->assertEquals($expected, $this->title->getDefault()); } + /** + * @return void + */ public function testAppendPrepend() { $value = 'title'; -- GitLab From e79be6b96eb474b434881c3501ca9d42b4438075 Mon Sep 17 00:00:00 2001 From: Maksym Aposov <maposov@ebay.com> Date: Fri, 9 Oct 2015 12:36:46 +0300 Subject: [PATCH 318/420] MAGETWO-43842: test case names have full directory paths in them --- .../Test/Integrity/Modular/AclConfigFilesTest.php | 1 - .../Test/Integrity/Modular/DiConfigFilesTest.php | 2 +- .../Test/Integrity/Modular/IndexerConfigFilesTest.php | 10 +--------- .../Magento/Test/Integrity/Theme/XmlFilesTest.php | 6 +++--- lib/internal/Magento/Framework/App/Utility/Files.php | 2 +- 5 files changed, 6 insertions(+), 15 deletions(-) diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AclConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AclConfigFilesTest.php index 7863c4201bd..c998094fc96 100644 --- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AclConfigFilesTest.php +++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/AclConfigFilesTest.php @@ -5,7 +5,6 @@ */ namespace Magento\Test\Integrity\Modular; -use Magento\Framework\App\Filesystem\DirectoryList; class AclConfigFilesTest extends \PHPUnit_Framework_TestCase { diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/DiConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/DiConfigFilesTest.php index 79b69588428..42b6a74d7e0 100644 --- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/DiConfigFilesTest.php +++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/DiConfigFilesTest.php @@ -92,7 +92,7 @@ class DiConfigFilesTest extends \PHPUnit_Framework_TestCase $output = []; foreach ($common as $path => $file) { - $output[$path] = [$file]; + $output[substr($path, strlen(BP))] = [$file]; } return $output; diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/IndexerConfigFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/IndexerConfigFilesTest.php index 5a330a83dbe..f12917f9c45 100644 --- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/IndexerConfigFilesTest.php +++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Modular/IndexerConfigFilesTest.php @@ -5,7 +5,6 @@ */ namespace Magento\Test\Integrity\Modular; -use Magento\Framework\App\Filesystem\DirectoryList; use Magento\Framework\Filesystem; class IndexerConfigFilesTest extends \PHPUnit_Framework_TestCase @@ -51,13 +50,6 @@ class IndexerConfigFilesTest extends \PHPUnit_Framework_TestCase */ public function indexerConfigFileDataProvider() { - /** @var Filesystem $filesystem */ - $utilityFiles = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() - ->get('\Magento\Framework\App\Utility\Files'); - - $utilityFiles->getConfigFiles('indexer.xml'); - - $dataProviderResult = $utilityFiles->getConfigFiles('indexer.xml'); - return $dataProviderResult; + return \Magento\Framework\App\Utility\Files::init()->getConfigFiles('indexer.xml'); } } diff --git a/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php b/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php index ca81ea4973a..95a9bb0d8cb 100644 --- a/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php +++ b/dev/tests/integration/testsuite/Magento/Test/Integrity/Theme/XmlFilesTest.php @@ -36,7 +36,7 @@ class XmlFilesTest extends \PHPUnit_Framework_TestCase ->get('Magento\Framework\Component\DirSearch'); $files = $componentDirSearch->collectFiles(ComponentRegistrar::THEME, 'etc/view.xml'); foreach ($files as $file) { - $result[$file] = [$file]; + $result[substr($file, strlen(BP))] = [$file]; } return $result; } @@ -60,7 +60,7 @@ class XmlFilesTest extends \PHPUnit_Framework_TestCase $componentRegistrar = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() ->get('\Magento\Framework\Component\ComponentRegistrar'); foreach ($componentRegistrar->getPaths(ComponentRegistrar::THEME) as $themeDir) { - $result[$themeDir] = [$themeDir]; + $result[substr($themeDir, strlen(BP))] = [$themeDir]; } return $result; } @@ -102,7 +102,7 @@ class XmlFilesTest extends \PHPUnit_Framework_TestCase ->get('Magento\Framework\Component\DirSearch'); $files = $componentDirSearch->collectFiles(ComponentRegistrar::THEME, 'theme.xml'); foreach ($files as $file) { - $result[$file] = [$file]; + $result[substr($file, strlen(BP))] = [$file]; } return $result; } diff --git a/lib/internal/Magento/Framework/App/Utility/Files.php b/lib/internal/Magento/Framework/App/Utility/Files.php index e19dd388fc6..7802320f6fc 100644 --- a/lib/internal/Magento/Framework/App/Utility/Files.php +++ b/lib/internal/Magento/Framework/App/Utility/Files.php @@ -106,7 +106,7 @@ class Files { $result = []; foreach ($files as $file) { - $result[$file] = [$file]; + $result[substr($file, strlen(BP))] = [$file]; } return $result; } -- GitLab From 04398e03a495e77a4cd708f1ae1fb6062039b231 Mon Sep 17 00:00:00 2001 From: Bohdan Korablov <bkorablov@ebay.com> Date: Fri, 9 Oct 2015 12:50:57 +0300 Subject: [PATCH 319/420] MAGETWO-43795: Title Prefix also appears on actual page (heading) --- app/code/Magento/Theme/Block/Html/Title.php | 5 +++++ lib/internal/Magento/Framework/View/Page/Title.php | 1 + 2 files changed, 6 insertions(+) diff --git a/app/code/Magento/Theme/Block/Html/Title.php b/app/code/Magento/Theme/Block/Html/Title.php index f22d4f010a5..a92c2a3a278 100644 --- a/app/code/Magento/Theme/Block/Html/Title.php +++ b/app/code/Magento/Theme/Block/Html/Title.php @@ -37,6 +37,11 @@ class Title extends \Magento\Framework\View\Element\Template return $this->pageConfig->getTitle()->getShort(); } + /** + * Provide own page content heading + * + * @return string + */ public function getPageHeading() { if (!empty($this->pageTitle)) { diff --git a/lib/internal/Magento/Framework/View/Page/Title.php b/lib/internal/Magento/Framework/View/Page/Title.php index 250d8b43a8d..f420bd34ded 100644 --- a/lib/internal/Magento/Framework/View/Page/Title.php +++ b/lib/internal/Magento/Framework/View/Page/Title.php @@ -78,6 +78,7 @@ class Title /** * Same as getShort(), but return title without prefix and suffix + * @return mixed */ public function getShortHeading() { -- GitLab From 4975cc365de0f4749c9db47d9baf2e953fb20be6 Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Fri, 9 Oct 2015 13:09:47 +0300 Subject: [PATCH 320/420] MAGETWO-43593: PR - Revert changes --- .../frontend/templates/cart/item/renderer/actions/remove.phtml | 2 +- .../functional/tests/app/Magento/Checkout/Test/Block/Cart.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Checkout/view/frontend/templates/cart/item/renderer/actions/remove.phtml b/app/code/Magento/Checkout/view/frontend/templates/cart/item/renderer/actions/remove.phtml index b926bfd7aba..65bc29c7135 100644 --- a/app/code/Magento/Checkout/view/frontend/templates/cart/item/renderer/actions/remove.phtml +++ b/app/code/Magento/Checkout/view/frontend/templates/cart/item/renderer/actions/remove.phtml @@ -10,7 +10,7 @@ ?> <a href="#" title="<?php echo $block->escapeHtml(__('Remove item')); ?>" - class="action action-delete delete-item-test" + class="action action-delete" data-post='<?php /* @escapeNotVerified */ echo $block->getDeletePostJson(); ?>'> <span> <?php /* @escapeNotVerified */ echo __('Remove item')?> diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart.php index b8c70c95f0d..22256fed04b 100644 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart.php +++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Cart.php @@ -76,7 +76,7 @@ class Cart extends Block * * @var string */ - protected $deleteItemButton = '.delete-item-test'; + protected $deleteItemButton = '.action.action-delete'; /** * Get Shopping Cart item. -- GitLab From 8716190be81c4392dd87f11fc6ab1fe5f1b4ddc7 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Fri, 9 Oct 2015 13:27:43 +0300 Subject: [PATCH 321/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix swatches thumbnails --- app/code/Magento/Swatches/Helper/Data.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/code/Magento/Swatches/Helper/Data.php b/app/code/Magento/Swatches/Helper/Data.php index 3ddba372699..fdf2c3c2dbe 100644 --- a/app/code/Magento/Swatches/Helper/Data.php +++ b/app/code/Magento/Swatches/Helper/Data.php @@ -395,7 +395,6 @@ class Data extends \Magento\Framework\App\Helper\AbstractHelper ->setImageFile($imageFile) ->getUrl(), 'small' => $this->imageHelper->init($product, 'product_page_image_small') - ->constrainOnly(true)->keepAspectRatio(true)->keepFrame(false) ->setImageFile($imageFile) ->getUrl(), ]; -- GitLab From 05c210f3819ab57e0a05bd296acd540ed1c4c725 Mon Sep 17 00:00:00 2001 From: Yaroslav Onischenko <yonischenko@ebay.com> Date: Fri, 9 Oct 2015 14:01:13 +0300 Subject: [PATCH 322/420] MAGETWO-34932: Sample data console installation on installed Magento fails with fatal error --- .../Framework/Setup/SampleData/Executor.php | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/lib/internal/Magento/Framework/Setup/SampleData/Executor.php b/lib/internal/Magento/Framework/Setup/SampleData/Executor.php index 2a71963fb66..4f2d966099d 100644 --- a/lib/internal/Magento/Framework/Setup/SampleData/Executor.php +++ b/lib/internal/Magento/Framework/Setup/SampleData/Executor.php @@ -7,16 +7,34 @@ namespace Magento\Framework\Setup\SampleData; class Executor { + /** + * @var State + */ + private $state; + + /** + * @var \Psr\Log\LoggerInterface + */ + private $logger; + + /** + * @var \Magento\Framework\App\State + */ + private $appState; + /** * @param \Psr\Log\LoggerInterface $logger - * @param \Magento\Framework\Setup\SampleData\State $state + * @param State $state + * @param \Magento\Framework\App\State $appState */ public function __construct( \Psr\Log\LoggerInterface $logger, - \Magento\Framework\Setup\SampleData\State $state + \Magento\Framework\Setup\SampleData\State $state, + \Magento\Framework\App\State $appState ) { $this->logger = $logger; $this->state = $state; + $this->appState = $appState; } /** @@ -29,7 +47,7 @@ class Executor public function exec(InstallerInterface $installer) { try { - $installer->install(); + $this->appState->emulateAreaCode('setup', [$installer, 'install']); $this->state->setInstalled(); } catch (\Exception $e) { $this->state->setError(); -- GitLab From c8355e99bdb769139bba7fd44604fa1c46a876a3 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Fri, 9 Oct 2015 14:12:55 +0300 Subject: [PATCH 323/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix for "Category -> Swatches -> Not works" --- .../Magento/Swatches/view/frontend/web/js/SwatchRenderer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js index 96123ddf8fe..4587c8ea56a 100644 --- a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js +++ b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js @@ -764,7 +764,7 @@ define(["jquery", "jquery/ui"], function ($) { .data('gallery') .updateData(images); } else { - context.find('.product-image-photo').attr('src', images.shift().medium); + context.find('.product-image-photo').attr('src', images.shift().img); } }, -- GitLab From 11bd891ee53fa7fb47d3648947572f2b6ff19fb6 Mon Sep 17 00:00:00 2001 From: ALIAKSANDR KOMAR <ALIAKSANDR_KOMAR@epam.com> Date: Fri, 9 Oct 2015 14:44:18 +0300 Subject: [PATCH 324/420] PV-224: translation for Role Label --- .../ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php index 6be990b549c..5356558079e 100644 --- a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php +++ b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php @@ -214,6 +214,7 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic */ protected function addMediaRoleAttributes(Fieldset $fieldset) { + $fieldset->addField('roleLabel', 'note', ['text' => __('Role')]); $mediaRoles = $this->getProduct()->getMediaAttributes(); asort($mediaRoles); foreach ($mediaRoles as $mediaRole) { -- GitLab From 60e80cc4638e19796beaff575e2f27a1cccc5f77 Mon Sep 17 00:00:00 2001 From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com> Date: Fri, 9 Oct 2015 15:15:06 +0300 Subject: [PATCH 325/420] PV-224: CSS to LESS refactoring. Fix role text to be translatable --- .../web/css/source/_module.less | 64 ++++++++++--------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less index b043b1173c7..e7ffa034747 100644 --- a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less +++ b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less @@ -57,27 +57,31 @@ &.field-new_video_disabled { margin-top: 32px; } - &.field-video_image .admin__field-control { - position: relative; - &:after { - color: @color-black; - content: 'Role'; - font-family: 'Open Sans', @font-family__sans-serif; - font-size: @font-size__s + 0.2; - font-weight: @font-weight__semibold; - height: 20px; - position: absolute; - right: 50px; - top: -2px; - width: 34px; - } - } &.field.field-new_video_screenshot { margin-bottom: 5px; } &.field.field-new_video_screenshot_preview { margin-bottom: 50px; } + &.field-roleLabel { + height: 0; + .admin__field-control { + #mix-grid .column(3, @field-grid__columns); + float: left; + margin-left: 80px; + position: relative; + .control-value { + color: @color-black; + font-family: 'Open Sans', @font-family__sans-serif; + font-size: @font-size__s + 0.2; + font-weight: @font-weight__semibold; + float: right; + position: relative; + right: 50px; + top: 21px; + } + } + } } .admin__scope-old { @@ -92,21 +96,21 @@ .gallery .image .action-make-base, .images .image .action-make-base { .lib-button( - @_button-background: transparent, - @_button-border: none, - @_button-background-hover: transparent, - @_button-border-hover: none, - @_button-background-active: transparent, - @_button-border-active: none, - @_button-font-content: '\e63b', - @_button-icon-use: true, - @_button-icon-font: 'Admin Icons', - @_button-icon-font-text-hide: true, - @_button-icon-font-size: @font-size__xl, - @_button-icon-font-color: @color-gray62, - @_button-icon-font-color-hover: @color-gray52, - @_button-icon-font-color-active: @color-gray52, - @_button-margin: 0 + @_button-background: transparent, + @_button-border: none, + @_button-background-hover: transparent, + @_button-border-hover: none, + @_button-background-active: transparent, + @_button-border-active: none, + @_button-font-content: '\e63b', + @_button-icon-use: true, + @_button-icon-font: 'Admin Icons', + @_button-icon-font-text-hide: true, + @_button-icon-font-size: @font-size__xl, + @_button-icon-font-color: @color-gray62, + @_button-icon-font-color-hover: @color-gray52, + @_button-icon-font-color-active: @color-gray52, + @_button-margin: 0 ); bottom: 9px; left: auto; -- GitLab From c0a779478657f3c9a4c2126f568224b88d8a4f30 Mon Sep 17 00:00:00 2001 From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com> Date: Fri, 9 Oct 2015 15:32:54 +0300 Subject: [PATCH 326/420] PV-224: CSS to LESS refactoring. Fix codelines --- .../web/css/source/_module.less | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less index e7ffa034747..7f4e8a590ac 100644 --- a/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less +++ b/app/design/adminhtml/Magento/backend/Magento_ProductVideo/web/css/source/_module.less @@ -96,21 +96,21 @@ .gallery .image .action-make-base, .images .image .action-make-base { .lib-button( - @_button-background: transparent, - @_button-border: none, - @_button-background-hover: transparent, - @_button-border-hover: none, - @_button-background-active: transparent, - @_button-border-active: none, - @_button-font-content: '\e63b', - @_button-icon-use: true, - @_button-icon-font: 'Admin Icons', - @_button-icon-font-text-hide: true, - @_button-icon-font-size: @font-size__xl, - @_button-icon-font-color: @color-gray62, - @_button-icon-font-color-hover: @color-gray52, - @_button-icon-font-color-active: @color-gray52, - @_button-margin: 0 + @_button-background: transparent, + @_button-border: none, + @_button-background-hover: transparent, + @_button-border-hover: none, + @_button-background-active: transparent, + @_button-border-active: none, + @_button-font-content: '\e63b', + @_button-icon-use: true, + @_button-icon-font: 'Admin Icons', + @_button-icon-font-text-hide: true, + @_button-icon-font-size: @font-size__xl, + @_button-icon-font-color: @color-gray62, + @_button-icon-font-color-hover: @color-gray52, + @_button-icon-font-color-active: @color-gray52, + @_button-margin: 0 ); bottom: 9px; left: auto; -- GitLab From 6e203b8b703bfa8f113a6825cfaac5043bd68731 Mon Sep 17 00:00:00 2001 From: Olga Matviienko <omatviienko@ebay.com> Date: Fri, 9 Oct 2015 16:17:56 +0300 Subject: [PATCH 327/420] MAGETWO-43871: UI inconsistency on product image details --- .../product/edit/attribute/steps/bulk.phtml | 16 ---------- .../css/source/module/steps/_bulk-images.less | 32 ------------------- 2 files changed, 48 deletions(-) diff --git a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/edit/attribute/steps/bulk.phtml b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/edit/attribute/steps/bulk.phtml index 9c58b7a7fb6..8a1b3edc805 100644 --- a/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/edit/attribute/steps/bulk.phtml +++ b/app/code/Magento/ConfigurableProduct/view/adminhtml/templates/catalog/product/edit/attribute/steps/bulk.phtml @@ -225,14 +225,6 @@ </div> </fieldset> </div> - - <button type="button" - class="action-close" - data-role="close-panel" - title="<?= $block->escapeHtml(__('Close panel')) ?>"> - <span><?= /* @escapeNotVerified */ __('Close panel') ?></span> - </button> - <div class="image-pointer"></div> </div> </script> @@ -441,14 +433,6 @@ </div> </fieldset> </div> - - <button type="button" - class="action-close" - data-role="close-panel" - title="<?= $block->escapeHtml(__('Close panel')) ?>"> - <span><?= /* @escapeNotVerified */ __('Close panel') ?></span> - </button> - <div class="image-pointer"></div> </div> </script> diff --git a/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module/steps/_bulk-images.less b/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module/steps/_bulk-images.less index 60203c2aa30..d1f298df84e 100644 --- a/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module/steps/_bulk-images.less +++ b/app/design/adminhtml/Magento/backend/Magento_ConfigurableProduct/web/css/source/module/steps/_bulk-images.less @@ -361,16 +361,6 @@ top: 5px; } -.image-pointer { - background: url(../Magento_Backend/images/gallery-image-panel-corner.png) no-repeat; - height: 15px; - left: 50%; - margin-left: -14px; - position: absolute; - top: -11px; - width: 28px; -} - .image-panel-controls, .image-panel-preview { float: left; @@ -431,28 +421,6 @@ width: 100%; } -.image-panel { - .action-close { - padding: 0; - position: absolute; - right: 29px; - top: 17px; - .lib-icon-font( - @_icon-font-content: @icon-close-mage__content, - @_icon-font: @icons-admin__font-name, - @_icon-font-size: 2rem, - @_icon-font-color: @color-brownie-vanilla, - @_icon-font-color-hover: @color-brownie-vanilla - ); - span { - &:extend(.abs-visually-hidden all); - } - &:active { - padding: 0; - } - } -} - // // Custom Multiselect // _____________________________________________ -- GitLab From 023b8eac331151a34a1e5b5e3f115996fc64e2b9 Mon Sep 17 00:00:00 2001 From: Olga Matviienko <omatviienko@ebay.com> Date: Fri, 9 Oct 2015 17:04:39 +0300 Subject: [PATCH 328/420] MAGETWO-43192: Broken edit/create product template layout --- .../view/adminhtml/layout/catalog_product_set_edit.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_edit.xml b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_edit.xml index 30d421cfe85..92425214621 100644 --- a/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_edit.xml +++ b/app/code/Magento/Catalog/view/adminhtml/layout/catalog_product_set_edit.xml @@ -8,7 +8,9 @@ <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <body> <referenceContainer name="content"> - <block class="Magento\Catalog\Block\Adminhtml\Product\Attribute\Set\Main" name="adminhtml.catalog.product.set.edit" template="catalog/product/attribute/set/main.phtml"/> + <container name="adminhtml.catalog.product.set.edit.wrapper" htmlTag="div" htmlClass="admin__scope-old"><!-- @todo ui: remove arguments within .admin__scope-old --> + <block class="Magento\Catalog\Block\Adminhtml\Product\Attribute\Set\Main" name="adminhtml.catalog.product.set.edit" template="catalog/product/attribute/set/main.phtml"/> + </container> </referenceContainer> </body> </page> -- GitLab From f30f34f6e1b86de18e8d44b3e3809248ba47a456 Mon Sep 17 00:00:00 2001 From: ALIAKSANDR KOMAR <ALIAKSANDR_KOMAR@epam.com> Date: Fri, 9 Oct 2015 17:24:57 +0300 Subject: [PATCH 329/420] PV-224: change roles sorting function --- .../ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php index 5356558079e..093807402d1 100644 --- a/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php +++ b/app/code/Magento/ProductVideo/Block/Adminhtml/Product/Edit/NewVideo.php @@ -216,7 +216,7 @@ class NewVideo extends \Magento\Backend\Block\Widget\Form\Generic { $fieldset->addField('roleLabel', 'note', ['text' => __('Role')]); $mediaRoles = $this->getProduct()->getMediaAttributes(); - asort($mediaRoles); + ksort($mediaRoles); foreach ($mediaRoles as $mediaRole) { $fieldset->addField( 'video_' . $mediaRole->getAttributeCode(), -- GitLab From c2569385cdca9ea377cf19cd6e5b56e9846bdcfe Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Fri, 9 Oct 2015 18:41:45 +0300 Subject: [PATCH 330/420] MAGETWO-43593: PR --- .../Ui/Component/Listing/AssociatedProduct/Filters.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/ConfigurableProduct/Ui/Component/Listing/AssociatedProduct/Filters.php b/app/code/Magento/ConfigurableProduct/Ui/Component/Listing/AssociatedProduct/Filters.php index eacff4e7439..551c8a5f9ba 100644 --- a/app/code/Magento/ConfigurableProduct/Ui/Component/Listing/AssociatedProduct/Filters.php +++ b/app/code/Magento/ConfigurableProduct/Ui/Component/Listing/AssociatedProduct/Filters.php @@ -6,7 +6,7 @@ namespace Magento\ConfigurableProduct\Ui\Component\Listing\AssociatedProduct; use Magento\Catalog\Ui\Component\FilterFactory; -use Magento\Eav\Model\Resource\Entity\Attribute\CollectionFactory; +use Magento\Eav\Model\ResourceModel\Entity\Attribute\CollectionFactory; use Magento\Framework\View\Element\UiComponent\ObserverInterface; use Magento\Framework\View\Element\UiComponentInterface; -- GitLab From 678a78c98b71b1bdd5669c4e389fee4ca8cb5192 Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Fri, 9 Oct 2015 21:47:48 +0300 Subject: [PATCH 331/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix scroll --- lib/web/magnifier/magnifier.js | 125 +++++++++++++++++++++++---------- 1 file changed, 86 insertions(+), 39 deletions(-) diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index c253ca42375..fd182705b98 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -4,7 +4,10 @@ */ ;(function ($) { - var onWheelCallback; + var onWheelCallback, + zoomWidthStep = 0, + zoomHeightStep = 0, + isDraggable = false; $.fn.magnify = function (options) { 'use strict'; @@ -27,7 +30,6 @@ that = this, largeWrapper = options.largeWrapper || ".magnifier-preview", $largeWrapper = $(largeWrapper), - isDraggable = false, zoomShown = false, curThumb = null, currentOpts = { @@ -636,7 +638,6 @@ $image.on(isTouchEnabled ? 'touchstart' : 'pointerdown mousedown MSPointerDown', function (e) { if (gallery.data('fotorama').fullScreen && isDraggable) { e.preventDefault(); - $image.css('cursor', 'move'); imagePosY = $image.offset().top; imagePosX = $image.offset().left; @@ -765,7 +766,20 @@ }); - function checkFullscreenImagePosition(multiplier) { + function resetVars($image) { + zoomWidthStep = 0; + zoomHeightStep = 0; + isDraggable = false; + $image.css({ + top: 0, + left: 0, + right: 0, + bottom: 0, + cursor: '' + }); + } + + function checkFullscreenImagePosition(widthStep, heightStep) { var $preview, $image, $imageContainer, gallery, top, left; if ($('[data-gallery-role="gallery"]').data('fotorama').fullScreen) { @@ -781,21 +795,33 @@ if ($imageContainer.offset().top + $imageContainer.height() > top + $image.height()) { top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); } else { - top = ($imageContainer.offset().top < top) ? 0 : top; + top = ($imageContainer.offset().top <= top && heightStep > 0) ? 0 : top + heightStep/2; } - $image.offset({ - 'top': top + multiplier * options.fullscreenzoom/2 + $image.css({ + top: top, + bottom: 'auto' + }); + } else { + $image.css({ + top: 0, + bottom: 0 }); } if ($image.width() > $imageContainer.width()) { if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width())) { - left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); + left = $imageContainer.offset().left + $imageContainer.width() - $image.width() + widthStep/2; } else { - left = ($imageContainer.offset().left < left) ? $imageContainer.offset().left : left; + left = ($imageContainer.offset().left <= left && widthStep > 0) ? 0 : left + widthStep/2; } - $image.offset({ - 'left': left + multiplier * options.fullscreenzoom/2 + $image.css({ + left: left, + right: 'auto' + }); + } else { + $image.css({ + left: 0, + right: 0 }); } } @@ -805,50 +831,71 @@ if (zoomShown) { var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .fotorama__img--full'), imgOriginalSize = $image.length ? getImageSize($image[0].src) : '', - setedResult = Math.round($image.width() + parseFloat(options.fullscreenzoom)); + widthResult, + heightResult; + + if (!zoomWidthStep) { + zoomWidthStep = Math.round((imgOriginalSize.rw - $image.width())/parseFloat(options.fullscreenzoom)); + zoomHeightStep = Math.round((imgOriginalSize.rh - $image.height())/parseFloat(options.fullscreenzoom)); + } + widthResult = $image.width() + zoomWidthStep; + heightResult = $image.height() + zoomHeightStep; - if(e) { - e.preventDefault(); + if (widthResult >= imgOriginalSize.rw) { + widthResult = imgOriginalSize.rw; } - if (setedResult > imgOriginalSize.rw) { - setedResult = imgOriginalSize.rw; + if (heightResult >= imgOriginalSize.rh) { + heightResult = imgOriginalSize.rh; } if ( zoomShown ) { isDraggable = true; } - $image.css({'width': setedResult, height: 'auto'}); - checkFullscreenImagePosition(-1); + if ($image.width() >= $image.height() && $image.width() !== imgOriginalSize.rw) { + $image.css({ + width: widthResult, + height: 'auto' + }); + checkFullscreenImagePosition(-zoomWidthStep, -zoomHeightStep); + } else if ($image.width() < $image.height() && $image.height() !== imgOriginalSize.rh) { + $image.css({ + width: 'auto', + height: heightResult + }); + checkFullscreenImagePosition(-zoomWidthStep, -zoomHeightStep); + } } + + return false; } function zoomOut(e) { if (zoomShown) { var $image = $('[data-gallery-role="stage-shaft"] [data-active="true"] .fotorama__img--full'), - setedResult = Math.round($image.width() - parseFloat(options.fullscreenzoom)); + setedResult = $image.width() - zoomWidthStep, + widthCheck = $image.width() - zoomWidthStep <= $image.parent().width(), + heightCheck = $image.height() - zoomHeightStep <= $image.parent().height(); - if (e) { - e.preventDefault(); - } - if ( - $image.width() <= $image.parent().width() && - $image.height() <= $image.parent().height() - ) { - isDraggable = false; - $image.css({ - top: 0, - left: 0, - right: 0, - bottom: 0 - }); + e.preventDefault(); + + if ($image.width() >= $image.height() && widthCheck) { + $image.css({'width': $image.parent().width(), height: 'auto'}); + resetVars($image); - return; + return false; + } else if ($image.width() < $image.height() && heightCheck) { + $image.css({'width': 'auto', height: $image.parent().height()}); + resetVars($image); + + return false; } $image.css({'width': setedResult, height: 'auto'}); - checkFullscreenImagePosition(1); + checkFullscreenImagePosition(zoomWidthStep, zoomHeightStep); } + + return false; } /** @@ -871,11 +918,11 @@ function setEventOnce() { $('.fotorama__zoom-in') - .off('click') - .on('click', zoomIn); + .off('mouseup') + .on('mouseup', zoomIn); $('.fotorama__zoom-out') - .off('click') - .on('click', zoomOut); + .off('mouseup') + .on('mouseup', zoomOut); $('.fotorama__zoom-in') .off('touchstart') .on('touchstart', zoomIn); -- GitLab From 7ef6c117c734ab7cb89760ab1218f5841756f1b8 Mon Sep 17 00:00:00 2001 From: Joan He <joan@x.com> Date: Fri, 9 Oct 2015 15:51:35 -0500 Subject: [PATCH 332/420] MAGETWO-32443: [GITHUB] if_module_enabled has no effect #934 --- .../Config/Structure/AbstractElement.php | 13 ++++- .../Structure/Element/AbstractComposite.php | 4 +- .../Model/Config/Structure/Element/Field.php | 7 ++- .../Model/Config/Structure/Element/Group.php | 8 +-- .../Config/Structure/Element/Section.php | 5 +- .../Config/Structure/AbstractElementTest.php | 52 ++++++++++++++----- .../Element/AbstractCompositeTest.php | 9 +++- .../Config/Structure/Element/FieldTest.php | 40 +++++--------- .../Config/Structure/Element/GroupTest.php | 34 ++++-------- .../Config/Structure/Element/SectionTest.php | 26 ++++------ .../Config/Structure/Element/TabTest.php | 15 ++---- 11 files changed, 112 insertions(+), 101 deletions(-) diff --git a/app/code/Magento/Config/Model/Config/Structure/AbstractElement.php b/app/code/Magento/Config/Model/Config/Structure/AbstractElement.php index 03ed66f29ab..073d23f450a 100644 --- a/app/code/Magento/Config/Model/Config/Structure/AbstractElement.php +++ b/app/code/Magento/Config/Model/Config/Structure/AbstractElement.php @@ -31,12 +31,19 @@ abstract class AbstractElement implements ElementInterface */ protected $_storeManager; + /** + * @var \Magento\Framework\Module\Manager + */ + protected $moduleManager; + /** * @param \Magento\Store\Model\StoreManagerInterface $storeManager + * @param \Magento\Framework\Module\Manager $moduleManager */ - public function __construct(StoreManagerInterface $storeManager) + public function __construct(StoreManagerInterface $storeManager, \Magento\Framework\Module\Manager $moduleManager) { $this->_storeManager = $storeManager; + $this->moduleManager = $moduleManager; } /** @@ -134,6 +141,10 @@ abstract class AbstractElement implements ElementInterface */ public function isVisible() { + if (isset($this->_data['if_module_enabled']) && + !$this->moduleManager->isOutputEnabled($this->_data['if_module_enabled'])) { + return false; + } $showInScope = [ \Magento\Store\Model\ScopeInterface::SCOPE_STORE => $this->_hasVisibilityValue('showInStore'), \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE => $this->_hasVisibilityValue('showInWebsite'), diff --git a/app/code/Magento/Config/Model/Config/Structure/Element/AbstractComposite.php b/app/code/Magento/Config/Model/Config/Structure/Element/AbstractComposite.php index a25b1688eea..d3707277d55 100644 --- a/app/code/Magento/Config/Model/Config/Structure/Element/AbstractComposite.php +++ b/app/code/Magento/Config/Model/Config/Structure/Element/AbstractComposite.php @@ -16,13 +16,15 @@ abstract class AbstractComposite extends \Magento\Config\Model\Config\Structure\ /** * @param \Magento\Store\Model\StoreManagerInterface $storeManager + * @param \Magento\Framework\Module\Manager $moduleManager * @param Iterator $childrenIterator */ public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, + \Magento\Framework\Module\Manager $moduleManager, Iterator $childrenIterator ) { - parent::__construct($storeManager); + parent::__construct($storeManager, $moduleManager); $this->_childrenIterator = $childrenIterator; } diff --git a/app/code/Magento/Config/Model/Config/Structure/Element/Field.php b/app/code/Magento/Config/Model/Config/Structure/Element/Field.php index 5d7d5d1e329..e4678fb5e29 100644 --- a/app/code/Magento/Config/Model/Config/Structure/Element/Field.php +++ b/app/code/Magento/Config/Model/Config/Structure/Element/Field.php @@ -50,26 +50,29 @@ class Field extends \Magento\Config\Model\Config\Structure\AbstractElement /** * @param \Magento\Store\Model\StoreManagerInterface $storeManager + * @param \Magento\Framework\Module\Manager $moduleManager * @param \Magento\Config\Model\Config\BackendFactory $backendFactory * @param \Magento\Config\Model\Config\SourceFactory $sourceFactory * @param \Magento\Config\Model\Config\CommentFactory $commentFactory * @param \Magento\Framework\View\Element\BlockFactory $blockFactory - * @param \Magento\Config\Model\Config\Structure\Element\Dependency\Mapper $dependencyMapper + * @param Dependency\Mapper $dependencyMapper */ public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, + \Magento\Framework\Module\Manager $moduleManager, \Magento\Config\Model\Config\BackendFactory $backendFactory, \Magento\Config\Model\Config\SourceFactory $sourceFactory, \Magento\Config\Model\Config\CommentFactory $commentFactory, \Magento\Framework\View\Element\BlockFactory $blockFactory, \Magento\Config\Model\Config\Structure\Element\Dependency\Mapper $dependencyMapper ) { - parent::__construct($storeManager); + parent::__construct($storeManager, $moduleManager); $this->_backendFactory = $backendFactory; $this->_sourceFactory = $sourceFactory; $this->_commentFactory = $commentFactory; $this->_blockFactory = $blockFactory; $this->_dependencyMapper = $dependencyMapper; + $this->moduleManager = $moduleManager; } /** diff --git a/app/code/Magento/Config/Model/Config/Structure/Element/Group.php b/app/code/Magento/Config/Model/Config/Structure/Element/Group.php index 3c1028812a6..7e523248c3e 100644 --- a/app/code/Magento/Config/Model/Config/Structure/Element/Group.php +++ b/app/code/Magento/Config/Model/Config/Structure/Element/Group.php @@ -25,17 +25,19 @@ class Group extends AbstractComposite /** * @param \Magento\Store\Model\StoreManagerInterface $storeManager - * @param \Magento\Config\Model\Config\Structure\Element\Iterator\Field $childrenIterator + * @param \Magento\Framework\Module\Manager $moduleManager + * @param Iterator\Field $childrenIterator * @param \Magento\Config\Model\Config\BackendClone\Factory $cloneModelFactory - * @param \Magento\Config\Model\Config\Structure\Element\Dependency\Mapper $dependencyMapper + * @param Dependency\Mapper $dependencyMapper */ public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, + \Magento\Framework\Module\Manager $moduleManager, \Magento\Config\Model\Config\Structure\Element\Iterator\Field $childrenIterator, \Magento\Config\Model\Config\BackendClone\Factory $cloneModelFactory, \Magento\Config\Model\Config\Structure\Element\Dependency\Mapper $dependencyMapper ) { - parent::__construct($storeManager, $childrenIterator); + parent::__construct($storeManager, $moduleManager, $childrenIterator); $this->_cloneModelFactory = $cloneModelFactory; $this->_dependencyMapper = $dependencyMapper; } diff --git a/app/code/Magento/Config/Model/Config/Structure/Element/Section.php b/app/code/Magento/Config/Model/Config/Structure/Element/Section.php index f8839b215d3..7f61631dbe0 100644 --- a/app/code/Magento/Config/Model/Config/Structure/Element/Section.php +++ b/app/code/Magento/Config/Model/Config/Structure/Element/Section.php @@ -16,16 +16,19 @@ class Section extends AbstractComposite /** * @param \Magento\Store\Model\StoreManagerInterface $storeManager + * @param \Magento\Framework\Module\Manager $moduleManager * @param Iterator $childrenIterator * @param \Magento\Framework\AuthorizationInterface $authorization */ public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, + \Magento\Framework\Module\Manager $moduleManager, Iterator $childrenIterator, \Magento\Framework\AuthorizationInterface $authorization ) { - parent::__construct($storeManager, $childrenIterator); + parent::__construct($storeManager, $moduleManager, $childrenIterator); $this->_authorization = $authorization; + $this->moduleManager = $moduleManager; } /** diff --git a/app/code/Magento/Config/Test/Unit/Model/Config/Structure/AbstractElementTest.php b/app/code/Magento/Config/Test/Unit/Model/Config/Structure/AbstractElementTest.php index 778141ab213..90e0d13c3e6 100644 --- a/app/code/Magento/Config/Test/Unit/Model/Config/Structure/AbstractElementTest.php +++ b/app/code/Magento/Config/Test/Unit/Model/Config/Structure/AbstractElementTest.php @@ -17,24 +17,33 @@ class AbstractElementTest extends \PHPUnit_Framework_TestCase /** * @var \PHPUnit_Framework_MockObject_MockObject */ - protected $_storeManager; + protected $storeManagerMock; + + /** + * @var \Magento\Config\Model\Config\Structure\AbstractElement | \PHPUnit_Framework_MockObject_MockObject + */ + protected $moduleManagerMock; protected function setUp() { - $this->_storeManager = $this->getMock('Magento\Store\Model\StoreManager', [], [], '', false); + $this->storeManagerMock = $this->getMock('Magento\Store\Model\StoreManager', [], [], '', false); + $this->moduleManagerMock = $this->getMock( + 'Magento\Framework\Module\Manager', + ['isOutputEnabled'], + [], + '', + false + ); $this->_model = $this->getMockForAbstractClass( 'Magento\Config\Model\Config\Structure\AbstractElement', - [$this->_storeManager] + [ + 'storeManager' => $this->storeManagerMock, + 'moduleManager' => $this->moduleManagerMock, + ] ); } - protected function tearDown() - { - unset($this->_model); - unset($this->_storeManager); - } - public function testGetId() { $this->assertEquals('', $this->_model->getId()); @@ -76,7 +85,7 @@ class AbstractElementTest extends \PHPUnit_Framework_TestCase public function testIsVisibleReturnsTrueInSingleStoreModeForNonHiddenElements() { - $this->_storeManager->expects($this->once())->method('isSingleStoreMode')->will($this->returnValue(true)); + $this->storeManagerMock->expects($this->once())->method('isSingleStoreMode')->will($this->returnValue(true)); $this->_model->setData( ['showInDefault' => 1, 'showInStore' => 0, 'showInWebsite' => 0], ScopeConfigInterface::SCOPE_TYPE_DEFAULT @@ -86,7 +95,7 @@ class AbstractElementTest extends \PHPUnit_Framework_TestCase public function testIsVisibleReturnsFalseInSingleStoreModeForHiddenElements() { - $this->_storeManager->expects($this->once())->method('isSingleStoreMode')->will($this->returnValue(true)); + $this->storeManagerMock->expects($this->once())->method('isSingleStoreMode')->will($this->returnValue(true)); $this->_model->setData( ['hide_in_single_store_mode' => 1, 'showInDefault' => 1, 'showInStore' => 0, 'showInWebsite' => 0], ScopeConfigInterface::SCOPE_TYPE_DEFAULT @@ -99,7 +108,7 @@ class AbstractElementTest extends \PHPUnit_Framework_TestCase */ public function testIsVisibleReturnsFalseInSingleStoreModeForInvisibleElements() { - $this->_storeManager->expects($this->once())->method('isSingleStoreMode')->will($this->returnValue(true)); + $this->storeManagerMock->expects($this->once())->method('isSingleStoreMode')->will($this->returnValue(true)); $this->_model->setData( ['showInDefault' => 0, 'showInStore' => 0, 'showInWebsite' => 0], ScopeConfigInterface::SCOPE_TYPE_DEFAULT @@ -165,6 +174,25 @@ class AbstractElementTest extends \PHPUnit_Framework_TestCase ]; } + public function testIsVisibleReturnFalseIfModuleNotEnabled() + { + $this->moduleManagerMock->expects($this->once()) + ->method('isOutputEnabled') + ->with('test_module') + ->willReturn(false); + $this->_model->setData( + [ + 'showInDefault' => 1, + 'showInStore' => 0, + 'showInWebsite' => 0, + 'if_module_enabled' => 'test_module', + ], + 'default' + ); + $this->assertFalse($this->_model->isVisible()); + + } + public function testGetClass() { $this->assertEquals('', $this->_model->getClass()); diff --git a/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/AbstractCompositeTest.php b/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/AbstractCompositeTest.php index 08831a5a364..555e59eac7a 100644 --- a/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/AbstractCompositeTest.php +++ b/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/AbstractCompositeTest.php @@ -22,6 +22,11 @@ class AbstractCompositeTest extends \PHPUnit_Framework_TestCase */ protected $_iteratorMock; + /** + * @var \Magento\Framework\Module\Manager | \PHPUnit_Framework_MockObject_MockObject + */ + protected $moduleManagerMock; + /** * Test element data * @@ -44,10 +49,10 @@ class AbstractCompositeTest extends \PHPUnit_Framework_TestCase false ); $this->_storeManagerMock = $this->getMock('Magento\Store\Model\StoreManager', [], [], '', false); - + $this->moduleManagerMock = $this->getMock('Magento\Framework\Module\Manager', [], [], '', false); $this->_model = $this->getMockForAbstractClass( 'Magento\Config\Model\Config\Structure\Element\AbstractComposite', - [$this->_storeManagerMock, $this->_iteratorMock] + [$this->_storeManagerMock, $this->moduleManagerMock, $this->_iteratorMock] ); } diff --git a/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/FieldTest.php b/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/FieldTest.php index bd752f99703..b20518c411f 100644 --- a/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/FieldTest.php +++ b/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/FieldTest.php @@ -10,6 +10,8 @@ namespace Magento\Config\Test\Unit\Model\Config\Structure\Element; +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; + class FieldTest extends \PHPUnit_Framework_TestCase { const FIELD_TEST_CONSTANT = "field test constant"; @@ -19,11 +21,6 @@ class FieldTest extends \PHPUnit_Framework_TestCase */ protected $_model; - /** - * @var \PHPUnit_Framework_MockObject_MockObject - */ - protected $_storeManagerMock; - /** * @var \PHPUnit_Framework_MockObject_MockObject */ @@ -49,21 +46,10 @@ class FieldTest extends \PHPUnit_Framework_TestCase */ protected $_depMapperMock; - /** - * @var \PHPUnit_Framework_MockObject_MockObject - */ - protected $_iteratorMock; - protected function setUp() { - $this->_iteratorMock = $this->getMock( - 'Magento\Config\Model\Config\Structure\Element\Iterator', - [], - [], - '', - false - ); - $this->_storeManagerMock = $this->getMock('Magento\Store\Model\StoreManager', [], [], '', false); + $objectManager = new ObjectManager($this); + $this->_backendFactoryMock = $this->getMock( 'Magento\Config\Model\Config\BackendFactory', [], @@ -100,20 +86,20 @@ class FieldTest extends \PHPUnit_Framework_TestCase false ); - $this->_model = new \Magento\Config\Model\Config\Structure\Element\Field( - $this->_storeManagerMock, - $this->_backendFactoryMock, - $this->_sourceFactoryMock, - $this->_commentFactoryMock, - $this->_blockFactoryMock, - $this->_depMapperMock + $this->_model = $objectManager->getObject( + 'Magento\Config\Model\Config\Structure\Element\Field', + [ + 'backendFactory' => $this->_backendFactoryMock, + 'sourceFactory' => $this->_sourceFactoryMock, + 'commentFactory' => $this->_commentFactoryMock, + 'blockFactory' => $this->_blockFactoryMock, + 'dependencyMapper' => $this->_depMapperMock, + ] ); } protected function tearDown() { - unset($this->_iteratorMock); - unset($this->_storeManagerMock); unset($this->_backendFactoryMock); unset($this->_sourceFactoryMock); unset($this->_commentFactoryMock); diff --git a/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/GroupTest.php b/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/GroupTest.php index b92a76069ec..5490eaa0a07 100644 --- a/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/GroupTest.php +++ b/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/GroupTest.php @@ -5,6 +5,8 @@ */ namespace Magento\Config\Test\Unit\Model\Config\Structure\Element; +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; + class GroupTest extends \PHPUnit_Framework_TestCase { /** @@ -12,21 +14,11 @@ class GroupTest extends \PHPUnit_Framework_TestCase */ protected $_model; - /** - * @var \PHPUnit_Framework_MockObject_MockObject - */ - protected $_storeManagerMock; - /** * @var \PHPUnit_Framework_MockObject_MockObject */ protected $_cloneFactoryMock; - /** - * @var \PHPUnit_Framework_MockObject_MockObject - */ - protected $_iteratorMock; - /** * @var \PHPUnit_Framework_MockObject_MockObject */ @@ -34,14 +26,7 @@ class GroupTest extends \PHPUnit_Framework_TestCase protected function setUp() { - $this->_iteratorMock = $this->getMock( - 'Magento\Config\Model\Config\Structure\Element\Iterator\Field', - [], - [], - '', - false - ); - $this->_storeManagerMock = $this->getMock('Magento\Store\Model\StoreManager', [], [], '', false); + $objectManager = new ObjectManager($this); $this->_cloneFactoryMock = $this->getMock( 'Magento\Config\Model\Config\BackendClone\Factory', [], @@ -57,19 +42,18 @@ class GroupTest extends \PHPUnit_Framework_TestCase false ); - $this->_model = new \Magento\Config\Model\Config\Structure\Element\Group( - $this->_storeManagerMock, - $this->_iteratorMock, - $this->_cloneFactoryMock, - $this->_depMapperMock + $this->_model = $objectManager->getObject( + 'Magento\Config\Model\Config\Structure\Element\Group', + [ + 'cloneModelFactory' => $this->_cloneFactoryMock, + 'dependencyMapper' => $this->_depMapperMock, + ] ); } protected function tearDown() { unset($this->_model); - unset($this->_iteratorMock); - unset($this->_storeManagerMock); unset($this->_cloneFactoryMock); unset($this->_depMapperMock); } diff --git a/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/SectionTest.php b/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/SectionTest.php index 86812767f15..a14a1e4ad22 100644 --- a/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/SectionTest.php +++ b/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/SectionTest.php @@ -5,6 +5,8 @@ */ namespace Magento\Config\Test\Unit\Model\Config\Structure\Element; +use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; + class SectionTest extends \PHPUnit_Framework_TestCase { /** @@ -22,34 +24,24 @@ class SectionTest extends \PHPUnit_Framework_TestCase */ protected $_authorizationMock; - /** - * @var \PHPUnit_Framework_MockObject_MockObject - */ - protected $_iteratorMock; - protected function setUp() { - $this->_iteratorMock = $this->getMock( - 'Magento\Config\Model\Config\Structure\Element\Iterator\Field', - [], - [], - '', - false - ); + $objectManager = new ObjectManager($this); $this->_storeManagerMock = $this->getMock('Magento\Store\Model\StoreManager', [], [], '', false); $this->_authorizationMock = $this->getMock('Magento\Framework\AuthorizationInterface'); - $this->_model = new \Magento\Config\Model\Config\Structure\Element\Section( - $this->_storeManagerMock, - $this->_iteratorMock, - $this->_authorizationMock + $this->_model = $objectManager->getObject( + 'Magento\Config\Model\Config\Structure\Element\Section', + [ + 'storeManager' => $this->_storeManagerMock, + 'authorization' => $this->_authorizationMock, + ] ); } protected function tearDown() { unset($this->_model); - unset($this->_iteratorMock); unset($this->_storeManagerMock); unset($this->_authorizationMock); } diff --git a/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/TabTest.php b/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/TabTest.php index d8c9af76865..248cc3c18ff 100644 --- a/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/TabTest.php +++ b/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/TabTest.php @@ -5,6 +5,8 @@ */ namespace Magento\Config\Test\Unit\Model\Config\Structure\Element; +use \Magento\Framework\TestFramework\Unit\Helper\ObjectManager; + class TabTest extends \PHPUnit_Framework_TestCase { /** @@ -12,11 +14,6 @@ class TabTest extends \PHPUnit_Framework_TestCase */ protected $_model; - /** - * @var \PHPUnit_Framework_MockObject_MockObject - */ - protected $_storeManagerMock; - /** * @var \PHPUnit_Framework_MockObject_MockObject */ @@ -31,11 +28,10 @@ class TabTest extends \PHPUnit_Framework_TestCase '', false ); - $this->_storeManagerMock = $this->getMock('Magento\Store\Model\StoreManager', [], [], '', false); - $this->_model = new \Magento\Config\Model\Config\Structure\Element\Tab( - $this->_storeManagerMock, - $this->_iteratorMock + $this->_model = (new ObjectManager($this))->getObject( + 'Magento\Config\Model\Config\Structure\Element\Tab', + ['childrenIterator' => $this->_iteratorMock] ); } @@ -43,7 +39,6 @@ class TabTest extends \PHPUnit_Framework_TestCase { unset($this->_model); unset($this->_iteratorMock); - unset($this->_storeManagerMock); } public function testIsVisibleOnlyChecksPresenceOfChildren() -- GitLab From 43a3e64ea48b13781bc00f2fca26816c26043811 Mon Sep 17 00:00:00 2001 From: Sergey Semenov <ssemenov@ebay.com> Date: Mon, 12 Oct 2015 01:36:28 +0300 Subject: [PATCH 333/420] MAGETWO-43701: [TD] API tests for support of custom options in Quote and Sales API --- .../Bundle/Api/OrderItemRepositoryTest.php | 128 +++++++++++++++++ .../Catalog/Api/OrderItemRepositoryTest.php | 129 ++++++++++++++++++ .../Api/OrderItemRepositoryTest.php | 125 +++++++++++++++++ .../Api/OrderItemRepositoryTest.php | 120 ++++++++++++++++ .../Sales/Service/V1/OrderItemGetListTest.php | 88 ++++++++++++ .../Sales/Service/V1/OrderItemGetTest.php | 72 ++++++++++ .../order_item_with_bundle_and_options.php | 79 +++++++++++ ..._item_with_bundle_and_options_rollback.php | 8 ++ ...r_item_with_product_and_custom_options.php | 75 ++++++++++ ...th_product_and_custom_options_rollback.php | 8 ++ ...der_item_with_configurable_and_options.php | 70 ++++++++++ ...with_configurable_and_options_rollback.php | 8 ++ ...der_item_with_downloadable_and_options.php | 58 ++++++++ ...with_downloadable_and_options_rollback.php | 8 ++ 14 files changed, 976 insertions(+) create mode 100644 dev/tests/api-functional/testsuite/Magento/Bundle/Api/OrderItemRepositoryTest.php create mode 100644 dev/tests/api-functional/testsuite/Magento/Catalog/Api/OrderItemRepositoryTest.php create mode 100644 dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/OrderItemRepositoryTest.php create mode 100644 dev/tests/api-functional/testsuite/Magento/Downloadable/Api/OrderItemRepositoryTest.php create mode 100644 dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderItemGetListTest.php create mode 100644 dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderItemGetTest.php create mode 100644 dev/tests/integration/testsuite/Magento/Bundle/_files/order_item_with_bundle_and_options.php create mode 100644 dev/tests/integration/testsuite/Magento/Bundle/_files/order_item_with_bundle_and_options_rollback.php create mode 100644 dev/tests/integration/testsuite/Magento/Catalog/_files/order_item_with_product_and_custom_options.php create mode 100644 dev/tests/integration/testsuite/Magento/Catalog/_files/order_item_with_product_and_custom_options_rollback.php create mode 100644 dev/tests/integration/testsuite/Magento/ConfigurableProduct/_files/order_item_with_configurable_and_options.php create mode 100644 dev/tests/integration/testsuite/Magento/ConfigurableProduct/_files/order_item_with_configurable_and_options_rollback.php create mode 100644 dev/tests/integration/testsuite/Magento/Downloadable/_files/order_item_with_downloadable_and_options.php create mode 100644 dev/tests/integration/testsuite/Magento/Downloadable/_files/order_item_with_downloadable_and_options_rollback.php diff --git a/dev/tests/api-functional/testsuite/Magento/Bundle/Api/OrderItemRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Bundle/Api/OrderItemRepositoryTest.php new file mode 100644 index 00000000000..72005876cc5 --- /dev/null +++ b/dev/tests/api-functional/testsuite/Magento/Bundle/Api/OrderItemRepositoryTest.php @@ -0,0 +1,128 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Bundle\Api; + +use Magento\TestFramework\TestCase\WebapiAbstract; + +class OrderItemRepositoryTest extends WebapiAbstract +{ + const RESOURCE_PATH = '/V1/orders/items'; + + const SERVICE_VERSION = 'V1'; + const SERVICE_NAME = 'salesOrderItemRepositoryV1'; + + const ORDER_INCREMENT_ID = '100000001'; + + /** + * @var \Magento\TestFramework\ObjectManager + */ + protected $objectManager; + + protected function setUp() + { + $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + } + + /** + * @magentoApiDataFixture Magento/Bundle/_files/order_item_with_bundle_and_options.php + */ + public function testGet() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order'); + $order->loadByIncrementId(self::ORDER_INCREMENT_ID); + $orderItem = current($order->getItems()); + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . '/' . $orderItem->getId(), + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, + ], + 'soap' => [ + 'service' => self::SERVICE_NAME, + 'serviceVersion' => self::SERVICE_VERSION, + 'operation' => self::SERVICE_NAME . 'get', + ], + ]; + + $response = $this->_webApiCall($serviceInfo, ['id' => $orderItem->getId()]); + + $this->assertTrue(is_array($response)); + $this->assertOrderItem($orderItem, $response); + } + + /** + * @magentoApiDataFixture Magento/Bundle/_files/order_item_with_bundle_and_options.php + */ + public function testGetList() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order'); + $order->loadByIncrementId(self::ORDER_INCREMENT_ID); + + /** @var $searchCriteriaBuilder \Magento\Framework\Api\SearchCriteriaBuilder */ + $searchCriteriaBuilder = $this->objectManager->create('Magento\Framework\Api\SearchCriteriaBuilder'); + /** @var $filterBuilder \Magento\Framework\Api\FilterBuilder */ + $filterBuilder = $this->objectManager->create('Magento\Framework\Api\FilterBuilder'); + + $searchCriteriaBuilder->addFilters( + [ + $filterBuilder->setField('order_id') + ->setValue($order->getId()) + ->create(), + ] + ); + + $requestData = ['criteria' => $searchCriteriaBuilder->create()->__toArray()]; + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . '?' . http_build_query($requestData), + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, + ], + 'soap' => [ + 'service' => self::SERVICE_NAME, + 'serviceVersion' => self::SERVICE_VERSION, + 'operation' => self::SERVICE_NAME . 'getList', + ], + ]; + + $response = $this->_webApiCall($serviceInfo, $requestData); + + $this->assertTrue(is_array($response)); + $this->assertArrayHasKey('items', $response); + $this->assertCount(1, $response['items']); + $this->assertTrue(is_array($response['items'][0])); + $this->assertOrderItem(current($order->getItems()), $response['items'][0]); + } + + /** + * @param \Magento\Sales\Model\Order\Item $orderItem + * @param array $response + * @return void + */ + protected function assertOrderItem(\Magento\Sales\Model\Order\Item $orderItem, array $response) + { + $bundleOption = $orderItem->getBuyRequest()->getBundleOption(); + $bundleOptionQty = $orderItem->getBuyRequest()->getBundleOptionQty(); + + $this->assertArrayHasKey('product_option', $response); + $this->assertArrayHasKey('extension_attributes', $response['product_option']); + $this->assertArrayHasKey('bundle_options', $response['product_option']['extension_attributes']); + + $actualOptions = $response['product_option']['extension_attributes']['bundle_options']; + + $this->assertEquals(array_keys($bundleOption), array_column($actualOptions, 'option_id')); + $this->assertEquals($bundleOptionQty, array_column($actualOptions, 'option_qty', 'option_id')); + + foreach ($actualOptions as $option) { + $expectedSelections = is_array($bundleOption[$option['option_id']]) + ? $bundleOption[$option['option_id']] + : [$bundleOption[$option['option_id']]]; + $this->assertEquals($expectedSelections, $option['option_selections']); + } + } +} diff --git a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/OrderItemRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/OrderItemRepositoryTest.php new file mode 100644 index 00000000000..db63fbb6084 --- /dev/null +++ b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/OrderItemRepositoryTest.php @@ -0,0 +1,129 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Catalog\Api; + +use Magento\TestFramework\TestCase\WebapiAbstract; + +class OrderItemRepositoryTest extends WebapiAbstract +{ + const RESOURCE_PATH = '/V1/orders/items'; + + const SERVICE_VERSION = 'V1'; + const SERVICE_NAME = 'salesOrderItemRepositoryV1'; + + const ORDER_INCREMENT_ID = '100000001'; + + /** + * @var \Magento\TestFramework\ObjectManager + */ + protected $objectManager; + + protected function setUp() + { + $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + } + + /** + * @magentoApiDataFixture Magento/Catalog/_files/order_item_with_product_and_custom_options.php + */ + public function testGet() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order'); + $order->loadByIncrementId(self::ORDER_INCREMENT_ID); + $orderItem = current($order->getItems()); + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . '/' . $orderItem->getId(), + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, + ], + 'soap' => [ + 'service' => self::SERVICE_NAME, + 'serviceVersion' => self::SERVICE_VERSION, + 'operation' => self::SERVICE_NAME . 'get', + ], + ]; + + $response = $this->_webApiCall($serviceInfo, ['id' => $orderItem->getId()]); + + $this->assertTrue(is_array($response)); + $this->assertOrderItem($orderItem, $response); + } + + /** + * @magentoApiDataFixture Magento/Catalog/_files/order_item_with_product_and_custom_options.php + */ + public function testGetList() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order'); + $order->loadByIncrementId(self::ORDER_INCREMENT_ID); + + /** @var $searchCriteriaBuilder \Magento\Framework\Api\SearchCriteriaBuilder */ + $searchCriteriaBuilder = $this->objectManager->create('Magento\Framework\Api\SearchCriteriaBuilder'); + /** @var $filterBuilder \Magento\Framework\Api\FilterBuilder */ + $filterBuilder = $this->objectManager->create('Magento\Framework\Api\FilterBuilder'); + + $searchCriteriaBuilder->addFilters( + [ + $filterBuilder->setField('order_id') + ->setValue($order->getId()) + ->create(), + ] + ); + + $requestData = ['criteria' => $searchCriteriaBuilder->create()->__toArray()]; + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . '?' . http_build_query($requestData), + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, + ], + 'soap' => [ + 'service' => self::SERVICE_NAME, + 'serviceVersion' => self::SERVICE_VERSION, + 'operation' => self::SERVICE_NAME . 'getList', + ], + ]; + + $response = $this->_webApiCall($serviceInfo, $requestData); + + $this->assertTrue(is_array($response)); + $this->assertArrayHasKey('items', $response); + $this->assertCount(1, $response['items']); + $this->assertTrue(is_array($response['items'][0])); + $this->assertOrderItem(current($order->getItems()), $response['items'][0]); + } + + /** + * @param \Magento\Sales\Model\Order\Item $orderItem + * @param array $response + * @return void + */ + protected function assertOrderItem(\Magento\Sales\Model\Order\Item $orderItem, array $response) + { + $expected = $orderItem->getBuyRequest()->getOptions(); + + $this->assertArrayHasKey('product_option', $response); + $this->assertArrayHasKey('extension_attributes', $response['product_option']); + $this->assertArrayHasKey('custom_options', $response['product_option']['extension_attributes']); + + $actualOptions = $response['product_option']['extension_attributes']['custom_options']; + + $expectedOptions = []; + foreach ($expected as $optionId => $optionValue) { + if (is_array($optionValue)) { + $optionValue = implode(',', $optionValue); + } + $expectedOptions[] = [ + 'option_id' => $optionId, + 'option_value' => $optionValue, + ]; + } + $this->assertEquals($expectedOptions, $actualOptions); + } +} diff --git a/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/OrderItemRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/OrderItemRepositoryTest.php new file mode 100644 index 00000000000..25cb0e8652b --- /dev/null +++ b/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/OrderItemRepositoryTest.php @@ -0,0 +1,125 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\ConfigurableProduct\Api; + +use Magento\TestFramework\TestCase\WebapiAbstract; + +class OrderItemRepositoryTest extends WebapiAbstract +{ + const RESOURCE_PATH = '/V1/orders/items'; + + const SERVICE_VERSION = 'V1'; + const SERVICE_NAME = 'salesOrderItemRepositoryV1'; + + const ORDER_INCREMENT_ID = '100000001'; + + /** + * @var \Magento\TestFramework\ObjectManager + */ + protected $objectManager; + + protected function setUp() + { + $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + } + + /** + * @magentoApiDataFixture Magento/ConfigurableProduct/_files/order_item_with_configurable_and_options.php + */ + public function testGet() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order'); + $order->loadByIncrementId(self::ORDER_INCREMENT_ID); + $orderItem = current($order->getItems()); + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . '/' . $orderItem->getId(), + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, + ], + 'soap' => [ + 'service' => self::SERVICE_NAME, + 'serviceVersion' => self::SERVICE_VERSION, + 'operation' => self::SERVICE_NAME . 'get', + ], + ]; + + $response = $this->_webApiCall($serviceInfo, ['id' => $orderItem->getId()]); + + $this->assertTrue(is_array($response)); + $this->assertOrderItem($orderItem, $response); + } + + /** + * @magentoApiDataFixture Magento/ConfigurableProduct/_files/order_item_with_configurable_and_options.php + */ + public function testGetList() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order'); + $order->loadByIncrementId(self::ORDER_INCREMENT_ID); + + /** @var $searchCriteriaBuilder \Magento\Framework\Api\SearchCriteriaBuilder */ + $searchCriteriaBuilder = $this->objectManager->create('Magento\Framework\Api\SearchCriteriaBuilder'); + /** @var $filterBuilder \Magento\Framework\Api\FilterBuilder */ + $filterBuilder = $this->objectManager->create('Magento\Framework\Api\FilterBuilder'); + + $searchCriteriaBuilder->addFilters( + [ + $filterBuilder->setField('order_id') + ->setValue($order->getId()) + ->create(), + ] + ); + + $requestData = ['criteria' => $searchCriteriaBuilder->create()->__toArray()]; + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . '?' . http_build_query($requestData), + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, + ], + 'soap' => [ + 'service' => self::SERVICE_NAME, + 'serviceVersion' => self::SERVICE_VERSION, + 'operation' => self::SERVICE_NAME . 'getList', + ], + ]; + + $response = $this->_webApiCall($serviceInfo, $requestData); + + $this->assertTrue(is_array($response)); + $this->assertArrayHasKey('items', $response); + $this->assertCount(1, $response['items']); + $this->assertTrue(is_array($response['items'][0])); + $this->assertOrderItem(current($order->getItems()), $response['items'][0]); + } + + /** + * @param \Magento\Sales\Model\Order\Item $orderItem + * @param array $response + * @return void + */ + protected function assertOrderItem(\Magento\Sales\Model\Order\Item $orderItem, array $response) + { + $expected = $orderItem->getBuyRequest()->getSuperAttribute(); + + $this->assertArrayHasKey('product_option', $response); + $this->assertArrayHasKey('extension_attributes', $response['product_option']); + $this->assertArrayHasKey('configurable_item_options', $response['product_option']['extension_attributes']); + + $actualOptions = $response['product_option']['extension_attributes']['configurable_item_options']; + + $this->assertTrue(is_array($actualOptions)); + $this->assertTrue(is_array($actualOptions[0])); + $this->assertArrayHasKey('option_id', $actualOptions[0]); + $this->assertArrayHasKey('option_value', $actualOptions[0]); + + $this->assertEquals(key($expected), $actualOptions[0]['option_id']); + $this->assertEquals(current($expected), $actualOptions[0]['option_value']); + } +} diff --git a/dev/tests/api-functional/testsuite/Magento/Downloadable/Api/OrderItemRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Downloadable/Api/OrderItemRepositoryTest.php new file mode 100644 index 00000000000..41a5c6a5069 --- /dev/null +++ b/dev/tests/api-functional/testsuite/Magento/Downloadable/Api/OrderItemRepositoryTest.php @@ -0,0 +1,120 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Downloadable\Api; + +use Magento\TestFramework\TestCase\WebapiAbstract; + +class OrderItemRepositoryTest extends WebapiAbstract +{ + const RESOURCE_PATH = '/V1/orders/items'; + + const SERVICE_VERSION = 'V1'; + const SERVICE_NAME = 'salesOrderItemRepositoryV1'; + + const ORDER_INCREMENT_ID = '100000001'; + + /** + * @var \Magento\TestFramework\ObjectManager + */ + protected $objectManager; + + protected function setUp() + { + $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + } + + /** + * @magentoApiDataFixture Magento/Downloadable/_files/order_item_with_downloadable_and_options.php + */ + public function testGet() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order'); + $order->loadByIncrementId(self::ORDER_INCREMENT_ID); + $orderItem = current($order->getItems()); + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . '/' . $orderItem->getId(), + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, + ], + 'soap' => [ + 'service' => self::SERVICE_NAME, + 'serviceVersion' => self::SERVICE_VERSION, + 'operation' => self::SERVICE_NAME . 'get', + ], + ]; + + $response = $this->_webApiCall($serviceInfo, ['id' => $orderItem->getId()]); + + $this->assertTrue(is_array($response)); + $this->assertOrderItem($orderItem, $response); + } + + /** + * @magentoApiDataFixture Magento/Downloadable/_files/order_item_with_downloadable_and_options.php + */ + public function testGetList() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order'); + $order->loadByIncrementId(self::ORDER_INCREMENT_ID); + + /** @var $searchCriteriaBuilder \Magento\Framework\Api\SearchCriteriaBuilder */ + $searchCriteriaBuilder = $this->objectManager->create('Magento\Framework\Api\SearchCriteriaBuilder'); + /** @var $filterBuilder \Magento\Framework\Api\FilterBuilder */ + $filterBuilder = $this->objectManager->create('Magento\Framework\Api\FilterBuilder'); + + $searchCriteriaBuilder->addFilters( + [ + $filterBuilder->setField('order_id') + ->setValue($order->getId()) + ->create(), + ] + ); + + $requestData = ['criteria' => $searchCriteriaBuilder->create()->__toArray()]; + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . '?' . http_build_query($requestData), + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, + ], + 'soap' => [ + 'service' => self::SERVICE_NAME, + 'serviceVersion' => self::SERVICE_VERSION, + 'operation' => self::SERVICE_NAME . 'getList', + ], + ]; + + $response = $this->_webApiCall($serviceInfo, $requestData); + + $this->assertTrue(is_array($response)); + $this->assertArrayHasKey('items', $response); + $this->assertCount(1, $response['items']); + $this->assertTrue(is_array($response['items'][0])); + $this->assertOrderItem(current($order->getItems()), $response['items'][0]); + } + + /** + * @param \Magento\Sales\Model\Order\Item $orderItem + * @param array $response + * @return void + */ + protected function assertOrderItem(\Magento\Sales\Model\Order\Item $orderItem, array $response) + { + $expected = $orderItem->getBuyRequest()->getLinks(); + + $this->assertArrayHasKey('product_option', $response); + $this->assertArrayHasKey('extension_attributes', $response['product_option']); + $this->assertArrayHasKey('downloadable_option', $response['product_option']['extension_attributes']); + + $actualOptions = $response['product_option']['extension_attributes']['downloadable_option']; + + $this->assertArrayHasKey('downloadable_links', $actualOptions); + $this->assertEquals($expected, $actualOptions['downloadable_links']); + } +} diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderItemGetListTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderItemGetListTest.php new file mode 100644 index 00000000000..1cd2b7a3065 --- /dev/null +++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderItemGetListTest.php @@ -0,0 +1,88 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Sales\Service\V1; + +use Magento\TestFramework\TestCase\WebapiAbstract; + +class OrderItemGetListTest extends WebapiAbstract +{ + const RESOURCE_PATH = '/V1/orders/items'; + + const SERVICE_VERSION = 'V1'; + const SERVICE_NAME = 'salesOrderItemRepositoryV1'; + + const ORDER_INCREMENT_ID = '100000001'; + + /** + * @var \Magento\TestFramework\ObjectManager + */ + protected $objectManager; + + protected function setUp() + { + $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + } + + /** + * @magentoApiDataFixture Magento/Sales/_files/order.php + */ + public function testGetList() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order'); + $order->loadByIncrementId(self::ORDER_INCREMENT_ID); + + /** @var $searchCriteriaBuilder \Magento\Framework\Api\SearchCriteriaBuilder */ + $searchCriteriaBuilder = $this->objectManager->create('Magento\Framework\Api\SearchCriteriaBuilder'); + /** @var $filterBuilder \Magento\Framework\Api\FilterBuilder */ + $filterBuilder = $this->objectManager->create('Magento\Framework\Api\FilterBuilder'); + + $searchCriteriaBuilder->addFilters( + [ + $filterBuilder->setField('order_id') + ->setValue($order->getId()) + ->create(), + ] + ); + + $requestData = ['criteria' => $searchCriteriaBuilder->create()->__toArray()]; + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . '?' . http_build_query($requestData), + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, + ], + 'soap' => [ + 'service' => self::SERVICE_NAME, + 'serviceVersion' => self::SERVICE_VERSION, + 'operation' => self::SERVICE_NAME . 'getList', + ], + ]; + + $response = $this->_webApiCall($serviceInfo, $requestData); + + $this->assertTrue(is_array($response)); + $this->assertArrayHasKey('items', $response); + $this->assertCount(1, $response['items']); + $this->assertTrue(is_array($response['items'][0])); + $this->assertOrderItem(current($order->getItems()), $response['items'][0]); + } + + /** + * @param \Magento\Sales\Model\Order\Item $orderItem + * @param array $response + * @return void + */ + protected function assertOrderItem(\Magento\Sales\Model\Order\Item $orderItem, array $response) + { + $this->assertEquals($orderItem->getId(), $response['item_id']); + $this->assertEquals($orderItem->getOrderId(), $response['order_id']); + $this->assertEquals($orderItem->getProductId(), $response['product_id']); + $this->assertEquals($orderItem->getProductType(), $response['product_type']); + $this->assertEquals($orderItem->getBasePrice(), $response['base_price']); + $this->assertEquals($orderItem->getRowTotal(), $response['row_total']); + } +} diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderItemGetTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderItemGetTest.php new file mode 100644 index 00000000000..ca2803a520d --- /dev/null +++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderItemGetTest.php @@ -0,0 +1,72 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Sales\Service\V1; + +use Magento\TestFramework\TestCase\WebapiAbstract; + +class OrderItemGetTest extends WebapiAbstract +{ + const RESOURCE_PATH = '/V1/orders/items'; + + const SERVICE_VERSION = 'V1'; + const SERVICE_NAME = 'salesOrderItemRepositoryV1'; + + const ORDER_INCREMENT_ID = '100000001'; + + /** + * @var \Magento\TestFramework\ObjectManager + */ + protected $objectManager; + + protected function setUp() + { + $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + } + + /** + * @magentoApiDataFixture Magento/Sales/_files/order.php + */ + public function testGet() + { + /** @var \Magento\Sales\Model\Order $order */ + $order = $this->objectManager->create('Magento\Sales\Model\Order'); + $order->loadByIncrementId(self::ORDER_INCREMENT_ID); + /** @var \Magento\Sales\Model\Order\Item $orderItem */ + $orderItem = current($order->getItems()); + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . '/' . $orderItem->getId(), + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, + ], + 'soap' => [ + 'service' => self::SERVICE_NAME, + 'serviceVersion' => self::SERVICE_VERSION, + 'operation' => self::SERVICE_NAME . 'get', + ], + ]; + + $response = $this->_webApiCall($serviceInfo, ['id' => $orderItem->getId()]); + + $this->assertTrue(is_array($response)); + $this->assertOrderItem($orderItem, $response); + } + + /** + * @param \Magento\Sales\Model\Order\Item $orderItem + * @param array $response + * @return void + */ + protected function assertOrderItem(\Magento\Sales\Model\Order\Item $orderItem, array $response) + { + $this->assertEquals($orderItem->getId(), $response['item_id']); + $this->assertEquals($orderItem->getOrderId(), $response['order_id']); + $this->assertEquals($orderItem->getProductId(), $response['product_id']); + $this->assertEquals($orderItem->getProductType(), $response['product_type']); + $this->assertEquals($orderItem->getBasePrice(), $response['base_price']); + $this->assertEquals($orderItem->getRowTotal(), $response['row_total']); + } +} diff --git a/dev/tests/integration/testsuite/Magento/Bundle/_files/order_item_with_bundle_and_options.php b/dev/tests/integration/testsuite/Magento/Bundle/_files/order_item_with_bundle_and_options.php new file mode 100644 index 00000000000..b4e01574fae --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Bundle/_files/order_item_with_bundle_and_options.php @@ -0,0 +1,79 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +require __DIR__ . '/product_with_multiple_options.php'; + +$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + +$addressData = include __DIR__ . '/../../../Magento/Sales/_files/address_data.php'; + +$billingAddress = $objectManager->create('Magento\Sales\Model\Order\Address', ['data' => $addressData]); +$billingAddress->setAddressType('billing'); + +$shippingAddress = clone $billingAddress; +$shippingAddress->setId(null)->setAddressType('shipping'); + +$payment = $objectManager->create('Magento\Sales\Model\Order\Payment'); +$payment->setMethod('checkmo'); + +/** @var $product \Magento\Catalog\Model\Product */ +$product = $objectManager->create('Magento\Catalog\Model\Product'); +$product->load(3); + +/** @var $typeInstance \Magento\Bundle\Model\Product\Type */ +$typeInstance = $product->getTypeInstance(); +$typeInstance->setStoreFilter($product->getStoreId(), $product); +$optionCollection = $typeInstance->getOptionsCollection($product); + +$bundleOptions = []; +$bundleOptionsQty = []; +foreach ($optionCollection as $option) { + /** @var $option \Magento\Bundle\Model\Option */ + $selectionsCollection = $typeInstance->getSelectionsCollection([$option->getId()], $product); + if ($option->isMultiSelection()) { + $bundleOptions[$option->getId()] = array_column($selectionsCollection->toArray(), 'selection_id'); + } else { + $bundleOptions[$option->getId()] = $selectionsCollection->getFirstItem()->getSelectionId(); + } + $bundleOptionsQty[$option->getId()] = 1; +} + +$requestInfo = [ + 'product' => $product->getId(), + 'bundle_option' => $bundleOptions, + 'bundle_option_qty' => $bundleOptionsQty, + 'qty' => 1, +]; + +/** @var \Magento\Sales\Model\Order\Item $orderItem */ +$orderItem = $objectManager->create('Magento\Sales\Model\Order\Item'); +$orderItem->setProductId($product->getId()); +$orderItem->setQtyOrdered(1); +$orderItem->setBasePrice($product->getPrice()); +$orderItem->setPrice($product->getPrice()); +$orderItem->setRowTotal($product->getPrice()); +$orderItem->setProductType($product->getTypeId()); +$orderItem->setProductOptions(['info_buyRequest' => $requestInfo]); + +/** @var \Magento\Sales\Model\Order $order */ +$order = $objectManager->create('Magento\Sales\Model\Order'); +$order->setIncrementId('100000001'); +$order->setState(\Magento\Sales\Model\Order::STATE_NEW); +$order->setStatus($order->getConfig()->getStateDefaultStatus(\Magento\Sales\Model\Order::STATE_NEW)); +$order->setCustomerIsGuest(true); +$order->setCustomerEmail('customer@null.com'); +$order->setCustomerFirstname('firstname'); +$order->setCustomerLastname('lastname'); +$order->setBillingAddress($billingAddress); +$order->setShippingAddress($shippingAddress); +$order->setAddresses([$billingAddress, $shippingAddress]); +$order->setPayment($payment); +$order->addItem($orderItem); +$order->setStoreId($objectManager->get('Magento\Store\Model\StoreManagerInterface')->getStore()->getId()); +$order->setSubtotal(100); +$order->setBaseSubtotal(100); +$order->setBaseGrandTotal(100); +$order->save(); diff --git a/dev/tests/integration/testsuite/Magento/Bundle/_files/order_item_with_bundle_and_options_rollback.php b/dev/tests/integration/testsuite/Magento/Bundle/_files/order_item_with_bundle_and_options_rollback.php new file mode 100644 index 00000000000..e528be5818b --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Bundle/_files/order_item_with_bundle_and_options_rollback.php @@ -0,0 +1,8 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +require __DIR__ . '/product_with_multiple_options_rollback.php'; +require __DIR__ . '/../../../Magento/Sales/_files/default_rollback.php'; diff --git a/dev/tests/integration/testsuite/Magento/Catalog/_files/order_item_with_product_and_custom_options.php b/dev/tests/integration/testsuite/Magento/Catalog/_files/order_item_with_product_and_custom_options.php new file mode 100644 index 00000000000..0d4b9ba608a --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Catalog/_files/order_item_with_product_and_custom_options.php @@ -0,0 +1,75 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +require __DIR__ . '/product_simple.php'; + +$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + +$addressData = include __DIR__ . '/../../../Magento/Sales/_files/address_data.php'; + +$billingAddress = $objectManager->create('Magento\Sales\Model\Order\Address', ['data' => $addressData]); +$billingAddress->setAddressType('billing'); + +$shippingAddress = clone $billingAddress; +$shippingAddress->setId(null)->setAddressType('shipping'); + +$payment = $objectManager->create('Magento\Sales\Model\Order\Payment'); +$payment->setMethod('checkmo'); + +/** @var $product \Magento\Catalog\Model\Product */ +$product = $objectManager->create('Magento\Catalog\Model\Product'); +$product->load(1); + +$optionValuesByType = [ + 'field' => 'Test value', + 'date_time' => [ + 'year' => '2015', + 'month' => '9', + 'day' => '9', + 'hour' => '2', + 'minute' => '2', + 'day_part' => 'am', + 'date_internal' => '', + ], + 'drop_down' => '3-1-select', + 'radio' => '4-1-radio', +]; + +$requestInfo = ['options' => []]; +$productOptions = $product->getOptions(); +foreach ($productOptions as $option) { + $requestInfo['options'][$option->getOptionId()] = $optionValuesByType[$option->getType()]; +} + +/** @var \Magento\Sales\Model\Order\Item $orderItem */ +$orderItem = $objectManager->create('Magento\Sales\Model\Order\Item'); +$orderItem->setProductId($product->getId()); +$orderItem->setQtyOrdered(1); +$orderItem->setBasePrice($product->getPrice()); +$orderItem->setPrice($product->getPrice()); +$orderItem->setRowTotal($product->getPrice()); +$orderItem->setProductType($product->getTypeId()); +$orderItem->setProductOptions(['info_buyRequest' => $requestInfo]); + +/** @var \Magento\Sales\Model\Order $order */ +$order = $objectManager->create('Magento\Sales\Model\Order'); +$order->setIncrementId('100000001'); +$order->setState(\Magento\Sales\Model\Order::STATE_NEW); +$order->setStatus($order->getConfig()->getStateDefaultStatus(\Magento\Sales\Model\Order::STATE_NEW)); +$order->setCustomerIsGuest(true); +$order->setCustomerEmail('customer@null.com'); +$order->setCustomerFirstname('firstname'); +$order->setCustomerLastname('lastname'); +$order->setBillingAddress($billingAddress); +$order->setShippingAddress($shippingAddress); +$order->setAddresses([$billingAddress, $shippingAddress]); +$order->setPayment($payment); +$order->addItem($orderItem); +$order->setStoreId($objectManager->get('Magento\Store\Model\StoreManagerInterface')->getStore()->getId()); +$order->setSubtotal(100); +$order->setBaseSubtotal(100); +$order->setBaseGrandTotal(100); +$order->save(); diff --git a/dev/tests/integration/testsuite/Magento/Catalog/_files/order_item_with_product_and_custom_options_rollback.php b/dev/tests/integration/testsuite/Magento/Catalog/_files/order_item_with_product_and_custom_options_rollback.php new file mode 100644 index 00000000000..dc1ef8a350e --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Catalog/_files/order_item_with_product_and_custom_options_rollback.php @@ -0,0 +1,8 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +require __DIR__ . '/product_simple_rollback.php'; +require __DIR__ . '/../../../Magento/Sales/_files/default_rollback.php'; diff --git a/dev/tests/integration/testsuite/Magento/ConfigurableProduct/_files/order_item_with_configurable_and_options.php b/dev/tests/integration/testsuite/Magento/ConfigurableProduct/_files/order_item_with_configurable_and_options.php new file mode 100644 index 00000000000..3a63d6c93e7 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/ConfigurableProduct/_files/order_item_with_configurable_and_options.php @@ -0,0 +1,70 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +require 'product_configurable.php'; + +$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + +$addressData = include __DIR__ . '/../../../Magento/Sales/_files/address_data.php'; + +$billingAddress = $objectManager->create('Magento\Sales\Model\Order\Address', ['data' => $addressData]); +$billingAddress->setAddressType('billing'); + +$shippingAddress = clone $billingAddress; +$shippingAddress->setId(null)->setAddressType('shipping'); + +$payment = $objectManager->create('Magento\Sales\Model\Order\Payment'); +$payment->setMethod('checkmo'); + +/** @var $product \Magento\Catalog\Model\Product */ +$product = $objectManager->create('Magento\Catalog\Model\Product'); +$product->load(1); + +/** @var $attribute \Magento\Catalog\Model\ResourceModel\Eav\Attribute */ +$eavConfig = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Eav\Model\Config'); +$attribute = $eavConfig->getAttribute('catalog_product', 'test_configurable'); + +/** @var $options \Magento\Eav\Model\ResourceModel\Entity\Attribute\Option\Collection */ +$options = $objectManager->create('Magento\Eav\Model\ResourceModel\Entity\Attribute\Option\Collection'); +$option = $options->setAttributeFilter($attribute->getId()) + ->getFirstItem(); + +$requestInfo = [ + 'qty' => 1, + 'super_attribute' => [ + $attribute->getId() => $option->getId(), + ], +]; + +/** @var \Magento\Sales\Model\Order\Item $orderItem */ +$orderItem = $objectManager->create('Magento\Sales\Model\Order\Item'); +$orderItem->setProductId($product->getId()); +$orderItem->setQtyOrdered(1); +$orderItem->setBasePrice($product->getPrice()); +$orderItem->setPrice($product->getPrice()); +$orderItem->setRowTotal($product->getPrice()); +$orderItem->setProductType($product->getTypeId()); +$orderItem->setProductOptions(['info_buyRequest' => $requestInfo]); + +/** @var \Magento\Sales\Model\Order $order */ +$order = $objectManager->create('Magento\Sales\Model\Order'); +$order->setIncrementId('100000001'); +$order->setState(\Magento\Sales\Model\Order::STATE_NEW); +$order->setStatus($order->getConfig()->getStateDefaultStatus(\Magento\Sales\Model\Order::STATE_NEW)); +$order->setCustomerIsGuest(true); +$order->setCustomerEmail('customer@null.com'); +$order->setCustomerFirstname('firstname'); +$order->setCustomerLastname('lastname'); +$order->setBillingAddress($billingAddress); +$order->setShippingAddress($shippingAddress); +$order->setAddresses([$billingAddress, $shippingAddress]); +$order->setPayment($payment); +$order->addItem($orderItem); +$order->setStoreId($objectManager->get('Magento\Store\Model\StoreManagerInterface')->getStore()->getId()); +$order->setSubtotal(100); +$order->setBaseSubtotal(100); +$order->setBaseGrandTotal(100); +$order->save(); diff --git a/dev/tests/integration/testsuite/Magento/ConfigurableProduct/_files/order_item_with_configurable_and_options_rollback.php b/dev/tests/integration/testsuite/Magento/ConfigurableProduct/_files/order_item_with_configurable_and_options_rollback.php new file mode 100644 index 00000000000..bb2003ecfc1 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/ConfigurableProduct/_files/order_item_with_configurable_and_options_rollback.php @@ -0,0 +1,8 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +require __DIR__ . '/product_configurable_rollback.php'; +require __DIR__ . '/../../../Magento/Sales/_files/default_rollback.php'; diff --git a/dev/tests/integration/testsuite/Magento/Downloadable/_files/order_item_with_downloadable_and_options.php b/dev/tests/integration/testsuite/Magento/Downloadable/_files/order_item_with_downloadable_and_options.php new file mode 100644 index 00000000000..e7919efd483 --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Downloadable/_files/order_item_with_downloadable_and_options.php @@ -0,0 +1,58 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +require __DIR__ . '/product_downloadable.php'; + +$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + +$addressData = include __DIR__ . '/../../../Magento/Sales/_files/address_data.php'; + +$billingAddress = $objectManager->create('Magento\Sales\Model\Order\Address', ['data' => $addressData]); +$billingAddress->setAddressType('billing'); + +$shippingAddress = clone $billingAddress; +$shippingAddress->setId(null)->setAddressType('shipping'); + +$payment = $objectManager->create('Magento\Sales\Model\Order\Payment'); +$payment->setMethod('checkmo'); + +/** @var $product \Magento\Catalog\Model\Product */ +$product = $objectManager->create('Magento\Catalog\Model\Product'); +$product->load(1); + +$requestInfo = [ + 'links' => array_keys($product->getDownloadableLinks()), +]; + +/** @var \Magento\Sales\Model\Order\Item $orderItem */ +$orderItem = $objectManager->create('Magento\Sales\Model\Order\Item'); +$orderItem->setProductId($product->getId()); +$orderItem->setQtyOrdered(1); +$orderItem->setBasePrice($product->getPrice()); +$orderItem->setPrice($product->getPrice()); +$orderItem->setRowTotal($product->getPrice()); +$orderItem->setProductType($product->getTypeId()); +$orderItem->setProductOptions(['info_buyRequest' => $requestInfo]); + +/** @var \Magento\Sales\Model\Order $order */ +$order = $objectManager->create('Magento\Sales\Model\Order'); +$order->setIncrementId('100000001'); +$order->setState(\Magento\Sales\Model\Order::STATE_NEW); +$order->setStatus($order->getConfig()->getStateDefaultStatus(\Magento\Sales\Model\Order::STATE_NEW)); +$order->setCustomerIsGuest(true); +$order->setCustomerEmail('customer@null.com'); +$order->setCustomerFirstname('firstname'); +$order->setCustomerLastname('lastname'); +$order->setBillingAddress($billingAddress); +$order->setShippingAddress($shippingAddress); +$order->setAddresses([$billingAddress, $shippingAddress]); +$order->setPayment($payment); +$order->addItem($orderItem); +$order->setStoreId($objectManager->get('Magento\Store\Model\StoreManagerInterface')->getStore()->getId()); +$order->setSubtotal(100); +$order->setBaseSubtotal(100); +$order->setBaseGrandTotal(100); +$order->save(); diff --git a/dev/tests/integration/testsuite/Magento/Downloadable/_files/order_item_with_downloadable_and_options_rollback.php b/dev/tests/integration/testsuite/Magento/Downloadable/_files/order_item_with_downloadable_and_options_rollback.php new file mode 100644 index 00000000000..3d18328b96d --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/Downloadable/_files/order_item_with_downloadable_and_options_rollback.php @@ -0,0 +1,8 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +require __DIR__ . '/product_downloadable_rollback.php'; +require __DIR__ . '/../../../Magento/Sales/_files/default_rollback.php'; -- GitLab From 087c8d017457c9a2dfdc68c54fcb9d813d0cd6cb Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Mon, 12 Oct 2015 11:59:24 +0300 Subject: [PATCH 334/420] MAGETWO-43923: [GitHub]ModelResource namespace inconsistency renamed namespace --- .../Magento/AdminNotification/Model/Feed.php | 4 +- .../Model/ResourceModel/Grid/Collection.php | 2 +- .../Model/ResourceModel/Inbox.php | 2 +- .../Model/ResourceModel/Inbox/Collection.php | 2 +- .../Inbox/Collection/Critical.php | 2 +- .../Model/ResourceModel/System/Message.php | 2 +- .../System/Message/Collection.php | 6 +-- .../Message/Collection/Synchronized.php | 2 +- .../ResourceModel/Permissions/Collection.php | 2 +- .../Model/ResourceModel/Role.php | 6 +-- .../Model/ResourceModel/Role/Collection.php | 2 +- .../Model/ResourceModel/Rules.php | 6 +-- .../Model/ResourceModel/Rules/Collection.php | 2 +- .../Authorizenet/Model/Authorizenet.php | 4 +- .../Magento/Authorizenet/Model/Directpost.php | 4 +- .../Model/ResourceModel/Debug.php | 2 +- .../Model/ResourceModel/Debug/Collection.php | 2 +- .../Block/Dashboard/AbstractDashboard.php | 2 +- .../Helper/Dashboard/AbstractDashboard.php | 4 +- .../Backup/Model/Config/Backend/Cron.php | 4 +- .../Magento/Braintree/Model/PaymentMethod.php | 4 +- .../Braintree/Model/PaymentMethod/PayPal.php | 4 +- .../Config/Backend/Countrycreditcard.php | 4 +- .../Config/Backend/CountrycreditcardTest.php | 2 +- .../Bundle/Model/ResourceModel/Bundle.php | 6 +-- .../Bundle/Model/ResourceModel/Option.php | 6 +-- .../Model/ResourceModel/Option/Collection.php | 2 +- .../Bundle/Model/ResourceModel/Selection.php | 2 +- .../Sales/Order/Pdf/Items/Creditmemo.php | 4 +- .../Model/Sales/Order/Pdf/Items/Invoice.php | 4 +- .../Model/Sales/Order/Pdf/Items/Shipment.php | 4 +- .../Bundle/Model/Source/Option/Type.php | 4 +- .../Test/Unit/Model/OptionRepositoryTest.php | 2 +- .../Bundle/Test/Unit/Model/OptionTest.php | 4 +- .../Test/Unit/Model/Product/TypeTest.php | 6 +-- .../Captcha/Model/ResourceModel/Log.php | 6 +-- .../Adminhtml/Category/AbstractCategory.php | 2 +- .../Block/Product/ProductList/Toolbar.php | 4 +- .../Block/Product/Widget/Html/Pager.php | 2 +- .../Magento/Catalog/Model/AbstractModel.php | 4 +- app/code/Magento/Catalog/Model/Category.php | 4 +- .../Catalog/Model/Config/Backend/Category.php | 4 +- .../Model/Config/CatalogClone/Media/Image.php | 4 +- .../Model/CustomOptions/CustomOption.php | 2 +- app/code/Magento/Catalog/Model/Design.php | 4 +- .../Catalog/Model/Entity/Attribute.php | 4 +- .../Category/Flat/Plugin/StoreGroup.php | 6 +-- .../Category/Flat/System/Config/Mode.php | 4 +- .../Category/Product/Plugin/StoreGroup.php | 4 +- .../Product/Flat/System/Config/Mode.php | 4 +- .../Price/System/Config/PriceScope.php | 4 +- .../Magento/Catalog/Model/Product/Action.php | 4 +- .../Catalog/Model/Product/Attribute/Group.php | 4 +- .../Catalog/Model/Product/Compare/Item.php | 4 +- .../Magento/Catalog/Model/Product/Image.php | 4 +- .../Magento/Catalog/Model/Product/Link.php | 4 +- .../Magento/Catalog/Model/Product/Option.php | 6 +-- .../Catalog/Model/Product/Option/Value.php | 4 +- .../Catalog/Model/ResourceModel/Attribute.php | 4 +- .../Category/Attribute/Collection.php | 4 +- .../Model/ResourceModel/Category/Flat.php | 4 +- .../Category/Flat/Collection.php | 4 +- .../Catalog/Model/ResourceModel/Config.php | 6 +-- .../Model/ResourceModel/Eav/Attribute.php | 4 +- .../ResourceModel/Layer/Filter/Attribute.php | 2 +- .../ResourceModel/Layer/Filter/Decimal.php | 2 +- .../ResourceModel/Layer/Filter/Price.php | 6 +-- .../Backend/GroupPrice/AbstractGroupPrice.php | 2 +- .../Product/Attribute/Backend/Media.php | 2 +- .../Product/Attribute/Collection.php | 4 +- .../ResourceModel/Product/Collection.php | 2 +- .../ResourceModel/Product/Compare/Item.php | 2 +- .../Model/ResourceModel/Product/Flat.php | 6 +-- .../Product/Indexer/AbstractIndexer.php | 4 +- .../Product/Indexer/Eav/AbstractEav.php | 4 +- .../Product/Indexer/Eav/Source.php | 4 +- .../Product/Indexer/Price/DefaultPrice.php | 4 +- .../Model/ResourceModel/Product/Link.php | 6 +-- .../ResourceModel/Product/Link/Collection.php | 2 +- .../Model/ResourceModel/Product/Option.php | 8 ++-- .../Product/Option/Collection.php | 6 +-- .../ResourceModel/Product/Option/Value.php | 8 ++-- .../Product/Option/Value/Collection.php | 2 +- .../Model/ResourceModel/Product/Relation.php | 2 +- .../Model/ResourceModel/Product/Website.php | 6 +-- .../Catalog/Model/ResourceModel/Url.php | 6 +-- .../Backend/Catalog/Url/Rewrite/Suffix.php | 4 +- .../Catalog/Test/Unit/Model/CategoryTest.php | 2 +- .../Model/CustomOptions/CustomOptionTest.php | 2 +- .../Test/Unit/Model/Entity/AttributeTest.php | 4 +- .../Test/Unit/Model/Product/ActionTest.php | 2 +- .../Product/Attribute/Backend/MediaTest.php | 2 +- .../Test/Unit/Model/Product/LinkTest.php | 4 +- .../Catalog/Test/Unit/Model/ProductTest.php | 2 +- .../Model/ResourceModel/Eav/AttributeTest.php | 2 +- .../Model/ResourceModel/Product/FlatTest.php | 2 +- .../Model/Import/Product.php | 4 +- .../Test/Unit/Model/Import/ProductTest.php | 8 ++-- .../Model/Adminhtml/Stock/Item.php | 4 +- .../Model/Config/Backend/AbstractValue.php | 4 +- .../Indexer/Stock/DefaultStock.php | 4 +- .../Model/ResourceModel/Stock.php | 6 +-- .../Model/ResourceModel/Stock/Item.php | 8 ++-- .../Model/ResourceModel/Stock/Status.php | 6 +-- .../CatalogInventory/Model/Stock/Item.php | 4 +- .../CatalogInventory/Model/Stock/Status.php | 4 +- .../System/Config/Backend/Minsaleqty.php | 4 +- .../Unit/Model/Adminhtml/Stock/ItemTest.php | 2 +- .../CatalogRule/Model/ResourceModel/Rule.php | 6 +-- .../ResourceModel/Rule/Product/Price.php | 2 +- .../Rule/Product/Price/Collection.php | 2 +- app/code/Magento/CatalogRule/Model/Rule.php | 10 ++--- .../CatalogRule/Test/Unit/Model/RuleTest.php | 4 +- .../System/Config/Backend/Engine.php | 4 +- .../Magento/CatalogSearch/Model/Fulltext.php | 2 +- .../Model/ResourceModel/Advanced.php | 6 +-- .../Model/ResourceModel/Fulltext.php | 6 +-- .../Unit/Model/ResourceModel/FulltextTest.php | 4 +- .../Model/ResourceModel/Category/Product.php | 2 +- .../Category/ProductCollection.php | 2 +- app/code/Magento/CatalogWidget/Model/Rule.php | 4 +- .../Checkout/Model/ResourceModel/Cart.php | 2 +- .../Model/ResourceModel/Agreement.php | 6 +-- .../ResourceModel/Agreement/Collection.php | 2 +- .../ResourceModel/AbstractCollection.php | 6 +-- .../Magento/Cms/Model/ResourceModel/Block.php | 6 +-- .../ResourceModel/Block/Grid/Collection.php | 4 +- .../Magento/Cms/Model/ResourceModel/Page.php | 6 +-- .../ResourceModel/Page/Grid/Collection.php | 6 +-- .../Magento/Cms/Test/Unit/Model/PageTest.php | 2 +- .../ResourceModel/AbstractCollectionTest.php | 4 +- .../Model/Config/Backend/Admin/Custom.php | 4 +- .../Model/Config/Backend/Admin/Robots.php | 4 +- .../Model/Config/Backend/Admin/Usecustom.php | 4 +- .../Config/Backend/Admin/Usesecretkey.php | 4 +- .../Config/Model/Config/Backend/Baseurl.php | 4 +- .../Backend/Currency/AbstractCurrency.php | 4 +- .../Model/Config/Backend/Currency/Allow.php | 4 +- .../Model/Config/Backend/Currency/Base.php | 4 +- .../Model/Config/Backend/Currency/Cron.php | 4 +- .../Config/Model/Config/Backend/Encrypted.php | 4 +- .../Config/Model/Config/Backend/File.php | 4 +- .../Model/Config/Backend/Image/Adapter.php | 4 +- .../Config/Model/Config/Backend/Locale.php | 4 +- .../Config/Model/Config/Backend/Log/Cron.php | 4 +- .../Config/Model/Config/Backend/Secure.php | 4 +- .../Config/Model/Config/Backend/Store.php | 4 +- .../Config/Model/Config/Backend/Translate.php | 4 +- .../Config/Model/ResourceModel/Config.php | 6 +-- .../Model/ResourceModel/Config/Data.php | 2 +- .../ResourceModel/Config/Data/Collection.php | 2 +- .../Model/Config/Backend/EncryptedTest.php | 2 +- .../Product/Type/Configurable.php | 6 +-- .../Product/Type/Configurable/Attribute.php | 6 +-- .../Configurable/Attribute/Collection.php | 2 +- .../Model/System/Config/Backend/LinksTest.php | 2 +- .../Cookie/Model/Config/Backend/Domain.php | 4 +- .../Cookie/Model/Config/Backend/Lifetime.php | 4 +- .../Cookie/Model/Config/Backend/Path.php | 4 +- .../Unit/Model/Config/Backend/DomainTest.php | 4 +- .../Model/Config/Backend/Product/Alert.php | 4 +- .../Cron/Model/Config/Backend/Sitemap.php | 4 +- .../Cron/Model/ResourceModel/Schedule.php | 2 +- .../ResourceModel/Schedule/Collection.php | 2 +- app/code/Magento/Cron/Model/Schedule.php | 4 +- app/code/Magento/Customer/Model/Address.php | 4 +- .../Model/Address/AbstractAddress.php | 4 +- app/code/Magento/Customer/Model/Attribute.php | 4 +- .../Model/Config/Backend/Address/Street.php | 4 +- .../DisableAutoGroupAssignDefault.php | 4 +- .../Model/Config/Backend/Show/Customer.php | 4 +- .../Magento/Customer/Model/Config/Share.php | 4 +- app/code/Magento/Customer/Model/Group.php | 4 +- .../Customer/Model/ResourceModel/Address.php | 8 ++-- .../Model/ResourceModel/Address/Relation.php | 2 +- .../Customer/Model/ResourceModel/Customer.php | 8 ++-- .../ResourceModel/Customer/Collection.php | 4 +- .../Model/ResourceModel/Customer/Relation.php | 2 +- .../Customer/Model/ResourceModel/Group.php | 10 ++--- .../Model/ResourceModel/Group/Collection.php | 2 +- .../Customer/Model/ResourceModel/Visitor.php | 6 +-- .../ResourceModel/Visitor/Collection.php | 2 +- app/code/Magento/Customer/Model/Visitor.php | 4 +- .../Test/Unit/Model/AttributeTest.php | 4 +- .../ResourceModel/Address/RelationTest.php | 2 +- .../Unit/Model/ResourceModel/AddressTest.php | 8 ++-- .../Unit/Model/ResourceModel/GroupTest.php | 6 +-- app/code/Magento/Customer/etc/di.xml | 6 +-- .../Import/CustomerComposite/Data.php | 4 +- .../Import/CustomerComposite/DataTest.php | 2 +- .../Model/Config/Backend/AllowedIps.php | 4 +- app/code/Magento/Directory/Model/Country.php | 4 +- app/code/Magento/Directory/Model/Currency.php | 4 +- .../Directory/Model/ResourceModel/Country.php | 2 +- .../ResourceModel/Country/Collection.php | 6 +-- .../Model/ResourceModel/Country/Format.php | 2 +- .../Country/Format/Collection.php | 2 +- .../Model/ResourceModel/Currency.php | 2 +- .../Directory/Model/ResourceModel/Region.php | 6 +-- .../Model/ResourceModel/Region/Collection.php | 6 +-- .../ResourceModel/Country/CollectionTest.php | 2 +- app/code/Magento/Downloadable/Model/Link.php | 4 +- .../Downloadable/Model/ResourceModel/Link.php | 6 +-- .../Model/ResourceModel/Link/Collection.php | 2 +- .../Model/ResourceModel/Link/Purchased.php | 2 +- .../Link/Purchased/Collection.php | 2 +- .../ResourceModel/Link/Purchased/Item.php | 2 +- .../Link/Purchased/Item/Collection.php | 2 +- .../Model/ResourceModel/Sample.php | 2 +- .../Model/ResourceModel/Sample/Collection.php | 2 +- .../Sales/Order/Pdf/Items/AbstractItems.php | 4 +- .../Sales/Order/Pdf/Items/Creditmemo.php | 4 +- .../Model/Sales/Order/Pdf/Items/Invoice.php | 4 +- .../Magento/Downloadable/Model/Sample.php | 4 +- .../Eav/Model/Entity/AbstractEntity.php | 6 +-- .../Magento/Eav/Model/Entity/Attribute.php | 4 +- .../Entity/Attribute/AbstractAttribute.php | 4 +- .../Eav/Model/Entity/Attribute/Set.php | 6 +-- .../Entity/Collection/AbstractCollection.php | 2 +- .../VersionControl/AbstractCollection.php | 6 +-- app/code/Magento/Eav/Model/Entity/Context.php | 16 +++---- app/code/Magento/Eav/Model/Entity/Type.php | 6 +-- .../Entity/VersionControl/AbstractEntity.php | 12 +++--- .../Model/Entity/VersionControl/Metadata.php | 2 +- app/code/Magento/Eav/Model/Form/Element.php | 4 +- app/code/Magento/Eav/Model/Form/Fieldset.php | 4 +- app/code/Magento/Eav/Model/Form/Type.php | 4 +- .../ResourceModel/Attribute/Collection.php | 4 +- .../Eav/Model/ResourceModel/Config.php | 2 +- .../Model/ResourceModel/Entity/Attribute.php | 6 +-- .../Entity/Attribute/Collection.php | 8 ++-- .../Entity/Attribute/Grid/Collection.php | 8 ++-- .../ResourceModel/Entity/Attribute/Group.php | 6 +-- .../Entity/Attribute/Group/Collection.php | 2 +- .../ResourceModel/Entity/Attribute/Option.php | 2 +- .../Entity/Attribute/Option/Collection.php | 6 +-- .../ResourceModel/Entity/Attribute/Set.php | 6 +-- .../Entity/Attribute/Set/Collection.php | 2 +- .../Eav/Model/ResourceModel/Entity/Store.php | 2 +- .../Eav/Model/ResourceModel/Entity/Type.php | 2 +- .../ResourceModel/Entity/Type/Collection.php | 2 +- .../Model/ResourceModel/Form/Attribute.php | 2 +- .../Form/Attribute/Collection.php | 6 +-- .../Eav/Model/ResourceModel/Form/Element.php | 2 +- .../ResourceModel/Form/Element/Collection.php | 2 +- .../Eav/Model/ResourceModel/Form/Fieldset.php | 2 +- .../Form/Fieldset/Collection.php | 4 +- .../Eav/Model/ResourceModel/Form/Type.php | 4 +- .../ResourceModel/Form/Type/Collection.php | 2 +- .../VersionControl/AbstractCollectionTest.php | 4 +- .../Eav/Test/Unit/Model/Entity/TypeTest.php | 2 +- .../VersionControl/AbstractEntityTest.php | 8 ++-- .../Entity/VersionControl/MetadataTest.php | 2 +- .../Attribute/CollectionTest.php | 4 +- .../Attribute/Option/CollectionTest.php | 4 +- .../Entity/Attribute/SetTest.php | 6 +-- .../ResourceModel/Entity/AttributeTest.php | 4 +- .../Email/Model/ResourceModel/Template.php | 6 +-- .../ResourceModel/Template/Collection.php | 2 +- .../Model/ResourceModel/Key/Change.php | 6 +-- .../Model/ResourceModel/Key/ChangeTest.php | 6 +-- .../Model/ResourceModel/Message.php | 2 +- .../ResourceModel/Message/Collection.php | 2 +- .../Config/Backend/AbstractConversion.php | 4 +- .../Model/ResourceModel/Code.php | 2 +- .../Model/ResourceModel/History.php | 2 +- .../ResourceModel/History/Collection.php | 2 +- .../Model/ResourceModel/Import/Data.php | 6 +-- .../Model/ResourceModel/AbstractResource.php | 6 +-- .../Model/ResourceModel/Indexer/State.php | 2 +- .../Indexer/State/Collection.php | 2 +- .../Model/ResourceModel/Mview/View/State.php | 2 +- .../Mview/View/State/Collection.php | 2 +- .../Magento/Integration/Model/Integration.php | 4 +- .../Integration/Model/Oauth/Consumer.php | 4 +- .../Magento/Integration/Model/Oauth/Nonce.php | 4 +- .../Magento/Integration/Model/Oauth/Token.php | 4 +- .../Model/ResourceModel/Integration.php | 2 +- .../ResourceModel/Integration/Collection.php | 2 +- .../Model/ResourceModel/Oauth/Consumer.php | 6 +-- .../Oauth/Consumer/Collection.php | 2 +- .../Model/ResourceModel/Oauth/Nonce.php | 2 +- .../ResourceModel/Oauth/Nonce/Collection.php | 2 +- .../Model/ResourceModel/Oauth/Token.php | 6 +-- .../ResourceModel/Oauth/Token/Collection.php | 2 +- .../Test/Unit/Model/IntegrationTest.php | 4 +- .../Test/Unit/Model/Oauth/ConsumerTest.php | 2 +- .../Test/Unit/Model/Oauth/NonceTest.php | 4 +- .../Test/Unit/Model/Oauth/TokenTest.php | 4 +- .../Integration/CollectionTest.php | 2 +- .../Model/ResourceModel/IntegrationTest.php | 4 +- .../ResourceModel/Oauth/ConsumerTest.php | 2 +- .../Model/ResourceModel/Oauth/NonceTest.php | 2 +- .../Oauth/Token/CollectionTest.php | 2 +- .../Model/ResourceModel/Oauth/TokenTest.php | 2 +- .../Config/Backend/Storage/Media/Database.php | 4 +- .../MediaStorage/Model/File/Storage.php | 4 +- .../Storage/Database/AbstractDatabase.php | 6 +-- .../File/Storage/AbstractStorage.php | 2 +- .../ResourceModel/File/Storage/Database.php | 4 +- .../Unit/Helper/File/Storage/DatabaseTest.php | 4 +- .../Model/ResourceModel/Counts.php | 2 +- .../Model/ResourceModel/Counts/Collection.php | 2 +- .../Model/ResourceModel/Module.php | 2 +- .../Model/ResourceModel/Module/Collection.php | 2 +- .../Model/ResourceModel/Orders.php | 2 +- .../Model/ResourceModel/Orders/Collection.php | 2 +- .../Model/ResourceModel/System.php | 2 +- .../Model/ResourceModel/System/Collection.php | 2 +- .../Model/ResourceModel/Users.php | 2 +- .../Model/ResourceModel/Users/Collection.php | 2 +- app/code/Magento/Newsletter/Model/Problem.php | 4 +- app/code/Magento/Newsletter/Model/Queue.php | 4 +- .../Model/ResourceModel/Grid/Collection.php | 2 +- .../Model/ResourceModel/Problem.php | 2 +- .../ResourceModel/Problem/Collection.php | 6 +-- .../Newsletter/Model/ResourceModel/Queue.php | 6 +-- .../Model/ResourceModel/Queue/Collection.php | 6 +-- .../Model/ResourceModel/Subscriber.php | 6 +-- .../ResourceModel/Subscriber/Collection.php | 6 +-- .../Model/ResourceModel/Template.php | 6 +-- .../ResourceModel/Template/Collection.php | 2 +- .../Magento/Newsletter/Model/Subscriber.php | 4 +- .../Model/Config/Backend/Tablerate.php | 4 +- .../Model/ResourceModel/Carrier/Tablerate.php | 6 +-- .../Carrier/Tablerate/Collection.php | 2 +- app/code/Magento/Payment/Model/Info.php | 4 +- .../Payment/Model/Method/AbstractMethod.php | 4 +- app/code/Magento/Payment/Model/Method/Cc.php | 4 +- .../Magento/Payment/Model/Method/Free.php | 4 +- .../Model/Billing/AbstractAgreement.php | 4 +- .../Paypal/Model/Billing/Agreement.php | 4 +- app/code/Magento/Paypal/Model/Cert.php | 4 +- app/code/Magento/Paypal/Model/Direct.php | 4 +- app/code/Magento/Paypal/Model/Express.php | 4 +- app/code/Magento/Paypal/Model/Hostedpro.php | 4 +- .../Magento/Paypal/Model/Method/Agreement.php | 4 +- .../Paypal/Model/Payflow/Transparent.php | 4 +- .../Magento/Paypal/Model/PayflowExpress.php | 4 +- app/code/Magento/Paypal/Model/Payflowlink.php | 4 +- app/code/Magento/Paypal/Model/Payflowpro.php | 4 +- .../Method/Billing/AbstractAgreement.php | 4 +- .../Paypal/Model/Report/Settlement.php | 4 +- .../Model/ResourceModel/Billing/Agreement.php | 2 +- .../Billing/Agreement/Collection.php | 6 +-- .../Paypal/Model/ResourceModel/Cert.php | 8 ++-- .../Model/ResourceModel/Report/Settlement.php | 6 +-- .../ResourceModel/Report/Settlement/Row.php | 2 +- .../Report/Settlement/Row/Collection.php | 2 +- .../Model/System/Config/Backend/Cert.php | 4 +- .../Model/System/Config/Backend/Cron.php | 4 +- .../System/Config/Backend/MerchantCountry.php | 4 +- .../Model/ResourceModel/Session.php | 6 +-- app/code/Magento/Persistent/Model/Session.php | 4 +- .../Test/Unit/Model/SessionTest.php | 2 +- app/code/Magento/ProductAlert/Model/Email.php | 4 +- app/code/Magento/ProductAlert/Model/Price.php | 4 +- .../Model/ResourceModel/AbstractResource.php | 2 +- .../Model/ResourceModel/Price.php | 4 +- .../Model/ResourceModel/Price/Collection.php | 2 +- .../Model/ResourceModel/Stock.php | 4 +- .../Model/ResourceModel/Stock/Collection.php | 2 +- app/code/Magento/ProductAlert/Model/Stock.php | 4 +- app/code/Magento/Quote/Model/Quote.php | 4 +- .../Magento/Quote/Model/Quote/Address.php | 8 ++-- .../Quote/Model/Quote/Address/Relation.php | 2 +- app/code/Magento/Quote/Model/Quote/Item.php | 4 +- .../Quote/Model/Quote/Item/AbstractItem.php | 4 +- .../Magento/Quote/Model/Quote/Payment.php | 4 +- .../Magento/Quote/Model/Quote/Relation.php | 2 +- app/code/Magento/Quote/Model/QuoteIdMask.php | 4 +- .../Quote/Model/ResourceModel/Quote.php | 10 ++--- .../Model/ResourceModel/Quote/Address.php | 2 +- .../Quote/Address/Collection.php | 2 +- .../ResourceModel/Quote/Address/Item.php | 2 +- .../Quote/Address/Item/Collection.php | 2 +- .../ResourceModel/Quote/Address/Rate.php | 2 +- .../Quote/Address/Rate/Collection.php | 10 ++--- .../Model/ResourceModel/Quote/Collection.php | 2 +- .../Quote/Model/ResourceModel/Quote/Item.php | 2 +- .../ResourceModel/Quote/Item/Collection.php | 10 ++--- .../Model/ResourceModel/Quote/Item/Option.php | 2 +- .../Quote/Item/Option/Collection.php | 2 +- .../Model/ResourceModel/Quote/Payment.php | 2 +- .../Quote/Payment/Collection.php | 10 ++--- .../Model/ResourceModel/Quote/QuoteIdMask.php | 2 +- .../Unit/Model/Quote/Address/RelationTest.php | 4 +- .../Quote/Item/CollectionTest.php | 8 ++-- .../Model/ResourceModel/Quote/ItemTest.php | 16 +++---- .../ResourceModel/Quote/QuoteAddressTest.php | 8 ++-- app/code/Magento/Quote/etc/di.xml | 4 +- app/code/Magento/Reports/Model/Event.php | 4 +- .../Reports/Model/Grouped/Collection.php | 2 +- .../Model/Product/Index/AbstractIndex.php | 4 +- .../Reports/Model/Product/Index/Compared.php | 4 +- .../ResourceModel/Customer/Collection.php | 4 +- .../Reports/Model/ResourceModel/Event.php | 6 +-- .../Model/ResourceModel/Event/Collection.php | 2 +- .../Model/ResourceModel/Event/Type.php | 2 +- .../ResourceModel/Event/Type/Collection.php | 2 +- .../Model/ResourceModel/Order/Collection.php | 8 ++-- .../Product/Index/AbstractIndex.php | 8 ++-- .../Model/ResourceModel/Quote/Collection.php | 8 ++-- .../ResourceModel/Quote/Item/Collection.php | 6 +-- .../ResourceModel/Report/AbstractReport.php | 6 +-- .../Model/ResourceModel/Report/Collection.php | 2 +- .../Report/Collection/AbstractCollection.php | 2 +- .../Report/Collection/Factory.php | 2 +- .../ResourceModel/Report/Product/Viewed.php | 4 +- .../Review/Customer/Collection.php | 4 +- .../ResourceModel/Wishlist/Collection.php | 6 +-- .../Unit/Model/Product/Index/ComparedTest.php | 4 +- .../ResourceModel/Event/CollectionTest.php | 4 +- .../Unit/Model/ResourceModel/EventTest.php | 4 +- .../ResourceModel/Order/CollectionTest.php | 6 +-- .../ResourceModel/Quote/CollectionTest.php | 4 +- .../Collection/AbstractCollectionTest.php | 2 +- .../Report/Product/ViewedTest.php | 4 +- app/code/Magento/Review/Model/Rating.php | 4 +- .../Review/Model/ResourceModel/Rating.php | 6 +-- .../Model/ResourceModel/Rating/Collection.php | 6 +-- .../Model/ResourceModel/Rating/Entity.php | 2 +- .../ResourceModel/Rating/Grid/Collection.php | 4 +- .../Model/ResourceModel/Rating/Option.php | 6 +-- .../Rating/Option/Collection.php | 2 +- .../ResourceModel/Rating/Option/Vote.php | 2 +- .../Rating/Option/Vote/Collection.php | 6 +-- .../Review/Model/ResourceModel/Review.php | 6 +-- .../Model/ResourceModel/Review/Collection.php | 6 +-- .../Model/ResourceModel/Review/Status.php | 2 +- .../Review/Status/Collection.php | 2 +- .../Model/ResourceModel/Review/Summary.php | 2 +- .../Review/Summary/Collection.php | 2 +- app/code/Magento/Review/Model/Review.php | 4 +- .../Magento/Review/Model/Review/Status.php | 4 +- app/code/Magento/Review/Model/Rss.php | 2 +- .../ResourceModel/Review/CollectionTest.php | 4 +- .../Review/Summary/CollectionTest.php | 4 +- .../Rss/Model/System/Config/Backend/Links.php | 4 +- app/code/Magento/Rule/Model/AbstractModel.php | 4 +- .../Model/ResourceModel/AbstractResource.php | 2 +- .../Rule/Collection/AbstractCollection.php | 2 +- .../Collection/AbstractCollectionTest.php | 4 +- .../AbstractCreditmemo/Pdfcreditmemos.php | 2 +- .../Invoice/AbstractInvoice/Pdfinvoices.php | 2 +- .../Adminhtml/Order/AbstractMassAction.php | 2 +- .../Controller/Adminhtml/Order/MassCancel.php | 2 +- .../Controller/Adminhtml/Order/MassHold.php | 2 +- .../Controller/Adminhtml/Order/MassUnhold.php | 2 +- .../Adminhtml/Order/Pdfcreditmemos.php | 2 +- .../Controller/Adminhtml/Order/Pdfdocs.php | 2 +- .../Adminhtml/Order/Pdfinvoices.php | 2 +- .../Adminhtml/Order/Pdfshipments.php | 2 +- .../AbstractShipment/Pdfshipments.php | 2 +- app/code/Magento/Sales/Helper/Admin.php | 4 +- .../Magento/Sales/Model/AbstractModel.php | 4 +- app/code/Magento/Sales/Model/Order.php | 4 +- .../Magento/Sales/Model/Order/Address.php | 4 +- .../Magento/Sales/Model/Order/Creditmemo.php | 4 +- .../Sales/Model/Order/Creditmemo/Comment.php | 4 +- .../Sales/Model/Order/Creditmemo/Item.php | 4 +- .../Magento/Sales/Model/Order/Invoice.php | 4 +- .../Sales/Model/Order/Invoice/Comment.php | 4 +- .../Sales/Model/Order/Invoice/Item.php | 4 +- app/code/Magento/Sales/Model/Order/Item.php | 4 +- .../Magento/Sales/Model/Order/Payment.php | 4 +- .../Sales/Model/Order/Payment/Info.php | 4 +- .../Sales/Model/Order/Payment/Transaction.php | 4 +- .../Model/Order/Pdf/Items/AbstractItems.php | 4 +- .../Items/Creditmemo/DefaultCreditmemo.php | 4 +- .../Pdf/Items/Invoice/DefaultInvoice.php | 4 +- .../Pdf/Items/Shipment/DefaultShipment.php | 4 +- .../Magento/Sales/Model/Order/Shipment.php | 4 +- .../Sales/Model/Order/Shipment/Comment.php | 4 +- .../Sales/Model/Order/Shipment/Item.php | 4 +- .../Sales/Model/Order/Shipment/Track.php | 4 +- app/code/Magento/Sales/Model/Order/Status.php | 4 +- .../Sales/Model/Order/Status/History.php | 4 +- .../Model/ResourceModel/AbstractGrid.php | 2 +- .../Collection/AbstractCollection.php | 2 +- .../Model/ResourceModel/EntityAbstract.php | 10 ++--- .../Sales/Model/ResourceModel/Grid.php | 2 +- .../Model/ResourceModel/Grid/Collection.php | 8 ++-- .../Sales/Model/ResourceModel/Metadata.php | 2 +- .../Sales/Model/ResourceModel/Order.php | 8 ++-- .../Model/ResourceModel/Order/Address.php | 12 +++--- .../Model/ResourceModel/Order/Collection.php | 8 ++-- .../Model/ResourceModel/Order/Creditmemo.php | 2 +- .../Order/Creditmemo/Comment.php | 10 ++--- .../Order/Creditmemo/Relation.php | 2 +- .../Order/Creditmemo/Relation/Refund.php | 2 +- .../Model/ResourceModel/Order/Invoice.php | 2 +- .../ResourceModel/Order/Invoice/Comment.php | 10 ++--- .../ResourceModel/Order/Invoice/Relation.php | 2 +- .../Order/Payment/Collection.php | 8 ++-- .../Model/ResourceModel/Order/Relation.php | 2 +- .../ResourceModel/Order/Shipment/Comment.php | 10 ++--- .../ResourceModel/Order/Shipment/Relation.php | 2 +- .../ResourceModel/Order/Shipment/Track.php | 10 ++--- .../Model/ResourceModel/Order/Status.php | 4 +- .../ResourceModel/Order/Status/History.php | 10 ++--- .../Model/ResourceModel/Order/Tax/Item.php | 2 +- .../ResourceModel/Report/Bestsellers.php | 4 +- .../Report/Bestsellers/Collection.php | 2 +- .../Model/ResourceModel/Report/Order.php | 4 +- .../Model/ResourceModel/Sale/Collection.php | 2 +- .../Transaction/Grid/Collection.php | 8 ++-- .../Sales/Test/Unit/Helper/AdminTest.php | 2 +- .../Model/Order/AddressRepositoryTest.php | 10 ++--- .../Unit/Model/Order/ItemRepositoryTest.php | 6 +-- .../Model/Order/ShipmentRepositoryTest.php | 10 ++--- .../Model/ResourceModel/Order/AddressTest.php | 4 +- .../Order/Creditmemo/CommentTest.php | 8 ++-- .../Order/Invoice/CommentTest.php | 8 ++-- .../Order/Shipment/CommentTest.php | 8 ++-- .../Order/Shipment/TrackTest.php | 8 ++-- .../Order/Status/History/CollectionTest.php | 6 +-- .../Order/Status/HistoryTest.php | 8 ++-- .../Unit/Model/ResourceModel/OrderTest.php | 14 +++---- app/code/Magento/Sales/etc/di.xml | 8 ++-- .../SalesRule/Model/Coupon/Massgenerator.php | 4 +- .../SalesRule/Model/ResourceModel/Coupon.php | 2 +- .../Model/ResourceModel/Coupon/Collection.php | 2 +- .../Model/ResourceModel/Coupon/Usage.php | 2 +- .../Model/ResourceModel/Report/Rule.php | 4 +- .../SalesRule/Model/ResourceModel/Rule.php | 4 +- .../Model/ResourceModel/Rule/Collection.php | 4 +- .../Model/ResourceModel/Rule/Customer.php | 2 +- .../Rule/Customer/Collection.php | 2 +- app/code/Magento/SalesRule/Model/Rule.php | 4 +- .../Magento/SalesRule/Model/Validator.php | 4 +- .../Unit/Model/ResourceModel/RuleTest.php | 2 +- .../Model/ResourceModel/Meta.php | 4 +- .../Model/ResourceModel/Profile.php | 4 +- .../Unit/Model/ResourceModel/MetaTest.php | 4 +- .../Unit/Model/ResourceModel/ProfileTest.php | 4 +- app/code/Magento/Search/Model/Query.php | 4 +- .../Search/Model/ResourceModel/Query.php | 8 ++-- .../Model/ResourceModel/Query/Collection.php | 6 +-- .../Unit/Model/ResourceModel/QueryTest.php | 2 +- .../Model/ResourceModel/SendFriend.php | 2 +- .../ResourceModel/SendFriend/Collection.php | 2 +- .../Magento/SendFriend/Model/SendFriend.php | 4 +- .../Order/Shipment/MassPrintShippingLabel.php | 2 +- .../Shipment/MassPrintShippingLabel.php | 2 +- .../Magento/Shipping/Model/Order/Track.php | 4 +- .../Model/ResourceModel/Catalog/Category.php | 6 +-- .../Model/ResourceModel/Catalog/Product.php | 6 +-- .../Sitemap/Model/ResourceModel/Cms/Page.php | 2 +- .../Sitemap/Model/ResourceModel/Sitemap.php | 2 +- .../ResourceModel/Sitemap/Collection.php | 2 +- app/code/Magento/Sitemap/Model/Sitemap.php | 4 +- app/code/Magento/Store/Model/Group.php | 4 +- .../Config/Collection/Scoped.php | 2 +- .../Store/Model/ResourceModel/Group.php | 2 +- .../Model/ResourceModel/Group/Collection.php | 2 +- .../Store/Model/ResourceModel/Store.php | 6 +-- .../Model/ResourceModel/Store/Collection.php | 2 +- .../Store/Model/ResourceModel/Website.php | 2 +- .../ResourceModel/Website/Collection.php | 2 +- app/code/Magento/Store/Model/Website.php | 4 +- .../Swatches/Model/ResourceModel/Swatch.php | 2 +- .../Model/ResourceModel/Swatch/Collection.php | 2 +- .../Magento/Tax/Model/Calculation/Rate.php | 4 +- .../Magento/Tax/Model/Calculation/Rule.php | 4 +- app/code/Magento/Tax/Model/ClassModel.php | 4 +- .../Magento/Tax/Model/Config/Notification.php | 4 +- .../Magento/Tax/Model/Config/TaxClass.php | 4 +- .../Tax/Model/ResourceModel/Calculation.php | 6 +-- .../ResourceModel/Calculation/Collection.php | 2 +- .../Model/ResourceModel/Calculation/Rate.php | 2 +- .../Calculation/Rate/Collection.php | 6 +-- .../ResourceModel/Calculation/Rate/Title.php | 2 +- .../Calculation/Rate/Title/Collection.php | 2 +- .../Model/ResourceModel/Calculation/Rule.php | 2 +- .../Calculation/Rule/Collection.php | 2 +- .../Tax/Model/ResourceModel/Report/Tax.php | 4 +- .../Model/ResourceModel/Sales/Order/Tax.php | 2 +- .../Sales/Order/Tax/Collection.php | 2 +- .../Tax/Model/ResourceModel/TaxClass.php | 2 +- .../ResourceModel/TaxClass/Collection.php | 2 +- .../Tax/Model/TaxClass/AbstractType.php | 2 +- .../Tax/Model/TaxClass/Type/TypeInterface.php | 2 +- .../Test/Unit/Model/Calculation/RateTest.php | 2 +- .../Test/Unit/Model/Config/TaxClassTest.php | 2 +- .../Unit/Model/TaxClass/Type/ProductTest.php | 2 +- app/code/Magento/Theme/Model/Design.php | 2 +- .../Theme/Model/Design/Backend/Exceptions.php | 4 +- .../Theme/Model/Design/Backend/Theme.php | 4 +- .../Theme/Model/ResourceModel/Design.php | 7 ++-- .../Model/ResourceModel/Design/Collection.php | 6 +-- .../Theme/Model/ResourceModel/Theme.php | 2 +- .../Model/ResourceModel/Theme/Collection.php | 2 +- .../Theme/Customization/Update.php | 2 +- .../Theme/Model/ResourceModel/Theme/File.php | 2 +- .../ResourceModel/Theme/File/Collection.php | 2 +- app/code/Magento/Theme/Model/Theme/File.php | 4 +- .../Theme/Test/Unit/Model/DesignTest.php | 2 +- .../Model/ResourceModel/StringUtils.php | 6 +-- .../Model/ResourceModel/Translate.php | 6 +-- .../Ui/DataProvider/AbstractDataProvider.php | 2 +- .../Ui/Model/ResourceModel/Bookmark.php | 6 +-- .../ResourceModel/Bookmark/Collection.php | 2 +- .../Model/ResourceModel/UrlRewrite.php | 2 +- .../ResourceModel/UrlRewriteCollection.php | 6 +-- .../UrlRewriteCollectionTest.php | 4 +- .../ResourceModel/Role/User/Collection.php | 2 +- .../Magento/User/Model/ResourceModel/User.php | 6 +-- .../Model/ResourceModel/User/Collection.php | 2 +- .../ResourceModel/User/Locked/Collection.php | 2 +- app/code/Magento/User/Model/User.php | 4 +- .../Unit/Model/ResourceModel/UserTest.php | 2 +- .../Variable/Model/ResourceModel/Variable.php | 2 +- .../ResourceModel/Variable/Collection.php | 2 +- .../Attribute/Backend/Weee/Tax.php | 6 +-- .../Magento/Weee/Model/ResourceModel/Tax.php | 6 +-- .../Attribute/Backend/Weee/TaxTest.php | 2 +- .../Test/Unit/Model/ResourceModel/TaxTest.php | 2 +- .../Magento/Widget/Model/Layout/Update.php | 4 +- .../Model/ResourceModel/Layout/Link.php | 2 +- .../ResourceModel/Layout/Link/Collection.php | 6 +-- .../Model/ResourceModel/Layout/Update.php | 6 +-- .../Layout/Update/Collection.php | 6 +-- .../Widget/Model/ResourceModel/Widget.php | 2 +- .../Model/ResourceModel/Widget/Instance.php | 2 +- .../Widget/Instance/Collection.php | 2 +- .../Magento/Widget/Model/Widget/Instance.php | 4 +- .../ResourceModel/Layout/AbstractTestCase.php | 4 +- app/code/Magento/Wishlist/Model/Item.php | 4 +- .../Wishlist/Model/ResourceModel/Item.php | 2 +- .../Model/ResourceModel/Item/Collection.php | 2 +- .../Model/ResourceModel/Item/Option.php | 2 +- .../ResourceModel/Item/Option/Collection.php | 2 +- .../Wishlist/Model/ResourceModel/Wishlist.php | 2 +- .../ResourceModel/Wishlist/Collection.php | 2 +- app/etc/di.xml | 6 +-- .../TestModule4/Model/ResourceModel/Item.php | 2 +- .../Model/ResourceModel/Item.php | 2 +- .../Repository/RepositoryResource.php | 4 +- .../Generate/Repository/TableCollection.php | 6 +-- .../TestFramework/Db/ConnectionAdapter.php | 2 +- .../Model/ModelResource/Db/AbstractTest.php | 12 +++--- .../Db/Collection/AbstractTest.php | 10 ++--- .../Model/ModelResource/Db/ProfilerTest.php | 14 +++---- .../Model/ModelResource/Entity/TableTest.php | 6 +-- .../Model/ModelResource/IteratorTest.php | 6 +-- .../Type/Db/ConnectionFactoryTest.php | 2 +- .../ModelResource/Type/Db/Pdo/MysqlTest.php | 6 +-- .../Magento/Framework/Model/ResourceTest.php | 8 ++-- .../ResourceModel/Store/CollectionTest.php | 12 +++--- .../testsuite/Magento/User/Model/UserTest.php | 2 +- .../Test/Legacy/_files/obsolete_classes.php | 22 +++++----- .../Test/Legacy/_files/obsolete_constants.php | 2 +- .../Test/Legacy/_files/obsolete_methods.php | 16 +++---- .../Legacy/_files/obsolete_namespaces.php | 5 ++- .../Legacy/_files/obsolete_properties.php | 2 +- .../Magento/Framework/App/Config/Value.php | 6 +-- .../Framework/App/ResourceConnection.php | 2 +- .../ResourceConnection/ConnectionFactory.php | 2 +- .../App/Test/Unit/AclResourceTest.php | 2 +- .../Magento/Framework/DB/AbstractMapper.php | 4 +- .../Magento/Framework/DB/MapperInterface.php | 2 +- lib/internal/Magento/Framework/DB/Query.php | 8 ++-- .../Magento/Framework/DB/QueryBuilder.php | 6 +-- .../Magento/Framework/DB/QueryInterface.php | 2 +- .../DB/Test/Unit/AbstractMapperTest.php | 4 +- .../Framework/DB/Test/Unit/QueryTest.php | 4 +- .../Framework/Data/Collection/AbstractDb.php | 2 +- .../Test/Unit/Collection/DbCollection.php | 8 ++-- .../Magento/Framework/Flag/FlagResource.php | 2 +- .../Model/AbstractExtensibleModel.php | 4 +- .../Magento/Framework/Model/AbstractModel.php | 16 +++---- .../AbstractResource.php | 2 +- .../Db/AbstractDb.php | 8 ++-- .../Db/Collection/AbstractCollection.php | 10 ++--- .../Db/Context.php | 2 +- .../Db/ObjectRelationProcessor.php | 2 +- .../Db/Profiler.php | 6 +-- .../Db/TransactionManager.php | 2 +- .../Db/TransactionManagerInterface.php | 2 +- .../Db/VersionControl/AbstractDb.php | 8 ++-- .../Db/VersionControl/Collection.php | 8 ++-- .../Db/VersionControl/Metadata.php | 2 +- .../Db/VersionControl/RelationComposite.php | 2 +- .../Db/VersionControl/RelationInterface.php | 2 +- .../Db/VersionControl/Snapshot.php | 2 +- .../Entity/AbstractEntity.php | 2 +- .../Entity/Table.php | 4 +- .../Iterator.php | 4 +- .../Type/AbstractType.php | 4 +- .../Type/Db.php | 6 +-- .../Type/Db/ConnectionFactory.php | 2 +- .../Type/Db/ConnectionFactoryInterface.php | 2 +- .../Type/Db/Pdo/Mysql.php | 4 +- .../Test/Unit/AbstractExtensibleModelTest.php | 4 +- .../Model/Test/Unit/AbstractModelTest.php | 4 +- .../Db/AbstractDbTest.php | 42 +++++++++---------- .../Db/Collection/AbstractCollectionTest.php | 10 ++--- .../Db/VersionControl/MetadataTest.php | 8 ++-- .../VersionControl/RelationCompositeTest.php | 10 ++--- .../Db/VersionControl/SnapshotTest.php | 10 ++--- .../Type/Db/ConnectionFactoryTest.php | 4 +- .../Type/Db/Pdo/MysqlTest.php | 4 +- .../Framework/Module/ModuleResource.php | 2 +- .../Magento/Framework/Test/Unit/FlagTest.php | 2 +- .../Unit/Helper/ObjectManager.php | 2 +- .../DataProvider/CollectionFactory.php | 2 +- .../DataProvider/DataProviderInterface.php | 2 +- .../DataProvider/FulltextFilter.php | 2 +- .../UiComponent/DataProvider/SearchResult.php | 2 +- setup/src/Magento/Setup/Model/Installer.php | 2 +- .../Magento/Setup/Model/InstallerFactory.php | 6 +-- .../Setup/Module/ConnectionFactory.php | 4 +- .../Fixtures/CartPriceRulesFixtureTest.php | 4 +- .../Fixtures/CatalogPriceRulesFixtureTest.php | 4 +- .../ConfigurableProductsFixtureTest.php | 4 +- .../Test/Unit/Fixtures/OrdersFixtureTest.php | 4 +- .../Fixtures/SimpleProductsFixtureTest.php | 4 +- .../Test/Unit/Model/InstallerFactoryTest.php | 8 ++-- .../Setup/Test/Unit/Model/InstallerTest.php | 4 +- 720 files changed, 1469 insertions(+), 1471 deletions(-) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/AbstractResource.php (99%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/AbstractDb.php (98%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/Collection/AbstractCollection.php (97%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/Context.php (96%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/ObjectRelationProcessor.php (95%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/Profiler.php (94%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/TransactionManager.php (96%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/TransactionManagerInterface.php (91%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/VersionControl/AbstractDb.php (86%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/VersionControl/Collection.php (85%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/VersionControl/Metadata.php (94%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/VersionControl/RelationComposite.php (95%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/VersionControl/RelationInterface.php (86%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/VersionControl/Snapshot.php (96%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Entity/AbstractEntity.php (94%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Entity/Table.php (73%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Iterator.php (94%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Type/AbstractType.php (83%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Type/Db.php (50%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Type/Db/ConnectionFactory.php (95%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Type/Db/ConnectionFactoryInterface.php (88%) rename lib/internal/Magento/Framework/Model/{ModelResource => ResourceModel}/Type/Db/Pdo/Mysql.php (95%) rename lib/internal/Magento/Framework/Model/Test/Unit/{ModelResource => ResourceModel}/Db/AbstractDbTest.php (92%) rename lib/internal/Magento/Framework/Model/Test/Unit/{ModelResource => ResourceModel}/Db/Collection/AbstractCollectionTest.php (97%) rename lib/internal/Magento/Framework/Model/Test/Unit/{ModelResource => ResourceModel}/Db/VersionControl/MetadataTest.php (91%) rename lib/internal/Magento/Framework/Model/Test/Unit/{ModelResource => ResourceModel}/Db/VersionControl/RelationCompositeTest.php (88%) rename lib/internal/Magento/Framework/Model/Test/Unit/{ModelResource => ResourceModel}/Db/VersionControl/SnapshotTest.php (90%) rename lib/internal/Magento/Framework/Model/Test/Unit/{ModelResource => ResourceModel}/Type/Db/ConnectionFactoryTest.php (93%) rename lib/internal/Magento/Framework/Model/Test/Unit/{ModelResource => ResourceModel}/Type/Db/Pdo/MysqlTest.php (96%) diff --git a/app/code/Magento/AdminNotification/Model/Feed.php b/app/code/Magento/AdminNotification/Model/Feed.php index 0b4a38a7a6a..d6b90c44cff 100644 --- a/app/code/Magento/AdminNotification/Model/Feed.php +++ b/app/code/Magento/AdminNotification/Model/Feed.php @@ -72,7 +72,7 @@ class Feed extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\App\DeploymentConfig $deploymentConfig * @param \Magento\Framework\App\ProductMetadataInterface $productMetadata * @param \Magento\Framework\UrlInterface $urlBuilder - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -86,7 +86,7 @@ class Feed extends \Magento\Framework\Model\AbstractModel \Magento\Framework\App\DeploymentConfig $deploymentConfig, \Magento\Framework\App\ProductMetadataInterface $productMetadata, \Magento\Framework\UrlInterface $urlBuilder, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/AdminNotification/Model/ResourceModel/Grid/Collection.php b/app/code/Magento/AdminNotification/Model/ResourceModel/Grid/Collection.php index 548cb6dc446..496e94ac27d 100644 --- a/app/code/Magento/AdminNotification/Model/ResourceModel/Grid/Collection.php +++ b/app/code/Magento/AdminNotification/Model/ResourceModel/Grid/Collection.php @@ -18,7 +18,7 @@ class Collection extends \Magento\AdminNotification\Model\ResourceModel\Inbox\Co /** * Add remove filter * - * @return \Magento\AdminNotification\Model\ResourceModel\Grid\Collection|\Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return \Magento\AdminNotification\Model\ResourceModel\Grid\Collection|\Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ protected function _initSelect() { diff --git a/app/code/Magento/AdminNotification/Model/ResourceModel/Inbox.php b/app/code/Magento/AdminNotification/Model/ResourceModel/Inbox.php index 76ebfa2ed61..44b5d1d0cca 100644 --- a/app/code/Magento/AdminNotification/Model/ResourceModel/Inbox.php +++ b/app/code/Magento/AdminNotification/Model/ResourceModel/Inbox.php @@ -10,7 +10,7 @@ namespace Magento\AdminNotification\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Inbox extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Inbox extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * AdminNotification Resource initialization diff --git a/app/code/Magento/AdminNotification/Model/ResourceModel/Inbox/Collection.php b/app/code/Magento/AdminNotification/Model/ResourceModel/Inbox/Collection.php index 062beee8bd9..f9927bd12a5 100644 --- a/app/code/Magento/AdminNotification/Model/ResourceModel/Inbox/Collection.php +++ b/app/code/Magento/AdminNotification/Model/ResourceModel/Inbox/Collection.php @@ -10,7 +10,7 @@ namespace Magento\AdminNotification\Model\ResourceModel\Inbox; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource collection initialization diff --git a/app/code/Magento/AdminNotification/Model/ResourceModel/Inbox/Collection/Critical.php b/app/code/Magento/AdminNotification/Model/ResourceModel/Inbox/Collection/Critical.php index 042f8967d42..bf145d654db 100644 --- a/app/code/Magento/AdminNotification/Model/ResourceModel/Inbox/Collection/Critical.php +++ b/app/code/Magento/AdminNotification/Model/ResourceModel/Inbox/Collection/Critical.php @@ -7,7 +7,7 @@ */ namespace Magento\AdminNotification\Model\ResourceModel\Inbox\Collection; -class Critical extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Critical extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource collection initialization diff --git a/app/code/Magento/AdminNotification/Model/ResourceModel/System/Message.php b/app/code/Magento/AdminNotification/Model/ResourceModel/System/Message.php index 986ff7ef3c0..a3b9aac4305 100644 --- a/app/code/Magento/AdminNotification/Model/ResourceModel/System/Message.php +++ b/app/code/Magento/AdminNotification/Model/ResourceModel/System/Message.php @@ -5,7 +5,7 @@ */ namespace Magento\AdminNotification\Model\ResourceModel\System; -class Message extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Message extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Flag that notifies whether Primary key of table is auto-incremeted diff --git a/app/code/Magento/AdminNotification/Model/ResourceModel/System/Message/Collection.php b/app/code/Magento/AdminNotification/Model/ResourceModel/System/Message/Collection.php index a2a5a0f490e..d8b8bfc2533 100644 --- a/app/code/Magento/AdminNotification/Model/ResourceModel/System/Message/Collection.php +++ b/app/code/Magento/AdminNotification/Model/ResourceModel/System/Message/Collection.php @@ -5,7 +5,7 @@ */ namespace Magento\AdminNotification\Model\ResourceModel\System\Message; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * System message list @@ -28,7 +28,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Framework\Notification\MessageList $messageList * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -37,7 +37,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\Notification\MessageList $messageList, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_messageList = $messageList; parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); diff --git a/app/code/Magento/AdminNotification/Model/ResourceModel/System/Message/Collection/Synchronized.php b/app/code/Magento/AdminNotification/Model/ResourceModel/System/Message/Collection/Synchronized.php index caaf95faa6f..2c070d3140f 100644 --- a/app/code/Magento/AdminNotification/Model/ResourceModel/System/Message/Collection/Synchronized.php +++ b/app/code/Magento/AdminNotification/Model/ResourceModel/System/Message/Collection/Synchronized.php @@ -17,7 +17,7 @@ class Synchronized extends \Magento\AdminNotification\Model\ResourceModel\System /** * Store new messages in database and remove outdated messages * - * @return $this|\Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return $this|\Magento\Framework\Model\ResourceModel\Db\AbstractDb */ public function _afterLoad() { diff --git a/app/code/Magento/Authorization/Model/ResourceModel/Permissions/Collection.php b/app/code/Magento/Authorization/Model/ResourceModel/Permissions/Collection.php index c9d4e6f72b6..604493daa08 100644 --- a/app/code/Magento/Authorization/Model/ResourceModel/Permissions/Collection.php +++ b/app/code/Magento/Authorization/Model/ResourceModel/Permissions/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Authorization\Model\ResourceModel\Permissions; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize resource diff --git a/app/code/Magento/Authorization/Model/ResourceModel/Role.php b/app/code/Magento/Authorization/Model/ResourceModel/Role.php index 185712304f6..5621e0c7539 100644 --- a/app/code/Magento/Authorization/Model/ResourceModel/Role.php +++ b/app/code/Magento/Authorization/Model/ResourceModel/Role.php @@ -10,7 +10,7 @@ use Magento\Authorization\Model\Acl\Role\User as RoleUser; /** * Admin role resource model */ -class Role extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Role extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Rule table @@ -32,13 +32,13 @@ class Role extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $dateTime; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\App\CacheInterface $cache * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\App\CacheInterface $cache, \Magento\Framework\Stdlib\DateTime $dateTime, $connectionName = null diff --git a/app/code/Magento/Authorization/Model/ResourceModel/Role/Collection.php b/app/code/Magento/Authorization/Model/ResourceModel/Role/Collection.php index c9a1de7c002..f5f47176a85 100644 --- a/app/code/Magento/Authorization/Model/ResourceModel/Role/Collection.php +++ b/app/code/Magento/Authorization/Model/ResourceModel/Role/Collection.php @@ -10,7 +10,7 @@ use Magento\Authorization\Model\Acl\Role\Group as RoleGroup; /** * Admin role collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize resource model diff --git a/app/code/Magento/Authorization/Model/ResourceModel/Rules.php b/app/code/Magento/Authorization/Model/ResourceModel/Rules.php index 07a1f55d20f..e888c6e4755 100644 --- a/app/code/Magento/Authorization/Model/ResourceModel/Rules.php +++ b/app/code/Magento/Authorization/Model/ResourceModel/Rules.php @@ -11,7 +11,7 @@ namespace Magento\Authorization\Model\ResourceModel; /** * Admin rule resource model */ -class Rules extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Rules extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Root ACL resource @@ -38,7 +38,7 @@ class Rules extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_logger; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Acl\Builder $aclBuilder * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Acl\RootResource $rootResource @@ -46,7 +46,7 @@ class Rules extends \Magento\Framework\Model\ModelResource\Db\AbstractDb * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Acl\Builder $aclBuilder, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Acl\RootResource $rootResource, diff --git a/app/code/Magento/Authorization/Model/ResourceModel/Rules/Collection.php b/app/code/Magento/Authorization/Model/ResourceModel/Rules/Collection.php index fcd6beb45c6..6d8d5663365 100644 --- a/app/code/Magento/Authorization/Model/ResourceModel/Rules/Collection.php +++ b/app/code/Magento/Authorization/Model/ResourceModel/Rules/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Authorization\Model\ResourceModel\Rules; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize resource model diff --git a/app/code/Magento/Authorizenet/Model/Authorizenet.php b/app/code/Magento/Authorizenet/Model/Authorizenet.php index ebd4dd0d3f1..7bc22a49695 100644 --- a/app/code/Magento/Authorizenet/Model/Authorizenet.php +++ b/app/code/Magento/Authorizenet/Model/Authorizenet.php @@ -123,7 +123,7 @@ abstract class Authorizenet extends \Magento\Payment\Model\Method\Cc * @param \Magento\Authorizenet\Model\Request\Factory $requestFactory * @param \Magento\Authorizenet\Model\Response\Factory $responseFactory * @param \Magento\Framework\Xml\Security $xmlSecurityHelper - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -142,7 +142,7 @@ abstract class Authorizenet extends \Magento\Payment\Model\Method\Cc \Magento\Authorizenet\Model\Request\Factory $requestFactory, \Magento\Authorizenet\Model\Response\Factory $responseFactory, \Magento\Framework\Xml\Security $xmlSecurityHelper, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Authorizenet/Model/Directpost.php b/app/code/Magento/Authorizenet/Model/Directpost.php index 883e855ffa1..ca339c5c8ea 100644 --- a/app/code/Magento/Authorizenet/Model/Directpost.php +++ b/app/code/Magento/Authorizenet/Model/Directpost.php @@ -136,7 +136,7 @@ class Directpost extends \Magento\Authorizenet\Model\Authorizenet implements Tra * @param \Magento\Quote\Model\QuoteRepository $quoteRepository * @param \Magento\Sales\Model\Order\Email\Sender\OrderSender $orderSender * @param \Magento\Sales\Api\TransactionRepositoryInterface $transactionRepository - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -160,7 +160,7 @@ class Directpost extends \Magento\Authorizenet\Model\Authorizenet implements Tra \Magento\Quote\Model\QuoteRepository $quoteRepository, \Magento\Sales\Model\Order\Email\Sender\OrderSender $orderSender, \Magento\Sales\Api\TransactionRepositoryInterface $transactionRepository, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Authorizenet/Model/ResourceModel/Debug.php b/app/code/Magento/Authorizenet/Model/ResourceModel/Debug.php index 4346ab9f96a..e28ce1f6e66 100644 --- a/app/code/Magento/Authorizenet/Model/ResourceModel/Debug.php +++ b/app/code/Magento/Authorizenet/Model/ResourceModel/Debug.php @@ -8,7 +8,7 @@ namespace Magento\Authorizenet\Model\ResourceModel; /** * Resource Authorize.net debug model */ -class Debug extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Debug extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Authorizenet/Model/ResourceModel/Debug/Collection.php b/app/code/Magento/Authorizenet/Model/ResourceModel/Debug/Collection.php index a359eaa686c..472120a49ed 100644 --- a/app/code/Magento/Authorizenet/Model/ResourceModel/Debug/Collection.php +++ b/app/code/Magento/Authorizenet/Model/ResourceModel/Debug/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Authorizenet\Model\ResourceModel\Debug; /** * Resource Authorize.net debug collection model */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource initialization diff --git a/app/code/Magento/Backend/Block/Dashboard/AbstractDashboard.php b/app/code/Magento/Backend/Block/Dashboard/AbstractDashboard.php index b9401d4b2bc..dd484e56c51 100644 --- a/app/code/Magento/Backend/Block/Dashboard/AbstractDashboard.php +++ b/app/code/Magento/Backend/Block/Dashboard/AbstractDashboard.php @@ -40,7 +40,7 @@ abstract class AbstractDashboard extends \Magento\Backend\Block\Widget } /** - * @return array|\Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection|\Magento\Eav\Model\Entity\Collection\Abstract + * @return array|\Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection|\Magento\Eav\Model\Entity\Collection\Abstract */ public function getCollection() { diff --git a/app/code/Magento/Backend/Helper/Dashboard/AbstractDashboard.php b/app/code/Magento/Backend/Helper/Dashboard/AbstractDashboard.php index b2907af009a..a17302f9b12 100644 --- a/app/code/Magento/Backend/Helper/Dashboard/AbstractDashboard.php +++ b/app/code/Magento/Backend/Helper/Dashboard/AbstractDashboard.php @@ -13,7 +13,7 @@ abstract class AbstractDashboard extends \Magento\Framework\App\Helper\AbstractH /** * Helper collection * - * @var \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection|array + * @var \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection|array */ protected $_collection; @@ -25,7 +25,7 @@ abstract class AbstractDashboard extends \Magento\Framework\App\Helper\AbstractH protected $_params = []; /** - * @return array|\Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return array|\Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ public function getCollection() { diff --git a/app/code/Magento/Backup/Model/Config/Backend/Cron.php b/app/code/Magento/Backup/Model/Config/Backend/Cron.php index e4204f26879..133e6ad8636 100644 --- a/app/code/Magento/Backup/Model/Config/Backend/Cron.php +++ b/app/code/Magento/Backup/Model/Config/Backend/Cron.php @@ -33,7 +33,7 @@ class Cron extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param string $runModelPath * @param array $data @@ -43,7 +43,7 @@ class Cron extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Config\ValueFactory $configValueFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, $runModelPath = '', array $data = [] diff --git a/app/code/Magento/Braintree/Model/PaymentMethod.php b/app/code/Magento/Braintree/Model/PaymentMethod.php index 52f635426bd..810ff8bea34 100644 --- a/app/code/Magento/Braintree/Model/PaymentMethod.php +++ b/app/code/Magento/Braintree/Model/PaymentMethod.php @@ -181,7 +181,7 @@ class PaymentMethod extends \Magento\Payment\Model\Method\Cc * @param TransactionCollectionFactory $salesTransactionCollectionFactory * @param \Magento\Framework\App\ProductMetadataInterface $productMetaData * @param \Magento\Directory\Model\RegionFactory $regionFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -206,7 +206,7 @@ class PaymentMethod extends \Magento\Payment\Model\Method\Cc TransactionCollectionFactory $salesTransactionCollectionFactory, \Magento\Framework\App\ProductMetadataInterface $productMetaData, \Magento\Directory\Model\RegionFactory $regionFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Braintree/Model/PaymentMethod/PayPal.php b/app/code/Magento/Braintree/Model/PaymentMethod/PayPal.php index 05cf0b39b7c..8e4b238f3ed 100644 --- a/app/code/Magento/Braintree/Model/PaymentMethod/PayPal.php +++ b/app/code/Magento/Braintree/Model/PaymentMethod/PayPal.php @@ -68,7 +68,7 @@ class PayPal extends \Magento\Braintree\Model\PaymentMethod * @param \Magento\Directory\Model\RegionFactory $regionFactory * @param \Magento\Braintree\Model\Config\PayPal $payPalConfig * @param BraintreeTransaction $braintreeTransaction - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -94,7 +94,7 @@ class PayPal extends \Magento\Braintree\Model\PaymentMethod \Magento\Framework\App\ProductMetadataInterface $productMetaData, \Magento\Directory\Model\RegionFactory $regionFactory, \Magento\Braintree\Model\Config\PayPal $payPalConfig, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Braintree/Model/System/Config/Backend/Countrycreditcard.php b/app/code/Magento/Braintree/Model/System/Config/Backend/Countrycreditcard.php index 17291f11bc9..7e234209d00 100644 --- a/app/code/Magento/Braintree/Model/System/Config/Backend/Countrycreditcard.php +++ b/app/code/Magento/Braintree/Model/System/Config/Backend/Countrycreditcard.php @@ -17,7 +17,7 @@ class Countrycreditcard extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\Math\Random $mathRandom - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -26,7 +26,7 @@ class Countrycreditcard extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\Math\Random $mathRandom, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Braintree/Test/Unit/Model/System/Config/Backend/CountrycreditcardTest.php b/app/code/Magento/Braintree/Test/Unit/Model/System/Config/Backend/CountrycreditcardTest.php index 8857a72b6da..e970b41d856 100644 --- a/app/code/Magento/Braintree/Test/Unit/Model/System/Config/Backend/CountrycreditcardTest.php +++ b/app/code/Magento/Braintree/Test/Unit/Model/System/Config/Backend/CountrycreditcardTest.php @@ -38,7 +38,7 @@ class CountrycreditcardTest extends \PHPUnit_Framework_TestCase protected function setUp() { - $this->resourceMock = $this->getMockForAbstractClass('\Magento\Framework\Model\ModelResource\AbstractResource'); + $this->resourceMock = $this->getMockForAbstractClass('\Magento\Framework\Model\ResourceModel\AbstractResource'); $this->mathRandomMock = $this->getMockBuilder( '\Magento\Framework\Math\Random' )->disableOriginalConstructor() diff --git a/app/code/Magento/Bundle/Model/ResourceModel/Bundle.php b/app/code/Magento/Bundle/Model/ResourceModel/Bundle.php index c387f0839c4..b748c4419ea 100644 --- a/app/code/Magento/Bundle/Model/ResourceModel/Bundle.php +++ b/app/code/Magento/Bundle/Model/ResourceModel/Bundle.php @@ -10,7 +10,7 @@ namespace Magento\Bundle\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Bundle extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Bundle extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Catalog\Model\ResourceModel\Product\Relation @@ -23,13 +23,13 @@ class Bundle extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $quoteResource; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Catalog\Model\ResourceModel\Product\Relation $productRelation * @param \Magento\Quote\Model\ResourceModel\Quote $quoteResource * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Catalog\Model\ResourceModel\Product\Relation $productRelation, \Magento\Quote\Model\ResourceModel\Quote $quoteResource, $connectionName = null diff --git a/app/code/Magento/Bundle/Model/ResourceModel/Option.php b/app/code/Magento/Bundle/Model/ResourceModel/Option.php index ad522bd8389..7ef4bda626e 100644 --- a/app/code/Magento/Bundle/Model/ResourceModel/Option.php +++ b/app/code/Magento/Bundle/Model/ResourceModel/Option.php @@ -10,7 +10,7 @@ namespace Magento\Bundle\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Option extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Option extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Bundle\Model\Option\Validator @@ -18,12 +18,12 @@ class Option extends \Magento\Framework\Model\ModelResource\Db\AbstractDb private $validator; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Bundle\Model\Option\Validator $validator * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Bundle\Model\Option\Validator $validator, $connectionName = null ) { diff --git a/app/code/Magento/Bundle/Model/ResourceModel/Option/Collection.php b/app/code/Magento/Bundle/Model/ResourceModel/Option/Collection.php index a012f0d3133..dee20a0d83a 100644 --- a/app/code/Magento/Bundle/Model/ResourceModel/Option/Collection.php +++ b/app/code/Magento/Bundle/Model/ResourceModel/Option/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Bundle\Model\ResourceModel\Option; /** * Bundle Options Resource Collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * All item ids cache diff --git a/app/code/Magento/Bundle/Model/ResourceModel/Selection.php b/app/code/Magento/Bundle/Model/ResourceModel/Selection.php index f387db96548..22283c5ff32 100644 --- a/app/code/Magento/Bundle/Model/ResourceModel/Selection.php +++ b/app/code/Magento/Bundle/Model/ResourceModel/Selection.php @@ -10,7 +10,7 @@ namespace Magento\Bundle\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Selection extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Selection extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Define main table and id field diff --git a/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Creditmemo.php b/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Creditmemo.php index fe9f10b3323..2b50f3f1683 100644 --- a/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Creditmemo.php +++ b/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Creditmemo.php @@ -24,7 +24,7 @@ class Creditmemo extends AbstractItems * @param \Magento\Framework\Filesystem $filesystem * @param \Magento\Framework\Filter\FilterManager $filterManager * @param \Magento\Framework\Stdlib\StringUtils $string - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -35,7 +35,7 @@ class Creditmemo extends AbstractItems \Magento\Framework\Filesystem $filesystem, \Magento\Framework\Filter\FilterManager $filterManager, \Magento\Framework\Stdlib\StringUtils $string, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Invoice.php b/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Invoice.php index 00e84863d30..c4bcdb7616b 100644 --- a/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Invoice.php +++ b/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Invoice.php @@ -25,7 +25,7 @@ class Invoice extends AbstractItems * @param \Magento\Framework\Filesystem $filesystem * @param \Magento\Framework\Filter\FilterManager $filterManager * @param \Magento\Framework\Stdlib\StringUtils $coreString - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -36,7 +36,7 @@ class Invoice extends AbstractItems \Magento\Framework\Filesystem $filesystem, \Magento\Framework\Filter\FilterManager $filterManager, \Magento\Framework\Stdlib\StringUtils $coreString, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Shipment.php b/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Shipment.php index 9b071f4fc80..4a8e83fd3cd 100644 --- a/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Shipment.php +++ b/app/code/Magento/Bundle/Model/Sales/Order/Pdf/Items/Shipment.php @@ -22,7 +22,7 @@ class Shipment extends AbstractItems * @param \Magento\Framework\Filesystem $filesystem * @param \Magento\Framework\Filter\FilterManager $filterManager * @param \Magento\Framework\Stdlib\StringUtils $string - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -33,7 +33,7 @@ class Shipment extends AbstractItems \Magento\Framework\Filesystem $filesystem, \Magento\Framework\Filter\FilterManager $filterManager, \Magento\Framework\Stdlib\StringUtils $string, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Bundle/Model/Source/Option/Type.php b/app/code/Magento/Bundle/Model/Source/Option/Type.php index 17047b14c6a..7269a9473d9 100644 --- a/app/code/Magento/Bundle/Model/Source/Option/Type.php +++ b/app/code/Magento/Bundle/Model/Source/Option/Type.php @@ -37,7 +37,7 @@ class Type extends \Magento\Framework\Model\AbstractExtensibleModel implements * @param ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory * @param array $options - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -47,7 +47,7 @@ class Type extends \Magento\Framework\Model\AbstractExtensibleModel implements ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, array $options, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Bundle/Test/Unit/Model/OptionRepositoryTest.php b/app/code/Magento/Bundle/Test/Unit/Model/OptionRepositoryTest.php index 577879a4d65..2175303614e 100644 --- a/app/code/Magento/Bundle/Test/Unit/Model/OptionRepositoryTest.php +++ b/app/code/Magento/Bundle/Test/Unit/Model/OptionRepositoryTest.php @@ -619,7 +619,7 @@ class OptionRepositoryTest extends \PHPUnit_Framework_TestCase ); $attributeValueFactoryMock = $this->getMock('Magento\Framework\Api\AttributeValueFactory', [], [], '', false); $resourceMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [ '_construct', 'getIdFieldName' diff --git a/app/code/Magento/Bundle/Test/Unit/Model/OptionTest.php b/app/code/Magento/Bundle/Test/Unit/Model/OptionTest.php index 67303f8fd38..5af4e900bea 100644 --- a/app/code/Magento/Bundle/Test/Unit/Model/OptionTest.php +++ b/app/code/Magento/Bundle/Test/Unit/Model/OptionTest.php @@ -20,7 +20,7 @@ class OptionTest extends \PHPUnit_Framework_TestCase protected $selectionSecond; /** - * @var \Magento\Framework\Model\ModelResource\AbstractResource|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\AbstractResource|\PHPUnit_Framework_MockObject_MockObject */ protected $resource; @@ -46,7 +46,7 @@ class OptionTest extends \PHPUnit_Framework_TestCase false ); $this->resource = $this->getMock( - 'Magento\Framework\Model\ModelResource\AbstractResource', + 'Magento\Framework\Model\ResourceModel\AbstractResource', [ '_construct', 'getConnection', diff --git a/app/code/Magento/Bundle/Test/Unit/Model/Product/TypeTest.php b/app/code/Magento/Bundle/Test/Unit/Model/Product/TypeTest.php index 92e64885b72..1d08a80994f 100644 --- a/app/code/Magento/Bundle/Test/Unit/Model/Product/TypeTest.php +++ b/app/code/Magento/Bundle/Test/Unit/Model/Product/TypeTest.php @@ -2093,7 +2093,7 @@ class TypeTest extends \PHPUnit_Framework_TestCase ->setMethods(['getResourceCollection']) ->disableOriginalConstructor() ->getMock(); - $resourceClassName = 'Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection'; + $resourceClassName = 'Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection'; $dbResourceMock = $this->getMockBuilder($resourceClassName) ->setMethods(['setProductIdFilter', 'setPositionOrder', 'joinValues', 'setIdFilter']) ->disableOriginalConstructor() @@ -2616,7 +2616,7 @@ class TypeTest extends \PHPUnit_Framework_TestCase $option = $this->getMockBuilder('\Magento\Bundle\Model\Option') ->disableOriginalConstructor() ->getMock(); - $resourceClassName = 'Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection'; + $resourceClassName = 'Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection'; $dbResourceMock = $this->getMockBuilder($resourceClassName) ->setMethods(['setProductIdFilter', 'setPositionOrder', 'joinValues']) ->disableOriginalConstructor() @@ -2741,7 +2741,7 @@ class TypeTest extends \PHPUnit_Framework_TestCase $product = $this->getMockBuilder('Magento\Catalog\Model\Product') ->disableOriginalConstructor() ->getMock(); - $resourceClassName = 'Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection'; + $resourceClassName = 'Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection'; $dbResourceMock = $this->getMockBuilder($resourceClassName) ->setMethods(['getItems']) ->disableOriginalConstructor() diff --git a/app/code/Magento/Captcha/Model/ResourceModel/Log.php b/app/code/Magento/Captcha/Model/ResourceModel/Log.php index de6d38876d0..cdd46fbb97d 100644 --- a/app/code/Magento/Captcha/Model/ResourceModel/Log.php +++ b/app/code/Magento/Captcha/Model/ResourceModel/Log.php @@ -10,7 +10,7 @@ namespace Magento\Captcha\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Log extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Log extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Type Remote Address @@ -35,13 +35,13 @@ class Log extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_remoteAddress; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime\DateTime $coreDate * @param \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $remoteAddress * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime\DateTime $coreDate, \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $remoteAddress, $connectionName = null diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Category/AbstractCategory.php b/app/code/Magento/Catalog/Block/Adminhtml/Category/AbstractCategory.php index 06e26a33c16..5dc5198b776 100644 --- a/app/code/Magento/Catalog/Block/Adminhtml/Category/AbstractCategory.php +++ b/app/code/Magento/Catalog/Block/Adminhtml/Category/AbstractCategory.php @@ -170,7 +170,7 @@ class AbstractCategory extends \Magento\Backend\Block\Template } /** - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ public function getCategoryCollection() { diff --git a/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php b/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php index c44c68e372a..4270322a300 100644 --- a/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php +++ b/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php @@ -19,7 +19,7 @@ class Toolbar extends \Magento\Framework\View\Element\Template /** * Products collection * - * @var \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @var \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ protected $_collection = null; @@ -197,7 +197,7 @@ class Toolbar extends \Magento\Framework\View\Element\Template /** * Return products collection instance * - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ public function getCollection() { diff --git a/app/code/Magento/Catalog/Block/Product/Widget/Html/Pager.php b/app/code/Magento/Catalog/Block/Product/Widget/Html/Pager.php index ce0782bf21d..f069f70bad9 100644 --- a/app/code/Magento/Catalog/Block/Product/Widget/Html/Pager.php +++ b/app/code/Magento/Catalog/Block/Product/Widget/Html/Pager.php @@ -98,7 +98,7 @@ class Pager extends \Magento\Theme\Block\Html\Pager /** * Connect collection to paging * - * @param \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection $collection + * @param \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection $collection * @return \Magento\Catalog\Block\Product\Widget\Html\Pager */ public function setCollection($collection) diff --git a/app/code/Magento/Catalog/Model/AbstractModel.php b/app/code/Magento/Catalog/Model/AbstractModel.php index d42a0ed870e..6b4d310b829 100644 --- a/app/code/Magento/Catalog/Model/AbstractModel.php +++ b/app/code/Magento/Catalog/Model/AbstractModel.php @@ -65,7 +65,7 @@ abstract class AbstractModel extends \Magento\Framework\Model\AbstractExtensible * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -75,7 +75,7 @@ abstract class AbstractModel extends \Magento\Framework\Model\AbstractExtensible \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/Category.php b/app/code/Magento/Catalog/Model/Category.php index b27d233a2f8..b95b1e9da74 100644 --- a/app/code/Magento/Catalog/Model/Category.php +++ b/app/code/Magento/Catalog/Model/Category.php @@ -242,7 +242,7 @@ class Category extends \Magento\Catalog\Model\AbstractModel implements * @param UrlFinderInterface $urlFinder * @param \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry * @param CategoryRepositoryInterface $categoryRepository - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -266,7 +266,7 @@ class Category extends \Magento\Catalog\Model\AbstractModel implements UrlFinderInterface $urlFinder, \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry, CategoryRepositoryInterface $categoryRepository, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/Config/Backend/Category.php b/app/code/Magento/Catalog/Model/Config/Backend/Category.php index 31baf9603a0..9634b182bd4 100644 --- a/app/code/Magento/Catalog/Model/Config/Backend/Category.php +++ b/app/code/Magento/Catalog/Model/Config/Backend/Category.php @@ -26,7 +26,7 @@ class Category extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Catalog\Model\Category $catalogCategory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -35,7 +35,7 @@ class Category extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Catalog\Model\Category $catalogCategory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/Config/CatalogClone/Media/Image.php b/app/code/Magento/Catalog/Model/Config/CatalogClone/Media/Image.php index 2fd92365d14..2f0c8f4e2ee 100644 --- a/app/code/Magento/Catalog/Model/Config/CatalogClone/Media/Image.php +++ b/app/code/Magento/Catalog/Model/Config/CatalogClone/Media/Image.php @@ -32,7 +32,7 @@ class Image extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $attributeCollectionFactory * @param \Magento\Eav\Model\Config $eavConfig - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -42,7 +42,7 @@ class Image extends \Magento\Framework\App\Config\Value \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $attributeCollectionFactory, \Magento\Eav\Model\Config $eavConfig, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/CustomOptions/CustomOption.php b/app/code/Magento/Catalog/Model/CustomOptions/CustomOption.php index 7a31387ada6..b04a2cffde7 100644 --- a/app/code/Magento/Catalog/Model/CustomOptions/CustomOption.php +++ b/app/code/Magento/Catalog/Model/CustomOptions/CustomOption.php @@ -11,7 +11,7 @@ use Magento\Framework\Api\AttributeValueFactory; use Magento\Framework\Model\Context; use Magento\Framework\Registry; use Magento\Framework\Api\ExtensionAttributesFactory; -use Magento\Framework\Model\ModelResource\AbstractResource; +use Magento\Framework\Model\ResourceModel\AbstractResource; use Magento\Framework\Data\Collection\AbstractDb; use Magento\Catalog\Model\Webapi\Product\Option\Type\File\Processor as FileProcessor; diff --git a/app/code/Magento/Catalog/Model/Design.php b/app/code/Magento/Catalog/Model/Design.php index 658336e9fdb..fc992154c88 100644 --- a/app/code/Magento/Catalog/Model/Design.php +++ b/app/code/Magento/Catalog/Model/Design.php @@ -33,7 +33,7 @@ class Design extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate * @param \Magento\Framework\View\DesignInterface $design - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -42,7 +42,7 @@ class Design extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Registry $registry, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\Framework\View\DesignInterface $design, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/Entity/Attribute.php b/app/code/Magento/Catalog/Model/Entity/Attribute.php index d1f6dd922d5..16550971a18 100644 --- a/app/code/Magento/Catalog/Model/Entity/Attribute.php +++ b/app/code/Magento/Catalog/Model/Entity/Attribute.php @@ -88,7 +88,7 @@ class Attribute extends \Magento\Eav\Model\Entity\Attribute * @param \Magento\Framework\Locale\ResolverInterface $localeResolver * @param DateTimeFormatterInterface $dateTimeFormatter * @param LockValidatorInterface $lockValidator - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -111,7 +111,7 @@ class Attribute extends \Magento\Eav\Model\Entity\Attribute \Magento\Framework\Locale\ResolverInterface $localeResolver, DateTimeFormatterInterface $dateTimeFormatter, LockValidatorInterface $lockValidator, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/Indexer/Category/Flat/Plugin/StoreGroup.php b/app/code/Magento/Catalog/Model/Indexer/Category/Flat/Plugin/StoreGroup.php index 61f7f1c7ca9..1f1cb50626b 100644 --- a/app/code/Magento/Catalog/Model/Indexer/Category/Flat/Plugin/StoreGroup.php +++ b/app/code/Magento/Catalog/Model/Indexer/Category/Flat/Plugin/StoreGroup.php @@ -39,15 +39,15 @@ class StoreGroup } /** - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $subject + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $subject * @param callable $proceed * @param \Magento\Framework\Model\AbstractModel $group * - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function aroundSave( - \Magento\Framework\Model\ModelResource\Db\AbstractDb $subject, + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $subject, \Closure $proceed, \Magento\Framework\Model\AbstractModel $group ) { diff --git a/app/code/Magento/Catalog/Model/Indexer/Category/Flat/System/Config/Mode.php b/app/code/Magento/Catalog/Model/Indexer/Category/Flat/System/Config/Mode.php index 3d6eb24ce7d..e72004991e8 100644 --- a/app/code/Magento/Catalog/Model/Indexer/Category/Flat/System/Config/Mode.php +++ b/app/code/Magento/Catalog/Model/Indexer/Category/Flat/System/Config/Mode.php @@ -22,7 +22,7 @@ class Mode extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry * @param \Magento\Indexer\Model\Indexer\State $indexerState - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -32,7 +32,7 @@ class Mode extends \Magento\Framework\App\Config\Value \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry, \Magento\Indexer\Model\Indexer\State $indexerState, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/Indexer/Category/Product/Plugin/StoreGroup.php b/app/code/Magento/Catalog/Model/Indexer/Category/Product/Plugin/StoreGroup.php index 1c6854fd8d2..859bc2936e0 100644 --- a/app/code/Magento/Catalog/Model/Indexer/Category/Product/Plugin/StoreGroup.php +++ b/app/code/Magento/Catalog/Model/Indexer/Category/Product/Plugin/StoreGroup.php @@ -19,14 +19,14 @@ class StoreGroup } /** - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $subject + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $subject * @param callable $proceed * @param \Magento\Framework\Model\AbstractModel $group * @return mixed * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function aroundSave( - \Magento\Framework\Model\ModelResource\Db\AbstractDb $subject, + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $subject, \Closure $proceed, \Magento\Framework\Model\AbstractModel $group ) { diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/System/Config/Mode.php b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/System/Config/Mode.php index e35b88dc0e7..1db9aae1325 100644 --- a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/System/Config/Mode.php +++ b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/System/Config/Mode.php @@ -26,7 +26,7 @@ class Mode extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Catalog\Model\Indexer\Product\Flat\Processor $productFlatIndexerProcessor * @param \Magento\Indexer\Model\Indexer\State $indexerState - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -36,7 +36,7 @@ class Mode extends \Magento\Framework\App\Config\Value \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Catalog\Model\Indexer\Product\Flat\Processor $productFlatIndexerProcessor, \Magento\Indexer\Model\Indexer\State $indexerState, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Price/System/Config/PriceScope.php b/app/code/Magento/Catalog/Model/Indexer/Product/Price/System/Config/PriceScope.php index f66ac598d46..148b5b7a99a 100644 --- a/app/code/Magento/Catalog/Model/Indexer/Product/Price/System/Config/PriceScope.php +++ b/app/code/Magento/Catalog/Model/Indexer/Product/Price/System/Config/PriceScope.php @@ -18,7 +18,7 @@ class PriceScope extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -27,7 +27,7 @@ class PriceScope extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/Product/Action.php b/app/code/Magento/Catalog/Model/Product/Action.php index ea58673a62f..c3afb6a6334 100644 --- a/app/code/Magento/Catalog/Model/Product/Action.php +++ b/app/code/Magento/Catalog/Model/Product/Action.php @@ -42,7 +42,7 @@ class Action extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry * @param \Magento\Eav\Model\Config $eavConfig * @param \Magento\Catalog\Model\Indexer\Product\Eav\Processor $productEavIndexerProcessor - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -53,7 +53,7 @@ class Action extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry, \Magento\Eav\Model\Config $eavConfig, \Magento\Catalog\Model\Indexer\Product\Eav\Processor $productEavIndexerProcessor, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/Product/Attribute/Group.php b/app/code/Magento/Catalog/Model/Product/Attribute/Group.php index f1d69e37740..ba141dc370c 100644 --- a/app/code/Magento/Catalog/Model/Product/Attribute/Group.php +++ b/app/code/Magento/Catalog/Model/Product/Attribute/Group.php @@ -23,7 +23,7 @@ class Group extends \Magento\Eav\Model\Entity\Attribute\Group * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory * @param \Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $attributeCollectionFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -33,7 +33,7 @@ class Group extends \Magento\Eav\Model\Entity\Attribute\Group \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, \Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory $attributeCollectionFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/Product/Compare/Item.php b/app/code/Magento/Catalog/Model/Product/Compare/Item.php index f81d1bcdaf5..5ef5fca6a2c 100644 --- a/app/code/Magento/Catalog/Model/Product/Compare/Item.php +++ b/app/code/Magento/Catalog/Model/Product/Compare/Item.php @@ -76,7 +76,7 @@ class Item extends \Magento\Framework\Model\AbstractModel implements \Magento\Fr * @param \Magento\Customer\Model\Visitor $customerVisitor * @param \Magento\Customer\Model\Session $customerSession * @param \Magento\Catalog\Helper\Product\Compare $catalogProductCompare - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -87,7 +87,7 @@ class Item extends \Magento\Framework\Model\AbstractModel implements \Magento\Fr \Magento\Customer\Model\Visitor $customerVisitor, \Magento\Customer\Model\Session $customerSession, \Magento\Catalog\Helper\Product\Compare $catalogProductCompare, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/Product/Image.php b/app/code/Magento/Catalog/Model/Product/Image.php index 5ad174c1ae3..a4d690071e9 100644 --- a/app/code/Magento/Catalog/Model/Product/Image.php +++ b/app/code/Magento/Catalog/Model/Product/Image.php @@ -178,7 +178,7 @@ class Image extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\View\Asset\Repository $assetRepo * @param \Magento\Framework\View\FileSystem $viewFileSystem * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -195,7 +195,7 @@ class Image extends \Magento\Framework\Model\AbstractModel \Magento\Framework\View\Asset\Repository $assetRepo, \Magento\Framework\View\FileSystem $viewFileSystem, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/Product/Link.php b/app/code/Magento/Catalog/Model/Product/Link.php index b23f43022ad..63208fe8313 100644 --- a/app/code/Magento/Catalog/Model/Product/Link.php +++ b/app/code/Magento/Catalog/Model/Product/Link.php @@ -60,7 +60,7 @@ class Link extends \Magento\Framework\Model\AbstractModel * @param \Magento\Catalog\Model\ResourceModel\Product\Link\CollectionFactory $linkCollectionFactory * @param \Magento\Catalog\Model\ResourceModel\Product\Link\Product\CollectionFactory $productCollectionFactory * @param \Magento\CatalogInventory\Helper\Stock $stockHelper - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -70,7 +70,7 @@ class Link extends \Magento\Framework\Model\AbstractModel \Magento\Catalog\Model\ResourceModel\Product\Link\CollectionFactory $linkCollectionFactory, \Magento\Catalog\Model\ResourceModel\Product\Link\Product\CollectionFactory $productCollectionFactory, \Magento\CatalogInventory\Helper\Stock $stockHelper, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/Product/Option.php b/app/code/Magento/Catalog/Model/Product/Option.php index 96bfc698df5..8b981d6f0b8 100644 --- a/app/code/Magento/Catalog/Model/Product/Option.php +++ b/app/code/Magento/Catalog/Model/Product/Option.php @@ -122,7 +122,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel * @param Option\Type\Factory $optionFactory * @param \Magento\Framework\Stdlib\StringUtils $string * @param Option\Validator\Pool $validatorPool - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -136,7 +136,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel \Magento\Catalog\Model\Product\Option\Type\Factory $optionFactory, \Magento\Framework\Stdlib\StringUtils $string, Option\Validator\Pool $validatorPool, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { @@ -158,7 +158,7 @@ class Option extends \Magento\Framework\Model\AbstractExtensibleModel /** * Get resource instance * - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected function _getResource() { diff --git a/app/code/Magento/Catalog/Model/Product/Option/Value.php b/app/code/Magento/Catalog/Model/Product/Option/Value.php index 0bdc8968cb6..863c3a374b1 100644 --- a/app/code/Magento/Catalog/Model/Product/Option/Value.php +++ b/app/code/Magento/Catalog/Model/Product/Option/Value.php @@ -66,7 +66,7 @@ class Value extends AbstractModel implements \Magento\Catalog\Api\Data\ProductCu * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Catalog\Model\ResourceModel\Product\Option\Value\CollectionFactory $valueCollectionFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -74,7 +74,7 @@ class Value extends AbstractModel implements \Magento\Catalog\Api\Data\ProductCu \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Catalog\Model\ResourceModel\Product\Option\Value\CollectionFactory $valueCollectionFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php b/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php index 2b349fa7dbd..dd522da5888 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Attribute.php @@ -27,7 +27,7 @@ class Attribute extends \Magento\Eav\Model\ResourceModel\Entity\Attribute protected $attrLockValidator; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Eav\Model\ResourceModel\Entity\Type $eavEntityType * @param \Magento\Eav\Model\Config $eavConfig @@ -35,7 +35,7 @@ class Attribute extends \Magento\Eav\Model\ResourceModel\Entity\Attribute * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Eav\Model\ResourceModel\Entity\Type $eavEntityType, \Magento\Eav\Model\Config $eavConfig, diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Category/Attribute/Collection.php b/app/code/Magento/Catalog/Model/ResourceModel/Category/Attribute/Collection.php index 85b65b8075b..6583e3e60b2 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Category/Attribute/Collection.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Category/Attribute/Collection.php @@ -27,7 +27,7 @@ class Collection extends \Magento\Eav\Model\ResourceModel\Entity\Attribute\Colle * @param \Magento\Eav\Model\EntityFactory $eavEntityFactory * @param \Magento\Eav\Model\Config $eavConfig * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -37,7 +37,7 @@ class Collection extends \Magento\Eav\Model\ResourceModel\Entity\Attribute\Colle \Magento\Eav\Model\Config $eavConfig, \Magento\Eav\Model\EntityFactory $eavEntityFactory, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_eavEntityFactory = $eavEntityFactory; parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $eavConfig, $connection, $resource); diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php b/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php index 089bfbc10e0..82000fb03d1 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php @@ -81,7 +81,7 @@ class Flat extends \Magento\Indexer\Model\ResourceModel\AbstractResource /** * Class constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy * @param \Magento\Catalog\Model\CategoryFactory $categoryFactory * @param CollectionFactory $categoryCollectionFactory @@ -91,7 +91,7 @@ class Flat extends \Magento\Indexer\Model\ResourceModel\AbstractResource * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy, \Magento\Catalog\Model\CategoryFactory $categoryFactory, \Magento\Catalog\Model\ResourceModel\Category\CollectionFactory $categoryCollectionFactory, diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat/Collection.php b/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat/Collection.php index b522f1cad89..83a09410278 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat/Collection.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Category/Flat/Collection.php @@ -9,7 +9,7 @@ use Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator; use Magento\Framework\Data\Collection\EntityFactory; use Magento\Framework\Event\ManagerInterface; use Magento\Framework\Data\Collection\Db\FetchStrategyInterface; -use Magento\Framework\Model\ModelResource\Db\AbstractDb; +use Magento\Framework\Model\ResourceModel\Db\AbstractDb; use Psr\Log\LoggerInterface as Logger; use Magento\Store\Model\StoreManagerInterface; @@ -18,7 +18,7 @@ use Magento\Store\Model\StoreManagerInterface; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Event prefix diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Config.php b/app/code/Magento/Catalog/Model/ResourceModel/Config.php index 625e74be6c5..f3e72ab1570 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Config.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Config.php @@ -10,7 +10,7 @@ namespace Magento\Catalog\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Config extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Config extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * catalog_product entity type id @@ -41,13 +41,13 @@ class Config extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_storeManager; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Eav\Model\Config $eavConfig * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Eav\Model\Config $eavConfig, $connectionName = null diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Eav/Attribute.php b/app/code/Magento/Catalog/Model/ResourceModel/Eav/Attribute.php index 23bb4f402b8..2f4d6769131 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Eav/Attribute.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Eav/Attribute.php @@ -108,7 +108,7 @@ class Attribute extends \Magento\Eav\Model\Entity\Attribute implements * @param \Magento\Catalog\Helper\Product\Flat\Indexer $productFlatIndexerHelper * @param LockValidatorInterface $lockValidator * @param DateTimeFormatterInterface $dateTimeFormatter - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -134,7 +134,7 @@ class Attribute extends \Magento\Eav\Model\Entity\Attribute implements \Magento\Catalog\Model\Indexer\Product\Eav\Processor $indexerEavProcessor, \Magento\Catalog\Helper\Product\Flat\Indexer $productFlatIndexerHelper, LockValidatorInterface $lockValidator, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Layer/Filter/Attribute.php b/app/code/Magento/Catalog/Model/ResourceModel/Layer/Filter/Attribute.php index 317b92c854a..b66b8c40629 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Layer/Filter/Attribute.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Layer/Filter/Attribute.php @@ -10,7 +10,7 @@ namespace Magento\Catalog\Model\ResourceModel\Layer\Filter; * * @author Magento Core Team <core@magentocommerce.com> */ -class Attribute extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Attribute extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize connection and define main table name diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Layer/Filter/Decimal.php b/app/code/Magento/Catalog/Model/ResourceModel/Layer/Filter/Decimal.php index 16903344fa5..5d20f30f20d 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Layer/Filter/Decimal.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Layer/Filter/Decimal.php @@ -10,7 +10,7 @@ namespace Magento\Catalog\Model\ResourceModel\Layer\Filter; * * @author Magento Core Team <core@magentocommerce.com> */ -class Decimal extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Decimal extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize connection and define main table name diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Layer/Filter/Price.php b/app/code/Magento/Catalog/Model/ResourceModel/Layer/Filter/Price.php index 4b4c351b95b..ddadfcaa97d 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Layer/Filter/Price.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Layer/Filter/Price.php @@ -8,7 +8,7 @@ namespace Magento\Catalog\Model\ResourceModel\Layer\Filter; /** * Catalog Layer Price Filter resource model */ -class Price extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Price extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Minimal possible price @@ -38,7 +38,7 @@ class Price extends \Magento\Framework\Model\ModelResource\Db\AbstractDb private $storeManager; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Catalog\Model\Layer\Resolver $layerResolver * @param \Magento\Customer\Model\Session $session @@ -46,7 +46,7 @@ class Price extends \Magento\Framework\Model\ModelResource\Db\AbstractDb * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Catalog\Model\Layer\Resolver $layerResolver, \Magento\Customer\Model\Session $session, diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/GroupPrice/AbstractGroupPrice.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/GroupPrice/AbstractGroupPrice.php index 605667ba945..95591c93e00 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/GroupPrice/AbstractGroupPrice.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/GroupPrice/AbstractGroupPrice.php @@ -11,7 +11,7 @@ */ namespace Magento\Catalog\Model\ResourceModel\Product\Attribute\Backend\GroupPrice; -abstract class AbstractGroupPrice extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +abstract class AbstractGroupPrice extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Load Tier Prices for product diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php index bfc39cfe98b..a77ea68ae16 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Backend/Media.php @@ -15,7 +15,7 @@ use Magento\Catalog\Model\Product; * * @author Magento Core Team <core@magentocommerce.com> */ -class Media extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Media extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { const GALLERY_TABLE = 'catalog_product_entity_media_gallery'; diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Collection.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Collection.php index db9e5f9886e..3f396b654f2 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Collection.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Attribute/Collection.php @@ -25,7 +25,7 @@ class Collection extends \Magento\Eav\Model\ResourceModel\Entity\Attribute\Colle * @param \Magento\Eav\Model\EntityFactory $eavEntityFactory * @param \Magento\Eav\Model\Config $eavConfig * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -35,7 +35,7 @@ class Collection extends \Magento\Eav\Model\ResourceModel\Entity\Attribute\Colle \Magento\Eav\Model\Config $eavConfig, \Magento\Eav\Model\EntityFactory $eavEntityFactory, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_eavEntityFactory = $eavEntityFactory; parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $eavConfig, $connection, $resource); diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Collection.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Collection.php index 924355cafcb..0393bf02276 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Collection.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Collection.php @@ -525,7 +525,7 @@ class Collection extends \Magento\Catalog\Model\ResourceModel\Collection\Abstrac */ public function setEntity($entity) { - if ($this->isEnabledFlat() && $entity instanceof \Magento\Framework\Model\ModelResource\Db\AbstractDb) { + if ($this->isEnabledFlat() && $entity instanceof \Magento\Framework\Model\ResourceModel\Db\AbstractDb) { $this->_entity = $entity; return $this; } diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Compare/Item.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Compare/Item.php index 13af3192a26..19aa5b02dd0 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Compare/Item.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Compare/Item.php @@ -10,7 +10,7 @@ namespace Magento\Catalog\Model\ResourceModel\Product\Compare; * * @author Magento Core Team <core@magentocommerce.com> */ -class Item extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Item extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize connection diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Flat.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Flat.php index d4ef3ae5723..2a9f146e405 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Flat.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Flat.php @@ -13,7 +13,7 @@ use Magento\Eav\Model\ResourceModel\Attribute\DefaultEntityAttributes\ProviderIn * * @author Magento Core Team <core@magentocommerce.com> */ -class Flat extends \Magento\Framework\Model\ModelResource\Db\AbstractDb implements DefaultAttributesProvider +class Flat extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb implements DefaultAttributesProvider { /** * Store scope Id @@ -42,14 +42,14 @@ class Flat extends \Magento\Framework\Model\ModelResource\Db\AbstractDb implemen protected $defaultAttributes; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Catalog\Model\Config $catalogConfig * @param \Magento\Catalog\Model\Product\Attribute\DefaultAttributes $defaultAttributes * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Catalog\Model\Config $catalogConfig, \Magento\Catalog\Model\Product\Attribute\DefaultAttributes $defaultAttributes, diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/AbstractIndexer.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/AbstractIndexer.php index ea9e44872e9..0ed453173dc 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/AbstractIndexer.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/AbstractIndexer.php @@ -22,13 +22,13 @@ abstract class AbstractIndexer extends \Magento\Indexer\Model\ResourceModel\Abst /** * Class constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy * @param \Magento\Eav\Model\Config $eavConfig * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy, \Magento\Eav\Model\Config $eavConfig, $connectionName = null diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Eav/AbstractEav.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Eav/AbstractEav.php index 533653c823a..b07d355f418 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Eav/AbstractEav.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Eav/AbstractEav.php @@ -22,14 +22,14 @@ abstract class AbstractEav extends \Magento\Catalog\Model\ResourceModel\Product\ /** * Construct * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy * @param \Magento\Eav\Model\Config $eavConfig * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy, \Magento\Eav\Model\Config $eavConfig, \Magento\Framework\Event\ManagerInterface $eventManager, diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Eav/Source.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Eav/Source.php index 5db3e871c6d..dac3ab33b25 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Eav/Source.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Eav/Source.php @@ -24,7 +24,7 @@ class Source extends AbstractEav /** * Construct * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy * @param \Magento\Eav\Model\Config $eavConfig * @param \Magento\Framework\Event\ManagerInterface $eventManager @@ -32,7 +32,7 @@ class Source extends AbstractEav * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy, \Magento\Eav\Model\Config $eavConfig, \Magento\Framework\Event\ManagerInterface $eventManager, diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php index e9f9a0a5b9e..0df889441d2 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php @@ -46,7 +46,7 @@ class DefaultPrice extends AbstractIndexer implements PriceInterface /** * Class constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy * @param \Magento\Eav\Model\Config $eavConfig * @param \Magento\Framework\Event\ManagerInterface $eventManager @@ -54,7 +54,7 @@ class DefaultPrice extends AbstractIndexer implements PriceInterface * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy, \Magento\Eav\Model\Config $eavConfig, \Magento\Framework\Event\ManagerInterface $eventManager, diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Link.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Link.php index 477f98bd67c..de3811c1206 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Link.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Link.php @@ -10,7 +10,7 @@ namespace Magento\Catalog\Model\ResourceModel\Product; * * @author Magento Core Team <core@magentocommerce.com> */ -class Link extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Link extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Product Link Attributes Table @@ -27,12 +27,12 @@ class Link extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_catalogProductRelation; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param Relation $catalogProductRelation * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, Relation $catalogProductRelation, $connectionName = null ) { diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Link/Collection.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Link/Collection.php index 831b96b2ce3..011a3cda6ad 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Link/Collection.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Link/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Catalog\Model\ResourceModel\Product\Link; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Product object diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Option.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Option.php index 0656139b1fc..cf7445dabfe 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Option.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Option.php @@ -10,7 +10,7 @@ namespace Magento\Catalog\Model\ResourceModel\Product; * * @author Magento Core Team <core@magentocommerce.com> */ -class Option extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Option extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Store manager @@ -36,14 +36,14 @@ class Option extends \Magento\Framework\Model\ModelResource\Db\AbstractDb /** * Class constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Directory\Model\CurrencyFactory $currencyFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\App\Config\ScopeConfigInterface $config, @@ -69,7 +69,7 @@ class Option extends \Magento\Framework\Model\ModelResource\Db\AbstractDb * Save options store data * * @param \Magento\Framework\Model\AbstractModel $object - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected function _afterSave(\Magento\Framework\Model\AbstractModel $object) { diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Option/Collection.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Option/Collection.php index 8b03136e4a1..ba2e7b2128d 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Option/Collection.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Option/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Catalog\Model\ResourceModel\Product\Option; * * @SuppressWarnings(PHPMD.LongVariable) */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Store manager @@ -34,7 +34,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Catalog\Model\ResourceModel\Product\Option\Value\CollectionFactory $optionValueCollectionFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -44,7 +44,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Catalog\Model\ResourceModel\Product\Option\Value\CollectionFactory $optionValueCollectionFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_optionValueCollectionFactory = $optionValueCollectionFactory; $this->_storeManager = $storeManager; diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Option/Value.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Option/Value.php index 791b83f081c..87ad710edc9 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Option/Value.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Option/Value.php @@ -10,7 +10,7 @@ namespace Magento\Catalog\Model\ResourceModel\Product\Option; * * @author Magento Core Team <core@magentocommerce.com> */ -class Value extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Value extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Store manager @@ -36,14 +36,14 @@ class Value extends \Magento\Framework\Model\ModelResource\Db\AbstractDb /** * Class constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Directory\Model\CurrencyFactory $currencyFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\App\Config\ScopeConfigInterface $config, @@ -70,7 +70,7 @@ class Value extends \Magento\Framework\Model\ModelResource\Db\AbstractDb * Save options store data * * @param \Magento\Framework\Model\AbstractModel $object - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected function _afterSave(\Magento\Framework\Model\AbstractModel $object) { diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Option/Value/Collection.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Option/Value/Collection.php index fa018d34952..c18eb0f0b58 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Option/Value/Collection.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Option/Value/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Catalog\Model\ResourceModel\Product\Option\Value; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource initialization diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Relation.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Relation.php index a53b14ff649..846a904a117 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Relation.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Relation.php @@ -10,7 +10,7 @@ namespace Magento\Catalog\Model\ResourceModel\Product; * * @author Magento Core Team <core@magentocommerce.com> */ -class Relation extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Relation extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize resource model and define main table diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Product/Website.php b/app/code/Magento/Catalog/Model/ResourceModel/Product/Website.php index 7cd4350c80b..9e554114481 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Product/Website.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Product/Website.php @@ -8,7 +8,7 @@ namespace Magento\Catalog\Model\ResourceModel\Product; /** * Catalog Product Website Resource Model */ -class Website extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Website extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Store manager @@ -18,12 +18,12 @@ class Website extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_storeManager; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Store\Model\StoreManagerInterface $storeManager, $connectionName = null ) { diff --git a/app/code/Magento/Catalog/Model/ResourceModel/Url.php b/app/code/Magento/Catalog/Model/ResourceModel/Url.php index 4748966e31b..157edc0b176 100644 --- a/app/code/Magento/Catalog/Model/ResourceModel/Url.php +++ b/app/code/Magento/Catalog/Model/ResourceModel/Url.php @@ -12,7 +12,7 @@ namespace Magento\Catalog\Model\ResourceModel; */ use Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator; -class Url extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Url extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Stores configuration array @@ -88,7 +88,7 @@ class Url extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $productResource; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Eav\Model\Config $eavConfig * @param Product $productResource @@ -97,7 +97,7 @@ class Url extends \Magento\Framework\Model\ModelResource\Db\AbstractDb * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Eav\Model\Config $eavConfig, Product $productResource, diff --git a/app/code/Magento/Catalog/Model/System/Config/Backend/Catalog/Url/Rewrite/Suffix.php b/app/code/Magento/Catalog/Model/System/Config/Backend/Catalog/Url/Rewrite/Suffix.php index 42ddbde393f..de1649851c6 100644 --- a/app/code/Magento/Catalog/Model/System/Config/Backend/Catalog/Url/Rewrite/Suffix.php +++ b/app/code/Magento/Catalog/Model/System/Config/Backend/Catalog/Url/Rewrite/Suffix.php @@ -39,7 +39,7 @@ class Suffix extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param \Magento\UrlRewrite\Helper\UrlRewrite $urlRewriteHelper * @param \Magento\Store\Model\StoreManagerInterface $storeManager @@ -56,7 +56,7 @@ class Suffix extends \Magento\Framework\App\Config\Value \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\App\ResourceConnection $appResource, \Magento\UrlRewrite\Model\UrlFinderInterface $urlFinder, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Catalog/Test/Unit/Model/CategoryTest.php b/app/code/Magento/Catalog/Test/Unit/Model/CategoryTest.php index fd1e1178833..3b24090d3ec 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/CategoryTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/CategoryTest.php @@ -73,7 +73,7 @@ class CategoryTest extends \PHPUnit_Framework_TestCase /** @var \Magento\UrlRewrite\Model\UrlFinderInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $urlFinder; - /** @var \Magento\Framework\Model\ModelResource\AbstractResource|\PHPUnit_Framework_MockObject_MockObject */ + /** @var \Magento\Framework\Model\ResourceModel\AbstractResource|\PHPUnit_Framework_MockObject_MockObject */ protected $resource; /** @var \Magento\Framework\Indexer\IndexerRegistry|\PHPUnit_Framework_MockObject_MockObject */ diff --git a/app/code/Magento/Catalog/Test/Unit/Model/CustomOptions/CustomOptionTest.php b/app/code/Magento/Catalog/Test/Unit/Model/CustomOptions/CustomOptionTest.php index e5242c58383..511edd774b4 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/CustomOptions/CustomOptionTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/CustomOptions/CustomOptionTest.php @@ -42,7 +42,7 @@ class CustomOptionTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->getMock(); - $resource = $this->getMockBuilder('Magento\Framework\Model\ModelResource\AbstractResource') + $resource = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\AbstractResource') ->disableOriginalConstructor() ->getMock(); diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Entity/AttributeTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Entity/AttributeTest.php index 56dddc969e1..a396bcca4c0 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/Entity/AttributeTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/Entity/AttributeTest.php @@ -87,7 +87,7 @@ class AttributeTest extends \PHPUnit_Framework_TestCase protected $lockValidatorMock; /** - * @var \Magento\Framework\Model\ModelResource\AbstractResource|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\AbstractResource|\PHPUnit_Framework_MockObject_MockObject */ private $resourceMock; @@ -179,7 +179,7 @@ class AttributeTest extends \PHPUnit_Framework_TestCase ->getMock(); $this->dateTimeFormatter = $this->getMock('Magento\Framework\Stdlib\DateTime\DateTimeFormatterInterface'); - $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\AbstractResource') + $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\AbstractResource') ->setMethods(['_construct', 'getConnection', 'getIdFieldName', 'saveInSetIncluding']) ->getMockForAbstractClass(); $this->cacheManager = $this->getMockBuilder('Magento\Framework\App\CacheInterface') diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Product/ActionTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Product/ActionTest.php index 41660300983..18cd7be396c 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/Product/ActionTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/Product/ActionTest.php @@ -58,7 +58,7 @@ class ActionTest extends \PHPUnit_Framework_TestCase false ); $this->resource = $this->getMock( - '\Magento\Framework\Model\ModelResource\AbstractResource', + '\Magento\Framework\Model\ResourceModel\AbstractResource', [ 'updateAttributes', 'getConnection', diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Product/Attribute/Backend/MediaTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Product/Attribute/Backend/MediaTest.php index 53accd9dde6..e3dc8a4d6e6 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/Product/Attribute/Backend/MediaTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/Product/Attribute/Backend/MediaTest.php @@ -146,7 +146,7 @@ class MediaTest extends \PHPUnit_Framework_TestCase false ); $attributeEntity = $this->getMock( - '\Magento\Framework\Model\ModelResource\AbstractResourceAbstractEntity', + '\Magento\Framework\Model\ResourceModel\AbstractResourceAbstractEntity', ['checkAttributeUniqueValue'] ); $attribute->expects($this->any())->method('getAttributeCode')->will($this->returnValue($attributeCode)); diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Product/LinkTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Product/LinkTest.php index 2a94798288d..eb86d59a886 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/Product/LinkTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/Product/LinkTest.php @@ -15,7 +15,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase protected $model; /** - * @var \Magento\Framework\Model\ModelResource\AbstractResource|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\AbstractResource|\PHPUnit_Framework_MockObject_MockObject */ protected $resource; @@ -61,7 +61,7 @@ class LinkTest extends \PHPUnit_Framework_TestCase ->will($this->returnValue($this->productCollection)); $this->resource = $this->getMock( - 'Magento\Framework\Model\ModelResource\AbstractResource', + 'Magento\Framework\Model\ResourceModel\AbstractResource', [ 'saveProductLinks', 'getAttributeTypeTable', diff --git a/app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php b/app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php index b96b178db6c..c52c96470fd 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php @@ -444,7 +444,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase false ); - $abstractDbMock = $this->getMockBuilder('\Magento\Framework\Model\ModelResource\Db\AbstractDb') + $abstractDbMock = $this->getMockBuilder('\Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->setMethods([ 'getCategoryCollection', diff --git a/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Eav/AttributeTest.php b/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Eav/AttributeTest.php index c82859e578e..ab8d0328ca6 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Eav/AttributeTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Eav/AttributeTest.php @@ -88,7 +88,7 @@ class AttributeTest extends \PHPUnit_Framework_TestCase $dbAdapterMock->expects($this->any())->method('getTransactionLevel')->will($this->returnValue(1)); $this->resourceMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\AbstractResource', + 'Magento\Framework\Model\ResourceModel\AbstractResource', ['_construct', 'getConnection', 'getIdFieldName', 'save', 'saveInSetIncluding', 'isUsedBySuperProducts', 'delete'], [], '', false diff --git a/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Product/FlatTest.php b/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Product/FlatTest.php index 711939f0bf6..4b7ee54ac6b 100644 --- a/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Product/FlatTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Model/ResourceModel/Product/FlatTest.php @@ -45,7 +45,7 @@ class FlatTest extends \PHPUnit_Framework_TestCase ); $this->_model = new \Magento\Catalog\Model\ResourceModel\Product\Flat( - $this->getMock('Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false), + $this->getMock('Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false), $this->_storeManagerInterface, $this->getMock('Magento\Catalog\Model\Config', [], [], '', false), $this->getMock('Magento\Catalog\Model\Product\Attribute\DefaultAttributes') diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php index 09c883b094a..c49eeed41ce 100644 --- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php +++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php @@ -10,8 +10,8 @@ namespace Magento\CatalogImportExport\Model\Import; use Magento\Framework\App\Filesystem\DirectoryList; use Magento\CatalogImportExport\Model\Import\Product\RowValidatorInterface as ValidatorInterface; -use Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface; -use Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor; +use Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface; +use Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor; use Magento\Framework\Stdlib\DateTime; use Magento\ImportExport\Model\Import\ErrorProcessing\ProcessingError; use Magento\ImportExport\Model\Import\ErrorProcessing\ProcessingErrorAggregatorInterface; diff --git a/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php b/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php index 6c9f1f89ff5..d5fbfaf8c9e 100644 --- a/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php +++ b/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php @@ -135,10 +135,10 @@ class ProductTest extends \Magento\ImportExport\Test\Unit\Model\Import\AbstractI /** @var \Magento\CatalogImportExport\Model\Import\Product\Validator|\PHPUnit_Framework_MockObject_MockObject */ protected $validator; - /** @var \Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor|\PHPUnit_Framework_MockObject_MockObject */ + /** @var \Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor|\PHPUnit_Framework_MockObject_MockObject */ protected $objectRelationProcessor; - /** @var \Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface|\PHPUnit_Framework_MockObject_MockObject */ + /** @var \Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $transactionManager; /** @var \Magento\CatalogImportExport\Model\Import\Product\TaxClassProcessor|\PHPUnit_Framework_MockObject_MockObject */ @@ -302,11 +302,11 @@ class ProductTest extends \Magento\ImportExport\Test\Unit\Model\Import\AbstractI ->disableOriginalConstructor() ->getMock(); $this->objectRelationProcessor = - $this->getMockBuilder('\Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor') + $this->getMockBuilder('\Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor') ->disableOriginalConstructor() ->getMock(); $this->transactionManager = - $this->getMockBuilder('\Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface') + $this->getMockBuilder('\Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface') ->getMock(); $this->taxClassProcessor = diff --git a/app/code/Magento/CatalogInventory/Model/Adminhtml/Stock/Item.php b/app/code/Magento/CatalogInventory/Model/Adminhtml/Stock/Item.php index ca255a27a30..f8e9cba0301 100644 --- a/app/code/Magento/CatalogInventory/Model/Adminhtml/Stock/Item.php +++ b/app/code/Magento/CatalogInventory/Model/Adminhtml/Stock/Item.php @@ -37,7 +37,7 @@ class Item extends \Magento\CatalogInventory\Model\Stock\Item implements Identit * @param StockRegistryInterface $stockRegistry * @param StockItemRepositoryInterface $stockItemRepository * @param GroupManagementInterface $groupManagement - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -53,7 +53,7 @@ class Item extends \Magento\CatalogInventory\Model\Stock\Item implements Identit StockRegistryInterface $stockRegistry, StockItemRepositoryInterface $stockItemRepository, GroupManagementInterface $groupManagement, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/CatalogInventory/Model/Config/Backend/AbstractValue.php b/app/code/Magento/CatalogInventory/Model/Config/Backend/AbstractValue.php index 58c52b89377..5f38c7074b6 100644 --- a/app/code/Magento/CatalogInventory/Model/Config/Backend/AbstractValue.php +++ b/app/code/Magento/CatalogInventory/Model/Config/Backend/AbstractValue.php @@ -27,7 +27,7 @@ abstract class AbstractValue extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\CatalogInventory\Api\StockIndexInterface $stockIndex * @param \Magento\CatalogInventory\Model\Indexer\Stock\Processor $stockIndexerProcessor - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -37,7 +37,7 @@ abstract class AbstractValue extends \Magento\Framework\App\Config\Value \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\CatalogInventory\Api\StockIndexInterface $stockIndex, \Magento\CatalogInventory\Model\Indexer\Stock\Processor $stockIndexerProcessor, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/DefaultStock.php b/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/DefaultStock.php index cf95bd1bfc3..3b9ed644fc8 100644 --- a/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/DefaultStock.php +++ b/app/code/Magento/CatalogInventory/Model/ResourceModel/Indexer/Stock/DefaultStock.php @@ -37,14 +37,14 @@ class DefaultStock extends AbstractIndexer implements StockInterface /** * Class constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy * @param \Magento\Eav\Model\Config $eavConfig * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy, \Magento\Eav\Model\Config $eavConfig, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, diff --git a/app/code/Magento/CatalogInventory/Model/ResourceModel/Stock.php b/app/code/Magento/CatalogInventory/Model/ResourceModel/Stock.php index 12efcd806a0..c0dee9c17f8 100644 --- a/app/code/Magento/CatalogInventory/Model/ResourceModel/Stock.php +++ b/app/code/Magento/CatalogInventory/Model/ResourceModel/Stock.php @@ -12,7 +12,7 @@ use Magento\Store\Model\StoreManagerInterface; /** * Stock resource model */ -class Stock extends \Magento\Framework\Model\ModelResource\Db\AbstractDb implements QtyCounterInterface +class Stock extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb implements QtyCounterInterface { /** * @var StockConfigurationInterface @@ -79,7 +79,7 @@ class Stock extends \Magento\Framework\Model\ModelResource\Db\AbstractDb impleme protected $storeManager; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param StockConfigurationInterface $stockConfiguration @@ -87,7 +87,7 @@ class Stock extends \Magento\Framework\Model\ModelResource\Db\AbstractDb impleme * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\Stdlib\DateTime $dateTime, StockConfigurationInterface $stockConfiguration, diff --git a/app/code/Magento/CatalogInventory/Model/ResourceModel/Stock/Item.php b/app/code/Magento/CatalogInventory/Model/ResourceModel/Stock/Item.php index 898270f9ec8..3613e9de965 100644 --- a/app/code/Magento/CatalogInventory/Model/ResourceModel/Stock/Item.php +++ b/app/code/Magento/CatalogInventory/Model/ResourceModel/Stock/Item.php @@ -9,12 +9,12 @@ use Magento\CatalogInventory\Api\Data\StockItemInterface; use Magento\CatalogInventory\Model\Indexer\Stock\Processor; use Magento\Framework\App\ResourceConnection as AppResource; use Magento\Framework\Model\AbstractModel; -use Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface; +use Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface; /** * Stock item resource model */ -class Item extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Item extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Whether index events should be processed immediately @@ -29,12 +29,12 @@ class Item extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $stockIndexerProcessor; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param Processor $processor * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, Processor $processor, $connectionName = null ) { diff --git a/app/code/Magento/CatalogInventory/Model/ResourceModel/Stock/Status.php b/app/code/Magento/CatalogInventory/Model/ResourceModel/Stock/Status.php index 2cf5d1a092a..64e45b1f09f 100644 --- a/app/code/Magento/CatalogInventory/Model/ResourceModel/Stock/Status.php +++ b/app/code/Magento/CatalogInventory/Model/ResourceModel/Stock/Status.php @@ -10,7 +10,7 @@ use Magento\CatalogInventory\Model\Stock; /** * CatalogInventory Stock Status per website Resource Model */ -class Status extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Status extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Store model manager @@ -32,14 +32,14 @@ class Status extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $eavConfig; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Store\Model\WebsiteFactory $websiteFactory * @param \Magento\Eav\Model\Config $eavConfig * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Store\Model\WebsiteFactory $websiteFactory, \Magento\Eav\Model\Config $eavConfig, diff --git a/app/code/Magento/CatalogInventory/Model/Stock/Item.php b/app/code/Magento/CatalogInventory/Model/Stock/Item.php index 5d66c2d8577..a6913cd2e01 100644 --- a/app/code/Magento/CatalogInventory/Model/Stock/Item.php +++ b/app/code/Magento/CatalogInventory/Model/Stock/Item.php @@ -99,7 +99,7 @@ class Item extends AbstractExtensibleModel implements StockItemInterface * @param StockConfigurationInterface $stockConfiguration * @param StockRegistryInterface $stockRegistry * @param StockItemRepositoryInterface $stockItemRepository - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -114,7 +114,7 @@ class Item extends AbstractExtensibleModel implements StockItemInterface StockConfigurationInterface $stockConfiguration, StockRegistryInterface $stockRegistry, StockItemRepositoryInterface $stockItemRepository, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/CatalogInventory/Model/Stock/Status.php b/app/code/Magento/CatalogInventory/Model/Stock/Status.php index b6a02040343..fe76a6364e8 100644 --- a/app/code/Magento/CatalogInventory/Model/Stock/Status.php +++ b/app/code/Magento/CatalogInventory/Model/Stock/Status.php @@ -41,7 +41,7 @@ class Status extends AbstractExtensibleModel implements StockStatusInterface * @param ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory * @param StockRegistryInterface $stockRegistry - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -51,7 +51,7 @@ class Status extends AbstractExtensibleModel implements StockStatusInterface ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, StockRegistryInterface $stockRegistry, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/CatalogInventory/Model/System/Config/Backend/Minsaleqty.php b/app/code/Magento/CatalogInventory/Model/System/Config/Backend/Minsaleqty.php index ea89069d8c5..eddd3316cd8 100644 --- a/app/code/Magento/CatalogInventory/Model/System/Config/Backend/Minsaleqty.php +++ b/app/code/Magento/CatalogInventory/Model/System/Config/Backend/Minsaleqty.php @@ -22,7 +22,7 @@ class Minsaleqty extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\CatalogInventory\Helper\Minsaleqty $catalogInventoryMinsaleqty - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -31,7 +31,7 @@ class Minsaleqty extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\CatalogInventory\Helper\Minsaleqty $catalogInventoryMinsaleqty, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/CatalogInventory/Test/Unit/Model/Adminhtml/Stock/ItemTest.php b/app/code/Magento/CatalogInventory/Test/Unit/Model/Adminhtml/Stock/ItemTest.php index fac43557928..94c4ede49a1 100644 --- a/app/code/Magento/CatalogInventory/Test/Unit/Model/Adminhtml/Stock/ItemTest.php +++ b/app/code/Magento/CatalogInventory/Test/Unit/Model/Adminhtml/Stock/ItemTest.php @@ -18,7 +18,7 @@ class ItemTest extends \PHPUnit_Framework_TestCase protected function setUp() { $resourceMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\AbstractResource', + 'Magento\Framework\Model\ResourceModel\AbstractResource', ['_construct', 'getConnection', 'getIdFieldName'], [], '', diff --git a/app/code/Magento/CatalogRule/Model/ResourceModel/Rule.php b/app/code/Magento/CatalogRule/Model/ResourceModel/Rule.php index cc2a5aa3b58..7a0e2cec1f2 100644 --- a/app/code/Magento/CatalogRule/Model/ResourceModel/Rule.php +++ b/app/code/Magento/CatalogRule/Model/ResourceModel/Rule.php @@ -93,7 +93,7 @@ class Rule extends \Magento\Rule\Model\ResourceModel\AbstractResource protected $priceCurrency; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param Product\ConditionFactory $conditionFactory * @param \Magento\Framework\Stdlib\DateTime\DateTime $coreDate @@ -107,7 +107,7 @@ class Rule extends \Magento\Rule\Model\ResourceModel\AbstractResource * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Catalog\Model\Product\ConditionFactory $conditionFactory, \Magento\Framework\Stdlib\DateTime\DateTime $coreDate, @@ -146,7 +146,7 @@ class Rule extends \Magento\Rule\Model\ResourceModel\AbstractResource * Add customer group ids and website ids to rule data after load * * @param \Magento\Framework\Model\AbstractModel $object - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected function _afterLoad(AbstractModel $object) { diff --git a/app/code/Magento/CatalogRule/Model/ResourceModel/Rule/Product/Price.php b/app/code/Magento/CatalogRule/Model/ResourceModel/Rule/Product/Price.php index 23af2e19f99..071c788d65e 100644 --- a/app/code/Magento/CatalogRule/Model/ResourceModel/Rule/Product/Price.php +++ b/app/code/Magento/CatalogRule/Model/ResourceModel/Rule/Product/Price.php @@ -11,7 +11,7 @@ */ namespace Magento\CatalogRule\Model\ResourceModel\Rule\Product; -class Price extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Price extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize connection and define main table diff --git a/app/code/Magento/CatalogRule/Model/ResourceModel/Rule/Product/Price/Collection.php b/app/code/Magento/CatalogRule/Model/ResourceModel/Rule/Product/Price/Collection.php index 186a1cee58c..13c7d3fc3b9 100644 --- a/app/code/Magento/CatalogRule/Model/ResourceModel/Rule/Product/Price/Collection.php +++ b/app/code/Magento/CatalogRule/Model/ResourceModel/Rule/Product/Price/Collection.php @@ -5,7 +5,7 @@ */ namespace Magento\CatalogRule\Model\ResourceModel\Rule\Product\Price; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * @return void diff --git a/app/code/Magento/CatalogRule/Model/Rule.php b/app/code/Magento/CatalogRule/Model/Rule.php index f953564e47e..66f3affdcea 100644 --- a/app/code/Magento/CatalogRule/Model/Rule.php +++ b/app/code/Magento/CatalogRule/Model/Rule.php @@ -104,7 +104,7 @@ class Rule extends \Magento\Rule\Model\AbstractModel protected $_relatedCacheTypes; /** - * @var \Magento\Framework\Model\ModelResource\Iterator + * @var \Magento\Framework\Model\ResourceModel\Iterator */ protected $_resourceIterator; @@ -158,13 +158,13 @@ class Rule extends \Magento\Rule\Model\AbstractModel * @param \Magento\CatalogRule\Model\Rule\Condition\CombineFactory $combineFactory * @param \Magento\CatalogRule\Model\Rule\Action\CollectionFactory $actionCollectionFactory * @param \Magento\Catalog\Model\ProductFactory $productFactory - * @param \Magento\Framework\Model\ModelResource\Iterator $resourceIterator + * @param \Magento\Framework\Model\ResourceModel\Iterator $resourceIterator * @param \Magento\Customer\Model\Session $customerSession * @param \Magento\CatalogRule\Helper\Data $catalogRuleData * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypesList * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param \Magento\CatalogRule\Model\Indexer\Rule\RuleProductProcessor $ruleProductProcessor - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $relatedCacheTypes * @param array $data @@ -180,13 +180,13 @@ class Rule extends \Magento\Rule\Model\AbstractModel \Magento\CatalogRule\Model\Rule\Condition\CombineFactory $combineFactory, \Magento\CatalogRule\Model\Rule\Action\CollectionFactory $actionCollectionFactory, \Magento\Catalog\Model\ProductFactory $productFactory, - \Magento\Framework\Model\ModelResource\Iterator $resourceIterator, + \Magento\Framework\Model\ResourceModel\Iterator $resourceIterator, \Magento\Customer\Model\Session $customerSession, \Magento\CatalogRule\Helper\Data $catalogRuleData, \Magento\Framework\App\Cache\TypeListInterface $cacheTypesList, \Magento\Framework\Stdlib\DateTime $dateTime, \Magento\CatalogRule\Model\Indexer\Rule\RuleProductProcessor $ruleProductProcessor, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $relatedCacheTypes = [], array $data = [] diff --git a/app/code/Magento/CatalogRule/Test/Unit/Model/RuleTest.php b/app/code/Magento/CatalogRule/Test/Unit/Model/RuleTest.php index 2cede19ddbc..bb8b7521642 100644 --- a/app/code/Magento/CatalogRule/Test/Unit/Model/RuleTest.php +++ b/app/code/Magento/CatalogRule/Test/Unit/Model/RuleTest.php @@ -47,7 +47,7 @@ class RuleTest extends \PHPUnit_Framework_TestCase protected $_productCollectionFactory; /** - * @var \Magento\Framework\Model\ModelResource\Iterator|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Iterator|\PHPUnit_Framework_MockObject_MockObject */ protected $_resourceIterator; @@ -121,7 +121,7 @@ class RuleTest extends \PHPUnit_Framework_TestCase ); $this->_resourceIterator = $this->getMock( - '\Magento\Framework\Model\ModelResource\Iterator', + '\Magento\Framework\Model\ResourceModel\Iterator', ['walk'], [], '', diff --git a/app/code/Magento/CatalogSearch/Model/Adminhtml/System/Config/Backend/Engine.php b/app/code/Magento/CatalogSearch/Model/Adminhtml/System/Config/Backend/Engine.php index cf56ff5dc49..4e25ed12fc3 100644 --- a/app/code/Magento/CatalogSearch/Model/Adminhtml/System/Config/Backend/Engine.php +++ b/app/code/Magento/CatalogSearch/Model/Adminhtml/System/Config/Backend/Engine.php @@ -18,7 +18,7 @@ class Engine extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -27,7 +27,7 @@ class Engine extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/CatalogSearch/Model/Fulltext.php b/app/code/Magento/CatalogSearch/Model/Fulltext.php index 890cc1ade71..d701ab40c86 100644 --- a/app/code/Magento/CatalogSearch/Model/Fulltext.php +++ b/app/code/Magento/CatalogSearch/Model/Fulltext.php @@ -8,7 +8,7 @@ namespace Magento\CatalogSearch\Model; use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Framework\Data\Collection\AbstractDb as DbCollection; use Magento\Framework\Model\Context; -use Magento\Framework\Model\ModelResource\AbstractResource; +use Magento\Framework\Model\ResourceModel\AbstractResource; use Magento\Framework\Registry; use Magento\Search\Model\QueryFactory; diff --git a/app/code/Magento/CatalogSearch/Model/ResourceModel/Advanced.php b/app/code/Magento/CatalogSearch/Model/ResourceModel/Advanced.php index 4c7ca494a0f..4dafffbf8df 100644 --- a/app/code/Magento/CatalogSearch/Model/ResourceModel/Advanced.php +++ b/app/code/Magento/CatalogSearch/Model/ResourceModel/Advanced.php @@ -10,7 +10,7 @@ namespace Magento\CatalogSearch\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Advanced extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Advanced extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Core event manager proxy @@ -29,13 +29,13 @@ class Advanced extends \Magento\Framework\Model\ModelResource\Db\AbstractDb /** * Construct * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\Event\ManagerInterface $eventManager, $connectionName = null diff --git a/app/code/Magento/CatalogSearch/Model/ResourceModel/Fulltext.php b/app/code/Magento/CatalogSearch/Model/ResourceModel/Fulltext.php index a84b944a98b..1e1dd3cda03 100644 --- a/app/code/Magento/CatalogSearch/Model/ResourceModel/Fulltext.php +++ b/app/code/Magento/CatalogSearch/Model/ResourceModel/Fulltext.php @@ -8,7 +8,7 @@ namespace Magento\CatalogSearch\Model\ResourceModel; /** * CatalogSearch Fulltext Index resource model */ -class Fulltext extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Fulltext extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Core event manager proxy @@ -18,12 +18,12 @@ class Fulltext extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_eventManager; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Event\ManagerInterface $eventManager, $connectionName = null ) { diff --git a/app/code/Magento/CatalogSearch/Test/Unit/Model/ResourceModel/FulltextTest.php b/app/code/Magento/CatalogSearch/Test/Unit/Model/ResourceModel/FulltextTest.php index 12aebd01080..df0561cf3b7 100644 --- a/app/code/Magento/CatalogSearch/Test/Unit/Model/ResourceModel/FulltextTest.php +++ b/app/code/Magento/CatalogSearch/Test/Unit/Model/ResourceModel/FulltextTest.php @@ -9,7 +9,7 @@ namespace Magento\CatalogSearch\Test\Unit\Model\ResourceModel; use Magento\CatalogSearch\Model\ResourceModel\Fulltext; use Magento\Framework\App\ResourceConnection; use Magento\Framework\DB\Adapter\AdapterInterface; -use Magento\Framework\Model\ModelResource\Db\Context; +use Magento\Framework\Model\ResourceModel\Db\Context; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; class FulltextTest extends \PHPUnit_Framework_TestCase @@ -33,7 +33,7 @@ class FulltextTest extends \PHPUnit_Framework_TestCase protected function setUp() { - $this->context = $this->getMockBuilder('\Magento\Framework\Model\ModelResource\Db\Context') + $this->context = $this->getMockBuilder('\Magento\Framework\Model\ResourceModel\Db\Context') ->disableOriginalConstructor() ->getMock(); $this->resource = $this->getMockBuilder('\Magento\Framework\App\ResourceConnection') diff --git a/app/code/Magento/CatalogUrlRewrite/Model/ResourceModel/Category/Product.php b/app/code/Magento/CatalogUrlRewrite/Model/ResourceModel/Category/Product.php index 9d294393900..316b9a6d5c1 100644 --- a/app/code/Magento/CatalogUrlRewrite/Model/ResourceModel/Category/Product.php +++ b/app/code/Magento/CatalogUrlRewrite/Model/ResourceModel/Category/Product.php @@ -5,7 +5,7 @@ */ namespace Magento\CatalogUrlRewrite\Model\ResourceModel\Category; -use Magento\Framework\Model\ModelResource\Db\AbstractDb; +use Magento\Framework\Model\ResourceModel\Db\AbstractDb; class Product extends AbstractDb { diff --git a/app/code/Magento/CatalogUrlRewrite/Model/ResourceModel/Category/ProductCollection.php b/app/code/Magento/CatalogUrlRewrite/Model/ResourceModel/Category/ProductCollection.php index 44c1fb5e660..a012da577c5 100644 --- a/app/code/Magento/CatalogUrlRewrite/Model/ResourceModel/Category/ProductCollection.php +++ b/app/code/Magento/CatalogUrlRewrite/Model/ResourceModel/Category/ProductCollection.php @@ -5,7 +5,7 @@ */ namespace Magento\CatalogUrlRewrite\Model\ResourceModel\Category; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; class ProductCollection extends AbstractCollection { diff --git a/app/code/Magento/CatalogWidget/Model/Rule.php b/app/code/Magento/CatalogWidget/Model/Rule.php index 9b784c8c0f4..5ad9c4c4877 100644 --- a/app/code/Magento/CatalogWidget/Model/Rule.php +++ b/app/code/Magento/CatalogWidget/Model/Rule.php @@ -22,7 +22,7 @@ class Rule extends \Magento\Rule\Model\AbstractModel * @param \Magento\Framework\Data\FormFactory $formFactory * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate * @param Rule\Condition\CombineFactory $conditionsFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -32,7 +32,7 @@ class Rule extends \Magento\Rule\Model\AbstractModel \Magento\Framework\Data\FormFactory $formFactory, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\CatalogWidget\Model\Rule\Condition\CombineFactory $conditionsFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Checkout/Model/ResourceModel/Cart.php b/app/code/Magento/Checkout/Model/ResourceModel/Cart.php index 23b434e6b75..f415ada130f 100644 --- a/app/code/Magento/Checkout/Model/ResourceModel/Cart.php +++ b/app/code/Magento/Checkout/Model/ResourceModel/Cart.php @@ -10,7 +10,7 @@ namespace Magento\Checkout\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Cart extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Cart extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Model initialization diff --git a/app/code/Magento/CheckoutAgreements/Model/ResourceModel/Agreement.php b/app/code/Magento/CheckoutAgreements/Model/ResourceModel/Agreement.php index 1aac5226375..1be4a148232 100644 --- a/app/code/Magento/CheckoutAgreements/Model/ResourceModel/Agreement.php +++ b/app/code/Magento/CheckoutAgreements/Model/ResourceModel/Agreement.php @@ -8,7 +8,7 @@ namespace Magento\CheckoutAgreements\Model\ResourceModel; /** * Resource Model for Checkout Agreement */ -class Agreement extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Agreement extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Framework\Filter\FilterManager @@ -16,13 +16,13 @@ class Agreement extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $filterManager; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Filter\FilterManager $filterManager * @param string $connectionName * @codeCoverageIgnore */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Filter\FilterManager $filterManager, $connectionName = null ) { diff --git a/app/code/Magento/CheckoutAgreements/Model/ResourceModel/Agreement/Collection.php b/app/code/Magento/CheckoutAgreements/Model/ResourceModel/Agreement/Collection.php index 28071d999f1..6356de345f5 100644 --- a/app/code/Magento/CheckoutAgreements/Model/ResourceModel/Agreement/Collection.php +++ b/app/code/Magento/CheckoutAgreements/Model/ResourceModel/Agreement/Collection.php @@ -8,7 +8,7 @@ namespace Magento\CheckoutAgreements\Model\ResourceModel\Agreement; /** * Resource Model for Agreement Collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * @var array diff --git a/app/code/Magento/Cms/Model/ResourceModel/AbstractCollection.php b/app/code/Magento/Cms/Model/ResourceModel/AbstractCollection.php index 104c36bd80a..7b2e0829cf4 100644 --- a/app/code/Magento/Cms/Model/ResourceModel/AbstractCollection.php +++ b/app/code/Magento/Cms/Model/ResourceModel/AbstractCollection.php @@ -8,7 +8,7 @@ namespace Magento\Cms\Model\ResourceModel; /** * Abstract collection of CMS pages and blocks */ -abstract class AbstractCollection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +abstract class AbstractCollection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Store manager @@ -24,7 +24,7 @@ abstract class AbstractCollection extends \Magento\Framework\Model\ModelResource * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\DB\Adapter\AdapterInterface|null $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb|null $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb|null $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory, @@ -33,7 +33,7 @@ abstract class AbstractCollection extends \Magento\Framework\Model\ModelResource \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); $this->storeManager = $storeManager; diff --git a/app/code/Magento/Cms/Model/ResourceModel/Block.php b/app/code/Magento/Cms/Model/ResourceModel/Block.php index 442f9274d31..32469ae77ac 100644 --- a/app/code/Magento/Cms/Model/ResourceModel/Block.php +++ b/app/code/Magento/Cms/Model/ResourceModel/Block.php @@ -8,7 +8,7 @@ namespace Magento\Cms\Model\ResourceModel; /** * CMS block model */ -class Block extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Block extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Framework\Stdlib\DateTime\DateTime @@ -25,13 +25,13 @@ class Block extends \Magento\Framework\Model\ModelResource\Db\AbstractDb /** * Construct * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime\DateTime $date * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime\DateTime $date, \Magento\Store\Model\StoreManagerInterface $storeManager, $connectionName = null diff --git a/app/code/Magento/Cms/Model/ResourceModel/Block/Grid/Collection.php b/app/code/Magento/Cms/Model/ResourceModel/Block/Grid/Collection.php index 21df8bca40c..e658aa86cb5 100644 --- a/app/code/Magento/Cms/Model/ResourceModel/Block/Grid/Collection.php +++ b/app/code/Magento/Cms/Model/ResourceModel/Block/Grid/Collection.php @@ -31,7 +31,7 @@ class Collection extends BlockCollection implements SearchResultInterface * @param string $resourceModel * @param string $model * @param string|null $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ @@ -47,7 +47,7 @@ class Collection extends BlockCollection implements SearchResultInterface $resourceModel, $model = 'Magento\Framework\View\Element\UiComponent\DataProvider\Document', $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct( $entityFactory, diff --git a/app/code/Magento/Cms/Model/ResourceModel/Page.php b/app/code/Magento/Cms/Model/ResourceModel/Page.php index 9d4634717ac..a0bcda0d530 100644 --- a/app/code/Magento/Cms/Model/ResourceModel/Page.php +++ b/app/code/Magento/Cms/Model/ResourceModel/Page.php @@ -11,7 +11,7 @@ namespace Magento\Cms\Model\ResourceModel; /** * Cms page mysql resource */ -class Page extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Page extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Store model @@ -40,14 +40,14 @@ class Page extends \Magento\Framework\Model\ModelResource\Db\AbstractDb /** * Construct * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime\DateTime $date * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime\DateTime $date, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\Stdlib\DateTime $dateTime, diff --git a/app/code/Magento/Cms/Model/ResourceModel/Page/Grid/Collection.php b/app/code/Magento/Cms/Model/ResourceModel/Page/Grid/Collection.php index 3eb31318395..49fbeaa47d6 100644 --- a/app/code/Magento/Cms/Model/ResourceModel/Page/Grid/Collection.php +++ b/app/code/Magento/Cms/Model/ResourceModel/Page/Grid/Collection.php @@ -27,12 +27,12 @@ class Collection extends PageCollection implements SearchResultInterface * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param mixed|null $mainTable - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $eventPrefix + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $eventPrefix * @param mixed $eventObject * @param mixed $resourceModel * @param string $model * @param null $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb|null $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb|null $resource * * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ @@ -48,7 +48,7 @@ class Collection extends PageCollection implements SearchResultInterface $resourceModel, $model = 'Magento\Framework\View\Element\UiComponent\DataProvider\Document', $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct( $entityFactory, diff --git a/app/code/Magento/Cms/Test/Unit/Model/PageTest.php b/app/code/Magento/Cms/Test/Unit/Model/PageTest.php index cb4e51d718f..b2a025a5589 100644 --- a/app/code/Magento/Cms/Test/Unit/Model/PageTest.php +++ b/app/code/Magento/Cms/Test/Unit/Model/PageTest.php @@ -58,7 +58,7 @@ class PageTest extends \PHPUnit_Framework_TestCase $this->getMockBuilder('Magento\Framework\Registry') ->disableOriginalConstructor() ->getMock(), - $this->getMockBuilder('Magento\Framework\Model\ModelResource\AbstractResource') + $this->getMockBuilder('Magento\Framework\Model\ResourceModel\AbstractResource') ->disableOriginalConstructor() ->setMethods( [ diff --git a/app/code/Magento/Cms/Test/Unit/Model/ResourceModel/AbstractCollectionTest.php b/app/code/Magento/Cms/Test/Unit/Model/ResourceModel/AbstractCollectionTest.php index 8a611f75029..e323765dabe 100644 --- a/app/code/Magento/Cms/Test/Unit/Model/ResourceModel/AbstractCollectionTest.php +++ b/app/code/Magento/Cms/Test/Unit/Model/ResourceModel/AbstractCollectionTest.php @@ -23,7 +23,7 @@ abstract class AbstractCollectionTest extends \PHPUnit_Framework_TestCase protected $objectManager; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resource; @@ -38,7 +38,7 @@ abstract class AbstractCollectionTest extends \PHPUnit_Framework_TestCase ->getMock(); $this->connection->expects($this->any())->method('select')->willReturn($this->select); - $this->resource = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\AbstractDb') + $this->resource = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->setMethods(['getConnection', 'getMainTable', 'getTable']) ->getMockForAbstractClass(); diff --git a/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php b/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php index 21ce20f6174..bdb08b0f04b 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php +++ b/app/code/Magento/Config/Model/Config/Backend/Admin/Custom.php @@ -59,7 +59,7 @@ class Custom extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\App\Config\Storage\WriterInterface $configWriter - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -68,7 +68,7 @@ class Custom extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Config\Storage\WriterInterface $configWriter, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/Admin/Robots.php b/app/code/Magento/Config/Model/Config/Backend/Admin/Robots.php index 0fe5834b863..50478bfb7b8 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Admin/Robots.php +++ b/app/code/Magento/Config/Model/Config/Backend/Admin/Robots.php @@ -28,7 +28,7 @@ class Robots extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\Filesystem $filesystem - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -37,7 +37,7 @@ class Robots extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\Filesystem $filesystem, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/Admin/Usecustom.php b/app/code/Magento/Config/Model/Config/Backend/Admin/Usecustom.php index 2b2de392e7d..ff429986e3a 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Admin/Usecustom.php +++ b/app/code/Magento/Config/Model/Config/Backend/Admin/Usecustom.php @@ -23,7 +23,7 @@ class Usecustom extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\App\Config\Storage\WriterInterface $configWriter - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -32,7 +32,7 @@ class Usecustom extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Config\Storage\WriterInterface $configWriter, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/Admin/Usesecretkey.php b/app/code/Magento/Config/Model/Config/Backend/Admin/Usesecretkey.php index 49298cb9288..3f77e3b07d1 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Admin/Usesecretkey.php +++ b/app/code/Magento/Config/Model/Config/Backend/Admin/Usesecretkey.php @@ -21,7 +21,7 @@ class Usesecretkey extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Backend\Model\UrlInterface $backendUrl - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -30,7 +30,7 @@ class Usesecretkey extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Backend\Model\UrlInterface $backendUrl, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/Baseurl.php b/app/code/Magento/Config/Model/Config/Backend/Baseurl.php index 9f9db6d0a99..30e63b7d2be 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Baseurl.php +++ b/app/code/Magento/Config/Model/Config/Backend/Baseurl.php @@ -17,7 +17,7 @@ class Baseurl extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\View\Asset\MergeService $mergeService - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -26,7 +26,7 @@ class Baseurl extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\View\Asset\MergeService $mergeService, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/AbstractCurrency.php b/app/code/Magento/Config/Model/Config/Backend/Currency/AbstractCurrency.php index 02ffa58b6b2..3daccc80463 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Currency/AbstractCurrency.php +++ b/app/code/Magento/Config/Model/Config/Backend/Currency/AbstractCurrency.php @@ -29,7 +29,7 @@ abstract class AbstractCurrency extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -38,7 +38,7 @@ abstract class AbstractCurrency extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php b/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php index f38db8cc6dd..cd9a7e643d3 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php +++ b/app/code/Magento/Config/Model/Config/Backend/Currency/Allow.php @@ -23,7 +23,7 @@ class Allow extends AbstractCurrency * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Framework\Locale\CurrencyInterface $localeCurrency - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -33,7 +33,7 @@ class Allow extends AbstractCurrency \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\Locale\CurrencyInterface $localeCurrency, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php b/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php index 8b000db0117..45470cc06a2 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php +++ b/app/code/Magento/Config/Model/Config/Backend/Currency/Base.php @@ -21,7 +21,7 @@ class Base extends AbstractCurrency * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -31,7 +31,7 @@ class Base extends AbstractCurrency \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Directory\Model\CurrencyFactory $currencyFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/Currency/Cron.php b/app/code/Magento/Config/Model/Config/Backend/Currency/Cron.php index 2575a80ec73..c88d752c82f 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Currency/Cron.php +++ b/app/code/Magento/Config/Model/Config/Backend/Currency/Cron.php @@ -22,7 +22,7 @@ class Cron extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -31,7 +31,7 @@ class Cron extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Config\ValueFactory $configValueFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/Encrypted.php b/app/code/Magento/Config/Model/Config/Backend/Encrypted.php index 51a78e6f188..71aa76e17b5 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Encrypted.php +++ b/app/code/Magento/Config/Model/Config/Backend/Encrypted.php @@ -23,7 +23,7 @@ class Encrypted extends \Magento\Framework\App\Config\Value implements * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -32,7 +32,7 @@ class Encrypted extends \Magento\Framework\App\Config\Value implements \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\Encryption\EncryptorInterface $encryptor, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/File.php b/app/code/Magento/Config/Model/Config/Backend/File.php index 1b03ae15671..8925877efcb 100644 --- a/app/code/Magento/Config/Model/Config/Backend/File.php +++ b/app/code/Magento/Config/Model/Config/Backend/File.php @@ -50,7 +50,7 @@ class File extends \Magento\Framework\App\Config\Value * @param \Magento\MediaStorage\Model\File\UploaderFactory $uploaderFactory * @param \Magento\Config\Model\Config\Backend\File\RequestData\RequestDataInterface $requestData * @param Filesystem $filesystem - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -61,7 +61,7 @@ class File extends \Magento\Framework\App\Config\Value \Magento\MediaStorage\Model\File\UploaderFactory $uploaderFactory, \Magento\Config\Model\Config\Backend\File\RequestData\RequestDataInterface $requestData, Filesystem $filesystem, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/Image/Adapter.php b/app/code/Magento/Config/Model/Config/Backend/Image/Adapter.php index 486df64d2fc..a8c3fa28862 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Image/Adapter.php +++ b/app/code/Magento/Config/Model/Config/Backend/Image/Adapter.php @@ -23,7 +23,7 @@ class Adapter extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\Image\AdapterFactory $imageFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -32,7 +32,7 @@ class Adapter extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\Image\AdapterFactory $imageFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/Locale.php b/app/code/Magento/Config/Model/Config/Backend/Locale.php index 6c7fca6df42..c6cec53f26a 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Locale.php +++ b/app/code/Magento/Config/Model/Config/Backend/Locale.php @@ -41,7 +41,7 @@ class Locale extends \Magento\Framework\App\Config\Value * @param \Magento\Store\Model\WebsiteFactory $websiteFactory * @param \Magento\Store\Model\StoreFactory $storeFactory * @param \Magento\Framework\Locale\CurrencyInterface $localeCurrency - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @@ -55,7 +55,7 @@ class Locale extends \Magento\Framework\App\Config\Value \Magento\Store\Model\WebsiteFactory $websiteFactory, \Magento\Store\Model\StoreFactory $storeFactory, \Magento\Framework\Locale\CurrencyInterface $localeCurrency, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/Log/Cron.php b/app/code/Magento/Config/Model/Config/Backend/Log/Cron.php index 83ae49a6cf7..61695bcf742 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Log/Cron.php +++ b/app/code/Magento/Config/Model/Config/Backend/Log/Cron.php @@ -30,7 +30,7 @@ class Cron extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param string $runModelPath * @param array $data @@ -40,7 +40,7 @@ class Cron extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Config\ValueFactory $configValueFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, $runModelPath = '', array $data = [] diff --git a/app/code/Magento/Config/Model/Config/Backend/Secure.php b/app/code/Magento/Config/Model/Config/Backend/Secure.php index 7eab9b7846f..ef41a60fe4e 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Secure.php +++ b/app/code/Magento/Config/Model/Config/Backend/Secure.php @@ -16,7 +16,7 @@ class Secure extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\View\Asset\MergeService $mergeService - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -25,7 +25,7 @@ class Secure extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\View\Asset\MergeService $mergeService, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/Store.php b/app/code/Magento/Config/Model/Config/Backend/Store.php index 85c10c62a18..69e62956915 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Store.php +++ b/app/code/Magento/Config/Model/Config/Backend/Store.php @@ -21,7 +21,7 @@ class Store extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\App\Config\MutableScopeConfigInterface $mutableConfig - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -30,7 +30,7 @@ class Store extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Config\MutableScopeConfigInterface $mutableConfig, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/Config/Backend/Translate.php b/app/code/Magento/Config/Model/Config/Backend/Translate.php index e91a44e91ae..28b908668f7 100644 --- a/app/code/Magento/Config/Model/Config/Backend/Translate.php +++ b/app/code/Magento/Config/Model/Config/Backend/Translate.php @@ -38,7 +38,7 @@ class Translate extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -48,7 +48,7 @@ class Translate extends \Magento\Framework\App\Config\Value \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Config/Model/ResourceModel/Config.php b/app/code/Magento/Config/Model/ResourceModel/Config.php index 4dcaea38a81..617a7bc5f09 100644 --- a/app/code/Magento/Config/Model/ResourceModel/Config.php +++ b/app/code/Magento/Config/Model/ResourceModel/Config.php @@ -3,9 +3,6 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ - -// @codingStandardsIgnoreFile - namespace Magento\Config\Model\ResourceModel; /** @@ -13,7 +10,8 @@ namespace Magento\Config\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Config extends \Magento\Framework\Model\ModelResource\Db\AbstractDb implements \Magento\Framework\App\Config\ConfigResource\ConfigInterface +class Config extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb + implements \Magento\Framework\App\Config\ConfigResource\ConfigInterface { /** * Define main table diff --git a/app/code/Magento/Config/Model/ResourceModel/Config/Data.php b/app/code/Magento/Config/Model/ResourceModel/Config/Data.php index 3beaf6e6ec4..fc7566af724 100644 --- a/app/code/Magento/Config/Model/ResourceModel/Config/Data.php +++ b/app/code/Magento/Config/Model/ResourceModel/Config/Data.php @@ -10,7 +10,7 @@ namespace Magento\Config\Model\ResourceModel\Config; * * @author Magento Core Team <core@magentocommerce.com> */ -class Data extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Data extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Define main table diff --git a/app/code/Magento/Config/Model/ResourceModel/Config/Data/Collection.php b/app/code/Magento/Config/Model/ResourceModel/Config/Data/Collection.php index f6394cabb2c..a8eed0304cf 100644 --- a/app/code/Magento/Config/Model/ResourceModel/Config/Data/Collection.php +++ b/app/code/Magento/Config/Model/ResourceModel/Config/Data/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Config\Model\ResourceModel\Config\Data; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Define resource model diff --git a/app/code/Magento/Config/Test/Unit/Model/Config/Backend/EncryptedTest.php b/app/code/Magento/Config/Test/Unit/Model/Config/Backend/EncryptedTest.php index c420c03a65f..ed284eb16dd 100644 --- a/app/code/Magento/Config/Test/Unit/Model/Config/Backend/EncryptedTest.php +++ b/app/code/Magento/Config/Test/Unit/Model/Config/Backend/EncryptedTest.php @@ -33,7 +33,7 @@ class EncryptedTest extends \PHPUnit_Framework_TestCase $this->returnValue($eventDispatcherMock) ); $this->_resourceMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\AbstractResource', + 'Magento\Framework\Model\ResourceModel\AbstractResource', [ '_construct', 'getConnection', diff --git a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php index f701da73b90..f11e401776d 100644 --- a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php +++ b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php @@ -7,7 +7,7 @@ */ namespace Magento\ConfigurableProduct\Model\ResourceModel\Product\Type; -class Configurable extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Configurable extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Catalog product relation @@ -17,12 +17,12 @@ class Configurable extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_catalogProductRelation; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Catalog\Model\ResourceModel\Product\Relation $catalogProductRelation * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Catalog\Model\ResourceModel\Product\Relation $catalogProductRelation, $connectionName = null ) { diff --git a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable/Attribute.php b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable/Attribute.php index b32eea47a18..f031775006b 100644 --- a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable/Attribute.php +++ b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable/Attribute.php @@ -9,7 +9,7 @@ namespace Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configura use Magento\ConfigurableProduct\Model\Product\Type\Configurable\Attribute as ConfigurableAttribute; -class Attribute extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Attribute extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Label table name cache @@ -33,13 +33,13 @@ class Attribute extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_storeManager; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Catalog\Helper\Data $catalogData * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Catalog\Helper\Data $catalogData, $connectionName = null diff --git a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable/Attribute/Collection.php b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable/Attribute/Collection.php index 0dd9837218d..dbca1777f45 100644 --- a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable/Attribute/Collection.php +++ b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable/Attribute/Collection.php @@ -13,7 +13,7 @@ use Magento\Eav\Model\Entity\Attribute\AbstractAttribute; * @SuppressWarnings(PHPMD.LongVariable) * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Configurable attributes label table name diff --git a/app/code/Magento/Contact/Test/Unit/Model/System/Config/Backend/LinksTest.php b/app/code/Magento/Contact/Test/Unit/Model/System/Config/Backend/LinksTest.php index 5a2c469bf10..febdde20240 100644 --- a/app/code/Magento/Contact/Test/Unit/Model/System/Config/Backend/LinksTest.php +++ b/app/code/Magento/Contact/Test/Unit/Model/System/Config/Backend/LinksTest.php @@ -18,7 +18,7 @@ class LinksTest extends \PHPUnit_Framework_TestCase $this->getMock('\Magento\Framework\Model\Context', [], [], '', false), $this->getMock('\Magento\Framework\Registry', [], [], '', false), $this->getMockForAbstractClass('\Magento\Framework\App\Config\ScopeConfigInterface', [], '', false), - $this->getMockForAbstractClass('\Magento\Framework\Model\ModelResource\AbstractResource', [], '', false), + $this->getMockForAbstractClass('\Magento\Framework\Model\ResourceModel\AbstractResource', [], '', false), $this->getMock('\Magento\Framework\Data\Collection\AbstractDb', [], [], '', false) ); } diff --git a/app/code/Magento/Cookie/Model/Config/Backend/Domain.php b/app/code/Magento/Cookie/Model/Config/Backend/Domain.php index 0d8fb666c75..50e5a4782d9 100644 --- a/app/code/Magento/Cookie/Model/Config/Backend/Domain.php +++ b/app/code/Magento/Cookie/Model/Config/Backend/Domain.php @@ -18,7 +18,7 @@ class Domain extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\Session\Config\Validator\CookieDomainValidator $configValidator - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @codeCoverageIgnore @@ -28,7 +28,7 @@ class Domain extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\Session\Config\Validator\CookieDomainValidator $configValidator, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Cookie/Model/Config/Backend/Lifetime.php b/app/code/Magento/Cookie/Model/Config/Backend/Lifetime.php index 3170aadb8f5..bf2b2805dff 100644 --- a/app/code/Magento/Cookie/Model/Config/Backend/Lifetime.php +++ b/app/code/Magento/Cookie/Model/Config/Backend/Lifetime.php @@ -18,7 +18,7 @@ class Lifetime extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\Session\Config\Validator\CookieLifetimeValidator $configValidator - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @codeCoverageIgnore @@ -28,7 +28,7 @@ class Lifetime extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\Session\Config\Validator\CookieLifetimeValidator $configValidator, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Cookie/Model/Config/Backend/Path.php b/app/code/Magento/Cookie/Model/Config/Backend/Path.php index 7130085fbd8..f64d41dc1f0 100644 --- a/app/code/Magento/Cookie/Model/Config/Backend/Path.php +++ b/app/code/Magento/Cookie/Model/Config/Backend/Path.php @@ -18,7 +18,7 @@ class Path extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\Session\Config\Validator\CookiePathValidator $configValidator - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @codeCoverageIgnore @@ -28,7 +28,7 @@ class Path extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\Session\Config\Validator\CookiePathValidator $configValidator, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Cookie/Test/Unit/Model/Config/Backend/DomainTest.php b/app/code/Magento/Cookie/Test/Unit/Model/Config/Backend/DomainTest.php index 30ff0267ea8..3e85d8a5dc9 100644 --- a/app/code/Magento/Cookie/Test/Unit/Model/Config/Backend/DomainTest.php +++ b/app/code/Magento/Cookie/Test/Unit/Model/Config/Backend/DomainTest.php @@ -13,7 +13,7 @@ use Magento\Framework\Session\Config\Validator\CookieDomainValidator; */ class DomainTest extends \PHPUnit_Framework_TestCase { - /** @var \Magento\Framework\Model\ModelResource\AbstractResource | \PHPUnit_Framework_MockObject_MockObject */ + /** @var \Magento\Framework\Model\ResourceModel\AbstractResource | \PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; /** @var \Magento\Cookie\Model\Config\Backend\Domain */ @@ -37,7 +37,7 @@ class DomainTest extends \PHPUnit_Framework_TestCase ); $this->resourceMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\AbstractResource', + 'Magento\Framework\Model\ResourceModel\AbstractResource', [ '_construct', 'getConnection', diff --git a/app/code/Magento/Cron/Model/Config/Backend/Product/Alert.php b/app/code/Magento/Cron/Model/Config/Backend/Product/Alert.php index 7427d72f392..67d69dfe2b5 100644 --- a/app/code/Magento/Cron/Model/Config/Backend/Product/Alert.php +++ b/app/code/Magento/Cron/Model/Config/Backend/Product/Alert.php @@ -38,7 +38,7 @@ class Alert extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param string $runModelPath * @param array $data @@ -48,7 +48,7 @@ class Alert extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Config\ValueFactory $configValueFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, $runModelPath = '', array $data = [] diff --git a/app/code/Magento/Cron/Model/Config/Backend/Sitemap.php b/app/code/Magento/Cron/Model/Config/Backend/Sitemap.php index c49176ab625..fecbc2d676e 100644 --- a/app/code/Magento/Cron/Model/Config/Backend/Sitemap.php +++ b/app/code/Magento/Cron/Model/Config/Backend/Sitemap.php @@ -38,7 +38,7 @@ class Sitemap extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param string $runModelPath * @param array $data @@ -48,7 +48,7 @@ class Sitemap extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Config\ValueFactory $configValueFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, $runModelPath = '', array $data = [] diff --git a/app/code/Magento/Cron/Model/ResourceModel/Schedule.php b/app/code/Magento/Cron/Model/ResourceModel/Schedule.php index 6cad618e678..469171d9e15 100644 --- a/app/code/Magento/Cron/Model/ResourceModel/Schedule.php +++ b/app/code/Magento/Cron/Model/ResourceModel/Schedule.php @@ -10,7 +10,7 @@ namespace Magento\Cron\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Schedule extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Schedule extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize resource diff --git a/app/code/Magento/Cron/Model/ResourceModel/Schedule/Collection.php b/app/code/Magento/Cron/Model/ResourceModel/Schedule/Collection.php index 28bbcad12b8..bbb579babc4 100644 --- a/app/code/Magento/Cron/Model/ResourceModel/Schedule/Collection.php +++ b/app/code/Magento/Cron/Model/ResourceModel/Schedule/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Cron\Model\ResourceModel\Schedule; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize resource collection diff --git a/app/code/Magento/Cron/Model/Schedule.php b/app/code/Magento/Cron/Model/Schedule.php index 4f4308b9db6..fbcb1fe5b27 100644 --- a/app/code/Magento/Cron/Model/Schedule.php +++ b/app/code/Magento/Cron/Model/Schedule.php @@ -47,14 +47,14 @@ class Schedule extends \Magento\Framework\Model\AbstractModel /** * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Customer/Model/Address.php b/app/code/Magento/Customer/Model/Address.php index 1195715d8bb..9318f0eb6a0 100644 --- a/app/code/Magento/Customer/Model/Address.php +++ b/app/code/Magento/Customer/Model/Address.php @@ -64,7 +64,7 @@ class Address extends \Magento\Customer\Model\Address\AbstractAddress * @param CustomerFactory $customerFactory * @param \Magento\Framework\Reflection\DataObjectProcessor $dataProcessor * @param \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry - * @param \Magento\Framework\Model\ModelResource\AbstractResource|null $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection * @param array $data * @@ -87,7 +87,7 @@ class Address extends \Magento\Customer\Model\Address\AbstractAddress CustomerFactory $customerFactory, \Magento\Framework\Reflection\DataObjectProcessor $dataProcessor, \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Customer/Model/Address/AbstractAddress.php b/app/code/Magento/Customer/Model/Address/AbstractAddress.php index ff3604e367b..783b8c40017 100644 --- a/app/code/Magento/Customer/Model/Address/AbstractAddress.php +++ b/app/code/Magento/Customer/Model/Address/AbstractAddress.php @@ -127,7 +127,7 @@ class AbstractAddress extends AbstractExtensibleModel implements AddressModelInt * @param AddressInterfaceFactory $addressDataFactory * @param RegionInterfaceFactory $regionDataFactory * @param \Magento\Framework\Api\DataObjectHelper $dataObjectHelper - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -146,7 +146,7 @@ class AbstractAddress extends AbstractExtensibleModel implements AddressModelInt AddressInterfaceFactory $addressDataFactory, RegionInterfaceFactory $regionDataFactory, \Magento\Framework\Api\DataObjectHelper $dataObjectHelper, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Customer/Model/Attribute.php b/app/code/Magento/Customer/Model/Attribute.php index 83f861b3ea4..e1e56c1e78c 100644 --- a/app/code/Magento/Customer/Model/Attribute.php +++ b/app/code/Magento/Customer/Model/Attribute.php @@ -59,7 +59,7 @@ class Attribute extends \Magento\Eav\Model\Attribute * @param \Magento\Framework\Locale\ResolverInterface $localeResolver * @param DateTimeFormatterInterface $dateTimeFormatter * @param \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry - * @param \Magento\Framework\Model\ModelResource\AbstractResource|null $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection * @param array $data * @@ -83,7 +83,7 @@ class Attribute extends \Magento\Eav\Model\Attribute \Magento\Framework\Locale\ResolverInterface $localeResolver, DateTimeFormatterInterface $dateTimeFormatter, \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php b/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php index 014c25e8ea9..d456491e5c3 100644 --- a/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php +++ b/app/code/Magento/Customer/Model/Config/Backend/Address/Street.php @@ -28,7 +28,7 @@ class Street extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Eav\Model\Config $eavConfig - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -38,7 +38,7 @@ class Street extends \Magento\Framework\App\Config\Value \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Eav\Model\Config $eavConfig, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Customer/Model/Config/Backend/CreateAccount/DisableAutoGroupAssignDefault.php b/app/code/Magento/Customer/Model/Config/Backend/CreateAccount/DisableAutoGroupAssignDefault.php index 2c39ad5de00..2f889d0f7c0 100644 --- a/app/code/Magento/Customer/Model/Config/Backend/CreateAccount/DisableAutoGroupAssignDefault.php +++ b/app/code/Magento/Customer/Model/Config/Backend/CreateAccount/DisableAutoGroupAssignDefault.php @@ -17,7 +17,7 @@ class DisableAutoGroupAssignDefault extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Eav\Model\Config $eavConfig - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -26,7 +26,7 @@ class DisableAutoGroupAssignDefault extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Eav\Model\Config $eavConfig, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Customer/Model/Config/Backend/Show/Customer.php b/app/code/Magento/Customer/Model/Config/Backend/Show/Customer.php index 2957d9ae35f..31ed960864f 100644 --- a/app/code/Magento/Customer/Model/Config/Backend/Show/Customer.php +++ b/app/code/Magento/Customer/Model/Config/Backend/Show/Customer.php @@ -28,7 +28,7 @@ class Customer extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Eav\Model\Config $eavConfig - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -38,7 +38,7 @@ class Customer extends \Magento\Framework\App\Config\Value \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Eav\Model\Config $eavConfig, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Customer/Model/Config/Share.php b/app/code/Magento/Customer/Model/Config/Share.php index 5c8010c95b2..5fb8bacb574 100644 --- a/app/code/Magento/Customer/Model/Config/Share.php +++ b/app/code/Magento/Customer/Model/Config/Share.php @@ -42,7 +42,7 @@ class Share extends \Magento\Framework\App\Config\Value implements \Magento\Fram * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Customer\Model\ResourceModel\Customer $customerResource - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -52,7 +52,7 @@ class Share extends \Magento\Framework\App\Config\Value implements \Magento\Fram \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Customer\Model\ResourceModel\Customer $customerResource, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Customer/Model/Group.php b/app/code/Magento/Customer/Model/Group.php index 1f1d549a6eb..8045a405695 100644 --- a/app/code/Magento/Customer/Model/Group.php +++ b/app/code/Magento/Customer/Model/Group.php @@ -64,7 +64,7 @@ class Group extends \Magento\Framework\Model\AbstractModel * @param \Magento\Store\Model\StoresConfig $storesConfig * @param \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor * @param \Magento\Tax\Model\ClassModelFactory $classModelFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -75,7 +75,7 @@ class Group extends \Magento\Framework\Model\AbstractModel \Magento\Store\Model\StoresConfig $storesConfig, \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor, \Magento\Tax\Model\ClassModelFactory $classModelFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Customer/Model/ResourceModel/Address.php b/app/code/Magento/Customer/Model/ResourceModel/Address.php index 5a5b476fb5e..53502f74839 100644 --- a/app/code/Magento/Customer/Model/ResourceModel/Address.php +++ b/app/code/Magento/Customer/Model/ResourceModel/Address.php @@ -21,16 +21,16 @@ class Address extends \Magento\Eav\Model\Entity\VersionControl\AbstractEntity /** * @param \Magento\Eav\Model\Entity\Context $context - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite, + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite, * @param \Magento\Framework\Validator\Factory $validatorFactory * @param \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository * @param array $data */ public function __construct( \Magento\Eav\Model\Entity\Context $context, - \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, - \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite, \Magento\Framework\Validator\Factory $validatorFactory, \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository, $data = [] diff --git a/app/code/Magento/Customer/Model/ResourceModel/Address/Relation.php b/app/code/Magento/Customer/Model/ResourceModel/Address/Relation.php index b5120a99178..3267ab03cb6 100644 --- a/app/code/Magento/Customer/Model/ResourceModel/Address/Relation.php +++ b/app/code/Magento/Customer/Model/ResourceModel/Address/Relation.php @@ -7,7 +7,7 @@ */ namespace Magento\Customer\Model\ResourceModel\Address; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationInterface; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface; /** * Class represents save operations for customer address relations diff --git a/app/code/Magento/Customer/Model/ResourceModel/Customer.php b/app/code/Magento/Customer/Model/ResourceModel/Customer.php index a0125875c54..e96b8c1b2a4 100644 --- a/app/code/Magento/Customer/Model/ResourceModel/Customer.php +++ b/app/code/Magento/Customer/Model/ResourceModel/Customer.php @@ -38,8 +38,8 @@ class Customer extends \Magento\Eav\Model\Entity\VersionControl\AbstractEntity /** * @param \Magento\Eav\Model\Entity\Context $context - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Framework\Validator\Factory $validatorFactory * @param \Magento\Framework\Stdlib\DateTime $dateTime @@ -48,8 +48,8 @@ class Customer extends \Magento\Eav\Model\Entity\VersionControl\AbstractEntity */ public function __construct( \Magento\Eav\Model\Entity\Context $context, - \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, - \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\Validator\Factory $validatorFactory, \Magento\Framework\Stdlib\DateTime $dateTime, diff --git a/app/code/Magento/Customer/Model/ResourceModel/Customer/Collection.php b/app/code/Magento/Customer/Model/ResourceModel/Customer/Collection.php index 6d69c42c167..e8982afaba9 100644 --- a/app/code/Magento/Customer/Model/ResourceModel/Customer/Collection.php +++ b/app/code/Magento/Customer/Model/ResourceModel/Customer/Collection.php @@ -38,7 +38,7 @@ class Collection extends \Magento\Eav\Model\Entity\Collection\VersionControl\Abs * @param \Magento\Eav\Model\EntityFactory $eavEntityFactory * @param \Magento\Eav\Model\ResourceModel\Helper $resourceHelper * @param \Magento\Framework\Validator\UniversalFactory $universalFactory - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot * @param \Magento\Framework\DataObject\Copy\Config $fieldsetConfig * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection * @param string $modelName @@ -55,7 +55,7 @@ class Collection extends \Magento\Eav\Model\Entity\Collection\VersionControl\Abs \Magento\Eav\Model\EntityFactory $eavEntityFactory, \Magento\Eav\Model\ResourceModel\Helper $resourceHelper, \Magento\Framework\Validator\UniversalFactory $universalFactory, - \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, \Magento\Framework\DataObject\Copy\Config $fieldsetConfig, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, $modelName = self::CUSTOMER_MODEL_NAME diff --git a/app/code/Magento/Customer/Model/ResourceModel/Customer/Relation.php b/app/code/Magento/Customer/Model/ResourceModel/Customer/Relation.php index 20b3124bcc2..b809549ed79 100644 --- a/app/code/Magento/Customer/Model/ResourceModel/Customer/Relation.php +++ b/app/code/Magento/Customer/Model/ResourceModel/Customer/Relation.php @@ -9,7 +9,7 @@ namespace Magento\Customer\Model\ResourceModel\Customer; /** * Class Relation */ -class Relation implements \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationInterface +class Relation implements \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface { /** * Save relations for Customer diff --git a/app/code/Magento/Customer/Model/ResourceModel/Group.php b/app/code/Magento/Customer/Model/ResourceModel/Group.php index 395e49c2481..7c793f8fc9e 100644 --- a/app/code/Magento/Customer/Model/ResourceModel/Group.php +++ b/app/code/Magento/Customer/Model/ResourceModel/Group.php @@ -5,15 +5,15 @@ */ namespace Magento\Customer\Model\ResourceModel; -use Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite; /** * Customer group resource model * * @author Magento Core Team <core@magentocommerce.com> */ -class Group extends \Magento\Framework\Model\ModelResource\Db\VersionControl\AbstractDb +class Group extends \Magento\Framework\Model\ResourceModel\Db\VersionControl\AbstractDb { /** * Group Management @@ -28,7 +28,7 @@ class Group extends \Magento\Framework\Model\ModelResource\Db\VersionControl\Abs protected $_customersFactory; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param Snapshot $entitySnapshot, * @param RelationComposite $entityRelationComposite, * @param \Magento\Customer\Api\GroupManagementInterface $groupManagement @@ -36,7 +36,7 @@ class Group extends \Magento\Framework\Model\ModelResource\Db\VersionControl\Abs * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, Snapshot $entitySnapshot, RelationComposite $entityRelationComposite, \Magento\Customer\Api\GroupManagementInterface $groupManagement, diff --git a/app/code/Magento/Customer/Model/ResourceModel/Group/Collection.php b/app/code/Magento/Customer/Model/ResourceModel/Group/Collection.php index bc7b863e7e0..52d37da5646 100644 --- a/app/code/Magento/Customer/Model/ResourceModel/Group/Collection.php +++ b/app/code/Magento/Customer/Model/ResourceModel/Group/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Customer\Model\ResourceModel\Group; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource initialization diff --git a/app/code/Magento/Customer/Model/ResourceModel/Visitor.php b/app/code/Magento/Customer/Model/ResourceModel/Visitor.php index 2c65387b196..1e3adf4d6ce 100644 --- a/app/code/Magento/Customer/Model/ResourceModel/Visitor.php +++ b/app/code/Magento/Customer/Model/ResourceModel/Visitor.php @@ -10,7 +10,7 @@ namespace Magento\Customer\Model\ResourceModel; * Class Visitor * @package Magento\Customer\Model\ResourceModel */ -class Visitor extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Visitor extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Framework\Stdlib\DateTime\DateTime @@ -23,13 +23,13 @@ class Visitor extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $dateTime; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime\DateTime $date * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime\DateTime $date, \Magento\Framework\Stdlib\DateTime $dateTime, $connectionName = null diff --git a/app/code/Magento/Customer/Model/ResourceModel/Visitor/Collection.php b/app/code/Magento/Customer/Model/ResourceModel/Visitor/Collection.php index cbad6afc46f..5ce707c294d 100644 --- a/app/code/Magento/Customer/Model/ResourceModel/Visitor/Collection.php +++ b/app/code/Magento/Customer/Model/ResourceModel/Visitor/Collection.php @@ -5,7 +5,7 @@ */ namespace Magento\Customer\Model\ResourceModel\Visitor; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource initialization diff --git a/app/code/Magento/Customer/Model/Visitor.php b/app/code/Magento/Customer/Model/Visitor.php index 45c8c3408b8..6f4a1d58b3b 100644 --- a/app/code/Magento/Customer/Model/Visitor.php +++ b/app/code/Magento/Customer/Model/Visitor.php @@ -75,7 +75,7 @@ class Visitor extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry - * @param \Magento\Framework\Model\ModelResource\AbstractResource|null $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection * @param array $ignoredUserAgents * @param array $ignores @@ -91,7 +91,7 @@ class Visitor extends \Magento\Framework\Model\AbstractModel \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\Stdlib\DateTime $dateTime, \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $ignoredUserAgents = [], array $ignores = [], diff --git a/app/code/Magento/Customer/Test/Unit/Model/AttributeTest.php b/app/code/Magento/Customer/Test/Unit/Model/AttributeTest.php index 7907716a7f7..c779cd5d3f4 100644 --- a/app/code/Magento/Customer/Test/Unit/Model/AttributeTest.php +++ b/app/code/Magento/Customer/Test/Unit/Model/AttributeTest.php @@ -70,7 +70,7 @@ class AttributeTest extends \PHPUnit_Framework_TestCase protected $timezoneMock; /** - * @var \Magento\Framework\Model\ModelResource\AbstractResource|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\AbstractResource|\PHPUnit_Framework_MockObject_MockObject */ private $resourceMock; @@ -173,7 +173,7 @@ class AttributeTest extends \PHPUnit_Framework_TestCase ->getMock(); $this->dateTimeFormatter = $this->getMock('Magento\Framework\Stdlib\DateTime\DateTimeFormatterInterface'); - $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\AbstractResource') + $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\AbstractResource') ->setMethods(['_construct', 'getConnection', 'getIdFieldName', 'saveInSetIncluding']) ->getMockForAbstractClass(); $this->cacheManager = $this->getMockBuilder('Magento\Framework\App\CacheInterface') diff --git a/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/Address/RelationTest.php b/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/Address/RelationTest.php index 3f8a66cfc53..890d19c00ad 100644 --- a/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/Address/RelationTest.php +++ b/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/Address/RelationTest.php @@ -69,7 +69,7 @@ class RelationTest extends \PHPUnit_Framework_TestCase false ); $customerResource = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, diff --git a/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/AddressTest.php b/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/AddressTest.php index 04011dd7fd4..61f3adb3dab 100644 --- a/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/AddressTest.php +++ b/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/AddressTest.php @@ -8,8 +8,8 @@ namespace Magento\Customer\Test\Unit\Model\ResourceModel; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite; -use Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper; class AddressTest extends \PHPUnit_Framework_TestCase @@ -32,7 +32,7 @@ class AddressTest extends \PHPUnit_Framework_TestCase protected function setUp() { $this->entitySnapshotMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot', [], [], '', @@ -41,7 +41,7 @@ class AddressTest extends \PHPUnit_Framework_TestCase $this->entityRelationCompositeMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite', [], [], '', diff --git a/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/GroupTest.php b/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/GroupTest.php index ccaa89a2061..2577c7fb401 100644 --- a/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/GroupTest.php +++ b/app/code/Magento/Customer/Test/Unit/Model/ResourceModel/GroupTest.php @@ -53,18 +53,18 @@ class GroupTest extends \PHPUnit_Framework_TestCase $this->groupModel = $this->getMock('Magento\Customer\Model\Group', [], [], '', false); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($this->resource); $this->relationProcessorMock = $this->getMock( - '\Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor', + '\Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor', [], [], '', false ); - $transactionManagerMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface'); + $transactionManagerMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface'); $transactionManagerMock->expects($this->once()) ->method('start') ->willReturn($this->getMock('\Magento\Framework\DB\Adapter\AdapterInterface')); diff --git a/app/code/Magento/Customer/etc/di.xml b/app/code/Magento/Customer/etc/di.xml index 384841938d0..0b8450f053a 100644 --- a/app/code/Magento/Customer/etc/di.xml +++ b/app/code/Magento/Customer/etc/di.xml @@ -139,19 +139,19 @@ </argument> </arguments> </type> - <virtualType name="EavVersionControlSnapshot" type="Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot"> + <virtualType name="EavVersionControlSnapshot" type="Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot"> <arguments> <argument name="metadata" xsi:type="object">Magento\Eav\Model\Entity\VersionControl\Metadata</argument> </arguments> </virtualType> - <virtualType name="CustomerRelationsComposite" type="Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite"> + <virtualType name="CustomerRelationsComposite" type="Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite"> <arguments> <argument name="relationProcessors" xsi:type="array"> <item name="default" xsi:type="object">Magento\Customer\Model\ResourceModel\Customer\Relation</item> </argument> </arguments> </virtualType> - <virtualType name="CustomerAddressRelationsComposite" type="Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite"> + <virtualType name="CustomerAddressRelationsComposite" type="Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite"> <arguments> <argument name="relationProcessors" xsi:type="array"> <item name="default" xsi:type="object">Magento\Customer\Model\ResourceModel\Address\Relation</item> diff --git a/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/CustomerComposite/Data.php b/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/CustomerComposite/Data.php index f0ebc53c926..c1df86ca09f 100644 --- a/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/CustomerComposite/Data.php +++ b/app/code/Magento/CustomerImportExport/Model/ResourceModel/Import/CustomerComposite/Data.php @@ -26,13 +26,13 @@ class Data extends \Magento\ImportExport\Model\ResourceModel\Import\Data /** * Class constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Json\Helper\Data $coreHelper * @param string $connectionName * @param array $arguments */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Json\Helper\Data $jsonHelper, $connectionName = null, array $arguments = [] diff --git a/app/code/Magento/CustomerImportExport/Test/Unit/Model/ResourceModel/Import/CustomerComposite/DataTest.php b/app/code/Magento/CustomerImportExport/Test/Unit/Model/ResourceModel/Import/CustomerComposite/DataTest.php index cd6ce233b8a..d68c554241d 100644 --- a/app/code/Magento/CustomerImportExport/Test/Unit/Model/ResourceModel/Import/CustomerComposite/DataTest.php +++ b/app/code/Magento/CustomerImportExport/Test/Unit/Model/ResourceModel/Import/CustomerComposite/DataTest.php @@ -111,7 +111,7 @@ class DataTest extends \PHPUnit_Framework_TestCase ); unset($dependencies['resource'], $dependencies['json_helper']); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($resource); $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); diff --git a/app/code/Magento/Developer/Model/Config/Backend/AllowedIps.php b/app/code/Magento/Developer/Model/Config/Backend/AllowedIps.php index e4552761129..531e4fc64c3 100644 --- a/app/code/Magento/Developer/Model/Config/Backend/AllowedIps.php +++ b/app/code/Magento/Developer/Model/Config/Backend/AllowedIps.php @@ -32,7 +32,7 @@ class AllowedIps extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\Message\ManagerInterface $messageManager * @param \Magento\Framework\Escaper $escaper - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -42,7 +42,7 @@ class AllowedIps extends \Magento\Framework\App\Config\Value \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\Message\ManagerInterface $messageManager, \Magento\Framework\Escaper $escaper, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Directory/Model/Country.php b/app/code/Magento/Directory/Model/Country.php index d7cb1689385..fca0524c095 100644 --- a/app/code/Magento/Directory/Model/Country.php +++ b/app/code/Magento/Directory/Model/Country.php @@ -44,7 +44,7 @@ class Country extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Locale\ListsInterface $localeLists * @param Country\FormatFactory $formatFactory * @param \Magento\Directory\Model\ResourceModel\Region\CollectionFactory $regionCollectionFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -54,7 +54,7 @@ class Country extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Locale\ListsInterface $localeLists, \Magento\Directory\Model\Country\FormatFactory $formatFactory, \Magento\Directory\Model\ResourceModel\Region\CollectionFactory $regionCollectionFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Directory/Model/Currency.php b/app/code/Magento/Directory/Model/Currency.php index ff09a021d42..576c946d0d6 100644 --- a/app/code/Magento/Directory/Model/Currency.php +++ b/app/code/Magento/Directory/Model/Currency.php @@ -73,7 +73,7 @@ class Currency extends \Magento\Framework\Model\AbstractModel * @param \Magento\Directory\Helper\Data $directoryHelper * @param Currency\FilterFactory $currencyFilterFactory * @param \Magento\Framework\Locale\CurrencyInterface $localeCurrency - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -86,7 +86,7 @@ class Currency extends \Magento\Framework\Model\AbstractModel \Magento\Directory\Helper\Data $directoryHelper, \Magento\Directory\Model\Currency\FilterFactory $currencyFilterFactory, \Magento\Framework\Locale\CurrencyInterface $localeCurrency, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Directory/Model/ResourceModel/Country.php b/app/code/Magento/Directory/Model/ResourceModel/Country.php index b315f23df0d..09ef9f9aba6 100644 --- a/app/code/Magento/Directory/Model/ResourceModel/Country.php +++ b/app/code/Magento/Directory/Model/ResourceModel/Country.php @@ -8,7 +8,7 @@ namespace Magento\Directory\Model\ResourceModel; /** * Directory Country Resource Model */ -class Country extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Country extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Directory/Model/ResourceModel/Country/Collection.php b/app/code/Magento/Directory/Model/ResourceModel/Country/Collection.php index 23d0e57ffef..da1d524f7ab 100644 --- a/app/code/Magento/Directory/Model/ResourceModel/Country/Collection.php +++ b/app/code/Magento/Directory/Model/ResourceModel/Country/Collection.php @@ -15,7 +15,7 @@ namespace Magento\Directory\Model\ResourceModel\Country; * Class Collection * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Locale model @@ -65,7 +65,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Framework\Locale\ResolverInterface $localeResolver * @param \Magento\Framework\App\Helper\AbstractHelper $helperData * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( @@ -80,7 +80,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Framework\Locale\ResolverInterface $localeResolver, \Magento\Framework\App\Helper\AbstractHelper $helperData, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); $this->_scopeConfig = $scopeConfig; diff --git a/app/code/Magento/Directory/Model/ResourceModel/Country/Format.php b/app/code/Magento/Directory/Model/ResourceModel/Country/Format.php index d3a838305e5..ad8e0772849 100644 --- a/app/code/Magento/Directory/Model/ResourceModel/Country/Format.php +++ b/app/code/Magento/Directory/Model/ResourceModel/Country/Format.php @@ -10,7 +10,7 @@ namespace Magento\Directory\Model\ResourceModel\Country; * * @author Magento Core Team <core@magentocommerce.com> */ -class Format extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Format extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Directory/Model/ResourceModel/Country/Format/Collection.php b/app/code/Magento/Directory/Model/ResourceModel/Country/Format/Collection.php index 9c6a84806e3..25982b5729f 100644 --- a/app/code/Magento/Directory/Model/ResourceModel/Country/Format/Collection.php +++ b/app/code/Magento/Directory/Model/ResourceModel/Country/Format/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Directory\Model\ResourceModel\Country\Format; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Define main table diff --git a/app/code/Magento/Directory/Model/ResourceModel/Currency.php b/app/code/Magento/Directory/Model/ResourceModel/Currency.php index 36e7c5b128f..7e5b29b6e99 100644 --- a/app/code/Magento/Directory/Model/ResourceModel/Currency.php +++ b/app/code/Magento/Directory/Model/ResourceModel/Currency.php @@ -9,7 +9,7 @@ */ namespace Magento\Directory\Model\ResourceModel; -class Currency extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Currency extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Currency rate table diff --git a/app/code/Magento/Directory/Model/ResourceModel/Region.php b/app/code/Magento/Directory/Model/ResourceModel/Region.php index 952696382f1..d03ce611e7b 100644 --- a/app/code/Magento/Directory/Model/ResourceModel/Region.php +++ b/app/code/Magento/Directory/Model/ResourceModel/Region.php @@ -11,7 +11,7 @@ */ namespace Magento\Directory\Model\ResourceModel; -class Region extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Region extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Table with localized region names @@ -26,12 +26,12 @@ class Region extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_localeResolver; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Locale\ResolverInterface $localeResolver * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Locale\ResolverInterface $localeResolver, $connectionName = null ) { diff --git a/app/code/Magento/Directory/Model/ResourceModel/Region/Collection.php b/app/code/Magento/Directory/Model/ResourceModel/Region/Collection.php index b60aa8bd5d4..23e48367c17 100644 --- a/app/code/Magento/Directory/Model/ResourceModel/Region/Collection.php +++ b/app/code/Magento/Directory/Model/ResourceModel/Region/Collection.php @@ -9,7 +9,7 @@ */ namespace Magento\Directory\Model\ResourceModel\Region; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Locale region name table name @@ -37,7 +37,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Framework\Locale\ResolverInterface $localeResolver * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -46,7 +46,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\Locale\ResolverInterface $localeResolver, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_localeResolver = $localeResolver; parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); diff --git a/app/code/Magento/Directory/Test/Unit/Model/ResourceModel/Country/CollectionTest.php b/app/code/Magento/Directory/Test/Unit/Model/ResourceModel/Country/CollectionTest.php index 2a2037a73ce..dbbd2d935d5 100644 --- a/app/code/Magento/Directory/Test/Unit/Model/ResourceModel/Country/CollectionTest.php +++ b/app/code/Magento/Directory/Test/Unit/Model/ResourceModel/Country/CollectionTest.php @@ -21,7 +21,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase $select = $this->getMock('Magento\Framework\DB\Select', [], [], '', false); $connection->expects($this->once())->method('select')->will($this->returnValue($select)); - $resource = $this->getMockForAbstractClass('Magento\Framework\Model\ModelResource\Db\AbstractDb', + $resource = $this->getMockForAbstractClass('Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, diff --git a/app/code/Magento/Downloadable/Model/Link.php b/app/code/Magento/Downloadable/Model/Link.php index 6f72a840756..bfc7c484ffe 100644 --- a/app/code/Magento/Downloadable/Model/Link.php +++ b/app/code/Magento/Downloadable/Model/Link.php @@ -56,7 +56,7 @@ class Link extends \Magento\Framework\Model\AbstractExtensibleModel implements C * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -65,7 +65,7 @@ class Link extends \Magento\Framework\Model\AbstractExtensibleModel implements C \Magento\Framework\Registry $registry, \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Downloadable/Model/ResourceModel/Link.php b/app/code/Magento/Downloadable/Model/ResourceModel/Link.php index c8c3147e825..04652bee14c 100644 --- a/app/code/Magento/Downloadable/Model/ResourceModel/Link.php +++ b/app/code/Magento/Downloadable/Model/ResourceModel/Link.php @@ -10,7 +10,7 @@ namespace Magento\Downloadable\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Link extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Link extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Catalog data @@ -35,7 +35,7 @@ class Link extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_storeManager; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Catalog\Helper\Data $catalogData * @param \Magento\Framework\App\Config\ScopeConfigInterface $configuration * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory @@ -43,7 +43,7 @@ class Link extends \Magento\Framework\Model\ModelResource\Db\AbstractDb * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Catalog\Helper\Data $catalogData, \Magento\Framework\App\Config\ScopeConfigInterface $configuration, \Magento\Directory\Model\CurrencyFactory $currencyFactory, diff --git a/app/code/Magento/Downloadable/Model/ResourceModel/Link/Collection.php b/app/code/Magento/Downloadable/Model/ResourceModel/Link/Collection.php index 7b794e611b3..37e85d665b7 100644 --- a/app/code/Magento/Downloadable/Model/ResourceModel/Link/Collection.php +++ b/app/code/Magento/Downloadable/Model/ResourceModel/Link/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Downloadable\Model\ResourceModel\Link; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Init resource model diff --git a/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased.php b/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased.php index 16174007587..1b108de2f30 100644 --- a/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased.php +++ b/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased.php @@ -10,7 +10,7 @@ namespace Magento\Downloadable\Model\ResourceModel\Link; * * @author Magento Core Team <core@magentocommerce.com> */ -class Purchased extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Purchased extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Magento class constructor diff --git a/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased/Collection.php b/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased/Collection.php index 7b23cdf4139..d7510b23074 100644 --- a/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased/Collection.php +++ b/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Downloadable\Model\ResourceModel\Link\Purchased; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Init resource model diff --git a/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased/Item.php b/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased/Item.php index 7d934e97b65..32528606484 100644 --- a/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased/Item.php +++ b/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased/Item.php @@ -10,7 +10,7 @@ namespace Magento\Downloadable\Model\ResourceModel\Link\Purchased; * * @author Magento Core Team <core@magentocommerce.com> */ -class Item extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Item extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Magento class constructor diff --git a/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased/Item/Collection.php b/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased/Item/Collection.php index 64e2248d554..632015fec2a 100644 --- a/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased/Item/Collection.php +++ b/app/code/Magento/Downloadable/Model/ResourceModel/Link/Purchased/Item/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Init resource model diff --git a/app/code/Magento/Downloadable/Model/ResourceModel/Sample.php b/app/code/Magento/Downloadable/Model/ResourceModel/Sample.php index 78958f26c40..df170878696 100644 --- a/app/code/Magento/Downloadable/Model/ResourceModel/Sample.php +++ b/app/code/Magento/Downloadable/Model/ResourceModel/Sample.php @@ -10,7 +10,7 @@ namespace Magento\Downloadable\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Sample extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Sample extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize connection diff --git a/app/code/Magento/Downloadable/Model/ResourceModel/Sample/Collection.php b/app/code/Magento/Downloadable/Model/ResourceModel/Sample/Collection.php index c224b46484e..8a5878d95e5 100644 --- a/app/code/Magento/Downloadable/Model/ResourceModel/Sample/Collection.php +++ b/app/code/Magento/Downloadable/Model/ResourceModel/Sample/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Downloadable\Model\ResourceModel\Sample; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Init resource model diff --git a/app/code/Magento/Downloadable/Model/Sales/Order/Pdf/Items/AbstractItems.php b/app/code/Magento/Downloadable/Model/Sales/Order/Pdf/Items/AbstractItems.php index f535d50abfb..fcfc62e9087 100644 --- a/app/code/Magento/Downloadable/Model/Sales/Order/Pdf/Items/AbstractItems.php +++ b/app/code/Magento/Downloadable/Model/Sales/Order/Pdf/Items/AbstractItems.php @@ -47,7 +47,7 @@ abstract class AbstractItems extends \Magento\Sales\Model\Order\Pdf\Items\Abstra * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Downloadable\Model\Link\PurchasedFactory $purchasedFactory * @param \Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item\CollectionFactory $itemsFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -61,7 +61,7 @@ abstract class AbstractItems extends \Magento\Sales\Model\Order\Pdf\Items\Abstra \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Downloadable\Model\Link\PurchasedFactory $purchasedFactory, \Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item\CollectionFactory $itemsFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Downloadable/Model/Sales/Order/Pdf/Items/Creditmemo.php b/app/code/Magento/Downloadable/Model/Sales/Order/Pdf/Items/Creditmemo.php index 67b34be95fd..ea563923353 100644 --- a/app/code/Magento/Downloadable/Model/Sales/Order/Pdf/Items/Creditmemo.php +++ b/app/code/Magento/Downloadable/Model/Sales/Order/Pdf/Items/Creditmemo.php @@ -25,7 +25,7 @@ class Creditmemo extends \Magento\Downloadable\Model\Sales\Order\Pdf\Items\Abstr * @param \Magento\Downloadable\Model\Link\PurchasedFactory $purchasedFactory * @param \Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item\CollectionFactory $itemsFactory * @param \Magento\Framework\Stdlib\StringUtils $string - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -40,7 +40,7 @@ class Creditmemo extends \Magento\Downloadable\Model\Sales\Order\Pdf\Items\Abstr \Magento\Downloadable\Model\Link\PurchasedFactory $purchasedFactory, \Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item\CollectionFactory $itemsFactory, \Magento\Framework\Stdlib\StringUtils $string, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Downloadable/Model/Sales/Order/Pdf/Items/Invoice.php b/app/code/Magento/Downloadable/Model/Sales/Order/Pdf/Items/Invoice.php index 4ab859d7ae7..952932d1258 100644 --- a/app/code/Magento/Downloadable/Model/Sales/Order/Pdf/Items/Invoice.php +++ b/app/code/Magento/Downloadable/Model/Sales/Order/Pdf/Items/Invoice.php @@ -25,7 +25,7 @@ class Invoice extends \Magento\Downloadable\Model\Sales\Order\Pdf\Items\Abstract * @param \Magento\Downloadable\Model\Link\PurchasedFactory $purchasedFactory * @param \Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item\CollectionFactory $itemsFactory * @param \Magento\Framework\Stdlib\StringUtils $string - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -40,7 +40,7 @@ class Invoice extends \Magento\Downloadable\Model\Sales\Order\Pdf\Items\Abstract \Magento\Downloadable\Model\Link\PurchasedFactory $purchasedFactory, \Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item\CollectionFactory $itemsFactory, \Magento\Framework\Stdlib\StringUtils $string, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Downloadable/Model/Sample.php b/app/code/Magento/Downloadable/Model/Sample.php index 54064495b48..3fcc4cebb82 100644 --- a/app/code/Magento/Downloadable/Model/Sample.php +++ b/app/code/Magento/Downloadable/Model/Sample.php @@ -36,7 +36,7 @@ class Sample extends \Magento\Framework\Model\AbstractExtensibleModel implements * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -45,7 +45,7 @@ class Sample extends \Magento\Framework\Model\AbstractExtensibleModel implements \Magento\Framework\Registry $registry, \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Eav/Model/Entity/AbstractEntity.php b/app/code/Magento/Eav/Model/Entity/AbstractEntity.php index 74eaf714538..14147d6849d 100644 --- a/app/code/Magento/Eav/Model/Entity/AbstractEntity.php +++ b/app/code/Magento/Eav/Model/Entity/AbstractEntity.php @@ -16,10 +16,10 @@ use Magento\Framework\App\Config\Element; use Magento\Framework\App\ResourceConnection\Config; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\Model\AbstractModel; -use Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor; -use Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface; +use Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor; +use Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface; use Magento\Eav\Model\ResourceModel\Attribute\DefaultEntityAttributes\ProviderInterface as DefaultAttributesProvider; -use Magento\Framework\Model\ModelResource\AbstractResource; +use Magento\Framework\Model\ResourceModel\AbstractResource; /** * Entity/Attribute/Model - entity abstract diff --git a/app/code/Magento/Eav/Model/Entity/Attribute.php b/app/code/Magento/Eav/Model/Entity/Attribute.php index ac8627c9644..e26146bc9aa 100644 --- a/app/code/Magento/Eav/Model/Entity/Attribute.php +++ b/app/code/Magento/Eav/Model/Entity/Attribute.php @@ -87,7 +87,7 @@ class Attribute extends \Magento\Eav\Model\Entity\Attribute\AbstractAttribute im * @param \Magento\Catalog\Model\Product\ReservedAttributeList $reservedAttributeList * @param \Magento\Framework\Locale\ResolverInterface $localeResolver * @param DateTimeFormatterInterface $dateTimeFormatter - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -110,7 +110,7 @@ class Attribute extends \Magento\Eav\Model\Entity\Attribute\AbstractAttribute im \Magento\Catalog\Model\Product\ReservedAttributeList $reservedAttributeList, \Magento\Framework\Locale\ResolverInterface $localeResolver, DateTimeFormatterInterface $dateTimeFormatter, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Eav/Model/Entity/Attribute/AbstractAttribute.php b/app/code/Magento/Eav/Model/Entity/Attribute/AbstractAttribute.php index 7709a917084..b77183b6c05 100644 --- a/app/code/Magento/Eav/Model/Entity/Attribute/AbstractAttribute.php +++ b/app/code/Magento/Eav/Model/Entity/Attribute/AbstractAttribute.php @@ -124,7 +124,7 @@ abstract class AbstractAttribute extends \Magento\Framework\Model\AbstractExtens * @param \Magento\Eav\Api\Data\AttributeOptionInterfaceFactory $optionDataFactory * @param \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor * @param \Magento\Framework\Api\DataObjectHelper $dataObjectHelper - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -143,7 +143,7 @@ abstract class AbstractAttribute extends \Magento\Framework\Model\AbstractExtens \Magento\Eav\Api\Data\AttributeOptionInterfaceFactory $optionDataFactory, \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor, \Magento\Framework\Api\DataObjectHelper $dataObjectHelper, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Eav/Model/Entity/Attribute/Set.php b/app/code/Magento/Eav/Model/Entity/Attribute/Set.php index d7311a351f8..cd5705a566b 100644 --- a/app/code/Magento/Eav/Model/Entity/Attribute/Set.php +++ b/app/code/Magento/Eav/Model/Entity/Attribute/Set.php @@ -81,7 +81,7 @@ class Set extends \Magento\Framework\Model\AbstractExtensibleModel implements * @param GroupFactory $attrGroupFactory * @param \Magento\Eav\Model\Entity\AttributeFactory $attributeFactory * @param \Magento\Eav\Model\ResourceModel\Entity\Attribute $resourceAttribute - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -96,7 +96,7 @@ class Set extends \Magento\Framework\Model\AbstractExtensibleModel implements \Magento\Eav\Model\Entity\Attribute\GroupFactory $attrGroupFactory, \Magento\Eav\Model\Entity\AttributeFactory $attributeFactory, \Magento\Eav\Model\ResourceModel\Entity\Attribute $resourceAttribute, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { @@ -348,7 +348,7 @@ class Set extends \Magento\Framework\Model\AbstractExtensibleModel implements /** * Get resource instance * - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected function _getResource() { diff --git a/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php b/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php index 9d1ebdeb183..9527e4a162d 100644 --- a/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php +++ b/app/code/Magento/Eav/Model/Entity/Collection/AbstractCollection.php @@ -265,7 +265,7 @@ abstract class AbstractCollection extends AbstractDb implements SourceProviderIn /** * Get resource instance * - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb * @codeCoverageIgnore */ public function getResource() diff --git a/app/code/Magento/Eav/Model/Entity/Collection/VersionControl/AbstractCollection.php b/app/code/Magento/Eav/Model/Entity/Collection/VersionControl/AbstractCollection.php index aceca7018b6..bda30846930 100644 --- a/app/code/Magento/Eav/Model/Entity/Collection/VersionControl/AbstractCollection.php +++ b/app/code/Magento/Eav/Model/Entity/Collection/VersionControl/AbstractCollection.php @@ -11,7 +11,7 @@ namespace Magento\Eav\Model\Entity\Collection\VersionControl; abstract class AbstractCollection extends \Magento\Eav\Model\Entity\Collection\AbstractCollection { /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot */ protected $entitySnapshot; @@ -25,7 +25,7 @@ abstract class AbstractCollection extends \Magento\Eav\Model\Entity\Collection\A * @param \Magento\Eav\Model\EntityFactory $eavEntityFactory * @param \Magento\Eav\Model\ResourceModel\Helper $resourceHelper * @param \Magento\Framework\Validator\UniversalFactory $universalFactory - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, * @param mixed $connection * @SuppressWarnings(PHPMD.ExcessiveParameterList) * @codeCoverageIgnore @@ -40,7 +40,7 @@ abstract class AbstractCollection extends \Magento\Eav\Model\Entity\Collection\A \Magento\Eav\Model\EntityFactory $eavEntityFactory, \Magento\Eav\Model\ResourceModel\Helper $resourceHelper, \Magento\Framework\Validator\UniversalFactory $universalFactory, - \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null ) { $this->entitySnapshot = $entitySnapshot; diff --git a/app/code/Magento/Eav/Model/Entity/Context.php b/app/code/Magento/Eav/Model/Entity/Context.php index 974fdedd8be..1f858af9378 100644 --- a/app/code/Magento/Eav/Model/Entity/Context.php +++ b/app/code/Magento/Eav/Model/Entity/Context.php @@ -42,12 +42,12 @@ class Context implements \Magento\Framework\ObjectManager\ContextInterface protected $universalFactory; /** - * @var \Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface + * @var \Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface */ protected $transactionManager; /** - * @var \Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor + * @var \Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor */ protected $objectRelationProcessor; @@ -58,8 +58,8 @@ class Context implements \Magento\Framework\ObjectManager\ContextInterface * @param \Magento\Framework\Locale\FormatInterface $localeFormat * @param \Magento\Eav\Model\ResourceModel\Helper $resourceHelper * @param \Magento\Framework\Validator\UniversalFactory $universalFactory - * @param \Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface $transactionManager - * @param \Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor $objectRelationProcessor + * @param \Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface $transactionManager + * @param \Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor $objectRelationProcessor */ public function __construct( \Magento\Framework\App\ResourceConnection $resource, @@ -68,8 +68,8 @@ class Context implements \Magento\Framework\ObjectManager\ContextInterface \Magento\Framework\Locale\FormatInterface $localeFormat, \Magento\Eav\Model\ResourceModel\Helper $resourceHelper, \Magento\Framework\Validator\UniversalFactory $universalFactory, - \Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface $transactionManager, - \Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor $objectRelationProcessor + \Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface $transactionManager, + \Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor $objectRelationProcessor ) { $this->eavConfig = $eavConfig; $this->resource = $resource; @@ -130,7 +130,7 @@ class Context implements \Magento\Framework\ObjectManager\ContextInterface } /** - * @return \Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor + * @return \Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor */ public function getObjectRelationProcessor() { @@ -138,7 +138,7 @@ class Context implements \Magento\Framework\ObjectManager\ContextInterface } /** - * @return \Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface + * @return \Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface */ public function getTransactionManager() { diff --git a/app/code/Magento/Eav/Model/Entity/Type.php b/app/code/Magento/Eav/Model/Entity/Type.php index 4a95e8dc617..362e8fc2ddd 100644 --- a/app/code/Magento/Eav/Model/Entity/Type.php +++ b/app/code/Magento/Eav/Model/Entity/Type.php @@ -86,7 +86,7 @@ class Type extends \Magento\Framework\Model\AbstractModel * @param \Magento\Eav\Model\Entity\Attribute\SetFactory $attSetFactory * @param \Magento\Eav\Model\Entity\StoreFactory $storeFactory * @param \Magento\Framework\Validator\UniversalFactory $universalFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @codeCoverageIgnore @@ -98,7 +98,7 @@ class Type extends \Magento\Framework\Model\AbstractModel \Magento\Eav\Model\Entity\Attribute\SetFactory $attSetFactory, \Magento\Eav\Model\Entity\StoreFactory $storeFactory, \Magento\Framework\Validator\UniversalFactory $universalFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { @@ -359,7 +359,7 @@ class Type extends \Magento\Framework\Model\AbstractModel /** * Retrieve resource entity object * - * @return \Magento\Framework\Model\ModelResource\AbstractResource + * @return \Magento\Framework\Model\ResourceModel\AbstractResource */ public function getEntity() { diff --git a/app/code/Magento/Eav/Model/Entity/VersionControl/AbstractEntity.php b/app/code/Magento/Eav/Model/Entity/VersionControl/AbstractEntity.php index 87e2fbd15c8..0e32219f56f 100644 --- a/app/code/Magento/Eav/Model/Entity/VersionControl/AbstractEntity.php +++ b/app/code/Magento/Eav/Model/Entity/VersionControl/AbstractEntity.php @@ -11,26 +11,26 @@ namespace Magento\Eav\Model\Entity\VersionControl; abstract class AbstractEntity extends \Magento\Eav\Model\Entity\AbstractEntity { /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot */ protected $entitySnapshot; /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite */ protected $entityRelationComposite; /** * @param \Magento\Eav\Model\Entity\Context $context - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite * @param array $data * @codeCoverageIgnore */ public function __construct( \Magento\Eav\Model\Entity\Context $context, - \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, - \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite, $data = [] ) { $this->entitySnapshot = $entitySnapshot; diff --git a/app/code/Magento/Eav/Model/Entity/VersionControl/Metadata.php b/app/code/Magento/Eav/Model/Entity/VersionControl/Metadata.php index 7ac09d827a8..40184c1e67f 100644 --- a/app/code/Magento/Eav/Model/Entity/VersionControl/Metadata.php +++ b/app/code/Magento/Eav/Model/Entity/VersionControl/Metadata.php @@ -8,7 +8,7 @@ namespace Magento\Eav\Model\Entity\VersionControl; /** * Class Metadata represents a list of entity fields that are applicable for persistence operations */ -class Metadata extends \Magento\Framework\Model\ModelResource\Db\VersionControl\Metadata +class Metadata extends \Magento\Framework\Model\ResourceModel\Db\VersionControl\Metadata { /** * Returns list of entity fields that are applicable for persistence operations diff --git a/app/code/Magento/Eav/Model/Form/Element.php b/app/code/Magento/Eav/Model/Form/Element.php index 53b09ca9696..2c573a42e8d 100644 --- a/app/code/Magento/Eav/Model/Form/Element.php +++ b/app/code/Magento/Eav/Model/Form/Element.php @@ -40,7 +40,7 @@ class Element extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Eav\Model\Config $eavConfig - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @codeCoverageIgnore @@ -49,7 +49,7 @@ class Element extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Eav\Model\Config $eavConfig, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Eav/Model/Form/Fieldset.php b/app/code/Magento/Eav/Model/Form/Fieldset.php index f62c929a56d..6b7a6fd4561 100644 --- a/app/code/Magento/Eav/Model/Form/Fieldset.php +++ b/app/code/Magento/Eav/Model/Form/Fieldset.php @@ -36,7 +36,7 @@ class Fieldset extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Store\Model\StoreManagerInterface $storeManager - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @codeCoverageIgnore @@ -45,7 +45,7 @@ class Fieldset extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Store\Model\StoreManagerInterface $storeManager, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Eav/Model/Form/Type.php b/app/code/Magento/Eav/Model/Form/Type.php index 2d2d71ed230..011a751799b 100644 --- a/app/code/Magento/Eav/Model/Form/Type.php +++ b/app/code/Magento/Eav/Model/Form/Type.php @@ -46,7 +46,7 @@ class Type extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Registry $registry * @param \Magento\Eav\Model\Form\FieldsetFactory $fieldsetFactory * @param \Magento\Eav\Model\Form\ElementFactory $elementFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @codeCoverageIgnore @@ -56,7 +56,7 @@ class Type extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Registry $registry, \Magento\Eav\Model\Form\FieldsetFactory $fieldsetFactory, \Magento\Eav\Model\Form\ElementFactory $elementFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Eav/Model/ResourceModel/Attribute/Collection.php b/app/code/Magento/Eav/Model/ResourceModel/Attribute/Collection.php index e65443fc19d..b4212e0de80 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Attribute/Collection.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Attribute/Collection.php @@ -46,7 +46,7 @@ abstract class Collection extends \Magento\Eav\Model\ResourceModel\Entity\Attrib * @param \Magento\Eav\Model\Config $eavConfig * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * @codeCoverageIgnore */ public function __construct( @@ -57,7 +57,7 @@ abstract class Collection extends \Magento\Eav\Model\ResourceModel\Entity\Attrib \Magento\Eav\Model\Config $eavConfig, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_storeManager = $storeManager; parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $eavConfig, $connection, $resource); diff --git a/app/code/Magento/Eav/Model/ResourceModel/Config.php b/app/code/Magento/Eav/Model/ResourceModel/Config.php index cc094ce9b90..f4c086a0160 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Config.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Config.php @@ -10,7 +10,7 @@ namespace Magento\Eav\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Config extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Config extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Array of entity types diff --git a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute.php b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute.php index 6eb91a04c7f..46d4c57cf0a 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute.php @@ -15,7 +15,7 @@ use Magento\Framework\Model\AbstractModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Attribute extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Attribute extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Eav Entity attributes cache @@ -37,14 +37,14 @@ class Attribute extends \Magento\Framework\Model\ModelResource\Db\AbstractDb /** * Class constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param Type $eavEntityType * @param string $connectionName * @codeCoverageIgnore */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Store\Model\StoreManagerInterface $storeManager, Type $eavEntityType, $connectionName = null diff --git a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Collection.php b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Collection.php index 0dc661628ea..b750d50f741 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Collection.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Collection.php @@ -12,7 +12,7 @@ use Magento\Eav\Model\Entity\Type; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Add attribute set info flag @@ -33,7 +33,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Eav\Model\Config $eavConfig * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * @codeCoverageIgnore */ public function __construct( @@ -43,7 +43,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Eav\Model\Config $eavConfig, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->eavConfig = $eavConfig; parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); @@ -418,7 +418,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab /** * Ad information about attribute sets to collection result data * - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ protected function _afterLoadData() { diff --git a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Grid/Collection.php b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Grid/Collection.php index 1afe6d928f7..4dca4750399 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Grid/Collection.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Grid/Collection.php @@ -5,7 +5,7 @@ */ namespace Magento\Eav\Model\ResourceModel\Entity\Attribute\Grid; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; /** * Eav Resource Attribute Set Collection @@ -26,7 +26,7 @@ class Collection extends \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\C * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Framework\Registry $registryManager * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * @codeCoverageIgnore */ public function __construct( @@ -36,7 +36,7 @@ class Collection extends \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\C \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\Registry $registryManager, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_registryManager = $registryManager; parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); @@ -45,7 +45,7 @@ class Collection extends \Magento\Eav\Model\ResourceModel\Entity\Attribute\Set\C /** * Add filter by entity type id to collection * - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection|$this + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection|$this */ protected function _initSelect() { diff --git a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Group.php b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Group.php index 1cc51c103a0..6a4a8f0e70f 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Group.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Group.php @@ -10,7 +10,7 @@ namespace Magento\Eav\Model\ResourceModel\Entity\Attribute; * * @author Magento Core Team <core@magentocommerce.com> */ -class Group extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Group extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Constants for attribute group codes @@ -58,7 +58,7 @@ class Group extends \Magento\Framework\Model\ModelResource\Db\AbstractDb * Perform actions before object save * * @param \Magento\Framework\Model\AbstractModel $object - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object) { @@ -72,7 +72,7 @@ class Group extends \Magento\Framework\Model\ModelResource\Db\AbstractDb * Perform actions after object save * * @param \Magento\Framework\Model\AbstractModel $object - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected function _afterSave(\Magento\Framework\Model\AbstractModel $object) { diff --git a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Group/Collection.php b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Group/Collection.php index 0b6f42bad99..57304cbe277 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Group/Collection.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Group/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Eav\Model\ResourceModel\Entity\Attribute\Group; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Init resource model for collection diff --git a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Option.php b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Option.php index aab2b48e9fd..2bb306fa7c2 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Option.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Option.php @@ -10,7 +10,7 @@ namespace Magento\Eav\Model\ResourceModel\Entity\Attribute; * * @author Magento Core Team <core@magentocommerce.com> */ -class Option extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Option extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Option/Collection.php b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Option/Collection.php index 1af5aa93515..730312c0940 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Option/Collection.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Option/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Eav\Model\ResourceModel\Entity\Attribute\Option; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Option value table @@ -37,7 +37,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Framework\App\ResourceConnection $coreResource * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * @codeCoverageIgnore */ public function __construct( @@ -48,7 +48,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Framework\App\ResourceConnection $coreResource, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_storeManager = $storeManager; $this->_coreResource = $coreResource; diff --git a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Set.php b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Set.php index 73463d6bf41..913be1826ca 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Set.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Set.php @@ -10,7 +10,7 @@ namespace Magento\Eav\Model\ResourceModel\Entity\Attribute; * * @author Magento Core Team <core@magentocommerce.com> */ -class Set extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Set extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * EAV cache ids @@ -28,14 +28,14 @@ class Set extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $eavConfig; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param GroupFactory $attrGroupFactory * @param \Magento\Eav\Model\Config $eavConfig * @param string $connectionName * @codeCoverageIgnore */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Eav\Model\ResourceModel\Entity\Attribute\GroupFactory $attrGroupFactory, \Magento\Eav\Model\Config $eavConfig, $connectionName = null diff --git a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Set/Collection.php b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Set/Collection.php index b387d79d3f8..63cd97ef0d8 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Set/Collection.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Entity/Attribute/Set/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Eav\Model\ResourceModel\Entity\Attribute\Set; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource initialization diff --git a/app/code/Magento/Eav/Model/ResourceModel/Entity/Store.php b/app/code/Magento/Eav/Model/ResourceModel/Entity/Store.php index 3ac344709ef..eddbe7edce3 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Entity/Store.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Entity/Store.php @@ -13,7 +13,7 @@ use Magento\Framework\DataObject; * * @author Magento Core Team <core@magentocommerce.com> */ -class Store extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Store extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Eav/Model/ResourceModel/Entity/Type.php b/app/code/Magento/Eav/Model/ResourceModel/Entity/Type.php index 27962971bcc..0b54022ab99 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Entity/Type.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Entity/Type.php @@ -10,7 +10,7 @@ namespace Magento\Eav\Model\ResourceModel\Entity; * * @author Magento Core Team <core@magentocommerce.com> */ -class Type extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Type extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Eav/Model/ResourceModel/Entity/Type/Collection.php b/app/code/Magento/Eav/Model/ResourceModel/Entity/Type/Collection.php index d95ba269528..769bff41b50 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Entity/Type/Collection.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Entity/Type/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Eav\Model\ResourceModel\Entity\Type; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource initialization diff --git a/app/code/Magento/Eav/Model/ResourceModel/Form/Attribute.php b/app/code/Magento/Eav/Model/ResourceModel/Form/Attribute.php index a4612becca0..53aec996749 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Form/Attribute.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Form/Attribute.php @@ -11,7 +11,7 @@ */ namespace Magento\Eav\Model\ResourceModel\Form; -abstract class Attribute extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +abstract class Attribute extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Return form attribute IDs by form code diff --git a/app/code/Magento/Eav/Model/ResourceModel/Form/Attribute/Collection.php b/app/code/Magento/Eav/Model/ResourceModel/Form/Attribute/Collection.php index 45d58985f0f..2e364087647 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Form/Attribute/Collection.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Form/Attribute/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Eav\Model\ResourceModel\Form\Attribute; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Current module pathname @@ -58,7 +58,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Eav\Model\Config $eavConfig * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * @codeCoverageIgnore */ public function __construct( @@ -69,7 +69,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Eav\Model\Config $eavConfig, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_storeManager = $storeManager; $this->_eavConfig = $eavConfig; diff --git a/app/code/Magento/Eav/Model/ResourceModel/Form/Element.php b/app/code/Magento/Eav/Model/ResourceModel/Form/Element.php index 997fe96c0d6..82772b7436f 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Form/Element.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Form/Element.php @@ -10,7 +10,7 @@ namespace Magento\Eav\Model\ResourceModel\Form; * * @author Magento Core Team <core@magentocommerce.com> */ -class Element extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Element extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize connection and define main table diff --git a/app/code/Magento/Eav/Model/ResourceModel/Form/Element/Collection.php b/app/code/Magento/Eav/Model/ResourceModel/Form/Element/Collection.php index 8acab7d4249..3f1fc938e12 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Form/Element/Collection.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Form/Element/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Eav\Model\ResourceModel\Form\Element; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize collection model diff --git a/app/code/Magento/Eav/Model/ResourceModel/Form/Fieldset.php b/app/code/Magento/Eav/Model/ResourceModel/Form/Fieldset.php index 58a6960591b..7b6897229aa 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Form/Fieldset.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Form/Fieldset.php @@ -14,7 +14,7 @@ use Magento\Framework\Model\AbstractModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Fieldset extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Fieldset extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize connection and define main table diff --git a/app/code/Magento/Eav/Model/ResourceModel/Form/Fieldset/Collection.php b/app/code/Magento/Eav/Model/ResourceModel/Form/Fieldset/Collection.php index 171f9246305..3d6feedcc1c 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Form/Fieldset/Collection.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Form/Fieldset/Collection.php @@ -16,11 +16,11 @@ use Magento\Framework\Data\Collection\EntityFactory; use Magento\Eav\Model\Form\Type; use Magento\Framework\Event\ManagerInterface; use Magento\Framework\Data\Collection\Db\FetchStrategyInterface; -use Magento\Framework\Model\ModelResource\Db\AbstractDb; +use Magento\Framework\Model\ResourceModel\Db\AbstractDb; use Psr\Log\LoggerInterface as Logger; use Magento\Store\Model\StoreManagerInterface; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * @var StoreManagerInterface diff --git a/app/code/Magento/Eav/Model/ResourceModel/Form/Type.php b/app/code/Magento/Eav/Model/ResourceModel/Form/Type.php index f08f56e1499..38535f4831d 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Form/Type.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Form/Type.php @@ -13,7 +13,7 @@ use Magento\Framework\Model\AbstractModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Type extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Type extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize connection and define main table @@ -71,7 +71,7 @@ class Type extends \Magento\Framework\Model\ModelResource\Db\AbstractDb /** * Save entity types after save form type * - * @see \Magento\Framework\Model\ModelResource\Db\AbstractDb#_afterSave($object) + * @see \Magento\Framework\Model\ResourceModel\Db\AbstractDb#_afterSave($object) * * @param FormType|AbstractModel $object * @return $this diff --git a/app/code/Magento/Eav/Model/ResourceModel/Form/Type/Collection.php b/app/code/Magento/Eav/Model/ResourceModel/Form/Type/Collection.php index cee833b6660..5fcb127bca1 100644 --- a/app/code/Magento/Eav/Model/ResourceModel/Form/Type/Collection.php +++ b/app/code/Magento/Eav/Model/ResourceModel/Form/Type/Collection.php @@ -13,7 +13,7 @@ namespace Magento\Eav\Model\ResourceModel\Form\Type; use Magento\Eav\Model\Entity\Type; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize collection model diff --git a/app/code/Magento/Eav/Test/Unit/Model/Entity/Collection/VersionControl/AbstractCollectionTest.php b/app/code/Magento/Eav/Test/Unit/Model/Entity/Collection/VersionControl/AbstractCollectionTest.php index 6782fb524cc..6a0aa5039c6 100644 --- a/app/code/Magento/Eav/Test/Unit/Model/Entity/Collection/VersionControl/AbstractCollectionTest.php +++ b/app/code/Magento/Eav/Test/Unit/Model/Entity/Collection/VersionControl/AbstractCollectionTest.php @@ -21,7 +21,7 @@ class AbstractCollectionTest extends \Magento\Eav\Test\Unit\Model\Entity\Collect protected $subject; /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject */ protected $entitySnapshot; @@ -32,7 +32,7 @@ class AbstractCollectionTest extends \Magento\Eav\Test\Unit\Model\Entity\Collect $objectManager = new ObjectManager($this); $this->entitySnapshot = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot', ['registerSnapshot'], [], '', diff --git a/app/code/Magento/Eav/Test/Unit/Model/Entity/TypeTest.php b/app/code/Magento/Eav/Test/Unit/Model/Entity/TypeTest.php index 69d0a66513c..7d578fa8d57 100644 --- a/app/code/Magento/Eav/Test/Unit/Model/Entity/TypeTest.php +++ b/app/code/Magento/Eav/Test/Unit/Model/Entity/TypeTest.php @@ -80,7 +80,7 @@ class TypeTest extends \PHPUnit_Framework_TestCase false ); $this->resourceMock = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, diff --git a/app/code/Magento/Eav/Test/Unit/Model/Entity/VersionControl/AbstractEntityTest.php b/app/code/Magento/Eav/Test/Unit/Model/Entity/VersionControl/AbstractEntityTest.php index c0cd7023281..8c98d7c6589 100644 --- a/app/code/Magento/Eav/Test/Unit/Model/Entity/VersionControl/AbstractEntityTest.php +++ b/app/code/Magento/Eav/Test/Unit/Model/Entity/VersionControl/AbstractEntityTest.php @@ -6,7 +6,7 @@ namespace Magento\Eav\Test\Unit\Model\Entity\VersionControl; use Magento\Eav\Model\Entity\VersionControl\AbstractEntity; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; /** @@ -15,7 +15,7 @@ use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; class AbstractEntityTest extends \Magento\Eav\Test\Unit\Model\Entity\AbstractEntityTest { /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject */ protected $entitySnapshot; @@ -27,7 +27,7 @@ class AbstractEntityTest extends \Magento\Eav\Test\Unit\Model\Entity\AbstractEnt protected function setUp() { $this->entitySnapshot = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot', ['isModified', 'registerSnapshot'], [], '', @@ -35,7 +35,7 @@ class AbstractEntityTest extends \Magento\Eav\Test\Unit\Model\Entity\AbstractEnt ); $this->entityRelationComposite = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite', ['processRelations'], [], '', diff --git a/app/code/Magento/Eav/Test/Unit/Model/Entity/VersionControl/MetadataTest.php b/app/code/Magento/Eav/Test/Unit/Model/Entity/VersionControl/MetadataTest.php index f7532efa226..070dbdaa28f 100644 --- a/app/code/Magento/Eav/Test/Unit/Model/Entity/VersionControl/MetadataTest.php +++ b/app/code/Magento/Eav/Test/Unit/Model/Entity/VersionControl/MetadataTest.php @@ -23,7 +23,7 @@ class MetadataTest extends \PHPUnit_Framework_TestCase protected $model; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resource; diff --git a/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Attribute/CollectionTest.php b/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Attribute/CollectionTest.php index b456cd248c5..9424e4d62a9 100644 --- a/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Attribute/CollectionTest.php +++ b/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Attribute/CollectionTest.php @@ -56,7 +56,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase protected $connectionMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -94,7 +94,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase $this->select = new \Magento\Framework\DB\Select($this->connectionMock); $this->resourceMock = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, diff --git a/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Entity/Attribute/Option/CollectionTest.php b/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Entity/Attribute/Option/CollectionTest.php index cfbfb8fd545..2da0008b077 100644 --- a/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Entity/Attribute/Option/CollectionTest.php +++ b/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Entity/Attribute/Option/CollectionTest.php @@ -48,7 +48,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase protected $connectionMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -91,7 +91,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase ); $this->connectionMock = $this->getMock('Magento\Framework\DB\Adapter\Pdo\Mysql', [], [], '', false); $this->resourceMock = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, diff --git a/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Entity/Attribute/SetTest.php b/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Entity/Attribute/SetTest.php index 0de43ba3fda..f554327bf76 100644 --- a/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Entity/Attribute/SetTest.php +++ b/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Entity/Attribute/SetTest.php @@ -56,16 +56,16 @@ class SetTest extends \PHPUnit_Framework_TestCase ->setMethods(['getConnection', 'getTableName']) ->getMock(); $this->transactionManagerMock = $this->getMock( - '\Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface' + '\Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface' ); $this->relationProcessor = $this->getMock( - '\Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor', + '\Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor', [], [], '', false ); - $contextMock = $this->getMock('Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once()) ->method('getTransactionManager') ->willReturn($this->transactionManagerMock); diff --git a/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Entity/AttributeTest.php b/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Entity/AttributeTest.php index 24558ba8092..f1ec1a31b98 100644 --- a/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Entity/AttributeTest.php +++ b/app/code/Magento/Eav/Test/Unit/Model/ResourceModel/Entity/AttributeTest.php @@ -296,14 +296,14 @@ class AttributeTest extends \PHPUnit_Framework_TestCase $eavEntityType = $this->getMock('Magento\Eav\Model\ResourceModel\Entity\Type', [], [], '', false, false); $relationProcessorMock = $this->getMock( - '\Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor', + '\Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor', [], [], '', false ); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($resource); $contextMock->expects($this->once())->method('getObjectRelationProcessor')->willReturn($relationProcessorMock); diff --git a/app/code/Magento/Email/Model/ResourceModel/Template.php b/app/code/Magento/Email/Model/ResourceModel/Template.php index bcc8efc5e72..2196c831348 100644 --- a/app/code/Magento/Email/Model/ResourceModel/Template.php +++ b/app/code/Magento/Email/Model/ResourceModel/Template.php @@ -12,7 +12,7 @@ use Magento\Framework\Model\AbstractModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Template extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Template extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Framework\Stdlib\DateTime @@ -20,12 +20,12 @@ class Template extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $dateTime; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime $dateTime, $connectionName = null ) { diff --git a/app/code/Magento/Email/Model/ResourceModel/Template/Collection.php b/app/code/Magento/Email/Model/ResourceModel/Template/Collection.php index 5f35b0b6657..018aed027e1 100644 --- a/app/code/Magento/Email/Model/ResourceModel/Template/Collection.php +++ b/app/code/Magento/Email/Model/ResourceModel/Template/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Email\Model\ResourceModel\Template; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Template table name diff --git a/app/code/Magento/EncryptionKey/Model/ResourceModel/Key/Change.php b/app/code/Magento/EncryptionKey/Model/ResourceModel/Key/Change.php index 7e2202db2c8..5daa8da5d22 100644 --- a/app/code/Magento/EncryptionKey/Model/ResourceModel/Key/Change.php +++ b/app/code/Magento/EncryptionKey/Model/ResourceModel/Key/Change.php @@ -14,7 +14,7 @@ use Magento\Framework\Config\File\ConfigFilePool; * Encryption key changer resource model * The operation must be done in one transaction */ -class Change extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Change extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Encryptor interface @@ -45,7 +45,7 @@ class Change extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $writer; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Filesystem $filesystem * @param \Magento\Config\Model\Config\Structure $structure * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor @@ -53,7 +53,7 @@ class Change extends \Magento\Framework\Model\ModelResource\Db\AbstractDb * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Filesystem $filesystem, \Magento\Config\Model\Config\Structure $structure, \Magento\Framework\Encryption\EncryptorInterface $encryptor, diff --git a/app/code/Magento/EncryptionKey/Test/Unit/Model/ResourceModel/Key/ChangeTest.php b/app/code/Magento/EncryptionKey/Test/Unit/Model/ResourceModel/Key/ChangeTest.php index 53f89136b82..55286de60bc 100644 --- a/app/code/Magento/EncryptionKey/Test/Unit/Model/ResourceModel/Key/ChangeTest.php +++ b/app/code/Magento/EncryptionKey/Test/Unit/Model/ResourceModel/Key/ChangeTest.php @@ -25,7 +25,7 @@ class ChangeTest extends \PHPUnit_Framework_TestCase protected $resourceMock; /** @var \Magento\Framework\DB\Select|\PHPUnit_Framework_MockObject_MockObject */ protected $selectMock; - /** @var \Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface */ + /** @var \Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface */ protected $tansactionMock; /** @var |\PHPUnit_Framework_MockObject_MockObject */ protected $objRelationMock; @@ -62,12 +62,12 @@ class ChangeTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->setMethods([]) ->getMock(); - $translationClassName = 'Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface'; + $translationClassName = 'Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface'; $this->tansactionMock = $this->getMockBuilder($translationClassName) ->disableOriginalConstructor() ->setMethods([]) ->getMock(); - $relationClassName = 'Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor'; + $relationClassName = 'Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor'; $this->objRelationMock = $this->getMockBuilder($relationClassName) ->disableOriginalConstructor() ->setMethods([]) diff --git a/app/code/Magento/GiftMessage/Model/ResourceModel/Message.php b/app/code/Magento/GiftMessage/Model/ResourceModel/Message.php index 94b1218051d..5d9b36fd8ee 100644 --- a/app/code/Magento/GiftMessage/Model/ResourceModel/Message.php +++ b/app/code/Magento/GiftMessage/Model/ResourceModel/Message.php @@ -10,7 +10,7 @@ namespace Magento\GiftMessage\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Message extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Message extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Define main table diff --git a/app/code/Magento/GiftMessage/Model/ResourceModel/Message/Collection.php b/app/code/Magento/GiftMessage/Model/ResourceModel/Message/Collection.php index 5ca342875b6..c948edf1cd0 100644 --- a/app/code/Magento/GiftMessage/Model/ResourceModel/Message/Collection.php +++ b/app/code/Magento/GiftMessage/Model/ResourceModel/Message/Collection.php @@ -10,7 +10,7 @@ namespace Magento\GiftMessage\Model\ResourceModel\Message; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize resource model diff --git a/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php b/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php index f072d2114d6..b3cc66a1ed1 100644 --- a/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php +++ b/app/code/Magento/GoogleAdwords/Model/Config/Backend/AbstractConversion.php @@ -28,7 +28,7 @@ abstract class AbstractConversion extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\Validator\DataObjectFactory $validatorCompositeFactory * @param \Magento\GoogleAdwords\Model\Validator\Factory $validatorFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -38,7 +38,7 @@ abstract class AbstractConversion extends \Magento\Framework\App\Config\Value \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\Validator\DataObjectFactory $validatorCompositeFactory, \Magento\GoogleAdwords\Model\Validator\Factory $validatorFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/GoogleOptimizer/Model/ResourceModel/Code.php b/app/code/Magento/GoogleOptimizer/Model/ResourceModel/Code.php index ba7afe858e4..50d89b04d7f 100644 --- a/app/code/Magento/GoogleOptimizer/Model/ResourceModel/Code.php +++ b/app/code/Magento/GoogleOptimizer/Model/ResourceModel/Code.php @@ -7,7 +7,7 @@ */ namespace Magento\GoogleOptimizer\Model\ResourceModel; -class Code extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Code extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/ImportExport/Model/ResourceModel/History.php b/app/code/Magento/ImportExport/Model/ResourceModel/History.php index 47b33fc42ca..5732f4dda2c 100644 --- a/app/code/Magento/ImportExport/Model/ResourceModel/History.php +++ b/app/code/Magento/ImportExport/Model/ResourceModel/History.php @@ -8,7 +8,7 @@ namespace Magento\ImportExport\Model\ResourceModel; /** * Class History */ -class History extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class History extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Define main table diff --git a/app/code/Magento/ImportExport/Model/ResourceModel/History/Collection.php b/app/code/Magento/ImportExport/Model/ResourceModel/History/Collection.php index 99e3f48a186..f427da809a4 100644 --- a/app/code/Magento/ImportExport/Model/ResourceModel/History/Collection.php +++ b/app/code/Magento/ImportExport/Model/ResourceModel/History/Collection.php @@ -10,7 +10,7 @@ use \Magento\ImportExport\Model\History; /** * Import history collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Link table name diff --git a/app/code/Magento/ImportExport/Model/ResourceModel/Import/Data.php b/app/code/Magento/ImportExport/Model/ResourceModel/Import/Data.php index ce429e3033e..db95265ec47 100644 --- a/app/code/Magento/ImportExport/Model/ResourceModel/Import/Data.php +++ b/app/code/Magento/ImportExport/Model/ResourceModel/Import/Data.php @@ -10,7 +10,7 @@ namespace Magento\ImportExport\Model\ResourceModel\Import; * * @author Magento Core Team <core@magentocommerce.com> */ -class Data extends \Magento\Framework\Model\ModelResource\Db\AbstractDb implements \IteratorAggregate +class Data extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb implements \IteratorAggregate { /** * @var \Iterator @@ -27,12 +27,12 @@ class Data extends \Magento\Framework\Model\ModelResource\Db\AbstractDb implemen /** * Class constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Json\Helper\Data $jsonHelper * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Json\Helper\Data $jsonHelper, $connectionName = null ) { diff --git a/app/code/Magento/Indexer/Model/ResourceModel/AbstractResource.php b/app/code/Magento/Indexer/Model/ResourceModel/AbstractResource.php index b9867aa37cc..78920dad56e 100644 --- a/app/code/Magento/Indexer/Model/ResourceModel/AbstractResource.php +++ b/app/code/Magento/Indexer/Model/ResourceModel/AbstractResource.php @@ -14,7 +14,7 @@ namespace Magento\Indexer\Model\ResourceModel; use Magento\Framework\DB\Adapter\AdapterInterface; use Magento\Framework\DB\Select; -abstract class AbstractResource extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +abstract class AbstractResource extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Constructor @@ -26,12 +26,12 @@ abstract class AbstractResource extends \Magento\Framework\Model\ModelResource\D /** * Class constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Indexer\Table\StrategyInterface $tableStrategy, $connectionName = null ) { diff --git a/app/code/Magento/Indexer/Model/ResourceModel/Indexer/State.php b/app/code/Magento/Indexer/Model/ResourceModel/Indexer/State.php index ad4e69505fb..e783c4aabb6 100644 --- a/app/code/Magento/Indexer/Model/ResourceModel/Indexer/State.php +++ b/app/code/Magento/Indexer/Model/ResourceModel/Indexer/State.php @@ -5,7 +5,7 @@ */ namespace Magento\Indexer\Model\ResourceModel\Indexer; -class State extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class State extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Indexer/Model/ResourceModel/Indexer/State/Collection.php b/app/code/Magento/Indexer/Model/ResourceModel/Indexer/State/Collection.php index cad7f010d50..2b87373dbe7 100644 --- a/app/code/Magento/Indexer/Model/ResourceModel/Indexer/State/Collection.php +++ b/app/code/Magento/Indexer/Model/ResourceModel/Indexer/State/Collection.php @@ -5,7 +5,7 @@ */ namespace Magento\Indexer\Model\ResourceModel\Indexer\State; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Collection initialization diff --git a/app/code/Magento/Indexer/Model/ResourceModel/Mview/View/State.php b/app/code/Magento/Indexer/Model/ResourceModel/Mview/View/State.php index df3ce9b39ef..fd7612f9ac3 100644 --- a/app/code/Magento/Indexer/Model/ResourceModel/Mview/View/State.php +++ b/app/code/Magento/Indexer/Model/ResourceModel/Mview/View/State.php @@ -5,7 +5,7 @@ */ namespace Magento\Indexer\Model\ResourceModel\Mview\View; -class State extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class State extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Indexer/Model/ResourceModel/Mview/View/State/Collection.php b/app/code/Magento/Indexer/Model/ResourceModel/Mview/View/State/Collection.php index 3f870f95942..9f6ce502356 100644 --- a/app/code/Magento/Indexer/Model/ResourceModel/Mview/View/State/Collection.php +++ b/app/code/Magento/Indexer/Model/ResourceModel/Mview/View/State/Collection.php @@ -5,7 +5,7 @@ */ namespace Magento\Indexer\Model\ResourceModel\Mview\View\State; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection implements +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection implements \Magento\Framework\Mview\View\State\CollectionInterface { /** diff --git a/app/code/Magento/Integration/Model/Integration.php b/app/code/Magento/Integration/Model/Integration.php index 6ac6ba894b3..42cd8f5fcd0 100644 --- a/app/code/Magento/Integration/Model/Integration.php +++ b/app/code/Magento/Integration/Model/Integration.php @@ -77,7 +77,7 @@ class Integration extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Stdlib\DateTime $dateTime - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -85,7 +85,7 @@ class Integration extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Stdlib\DateTime $dateTime, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Integration/Model/Oauth/Consumer.php b/app/code/Magento/Integration/Model/Oauth/Consumer.php index 5e46ff6db32..1cfe091aed4 100644 --- a/app/code/Magento/Integration/Model/Oauth/Consumer.php +++ b/app/code/Magento/Integration/Model/Oauth/Consumer.php @@ -49,7 +49,7 @@ class Consumer extends \Magento\Framework\Model\AbstractModel implements Consume * @param \Magento\Integration\Model\Oauth\Consumer\Validator\KeyLength $keyLength * @param \Magento\Framework\Url\Validator $urlValidator * @param \Magento\Integration\Helper\Oauth\Data $dataHelper - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -59,7 +59,7 @@ class Consumer extends \Magento\Framework\Model\AbstractModel implements Consume \Magento\Integration\Model\Oauth\Consumer\Validator\KeyLength $keyLength, \Magento\Framework\Url\Validator $urlValidator, \Magento\Integration\Helper\Oauth\Data $dataHelper, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Integration/Model/Oauth/Nonce.php b/app/code/Magento/Integration/Model/Oauth/Nonce.php index 075ca749574..4499aa8d42b 100644 --- a/app/code/Magento/Integration/Model/Oauth/Nonce.php +++ b/app/code/Magento/Integration/Model/Oauth/Nonce.php @@ -30,7 +30,7 @@ class Nonce extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Integration\Helper\Oauth\Data $oauthData - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -38,7 +38,7 @@ class Nonce extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Integration\Helper\Oauth\Data $oauthData, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Integration/Model/Oauth/Token.php b/app/code/Magento/Integration/Model/Oauth/Token.php index f0c2c587db7..52f50dcbab7 100644 --- a/app/code/Magento/Integration/Model/Oauth/Token.php +++ b/app/code/Magento/Integration/Model/Oauth/Token.php @@ -96,7 +96,7 @@ class Token extends \Magento\Framework\Model\AbstractModel * @param \Magento\Integration\Model\Oauth\ConsumerFactory $consumerFactory * @param \Magento\Integration\Helper\Oauth\Data $oauthData * @param OauthHelper $oauthHelper - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -110,7 +110,7 @@ class Token extends \Magento\Framework\Model\AbstractModel \Magento\Integration\Model\Oauth\ConsumerFactory $consumerFactory, \Magento\Integration\Helper\Oauth\Data $oauthData, OauthHelper $oauthHelper, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Integration/Model/ResourceModel/Integration.php b/app/code/Magento/Integration/Model/ResourceModel/Integration.php index 1fd67dad5bd..d3a643b72cc 100644 --- a/app/code/Magento/Integration/Model/ResourceModel/Integration.php +++ b/app/code/Magento/Integration/Model/ResourceModel/Integration.php @@ -9,7 +9,7 @@ namespace Magento\Integration\Model\ResourceModel; /** * Integration resource model */ -class Integration extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Integration extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize resource model diff --git a/app/code/Magento/Integration/Model/ResourceModel/Integration/Collection.php b/app/code/Magento/Integration/Model/ResourceModel/Integration/Collection.php index a0941446aa2..02feeda9ab3 100644 --- a/app/code/Magento/Integration/Model/ResourceModel/Integration/Collection.php +++ b/app/code/Magento/Integration/Model/ResourceModel/Integration/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Integration\Model\ResourceModel\Integration; /** * Integrations collection. */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource collection initialization. diff --git a/app/code/Magento/Integration/Model/ResourceModel/Oauth/Consumer.php b/app/code/Magento/Integration/Model/ResourceModel/Oauth/Consumer.php index ae92c482536..6e06d06b43f 100644 --- a/app/code/Magento/Integration/Model/ResourceModel/Oauth/Consumer.php +++ b/app/code/Magento/Integration/Model/ResourceModel/Oauth/Consumer.php @@ -5,7 +5,7 @@ */ namespace Magento\Integration\Model\ResourceModel\Oauth; -class Consumer extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Consumer extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Framework\Stdlib\DateTime @@ -13,12 +13,12 @@ class Consumer extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_dateTime; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime $dateTime, $connectionName = null ) { diff --git a/app/code/Magento/Integration/Model/ResourceModel/Oauth/Consumer/Collection.php b/app/code/Magento/Integration/Model/ResourceModel/Oauth/Consumer/Collection.php index 3444edf70f0..e213f03aa4f 100644 --- a/app/code/Magento/Integration/Model/ResourceModel/Oauth/Consumer/Collection.php +++ b/app/code/Magento/Integration/Model/ResourceModel/Oauth/Consumer/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Integration\Model\ResourceModel\Oauth\Consumer; /** * OAuth Application resource collection model */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize collection model diff --git a/app/code/Magento/Integration/Model/ResourceModel/Oauth/Nonce.php b/app/code/Magento/Integration/Model/ResourceModel/Oauth/Nonce.php index 7b6fa520eae..54babc2e060 100644 --- a/app/code/Magento/Integration/Model/ResourceModel/Oauth/Nonce.php +++ b/app/code/Magento/Integration/Model/ResourceModel/Oauth/Nonce.php @@ -10,7 +10,7 @@ namespace Magento\Integration\Model\ResourceModel\Oauth; * * @author Magento Core Team <core@magentocommerce.com> */ -class Nonce extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Nonce extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize resource model diff --git a/app/code/Magento/Integration/Model/ResourceModel/Oauth/Nonce/Collection.php b/app/code/Magento/Integration/Model/ResourceModel/Oauth/Nonce/Collection.php index 90116036917..db1dad4fad8 100644 --- a/app/code/Magento/Integration/Model/ResourceModel/Oauth/Nonce/Collection.php +++ b/app/code/Magento/Integration/Model/ResourceModel/Oauth/Nonce/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Integration\Model\ResourceModel\Oauth\Nonce; /** * OAuth nonce resource collection model */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize collection model diff --git a/app/code/Magento/Integration/Model/ResourceModel/Oauth/Token.php b/app/code/Magento/Integration/Model/ResourceModel/Oauth/Token.php index 3e2758db005..b851efd3f7a 100644 --- a/app/code/Magento/Integration/Model/ResourceModel/Oauth/Token.php +++ b/app/code/Magento/Integration/Model/ResourceModel/Oauth/Token.php @@ -10,7 +10,7 @@ use Magento\Authorization\Model\UserContextInterface; /** * OAuth token resource model */ -class Token extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Token extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Framework\Stdlib\DateTime @@ -18,12 +18,12 @@ class Token extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_dateTime; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime $dateTime, $connectionName = null ) { diff --git a/app/code/Magento/Integration/Model/ResourceModel/Oauth/Token/Collection.php b/app/code/Magento/Integration/Model/ResourceModel/Oauth/Token/Collection.php index c1f4365d66e..6e777fdff72 100644 --- a/app/code/Magento/Integration/Model/ResourceModel/Oauth/Token/Collection.php +++ b/app/code/Magento/Integration/Model/ResourceModel/Oauth/Token/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Integration\Model\ResourceModel\Oauth\Token; /** * OAuth token resource collection model */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize collection model diff --git a/app/code/Magento/Integration/Test/Unit/Model/IntegrationTest.php b/app/code/Magento/Integration/Test/Unit/Model/IntegrationTest.php index 759b77d1340..2bd75138d9f 100644 --- a/app/code/Magento/Integration/Test/Unit/Model/IntegrationTest.php +++ b/app/code/Magento/Integration/Test/Unit/Model/IntegrationTest.php @@ -31,7 +31,7 @@ class IntegrationTest extends \PHPUnit_Framework_TestCase protected $dateTimeMock; /** - * @var \Magento\Framework\Model\ModelResource\AbstractResource|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\AbstractResource|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -76,7 +76,7 @@ class IntegrationTest extends \PHPUnit_Framework_TestCase false ); $this->resourceMock = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\AbstractResource', + 'Magento\Framework\Model\ResourceModel\AbstractResource', [], '', false, diff --git a/app/code/Magento/Integration/Test/Unit/Model/Oauth/ConsumerTest.php b/app/code/Magento/Integration/Test/Unit/Model/Oauth/ConsumerTest.php index 32f1ee039f8..cf5db2ee443 100644 --- a/app/code/Magento/Integration/Test/Unit/Model/Oauth/ConsumerTest.php +++ b/app/code/Magento/Integration/Test/Unit/Model/Oauth/ConsumerTest.php @@ -49,7 +49,7 @@ class ConsumerTest extends \PHPUnit_Framework_TestCase protected $oauthDataMock; /** - * @var \Magento\Framework\Model\ModelResource\AbstractResource|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\AbstractResource|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; diff --git a/app/code/Magento/Integration/Test/Unit/Model/Oauth/NonceTest.php b/app/code/Magento/Integration/Test/Unit/Model/Oauth/NonceTest.php index 5ceeae0f53a..fd41c76c7c6 100644 --- a/app/code/Magento/Integration/Test/Unit/Model/Oauth/NonceTest.php +++ b/app/code/Magento/Integration/Test/Unit/Model/Oauth/NonceTest.php @@ -32,7 +32,7 @@ class NonceTest extends \PHPUnit_Framework_TestCase protected $oauthDataMock; /** - * @var \Magento\Framework\Model\ModelResource\AbstractResource|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\AbstractResource|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -77,7 +77,7 @@ class NonceTest extends \PHPUnit_Framework_TestCase false ); $this->resourceMock = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\AbstractResource', + 'Magento\Framework\Model\ResourceModel\AbstractResource', [], '', false, diff --git a/app/code/Magento/Integration/Test/Unit/Model/Oauth/TokenTest.php b/app/code/Magento/Integration/Test/Unit/Model/Oauth/TokenTest.php index cc0be1c629d..427e8591787 100644 --- a/app/code/Magento/Integration/Test/Unit/Model/Oauth/TokenTest.php +++ b/app/code/Magento/Integration/Test/Unit/Model/Oauth/TokenTest.php @@ -68,7 +68,7 @@ class TokenTest extends \PHPUnit_Framework_TestCase protected $oauthHelperMock; /** - * @var \Magento\Framework\Model\ModelResource\AbstractResource|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\AbstractResource|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -119,7 +119,7 @@ class TokenTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->getMock(); - $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\AbstractResource') + $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\AbstractResource') ->setMethods( [ 'getIdFieldName', diff --git a/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Integration/CollectionTest.php b/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Integration/CollectionTest.php index 707f00002dd..9e188fd3ec7 100644 --- a/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Integration/CollectionTest.php +++ b/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Integration/CollectionTest.php @@ -33,7 +33,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase ->method('select') ->will($this->returnValue($this->select)); - $resource = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\AbstractDb') + $resource = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->setMethods(['__wakeup', 'getConnection']) ->getMockForAbstractClass(); diff --git a/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/IntegrationTest.php b/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/IntegrationTest.php index 994996623b6..b42bd4c18ea 100644 --- a/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/IntegrationTest.php +++ b/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/IntegrationTest.php @@ -26,7 +26,7 @@ class IntegrationTest extends \PHPUnit_Framework_TestCase protected $resourceMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\Context|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\Context|\PHPUnit_Framework_MockObject_MockObject */ protected $contextMock; @@ -47,7 +47,7 @@ class IntegrationTest extends \PHPUnit_Framework_TestCase $this->resourceMock = $this->getMock('Magento\Framework\App\ResourceConnection', [], [], '', false); $this->resourceMock->expects($this->any())->method('getConnection')->willReturn($this->connectionMock); - $this->contextMock = $this->getMock('Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $this->contextMock = $this->getMock('Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $this->contextMock->expects($this->once())->method('getResources')->willReturn($this->resourceMock); $this->integrationResourceModel = new \Magento\Integration\Model\ResourceModel\Integration($this->contextMock); diff --git a/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/ConsumerTest.php b/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/ConsumerTest.php index 30c5872de26..38b2993b7e2 100644 --- a/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/ConsumerTest.php +++ b/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/ConsumerTest.php @@ -45,7 +45,7 @@ class ConsumerTest extends \PHPUnit_Framework_TestCase $this->resourceMock = $this->getMock('Magento\Framework\App\ResourceConnection', [], [], '', false); $this->resourceMock->expects($this->any())->method('getConnection')->willReturn($this->connectionMock); - $contextMock = $this->getMock('Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($this->resourceMock); $this->consumerResource = new \Magento\Integration\Model\ResourceModel\Oauth\Consumer( $contextMock, diff --git a/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/NonceTest.php b/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/NonceTest.php index feff0879f79..4faae40b06f 100644 --- a/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/NonceTest.php +++ b/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/NonceTest.php @@ -32,7 +32,7 @@ class NonceTest extends \PHPUnit_Framework_TestCase $this->resourceMock = $this->getMock('Magento\Framework\App\ResourceConnection', [], [], '', false); $this->resourceMock->expects($this->any())->method('getConnection')->willReturn($this->connectionMock); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($this->resourceMock); $this->nonceResource = new \Magento\Integration\Model\ResourceModel\Oauth\Nonce($contextMock); diff --git a/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/Token/CollectionTest.php b/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/Token/CollectionTest.php index ff9046d4f6f..21f66d94ebb 100644 --- a/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/Token/CollectionTest.php +++ b/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/Token/CollectionTest.php @@ -33,7 +33,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase ->method('select') ->will($this->returnValue($this->select)); - $resource = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\AbstractDb') + $resource = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->setMethods(['__wakeup', 'getConnection']) ->getMockForAbstractClass(); diff --git a/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/TokenTest.php b/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/TokenTest.php index 95fe15805c6..da0e0b9bc37 100644 --- a/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/TokenTest.php +++ b/app/code/Magento/Integration/Test/Unit/Model/ResourceModel/Oauth/TokenTest.php @@ -32,7 +32,7 @@ class TokenTest extends \PHPUnit_Framework_TestCase $this->resourceMock = $this->getMock('Magento\Framework\App\ResourceConnection', [], [], '', false); $this->resourceMock->expects($this->any())->method('getConnection')->willReturn($this->connectionMock); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($this->resourceMock); $this->tokenResource = new \Magento\Integration\Model\ResourceModel\Oauth\Token( diff --git a/app/code/Magento/MediaStorage/Model/Config/Backend/Storage/Media/Database.php b/app/code/Magento/MediaStorage/Model/Config/Backend/Storage/Media/Database.php index 95f4d6c2165..7bd243fd0ac 100644 --- a/app/code/Magento/MediaStorage/Model/Config/Backend/Storage/Media/Database.php +++ b/app/code/Magento/MediaStorage/Model/Config/Backend/Storage/Media/Database.php @@ -19,7 +19,7 @@ class Database extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\MediaStorage\Helper\File\Storage $coreFileStorage - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -28,7 +28,7 @@ class Database extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\MediaStorage\Helper\File\Storage $coreFileStorage, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/MediaStorage/Model/File/Storage.php b/app/code/Magento/MediaStorage/Model/File/Storage.php index aa3e783d87a..87b176f850b 100644 --- a/app/code/Magento/MediaStorage/Model/File/Storage.php +++ b/app/code/Magento/MediaStorage/Model/File/Storage.php @@ -98,7 +98,7 @@ class Storage extends AbstractModel * @param \Magento\MediaStorage\Model\File\Storage\FileFactory $fileFactory * @param \Magento\MediaStorage\Model\File\Storage\DatabaseFactory $databaseFactory * @param Filesystem $filesystem - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -113,7 +113,7 @@ class Storage extends AbstractModel \Magento\MediaStorage\Model\File\Storage\FileFactory $fileFactory, \Magento\MediaStorage\Model\File\Storage\DatabaseFactory $databaseFactory, Filesystem $filesystem, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/MediaStorage/Model/File/Storage/Database/AbstractDatabase.php b/app/code/Magento/MediaStorage/Model/File/Storage/Database/AbstractDatabase.php index 5e764db6ac9..16d3439c9ac 100644 --- a/app/code/Magento/MediaStorage/Model/File/Storage/Database/AbstractDatabase.php +++ b/app/code/Magento/MediaStorage/Model/File/Storage/Database/AbstractDatabase.php @@ -47,7 +47,7 @@ abstract class AbstractDatabase extends \Magento\Framework\Model\AbstractModel * @param \Magento\MediaStorage\Helper\File\Storage\Database $coreFileStorageDb * @param \Magento\Framework\Stdlib\DateTime\DateTime $dateModel * @param \Magento\Framework\App\Config\ScopeConfigInterface $configuration - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param string $connectionName * @param array $data @@ -58,7 +58,7 @@ abstract class AbstractDatabase extends \Magento\Framework\Model\AbstractModel \Magento\MediaStorage\Helper\File\Storage\Database $coreFileStorageDb, \Magento\Framework\Stdlib\DateTime\DateTime $dateModel, \Magento\Framework\App\Config\ScopeConfigInterface $configuration, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, $connectionName = null, array $data = [] @@ -94,7 +94,7 @@ abstract class AbstractDatabase extends \Magento\Framework\Model\AbstractModel /** * Get resource instance * - * @return \Magento\Framework\Model\ModelResource\AbstractResource + * @return \Magento\Framework\Model\ResourceModel\AbstractResource */ protected function _getResource() { diff --git a/app/code/Magento/MediaStorage/Model/ResourceModel/File/Storage/AbstractStorage.php b/app/code/Magento/MediaStorage/Model/ResourceModel/File/Storage/AbstractStorage.php index 93633dcf3ae..934279fedb5 100644 --- a/app/code/Magento/MediaStorage/Model/ResourceModel/File/Storage/AbstractStorage.php +++ b/app/code/Magento/MediaStorage/Model/ResourceModel/File/Storage/AbstractStorage.php @@ -8,7 +8,7 @@ namespace Magento\MediaStorage\Model\ResourceModel\File\Storage; /** * Class AbstractStorage */ -abstract class AbstractStorage extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +abstract class AbstractStorage extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * File storage connection name diff --git a/app/code/Magento/MediaStorage/Model/ResourceModel/File/Storage/Database.php b/app/code/Magento/MediaStorage/Model/ResourceModel/File/Storage/Database.php index 4c2521eab93..429c4c3e9f1 100644 --- a/app/code/Magento/MediaStorage/Model/ResourceModel/File/Storage/Database.php +++ b/app/code/Magento/MediaStorage/Model/ResourceModel/File/Storage/Database.php @@ -16,12 +16,12 @@ class Database extends \Magento\MediaStorage\Model\ResourceModel\File\Storage\Ab protected $_resourceHelper; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\DB\Helper $resourceHelper * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\DB\Helper $resourceHelper, $connectionName = null ) { diff --git a/app/code/Magento/MediaStorage/Test/Unit/Helper/File/Storage/DatabaseTest.php b/app/code/Magento/MediaStorage/Test/Unit/Helper/File/Storage/DatabaseTest.php index 1def7eab39d..2299f66fcbd 100644 --- a/app/code/Magento/MediaStorage/Test/Unit/Helper/File/Storage/DatabaseTest.php +++ b/app/code/Magento/MediaStorage/Test/Unit/Helper/File/Storage/DatabaseTest.php @@ -107,7 +107,7 @@ class DatabaseTest extends \PHPUnit_Framework_TestCase $this->dbStorageFactoryMock->expects($this->once()) ->method('create') ->will($this->returnValue($dbModelMock)); - $resourceModelMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\AbstractDb') + $resourceModelMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->setMethods(['__wakeup']) ->getMockForAbstractClass(); @@ -348,7 +348,7 @@ class DatabaseTest extends \PHPUnit_Framework_TestCase $this->dbStorageFactoryMock->expects($this->exactly($callNum)) ->method('create') ->will($this->returnValue($dbModelMock)); - $resourceModelMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\AbstractDb') + $resourceModelMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->setMethods(['deleteFolder', '__wakeup']) ->getMockForAbstractClass(); diff --git a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Counts.php b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Counts.php index 8de4e7ff922..bbd351eee8a 100644 --- a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Counts.php +++ b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Counts.php @@ -6,7 +6,7 @@ namespace Magento\NewRelicReporting\Model\ResourceModel; -class Counts extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Counts extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize users resource model diff --git a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Counts/Collection.php b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Counts/Collection.php index d6cd15cda11..da4e4bdbabe 100644 --- a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Counts/Collection.php +++ b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Counts/Collection.php @@ -6,7 +6,7 @@ namespace Magento\NewRelicReporting\Model\ResourceModel\Counts; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize counts resource collection diff --git a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Module.php b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Module.php index c9d73c97fb7..43bd47407d1 100644 --- a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Module.php +++ b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Module.php @@ -6,7 +6,7 @@ namespace Magento\NewRelicReporting\Model\ResourceModel; -class Module extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Module extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize module status resource model diff --git a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Module/Collection.php b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Module/Collection.php index 1b41b28aa7b..28c4119736b 100644 --- a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Module/Collection.php +++ b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Module/Collection.php @@ -6,7 +6,7 @@ namespace Magento\NewRelicReporting\Model\ResourceModel\Module; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize module status resource model diff --git a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Orders.php b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Orders.php index 8620239aef5..d3ba20c22ba 100644 --- a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Orders.php +++ b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Orders.php @@ -6,7 +6,7 @@ namespace Magento\NewRelicReporting\Model\ResourceModel; -class Orders extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Orders extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize orders resource model diff --git a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Orders/Collection.php b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Orders/Collection.php index f5a51553da2..0f49fe88bce 100644 --- a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Orders/Collection.php +++ b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Orders/Collection.php @@ -6,7 +6,7 @@ namespace Magento\NewRelicReporting\Model\ResourceModel\Orders; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize orders resource collection diff --git a/app/code/Magento/NewRelicReporting/Model/ResourceModel/System.php b/app/code/Magento/NewRelicReporting/Model/ResourceModel/System.php index 6baa41ddb8d..b5e4edc67b9 100644 --- a/app/code/Magento/NewRelicReporting/Model/ResourceModel/System.php +++ b/app/code/Magento/NewRelicReporting/Model/ResourceModel/System.php @@ -6,7 +6,7 @@ namespace Magento\NewRelicReporting\Model\ResourceModel; -class System extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class System extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize system updates resource model diff --git a/app/code/Magento/NewRelicReporting/Model/ResourceModel/System/Collection.php b/app/code/Magento/NewRelicReporting/Model/ResourceModel/System/Collection.php index c054b74d6a4..021b2f3d4a6 100644 --- a/app/code/Magento/NewRelicReporting/Model/ResourceModel/System/Collection.php +++ b/app/code/Magento/NewRelicReporting/Model/ResourceModel/System/Collection.php @@ -6,7 +6,7 @@ namespace Magento\NewRelicReporting\Model\ResourceModel\System; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize system updates resource collection diff --git a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Users.php b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Users.php index 6240ce40151..40b062535bf 100644 --- a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Users.php +++ b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Users.php @@ -6,7 +6,7 @@ namespace Magento\NewRelicReporting\Model\ResourceModel; -class Users extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Users extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize users resource model diff --git a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Users/Collection.php b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Users/Collection.php index aa54af519c9..6f6d18c6da8 100644 --- a/app/code/Magento/NewRelicReporting/Model/ResourceModel/Users/Collection.php +++ b/app/code/Magento/NewRelicReporting/Model/ResourceModel/Users/Collection.php @@ -6,7 +6,7 @@ namespace Magento\NewRelicReporting\Model\ResourceModel\Users; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize users resource collection diff --git a/app/code/Magento/Newsletter/Model/Problem.php b/app/code/Magento/Newsletter/Model/Problem.php index f881d8e9912..f62b5096605 100644 --- a/app/code/Magento/Newsletter/Model/Problem.php +++ b/app/code/Magento/Newsletter/Model/Problem.php @@ -43,7 +43,7 @@ class Problem extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -51,7 +51,7 @@ class Problem extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Newsletter/Model/Queue.php b/app/code/Magento/Newsletter/Model/Queue.php index 6b34b766a5e..17c28f4d56f 100644 --- a/app/code/Magento/Newsletter/Model/Queue.php +++ b/app/code/Magento/Newsletter/Model/Queue.php @@ -117,7 +117,7 @@ class Queue extends \Magento\Framework\Model\AbstractModel implements TemplateTy * @param \Magento\Newsletter\Model\ProblemFactory $problemFactory * @param \Magento\Newsletter\Model\ResourceModel\Subscriber\CollectionFactory $subscriberCollectionFactory * @param \Magento\Newsletter\Model\Queue\TransportBuilder $transportBuilder - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -131,7 +131,7 @@ class Queue extends \Magento\Framework\Model\AbstractModel implements TemplateTy \Magento\Newsletter\Model\ProblemFactory $problemFactory, \Magento\Newsletter\Model\ResourceModel\Subscriber\CollectionFactory $subscriberCollectionFactory, \Magento\Newsletter\Model\Queue\TransportBuilder $transportBuilder, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Newsletter/Model/ResourceModel/Grid/Collection.php b/app/code/Magento/Newsletter/Model/ResourceModel/Grid/Collection.php index 7c9ee8c0e28..29ca4f54293 100644 --- a/app/code/Magento/Newsletter/Model/ResourceModel/Grid/Collection.php +++ b/app/code/Magento/Newsletter/Model/ResourceModel/Grid/Collection.php @@ -18,7 +18,7 @@ class Collection extends \Magento\Newsletter\Model\ResourceModel\Problem\Collect /** * Adds queue info to grid * - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection|\Magento\Newsletter\Model\ResourceModel\Grid\Collection + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection|\Magento\Newsletter\Model\ResourceModel\Grid\Collection */ protected function _initSelect() { diff --git a/app/code/Magento/Newsletter/Model/ResourceModel/Problem.php b/app/code/Magento/Newsletter/Model/ResourceModel/Problem.php index fb9fd78ee0b..77d8b9baec1 100644 --- a/app/code/Magento/Newsletter/Model/ResourceModel/Problem.php +++ b/app/code/Magento/Newsletter/Model/ResourceModel/Problem.php @@ -10,7 +10,7 @@ namespace Magento\Newsletter\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Problem extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Problem extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Define main table diff --git a/app/code/Magento/Newsletter/Model/ResourceModel/Problem/Collection.php b/app/code/Magento/Newsletter/Model/ResourceModel/Problem/Collection.php index 4d0dfe4cb60..110ef3c821b 100644 --- a/app/code/Magento/Newsletter/Model/ResourceModel/Problem/Collection.php +++ b/app/code/Magento/Newsletter/Model/ResourceModel/Problem/Collection.php @@ -13,7 +13,7 @@ use Magento\Framework\Exception\NoSuchEntityException; * * @SuppressWarnings(PHPMD.LongVariable) */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * True when subscribers info joined @@ -63,7 +63,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param CustomerRepository $customerRepository * @param \Magento\Customer\Helper\View $customerView * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -73,7 +73,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab CustomerRepository $customerRepository, \Magento\Customer\Helper\View $customerView, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); $this->customerRepository = $customerRepository; diff --git a/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php b/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php index 6bc24a47f6e..cf8086a6598 100644 --- a/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php +++ b/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php @@ -13,7 +13,7 @@ use Magento\Newsletter\Model\Queue as ModelQueue; * * @author Magento Core Team <core@magentocommerce.com> */ -class Queue extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Queue extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Subscriber collection @@ -25,12 +25,12 @@ class Queue extends \Magento\Framework\Model\ModelResource\Db\AbstractDb /** * Construct * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Newsletter\Model\ResourceModel\Subscriber\Collection $subscriberCollection * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Newsletter\Model\ResourceModel\Subscriber\Collection $subscriberCollection, $connectionName = null ) { diff --git a/app/code/Magento/Newsletter/Model/ResourceModel/Queue/Collection.php b/app/code/Magento/Newsletter/Model/ResourceModel/Queue/Collection.php index 66eea82e01b..138b7bd121e 100644 --- a/app/code/Magento/Newsletter/Model/ResourceModel/Queue/Collection.php +++ b/app/code/Magento/Newsletter/Model/ResourceModel/Queue/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Newsletter\Model\ResourceModel\Queue; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * True when subscribers info joined @@ -40,7 +40,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Framework\Stdlib\DateTime\DateTime $date * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -49,7 +49,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\Stdlib\DateTime\DateTime $date, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); $this->_date = $date; diff --git a/app/code/Magento/Newsletter/Model/ResourceModel/Subscriber.php b/app/code/Magento/Newsletter/Model/ResourceModel/Subscriber.php index f0bac9f61c6..ffd998a2c33 100644 --- a/app/code/Magento/Newsletter/Model/ResourceModel/Subscriber.php +++ b/app/code/Magento/Newsletter/Model/ResourceModel/Subscriber.php @@ -10,7 +10,7 @@ namespace Magento\Newsletter\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Subscriber extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Subscriber extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * DB connection @@ -48,13 +48,13 @@ class Subscriber extends \Magento\Framework\Model\ModelResource\Db\AbstractDb /** * Construct * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime\DateTime $date * @param \Magento\Framework\Math\Random $mathRandom * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime\DateTime $date, \Magento\Framework\Math\Random $mathRandom, $connectionName = null diff --git a/app/code/Magento/Newsletter/Model/ResourceModel/Subscriber/Collection.php b/app/code/Magento/Newsletter/Model/ResourceModel/Subscriber/Collection.php index b93f600cbdc..92de4c8b2e6 100644 --- a/app/code/Magento/Newsletter/Model/ResourceModel/Subscriber/Collection.php +++ b/app/code/Magento/Newsletter/Model/ResourceModel/Subscriber/Collection.php @@ -12,7 +12,7 @@ use Magento\Newsletter\Model\Queue as ModelQueue; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Queue link table name @@ -63,7 +63,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Eav\Helper\Data $customerHelperData * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -72,7 +72,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Eav\Helper\Data $customerHelperData, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_customerHelperData = $customerHelperData; parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); diff --git a/app/code/Magento/Newsletter/Model/ResourceModel/Template.php b/app/code/Magento/Newsletter/Model/ResourceModel/Template.php index f2a19d1c81e..3d9c097678a 100644 --- a/app/code/Magento/Newsletter/Model/ResourceModel/Template.php +++ b/app/code/Magento/Newsletter/Model/ResourceModel/Template.php @@ -13,7 +13,7 @@ namespace Magento\Newsletter\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Template extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Template extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Date @@ -23,12 +23,12 @@ class Template extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_date; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime\DateTime $date * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime\DateTime $date, $connectionName = null ) { diff --git a/app/code/Magento/Newsletter/Model/ResourceModel/Template/Collection.php b/app/code/Magento/Newsletter/Model/ResourceModel/Template/Collection.php index 17e5272f315..925352d5049 100644 --- a/app/code/Magento/Newsletter/Model/ResourceModel/Template/Collection.php +++ b/app/code/Magento/Newsletter/Model/ResourceModel/Template/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Newsletter\Model\ResourceModel\Template; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Define resource model and model diff --git a/app/code/Magento/Newsletter/Model/Subscriber.php b/app/code/Magento/Newsletter/Model/Subscriber.php index 2a4be1caffe..5ea6aefc0de 100644 --- a/app/code/Magento/Newsletter/Model/Subscriber.php +++ b/app/code/Magento/Newsletter/Model/Subscriber.php @@ -133,7 +133,7 @@ class Subscriber extends \Magento\Framework\Model\AbstractModel * @param CustomerRepositoryInterface $customerRepository * @param AccountManagementInterface $customerAccountManagement * @param \Magento\Framework\Translate\Inline\StateInterface $inlineTranslation - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -149,7 +149,7 @@ class Subscriber extends \Magento\Framework\Model\AbstractModel CustomerRepositoryInterface $customerRepository, AccountManagementInterface $customerAccountManagement, \Magento\Framework\Translate\Inline\StateInterface $inlineTranslation, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/OfflineShipping/Model/Config/Backend/Tablerate.php b/app/code/Magento/OfflineShipping/Model/Config/Backend/Tablerate.php index e48b75956b3..e6920ede9b8 100644 --- a/app/code/Magento/OfflineShipping/Model/Config/Backend/Tablerate.php +++ b/app/code/Magento/OfflineShipping/Model/Config/Backend/Tablerate.php @@ -24,7 +24,7 @@ class Tablerate extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\OfflineShipping\Model\ResourceModel\Carrier\TablerateFactory $tablerateFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -33,7 +33,7 @@ class Tablerate extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\OfflineShipping\Model\ResourceModel\Carrier\TablerateFactory $tablerateFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/OfflineShipping/Model/ResourceModel/Carrier/Tablerate.php b/app/code/Magento/OfflineShipping/Model/ResourceModel/Carrier/Tablerate.php index 8d8c47141d9..df0228a3383 100644 --- a/app/code/Magento/OfflineShipping/Model/ResourceModel/Carrier/Tablerate.php +++ b/app/code/Magento/OfflineShipping/Model/ResourceModel/Carrier/Tablerate.php @@ -18,7 +18,7 @@ use Magento\Framework\Filesystem\DirectoryList; * @SuppressWarnings(PHPMD.TooManyFields) * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class Tablerate extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Tablerate extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Import table rates website ID @@ -122,7 +122,7 @@ class Tablerate extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_filesystem; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\App\Config\ScopeConfigInterface $coreConfig * @param \Magento\Store\Model\StoreManagerInterface $storeManager @@ -133,7 +133,7 @@ class Tablerate extends \Magento\Framework\Model\ModelResource\Db\AbstractDb * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Psr\Log\LoggerInterface $logger, \Magento\Framework\App\Config\ScopeConfigInterface $coreConfig, \Magento\Store\Model\StoreManagerInterface $storeManager, diff --git a/app/code/Magento/OfflineShipping/Model/ResourceModel/Carrier/Tablerate/Collection.php b/app/code/Magento/OfflineShipping/Model/ResourceModel/Carrier/Tablerate/Collection.php index 441fec80fe0..1a63a12fac9 100644 --- a/app/code/Magento/OfflineShipping/Model/ResourceModel/Carrier/Tablerate/Collection.php +++ b/app/code/Magento/OfflineShipping/Model/ResourceModel/Carrier/Tablerate/Collection.php @@ -10,7 +10,7 @@ namespace Magento\OfflineShipping\Model\ResourceModel\Carrier\Tablerate; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Directory/country table name diff --git a/app/code/Magento/Payment/Model/Info.php b/app/code/Magento/Payment/Model/Info.php index f6028fc9369..4ba972b321f 100644 --- a/app/code/Magento/Payment/Model/Info.php +++ b/app/code/Magento/Payment/Model/Info.php @@ -38,7 +38,7 @@ class Info extends AbstractExtensibleModel implements InfoInterface * @param \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory, * @param \Magento\Payment\Helper\Data $paymentData * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -49,7 +49,7 @@ class Info extends AbstractExtensibleModel implements InfoInterface \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory, \Magento\Payment\Helper\Data $paymentData, \Magento\Framework\Encryption\EncryptorInterface $encryptor, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Payment/Model/Method/AbstractMethod.php b/app/code/Magento/Payment/Model/Method/AbstractMethod.php index cc47008313c..8e6300b6258 100644 --- a/app/code/Magento/Payment/Model/Method/AbstractMethod.php +++ b/app/code/Magento/Payment/Model/Method/AbstractMethod.php @@ -221,7 +221,7 @@ abstract class AbstractMethod extends \Magento\Framework\Model\AbstractExtensibl * @param \Magento\Payment\Helper\Data $paymentData * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param Logger $logger - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -234,7 +234,7 @@ abstract class AbstractMethod extends \Magento\Framework\Model\AbstractExtensibl \Magento\Payment\Helper\Data $paymentData, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Payment\Model\Method\Logger $logger, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Payment/Model/Method/Cc.php b/app/code/Magento/Payment/Model/Method/Cc.php index 23fa92da538..1bf0ab267e2 100644 --- a/app/code/Magento/Payment/Model/Method/Cc.php +++ b/app/code/Magento/Payment/Model/Method/Cc.php @@ -46,7 +46,7 @@ class Cc extends \Magento\Payment\Model\Method\AbstractMethod * @param Logger $logger * @param \Magento\Framework\Module\ModuleListInterface $moduleList * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -61,7 +61,7 @@ class Cc extends \Magento\Payment\Model\Method\AbstractMethod \Magento\Payment\Model\Method\Logger $logger, \Magento\Framework\Module\ModuleListInterface $moduleList, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Payment/Model/Method/Free.php b/app/code/Magento/Payment/Model/Method/Free.php index fd15c0a926d..dd534c8a58f 100644 --- a/app/code/Magento/Payment/Model/Method/Free.php +++ b/app/code/Magento/Payment/Model/Method/Free.php @@ -52,7 +52,7 @@ class Free extends \Magento\Payment\Model\Method\AbstractMethod * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param Logger $logger * @param PriceCurrencyInterface $priceCurrency - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -66,7 +66,7 @@ class Free extends \Magento\Payment\Model\Method\AbstractMethod \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Payment\Model\Method\Logger $logger, PriceCurrencyInterface $priceCurrency, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/Billing/AbstractAgreement.php b/app/code/Magento/Paypal/Model/Billing/AbstractAgreement.php index bf45d116407..985f7cd8eef 100644 --- a/app/code/Magento/Paypal/Model/Billing/AbstractAgreement.php +++ b/app/code/Magento/Paypal/Model/Billing/AbstractAgreement.php @@ -63,7 +63,7 @@ abstract class AbstractAgreement extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Payment\Helper\Data $paymentData - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -71,7 +71,7 @@ abstract class AbstractAgreement extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Payment\Helper\Data $paymentData, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/Billing/Agreement.php b/app/code/Magento/Paypal/Model/Billing/Agreement.php index f663aabaf1a..1e6a2cee5ae 100644 --- a/app/code/Magento/Paypal/Model/Billing/Agreement.php +++ b/app/code/Magento/Paypal/Model/Billing/Agreement.php @@ -58,7 +58,7 @@ class Agreement extends \Magento\Paypal\Model\Billing\AbstractAgreement * @param \Magento\Payment\Helper\Data $paymentData * @param \Magento\Paypal\Model\ResourceModel\Billing\Agreement\CollectionFactory $billingAgreementFactory * @param \Magento\Framework\Stdlib\DateTime\DateTimeFactory $dateFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -68,7 +68,7 @@ class Agreement extends \Magento\Paypal\Model\Billing\AbstractAgreement \Magento\Payment\Helper\Data $paymentData, \Magento\Paypal\Model\ResourceModel\Billing\Agreement\CollectionFactory $billingAgreementFactory, \Magento\Framework\Stdlib\DateTime\DateTimeFactory $dateFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/Cert.php b/app/code/Magento/Paypal/Model/Cert.php index 86f4dd2b476..a5e4cb8be07 100644 --- a/app/code/Magento/Paypal/Model/Cert.php +++ b/app/code/Magento/Paypal/Model/Cert.php @@ -33,7 +33,7 @@ class Cert extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Filesystem $filesystem * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -42,7 +42,7 @@ class Cert extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Registry $registry, \Magento\Framework\Filesystem $filesystem, \Magento\Framework\Encryption\EncryptorInterface $encryptor, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/Direct.php b/app/code/Magento/Paypal/Model/Direct.php index 0d30a92ca3f..9433a3b5761 100644 --- a/app/code/Magento/Paypal/Model/Direct.php +++ b/app/code/Magento/Paypal/Model/Direct.php @@ -149,7 +149,7 @@ class Direct extends \Magento\Payment\Model\Method\Cc * @param \Magento\Framework\UrlInterface $urlBuilder * @param \Magento\Framework\App\RequestInterface $requestHttp * @param CartFactory $cartFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -169,7 +169,7 @@ class Direct extends \Magento\Payment\Model\Method\Cc \Magento\Framework\UrlInterface $urlBuilder, \Magento\Framework\App\RequestInterface $requestHttp, \Magento\Paypal\Model\CartFactory $cartFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/Express.php b/app/code/Magento/Paypal/Model/Express.php index 0ae6ca30f83..52a3882a169 100644 --- a/app/code/Magento/Paypal/Model/Express.php +++ b/app/code/Magento/Paypal/Model/Express.php @@ -193,7 +193,7 @@ class Express extends \Magento\Payment\Model\Method\AbstractMethod * @param \Magento\Framework\Exception\LocalizedExceptionFactory $exception * @param \Magento\Sales\Api\TransactionRepositoryInterface $transactionRepository * @param Transaction\BuilderInterface $transactionBuilder - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -214,7 +214,7 @@ class Express extends \Magento\Payment\Model\Method\AbstractMethod \Magento\Framework\Exception\LocalizedExceptionFactory $exception, \Magento\Sales\Api\TransactionRepositoryInterface $transactionRepository, \Magento\Sales\Model\Order\Payment\Transaction\BuilderInterface $transactionBuilder, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/Hostedpro.php b/app/code/Magento/Paypal/Model/Hostedpro.php index 9497beb05d5..61d0c35c916 100644 --- a/app/code/Magento/Paypal/Model/Hostedpro.php +++ b/app/code/Magento/Paypal/Model/Hostedpro.php @@ -85,7 +85,7 @@ class Hostedpro extends \Magento\Paypal\Model\Direct * @param \Magento\Framework\App\RequestInterface $requestHttp * @param CartFactory $cartFactory * @param Hostedpro\RequestFactory $hostedproRequestFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -106,7 +106,7 @@ class Hostedpro extends \Magento\Paypal\Model\Direct \Magento\Framework\App\RequestInterface $requestHttp, \Magento\Paypal\Model\CartFactory $cartFactory, \Magento\Paypal\Model\Hostedpro\RequestFactory $hostedproRequestFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/Method/Agreement.php b/app/code/Magento/Paypal/Model/Method/Agreement.php index 0c6d70b28ef..93321eefc89 100644 --- a/app/code/Magento/Paypal/Model/Method/Agreement.php +++ b/app/code/Magento/Paypal/Model/Method/Agreement.php @@ -128,7 +128,7 @@ class Agreement extends \Magento\Paypal\Model\Payment\Method\Billing\AbstractAgr * @param \Magento\Paypal\Model\ProFactory $proFactory * @param \Magento\Framework\UrlInterface $urlBuilder * @param \Magento\Paypal\Model\CartFactory $cartFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -146,7 +146,7 @@ class Agreement extends \Magento\Paypal\Model\Payment\Method\Billing\AbstractAgr \Magento\Paypal\Model\ProFactory $proFactory, \Magento\Framework\UrlInterface $urlBuilder, \Magento\Paypal\Model\CartFactory $cartFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/Payflow/Transparent.php b/app/code/Magento/Paypal/Model/Payflow/Transparent.php index 409e4801d01..2a9142907b8 100644 --- a/app/code/Magento/Paypal/Model/Payflow/Transparent.php +++ b/app/code/Magento/Paypal/Model/Payflow/Transparent.php @@ -53,7 +53,7 @@ class Transparent extends Payflowpro implements TransparentInterface * @param Gateway $gateway * @param HandlerInterface $errorHandler * @param ResponseValidator $responseValidator - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -73,7 +73,7 @@ class Transparent extends Payflowpro implements TransparentInterface Gateway $gateway, HandlerInterface $errorHandler, ResponseValidator $responseValidator, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/PayflowExpress.php b/app/code/Magento/Paypal/Model/PayflowExpress.php index 9c719279cb2..a45f1153b67 100644 --- a/app/code/Magento/Paypal/Model/PayflowExpress.php +++ b/app/code/Magento/Paypal/Model/PayflowExpress.php @@ -66,7 +66,7 @@ class PayflowExpress extends \Magento\Paypal\Model\Express * @param \Magento\Sales\Api\TransactionRepositoryInterface $transactionRepository * @param Transaction\BuilderInterface $transactionBuilder * @param InfoFactory $paypalInfoFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -88,7 +88,7 @@ class PayflowExpress extends \Magento\Paypal\Model\Express \Magento\Sales\Api\TransactionRepositoryInterface $transactionRepository, \Magento\Sales\Model\Order\Payment\Transaction\BuilderInterface $transactionBuilder, InfoFactory $paypalInfoFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/Payflowlink.php b/app/code/Magento/Paypal/Model/Payflowlink.php index ffddac7ea17..20838941543 100644 --- a/app/code/Magento/Paypal/Model/Payflowlink.php +++ b/app/code/Magento/Paypal/Model/Payflowlink.php @@ -132,7 +132,7 @@ class Payflowlink extends \Magento\Paypal\Model\Payflowpro * @param \Magento\Framework\App\RequestInterface $requestHttp * @param \Magento\Store\Model\WebsiteFactory $websiteFactory * @param OrderSender $orderSender - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -158,7 +158,7 @@ class Payflowlink extends \Magento\Paypal\Model\Payflowpro \Magento\Framework\App\RequestInterface $requestHttp, \Magento\Store\Model\WebsiteFactory $websiteFactory, OrderSender $orderSender, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/Payflowpro.php b/app/code/Magento/Paypal/Model/Payflowpro.php index 52294d89b79..61aa24f293b 100644 --- a/app/code/Magento/Paypal/Model/Payflowpro.php +++ b/app/code/Magento/Paypal/Model/Payflowpro.php @@ -270,7 +270,7 @@ class Payflowpro extends \Magento\Payment\Model\Method\Cc implements GatewayInte * @param ConfigInterfaceFactory $configFactory * @param Gateway $gateway * @param HandlerInterface $errorHandler - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -289,7 +289,7 @@ class Payflowpro extends \Magento\Payment\Model\Method\Cc implements GatewayInte ConfigInterfaceFactory $configFactory, Gateway $gateway, HandlerInterface $errorHandler, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/Payment/Method/Billing/AbstractAgreement.php b/app/code/Magento/Paypal/Model/Payment/Method/Billing/AbstractAgreement.php index 71b594ead9f..521a6130026 100644 --- a/app/code/Magento/Paypal/Model/Payment/Method/Billing/AbstractAgreement.php +++ b/app/code/Magento/Paypal/Model/Payment/Method/Billing/AbstractAgreement.php @@ -52,7 +52,7 @@ abstract class AbstractAgreement extends \Magento\Payment\Model\Method\AbstractM * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Payment\Model\Method\Logger $logger * @param \Magento\Paypal\Model\Billing\AgreementFactory $agreementFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -66,7 +66,7 @@ abstract class AbstractAgreement extends \Magento\Payment\Model\Method\AbstractM \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Payment\Model\Method\Logger $logger, \Magento\Paypal\Model\Billing\AgreementFactory $agreementFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/Report/Settlement.php b/app/code/Magento/Paypal/Model/Report/Settlement.php index 73698224b2b..4fc8633bafa 100644 --- a/app/code/Magento/Paypal/Model/Report/Settlement.php +++ b/app/code/Magento/Paypal/Model/Report/Settlement.php @@ -168,7 +168,7 @@ class Settlement extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Filesystem $filesystem * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -178,7 +178,7 @@ class Settlement extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Filesystem $filesystem, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/ResourceModel/Billing/Agreement.php b/app/code/Magento/Paypal/Model/ResourceModel/Billing/Agreement.php index f027cf7bce7..6f714ae437e 100644 --- a/app/code/Magento/Paypal/Model/ResourceModel/Billing/Agreement.php +++ b/app/code/Magento/Paypal/Model/ResourceModel/Billing/Agreement.php @@ -8,7 +8,7 @@ namespace Magento\Paypal\Model\ResourceModel\Billing; /** * Billing agreement resource model */ -class Agreement extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Agreement extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Paypal/Model/ResourceModel/Billing/Agreement/Collection.php b/app/code/Magento/Paypal/Model/ResourceModel/Billing/Agreement/Collection.php index 23f80dff419..f08876e5e61 100644 --- a/app/code/Magento/Paypal/Model/ResourceModel/Billing/Agreement/Collection.php +++ b/app/code/Magento/Paypal/Model/ResourceModel/Billing/Agreement/Collection.php @@ -10,7 +10,7 @@ use Magento\Customer\Api\CustomerMetadataInterface; /** * Billing agreements resource collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Mapping for fields @@ -45,7 +45,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Customer\Model\ResourceModel\Customer $customerResource * @param \Magento\Eav\Helper\Data $eavHelper * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -55,7 +55,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Customer\Model\ResourceModel\Customer $customerResource, \Magento\Eav\Helper\Data $eavHelper, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); $this->_eavHelper = $eavHelper; diff --git a/app/code/Magento/Paypal/Model/ResourceModel/Cert.php b/app/code/Magento/Paypal/Model/ResourceModel/Cert.php index 81cfd75024c..13de6e3c1f3 100644 --- a/app/code/Magento/Paypal/Model/ResourceModel/Cert.php +++ b/app/code/Magento/Paypal/Model/ResourceModel/Cert.php @@ -8,7 +8,7 @@ namespace Magento\Paypal\Model\ResourceModel; /** * PayPal resource model for certificate based authentication */ -class Cert extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Cert extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Framework\Stdlib\DateTime\DateTime @@ -21,13 +21,13 @@ class Cert extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $dateTime; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime\DateTime $coreDate * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime\DateTime $coreDate, \Magento\Framework\Stdlib\DateTime $dateTime, $connectionName = null @@ -51,7 +51,7 @@ class Cert extends \Magento\Framework\Model\ModelResource\Db\AbstractDb * Set date of last update * * @param \Magento\Framework\Model\AbstractModel $object - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object) { diff --git a/app/code/Magento/Paypal/Model/ResourceModel/Report/Settlement.php b/app/code/Magento/Paypal/Model/ResourceModel/Report/Settlement.php index 0538906b4a2..eed10fa9d69 100644 --- a/app/code/Magento/Paypal/Model/ResourceModel/Report/Settlement.php +++ b/app/code/Magento/Paypal/Model/ResourceModel/Report/Settlement.php @@ -11,7 +11,7 @@ namespace Magento\Paypal\Model\ResourceModel\Report; /** * Report settlement resource model */ -class Settlement extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Settlement extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Table name @@ -26,12 +26,12 @@ class Settlement extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_coreDate; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime\DateTime $coreDate * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime\DateTime $coreDate, $connectionName = null ) { diff --git a/app/code/Magento/Paypal/Model/ResourceModel/Report/Settlement/Row.php b/app/code/Magento/Paypal/Model/ResourceModel/Report/Settlement/Row.php index 1501b46fa35..b2bc99495f7 100644 --- a/app/code/Magento/Paypal/Model/ResourceModel/Report/Settlement/Row.php +++ b/app/code/Magento/Paypal/Model/ResourceModel/Report/Settlement/Row.php @@ -10,7 +10,7 @@ namespace Magento\Paypal\Model\ResourceModel\Report\Settlement; * * @author Magento Core Team <core@magentocommerce.com> */ -class Row extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Row extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource model initialization. diff --git a/app/code/Magento/Paypal/Model/ResourceModel/Report/Settlement/Row/Collection.php b/app/code/Magento/Paypal/Model/ResourceModel/Report/Settlement/Row/Collection.php index e76234b8497..6fcd59ad141 100644 --- a/app/code/Magento/Paypal/Model/ResourceModel/Report/Settlement/Row/Collection.php +++ b/app/code/Magento/Paypal/Model/ResourceModel/Report/Settlement/Row/Collection.php @@ -11,7 +11,7 @@ */ namespace Magento\Paypal\Model\ResourceModel\Report\Settlement\Row; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource initializing diff --git a/app/code/Magento/Paypal/Model/System/Config/Backend/Cert.php b/app/code/Magento/Paypal/Model/System/Config/Backend/Cert.php index 5edc101cc02..14607a6c87d 100644 --- a/app/code/Magento/Paypal/Model/System/Config/Backend/Cert.php +++ b/app/code/Magento/Paypal/Model/System/Config/Backend/Cert.php @@ -35,7 +35,7 @@ class Cert extends \Magento\Framework\App\Config\Value * @param \Magento\Paypal\Model\CertFactory $certFactory * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor * @param \Magento\Framework\Filesystem $filesystem - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -46,7 +46,7 @@ class Cert extends \Magento\Framework\App\Config\Value \Magento\Paypal\Model\CertFactory $certFactory, \Magento\Framework\Encryption\EncryptorInterface $encryptor, \Magento\Framework\Filesystem $filesystem, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/System/Config/Backend/Cron.php b/app/code/Magento/Paypal/Model/System/Config/Backend/Cron.php index dda1f596559..8afc08f1471 100644 --- a/app/code/Magento/Paypal/Model/System/Config/Backend/Cron.php +++ b/app/code/Magento/Paypal/Model/System/Config/Backend/Cron.php @@ -21,7 +21,7 @@ class Cron extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\App\Config\ValueFactory $configValueFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -30,7 +30,7 @@ class Cron extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Config\ValueFactory $configValueFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Paypal/Model/System/Config/Backend/MerchantCountry.php b/app/code/Magento/Paypal/Model/System/Config/Backend/MerchantCountry.php index bef8a6e42b4..caa265b4e07 100644 --- a/app/code/Magento/Paypal/Model/System/Config/Backend/MerchantCountry.php +++ b/app/code/Magento/Paypal/Model/System/Config/Backend/MerchantCountry.php @@ -28,7 +28,7 @@ class MerchantCountry extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Directory\Helper\Data $directoryHelper - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -38,7 +38,7 @@ class MerchantCountry extends \Magento\Framework\App\Config\Value \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Directory\Helper\Data $directoryHelper, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Persistent/Model/ResourceModel/Session.php b/app/code/Magento/Persistent/Model/ResourceModel/Session.php index 32f591b6779..a858573f4f7 100644 --- a/app/code/Magento/Persistent/Model/ResourceModel/Session.php +++ b/app/code/Magento/Persistent/Model/ResourceModel/Session.php @@ -8,7 +8,7 @@ namespace Magento\Persistent\Model\ResourceModel; /** * Persistent Session Resource Model */ -class Session extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Session extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Use is object new method for object saving @@ -27,12 +27,12 @@ class Session extends \Magento\Framework\Model\ModelResource\Db\AbstractDb /** * Class constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Persistent\Model\SessionFactory $sessionFactory * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Persistent\Model\SessionFactory $sessionFactory, $connectionName = null ) { diff --git a/app/code/Magento/Persistent/Model/Session.php b/app/code/Magento/Persistent/Model/Session.php index 018ab10d5c4..70c4faaa3dd 100644 --- a/app/code/Magento/Persistent/Model/Session.php +++ b/app/code/Magento/Persistent/Model/Session.php @@ -107,7 +107,7 @@ class Session extends \Magento\Framework\Model\AbstractModel * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\Math\Random $mathRandom * @param \Magento\Framework\Session\Config\ConfigInterface $sessionConfig - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -123,7 +123,7 @@ class Session extends \Magento\Framework\Model\AbstractModel \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\Math\Random $mathRandom, \Magento\Framework\Session\Config\ConfigInterface $sessionConfig, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Persistent/Test/Unit/Model/SessionTest.php b/app/code/Magento/Persistent/Test/Unit/Model/SessionTest.php index 198bcd5909b..c177a912bc2 100644 --- a/app/code/Magento/Persistent/Test/Unit/Model/SessionTest.php +++ b/app/code/Magento/Persistent/Test/Unit/Model/SessionTest.php @@ -38,7 +38,7 @@ class SessionTest extends \PHPUnit_Framework_TestCase ->getMock(); $resourceMock = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, diff --git a/app/code/Magento/ProductAlert/Model/Email.php b/app/code/Magento/ProductAlert/Model/Email.php index bb474f7080a..c8f8bd6c530 100644 --- a/app/code/Magento/ProductAlert/Model/Email.php +++ b/app/code/Magento/ProductAlert/Model/Email.php @@ -117,7 +117,7 @@ class Email extends \Magento\Framework\Model\AbstractModel * @param \Magento\Customer\Helper\View $customerHelper * @param \Magento\Store\Model\App\Emulation $appEmulation * @param \Magento\Framework\Mail\Template\TransportBuilder $transportBuilder - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -132,7 +132,7 @@ class Email extends \Magento\Framework\Model\AbstractModel \Magento\Customer\Helper\View $customerHelper, \Magento\Store\Model\App\Emulation $appEmulation, \Magento\Framework\Mail\Template\TransportBuilder $transportBuilder, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/ProductAlert/Model/Price.php b/app/code/Magento/ProductAlert/Model/Price.php index e3abeb881be..2d6e3535d70 100644 --- a/app/code/Magento/ProductAlert/Model/Price.php +++ b/app/code/Magento/ProductAlert/Model/Price.php @@ -42,7 +42,7 @@ class Price extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\ProductAlert\Model\ResourceModel\Price\Customer\CollectionFactory $customerColFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -50,7 +50,7 @@ class Price extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\ProductAlert\Model\ResourceModel\Price\Customer\CollectionFactory $customerColFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/ProductAlert/Model/ResourceModel/AbstractResource.php b/app/code/Magento/ProductAlert/Model/ResourceModel/AbstractResource.php index ed029f001f6..3d12079b84c 100644 --- a/app/code/Magento/ProductAlert/Model/ResourceModel/AbstractResource.php +++ b/app/code/Magento/ProductAlert/Model/ResourceModel/AbstractResource.php @@ -10,7 +10,7 @@ namespace Magento\ProductAlert\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -abstract class AbstractResource extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +abstract class AbstractResource extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Retrieve alert row by object parameters diff --git a/app/code/Magento/ProductAlert/Model/ResourceModel/Price.php b/app/code/Magento/ProductAlert/Model/ResourceModel/Price.php index f547c2c6175..e070ec58bfa 100644 --- a/app/code/Magento/ProductAlert/Model/ResourceModel/Price.php +++ b/app/code/Magento/ProductAlert/Model/ResourceModel/Price.php @@ -19,12 +19,12 @@ class Price extends \Magento\ProductAlert\Model\ResourceModel\AbstractResource protected $_dateFactory; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime\DateTimeFactory $dateFactory * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime\DateTimeFactory $dateFactory, $connectionName = null ) { diff --git a/app/code/Magento/ProductAlert/Model/ResourceModel/Price/Collection.php b/app/code/Magento/ProductAlert/Model/ResourceModel/Price/Collection.php index 03ec7819ce7..4960fda5758 100644 --- a/app/code/Magento/ProductAlert/Model/ResourceModel/Price/Collection.php +++ b/app/code/Magento/ProductAlert/Model/ResourceModel/Price/Collection.php @@ -10,7 +10,7 @@ namespace Magento\ProductAlert\Model\ResourceModel\Price; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Define price collection diff --git a/app/code/Magento/ProductAlert/Model/ResourceModel/Stock.php b/app/code/Magento/ProductAlert/Model/ResourceModel/Stock.php index 944f722ea5e..bba6ee1eed2 100644 --- a/app/code/Magento/ProductAlert/Model/ResourceModel/Stock.php +++ b/app/code/Magento/ProductAlert/Model/ResourceModel/Stock.php @@ -19,12 +19,12 @@ class Stock extends \Magento\ProductAlert\Model\ResourceModel\AbstractResource protected $_dateFactory; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime\DateTimeFactory $dateFactory * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime\DateTimeFactory $dateFactory, $connectionName = null ) { diff --git a/app/code/Magento/ProductAlert/Model/ResourceModel/Stock/Collection.php b/app/code/Magento/ProductAlert/Model/ResourceModel/Stock/Collection.php index 782c36ca421..3a31c14a640 100644 --- a/app/code/Magento/ProductAlert/Model/ResourceModel/Stock/Collection.php +++ b/app/code/Magento/ProductAlert/Model/ResourceModel/Stock/Collection.php @@ -10,7 +10,7 @@ namespace Magento\ProductAlert\Model\ResourceModel\Stock; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Define stock collection diff --git a/app/code/Magento/ProductAlert/Model/Stock.php b/app/code/Magento/ProductAlert/Model/Stock.php index 07efb59ecfb..54fbedf8983 100644 --- a/app/code/Magento/ProductAlert/Model/Stock.php +++ b/app/code/Magento/ProductAlert/Model/Stock.php @@ -40,7 +40,7 @@ class Stock extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\ProductAlert\Model\ResourceModel\Stock\Customer\CollectionFactory $customerColFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -48,7 +48,7 @@ class Stock extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\ProductAlert\Model\ResourceModel\Stock\Customer\CollectionFactory $customerColFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Quote/Model/Quote.php b/app/code/Magento/Quote/Model/Quote.php index 3a62a0e0222..29779c1e22a 100644 --- a/app/code/Magento/Quote/Model/Quote.php +++ b/app/code/Magento/Quote/Model/Quote.php @@ -382,7 +382,7 @@ class Quote extends AbstractExtensibleModel implements \Magento\Quote\Api\Data\C * @param Quote\TotalsReader $totalsReader * @param ShippingFactory $shippingFactory * @param ShippingAssignmentFactory $shippingAssignmentFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource|null $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -425,7 +425,7 @@ class Quote extends AbstractExtensibleModel implements \Magento\Quote\Api\Data\C Quote\TotalsReader $totalsReader, \Magento\Quote\Model\ShippingFactory $shippingFactory, \Magento\Quote\Model\ShippingAssignmentFactory $shippingAssignmentFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Quote/Model/Quote/Address.php b/app/code/Magento/Quote/Model/Quote/Address.php index 47962a6ce14..5eafe7ab369 100644 --- a/app/code/Magento/Quote/Model/Quote/Address.php +++ b/app/code/Magento/Quote/Model/Quote/Address.php @@ -263,7 +263,7 @@ class Address extends \Magento\Customer\Model\Address\AbstractAddress implements * @param Address\CustomAttributeListInterface $attributeList * @param TotalsCollector $totalsCollector * @param \Magento\Quote\Model\Quote\TotalsReader $totalsReader - * @param \Magento\Framework\Model\ModelResource\AbstractResource|null $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource * @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection * @param array $data * @@ -299,7 +299,7 @@ class Address extends \Magento\Customer\Model\Address\AbstractAddress implements Address\CustomAttributeListInterface $attributeList, \Magento\Quote\Model\Quote\TotalsCollector $totalsCollector, \Magento\Quote\Model\Quote\TotalsReader $totalsReader, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { @@ -538,7 +538,7 @@ class Address extends \Magento\Customer\Model\Address\AbstractAddress implements /** * Retrieve address items collection * - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ public function getItemsCollection() { @@ -779,7 +779,7 @@ class Address extends \Magento\Customer\Model\Address\AbstractAddress implements /** * Retrieve collection of quote shipping rates * - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ public function getShippingRatesCollection() { diff --git a/app/code/Magento/Quote/Model/Quote/Address/Relation.php b/app/code/Magento/Quote/Model/Quote/Address/Relation.php index c23661955c5..898b868b772 100644 --- a/app/code/Magento/Quote/Model/Quote/Address/Relation.php +++ b/app/code/Magento/Quote/Model/Quote/Address/Relation.php @@ -5,7 +5,7 @@ */ namespace Magento\Quote\Model\Quote\Address; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationInterface; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface; class Relation implements RelationInterface { diff --git a/app/code/Magento/Quote/Model/Quote/Item.php b/app/code/Magento/Quote/Model/Quote/Item.php index c67e97fb569..3b59817c072 100644 --- a/app/code/Magento/Quote/Model/Quote/Item.php +++ b/app/code/Magento/Quote/Model/Quote/Item.php @@ -187,7 +187,7 @@ class Item extends \Magento\Quote\Model\Quote\Item\AbstractItem implements \Mage * @param Item\OptionFactory $itemOptionFactory * @param Item\Compare $quoteItemCompare * @param \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @@ -205,7 +205,7 @@ class Item extends \Magento\Quote\Model\Quote\Item\AbstractItem implements \Mage \Magento\Quote\Model\Quote\Item\OptionFactory $itemOptionFactory, \Magento\Quote\Model\Quote\Item\Compare $quoteItemCompare, \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Quote/Model/Quote/Item/AbstractItem.php b/app/code/Magento/Quote/Model/Quote/Item/AbstractItem.php index 193731ae519..7b356181cfb 100644 --- a/app/code/Magento/Quote/Model/Quote/Item/AbstractItem.php +++ b/app/code/Magento/Quote/Model/Quote/Item/AbstractItem.php @@ -87,7 +87,7 @@ abstract class AbstractItem extends \Magento\Framework\Model\AbstractExtensibleM * @param AttributeValueFactory $customAttributeFactory * @param \Magento\Catalog\Api\ProductRepositoryInterface $productRepository * @param \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -98,7 +98,7 @@ abstract class AbstractItem extends \Magento\Framework\Model\AbstractExtensibleM AttributeValueFactory $customAttributeFactory, \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Quote/Model/Quote/Payment.php b/app/code/Magento/Quote/Model/Quote/Payment.php index d57a57c518b..01d854c08d0 100644 --- a/app/code/Magento/Quote/Model/Quote/Payment.php +++ b/app/code/Magento/Quote/Model/Quote/Payment.php @@ -66,7 +66,7 @@ class Payment extends \Magento\Payment\Model\Info implements \Magento\Quote\Api\ * @param \Magento\Payment\Helper\Data $paymentData * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor * @param \Magento\Payment\Model\Checks\SpecificationFactory $methodSpecificationFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -79,7 +79,7 @@ class Payment extends \Magento\Payment\Model\Info implements \Magento\Quote\Api\ \Magento\Payment\Helper\Data $paymentData, \Magento\Framework\Encryption\EncryptorInterface $encryptor, \Magento\Payment\Model\Checks\SpecificationFactory $methodSpecificationFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Quote/Model/Quote/Relation.php b/app/code/Magento/Quote/Model/Quote/Relation.php index e03db843bab..2dd85ec640d 100644 --- a/app/code/Magento/Quote/Model/Quote/Relation.php +++ b/app/code/Magento/Quote/Model/Quote/Relation.php @@ -5,7 +5,7 @@ */ namespace Magento\Quote\Model\Quote; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationInterface; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface; class Relation implements RelationInterface { diff --git a/app/code/Magento/Quote/Model/QuoteIdMask.php b/app/code/Magento/Quote/Model/QuoteIdMask.php index c84b2d78020..dba1fcbf519 100644 --- a/app/code/Magento/Quote/Model/QuoteIdMask.php +++ b/app/code/Magento/Quote/Model/QuoteIdMask.php @@ -23,7 +23,7 @@ class QuoteIdMask extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Math\Random $randomDataGenerator - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -31,7 +31,7 @@ class QuoteIdMask extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Math\Random $randomDataGenerator, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote.php b/app/code/Magento/Quote/Model/ResourceModel/Quote.php index 9735c697489..780eb049d7c 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote.php @@ -8,9 +8,9 @@ namespace Magento\Quote\Model\ResourceModel; -use Magento\Framework\Model\ModelResource\Db\VersionControl\AbstractDb; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite; -use Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\AbstractDb; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot; use Magento\SalesSequence\Model\Manager; /** @@ -24,14 +24,14 @@ class Quote extends AbstractDb protected $sequenceManager; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param Snapshot $entitySnapshot, * @param RelationComposite $entityRelationComposite, * @param \Magento\SalesSequence\Model\Manager $sequenceManager * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, Snapshot $entitySnapshot, RelationComposite $entityRelationComposite, Manager $sequenceManager, diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Address.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Address.php index c68cc3b0f98..fe3518ee460 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Address.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Address.php @@ -5,7 +5,7 @@ */ namespace Magento\Quote\Model\ResourceModel\Quote; -use Magento\Framework\Model\ModelResource\Db\VersionControl\AbstractDb; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\AbstractDb; /** * Quote address resource model diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Collection.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Collection.php index 5e623a1c055..b53d89d5c39 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Collection.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Quote\Model\ResourceModel\Quote\Address; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\VersionControl\Collection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\VersionControl\Collection { /** * Event prefix diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Item.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Item.php index e82b7582709..0d3a2817c21 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Item.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Item.php @@ -5,7 +5,7 @@ */ namespace Magento\Quote\Model\ResourceModel\Quote\Address; -use Magento\Framework\Model\ModelResource\Db\VersionControl\AbstractDb; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\AbstractDb; /** * Quote address item resource model diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Item/Collection.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Item/Collection.php index 1a13198a710..d554a60068f 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Item/Collection.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Item/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Quote\Model\ResourceModel\Quote\Address\Item; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\VersionControl\Collection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\VersionControl\Collection { /** * Resource initialization diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Rate.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Rate.php index ebf70d9e36e..b2f0db80caf 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Rate.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Rate.php @@ -5,7 +5,7 @@ */ namespace Magento\Quote\Model\ResourceModel\Quote\Address; -use Magento\Framework\Model\ModelResource\Db\VersionControl\AbstractDb; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\AbstractDb; /** * Quote address shipping rate resource model diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Rate/Collection.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Rate/Collection.php index c58b0dc8816..a981fe1e4fa 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Rate/Collection.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Address/Rate/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Quote\Model\ResourceModel\Quote\Address\Rate; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\VersionControl\Collection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\VersionControl\Collection { /** * Whether to load fixed items only @@ -24,20 +24,20 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\VersionContro * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy * @param \Magento\Framework\Event\ManagerInterface $eventManager - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot * @param \Magento\Shipping\Model\CarrierFactoryInterface $carrierFactory * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, - \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, \Magento\Shipping\Model\CarrierFactoryInterface $carrierFactory, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct( $entityFactory, diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Collection.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Collection.php index f05a824ac38..cf4bd8f0368 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Collection.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Quote\Model\ResourceModel\Quote; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\VersionControl\Collection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\VersionControl\Collection { /** * Resource initialization diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Item.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Item.php index 5ab317c0a31..edb0586e294 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Item.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Item.php @@ -5,7 +5,7 @@ */ namespace Magento\Quote\Model\ResourceModel\Quote; -use Magento\Framework\Model\ModelResource\Db\VersionControl\AbstractDb; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\AbstractDb; /** * Quote resource model diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Collection.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Collection.php index 624f374182e..c0f1681fc6a 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Collection.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Quote\Model\ResourceModel\Quote\Item; /** * Quote item resource collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\VersionControl\Collection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\VersionControl\Collection { /** * Collection quote instance @@ -44,12 +44,12 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\VersionContro * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy * @param \Magento\Framework\Event\ManagerInterface $eventManager - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot * @param Option\CollectionFactory $itemOptionCollectionFactory * @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory * @param \Magento\Quote\Model\Quote\Config $quoteConfig * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( @@ -57,12 +57,12 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\VersionContro \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, - \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, \Magento\Quote\Model\ResourceModel\Quote\Item\Option\CollectionFactory $itemOptionCollectionFactory, \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory, \Magento\Quote\Model\Quote\Config $quoteConfig, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct( $entityFactory, diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Option.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Option.php index 82c905e1db4..163ad4c20f8 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Option.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Option.php @@ -10,7 +10,7 @@ namespace Magento\Quote\Model\ResourceModel\Quote\Item; * * @author Magento Core Team <core@magentocommerce.com> */ -class Option extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Option extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Main table and field initialization diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Option/Collection.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Option/Collection.php index 66789696c67..d535e3b6369 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Option/Collection.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Item/Option/Collection.php @@ -12,7 +12,7 @@ use Magento\Quote\Model\Quote\Item; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Array of option ids grouped by item id diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Payment.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Payment.php index abf7c9084d7..31f06fed551 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Payment.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Payment.php @@ -5,7 +5,7 @@ */ namespace Magento\Quote\Model\ResourceModel\Quote; -use Magento\Framework\Model\ModelResource\Db\VersionControl\AbstractDb; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\AbstractDb; /** * Quote payment resource model diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/Payment/Collection.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/Payment/Collection.php index 6ed0958d71f..de5e6ef357c 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/Payment/Collection.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/Payment/Collection.php @@ -8,25 +8,25 @@ namespace Magento\Quote\Model\ResourceModel\Quote\Payment; /** * Quote payments collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\VersionControl\Collection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\VersionControl\Collection { /** * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy * @param \Magento\Framework\Event\ManagerInterface $eventManager - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, - \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct( $entityFactory, diff --git a/app/code/Magento/Quote/Model/ResourceModel/Quote/QuoteIdMask.php b/app/code/Magento/Quote/Model/ResourceModel/Quote/QuoteIdMask.php index 26e75e23afb..9b2af2ac4eb 100644 --- a/app/code/Magento/Quote/Model/ResourceModel/Quote/QuoteIdMask.php +++ b/app/code/Magento/Quote/Model/ResourceModel/Quote/QuoteIdMask.php @@ -5,7 +5,7 @@ */ namespace Magento\Quote\Model\ResourceModel\Quote; -use Magento\Framework\Model\ModelResource\Db\AbstractDb; +use Magento\Framework\Model\ResourceModel\Db\AbstractDb; /** * QuoteIdMask Resource model diff --git a/app/code/Magento/Quote/Test/Unit/Model/Quote/Address/RelationTest.php b/app/code/Magento/Quote/Test/Unit/Model/Quote/Address/RelationTest.php index f2b1cb2242b..1d2a2498253 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/Quote/Address/RelationTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/Quote/Address/RelationTest.php @@ -40,14 +40,14 @@ class RelationTest extends \PHPUnit_Framework_TestCase public function testProcessRelation() { $itemsCollection = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection', + 'Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection', [], [], '', false ); $shippingRatesCollection = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection', + 'Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection', [], [], '', diff --git a/app/code/Magento/Quote/Test/Unit/Model/ResourceModel/Quote/Item/CollectionTest.php b/app/code/Magento/Quote/Test/Unit/Model/ResourceModel/Quote/Item/CollectionTest.php index 0e6e0bb4cbe..fb6fec5504a 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/ResourceModel/Quote/Item/CollectionTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/ResourceModel/Quote/Item/CollectionTest.php @@ -34,7 +34,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase protected $selectMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -49,7 +49,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase protected $entityFactoryMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject */ protected $entitySnapshotMock; @@ -70,7 +70,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase ->method('select') ->will($this->returnValue($this->selectMock)); - $this->resourceMock = $this->getMock('Magento\Framework\Model\ModelResource\Db\AbstractDb', [], [], '', false); + $this->resourceMock = $this->getMock('Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], [], '', false); $this->resourceMock->expects($this->any())->method('getConnection')->will( $this->returnValue($this->connectionMock) ); @@ -90,7 +90,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase public function testInstanceOf() { $this->assertInstanceOf( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Collection', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Collection', $this->collection ); } diff --git a/app/code/Magento/Quote/Test/Unit/Model/ResourceModel/Quote/ItemTest.php b/app/code/Magento/Quote/Test/Unit/Model/ResourceModel/Quote/ItemTest.php index 78c1b6b5007..74f99ab7169 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/ResourceModel/Quote/ItemTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/ResourceModel/Quote/ItemTest.php @@ -5,7 +5,7 @@ */ namespace Magento\Quote\Test\Unit\Model\ResourceModel\Quote; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite; use Magento\Quote\Model\ResourceModel\Quote\Item; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper; @@ -38,7 +38,7 @@ class ItemTest extends \PHPUnit_Framework_TestCase protected $connectionMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject */ protected $entitySnapshotMock; @@ -48,7 +48,7 @@ class ItemTest extends \PHPUnit_Framework_TestCase protected $relationCompositeMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor|\PHPUnit_Framework_MockObject_MockObject */ protected $objectRelationProcessorMock; @@ -76,27 +76,27 @@ class ItemTest extends \PHPUnit_Framework_TestCase false ); $this->entitySnapshotMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot', [], [], '', false ); $this->relationCompositeMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite', [], [], '', false ); $this->objectRelationProcessorMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor', + 'Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor', [], [], '', false ); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($this->resourceMock); $contextMock->expects($this->once()) ->method('getObjectRelationProcessor') @@ -115,7 +115,7 @@ class ItemTest extends \PHPUnit_Framework_TestCase public function testInstanceOf() { - $this->assertInstanceOf('Magento\Framework\Model\ModelResource\Db\VersionControl\AbstractDb', $this->model); + $this->assertInstanceOf('Magento\Framework\Model\ResourceModel\Db\VersionControl\AbstractDb', $this->model); } public function testSaveNotModifiedItem() diff --git a/app/code/Magento/Quote/Test/Unit/Model/ResourceModel/Quote/QuoteAddressTest.php b/app/code/Magento/Quote/Test/Unit/Model/ResourceModel/Quote/QuoteAddressTest.php index 3442b067b55..2319fca91ac 100644 --- a/app/code/Magento/Quote/Test/Unit/Model/ResourceModel/Quote/QuoteAddressTest.php +++ b/app/code/Magento/Quote/Test/Unit/Model/ResourceModel/Quote/QuoteAddressTest.php @@ -5,7 +5,7 @@ */ namespace Magento\Quote\Test\Unit\Model\ResourceModel\Quote; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite; /** * Class QuoteAddressTest @@ -38,7 +38,7 @@ class QuoteAddressTest extends \PHPUnit_Framework_TestCase protected $connectionMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject */ protected $entitySnapshotMock; @@ -81,14 +81,14 @@ class QuoteAddressTest extends \PHPUnit_Framework_TestCase false ); $this->entitySnapshotMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot', [], [], '', false ); $this->relationCompositeMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite', [], [], '', diff --git a/app/code/Magento/Quote/etc/di.xml b/app/code/Magento/Quote/etc/di.xml index 821619c6af5..17cadb026c9 100644 --- a/app/code/Magento/Quote/etc/di.xml +++ b/app/code/Magento/Quote/etc/di.xml @@ -57,7 +57,7 @@ <argument name="addressConfig" xsi:type="object">Magento\Customer\Model\Address\Config\Proxy</argument> </arguments> </type> - <virtualType name="QuoteAddressRelationsComposite" type="Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite"> + <virtualType name="QuoteAddressRelationsComposite" type="Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite"> <arguments> <argument name="relationProcessors" xsi:type="array"> <item name="default" xsi:type="object">Magento\Quote\Model\Quote\Address\Relation</item> @@ -69,7 +69,7 @@ <argument name="entityRelationComposite" xsi:type="object">QuoteAddressRelationsComposite</argument> </arguments> </type> - <virtualType name="QuoteRelationsComposite" type="Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite"> + <virtualType name="QuoteRelationsComposite" type="Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite"> <arguments> <argument name="relationProcessors" xsi:type="array"> <item name="default" xsi:type="object">Magento\Quote\Model\Quote\Relation</item> diff --git a/app/code/Magento/Reports/Model/Event.php b/app/code/Magento/Reports/Model/Event.php index d526754f94c..167255f3d13 100644 --- a/app/code/Magento/Reports/Model/Event.php +++ b/app/code/Magento/Reports/Model/Event.php @@ -54,7 +54,7 @@ class Event extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Stdlib\DateTime\DateTimeFactory $dateFactory * @param \Magento\Reports\Model\Event\TypeFactory $eventTypeFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -63,7 +63,7 @@ class Event extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Registry $registry, \Magento\Framework\Stdlib\DateTime\DateTimeFactory $dateFactory, \Magento\Reports\Model\Event\TypeFactory $eventTypeFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Reports/Model/Grouped/Collection.php b/app/code/Magento/Reports/Model/Grouped/Collection.php index 13a0c21ef28..3929c3440c4 100644 --- a/app/code/Magento/Reports/Model/Grouped/Collection.php +++ b/app/code/Magento/Reports/Model/Grouped/Collection.php @@ -19,7 +19,7 @@ class Collection extends \Magento\Framework\Data\Collection /** * Collection resource * - * @var \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @var \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ protected $_resourceCollection = null; diff --git a/app/code/Magento/Reports/Model/Product/Index/AbstractIndex.php b/app/code/Magento/Reports/Model/Product/Index/AbstractIndex.php index adc6025cd84..6380571f21f 100644 --- a/app/code/Magento/Reports/Model/Product/Index/AbstractIndex.php +++ b/app/code/Magento/Reports/Model/Product/Index/AbstractIndex.php @@ -56,7 +56,7 @@ abstract class AbstractIndex extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Session\Generic $reportSession * @param \Magento\Catalog\Model\Product\Visibility $productVisibility * @param \Magento\Framework\Stdlib\DateTime $dateTime - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -70,7 +70,7 @@ abstract class AbstractIndex extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Session\Generic $reportSession, \Magento\Catalog\Model\Product\Visibility $productVisibility, \Magento\Framework\Stdlib\DateTime $dateTime, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Reports/Model/Product/Index/Compared.php b/app/code/Magento/Reports/Model/Product/Index/Compared.php index 771304f9c99..3583bbbdf46 100644 --- a/app/code/Magento/Reports/Model/Product/Index/Compared.php +++ b/app/code/Magento/Reports/Model/Product/Index/Compared.php @@ -46,7 +46,7 @@ class Compared extends \Magento\Reports\Model\Product\Index\AbstractIndex * @param \Magento\Catalog\Model\Product\Visibility $productVisibility * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param \Magento\Catalog\Helper\Product\Compare $productCompare - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -61,7 +61,7 @@ class Compared extends \Magento\Reports\Model\Product\Index\AbstractIndex \Magento\Catalog\Model\Product\Visibility $productVisibility, \Magento\Framework\Stdlib\DateTime $dateTime, \Magento\Catalog\Helper\Product\Compare $productCompare, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Reports/Model/ResourceModel/Customer/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Customer/Collection.php index ab44549a4bc..1f7fe623045 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Customer/Collection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Customer/Collection.php @@ -81,7 +81,7 @@ class Collection extends \Magento\Customer\Model\ResourceModel\Customer\Collecti * @param \Magento\Eav\Model\EntityFactory $eavEntityFactory * @param \Magento\Eav\Model\ResourceModel\Helper $resourceHelper * @param \Magento\Framework\Validator\UniversalFactory $universalFactory - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot * @param \Magento\Framework\DataObject\Copy\Config $fieldsetConfig * @param \Magento\Quote\Model\QuoteRepository $quoteRepository * @param \Magento\Quote\Model\ResourceModel\Quote\Item\CollectionFactory $quoteItemFactory @@ -101,7 +101,7 @@ class Collection extends \Magento\Customer\Model\ResourceModel\Customer\Collecti \Magento\Eav\Model\EntityFactory $eavEntityFactory, \Magento\Eav\Model\ResourceModel\Helper $resourceHelper, \Magento\Framework\Validator\UniversalFactory $universalFactory, - \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, \Magento\Framework\DataObject\Copy\Config $fieldsetConfig, \Magento\Quote\Model\QuoteRepository $quoteRepository, \Magento\Quote\Model\ResourceModel\Quote\Item\CollectionFactory $quoteItemFactory, diff --git a/app/code/Magento/Reports/Model/ResourceModel/Event.php b/app/code/Magento/Reports/Model/ResourceModel/Event.php index 03f8a4e5bca..1ae3c00f553 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Event.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Event.php @@ -8,7 +8,7 @@ namespace Magento\Reports\Model\ResourceModel; /** * Report events resource model */ -class Event extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Event extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Core store config @@ -23,13 +23,13 @@ class Event extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_storeManager; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Store\Model\StoreManagerInterface $storeManager, $connectionName = null diff --git a/app/code/Magento/Reports/Model/ResourceModel/Event/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Event/Collection.php index 18e121c53fa..ddd9ec68192 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Event/Collection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Event/Collection.php @@ -11,7 +11,7 @@ */ namespace Magento\Reports\Model\ResourceModel\Event; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Store Ids diff --git a/app/code/Magento/Reports/Model/ResourceModel/Event/Type.php b/app/code/Magento/Reports/Model/ResourceModel/Event/Type.php index 80539f20c79..3ff620e1eb3 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Event/Type.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Event/Type.php @@ -11,7 +11,7 @@ */ namespace Magento\Reports\Model\ResourceModel\Event; -class Type extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Type extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Main table initialization diff --git a/app/code/Magento/Reports/Model/ResourceModel/Event/Type/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Event/Type/Collection.php index 221093132d3..12f0c969f3b 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Event/Type/Collection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Event/Type/Collection.php @@ -11,7 +11,7 @@ */ namespace Magento\Reports\Model\ResourceModel\Event\Type; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource initialization diff --git a/app/code/Magento/Reports/Model/ResourceModel/Order/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Order/Collection.php index 507d55a7143..d0d7195bc3f 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Order/Collection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Order/Collection.php @@ -72,7 +72,7 @@ class Collection extends \Magento\Sales\Model\ResourceModel\Order\Collection * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy * @param \Magento\Framework\Event\ManagerInterface $eventManager - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot * @param \Magento\Framework\DB\Helper $coreResourceHelper * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Store\Model\StoreManagerInterface $storeManager @@ -80,7 +80,7 @@ class Collection extends \Magento\Sales\Model\ResourceModel\Order\Collection * @param \Magento\Sales\Model\Order\Config $orderConfig * @param \Magento\Sales\Model\ResourceModel\Report\OrderFactory $reportOrderFactory * @param null $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ @@ -89,7 +89,7 @@ class Collection extends \Magento\Sales\Model\ResourceModel\Order\Collection \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, - \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, \Magento\Framework\DB\Helper $coreResourceHelper, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Store\Model\StoreManagerInterface $storeManager, @@ -97,7 +97,7 @@ class Collection extends \Magento\Sales\Model\ResourceModel\Order\Collection \Magento\Sales\Model\Order\Config $orderConfig, \Magento\Sales\Model\ResourceModel\Report\OrderFactory $reportOrderFactory, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct( $entityFactory, diff --git a/app/code/Magento/Reports/Model/ResourceModel/Product/Index/AbstractIndex.php b/app/code/Magento/Reports/Model/ResourceModel/Product/Index/AbstractIndex.php index d64c1845bb8..5c9a3118499 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Product/Index/AbstractIndex.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Product/Index/AbstractIndex.php @@ -9,7 +9,7 @@ namespace Magento\Reports\Model\ResourceModel\Product\Index; /** * Reports Product Index Abstract Resource Model */ -abstract class AbstractIndex extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +abstract class AbstractIndex extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * DateItime instance @@ -28,13 +28,13 @@ abstract class AbstractIndex extends \Magento\Framework\Model\ModelResource\Db\A /** * Constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Reports\Model\ResourceModel\Helper $resourceHelper * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Reports\Model\ResourceModel\Helper $resourceHelper, \Magento\Framework\Stdlib\DateTime $dateTime, $connectionName = null @@ -132,7 +132,7 @@ abstract class AbstractIndex extends \Magento\Framework\Model\ModelResource\Db\A * Save Product Index data (forced save) * * @param \Magento\Framework\Model\AbstractModel $object - * @return $this|\Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return $this|\Magento\Framework\Model\ResourceModel\Db\AbstractDb */ public function save(\Magento\Framework\Model\AbstractModel $object) { diff --git a/app/code/Magento/Reports/Model/ResourceModel/Quote/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Quote/Collection.php index e8bdb966edf..58f87efc347 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Quote/Collection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Quote/Collection.php @@ -17,20 +17,20 @@ class Collection extends \Magento\Quote\Model\ResourceModel\Quote\Collection * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy * @param \Magento\Framework\Event\ManagerInterface $eventManager - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot * @param \Magento\Customer\Model\ResourceModel\Customer $customerResource * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, - \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, \Magento\Customer\Model\ResourceModel\Customer $customerResource, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct( $entityFactory, diff --git a/app/code/Magento/Reports/Model/ResourceModel/Quote/Item/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Quote/Item/Collection.php index 59e9996dcff..8e0c83d793a 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Quote/Item/Collection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Quote/Item/Collection.php @@ -13,7 +13,7 @@ use Magento\Framework\App\ResourceConnection; * * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Join fields @@ -53,7 +53,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Customer\Model\ResourceModel\Customer $customerResource * @param \Magento\Sales\Model\ResourceModel\Order\Collection $orderResource * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -64,7 +64,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Customer\Model\ResourceModel\Customer $customerResource, \Magento\Sales\Model\ResourceModel\Order\Collection $orderResource, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct( $entityFactory, diff --git a/app/code/Magento/Reports/Model/ResourceModel/Report/AbstractReport.php b/app/code/Magento/Reports/Model/ResourceModel/Report/AbstractReport.php index 4d413b8c5b4..d5157527f00 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Report/AbstractReport.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Report/AbstractReport.php @@ -10,7 +10,7 @@ namespace Magento\Reports\Model\ResourceModel\Report; * Abstract report aggregate resource model * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -abstract class AbstractReport extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +abstract class AbstractReport extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Flag object @@ -43,7 +43,7 @@ abstract class AbstractReport extends \Magento\Framework\Model\ModelResource\Db\ /** * Constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate * @param \Magento\Reports\Model\FlagFactory $reportsFlagFactory @@ -52,7 +52,7 @@ abstract class AbstractReport extends \Magento\Framework\Model\ModelResource\Db\ * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\Reports\Model\FlagFactory $reportsFlagFactory, diff --git a/app/code/Magento/Reports/Model/ResourceModel/Report/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Report/Collection.php index 8ca2869b2bb..fa647a5a852 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Report/Collection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Report/Collection.php @@ -323,7 +323,7 @@ class Collection extends \Magento\Framework\Data\Collection * * @param int $fromDate * @param int $toDate - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ protected function _getReport($fromDate, $toDate) { diff --git a/app/code/Magento/Reports/Model/ResourceModel/Report/Collection/AbstractCollection.php b/app/code/Magento/Reports/Model/ResourceModel/Report/Collection/AbstractCollection.php index 70d6b4856e1..6e24d9536bf 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Report/Collection/AbstractCollection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Report/Collection/AbstractCollection.php @@ -11,7 +11,7 @@ */ namespace Magento\Reports\Model\ResourceModel\Report\Collection; -class AbstractCollection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class AbstractCollection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * From date diff --git a/app/code/Magento/Reports/Model/ResourceModel/Report/Collection/Factory.php b/app/code/Magento/Reports/Model/ResourceModel/Report/Collection/Factory.php index 8ab98b1c2ee..39f14fb3d15 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Report/Collection/Factory.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Report/Collection/Factory.php @@ -25,7 +25,7 @@ class Factory * * @param string $className * @param array $arguments - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ public function create($className, array $arguments = []) { diff --git a/app/code/Magento/Reports/Model/ResourceModel/Report/Product/Viewed.php b/app/code/Magento/Reports/Model/ResourceModel/Report/Product/Viewed.php index 0ff5ed7925d..e71f50aa22a 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Report/Product/Viewed.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Report/Product/Viewed.php @@ -45,7 +45,7 @@ class Viewed extends \Magento\Sales\Model\ResourceModel\Report\AbstractReport /** * Constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate * @param \Magento\Reports\Model\FlagFactory $reportsFlagFactory @@ -56,7 +56,7 @@ class Viewed extends \Magento\Sales\Model\ResourceModel\Report\AbstractReport * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\Reports\Model\FlagFactory $reportsFlagFactory, diff --git a/app/code/Magento/Reports/Model/ResourceModel/Review/Customer/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Review/Customer/Collection.php index 05dd7e6c830..d130d2a85e9 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Review/Customer/Collection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Review/Customer/Collection.php @@ -28,7 +28,7 @@ class Collection extends \Magento\Review\Model\ResourceModel\Review\Collection * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Customer\Model\ResourceModel\Customer $customerResource * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( @@ -41,7 +41,7 @@ class Collection extends \Magento\Review\Model\ResourceModel\Review\Collection \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Customer\Model\ResourceModel\Customer $customerResource, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_customerResource = $customerResource; parent::__construct( diff --git a/app/code/Magento/Reports/Model/ResourceModel/Wishlist/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Wishlist/Collection.php index 2728de60db5..8388f16dab2 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Wishlist/Collection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Wishlist/Collection.php @@ -11,7 +11,7 @@ */ namespace Magento\Reports\Model\ResourceModel\Wishlist; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Wishlist table name @@ -32,7 +32,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Customer\Model\ResourceModel\Customer\CollectionFactory $customerResFactory * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -41,7 +41,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Customer\Model\ResourceModel\Customer\CollectionFactory $customerResFactory, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); $this->_customerResFactory = $customerResFactory; diff --git a/app/code/Magento/Reports/Test/Unit/Model/Product/Index/ComparedTest.php b/app/code/Magento/Reports/Test/Unit/Model/Product/Index/ComparedTest.php index d2ddf28a92f..dced792d765 100644 --- a/app/code/Magento/Reports/Test/Unit/Model/Product/Index/ComparedTest.php +++ b/app/code/Magento/Reports/Test/Unit/Model/Product/Index/ComparedTest.php @@ -61,7 +61,7 @@ class ComparedTest extends \PHPUnit_Framework_TestCase protected $catalogProductHelperMock; /** - * @var \Magento\Framework\Model\ModelResource\AbstractResource|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\AbstractResource|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -99,7 +99,7 @@ class ComparedTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->getMock(); - $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\AbstractResource') + $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\AbstractResource') ->disableOriginalConstructor() ->setMethods(['getIdFieldName', '_construct', 'getConnection']) ->getMockForAbstractClass(); diff --git a/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Event/CollectionTest.php b/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Event/CollectionTest.php index a9716838a7b..b1fe579a13b 100644 --- a/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Event/CollectionTest.php +++ b/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Event/CollectionTest.php @@ -36,7 +36,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase protected $managerMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -82,7 +82,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase ->method('select') ->willReturn($this->selectMock); - $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\AbstractDb') + $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->setMethods(['getConnection', 'getCurrentStoreIds', '_construct', 'getMainTable', 'getTable']) ->getMock(); diff --git a/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/EventTest.php b/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/EventTest.php index 29e4fc06b77..bc16cf215d8 100644 --- a/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/EventTest.php +++ b/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/EventTest.php @@ -16,7 +16,7 @@ class EventTest extends \PHPUnit_Framework_TestCase protected $event; /** - * @var \Magento\Framework\Model\ModelResource\Db\Context|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\Context|\PHPUnit_Framework_MockObject_MockObject */ protected $contextMock; @@ -50,7 +50,7 @@ class EventTest extends \PHPUnit_Framework_TestCase */ protected function setUp() { - $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\Context') + $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\Context') ->disableOriginalConstructor() ->getMock(); diff --git a/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Order/CollectionTest.php b/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Order/CollectionTest.php index ad3b32054b4..6b3c58f3838 100644 --- a/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Order/CollectionTest.php +++ b/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Order/CollectionTest.php @@ -84,7 +84,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase protected $selectMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -102,7 +102,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase ->getMock(); $this->managerMock = $this->getMockBuilder('Magento\Framework\Event\ManagerInterface') ->getMock(); - $snapshotClassName = 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot'; + $snapshotClassName = 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot'; $this->entitySnapshotMock = $this->getMockBuilder($snapshotClassName) ->disableOriginalConstructor() ->getMock(); @@ -155,7 +155,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase ->method('select') ->willReturn($this->selectMock); - $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\AbstractDb') + $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->getMock(); $this->resourceMock diff --git a/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Quote/CollectionTest.php b/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Quote/CollectionTest.php index c0688436318..1b22f883259 100644 --- a/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Quote/CollectionTest.php +++ b/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Quote/CollectionTest.php @@ -43,7 +43,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase protected $entityFactoryMock; /** - * @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot + * @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot */ protected $entitySnapshotMock; @@ -86,7 +86,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase $this->entityFactoryMock = $this->getMockBuilder('Magento\Framework\Data\Collection\EntityFactory') ->disableOriginalConstructor() ->getMock(); - $snapshotClassName = 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot'; + $snapshotClassName = 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot'; $this->entitySnapshotMock = $this->getMockBuilder($snapshotClassName) ->disableOriginalConstructor() ->setMethods(['registerSnapshot']) diff --git a/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Report/Collection/AbstractCollectionTest.php b/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Report/Collection/AbstractCollectionTest.php index 97e89fc832b..14cfb9c6f00 100644 --- a/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Report/Collection/AbstractCollectionTest.php +++ b/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Report/Collection/AbstractCollectionTest.php @@ -23,7 +23,7 @@ class AbstractCollectionTest extends \PHPUnit_Framework_TestCase $eventManager = $this->getMock('\Magento\Framework\Event\Manager', [], [], '', false); $connection = $this->getMock('\Magento\Framework\DB\Adapter\Pdo\Mysql', [], [], '', false); - $resource = $this->getMockBuilder('\Magento\Framework\Model\ModelResource\Db\AbstractDb') + $resource = $this->getMockBuilder('\Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->setMethods(['getConnection']) ->getMockForAbstractClass(); diff --git a/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Report/Product/ViewedTest.php b/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Report/Product/ViewedTest.php index 4ecaf8758f4..7d845db9a52 100644 --- a/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Report/Product/ViewedTest.php +++ b/app/code/Magento/Reports/Test/Unit/Model/ResourceModel/Report/Product/ViewedTest.php @@ -20,7 +20,7 @@ class ViewedTest extends \PHPUnit_Framework_TestCase protected $viewed; /** - * @var \Magento\Framework\Model\ModelResource\Db\Context|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\Context|\PHPUnit_Framework_MockObject_MockObject */ protected $contextMock; @@ -143,7 +143,7 @@ class ViewedTest extends \PHPUnit_Framework_TestCase ) ); - $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\Context') + $this->contextMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\Context') ->disableOriginalConstructor() ->getMock(); $this->contextMock->expects($this->any())->method('getResources')->willReturn($this->resourceMock); diff --git a/app/code/Magento/Review/Model/Rating.php b/app/code/Magento/Review/Model/Rating.php index f7ff2785f21..f9af9a9223e 100644 --- a/app/code/Magento/Review/Model/Rating.php +++ b/app/code/Magento/Review/Model/Rating.php @@ -44,7 +44,7 @@ class Rating extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Registry $registry * @param \Magento\Review\Model\Rating\OptionFactory $ratingOptionFactory * @param \Magento\Review\Model\ResourceModel\Rating\Option\CollectionFactory $ratingCollectionF - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -53,7 +53,7 @@ class Rating extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Registry $registry, \Magento\Review\Model\Rating\OptionFactory $ratingOptionFactory, \Magento\Review\Model\ResourceModel\Rating\Option\CollectionFactory $ratingCollectionF, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Review/Model/ResourceModel/Rating.php b/app/code/Magento/Review/Model/ResourceModel/Rating.php index f1f0b34e569..7a0635efa56 100644 --- a/app/code/Magento/Review/Model/ResourceModel/Rating.php +++ b/app/code/Magento/Review/Model/ResourceModel/Rating.php @@ -10,7 +10,7 @@ namespace Magento\Review\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Rating extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Rating extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { const RATING_STATUS_APPROVED = 'Approved'; @@ -32,7 +32,7 @@ class Rating extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_logger; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Module\Manager $moduleManager * @param \Magento\Store\Model\StoreManagerInterface $storeManager @@ -40,7 +40,7 @@ class Rating extends \Magento\Framework\Model\ModelResource\Db\AbstractDb * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Module\Manager $moduleManager, \Magento\Store\Model\StoreManagerInterface $storeManager, diff --git a/app/code/Magento/Review/Model/ResourceModel/Rating/Collection.php b/app/code/Magento/Review/Model/ResourceModel/Rating/Collection.php index 4389d8c5447..8d030fff72b 100644 --- a/app/code/Magento/Review/Model/ResourceModel/Rating/Collection.php +++ b/app/code/Magento/Review/Model/ResourceModel/Rating/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Review\Model\ResourceModel\Rating; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * @var \Magento\Store\Model\StoreManagerInterface @@ -36,7 +36,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Review\Model\ResourceModel\Rating\Option\CollectionFactory $ratingCollectionF * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -46,7 +46,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Review\Model\ResourceModel\Rating\Option\CollectionFactory $ratingCollectionF, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_storeManager = $storeManager; $this->_ratingCollectionF = $ratingCollectionF; diff --git a/app/code/Magento/Review/Model/ResourceModel/Rating/Entity.php b/app/code/Magento/Review/Model/ResourceModel/Rating/Entity.php index e9bc49b6e24..f2254ab506a 100644 --- a/app/code/Magento/Review/Model/ResourceModel/Rating/Entity.php +++ b/app/code/Magento/Review/Model/ResourceModel/Rating/Entity.php @@ -10,7 +10,7 @@ namespace Magento\Review\Model\ResourceModel\Rating; * * @author Magento Core Team <core@magentocommerce.com> */ -class Entity extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Entity extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Rating entity resource initialization diff --git a/app/code/Magento/Review/Model/ResourceModel/Rating/Grid/Collection.php b/app/code/Magento/Review/Model/ResourceModel/Rating/Grid/Collection.php index 3c55768f443..6a8723302d9 100644 --- a/app/code/Magento/Review/Model/ResourceModel/Rating/Grid/Collection.php +++ b/app/code/Magento/Review/Model/ResourceModel/Rating/Grid/Collection.php @@ -28,7 +28,7 @@ class Collection extends \Magento\Review\Model\ResourceModel\Rating\Collection * @param \Magento\Review\Model\ResourceModel\Rating\Option\CollectionFactory $ratingCollectionF * @param \Magento\Framework\Registry $coreRegistry * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -39,7 +39,7 @@ class Collection extends \Magento\Review\Model\ResourceModel\Rating\Collection \Magento\Review\Model\ResourceModel\Rating\Option\CollectionFactory $ratingCollectionF, \Magento\Framework\Registry $coreRegistry, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_coreRegistry = $coreRegistry; parent::__construct( diff --git a/app/code/Magento/Review/Model/ResourceModel/Rating/Option.php b/app/code/Magento/Review/Model/ResourceModel/Rating/Option.php index b80047227e2..e652866b456 100644 --- a/app/code/Magento/Review/Model/ResourceModel/Rating/Option.php +++ b/app/code/Magento/Review/Model/ResourceModel/Rating/Option.php @@ -10,7 +10,7 @@ namespace Magento\Review\Model\ResourceModel\Rating; * * @author Magento Core Team <core@magentocommerce.com> */ -class Option extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Option extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Review table @@ -79,14 +79,14 @@ class Option extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_ratingOptionVoteF; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Customer\Model\Session $customerSession * @param \Magento\Review\Model\Rating\Option\VoteFactory $ratingOptionVoteF * @param \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $remoteAddress * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Customer\Model\Session $customerSession, \Magento\Review\Model\Rating\Option\VoteFactory $ratingOptionVoteF, \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $remoteAddress, diff --git a/app/code/Magento/Review/Model/ResourceModel/Rating/Option/Collection.php b/app/code/Magento/Review/Model/ResourceModel/Rating/Option/Collection.php index 8ddf6ec7131..453835f5fb7 100644 --- a/app/code/Magento/Review/Model/ResourceModel/Rating/Option/Collection.php +++ b/app/code/Magento/Review/Model/ResourceModel/Rating/Option/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Review\Model\ResourceModel\Rating\Option; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Rating votes table diff --git a/app/code/Magento/Review/Model/ResourceModel/Rating/Option/Vote.php b/app/code/Magento/Review/Model/ResourceModel/Rating/Option/Vote.php index 263c0038bdb..d9afa8cd300 100644 --- a/app/code/Magento/Review/Model/ResourceModel/Rating/Option/Vote.php +++ b/app/code/Magento/Review/Model/ResourceModel/Rating/Option/Vote.php @@ -10,7 +10,7 @@ namespace Magento\Review\Model\ResourceModel\Rating\Option; * * @author Magento Core Team <core@magentocommerce.com> */ -class Vote extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Vote extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Review/Model/ResourceModel/Rating/Option/Vote/Collection.php b/app/code/Magento/Review/Model/ResourceModel/Rating/Option/Vote/Collection.php index 319902c9016..73dfc5fc74a 100644 --- a/app/code/Magento/Review/Model/ResourceModel/Rating/Option/Vote/Collection.php +++ b/app/code/Magento/Review/Model/ResourceModel/Rating/Option/Vote/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Review\Model\ResourceModel\Rating\Option\Vote; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Store list manager @@ -32,7 +32,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Review\Model\ResourceModel\Rating\Option\CollectionFactory $ratingCollectionF * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -42,7 +42,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Review\Model\ResourceModel\Rating\Option\CollectionFactory $ratingCollectionF, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_storeManager = $storeManager; $this->_ratingCollectionF = $ratingCollectionF; diff --git a/app/code/Magento/Review/Model/ResourceModel/Review.php b/app/code/Magento/Review/Model/ResourceModel/Review.php index 33d35f72645..760d841c94e 100644 --- a/app/code/Magento/Review/Model/ResourceModel/Review.php +++ b/app/code/Magento/Review/Model/ResourceModel/Review.php @@ -10,7 +10,7 @@ use Magento\Framework\Model\AbstractModel; /** * Review resource model */ -class Review extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Review extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Review table @@ -90,7 +90,7 @@ class Review extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_ratingOptions; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime\DateTime $date * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Review\Model\RatingFactory $ratingFactory @@ -98,7 +98,7 @@ class Review extends \Magento\Framework\Model\ModelResource\Db\AbstractDb * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime\DateTime $date, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Review\Model\RatingFactory $ratingFactory, diff --git a/app/code/Magento/Review/Model/ResourceModel/Review/Collection.php b/app/code/Magento/Review/Model/ResourceModel/Review/Collection.php index 81366748435..0cbd00fe45e 100644 --- a/app/code/Magento/Review/Model/ResourceModel/Review/Collection.php +++ b/app/code/Magento/Review/Model/ResourceModel/Review/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Review\Model\ResourceModel\Review; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Review table @@ -83,7 +83,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Review\Model\Rating\Option\VoteFactory $voteFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -94,7 +94,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Review\Model\Rating\Option\VoteFactory $voteFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_reviewData = $reviewData; $this->_voteFactory = $voteFactory; diff --git a/app/code/Magento/Review/Model/ResourceModel/Review/Status.php b/app/code/Magento/Review/Model/ResourceModel/Review/Status.php index 0a6464b6ceb..8e1203d8350 100644 --- a/app/code/Magento/Review/Model/ResourceModel/Review/Status.php +++ b/app/code/Magento/Review/Model/ResourceModel/Review/Status.php @@ -10,7 +10,7 @@ namespace Magento\Review\Model\ResourceModel\Review; * * @author Magento Core Team <core@magentocommerce.com> */ -class Status extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Status extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource status model initialization diff --git a/app/code/Magento/Review/Model/ResourceModel/Review/Status/Collection.php b/app/code/Magento/Review/Model/ResourceModel/Review/Status/Collection.php index 12671a70e88..6066207cd03 100644 --- a/app/code/Magento/Review/Model/ResourceModel/Review/Status/Collection.php +++ b/app/code/Magento/Review/Model/ResourceModel/Review/Status/Collection.php @@ -11,7 +11,7 @@ */ namespace Magento\Review\Model\ResourceModel\Review\Status; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Review status table diff --git a/app/code/Magento/Review/Model/ResourceModel/Review/Summary.php b/app/code/Magento/Review/Model/ResourceModel/Review/Summary.php index 79614d2f1e6..260e3892037 100644 --- a/app/code/Magento/Review/Model/ResourceModel/Review/Summary.php +++ b/app/code/Magento/Review/Model/ResourceModel/Review/Summary.php @@ -12,7 +12,7 @@ use Magento\Framework\Model\AbstractModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Summary extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Summary extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Define module diff --git a/app/code/Magento/Review/Model/ResourceModel/Review/Summary/Collection.php b/app/code/Magento/Review/Model/ResourceModel/Review/Summary/Collection.php index 5a8a786c105..9cc5a8b54d6 100644 --- a/app/code/Magento/Review/Model/ResourceModel/Review/Summary/Collection.php +++ b/app/code/Magento/Review/Model/ResourceModel/Review/Summary/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Review\Model\ResourceModel\Review\Summary; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * {@inheritdoc} diff --git a/app/code/Magento/Review/Model/Review.php b/app/code/Magento/Review/Model/Review.php index 2bba759b335..a44da6d2f82 100644 --- a/app/code/Magento/Review/Model/Review.php +++ b/app/code/Magento/Review/Model/Review.php @@ -120,7 +120,7 @@ class Review extends \Magento\Framework\Model\AbstractModel implements IdentityI * @param \Magento\Review\Model\Review\Summary $reviewSummary * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\UrlInterface $urlModel - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -135,7 +135,7 @@ class Review extends \Magento\Framework\Model\AbstractModel implements IdentityI \Magento\Review\Model\Review\Summary $reviewSummary, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\UrlInterface $urlModel, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Review/Model/Review/Status.php b/app/code/Magento/Review/Model/Review/Status.php index aa3aee47b19..cb5b9f71368 100644 --- a/app/code/Magento/Review/Model/Review/Status.php +++ b/app/code/Magento/Review/Model/Review/Status.php @@ -17,14 +17,14 @@ class Status extends \Magento\Framework\Model\AbstractModel /** * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Review/Model/Rss.php b/app/code/Magento/Review/Model/Rss.php index 2f876be2279..1acd912d6be 100644 --- a/app/code/Magento/Review/Model/Rss.php +++ b/app/code/Magento/Review/Model/Rss.php @@ -36,7 +36,7 @@ class Rss extends \Magento\Framework\Model\AbstractModel } /** - * @return $this|\Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return $this|\Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ public function getProductCollection() { diff --git a/app/code/Magento/Review/Test/Unit/Model/ResourceModel/Review/CollectionTest.php b/app/code/Magento/Review/Test/Unit/Model/ResourceModel/Review/CollectionTest.php index 292aa4fb64a..c93e7c82679 100644 --- a/app/code/Magento/Review/Test/Unit/Model/ResourceModel/Review/CollectionTest.php +++ b/app/code/Magento/Review/Test/Unit/Model/ResourceModel/Review/CollectionTest.php @@ -23,7 +23,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase protected $storeManagerMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb | \PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb | \PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -44,7 +44,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase $this->storeManagerMock = $this->getMock('Magento\Store\Model\StoreManagerInterface'); $this->storeManagerMock->expects($this->any())->method('getStore')->will($this->returnValue($store)); $this->objectManager = (new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this)); - $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\AbstractDb') + $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->setMethods(['getConnection', 'getMainTable', 'getTable']) ->getMockForAbstractClass(); diff --git a/app/code/Magento/Review/Test/Unit/Model/ResourceModel/Review/Summary/CollectionTest.php b/app/code/Magento/Review/Test/Unit/Model/ResourceModel/Review/Summary/CollectionTest.php index 35c6aab3be2..e3ae5ad44c7 100644 --- a/app/code/Magento/Review/Test/Unit/Model/ResourceModel/Review/Summary/CollectionTest.php +++ b/app/code/Magento/Review/Test/Unit/Model/ResourceModel/Review/Summary/CollectionTest.php @@ -31,7 +31,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase protected $loggerMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -62,7 +62,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase false ); $this->loggerMock = $this->getMock('Psr\Log\LoggerInterface'); - $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\AbstractDb') + $this->resourceMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->setMethods(['getConnection', 'getMainTable', 'getTable']) ->disableOriginalConstructor() ->getMockForAbstractClass(); diff --git a/app/code/Magento/Rss/Model/System/Config/Backend/Links.php b/app/code/Magento/Rss/Model/System/Config/Backend/Links.php index c86f176a373..64f383245e3 100644 --- a/app/code/Magento/Rss/Model/System/Config/Backend/Links.php +++ b/app/code/Magento/Rss/Model/System/Config/Backend/Links.php @@ -21,7 +21,7 @@ class Links extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -30,7 +30,7 @@ class Links extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Rule/Model/AbstractModel.php b/app/code/Magento/Rule/Model/AbstractModel.php index a125cb03f36..07bc7957bfb 100644 --- a/app/code/Magento/Rule/Model/AbstractModel.php +++ b/app/code/Magento/Rule/Model/AbstractModel.php @@ -81,7 +81,7 @@ abstract class AbstractModel extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Data\FormFactory $formFactory * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -90,7 +90,7 @@ abstract class AbstractModel extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Registry $registry, \Magento\Framework\Data\FormFactory $formFactory, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Rule/Model/ResourceModel/AbstractResource.php b/app/code/Magento/Rule/Model/ResourceModel/AbstractResource.php index 0d7fb27f5b0..0655ddb25a9 100644 --- a/app/code/Magento/Rule/Model/ResourceModel/AbstractResource.php +++ b/app/code/Magento/Rule/Model/ResourceModel/AbstractResource.php @@ -11,7 +11,7 @@ */ namespace Magento\Rule\Model\ResourceModel; -abstract class AbstractResource extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +abstract class AbstractResource extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Store associated with rule entities information map diff --git a/app/code/Magento/Rule/Model/ResourceModel/Rule/Collection/AbstractCollection.php b/app/code/Magento/Rule/Model/ResourceModel/Rule/Collection/AbstractCollection.php index 07e3faafcdf..227300f8b06 100644 --- a/app/code/Magento/Rule/Model/ResourceModel/Rule/Collection/AbstractCollection.php +++ b/app/code/Magento/Rule/Model/ResourceModel/Rule/Collection/AbstractCollection.php @@ -11,7 +11,7 @@ */ namespace Magento\Rule\Model\ResourceModel\Rule\Collection; -abstract class AbstractCollection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +abstract class AbstractCollection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Store associated with rule entities information map diff --git a/app/code/Magento/Rule/Test/Unit/Model/ResourceModel/Rule/Collection/AbstractCollectionTest.php b/app/code/Magento/Rule/Test/Unit/Model/ResourceModel/Rule/Collection/AbstractCollectionTest.php index e40d4f6ca91..f93510b4a23 100644 --- a/app/code/Magento/Rule/Test/Unit/Model/ResourceModel/Rule/Collection/AbstractCollectionTest.php +++ b/app/code/Magento/Rule/Test/Unit/Model/ResourceModel/Rule/Collection/AbstractCollectionTest.php @@ -41,7 +41,7 @@ class AbstractCollectionTest extends \PHPUnit_Framework_TestCase protected $_managerMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $_db; @@ -52,7 +52,7 @@ class AbstractCollectionTest extends \PHPUnit_Framework_TestCase $this->_fetchStrategyMock = $this->getMock('Magento\Framework\Data\Collection\Db\FetchStrategyInterface'); $this->_managerMock = $this->getMock('Magento\Framework\Event\ManagerInterface'); $this->_db = $this->getMockForAbstractClass( - '\Magento\Framework\Model\ModelResource\Db\AbstractDb', + '\Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Pdfcreditmemos.php b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Pdfcreditmemos.php index 365e188b0c1..24f639ea10b 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Pdfcreditmemos.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Creditmemo/AbstractCreditmemo/Pdfcreditmemos.php @@ -7,7 +7,7 @@ namespace Magento\Sales\Controller\Adminhtml\Creditmemo\AbstractCreditmemo; use Magento\Framework\App\ResponseInterface; use Magento\Framework\App\Filesystem\DirectoryList; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Sales\Model\Order\Pdf\Creditmemo; use Magento\Framework\Stdlib\DateTime\DateTime; use Magento\Backend\App\Action\Context; diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Pdfinvoices.php b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Pdfinvoices.php index 4f2cd24cac0..043565937d8 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Pdfinvoices.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Pdfinvoices.php @@ -8,7 +8,7 @@ namespace Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice; use Magento\Framework\App\ResponseInterface; use Magento\Framework\App\Filesystem\DirectoryList; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Ui\Component\MassAction\Filter; use Magento\Sales\Model\Order\Pdf\Invoice; use Magento\Framework\Stdlib\DateTime\DateTime; diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/AbstractMassAction.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/AbstractMassAction.php index c25455db575..badfbc2ad43 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/AbstractMassAction.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/AbstractMassAction.php @@ -5,7 +5,7 @@ */ namespace Magento\Sales\Controller\Adminhtml\Order; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Framework\Controller\ResultFactory; use Magento\Framework\App\ResponseInterface; use Magento\Framework\Controller\ResultInterface; diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/MassCancel.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/MassCancel.php index ed1b73abba7..244390e564d 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/MassCancel.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/MassCancel.php @@ -5,7 +5,7 @@ */ namespace Magento\Sales\Controller\Adminhtml\Order; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Backend\App\Action\Context; use Magento\Ui\Component\MassAction\Filter; use Magento\Sales\Model\ResourceModel\Order\CollectionFactory; diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/MassHold.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/MassHold.php index b9cab6dfe7a..df35760a47c 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/MassHold.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/MassHold.php @@ -5,7 +5,7 @@ */ namespace Magento\Sales\Controller\Adminhtml\Order; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Backend\App\Action\Context; use Magento\Ui\Component\MassAction\Filter; use Magento\Sales\Model\ResourceModel\Order\CollectionFactory; diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/MassUnhold.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/MassUnhold.php index da88afbc23f..ab2d11b29a7 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/MassUnhold.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/MassUnhold.php @@ -5,7 +5,7 @@ */ namespace Magento\Sales\Controller\Adminhtml\Order; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Backend\App\Action\Context; use Magento\Ui\Component\MassAction\Filter; use Magento\Sales\Model\ResourceModel\Order\CollectionFactory; diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfcreditmemos.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfcreditmemos.php index 3a170803b6c..b46e8c2c7e0 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfcreditmemos.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfcreditmemos.php @@ -7,7 +7,7 @@ namespace Magento\Sales\Controller\Adminhtml\Order; use Magento\Framework\App\ResponseInterface; use Magento\Framework\App\Filesystem\DirectoryList; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Ui\Component\MassAction\Filter; use Magento\Sales\Model\Order\Pdf\Creditmemo; use Magento\Framework\Stdlib\DateTime\DateTime; diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfdocs.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfdocs.php index 44886e549ba..16341d5e06a 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfdocs.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfdocs.php @@ -7,7 +7,7 @@ namespace Magento\Sales\Controller\Adminhtml\Order; use Magento\Framework\App\ResponseInterface; use Magento\Framework\App\Filesystem\DirectoryList; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Sales\Model\Order\Pdf\Invoice; use Magento\Backend\App\Action\Context; use Magento\Framework\App\Response\Http\FileFactory; diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfinvoices.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfinvoices.php index bc6fccf9953..15469cdf292 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfinvoices.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfinvoices.php @@ -7,7 +7,7 @@ namespace Magento\Sales\Controller\Adminhtml\Order; use Magento\Framework\App\ResponseInterface; use Magento\Framework\App\Filesystem\DirectoryList; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Ui\Component\MassAction\Filter; use Magento\Sales\Model\Order\Pdf\Invoice; use Magento\Framework\Stdlib\DateTime\DateTime; diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfshipments.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfshipments.php index fdc834d140e..f71bf7d8e0e 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfshipments.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfshipments.php @@ -7,7 +7,7 @@ namespace Magento\Sales\Controller\Adminhtml\Order; use Magento\Framework\App\ResponseInterface; use Magento\Framework\App\Filesystem\DirectoryList; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Backend\App\Action\Context; use Magento\Framework\App\Response\Http\FileFactory; use Magento\Ui\Component\MassAction\Filter; diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/Pdfshipments.php b/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/Pdfshipments.php index dabc2f0df7f..aaaeba3ccec 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/Pdfshipments.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Shipment/AbstractShipment/Pdfshipments.php @@ -10,7 +10,7 @@ use Magento\Backend\App\Action\Context; use Magento\Framework\App\ResponseInterface; use Magento\Framework\App\Filesystem\DirectoryList; use Magento\Framework\App\Response\Http\FileFactory; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Ui\Component\MassAction\Filter; use Magento\Sales\Model\Order\Pdf\Shipment; use Magento\Framework\Stdlib\DateTime\DateTime; diff --git a/app/code/Magento/Sales/Helper/Admin.php b/app/code/Magento/Sales/Helper/Admin.php index ef241613afd..fc6590a7134 100644 --- a/app/code/Magento/Sales/Helper/Admin.php +++ b/app/code/Magento/Sales/Helper/Admin.php @@ -113,8 +113,8 @@ class Admin extends \Magento\Framework\App\Helper\AbstractHelper /** * Filter collection by removing not available product types * - * @param \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection $collection - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @param \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection $collection + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ public function applySalableProductTypesFilter($collection) { diff --git a/app/code/Magento/Sales/Model/AbstractModel.php b/app/code/Magento/Sales/Model/AbstractModel.php index e63ad080d3d..cc9cac1cf78 100644 --- a/app/code/Magento/Sales/Model/AbstractModel.php +++ b/app/code/Magento/Sales/Model/AbstractModel.php @@ -21,7 +21,7 @@ abstract class AbstractModel extends AbstractExtensibleModel * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -30,7 +30,7 @@ abstract class AbstractModel extends AbstractExtensibleModel \Magento\Framework\Registry $registry, \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order.php b/app/code/Magento/Sales/Model/Order.php index 722ba4ef243..e53438bd684 100644 --- a/app/code/Magento/Sales/Model/Order.php +++ b/app/code/Magento/Sales/Model/Order.php @@ -286,7 +286,7 @@ class Order extends AbstractModel implements EntityInterface, OrderInterface * @param \Magento\Sales\Model\ResourceModel\Order\Shipment\Track\CollectionFactory $trackCollectionFactory * @param PriceCurrencyInterface $priceCurrency * @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productListFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -315,7 +315,7 @@ class Order extends AbstractModel implements EntityInterface, OrderInterface \Magento\Sales\Model\ResourceModel\Order\Shipment\Track\CollectionFactory $trackCollectionFactory, PriceCurrencyInterface $priceCurrency, \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productListFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Address.php b/app/code/Magento/Sales/Model/Order/Address.php index 38cc0b52b97..fec38a4895f 100644 --- a/app/code/Magento/Sales/Model/Order/Address.php +++ b/app/code/Magento/Sales/Model/Order/Address.php @@ -61,7 +61,7 @@ class Address extends AbstractModel implements OrderAddressInterface, AddressMod * @param \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory * @param \Magento\Sales\Model\OrderFactory $orderFactory * @param \Magento\Directory\Model\RegionFactory $regionFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -72,7 +72,7 @@ class Address extends AbstractModel implements OrderAddressInterface, AddressMod \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory, \Magento\Sales\Model\OrderFactory $orderFactory, \Magento\Directory\Model\RegionFactory $regionFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Creditmemo.php b/app/code/Magento/Sales/Model/Order/Creditmemo.php index 41db239b098..9eeb67ed266 100644 --- a/app/code/Magento/Sales/Model/Order/Creditmemo.php +++ b/app/code/Magento/Sales/Model/Order/Creditmemo.php @@ -128,7 +128,7 @@ class Creditmemo extends AbstractModel implements EntityInterface, CreditmemoInt * @param Creditmemo\CommentFactory $commentFactory * @param \Magento\Sales\Model\ResourceModel\Order\Creditmemo\Comment\CollectionFactory $commentCollectionFactory * @param PriceCurrencyInterface $priceCurrency - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -146,7 +146,7 @@ class Creditmemo extends AbstractModel implements EntityInterface, CreditmemoInt \Magento\Sales\Model\Order\Creditmemo\CommentFactory $commentFactory, \Magento\Sales\Model\ResourceModel\Order\Creditmemo\Comment\CollectionFactory $commentCollectionFactory, PriceCurrencyInterface $priceCurrency, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Creditmemo/Comment.php b/app/code/Magento/Sales/Model/Order/Creditmemo/Comment.php index 64305b8c2e1..ce87a4282d2 100644 --- a/app/code/Magento/Sales/Model/Order/Creditmemo/Comment.php +++ b/app/code/Magento/Sales/Model/Order/Creditmemo/Comment.php @@ -33,7 +33,7 @@ class Comment extends AbstractModel implements CreditmemoCommentInterface * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -44,7 +44,7 @@ class Comment extends AbstractModel implements CreditmemoCommentInterface \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Creditmemo/Item.php b/app/code/Magento/Sales/Model/Order/Creditmemo/Item.php index ce444987f2b..4de21f6036b 100644 --- a/app/code/Magento/Sales/Model/Order/Creditmemo/Item.php +++ b/app/code/Magento/Sales/Model/Order/Creditmemo/Item.php @@ -48,7 +48,7 @@ class Item extends AbstractModel implements CreditmemoItemInterface * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory * @param \Magento\Sales\Model\Order\ItemFactory $orderItemFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -58,7 +58,7 @@ class Item extends AbstractModel implements CreditmemoItemInterface \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, \Magento\Sales\Model\Order\ItemFactory $orderItemFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Invoice.php b/app/code/Magento/Sales/Model/Order/Invoice.php index e58cab354f8..c0fd952426a 100644 --- a/app/code/Magento/Sales/Model/Order/Invoice.php +++ b/app/code/Magento/Sales/Model/Order/Invoice.php @@ -128,7 +128,7 @@ class Invoice extends AbstractModel implements EntityInterface, InvoiceInterface * @param \Magento\Sales\Model\ResourceModel\Order\Invoice\Item\CollectionFactory $invoiceItemCollectionFactory * @param Invoice\CommentFactory $invoiceCommentFactory * @param \Magento\Sales\Model\ResourceModel\Order\Invoice\Comment\CollectionFactory $commentCollectionFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -144,7 +144,7 @@ class Invoice extends AbstractModel implements EntityInterface, InvoiceInterface \Magento\Sales\Model\ResourceModel\Order\Invoice\Item\CollectionFactory $invoiceItemCollectionFactory, \Magento\Sales\Model\Order\Invoice\CommentFactory $invoiceCommentFactory, \Magento\Sales\Model\ResourceModel\Order\Invoice\Comment\CollectionFactory $commentCollectionFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Invoice/Comment.php b/app/code/Magento/Sales/Model/Order/Invoice/Comment.php index 838af6acdb6..cfe297d0ea6 100644 --- a/app/code/Magento/Sales/Model/Order/Invoice/Comment.php +++ b/app/code/Magento/Sales/Model/Order/Invoice/Comment.php @@ -33,7 +33,7 @@ class Comment extends AbstractModel implements InvoiceCommentInterface * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -44,7 +44,7 @@ class Comment extends AbstractModel implements InvoiceCommentInterface \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Invoice/Item.php b/app/code/Magento/Sales/Model/Order/Invoice/Item.php index 2eba2216571..d6889b1334a 100644 --- a/app/code/Magento/Sales/Model/Order/Invoice/Item.php +++ b/app/code/Magento/Sales/Model/Order/Invoice/Item.php @@ -60,7 +60,7 @@ class Item extends AbstractModel implements InvoiceItemInterface * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory * @param \Magento\Sales\Model\Order\ItemFactory $orderItemFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -70,7 +70,7 @@ class Item extends AbstractModel implements InvoiceItemInterface \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, \Magento\Sales\Model\Order\ItemFactory $orderItemFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Item.php b/app/code/Magento/Sales/Model/Order/Item.php index 7885cc2dbd0..e1675782ea4 100644 --- a/app/code/Magento/Sales/Model/Order/Item.php +++ b/app/code/Magento/Sales/Model/Order/Item.php @@ -105,7 +105,7 @@ class Item extends AbstractModel implements OrderItemInterface * @param \Magento\Sales\Model\OrderFactory $orderFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Catalog\Api\ProductRepositoryInterface $productRepository - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -118,7 +118,7 @@ class Item extends AbstractModel implements OrderItemInterface \Magento\Sales\Model\OrderFactory $orderFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Catalog\Api\ProductRepositoryInterface $productRepository, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Payment.php b/app/code/Magento/Sales/Model/Order/Payment.php index d3dc65c432e..690bde68d5c 100644 --- a/app/code/Magento/Sales/Model/Order/Payment.php +++ b/app/code/Magento/Sales/Model/Order/Payment.php @@ -117,7 +117,7 @@ class Payment extends Info implements OrderPaymentInterface * @param Transaction\BuilderInterface $transactionBuilder * @param Payment\Processor $paymentProcessor * @param OrderRepositoryInterface $orderRepository - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -136,7 +136,7 @@ class Payment extends Info implements OrderPaymentInterface \Magento\Sales\Model\Order\Payment\Transaction\BuilderInterface $transactionBuilder, \Magento\Sales\Model\Order\Payment\Processor $paymentProcessor, OrderRepositoryInterface $orderRepository, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Payment/Info.php b/app/code/Magento/Sales/Model/Order/Payment/Info.php index 3a0d865b0ef..0abf5b513b8 100644 --- a/app/code/Magento/Sales/Model/Order/Payment/Info.php +++ b/app/code/Magento/Sales/Model/Order/Payment/Info.php @@ -42,7 +42,7 @@ class Info extends AbstractModel implements InfoInterface * @param \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory, * @param \Magento\Payment\Helper\Data $paymentData * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -53,7 +53,7 @@ class Info extends AbstractModel implements InfoInterface \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory, \Magento\Payment\Helper\Data $paymentData, \Magento\Framework\Encryption\EncryptorInterface $encryptor, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Payment/Transaction.php b/app/code/Magento/Sales/Model/Order/Payment/Transaction.php index a21db54bbae..91269d66fbd 100644 --- a/app/code/Magento/Sales/Model/Order/Payment/Transaction.php +++ b/app/code/Magento/Sales/Model/Order/Payment/Transaction.php @@ -155,7 +155,7 @@ class Transaction extends AbstractModel implements TransactionInterface * @param \Magento\Sales\Model\OrderFactory $orderFactory * @param \Magento\Framework\Stdlib\DateTime\DateTimeFactory $dateFactory * @param TransactionFactory $transactionFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -170,7 +170,7 @@ class Transaction extends AbstractModel implements TransactionInterface \Magento\Sales\Api\OrderRepositoryInterface $orderRepository, \Magento\Framework\Stdlib\DateTime\DateTimeFactory $dateFactory, TransactionFactory $transactionFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Pdf/Items/AbstractItems.php b/app/code/Magento/Sales/Model/Order/Pdf/Items/AbstractItems.php index 8a43ced41e0..94160249deb 100644 --- a/app/code/Magento/Sales/Model/Order/Pdf/Items/AbstractItems.php +++ b/app/code/Magento/Sales/Model/Order/Pdf/Items/AbstractItems.php @@ -71,7 +71,7 @@ abstract class AbstractItems extends \Magento\Framework\Model\AbstractModel * @param \Magento\Tax\Helper\Data $taxData * @param \Magento\Framework\Filesystem $filesystem , * @param \Magento\Framework\Filter\FilterManager $filterManager - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -81,7 +81,7 @@ abstract class AbstractItems extends \Magento\Framework\Model\AbstractModel \Magento\Tax\Helper\Data $taxData, \Magento\Framework\Filesystem $filesystem, \Magento\Framework\Filter\FilterManager $filterManager, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Pdf/Items/Creditmemo/DefaultCreditmemo.php b/app/code/Magento/Sales/Model/Order/Pdf/Items/Creditmemo/DefaultCreditmemo.php index 3c585c69495..de420f1312b 100644 --- a/app/code/Magento/Sales/Model/Order/Pdf/Items/Creditmemo/DefaultCreditmemo.php +++ b/app/code/Magento/Sales/Model/Order/Pdf/Items/Creditmemo/DefaultCreditmemo.php @@ -24,7 +24,7 @@ class DefaultCreditmemo extends \Magento\Sales\Model\Order\Pdf\Items\AbstractIte * @param \Magento\Framework\Filesystem $filesystem * @param \Magento\Framework\Filter\FilterManager $filterManager * @param \Magento\Framework\Stdlib\StringUtils $string - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -35,7 +35,7 @@ class DefaultCreditmemo extends \Magento\Sales\Model\Order\Pdf\Items\AbstractIte \Magento\Framework\Filesystem $filesystem, \Magento\Framework\Filter\FilterManager $filterManager, \Magento\Framework\Stdlib\StringUtils $string, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Pdf/Items/Invoice/DefaultInvoice.php b/app/code/Magento/Sales/Model/Order/Pdf/Items/Invoice/DefaultInvoice.php index fe425caf0f7..5f8b56f9912 100644 --- a/app/code/Magento/Sales/Model/Order/Pdf/Items/Invoice/DefaultInvoice.php +++ b/app/code/Magento/Sales/Model/Order/Pdf/Items/Invoice/DefaultInvoice.php @@ -24,7 +24,7 @@ class DefaultInvoice extends \Magento\Sales\Model\Order\Pdf\Items\AbstractItems * @param \Magento\Framework\Filesystem $filesystem * @param \Magento\Framework\Filter\FilterManager $filterManager * @param \Magento\Framework\Stdlib\StringUtils $string - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -35,7 +35,7 @@ class DefaultInvoice extends \Magento\Sales\Model\Order\Pdf\Items\AbstractItems \Magento\Framework\Filesystem $filesystem, \Magento\Framework\Filter\FilterManager $filterManager, \Magento\Framework\Stdlib\StringUtils $string, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Pdf/Items/Shipment/DefaultShipment.php b/app/code/Magento/Sales/Model/Order/Pdf/Items/Shipment/DefaultShipment.php index f08402006d5..0850ca5944a 100644 --- a/app/code/Magento/Sales/Model/Order/Pdf/Items/Shipment/DefaultShipment.php +++ b/app/code/Magento/Sales/Model/Order/Pdf/Items/Shipment/DefaultShipment.php @@ -24,7 +24,7 @@ class DefaultShipment extends \Magento\Sales\Model\Order\Pdf\Items\AbstractItems * @param \Magento\Framework\Filesystem $filesystem * @param \Magento\Framework\Filter\FilterManager $filterManager * @param \Magento\Framework\Stdlib\StringUtils $string - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -35,7 +35,7 @@ class DefaultShipment extends \Magento\Sales\Model\Order\Pdf\Items\AbstractItems \Magento\Framework\Filesystem $filesystem, \Magento\Framework\Filter\FilterManager $filterManager, \Magento\Framework\Stdlib\StringUtils $string, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Shipment.php b/app/code/Magento/Sales/Model/Order/Shipment.php index 5b50f6dc374..f99977fdcbf 100644 --- a/app/code/Magento/Sales/Model/Order/Shipment.php +++ b/app/code/Magento/Sales/Model/Order/Shipment.php @@ -103,7 +103,7 @@ class Shipment extends AbstractModel implements EntityInterface, ShipmentInterfa * @param Shipment\CommentFactory $commentFactory * @param \Magento\Sales\Model\ResourceModel\Order\Shipment\Comment\CollectionFactory $commentCollectionFactory * @param \Magento\Sales\Api\OrderRepositoryInterface $orderRepository - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -118,7 +118,7 @@ class Shipment extends AbstractModel implements EntityInterface, ShipmentInterfa \Magento\Sales\Model\Order\Shipment\CommentFactory $commentFactory, \Magento\Sales\Model\ResourceModel\Order\Shipment\Comment\CollectionFactory $commentCollectionFactory, \Magento\Sales\Api\OrderRepositoryInterface $orderRepository, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Shipment/Comment.php b/app/code/Magento/Sales/Model/Order/Shipment/Comment.php index f3cffbec4cf..f2506ade73b 100644 --- a/app/code/Magento/Sales/Model/Order/Shipment/Comment.php +++ b/app/code/Magento/Sales/Model/Order/Shipment/Comment.php @@ -33,7 +33,7 @@ class Comment extends AbstractModel implements ShipmentCommentInterface * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -44,7 +44,7 @@ class Comment extends AbstractModel implements ShipmentCommentInterface \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Shipment/Item.php b/app/code/Magento/Sales/Model/Order/Shipment/Item.php index dcd29fd9577..8da7b10f87b 100644 --- a/app/code/Magento/Sales/Model/Order/Shipment/Item.php +++ b/app/code/Magento/Sales/Model/Order/Shipment/Item.php @@ -50,7 +50,7 @@ class Item extends AbstractModel implements ShipmentItemInterface * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory * @param \Magento\Sales\Model\Order\ItemFactory $orderItemFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -60,7 +60,7 @@ class Item extends AbstractModel implements ShipmentItemInterface \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, \Magento\Sales\Model\Order\ItemFactory $orderItemFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Shipment/Track.php b/app/code/Magento/Sales/Model/Order/Shipment/Track.php index 9e31bdd092a..52b48663a79 100644 --- a/app/code/Magento/Sales/Model/Order/Shipment/Track.php +++ b/app/code/Magento/Sales/Model/Order/Shipment/Track.php @@ -55,7 +55,7 @@ class Track extends AbstractModel implements ShipmentTrackInterface * @param AttributeValueFactory $customAttributeFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Sales\Model\Order\ShipmentRepository $shipmentRepository - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -67,7 +67,7 @@ class Track extends AbstractModel implements ShipmentTrackInterface AttributeValueFactory $customAttributeFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Sales\Model\Order\ShipmentRepository $shipmentRepository, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Status.php b/app/code/Magento/Sales/Model/Order/Status.php index ea71fdf575c..115ed4183c9 100644 --- a/app/code/Magento/Sales/Model/Order/Status.php +++ b/app/code/Magento/Sales/Model/Order/Status.php @@ -26,7 +26,7 @@ class Status extends \Magento\Sales\Model\AbstractModel * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -36,7 +36,7 @@ class Status extends \Magento\Sales\Model\AbstractModel \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, \Magento\Framework\Api\AttributeValueFactory $customAttributeFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/Order/Status/History.php b/app/code/Magento/Sales/Model/Order/Status/History.php index 2505ad1a7eb..b488580a299 100644 --- a/app/code/Magento/Sales/Model/Order/Status/History.php +++ b/app/code/Magento/Sales/Model/Order/Status/History.php @@ -48,7 +48,7 @@ class History extends AbstractModel implements OrderStatusHistoryInterface * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -59,7 +59,7 @@ class History extends AbstractModel implements OrderStatusHistoryInterface \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sales/Model/ResourceModel/AbstractGrid.php b/app/code/Magento/Sales/Model/ResourceModel/AbstractGrid.php index 0941d2d8da1..71cb4575a94 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/AbstractGrid.php +++ b/app/code/Magento/Sales/Model/ResourceModel/AbstractGrid.php @@ -7,7 +7,7 @@ namespace Magento\Sales\Model\ResourceModel; use Magento\Framework\App\ResourceConnection as AppResource; use Magento\Framework\DB\Adapter\AdapterInterface; -use Magento\Framework\Model\ModelResource\Db\AbstractDb; +use Magento\Framework\Model\ResourceModel\Db\AbstractDb; /** * Class AbstractGrid diff --git a/app/code/Magento/Sales/Model/ResourceModel/Collection/AbstractCollection.php b/app/code/Magento/Sales/Model/ResourceModel/Collection/AbstractCollection.php index 841b0646b49..88ea6d9964c 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Collection/AbstractCollection.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Collection/AbstractCollection.php @@ -9,7 +9,7 @@ namespace Magento\Sales\Model\ResourceModel\Collection; * Flat sales abstract collection * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -abstract class AbstractCollection extends \Magento\Framework\Model\ModelResource\Db\VersionControl\Collection +abstract class AbstractCollection extends \Magento\Framework\Model\ResourceModel\Db\VersionControl\Collection { /** * @var \Magento\Framework\DB\Select diff --git a/app/code/Magento/Sales/Model/ResourceModel/EntityAbstract.php b/app/code/Magento/Sales/Model/ResourceModel/EntityAbstract.php index c95c5c79d15..ef4b103821d 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/EntityAbstract.php +++ b/app/code/Magento/Sales/Model/ResourceModel/EntityAbstract.php @@ -5,9 +5,9 @@ */ namespace Magento\Sales\Model\ResourceModel; -use Magento\Framework\Model\ModelResource\Db\VersionControl\AbstractDb; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite; -use Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\AbstractDb; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot; use Magento\SalesSequence\Model\Manager; use Magento\Sales\Model\EntityInterface; @@ -55,7 +55,7 @@ abstract class EntityAbstract extends AbstractDb protected $sequenceManager; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param Snapshot $entitySnapshot * @param RelationComposite $entityRelationComposite * @param Attribute $attribute @@ -63,7 +63,7 @@ abstract class EntityAbstract extends AbstractDb * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, Snapshot $entitySnapshot, RelationComposite $entityRelationComposite, \Magento\Sales\Model\ResourceModel\Attribute $attribute, diff --git a/app/code/Magento/Sales/Model/ResourceModel/Grid.php b/app/code/Magento/Sales/Model/ResourceModel/Grid.php index 2c32c0b618a..b30166aeb3a 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Grid.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Grid.php @@ -7,7 +7,7 @@ namespace Magento\Sales\Model\ResourceModel; use Magento\Framework\DB\Adapter\AdapterInterface; use Magento\Sales\Model\ResourceModel\AbstractGrid; -use Magento\Framework\Model\ModelResource\Db\Context; +use Magento\Framework\Model\ResourceModel\Db\Context; /** * Class Grid diff --git a/app/code/Magento/Sales/Model/ResourceModel/Grid/Collection.php b/app/code/Magento/Sales/Model/ResourceModel/Grid/Collection.php index 64faa55649a..077c6e35b02 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Grid/Collection.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Grid/Collection.php @@ -7,7 +7,7 @@ namespace Magento\Sales\Model\ResourceModel\Grid; use Magento\Framework\Api\Search\SearchResultInterface; use Magento\Framework\Search\AggregationInterface; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; /** * Class Collection @@ -27,12 +27,12 @@ class Collection extends AbstractCollection implements SearchResultInterface * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param null|\Zend_Db_Adapter_Abstract $mainTable - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $eventPrefix + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $eventPrefix * @param string $eventObject * @param string $resourceModel * @param string $model * @param string|null $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ @@ -47,7 +47,7 @@ class Collection extends AbstractCollection implements SearchResultInterface $resourceModel, $model = 'Magento\Sales\Model\ResourceModel\Grid\Document', $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_eventPrefix = $eventPrefix; $this->_eventObject = $eventObject; diff --git a/app/code/Magento/Sales/Model/ResourceModel/Metadata.php b/app/code/Magento/Sales/Model/ResourceModel/Metadata.php index d011d093cc3..ec35e262e69 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Metadata.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Metadata.php @@ -41,7 +41,7 @@ class Metadata } /** - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ public function getMapper() { diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order.php b/app/code/Magento/Sales/Model/ResourceModel/Order.php index bd89884c6df..d6e5a032302 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order.php @@ -11,8 +11,8 @@ use Magento\SalesSequence\Model\Manager; use Magento\Sales\Model\ResourceModel\EntityAbstract as SalesResource; use Magento\Sales\Model\ResourceModel\Order\Handler\State as StateHandler; use Magento\Sales\Model\Spi\OrderResourceInterface; -use Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite; /** * Flat sales order resource @@ -52,7 +52,7 @@ class Order extends SalesResource implements OrderResourceInterface } /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param Attribute $attribute * @param Manager $sequenceManager * @param Snapshot $entitySnapshot @@ -61,7 +61,7 @@ class Order extends SalesResource implements OrderResourceInterface * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, Snapshot $entitySnapshot, RelationComposite $entityRelationComposite, Attribute $attribute, diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Address.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Address.php index 71e5b50e5b9..6df065f7ee3 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Address.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Address.php @@ -7,7 +7,7 @@ namespace Magento\Sales\Model\ResourceModel\Order; use Magento\Sales\Model\ResourceModel\EntityAbstract as SalesResource; use Magento\Sales\Model\Spi\OrderAddressResourceInterface; -use Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot; /** * Flat sales order address resource @@ -32,19 +32,19 @@ class Address extends SalesResource implements OrderAddressResourceInterface protected $gridPool; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Sales\Model\ResourceModel\Attribute $attribute * @param \Magento\SalesSequence\Model\Manager $sequenceManager * @param Snapshot $entitySnapshot - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite * @param \Magento\Sales\Model\Order\Address\Validator $validator * @param \Magento\Sales\Model\ResourceModel\GridPool $gridPool * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, Snapshot $entitySnapshot, - \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite, \Magento\Sales\Model\ResourceModel\Attribute $attribute, \Magento\SalesSequence\Model\Manager $sequenceManager, \Magento\Sales\Model\Order\Address\Validator $validator, @@ -127,7 +127,7 @@ class Address extends SalesResource implements OrderAddressResourceInterface * Update related grid table after object save * * @param \Magento\Framework\Model\AbstractModel|\Magento\Framework\DataObject $object - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected function _afterSave(\Magento\Framework\Model\AbstractModel $object) { diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Collection.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Collection.php index 09b603ab454..f41f0821d22 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Collection.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Collection.php @@ -44,20 +44,20 @@ class Collection extends AbstractCollection implements OrderSearchResultInterfac * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy * @param \Magento\Framework\Event\ManagerInterface $eventManager - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot * @param \Magento\Framework\DB\Helper $coreResourceHelper * @param string|null $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, - \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, \Magento\Framework\DB\Helper $coreResourceHelper, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct( $entityFactory, diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo.php index e9a1c1fa232..1efd99d666b 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo.php @@ -9,7 +9,7 @@ use Magento\Framework\App\ResourceConnection as AppResource; use Magento\SalesSequence\Model\Manager; use Magento\Sales\Model\ResourceModel\Attribute; use Magento\Sales\Model\ResourceModel\EntityAbstract as SalesResource; -use Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot; use Magento\Sales\Model\Spi\CreditmemoResourceInterface; /** diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo/Comment.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo/Comment.php index 63541553797..0d8e9e04e79 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo/Comment.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo/Comment.php @@ -6,7 +6,7 @@ namespace Magento\Sales\Model\ResourceModel\Order\Creditmemo; use Magento\Sales\Model\ResourceModel\EntityAbstract; -use Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot; use Magento\Sales\Model\Spi\CreditmemoCommentResourceInterface; /** @@ -31,18 +31,18 @@ class Comment extends EntityAbstract implements CreditmemoCommentResourceInterfa protected $validator; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Sales\Model\ResourceModel\Attribute $attribute * @param \Magento\SalesSequence\Model\Manager $sequenceManager * @param Snapshot $entitySnapshot - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite * @param \Magento\Sales\Model\Order\Creditmemo\Comment\Validator $validator * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, Snapshot $entitySnapshot, - \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite, \Magento\Sales\Model\ResourceModel\Attribute $attribute, \Magento\SalesSequence\Model\Manager $sequenceManager, \Magento\Sales\Model\Order\Creditmemo\Comment\Validator $validator, diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo/Relation.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo/Relation.php index 00f4110dc83..e4233c776e1 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo/Relation.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo/Relation.php @@ -6,7 +6,7 @@ namespace Magento\Sales\Model\ResourceModel\Order\Creditmemo; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationInterface; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface; /** * Class Relation diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo/Relation/Refund.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo/Relation/Refund.php index 6698e9d14bb..ce9914878cd 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo/Relation/Refund.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Creditmemo/Relation/Refund.php @@ -6,7 +6,7 @@ namespace Magento\Sales\Model\ResourceModel\Order\Creditmemo\Relation; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationInterface; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface; /** * Class Relation diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Invoice.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Invoice.php index 15c68e99ac2..a5699820129 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Invoice.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Invoice.php @@ -9,7 +9,7 @@ use Magento\Framework\App\ResourceConnection; use Magento\SalesSequence\Model\Manager; use Magento\Sales\Model\ResourceModel\Attribute; use Magento\Sales\Model\ResourceModel\EntityAbstract as SalesResource; -use Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot; use Magento\Sales\Model\Spi\InvoiceResourceInterface; /** diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Invoice/Comment.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Invoice/Comment.php index 91c337f20d9..cea28e92a6e 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Invoice/Comment.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Invoice/Comment.php @@ -6,7 +6,7 @@ namespace Magento\Sales\Model\ResourceModel\Order\Invoice; use Magento\Sales\Model\ResourceModel\EntityAbstract; -use Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot; use Magento\Sales\Model\Spi\InvoiceCommentResourceInterface; /** @@ -31,18 +31,18 @@ class Comment extends EntityAbstract implements InvoiceCommentResourceInterface protected $validator; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Sales\Model\ResourceModel\Attribute $attribute * @param \Magento\SalesSequence\Model\Manager $sequenceManager * @param Snapshot $entitySnapshot - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite * @param \Magento\Sales\Model\Order\Invoice\Comment\Validator $validator * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, Snapshot $entitySnapshot, - \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite, \Magento\Sales\Model\ResourceModel\Attribute $attribute, \Magento\SalesSequence\Model\Manager $sequenceManager, \Magento\Sales\Model\Order\Invoice\Comment\Validator $validator, diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Invoice/Relation.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Invoice/Relation.php index 6e9ff0ea956..f46527a29a0 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Invoice/Relation.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Invoice/Relation.php @@ -6,7 +6,7 @@ namespace Magento\Sales\Model\ResourceModel\Order\Invoice; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationInterface; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface; use Magento\Sales\Model\ResourceModel\Order\Invoice\Item as InvoiceItemResource; use Magento\Sales\Model\ResourceModel\Order\Invoice\Comment as InvoiceCommentResource; diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Payment/Collection.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Payment/Collection.php index 6656dfb1c9e..7f761754467 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Payment/Collection.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Payment/Collection.php @@ -32,18 +32,18 @@ class Collection extends AbstractCollection implements OrderPaymentSearchResultI * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy * @param \Magento\Framework\Event\ManagerInterface $eventManager - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot * @param null $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, - \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct( $entityFactory, diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Relation.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Relation.php index 3b16bf11eae..da599b38eb2 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Relation.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Relation.php @@ -7,7 +7,7 @@ namespace Magento\Sales\Model\ResourceModel\Order; use Magento\Sales\Model\ResourceModel\Order\Handler\Address as AddressHandler; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationInterface; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface; use Magento\Sales\Model\ResourceModel\Order\Payment as OrderPaymentResource; use Magento\Sales\Model\ResourceModel\Order\Status\History as OrderStatusHistoryResource; use Magento\Sales\Api\OrderItemRepositoryInterface; diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Shipment/Comment.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Shipment/Comment.php index 96daa356e94..174d0c1e622 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Shipment/Comment.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Shipment/Comment.php @@ -6,7 +6,7 @@ namespace Magento\Sales\Model\ResourceModel\Order\Shipment; use Magento\Sales\Model\ResourceModel\EntityAbstract; -use Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot; use Magento\Sales\Model\Spi\ShipmentCommentResourceInterface; /** @@ -31,18 +31,18 @@ class Comment extends EntityAbstract implements ShipmentCommentResourceInterface protected $validator; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Sales\Model\ResourceModel\Attribute $attribute * @param \Magento\SalesSequence\Model\Manager $sequenceManager * @param Snapshot $entitySnapshot - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite * @param \Magento\Sales\Model\Order\Shipment\Comment\Validator $validator * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, Snapshot $entitySnapshot, - \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite, \Magento\Sales\Model\ResourceModel\Attribute $attribute, \Magento\SalesSequence\Model\Manager $sequenceManager, \Magento\Sales\Model\Order\Shipment\Comment\Validator $validator, diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Shipment/Relation.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Shipment/Relation.php index 8ff9a995e74..943255b55d2 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Shipment/Relation.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Shipment/Relation.php @@ -6,7 +6,7 @@ namespace Magento\Sales\Model\ResourceModel\Order\Shipment; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationInterface; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface; use Magento\Sales\Model\ResourceModel\Order\Shipment\Item as ShipmentItemResource; use Magento\Sales\Model\ResourceModel\Order\Shipment\Comment as ShipmentCommentResource; use Magento\Sales\Model\ResourceModel\Order\Shipment\Track as ShipmentTrackResource; diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Shipment/Track.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Shipment/Track.php index e5fcc7a27e3..ad1ad038a02 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Shipment/Track.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Shipment/Track.php @@ -6,7 +6,7 @@ namespace Magento\Sales\Model\ResourceModel\Order\Shipment; use Magento\Sales\Model\ResourceModel\EntityAbstract as SalesResource; -use Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot; use Magento\Sales\Model\Spi\ShipmentTrackResourceInterface; /** @@ -31,18 +31,18 @@ class Track extends SalesResource implements ShipmentTrackResourceInterface protected $validator; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Sales\Model\ResourceModel\Attribute $attribute * @param \Magento\SalesSequence\Model\Manager $sequenceManager * @param Snapshot $entitySnapshot - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite * @param \Magento\Sales\Model\Order\Shipment\Track\Validator $validator * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, Snapshot $entitySnapshot, - \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite, \Magento\Sales\Model\ResourceModel\Attribute $attribute, \Magento\SalesSequence\Model\Manager $sequenceManager, \Magento\Sales\Model\Order\Shipment\Track\Validator $validator, diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Status.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Status.php index 76146897477..e21f8de9ff9 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Status.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Status.php @@ -10,14 +10,14 @@ use Psr\Log\LoggerInterface as LogWriter; use Magento\Framework\Exception\LocalizedException; use Magento\SalesSequence\Model\Manager; use \Magento\Sales\Model\ResourceModel\EntityAbstract; -use \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot; +use \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot; /** * Order status resource model * * @author Magento Core Team <core@magentocommerce.com> */ -class Status extends \Magento\Framework\Model\ModelResource\Db\VersionControl\AbstractDb +class Status extends \Magento\Framework\Model\ResourceModel\Db\VersionControl\AbstractDb { /** * Status labels table diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Status/History.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Status/History.php index d1611ad703c..1ce43da2b99 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Status/History.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Status/History.php @@ -7,7 +7,7 @@ namespace Magento\Sales\Model\ResourceModel\Order\Status; use Magento\Sales\Model\Order\Status\History\Validator; use Magento\Sales\Model\ResourceModel\EntityAbstract; -use Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot; use Magento\Sales\Model\Spi\OrderStatusHistoryResourceInterface; /** @@ -23,18 +23,18 @@ class History extends EntityAbstract implements OrderStatusHistoryResourceInterf protected $validator; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Sales\Model\ResourceModel\Attribute $attribute * @param \Magento\SalesSequence\Model\Manager $sequenceManager * @param Snapshot $entitySnapshot - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite * @param Validator $validator * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, Snapshot $entitySnapshot, - \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite $entityRelationComposite, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite $entityRelationComposite, \Magento\Sales\Model\ResourceModel\Attribute $attribute, \Magento\SalesSequence\Model\Manager $sequenceManager, Validator $validator, diff --git a/app/code/Magento/Sales/Model/ResourceModel/Order/Tax/Item.php b/app/code/Magento/Sales/Model/ResourceModel/Order/Tax/Item.php index b47d75680dc..16b3e4bb19e 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Order/Tax/Item.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Order/Tax/Item.php @@ -8,7 +8,7 @@ namespace Magento\Sales\Model\ResourceModel\Order\Tax; /** * Sales order tax resource model */ -class Item extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Item extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Sales/Model/ResourceModel/Report/Bestsellers.php b/app/code/Magento/Sales/Model/ResourceModel/Report/Bestsellers.php index fbe2f588bac..231e0774687 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Report/Bestsellers.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Report/Bestsellers.php @@ -37,7 +37,7 @@ class Bestsellers extends AbstractReport ]; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate * @param \Magento\Reports\Model\FlagFactory $reportsFlagFactory @@ -50,7 +50,7 @@ class Bestsellers extends AbstractReport * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\Reports\Model\FlagFactory $reportsFlagFactory, diff --git a/app/code/Magento/Sales/Model/ResourceModel/Report/Bestsellers/Collection.php b/app/code/Magento/Sales/Model/ResourceModel/Report/Bestsellers/Collection.php index 2032c277158..0a4fed17cfc 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Report/Bestsellers/Collection.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Report/Bestsellers/Collection.php @@ -240,7 +240,7 @@ class Collection extends \Magento\Sales\Model\ResourceModel\Report\Collection\Ab * Redeclare parent method for applying filters after parent method * but before adding unions and calculating totals * - * @return $this|\Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return $this|\Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) * @SuppressWarnings(PHPMD.ExcessiveMethodLength) diff --git a/app/code/Magento/Sales/Model/ResourceModel/Report/Order.php b/app/code/Magento/Sales/Model/ResourceModel/Report/Order.php index 63c454ae1d8..743b1e19785 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Report/Order.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Report/Order.php @@ -21,7 +21,7 @@ class Order extends AbstractReport protected $_updateDatFactory; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate * @param \Magento\Reports\Model\FlagFactory $reportsFlagFactory @@ -32,7 +32,7 @@ class Order extends AbstractReport * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\Reports\Model\FlagFactory $reportsFlagFactory, diff --git a/app/code/Magento/Sales/Model/ResourceModel/Sale/Collection.php b/app/code/Magento/Sales/Model/ResourceModel/Sale/Collection.php index bdc0a0826fe..37555ab7f2d 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Sale/Collection.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Sale/Collection.php @@ -14,7 +14,7 @@ use Psr\Log\LoggerInterface as Logger; /** * Sales Collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Totals data diff --git a/app/code/Magento/Sales/Model/ResourceModel/Transaction/Grid/Collection.php b/app/code/Magento/Sales/Model/ResourceModel/Transaction/Grid/Collection.php index a92a0543067..a9351c5f480 100644 --- a/app/code/Magento/Sales/Model/ResourceModel/Transaction/Grid/Collection.php +++ b/app/code/Magento/Sales/Model/ResourceModel/Transaction/Grid/Collection.php @@ -23,20 +23,20 @@ class Collection extends \Magento\Sales\Model\ResourceModel\Order\Payment\Transa * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy * @param \Magento\Framework\Event\ManagerInterface $eventManager - * @param \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot + * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot * @param \Magento\Framework\Registry $registryManager * @param \Magento\Framework\DB\Adapter\AdapterInterface|null $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, - \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot $entitySnapshot, + \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot, \Magento\Framework\Registry $registryManager, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->registryManager = $registryManager; parent::__construct( diff --git a/app/code/Magento/Sales/Test/Unit/Helper/AdminTest.php b/app/code/Magento/Sales/Test/Unit/Helper/AdminTest.php index 1dd843c8726..bbe39f3fb55 100644 --- a/app/code/Magento/Sales/Test/Unit/Helper/AdminTest.php +++ b/app/code/Magento/Sales/Test/Unit/Helper/AdminTest.php @@ -290,7 +290,7 @@ class AdminTest extends \PHPUnit_Framework_TestCase 'quote' => $quoteMock, 'other' => 'other', ]; - $collectionClassName = 'Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection'; + $collectionClassName = 'Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection'; $collectionMock = $this->getMockBuilder($collectionClassName) ->disableOriginalConstructor() ->getMock(); diff --git a/app/code/Magento/Sales/Test/Unit/Model/Order/AddressRepositoryTest.php b/app/code/Magento/Sales/Test/Unit/Model/Order/AddressRepositoryTest.php index decd3c1048f..f943f663222 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/Order/AddressRepositoryTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/Order/AddressRepositoryTest.php @@ -86,7 +86,7 @@ class AddressRepositoryTest extends \PHPUnit_Framework_TestCase ->willReturn($entityId); $mapper = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, @@ -213,7 +213,7 @@ class AddressRepositoryTest extends \PHPUnit_Framework_TestCase ->willReturn(1); $mapper = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, @@ -249,7 +249,7 @@ class AddressRepositoryTest extends \PHPUnit_Framework_TestCase ->method('getEntityId'); $mapper = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, @@ -282,7 +282,7 @@ class AddressRepositoryTest extends \PHPUnit_Framework_TestCase ->willReturn(1); $mapper = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, @@ -318,7 +318,7 @@ class AddressRepositoryTest extends \PHPUnit_Framework_TestCase ->method('getEntityId'); $mapper = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, diff --git a/app/code/Magento/Sales/Test/Unit/Model/Order/ItemRepositoryTest.php b/app/code/Magento/Sales/Test/Unit/Model/Order/ItemRepositoryTest.php index 47572046646..e2deb200dbc 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/Order/ItemRepositoryTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/Order/ItemRepositoryTest.php @@ -109,7 +109,7 @@ class ItemRepositoryTest extends \PHPUnit_Framework_TestCase ->method('getItemId') ->willReturn(null); - $orderItemResourceMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\AbstractDb') + $orderItemResourceMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->getMock(); $orderItemResourceMock->expects($this->once()) @@ -150,7 +150,7 @@ class ItemRepositoryTest extends \PHPUnit_Framework_TestCase ->method('getItemId') ->willReturn($orderItemId); - $orderItemResourceMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\AbstractDb') + $orderItemResourceMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->getMock(); $orderItemResourceMock->expects($this->once()) @@ -255,7 +255,7 @@ class ItemRepositoryTest extends \PHPUnit_Framework_TestCase ->method('getBuyRequest') ->willReturn($requestMock); - $orderItemResourceMock = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\AbstractDb') + $orderItemResourceMock = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->getMock(); $orderItemResourceMock->expects($this->once()) diff --git a/app/code/Magento/Sales/Test/Unit/Model/Order/ShipmentRepositoryTest.php b/app/code/Magento/Sales/Test/Unit/Model/Order/ShipmentRepositoryTest.php index ad802940bc4..36a8360ee09 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/Order/ShipmentRepositoryTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/Order/ShipmentRepositoryTest.php @@ -86,7 +86,7 @@ class ShipmentRepositoryTest extends \PHPUnit_Framework_TestCase ->willReturn($entityId); $mapper = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, @@ -213,7 +213,7 @@ class ShipmentRepositoryTest extends \PHPUnit_Framework_TestCase ->willReturn(1); $mapper = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, @@ -249,7 +249,7 @@ class ShipmentRepositoryTest extends \PHPUnit_Framework_TestCase ->method('getEntityId'); $mapper = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, @@ -282,7 +282,7 @@ class ShipmentRepositoryTest extends \PHPUnit_Framework_TestCase ->willReturn(1); $mapper = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, @@ -318,7 +318,7 @@ class ShipmentRepositoryTest extends \PHPUnit_Framework_TestCase ->method('getEntityId'); $mapper = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, diff --git a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/AddressTest.php b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/AddressTest.php index 3153a6ff4f0..ffeb136782b 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/AddressTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/AddressTest.php @@ -46,7 +46,7 @@ class AddressTest extends \PHPUnit_Framework_TestCase protected $gridPoolMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject */ protected $entitySnapshotMock; @@ -95,7 +95,7 @@ class AddressTest extends \PHPUnit_Framework_TestCase false ); $this->entitySnapshotMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot', [], [], '', diff --git a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Creditmemo/CommentTest.php b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Creditmemo/CommentTest.php index 80ca95e5706..1a0c25004dd 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Creditmemo/CommentTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Creditmemo/CommentTest.php @@ -35,7 +35,7 @@ class CommentTest extends \PHPUnit_Framework_TestCase */ protected $validatorMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject */ protected $entitySnapshotMock; @@ -73,7 +73,7 @@ class CommentTest extends \PHPUnit_Framework_TestCase false ); $this->entitySnapshotMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot', [], [], '', @@ -94,14 +94,14 @@ class CommentTest extends \PHPUnit_Framework_TestCase $this->commentModelMock->expects($this->any())->method('isSaveAllowed')->will($this->returnValue(true)); $relationProcessorMock = $this->getMock( - '\Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor', + '\Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor', [], [], '', false ); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($this->appResourceMock); $contextMock->expects($this->once())->method('getObjectRelationProcessor')->willReturn($relationProcessorMock); diff --git a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Invoice/CommentTest.php b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Invoice/CommentTest.php index ee224febc53..f6f3276422d 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Invoice/CommentTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Invoice/CommentTest.php @@ -35,7 +35,7 @@ class CommentTest extends \PHPUnit_Framework_TestCase */ protected $validatorMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject */ protected $entitySnapshotMock; @@ -73,7 +73,7 @@ class CommentTest extends \PHPUnit_Framework_TestCase false ); $this->entitySnapshotMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot', [], [], '', @@ -93,14 +93,14 @@ class CommentTest extends \PHPUnit_Framework_TestCase $this->commentModelMock->expects($this->any())->method('isSaveAllowed')->will($this->returnValue(true)); $relationProcessorMock = $this->getMock( - '\Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor', + '\Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor', [], [], '', false ); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($this->appResourceMock); $contextMock->expects($this->once())->method('getObjectRelationProcessor')->willReturn($relationProcessorMock); diff --git a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Shipment/CommentTest.php b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Shipment/CommentTest.php index b3e6914f376..b45655d8b85 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Shipment/CommentTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Shipment/CommentTest.php @@ -35,7 +35,7 @@ class CommentTest extends \PHPUnit_Framework_TestCase */ protected $validatorMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject */ protected $entitySnapshotMock; @@ -73,7 +73,7 @@ class CommentTest extends \PHPUnit_Framework_TestCase false ); $this->entitySnapshotMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot', [], [], '', @@ -93,14 +93,14 @@ class CommentTest extends \PHPUnit_Framework_TestCase $this->commentModelMock->expects($this->any())->method('isSaveAllowed')->will($this->returnValue(true)); $relationProcessorMock = $this->getMock( - '\Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor', + '\Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor', [], [], '', false ); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($this->appResourceMock); $contextMock->expects($this->once())->method('getObjectRelationProcessor')->willReturn($relationProcessorMock); diff --git a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Shipment/TrackTest.php b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Shipment/TrackTest.php index 84f97a45036..87b96f2d2e4 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Shipment/TrackTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Shipment/TrackTest.php @@ -35,7 +35,7 @@ class TrackTest extends \PHPUnit_Framework_TestCase */ protected $validatorMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject */ protected $entitySnapshotMock; @@ -73,7 +73,7 @@ class TrackTest extends \PHPUnit_Framework_TestCase false ); $this->entitySnapshotMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot', [], [], '', @@ -93,14 +93,14 @@ class TrackTest extends \PHPUnit_Framework_TestCase $this->trackModelMock->expects($this->any())->method('isSaveAllowed')->will($this->returnValue(true)); $relationProcessorMock = $this->getMock( - '\Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor', + '\Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor', [], [], '', false ); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($this->appResourceMock); $contextMock->expects($this->once())->method('getObjectRelationProcessor')->willReturn($relationProcessorMock); diff --git a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Status/History/CollectionTest.php b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Status/History/CollectionTest.php index 4b78efb0272..ef6984b3abf 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Status/History/CollectionTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Status/History/CollectionTest.php @@ -34,7 +34,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase protected $historyItemMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -48,7 +48,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase */ protected $entityFactoryMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject */ protected $entitySnapshotMock; @@ -74,7 +74,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase ['getConnection', 'getMainTable', 'getTable', '__wakeup'] ); $this->entitySnapshotMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot', [], [], '', diff --git a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Status/HistoryTest.php b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Status/HistoryTest.php index 8a535a7de3f..27a1c50495f 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Status/HistoryTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Order/Status/HistoryTest.php @@ -37,7 +37,7 @@ class HistoryTest extends \PHPUnit_Framework_TestCase protected $validatorMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject */ protected $entitySnapshotMock; @@ -65,7 +65,7 @@ class HistoryTest extends \PHPUnit_Framework_TestCase false ); $this->entitySnapshotMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot', [], [], '', @@ -84,14 +84,14 @@ class HistoryTest extends \PHPUnit_Framework_TestCase ->method('lastInsertId'); $relationProcessorMock = $this->getMock( - '\Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor', + '\Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor', [], [], '', false ); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($this->appResourceMock); $contextMock->expects($this->once())->method('getObjectRelationProcessor')->willReturn($relationProcessorMock); diff --git a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/OrderTest.php b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/OrderTest.php index 62407f45606..b84194d4fc1 100644 --- a/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/OrderTest.php +++ b/app/code/Magento/Sales/Test/Unit/Model/ResourceModel/OrderTest.php @@ -5,7 +5,7 @@ */ namespace Magento\Sales\Test\Unit\Model\ResourceModel; -use Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite; +use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite; use \Magento\Sales\Model\ResourceModel\Order; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper; @@ -59,7 +59,7 @@ class OrderTest extends \PHPUnit_Framework_TestCase */ protected $connectionMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot|\PHPUnit_Framework_MockObject_MockObject */ protected $entitySnapshotMock; @@ -69,7 +69,7 @@ class OrderTest extends \PHPUnit_Framework_TestCase protected $relationCompositeMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor|\PHPUnit_Framework_MockObject_MockObject */ protected $objectRelationProcessorMock; /** @@ -126,27 +126,27 @@ class OrderTest extends \PHPUnit_Framework_TestCase ); $this->salesSequenceMock = $this->getMock('Magento\SalesSequence\Model\Sequence', [], [], '', false); $this->entitySnapshotMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot', [], [], '', false ); $this->relationCompositeMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite', [], [], '', false ); $this->objectRelationProcessorMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor', + 'Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor', [], [], '', false ); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($this->resourceMock); $contextMock->expects($this->once()) ->method('getObjectRelationProcessor') diff --git a/app/code/Magento/Sales/etc/di.xml b/app/code/Magento/Sales/etc/di.xml index 35024a13eaa..e05642b5913 100644 --- a/app/code/Magento/Sales/etc/di.xml +++ b/app/code/Magento/Sales/etc/di.xml @@ -223,7 +223,7 @@ <argument name="connectionName" xsi:type="string">sales</argument> </arguments> </type> - <virtualType name="OrderRelationsComposite" type="Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite"> + <virtualType name="OrderRelationsComposite" type="Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite"> <arguments> <argument name="relationProcessors" xsi:type="array"> <item name="default" xsi:type="object">Magento\Sales\Model\ResourceModel\Order\Relation</item> @@ -235,7 +235,7 @@ <argument name="entityRelationComposite" xsi:type="object">OrderRelationsComposite</argument> </arguments> </type> - <virtualType name="InvoiceRelationsComposite" type="Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite"> + <virtualType name="InvoiceRelationsComposite" type="Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite"> <arguments> <argument name="relationProcessors" xsi:type="array"> <item name="default" xsi:type="object">Magento\Sales\Model\ResourceModel\Order\Invoice\Relation</item> @@ -247,7 +247,7 @@ <argument name="entityRelationComposite" xsi:type="object">InvoiceRelationsComposite</argument> </arguments> </type> - <virtualType name="ShipmentRelationsComposite" type="Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite"> + <virtualType name="ShipmentRelationsComposite" type="Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite"> <arguments> <argument name="relationProcessors" xsi:type="array"> <item name="default" xsi:type="object">Magento\Sales\Model\ResourceModel\Order\Shipment\Relation</item> @@ -259,7 +259,7 @@ <argument name="entityRelationComposite" xsi:type="object">ShipmentRelationsComposite</argument> </arguments> </type> - <virtualType name="CreditmemoRelationsComposite" type="Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite"> + <virtualType name="CreditmemoRelationsComposite" type="Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite"> <arguments> <argument name="relationProcessors" xsi:type="array"> <item name="default" xsi:type="object">Magento\Sales\Model\ResourceModel\Order\Creditmemo\Relation</item> diff --git a/app/code/Magento/SalesRule/Model/Coupon/Massgenerator.php b/app/code/Magento/SalesRule/Model/Coupon/Massgenerator.php index 23d3ee5cd08..00cf6dcb733 100644 --- a/app/code/Magento/SalesRule/Model/Coupon/Massgenerator.php +++ b/app/code/Magento/SalesRule/Model/Coupon/Massgenerator.php @@ -65,7 +65,7 @@ class Massgenerator extends \Magento\Framework\Model\AbstractModel implements * @param \Magento\SalesRule\Model\CouponFactory $couponFactory * @param \Magento\Framework\Stdlib\DateTime\DateTime $date * @param \Magento\Framework\Stdlib\DateTime $dateTime - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -76,7 +76,7 @@ class Massgenerator extends \Magento\Framework\Model\AbstractModel implements \Magento\SalesRule\Model\CouponFactory $couponFactory, \Magento\Framework\Stdlib\DateTime\DateTime $date, \Magento\Framework\Stdlib\DateTime $dateTime, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Coupon.php b/app/code/Magento/SalesRule/Model/ResourceModel/Coupon.php index e4290f3d287..c415cb5dec5 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Coupon.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Coupon.php @@ -12,7 +12,7 @@ use Magento\Framework\Model\AbstractModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Coupon extends \Magento\Framework\Model\ModelResource\Db\AbstractDb implements +class Coupon extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb implements \Magento\SalesRule\Model\Spi\CouponResourceInterface { /** diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Collection.php b/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Collection.php index b728ddaf6f5..19a56cc3e57 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Collection.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Collection.php @@ -6,7 +6,7 @@ namespace Magento\SalesRule\Model\ResourceModel\Coupon; use Magento\Backend\Block\Widget\Grid\Column; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\SalesRule\Model\Rule; /** diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Usage.php b/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Usage.php index 5d401a2199d..1770de0f507 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Usage.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Coupon/Usage.php @@ -10,7 +10,7 @@ namespace Magento\SalesRule\Model\ResourceModel\Coupon; * * @author Magento Core Team <core@magentocommerce.com> */ -class Usage extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Usage extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Constructor diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule.php b/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule.php index 7a204f6ed27..0cb09c67673 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Report/Rule.php @@ -23,7 +23,7 @@ class Rule extends \Magento\Reports\Model\ResourceModel\Report\AbstractReport protected $_updatedatFactory; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate * @param \Magento\Reports\Model\FlagFactory $reportsFlagFactory @@ -34,7 +34,7 @@ class Rule extends \Magento\Reports\Model\ResourceModel\Report\AbstractReport * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\Reports\Model\FlagFactory $reportsFlagFactory, diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Rule.php b/app/code/Magento/SalesRule/Model/ResourceModel/Rule.php index 3121cd6c802..c4fc5d41ece 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Rule.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Rule.php @@ -53,13 +53,13 @@ class Rule extends \Magento\Rule\Model\ResourceModel\AbstractResource protected $_resourceCoupon; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\StringUtils $string * @param \Magento\SalesRule\Model\ResourceModel\Coupon $resourceCoupon * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\StringUtils $string, \Magento\SalesRule\Model\ResourceModel\Coupon $resourceCoupon, $connectionName = null diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Collection.php b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Collection.php index 6c97e9b401b..1fa75ae94d6 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Collection.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Collection.php @@ -45,7 +45,7 @@ class Collection extends \Magento\Rule\Model\ResourceModel\Rule\Collection\Abstr * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Framework\Stdlib\DateTime\DateTime $date * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -54,7 +54,7 @@ class Collection extends \Magento\Rule\Model\ResourceModel\Rule\Collection\Abstr \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\Stdlib\DateTime\DateTime $date, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); $this->_date = $date; diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer.php b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer.php index 978c3dd9a1c..26e84f9b821 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer.php @@ -10,7 +10,7 @@ namespace Magento\SalesRule\Model\ResourceModel\Rule; * * @author Magento Core Team <core@magentocommerce.com> */ -class Customer extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Customer extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Constructor diff --git a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer/Collection.php b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer/Collection.php index 9fda7452168..9d8822b51b2 100644 --- a/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer/Collection.php +++ b/app/code/Magento/SalesRule/Model/ResourceModel/Rule/Customer/Collection.php @@ -10,7 +10,7 @@ namespace Magento\SalesRule\Model\ResourceModel\Rule\Customer; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Collection constructor diff --git a/app/code/Magento/SalesRule/Model/Rule.php b/app/code/Magento/SalesRule/Model/Rule.php index 89efbbd98fe..200a836592c 100644 --- a/app/code/Magento/SalesRule/Model/Rule.php +++ b/app/code/Magento/SalesRule/Model/Rule.php @@ -183,7 +183,7 @@ class Rule extends \Magento\Rule\Model\AbstractModel * @param \Magento\SalesRule\Model\Rule\Condition\Product\CombineFactory $condProdCombineF * @param \Magento\SalesRule\Model\ResourceModel\Coupon\Collection $couponCollection * @param \Magento\Store\Model\StoreManagerInterface $storeManager - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -199,7 +199,7 @@ class Rule extends \Magento\Rule\Model\AbstractModel \Magento\SalesRule\Model\Rule\Condition\Product\CombineFactory $condProdCombineF, \Magento\SalesRule\Model\ResourceModel\Coupon\Collection $couponCollection, \Magento\Store\Model\StoreManagerInterface $storeManager, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/SalesRule/Model/Validator.php b/app/code/Magento/SalesRule/Model/Validator.php index 7f3300c06f7..f69e85931f4 100644 --- a/app/code/Magento/SalesRule/Model/Validator.php +++ b/app/code/Magento/SalesRule/Model/Validator.php @@ -102,7 +102,7 @@ class Validator extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency * @param Validator\Pool $validators * @param \Magento\Framework\Message\ManagerInterface $messageManager - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -117,7 +117,7 @@ class Validator extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Pricing\PriceCurrencyInterface $priceCurrency, \Magento\SalesRule\Model\Validator\Pool $validators, \Magento\Framework\Message\ManagerInterface $messageManager, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/SalesRule/Test/Unit/Model/ResourceModel/RuleTest.php b/app/code/Magento/SalesRule/Test/Unit/Model/ResourceModel/RuleTest.php index a882185d009..e32936a18e0 100644 --- a/app/code/Magento/SalesRule/Test/Unit/Model/ResourceModel/RuleTest.php +++ b/app/code/Magento/SalesRule/Test/Unit/Model/ResourceModel/RuleTest.php @@ -35,7 +35,7 @@ class RuleTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->getMock(); - $context = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\Context') + $context = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\Context') ->disableOriginalConstructor() ->getMock(); $connectionName = 'test'; diff --git a/app/code/Magento/SalesSequence/Model/ResourceModel/Meta.php b/app/code/Magento/SalesSequence/Model/ResourceModel/Meta.php index f7a018afe92..68d2e73be0f 100644 --- a/app/code/Magento/SalesSequence/Model/ResourceModel/Meta.php +++ b/app/code/Magento/SalesSequence/Model/ResourceModel/Meta.php @@ -7,7 +7,7 @@ namespace Magento\SalesSequence\Model\ResourceModel; use Magento\Framework\Exception\LocalizedException as Exception; use Magento\Framework\Exception\NoSuchEntityException; -use Magento\Framework\Model\ModelResource\Db\Context as DatabaseContext; +use Magento\Framework\Model\ResourceModel\Db\Context as DatabaseContext; use Magento\SalesSequence\Model\ResourceModel\Profile as ResourceProfile; use Magento\SalesSequence\Model\MetaFactory; use Magento\SalesSequence\Model\Profile as ModelProfile; @@ -15,7 +15,7 @@ use Magento\SalesSequence\Model\Profile as ModelProfile; /** * Class Meta represents metadata for sequence as sequence table and store id */ -class Meta extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Meta extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Event prefix diff --git a/app/code/Magento/SalesSequence/Model/ResourceModel/Profile.php b/app/code/Magento/SalesSequence/Model/ResourceModel/Profile.php index b23220e2f61..cfb57ae81f3 100644 --- a/app/code/Magento/SalesSequence/Model/ResourceModel/Profile.php +++ b/app/code/Magento/SalesSequence/Model/ResourceModel/Profile.php @@ -6,13 +6,13 @@ namespace Magento\SalesSequence\Model\ResourceModel; use Magento\SalesSequence\Model\Meta as ModelMeta; -use Magento\Framework\Model\ModelResource\Db\Context as DatabaseContext; +use Magento\Framework\Model\ResourceModel\Db\Context as DatabaseContext; use Magento\SalesSequence\Model\ProfileFactory; /** * Class Profile represents profile data for sequence as prefix, suffix, start value etc. */ -class Profile extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Profile extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Event prefix diff --git a/app/code/Magento/SalesSequence/Test/Unit/Model/ResourceModel/MetaTest.php b/app/code/Magento/SalesSequence/Test/Unit/Model/ResourceModel/MetaTest.php index 0874f597419..250eab5f505 100644 --- a/app/code/Magento/SalesSequence/Test/Unit/Model/ResourceModel/MetaTest.php +++ b/app/code/Magento/SalesSequence/Test/Unit/Model/ResourceModel/MetaTest.php @@ -19,7 +19,7 @@ class MetaTest extends \PHPUnit_Framework_TestCase private $connectionMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\Context | \PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\Context | \PHPUnit_Framework_MockObject_MockObject */ private $dbContext; @@ -73,7 +73,7 @@ class MetaTest extends \PHPUnit_Framework_TestCase ['query'] ); $this->dbContext = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\Context', + 'Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', diff --git a/app/code/Magento/SalesSequence/Test/Unit/Model/ResourceModel/ProfileTest.php b/app/code/Magento/SalesSequence/Test/Unit/Model/ResourceModel/ProfileTest.php index 40612f4f27a..8945f7adb86 100644 --- a/app/code/Magento/SalesSequence/Test/Unit/Model/ResourceModel/ProfileTest.php +++ b/app/code/Magento/SalesSequence/Test/Unit/Model/ResourceModel/ProfileTest.php @@ -18,7 +18,7 @@ class ProfileTest extends \PHPUnit_Framework_TestCase private $connectionMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\Context | \PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\Context | \PHPUnit_Framework_MockObject_MockObject */ private $dbContext; @@ -67,7 +67,7 @@ class ProfileTest extends \PHPUnit_Framework_TestCase ['query'] ); $this->dbContext = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\Context', + 'Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', diff --git a/app/code/Magento/Search/Model/Query.php b/app/code/Magento/Search/Model/Query.php index ea34734ca80..894d8d69f36 100644 --- a/app/code/Magento/Search/Model/Query.php +++ b/app/code/Magento/Search/Model/Query.php @@ -13,7 +13,7 @@ use Magento\Search\Model\SearchCollectionFactory as CollectionFactory; use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Framework\Data\Collection\AbstractDb as DbCollection; use Magento\Framework\Model\AbstractModel; -use Magento\Framework\Model\ModelResource\AbstractResource; +use Magento\Framework\Model\ResourceModel\AbstractResource; use Magento\Framework\Registry; use Magento\Store\Model\StoreManagerInterface; @@ -102,7 +102,7 @@ class Query extends AbstractModel implements QueryInterface * @param CollectionFactory $searchCollectionFactory * @param StoreManagerInterface $storeManager * @param ScopeConfigInterface $scopeConfig - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param DbCollection $resourceCollection * @param array $data */ diff --git a/app/code/Magento/Search/Model/ResourceModel/Query.php b/app/code/Magento/Search/Model/ResourceModel/Query.php index 63cbb0723ed..f539cc3bd52 100644 --- a/app/code/Magento/Search/Model/ResourceModel/Query.php +++ b/app/code/Magento/Search/Model/ResourceModel/Query.php @@ -10,7 +10,7 @@ namespace Magento\Search\Model\ResourceModel; use Magento\Framework\DB\Select; use Magento\Framework\Model\AbstractModel; -use Magento\Framework\Model\ModelResource\Db\AbstractDb; +use Magento\Framework\Model\ResourceModel\Db\AbstractDb; use Magento\Search\Model\Query as QueryModel; /** @@ -32,13 +32,13 @@ class Query extends AbstractDb protected $dateTime; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime\DateTime $date * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime\DateTime $date, \Magento\Framework\Stdlib\DateTime $dateTime, $connectionName = null @@ -82,7 +82,7 @@ class Query extends AbstractDb * @param AbstractModel $object * @param int|string $value * @param null|string $field - * @return $this|\Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return $this|\Magento\Framework\Model\ResourceModel\Db\AbstractDb * @SuppressWarnings("unused") */ public function load(AbstractModel $object, $value, $field = null) diff --git a/app/code/Magento/Search/Model/ResourceModel/Query/Collection.php b/app/code/Magento/Search/Model/ResourceModel/Query/Collection.php index f5db36ccfbe..9df7dc3ffae 100644 --- a/app/code/Magento/Search/Model/ResourceModel/Query/Collection.php +++ b/app/code/Magento/Search/Model/ResourceModel/Query/Collection.php @@ -11,7 +11,7 @@ use Magento\Store\Model\Store; * Search query collection * */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Store for filter @@ -42,7 +42,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\DB\Helper $resourceHelper * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory, @@ -52,7 +52,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\DB\Helper $resourceHelper, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_storeManager = $storeManager; $this->_resourceHelper = $resourceHelper; diff --git a/app/code/Magento/Search/Test/Unit/Model/ResourceModel/QueryTest.php b/app/code/Magento/Search/Test/Unit/Model/ResourceModel/QueryTest.php index 6daab0096b8..0d7688bf5a5 100644 --- a/app/code/Magento/Search/Test/Unit/Model/ResourceModel/QueryTest.php +++ b/app/code/Magento/Search/Test/Unit/Model/ResourceModel/QueryTest.php @@ -34,7 +34,7 @@ class QueryTest extends \PHPUnit_Framework_TestCase ->method('getConnection') ->willReturn($this->adapter); - $context = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\Context') + $context = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\Context') ->disableOriginalConstructor() ->getMock(); $context->expects($this->any()) diff --git a/app/code/Magento/SendFriend/Model/ResourceModel/SendFriend.php b/app/code/Magento/SendFriend/Model/ResourceModel/SendFriend.php index ea806bd142b..5a9b520ce46 100644 --- a/app/code/Magento/SendFriend/Model/ResourceModel/SendFriend.php +++ b/app/code/Magento/SendFriend/Model/ResourceModel/SendFriend.php @@ -10,7 +10,7 @@ namespace Magento\SendFriend\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class SendFriend extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class SendFriend extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize connection and table diff --git a/app/code/Magento/SendFriend/Model/ResourceModel/SendFriend/Collection.php b/app/code/Magento/SendFriend/Model/ResourceModel/SendFriend/Collection.php index dac57dc3ee4..fa3a1c614f5 100644 --- a/app/code/Magento/SendFriend/Model/ResourceModel/SendFriend/Collection.php +++ b/app/code/Magento/SendFriend/Model/ResourceModel/SendFriend/Collection.php @@ -10,7 +10,7 @@ namespace Magento\SendFriend\Model\ResourceModel\SendFriend; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Init resource collection diff --git a/app/code/Magento/SendFriend/Model/SendFriend.php b/app/code/Magento/SendFriend/Model/SendFriend.php index 831512596ea..7a89d671ce8 100644 --- a/app/code/Magento/SendFriend/Model/SendFriend.php +++ b/app/code/Magento/SendFriend/Model/SendFriend.php @@ -119,7 +119,7 @@ class SendFriend extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $remoteAddress * @param \Magento\Framework\Stdlib\CookieManagerInterface $cookieManager * @param \Magento\Framework\Translate\Inline\StateInterface $inlineTranslation - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -135,7 +135,7 @@ class SendFriend extends \Magento\Framework\Model\AbstractModel \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $remoteAddress, \Magento\Framework\Stdlib\CookieManagerInterface $cookieManager, \Magento\Framework\Translate\Inline\StateInterface $inlineTranslation, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/MassPrintShippingLabel.php b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/MassPrintShippingLabel.php index 29e19741b06..1a1790149b7 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/MassPrintShippingLabel.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Order/Shipment/MassPrintShippingLabel.php @@ -9,7 +9,7 @@ namespace Magento\Shipping\Controller\Adminhtml\Order\Shipment; use Magento\Backend\App\Action; use Magento\Framework\App\ResponseInterface; use Magento\Framework\App\Filesystem\DirectoryList; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Ui\Component\MassAction\Filter; use Magento\Backend\App\Action\Context; use Magento\Shipping\Model\Shipping\LabelGenerator; diff --git a/app/code/Magento/Shipping/Controller/Adminhtml/Shipment/MassPrintShippingLabel.php b/app/code/Magento/Shipping/Controller/Adminhtml/Shipment/MassPrintShippingLabel.php index 5e4e8b8b716..7fba9c99360 100644 --- a/app/code/Magento/Shipping/Controller/Adminhtml/Shipment/MassPrintShippingLabel.php +++ b/app/code/Magento/Shipping/Controller/Adminhtml/Shipment/MassPrintShippingLabel.php @@ -9,7 +9,7 @@ namespace Magento\Shipping\Controller\Adminhtml\Shipment; use Magento\Backend\App\Action; use Magento\Framework\App\ResponseInterface; use Magento\Framework\App\Filesystem\DirectoryList; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Ui\Component\MassAction\Filter; use Magento\Backend\App\Action\Context; use Magento\Shipping\Model\Shipping\LabelGenerator; diff --git a/app/code/Magento/Shipping/Model/Order/Track.php b/app/code/Magento/Shipping/Model/Order/Track.php index 9aab16e7289..c707a3d6dc9 100644 --- a/app/code/Magento/Shipping/Model/Order/Track.php +++ b/app/code/Magento/Shipping/Model/Order/Track.php @@ -37,7 +37,7 @@ class Track extends \Magento\Sales\Model\Order\Shipment\Track * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Sales\Model\Order\ShipmentRepository $shipmentRepository * @param \Magento\Shipping\Model\CarrierFactory $carrierFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @@ -51,7 +51,7 @@ class Track extends \Magento\Sales\Model\Order\Shipment\Track \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Sales\Model\Order\ShipmentRepository $shipmentRepository, \Magento\Shipping\Model\CarrierFactory $carrierFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Category.php b/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Category.php index 3642359663d..75e853c13c6 100644 --- a/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Category.php +++ b/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Category.php @@ -12,7 +12,7 @@ use Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator; * * @author Magento Core Team <core@magentocommerce.com> */ -class Category extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Category extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Collection Zend Db select @@ -39,13 +39,13 @@ class Category extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_categoryResource; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Catalog\Model\ResourceModel\Category $categoryResource * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Catalog\Model\ResourceModel\Category $categoryResource, $connectionName = null diff --git a/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Product.php b/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Product.php index 9a02e012a01..5a93ef13583 100644 --- a/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Product.php +++ b/app/code/Magento/Sitemap/Model/ResourceModel/Catalog/Product.php @@ -13,7 +13,7 @@ use Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator; * @author Magento Core Team <core@magentocommerce.com> * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class Product extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Product extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { const NOT_SELECTED_IMAGE = 'no_selection'; @@ -83,7 +83,7 @@ class Product extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_mediaConfig; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Sitemap\Helper\Data $sitemapData * @param \Magento\Catalog\Model\ResourceModel\Product $productResource * @param \Magento\Store\Model\StoreManagerInterface $storeManager @@ -96,7 +96,7 @@ class Product extends \Magento\Framework\Model\ModelResource\Db\AbstractDb * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Sitemap\Helper\Data $sitemapData, \Magento\Catalog\Model\ResourceModel\Product $productResource, \Magento\Store\Model\StoreManagerInterface $storeManager, diff --git a/app/code/Magento/Sitemap/Model/ResourceModel/Cms/Page.php b/app/code/Magento/Sitemap/Model/ResourceModel/Cms/Page.php index 34879578665..07640bb6a7f 100644 --- a/app/code/Magento/Sitemap/Model/ResourceModel/Cms/Page.php +++ b/app/code/Magento/Sitemap/Model/ResourceModel/Cms/Page.php @@ -10,7 +10,7 @@ namespace Magento\Sitemap\Model\ResourceModel\Cms; * * @author Magento Core Team <core@magentocommerce.com> */ -class Page extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Page extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Init resource model (catalog/category) diff --git a/app/code/Magento/Sitemap/Model/ResourceModel/Sitemap.php b/app/code/Magento/Sitemap/Model/ResourceModel/Sitemap.php index 63daf336eed..b3ff7ce4838 100644 --- a/app/code/Magento/Sitemap/Model/ResourceModel/Sitemap.php +++ b/app/code/Magento/Sitemap/Model/ResourceModel/Sitemap.php @@ -10,7 +10,7 @@ namespace Magento\Sitemap\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Sitemap extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Sitemap extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Init resource model diff --git a/app/code/Magento/Sitemap/Model/ResourceModel/Sitemap/Collection.php b/app/code/Magento/Sitemap/Model/ResourceModel/Sitemap/Collection.php index d6a575daf84..b470759b890 100644 --- a/app/code/Magento/Sitemap/Model/ResourceModel/Sitemap/Collection.php +++ b/app/code/Magento/Sitemap/Model/ResourceModel/Sitemap/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Sitemap\Model\ResourceModel\Sitemap; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Init collection diff --git a/app/code/Magento/Sitemap/Model/Sitemap.php b/app/code/Magento/Sitemap/Model/Sitemap.php index 9ec5c4b988b..722c823d3f0 100644 --- a/app/code/Magento/Sitemap/Model/Sitemap.php +++ b/app/code/Magento/Sitemap/Model/Sitemap.php @@ -159,7 +159,7 @@ class Sitemap extends \Magento\Framework\Model\AbstractModel * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\App\RequestInterface $request * @param \Magento\Framework\Stdlib\DateTime $dateTime - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -177,7 +177,7 @@ class Sitemap extends \Magento\Framework\Model\AbstractModel \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\App\RequestInterface $request, \Magento\Framework\Stdlib\DateTime $dateTime, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Store/Model/Group.php b/app/code/Magento/Store/Model/Group.php index be5d7603d9d..7ef0dd37d50 100644 --- a/app/code/Magento/Store/Model/Group.php +++ b/app/code/Magento/Store/Model/Group.php @@ -103,7 +103,7 @@ class Group extends \Magento\Framework\Model\AbstractExtensibleModel implements * @param \Magento\Config\Model\ResourceModel\Config\Data $configDataResource * @param \Magento\Store\Model\Store $store * @param \Magento\Store\Model\StoreManagerInterface $storeManager - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -116,7 +116,7 @@ class Group extends \Magento\Framework\Model\AbstractExtensibleModel implements \Magento\Config\Model\ResourceModel\Config\Data $configDataResource, \Magento\Store\Model\ResourceModel\Store\CollectionFactory $storeListFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Store/Model/ResourceModel/Config/Collection/Scoped.php b/app/code/Magento/Store/Model/ResourceModel/Config/Collection/Scoped.php index 21ea5ee9090..3e37e1ad8d6 100644 --- a/app/code/Magento/Store/Model/ResourceModel/Config/Collection/Scoped.php +++ b/app/code/Magento/Store/Model/ResourceModel/Config/Collection/Scoped.php @@ -7,7 +7,7 @@ */ namespace Magento\Store\Model\ResourceModel\Config\Collection; -class Scoped extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Scoped extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Scope to filter by diff --git a/app/code/Magento/Store/Model/ResourceModel/Group.php b/app/code/Magento/Store/Model/ResourceModel/Group.php index b46679e118e..c3365055aa4 100644 --- a/app/code/Magento/Store/Model/ResourceModel/Group.php +++ b/app/code/Magento/Store/Model/ResourceModel/Group.php @@ -8,7 +8,7 @@ namespace Magento\Store\Model\ResourceModel; /** * Store group resource model */ -class Group extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Group extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Define main table diff --git a/app/code/Magento/Store/Model/ResourceModel/Group/Collection.php b/app/code/Magento/Store/Model/ResourceModel/Group/Collection.php index b452660b04b..805b90c291a 100644 --- a/app/code/Magento/Store/Model/ResourceModel/Group/Collection.php +++ b/app/code/Magento/Store/Model/ResourceModel/Group/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Store\Model\ResourceModel\Group; /** * Store group collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Define resource model diff --git a/app/code/Magento/Store/Model/ResourceModel/Store.php b/app/code/Magento/Store/Model/ResourceModel/Store.php index 58d74f0173e..fec1340afe6 100644 --- a/app/code/Magento/Store/Model/ResourceModel/Store.php +++ b/app/code/Magento/Store/Model/ResourceModel/Store.php @@ -8,7 +8,7 @@ namespace Magento\Store\Model\ResourceModel; /** * Store Resource Model */ -class Store extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Store extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Framework\App\Cache\Type\Config @@ -16,11 +16,11 @@ class Store extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $configCache; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\App\Cache\Type\Config $configCacheType */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\App\Cache\Type\Config $configCacheType ) { $this->configCache = $configCacheType; diff --git a/app/code/Magento/Store/Model/ResourceModel/Store/Collection.php b/app/code/Magento/Store/Model/ResourceModel/Store/Collection.php index 30852811667..ebef78956a4 100644 --- a/app/code/Magento/Store/Model/ResourceModel/Store/Collection.php +++ b/app/code/Magento/Store/Model/ResourceModel/Store/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Store\Model\ResourceModel\Store; /** * Stores collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Name prefix of events that are dispatched by model diff --git a/app/code/Magento/Store/Model/ResourceModel/Website.php b/app/code/Magento/Store/Model/ResourceModel/Website.php index 884a50958e6..43b2612d216 100644 --- a/app/code/Magento/Store/Model/ResourceModel/Website.php +++ b/app/code/Magento/Store/Model/ResourceModel/Website.php @@ -11,7 +11,7 @@ namespace Magento\Store\Model\ResourceModel; /** * Website Resource Model */ -class Website extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Website extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Define main table diff --git a/app/code/Magento/Store/Model/ResourceModel/Website/Collection.php b/app/code/Magento/Store/Model/ResourceModel/Website/Collection.php index 6eb5383fb8b..419350a9031 100644 --- a/app/code/Magento/Store/Model/ResourceModel/Website/Collection.php +++ b/app/code/Magento/Store/Model/ResourceModel/Website/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Store\Model\ResourceModel\Website; /** * Websites collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Map field to alias diff --git a/app/code/Magento/Store/Model/Website.php b/app/code/Magento/Store/Model/Website.php index b04ab411d56..375064ca57f 100644 --- a/app/code/Magento/Store/Model/Website.php +++ b/app/code/Magento/Store/Model/Website.php @@ -171,7 +171,7 @@ class Website extends \Magento\Framework\Model\AbstractExtensibleModel implement * @param \Magento\Store\Model\WebsiteFactory $websiteFactory * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -188,7 +188,7 @@ class Website extends \Magento\Framework\Model\AbstractExtensibleModel implement \Magento\Store\Model\WebsiteFactory $websiteFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Directory\Model\CurrencyFactory $currencyFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Swatches/Model/ResourceModel/Swatch.php b/app/code/Magento/Swatches/Model/ResourceModel/Swatch.php index b361dfa6860..fa230bf8eae 100644 --- a/app/code/Magento/Swatches/Model/ResourceModel/Swatch.php +++ b/app/code/Magento/Swatches/Model/ResourceModel/Swatch.php @@ -10,7 +10,7 @@ namespace Magento\Swatches\Model\ResourceModel; * @codeCoverageIgnore * Swatch Resource Model */ -class Swatch extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Swatch extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize resource model diff --git a/app/code/Magento/Swatches/Model/ResourceModel/Swatch/Collection.php b/app/code/Magento/Swatches/Model/ResourceModel/Swatch/Collection.php index 28b800ecc9c..4099c234753 100644 --- a/app/code/Magento/Swatches/Model/ResourceModel/Swatch/Collection.php +++ b/app/code/Magento/Swatches/Model/ResourceModel/Swatch/Collection.php @@ -9,7 +9,7 @@ namespace Magento\Swatches\Model\ResourceModel\Swatch; * @codeCoverageIgnore * Swatch Collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Standard collection initialization diff --git a/app/code/Magento/Tax/Model/Calculation/Rate.php b/app/code/Magento/Tax/Model/Calculation/Rate.php index 31f7dbce5e0..0eca26d8eff 100644 --- a/app/code/Magento/Tax/Model/Calculation/Rate.php +++ b/app/code/Magento/Tax/Model/Calculation/Rate.php @@ -72,7 +72,7 @@ class Rate extends \Magento\Framework\Model\AbstractExtensibleModel implements T * @param \Magento\Directory\Model\RegionFactory $regionFactory * @param Rate\TitleFactory $taxTitleFactory * @param Region $directoryRegion - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -85,7 +85,7 @@ class Rate extends \Magento\Framework\Model\AbstractExtensibleModel implements T \Magento\Directory\Model\RegionFactory $regionFactory, \Magento\Tax\Model\Calculation\Rate\TitleFactory $taxTitleFactory, Region $directoryRegion, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Tax/Model/Calculation/Rule.php b/app/code/Magento/Tax/Model/Calculation/Rule.php index 25acde57bec..665a3d8f378 100644 --- a/app/code/Magento/Tax/Model/Calculation/Rule.php +++ b/app/code/Magento/Tax/Model/Calculation/Rule.php @@ -70,7 +70,7 @@ class Rule extends \Magento\Framework\Model\AbstractExtensibleModel implements T * @param \Magento\Tax\Model\ClassModel $taxClass * @param \Magento\Tax\Model\Calculation $calculation * @param Rule\Validator $validator - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -83,7 +83,7 @@ class Rule extends \Magento\Framework\Model\AbstractExtensibleModel implements T \Magento\Tax\Model\ClassModel $taxClass, \Magento\Tax\Model\Calculation $calculation, \Magento\Tax\Model\Calculation\Rule\Validator $validator, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Tax/Model/ClassModel.php b/app/code/Magento/Tax/Model/ClassModel.php index 17129676f34..30f2507b77f 100644 --- a/app/code/Magento/Tax/Model/ClassModel.php +++ b/app/code/Magento/Tax/Model/ClassModel.php @@ -48,7 +48,7 @@ class ClassModel extends \Magento\Framework\Model\AbstractExtensibleModel implem * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory * @param TaxClass\Factory $classFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -58,7 +58,7 @@ class ClassModel extends \Magento\Framework\Model\AbstractExtensibleModel implem \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, \Magento\Tax\Model\TaxClass\Factory $classFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Tax/Model/Config/Notification.php b/app/code/Magento/Tax/Model/Config/Notification.php index 1c830caee47..1373b465984 100644 --- a/app/code/Magento/Tax/Model/Config/Notification.php +++ b/app/code/Magento/Tax/Model/Config/Notification.php @@ -22,7 +22,7 @@ class Notification extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Config\Model\ResourceModel\Config $resourceConfig - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -31,7 +31,7 @@ class Notification extends \Magento\Framework\App\Config\Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Config\Model\ResourceModel\Config $resourceConfig, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Tax/Model/Config/TaxClass.php b/app/code/Magento/Tax/Model/Config/TaxClass.php index 2d2503c8c3e..95b643be212 100644 --- a/app/code/Magento/Tax/Model/Config/TaxClass.php +++ b/app/code/Magento/Tax/Model/Config/TaxClass.php @@ -26,7 +26,7 @@ class TaxClass extends \Magento\Framework\App\Config\Value * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Config\Model\ResourceModel\Config $resourceConfig * @param \Magento\Eav\Model\Entity\AttributeFactory $attributeFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -36,7 +36,7 @@ class TaxClass extends \Magento\Framework\App\Config\Value \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Config\Model\ResourceModel\Config $resourceConfig, \Magento\Eav\Model\Entity\AttributeFactory $attributeFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Tax/Model/ResourceModel/Calculation.php b/app/code/Magento/Tax/Model/ResourceModel/Calculation.php index 54a76ba286a..a707b547680 100644 --- a/app/code/Magento/Tax/Model/ResourceModel/Calculation.php +++ b/app/code/Magento/Tax/Model/ResourceModel/Calculation.php @@ -10,7 +10,7 @@ */ namespace Magento\Tax\Model\ResourceModel; -class Calculation extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Calculation extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Store ISO 3166-1 alpha-2 USA country code @@ -44,13 +44,13 @@ class Calculation extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_storeManager; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Tax\Helper\Data $taxData * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Tax\Helper\Data $taxData, \Magento\Store\Model\StoreManagerInterface $storeManager, $connectionName = null diff --git a/app/code/Magento/Tax/Model/ResourceModel/Calculation/Collection.php b/app/code/Magento/Tax/Model/ResourceModel/Calculation/Collection.php index 1cab961c698..ab2cdde74be 100644 --- a/app/code/Magento/Tax/Model/ResourceModel/Calculation/Collection.php +++ b/app/code/Magento/Tax/Model/ResourceModel/Calculation/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Tax\Model\ResourceModel\Calculation; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource initialization diff --git a/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate.php b/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate.php index fbc6436fcab..862d7c7d5c1 100644 --- a/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate.php +++ b/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate.php @@ -11,7 +11,7 @@ */ namespace Magento\Tax\Model\ResourceModel\Calculation; -class Rate extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Rate extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate/Collection.php b/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate/Collection.php index 7c07b96e9f6..646c1dc8b59 100644 --- a/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate/Collection.php +++ b/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate/Collection.php @@ -9,7 +9,7 @@ */ namespace Magento\Tax\Model\ResourceModel\Calculation\Rate; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Value of fetched from DB of rules per cycle @@ -28,7 +28,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -37,7 +37,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_storeManager = $storeManager; parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); diff --git a/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate/Title.php b/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate/Title.php index 2a8554ecaca..320b69aa8df 100644 --- a/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate/Title.php +++ b/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate/Title.php @@ -10,7 +10,7 @@ namespace Magento\Tax\Model\ResourceModel\Calculation\Rate; * * @author Magento Core Team <core@magentocommerce.com> */ -class Title extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Title extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate/Title/Collection.php b/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate/Title/Collection.php index 590c8f4588b..77685615aca 100644 --- a/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate/Title/Collection.php +++ b/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rate/Title/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Tax\Model\ResourceModel\Calculation\Rate\Title; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource initialization diff --git a/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rule.php b/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rule.php index c5b9fab3c66..33cf510d088 100644 --- a/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rule.php +++ b/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rule.php @@ -10,7 +10,7 @@ namespace Magento\Tax\Model\ResourceModel\Calculation; * * @author Magento Core Team <core@magentocommerce.com> */ -class Rule extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Rule extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rule/Collection.php b/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rule/Collection.php index c37524d8b1d..c469c26435a 100644 --- a/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rule/Collection.php +++ b/app/code/Magento/Tax/Model/ResourceModel/Calculation/Rule/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Tax\Model\ResourceModel\Calculation\Rule; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource initialization diff --git a/app/code/Magento/Tax/Model/ResourceModel/Report/Tax.php b/app/code/Magento/Tax/Model/ResourceModel/Report/Tax.php index ab49aef6c27..5f8be548f3f 100644 --- a/app/code/Magento/Tax/Model/ResourceModel/Report/Tax.php +++ b/app/code/Magento/Tax/Model/ResourceModel/Report/Tax.php @@ -22,7 +22,7 @@ class Tax extends \Magento\Reports\Model\ResourceModel\Report\AbstractReport protected $_updatedAtFactory; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate * @param \Magento\Reports\Model\FlagFactory $reportsFlagFactory @@ -33,7 +33,7 @@ class Tax extends \Magento\Reports\Model\ResourceModel\Report\AbstractReport * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\Reports\Model\FlagFactory $reportsFlagFactory, diff --git a/app/code/Magento/Tax/Model/ResourceModel/Sales/Order/Tax.php b/app/code/Magento/Tax/Model/ResourceModel/Sales/Order/Tax.php index 22d0b739968..82130cbb126 100644 --- a/app/code/Magento/Tax/Model/ResourceModel/Sales/Order/Tax.php +++ b/app/code/Magento/Tax/Model/ResourceModel/Sales/Order/Tax.php @@ -10,7 +10,7 @@ namespace Magento\Tax\Model\ResourceModel\Sales\Order; * * @author Magento Core Team <core@magentocommerce.com> */ -class Tax extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Tax extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Tax/Model/ResourceModel/Sales/Order/Tax/Collection.php b/app/code/Magento/Tax/Model/ResourceModel/Sales/Order/Tax/Collection.php index 32ee5a6774d..72dc76bd6e8 100644 --- a/app/code/Magento/Tax/Model/ResourceModel/Sales/Order/Tax/Collection.php +++ b/app/code/Magento/Tax/Model/ResourceModel/Sales/Order/Tax/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Tax\Model\ResourceModel\Sales\Order\Tax; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource initialization diff --git a/app/code/Magento/Tax/Model/ResourceModel/TaxClass.php b/app/code/Magento/Tax/Model/ResourceModel/TaxClass.php index 663a22fa265..cfed10f0917 100644 --- a/app/code/Magento/Tax/Model/ResourceModel/TaxClass.php +++ b/app/code/Magento/Tax/Model/ResourceModel/TaxClass.php @@ -10,7 +10,7 @@ namespace Magento\Tax\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class TaxClass extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class TaxClass extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Tax/Model/ResourceModel/TaxClass/Collection.php b/app/code/Magento/Tax/Model/ResourceModel/TaxClass/Collection.php index b2337776283..82e6b03f634 100644 --- a/app/code/Magento/Tax/Model/ResourceModel/TaxClass/Collection.php +++ b/app/code/Magento/Tax/Model/ResourceModel/TaxClass/Collection.php @@ -11,7 +11,7 @@ */ namespace Magento\Tax\Model\ResourceModel\TaxClass; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Resource initialization diff --git a/app/code/Magento/Tax/Model/TaxClass/AbstractType.php b/app/code/Magento/Tax/Model/TaxClass/AbstractType.php index 11adba60471..351c1452be3 100644 --- a/app/code/Magento/Tax/Model/TaxClass/AbstractType.php +++ b/app/code/Magento/Tax/Model/TaxClass/AbstractType.php @@ -36,7 +36,7 @@ abstract class AbstractType extends \Magento\Framework\DataObject implements Typ /** * Get Collection of Tax Rules that are assigned to this tax class * - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ public function getAssignedToRules() { diff --git a/app/code/Magento/Tax/Model/TaxClass/Type/TypeInterface.php b/app/code/Magento/Tax/Model/TaxClass/Type/TypeInterface.php index bed61ea8216..61f55331d5f 100644 --- a/app/code/Magento/Tax/Model/TaxClass/Type/TypeInterface.php +++ b/app/code/Magento/Tax/Model/TaxClass/Type/TypeInterface.php @@ -21,7 +21,7 @@ interface TypeInterface /** * Get Collection of Tax Rules that are assigned to this tax class * - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ public function getAssignedToRules(); diff --git a/app/code/Magento/Tax/Test/Unit/Model/Calculation/RateTest.php b/app/code/Magento/Tax/Test/Unit/Model/Calculation/RateTest.php index a3edcdcf9a3..e6ff4cbd6f6 100644 --- a/app/code/Magento/Tax/Test/Unit/Model/Calculation/RateTest.php +++ b/app/code/Magento/Tax/Test/Unit/Model/Calculation/RateTest.php @@ -24,7 +24,7 @@ class RateTest extends \PHPUnit_Framework_TestCase { $this->objectHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); $this->resourceMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\AbstractResource', + 'Magento\Framework\Model\ResourceModel\AbstractResource', ['_construct', 'getConnection', 'getIdFieldName', 'beginTransaction', 'rollBack'], [], diff --git a/app/code/Magento/Tax/Test/Unit/Model/Config/TaxClassTest.php b/app/code/Magento/Tax/Test/Unit/Model/Config/TaxClassTest.php index 6accac40069..633c0437720 100644 --- a/app/code/Magento/Tax/Test/Unit/Model/Config/TaxClassTest.php +++ b/app/code/Magento/Tax/Test/Unit/Model/Config/TaxClassTest.php @@ -37,7 +37,7 @@ class TaxClassTest extends \PHPUnit_Framework_TestCase ->method('create') ->will($this->returnValue($attributeMock)); - $resourceMock = $this->getMockBuilder('\Magento\Framework\Model\ModelResource\Db\AbstractDb') + $resourceMock = $this->getMockBuilder('\Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->setMethods(['beginTransaction', '_construct', 'getIdFieldName', 'addCommitCallback', 'commit', 'save', '__wakeup', ]) diff --git a/app/code/Magento/Tax/Test/Unit/Model/TaxClass/Type/ProductTest.php b/app/code/Magento/Tax/Test/Unit/Model/TaxClass/Type/ProductTest.php index 0ddf456a5ee..04a9a3b2a1e 100644 --- a/app/code/Magento/Tax/Test/Unit/Model/TaxClass/Type/ProductTest.php +++ b/app/code/Magento/Tax/Test/Unit/Model/TaxClass/Type/ProductTest.php @@ -9,7 +9,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase { public function testIsAssignedToObjects() { - $collectionClassName = 'Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection'; + $collectionClassName = 'Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection'; $collectionMock = $this->getMockBuilder($collectionClassName) ->setMethods(['addAttributeToFilter', 'getSize'])->disableOriginalConstructor()->getMock(); $collectionMock->expects($this->once())->method('addAttributeToFilter') diff --git a/app/code/Magento/Theme/Model/Design.php b/app/code/Magento/Theme/Model/Design.php index b9547c3a92f..7a982eefe56 100644 --- a/app/code/Magento/Theme/Model/Design.php +++ b/app/code/Magento/Theme/Model/Design.php @@ -7,7 +7,7 @@ namespace Magento\Theme\Model; use Magento\Framework\App\DesignInterface; use Magento\Framework\Model\AbstractModel; -use Magento\Framework\Model\ModelResource\AbstractResource; +use Magento\Framework\Model\ResourceModel\AbstractResource; use Magento\Framework\DataObject\IdentityInterface; /** diff --git a/app/code/Magento/Theme/Model/Design/Backend/Exceptions.php b/app/code/Magento/Theme/Model/Design/Backend/Exceptions.php index 948f64ef6a7..e2fe1ac8f19 100644 --- a/app/code/Magento/Theme/Model/Design/Backend/Exceptions.php +++ b/app/code/Magento/Theme/Model/Design/Backend/Exceptions.php @@ -23,7 +23,7 @@ class Exceptions extends ArraySerialized * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\View\DesignInterface $design - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -32,7 +32,7 @@ class Exceptions extends ArraySerialized \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\View\DesignInterface $design, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Theme/Model/Design/Backend/Theme.php b/app/code/Magento/Theme/Model/Design/Backend/Theme.php index 5e85a547c37..ae2af06192c 100644 --- a/app/code/Magento/Theme/Model/Design/Backend/Theme.php +++ b/app/code/Magento/Theme/Model/Design/Backend/Theme.php @@ -23,7 +23,7 @@ class Theme extends Value * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config * @param \Magento\Framework\View\DesignInterface $design - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -32,7 +32,7 @@ class Theme extends Value \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\View\DesignInterface $design, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Theme/Model/ResourceModel/Design.php b/app/code/Magento/Theme/Model/ResourceModel/Design.php index 74e111ce5d3..8743ff1b7bd 100644 --- a/app/code/Magento/Theme/Model/ResourceModel/Design.php +++ b/app/code/Magento/Theme/Model/ResourceModel/Design.php @@ -4,7 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile namespace Magento\Theme\Model\ResourceModel; use Magento\Framework\Stdlib\DateTime; @@ -14,7 +13,7 @@ use Magento\Framework\Stdlib\DateTime; * * @author Magento Core Team <core@magentocommerce.com> */ -class Design extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Design extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var DateTime @@ -22,12 +21,12 @@ class Design extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $dateTime; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param DateTime $dateTime * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, DateTime $dateTime, $connectionName = null ) { diff --git a/app/code/Magento/Theme/Model/ResourceModel/Design/Collection.php b/app/code/Magento/Theme/Model/ResourceModel/Design/Collection.php index dea2b172830..bc79a10f113 100644 --- a/app/code/Magento/Theme/Model/ResourceModel/Design/Collection.php +++ b/app/code/Magento/Theme/Model/ResourceModel/Design/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Theme\Model\ResourceModel\Design; /** * Core Design resource collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * @var \Magento\Framework\Stdlib\DateTime @@ -22,7 +22,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -31,7 +31,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\Stdlib\DateTime $dateTime, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->dateTime = $dateTime; parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); diff --git a/app/code/Magento/Theme/Model/ResourceModel/Theme.php b/app/code/Magento/Theme/Model/ResourceModel/Theme.php index c185e5f1666..e93820180a0 100644 --- a/app/code/Magento/Theme/Model/ResourceModel/Theme.php +++ b/app/code/Magento/Theme/Model/ResourceModel/Theme.php @@ -8,7 +8,7 @@ namespace Magento\Theme\Model\ResourceModel; /** * Theme resource model */ -class Theme extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Theme extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Theme/Model/ResourceModel/Theme/Collection.php b/app/code/Magento/Theme/Model/ResourceModel/Theme/Collection.php index db070283bcf..6ca5a367cb7 100644 --- a/app/code/Magento/Theme/Model/ResourceModel/Theme/Collection.php +++ b/app/code/Magento/Theme/Model/ResourceModel/Theme/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Theme\Model\ResourceModel\Theme; /** * Theme collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection implements +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection implements \Magento\Framework\View\Design\Theme\Label\ListInterface, \Magento\Framework\View\Design\Theme\ListInterface { diff --git a/app/code/Magento/Theme/Model/ResourceModel/Theme/Customization/Update.php b/app/code/Magento/Theme/Model/ResourceModel/Theme/Customization/Update.php index 35b8f6f3b57..a0aa877a368 100644 --- a/app/code/Magento/Theme/Model/ResourceModel/Theme/Customization/Update.php +++ b/app/code/Magento/Theme/Model/ResourceModel/Theme/Customization/Update.php @@ -8,7 +8,7 @@ namespace Magento\Theme\Model\ResourceModel\Theme\Customization; /** * Theme customization link resource model */ -class Update extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Update extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Theme/Model/ResourceModel/Theme/File.php b/app/code/Magento/Theme/Model/ResourceModel/Theme/File.php index 239d8a75fd4..0e5ebf11d2f 100644 --- a/app/code/Magento/Theme/Model/ResourceModel/Theme/File.php +++ b/app/code/Magento/Theme/Model/ResourceModel/Theme/File.php @@ -8,7 +8,7 @@ namespace Magento\Theme\Model\ResourceModel\Theme; /** * Theme files resource model */ -class File extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class File extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Resource initialization diff --git a/app/code/Magento/Theme/Model/ResourceModel/Theme/File/Collection.php b/app/code/Magento/Theme/Model/ResourceModel/Theme/File/Collection.php index ebb7df34c7c..ad78ceddba8 100644 --- a/app/code/Magento/Theme/Model/ResourceModel/Theme/File/Collection.php +++ b/app/code/Magento/Theme/Model/ResourceModel/Theme/File/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Theme\Model\ResourceModel\Theme\File; /** * Theme files collection */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection implements +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection implements \Magento\Framework\View\Design\Theme\File\CollectionInterface { /** diff --git a/app/code/Magento/Theme/Model/Theme/File.php b/app/code/Magento/Theme/Model/Theme/File.php index cd28e80b67d..e3b5d723cf1 100644 --- a/app/code/Magento/Theme/Model/Theme/File.php +++ b/app/code/Magento/Theme/Model/Theme/File.php @@ -53,7 +53,7 @@ class File extends AbstractModel implements FileInterface * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\View\Design\Theme\FlyweightFactory $themeFactory * @param \Magento\Framework\View\Design\Theme\Customization\FileServiceFactory $fileServiceFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -62,7 +62,7 @@ class File extends AbstractModel implements FileInterface \Magento\Framework\Registry $registry, \Magento\Framework\View\Design\Theme\FlyweightFactory $themeFactory, \Magento\Framework\View\Design\Theme\Customization\FileServiceFactory $fileServiceFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Theme/Test/Unit/Model/DesignTest.php b/app/code/Magento/Theme/Test/Unit/Model/DesignTest.php index 1bd3ea40aba..ae92f434c39 100644 --- a/app/code/Magento/Theme/Test/Unit/Model/DesignTest.php +++ b/app/code/Magento/Theme/Test/Unit/Model/DesignTest.php @@ -39,7 +39,7 @@ class DesignTest extends \PHPUnit_Framework_TestCase protected $dateTime; /** - * @var \Magento\Framework\Model\ModelResource\AbstractResource|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\AbstractResource|\PHPUnit_Framework_MockObject_MockObject */ protected $resource; diff --git a/app/code/Magento/Translation/Model/ResourceModel/StringUtils.php b/app/code/Magento/Translation/Model/ResourceModel/StringUtils.php index 351334ad772..c743e7c17a5 100644 --- a/app/code/Magento/Translation/Model/ResourceModel/StringUtils.php +++ b/app/code/Magento/Translation/Model/ResourceModel/StringUtils.php @@ -5,7 +5,7 @@ */ namespace Magento\Translation\Model\ResourceModel; -class StringUtils extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class StringUtils extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Framework\Locale\ResolverInterface @@ -23,14 +23,14 @@ class StringUtils extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $scope; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Locale\ResolverInterface $localeResolver * @param \Magento\Framework\App\ScopeResolverInterface $scopeResolver * @param string $connectionName * @param string|null $scope */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Locale\ResolverInterface $localeResolver, \Magento\Framework\App\ScopeResolverInterface $scopeResolver, $connectionName = null, diff --git a/app/code/Magento/Translation/Model/ResourceModel/Translate.php b/app/code/Magento/Translation/Model/ResourceModel/Translate.php index d45d45c6e8f..6f545b96bd0 100644 --- a/app/code/Magento/Translation/Model/ResourceModel/Translate.php +++ b/app/code/Magento/Translation/Model/ResourceModel/Translate.php @@ -5,7 +5,7 @@ */ namespace Magento\Translation\Model\ResourceModel; -class Translate extends \Magento\Framework\Model\ModelResource\Db\AbstractDb implements +class Translate extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb implements \Magento\Framework\Translate\ResourceInterface { /** @@ -19,13 +19,13 @@ class Translate extends \Magento\Framework\Model\ModelResource\Db\AbstractDb imp protected $scope; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\App\ScopeResolverInterface $scopeResolver * @param string $connectionName * @param null|string $scope */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\App\ScopeResolverInterface $scopeResolver, $connectionName = null, $scope = null diff --git a/app/code/Magento/Ui/DataProvider/AbstractDataProvider.php b/app/code/Magento/Ui/DataProvider/AbstractDataProvider.php index a2984c4d038..f37eddfa303 100644 --- a/app/code/Magento/Ui/DataProvider/AbstractDataProvider.php +++ b/app/code/Magento/Ui/DataProvider/AbstractDataProvider.php @@ -6,7 +6,7 @@ namespace Magento\Ui\DataProvider; use Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; abstract class AbstractDataProvider implements DataProviderInterface { diff --git a/app/code/Magento/Ui/Model/ResourceModel/Bookmark.php b/app/code/Magento/Ui/Model/ResourceModel/Bookmark.php index aa5a8684b80..7cc214fdf11 100644 --- a/app/code/Magento/Ui/Model/ResourceModel/Bookmark.php +++ b/app/code/Magento/Ui/Model/ResourceModel/Bookmark.php @@ -5,7 +5,7 @@ */ namespace Magento\Ui\Model\ResourceModel; -use Magento\Framework\Model\ModelResource\Db\AbstractDb; +use Magento\Framework\Model\ResourceModel\Db\AbstractDb; /** * Bookmark resource @@ -18,12 +18,12 @@ class Bookmark extends AbstractDb protected $dateTime; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime $dateTime, $connectionName = null ) { diff --git a/app/code/Magento/Ui/Model/ResourceModel/Bookmark/Collection.php b/app/code/Magento/Ui/Model/ResourceModel/Bookmark/Collection.php index 995281dd587..354ab273b59 100644 --- a/app/code/Magento/Ui/Model/ResourceModel/Bookmark/Collection.php +++ b/app/code/Magento/Ui/Model/ResourceModel/Bookmark/Collection.php @@ -5,7 +5,7 @@ */ namespace Magento\Ui\Model\ResourceModel\Bookmark; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; /** * Bookmark Collection diff --git a/app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewrite.php b/app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewrite.php index 9ec5373b310..1ad44640845 100644 --- a/app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewrite.php +++ b/app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewrite.php @@ -7,7 +7,7 @@ */ namespace Magento\UrlRewrite\Model\ResourceModel; -class UrlRewrite extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class UrlRewrite extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Define main table diff --git a/app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.php b/app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.php index a1306aec4f1..3f3c85e71a4 100644 --- a/app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.php +++ b/app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.php @@ -7,7 +7,7 @@ */ namespace Magento\UrlRewrite\Model\ResourceModel; -class UrlRewriteCollection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class UrlRewriteCollection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Store Manager Model @@ -23,7 +23,7 @@ class UrlRewriteCollection extends \Magento\Framework\Model\ModelResource\Db\Col * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory, @@ -32,7 +32,7 @@ class UrlRewriteCollection extends \Magento\Framework\Model\ModelResource\Db\Col \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); $this->storeManager = $storeManager; diff --git a/app/code/Magento/UrlRewrite/Test/Unit/Model/ResourceModel/UrlRewriteCollectionTest.php b/app/code/Magento/UrlRewrite/Test/Unit/Model/ResourceModel/UrlRewriteCollectionTest.php index 82625593a82..7d708717917 100644 --- a/app/code/Magento/UrlRewrite/Test/Unit/Model/ResourceModel/UrlRewriteCollectionTest.php +++ b/app/code/Magento/UrlRewrite/Test/Unit/Model/ResourceModel/UrlRewriteCollectionTest.php @@ -15,7 +15,7 @@ class UrlRewriteCollectionTest extends \PHPUnit_Framework_TestCase protected $storeManager; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resource; @@ -51,7 +51,7 @@ class UrlRewriteCollectionTest extends \PHPUnit_Framework_TestCase false ); $this->resource = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, diff --git a/app/code/Magento/User/Model/ResourceModel/Role/User/Collection.php b/app/code/Magento/User/Model/ResourceModel/Role/User/Collection.php index 72289ed3efb..908b36c4f9d 100644 --- a/app/code/Magento/User/Model/ResourceModel/Role/User/Collection.php +++ b/app/code/Magento/User/Model/ResourceModel/Role/User/Collection.php @@ -10,7 +10,7 @@ namespace Magento\User\Model\ResourceModel\Role\User; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize resource model diff --git a/app/code/Magento/User/Model/ResourceModel/User.php b/app/code/Magento/User/Model/ResourceModel/User.php index 9aff361664a..cf6e8585051 100644 --- a/app/code/Magento/User/Model/ResourceModel/User.php +++ b/app/code/Magento/User/Model/ResourceModel/User.php @@ -15,7 +15,7 @@ use Magento\User\Model\User as ModelUser; * ACL user resource * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class User extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class User extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Framework\Acl\CacheInterface @@ -44,14 +44,14 @@ class User extends \Magento\Framework\Model\ModelResource\Db\AbstractDb /** * Construct * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Acl\CacheInterface $aclCache * @param \Magento\Authorization\Model\RoleFactory $roleFactory * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Acl\CacheInterface $aclCache, \Magento\Authorization\Model\RoleFactory $roleFactory, \Magento\Framework\Stdlib\DateTime $dateTime, diff --git a/app/code/Magento/User/Model/ResourceModel/User/Collection.php b/app/code/Magento/User/Model/ResourceModel/User/Collection.php index cff70efd8b3..e79fec07cd0 100644 --- a/app/code/Magento/User/Model/ResourceModel/User/Collection.php +++ b/app/code/Magento/User/Model/ResourceModel/User/Collection.php @@ -10,7 +10,7 @@ namespace Magento\User\Model\ResourceModel\User; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Define resource model diff --git a/app/code/Magento/User/Model/ResourceModel/User/Locked/Collection.php b/app/code/Magento/User/Model/ResourceModel/User/Locked/Collection.php index 73b0002b360..0c132101056 100644 --- a/app/code/Magento/User/Model/ResourceModel/User/Locked/Collection.php +++ b/app/code/Magento/User/Model/ResourceModel/User/Locked/Collection.php @@ -15,7 +15,7 @@ class Collection extends \Magento\User\Model\ResourceModel\User\Collection /** * Collection Init Select * - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * @return $this */ protected function _initSelect() diff --git a/app/code/Magento/User/Model/User.php b/app/code/Magento/User/Model/User.php index c8682cb173d..1333f17ea5b 100644 --- a/app/code/Magento/User/Model/User.php +++ b/app/code/Magento/User/Model/User.php @@ -124,7 +124,7 @@ class User extends AbstractModel implements StorageInterface, UserInterface * @param \Magento\Framework\Encryption\EncryptorInterface $encryptor * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param \Magento\Store\Model\StoreManagerInterface $storeManager - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param UserValidationRules $validationRules * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data @@ -142,7 +142,7 @@ class User extends AbstractModel implements StorageInterface, UserInterface \Magento\Framework\Stdlib\DateTime $dateTime, \Magento\Store\Model\StoreManagerInterface $storeManager, UserValidationRules $validationRules, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/User/Test/Unit/Model/ResourceModel/UserTest.php b/app/code/Magento/User/Test/Unit/Model/ResourceModel/UserTest.php index 210c3188d7c..c1e054e7443 100644 --- a/app/code/Magento/User/Test/Unit/Model/ResourceModel/UserTest.php +++ b/app/code/Magento/User/Test/Unit/Model/ResourceModel/UserTest.php @@ -20,7 +20,7 @@ class UserTest extends \PHPUnit_Framework_TestCase /** @var \Magento\Framework\Acl\CacheInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $aclCacheMock; - /** @var \Magento\Framework\Model\ModelResource\Db\Context|\PHPUnit_Framework_MockObject_MockObject */ + /** @var \Magento\Framework\Model\ResourceModel\Db\Context|\PHPUnit_Framework_MockObject_MockObject */ protected $contextMock; /** @var \Magento\Authorization\Model\RoleFactory|\PHPUnit_Framework_MockObject_MockObject */ diff --git a/app/code/Magento/Variable/Model/ResourceModel/Variable.php b/app/code/Magento/Variable/Model/ResourceModel/Variable.php index 5c51cae375b..3d84fa08495 100644 --- a/app/code/Magento/Variable/Model/ResourceModel/Variable.php +++ b/app/code/Magento/Variable/Model/ResourceModel/Variable.php @@ -13,7 +13,7 @@ namespace Magento\Variable\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Variable extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Variable extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Constructor diff --git a/app/code/Magento/Variable/Model/ResourceModel/Variable/Collection.php b/app/code/Magento/Variable/Model/ResourceModel/Variable/Collection.php index cc80b09f2ca..2e289ee4270 100644 --- a/app/code/Magento/Variable/Model/ResourceModel/Variable/Collection.php +++ b/app/code/Magento/Variable/Model/ResourceModel/Variable/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Variable\Model\ResourceModel\Variable; * * @author Magento Core Team <core@magentocommerce.com> */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Store Id diff --git a/app/code/Magento/Weee/Model/ResourceModel/Attribute/Backend/Weee/Tax.php b/app/code/Magento/Weee/Model/ResourceModel/Attribute/Backend/Weee/Tax.php index b406ede5149..84587658991 100644 --- a/app/code/Magento/Weee/Model/ResourceModel/Attribute/Backend/Weee/Tax.php +++ b/app/code/Magento/Weee/Model/ResourceModel/Attribute/Backend/Weee/Tax.php @@ -10,7 +10,7 @@ namespace Magento\Weee\Model\ResourceModel\Attribute\Backend\Weee; * * @author Magento Core Team <core@magentocommerce.com> */ -class Tax extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Tax extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Store\Model\StoreManagerInterface @@ -18,12 +18,12 @@ class Tax extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $_storeManager; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Store\Model\StoreManagerInterface $storeManager, $connectionName = null ) { diff --git a/app/code/Magento/Weee/Model/ResourceModel/Tax.php b/app/code/Magento/Weee/Model/ResourceModel/Tax.php index 110f5c2fbfb..7f16ce3044d 100644 --- a/app/code/Magento/Weee/Model/ResourceModel/Tax.php +++ b/app/code/Magento/Weee/Model/ResourceModel/Tax.php @@ -11,7 +11,7 @@ use Magento\Catalog\Model\Product\Condition\ConditionInterface; /** * Wee tax resource model */ -class Tax extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Tax extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Framework\Stdlib\DateTime @@ -19,12 +19,12 @@ class Tax extends \Magento\Framework\Model\ModelResource\Db\AbstractDb protected $dateTime; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Stdlib\DateTime $dateTime, $connectionName = null ) { diff --git a/app/code/Magento/Weee/Test/Unit/Model/ResourceModel/Attribute/Backend/Weee/TaxTest.php b/app/code/Magento/Weee/Test/Unit/Model/ResourceModel/Attribute/Backend/Weee/TaxTest.php index 7851daedeab..bd5504115a8 100644 --- a/app/code/Magento/Weee/Test/Unit/Model/ResourceModel/Attribute/Backend/Weee/TaxTest.php +++ b/app/code/Magento/Weee/Test/Unit/Model/ResourceModel/Attribute/Backend/Weee/TaxTest.php @@ -41,7 +41,7 @@ class TaxTest extends \PHPUnit_Framework_TestCase ->method('getTableName') ->willReturn('table_name'); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($this->resourceMock); $this->model = new \Magento\Weee\Model\ResourceModel\Attribute\Backend\Weee\Tax( diff --git a/app/code/Magento/Weee/Test/Unit/Model/ResourceModel/TaxTest.php b/app/code/Magento/Weee/Test/Unit/Model/ResourceModel/TaxTest.php index 1aa26b3a2a3..5c1a01ee81d 100644 --- a/app/code/Magento/Weee/Test/Unit/Model/ResourceModel/TaxTest.php +++ b/app/code/Magento/Weee/Test/Unit/Model/ResourceModel/TaxTest.php @@ -55,7 +55,7 @@ class TaxTest extends \PHPUnit_Framework_TestCase ->method('getTableName') ->willReturn('table_name'); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->any())->method('getResources')->willReturn($this->resourceMock); $this->model = $this->objectManager->getObject( diff --git a/app/code/Magento/Widget/Model/Layout/Update.php b/app/code/Magento/Widget/Model/Layout/Update.php index fb85dbbf93e..09c322dc7d0 100644 --- a/app/code/Magento/Widget/Model/Layout/Update.php +++ b/app/code/Magento/Widget/Model/Layout/Update.php @@ -31,7 +31,7 @@ class Update extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Stdlib\DateTime $dateTime - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -39,7 +39,7 @@ class Update extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Stdlib\DateTime $dateTime, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Widget/Model/ResourceModel/Layout/Link.php b/app/code/Magento/Widget/Model/ResourceModel/Layout/Link.php index 63e9bac5cd7..1485f11b3af 100644 --- a/app/code/Magento/Widget/Model/ResourceModel/Layout/Link.php +++ b/app/code/Magento/Widget/Model/ResourceModel/Layout/Link.php @@ -8,7 +8,7 @@ namespace Magento\Widget\Model\ResourceModel\Layout; /** * Layout Link resource model */ -class Link extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Link extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Define main table diff --git a/app/code/Magento/Widget/Model/ResourceModel/Layout/Link/Collection.php b/app/code/Magento/Widget/Model/ResourceModel/Layout/Link/Collection.php index 74df58e946f..91398f395d5 100644 --- a/app/code/Magento/Widget/Model/ResourceModel/Layout/Link/Collection.php +++ b/app/code/Magento/Widget/Model/ResourceModel/Layout/Link/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Widget\Model\ResourceModel\Layout\Link; /** * Layout update collection model */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * @var \Magento\Framework\Stdlib\DateTime @@ -21,7 +21,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory */ public function __construct( @@ -31,7 +31,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\Stdlib\DateTime $dateTime, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->dateTime = $dateTime; parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); diff --git a/app/code/Magento/Widget/Model/ResourceModel/Layout/Update.php b/app/code/Magento/Widget/Model/ResourceModel/Layout/Update.php index 9b750808ab1..11e3f414ca5 100644 --- a/app/code/Magento/Widget/Model/ResourceModel/Layout/Update.php +++ b/app/code/Magento/Widget/Model/ResourceModel/Layout/Update.php @@ -11,7 +11,7 @@ namespace Magento\Widget\Model\ResourceModel\Layout; /** * Layout update resource model */ -class Update extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Update extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var \Magento\Framework\Cache\FrontendInterface @@ -19,12 +19,12 @@ class Update extends \Magento\Framework\Model\ModelResource\Db\AbstractDb private $_cache; /** - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param \Magento\Framework\Cache\FrontendInterface $cache * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, \Magento\Framework\Cache\FrontendInterface $cache, $connectionName = null ) { diff --git a/app/code/Magento/Widget/Model/ResourceModel/Layout/Update/Collection.php b/app/code/Magento/Widget/Model/ResourceModel/Layout/Update/Collection.php index f276751e280..f90e32416a5 100644 --- a/app/code/Magento/Widget/Model/ResourceModel/Layout/Update/Collection.php +++ b/app/code/Magento/Widget/Model/ResourceModel/Layout/Update/Collection.php @@ -8,7 +8,7 @@ namespace Magento\Widget\Model\ResourceModel\Layout\Update; /** * Layout update collection model */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * @var \Magento\Framework\Stdlib\DateTime @@ -36,7 +36,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Framework\Stdlib\DateTime $dateTime * @param mixed $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, @@ -45,7 +45,7 @@ class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\Ab \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\Stdlib\DateTime $dateTime, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->dateTime = $dateTime; parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); diff --git a/app/code/Magento/Widget/Model/ResourceModel/Widget.php b/app/code/Magento/Widget/Model/ResourceModel/Widget.php index 24c8ac0e7db..f6e376e91cb 100644 --- a/app/code/Magento/Widget/Model/ResourceModel/Widget.php +++ b/app/code/Magento/Widget/Model/ResourceModel/Widget.php @@ -11,7 +11,7 @@ */ namespace Magento\Widget\Model\ResourceModel; -class Widget extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Widget extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Define main table diff --git a/app/code/Magento/Widget/Model/ResourceModel/Widget/Instance.php b/app/code/Magento/Widget/Model/ResourceModel/Widget/Instance.php index 5e97d539379..6277ad2e528 100644 --- a/app/code/Magento/Widget/Model/ResourceModel/Widget/Instance.php +++ b/app/code/Magento/Widget/Model/ResourceModel/Widget/Instance.php @@ -13,7 +13,7 @@ namespace Magento\Widget\Model\ResourceModel\Widget; use Magento\Framework\Model\AbstractModel; -class Instance extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Instance extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Define main table diff --git a/app/code/Magento/Widget/Model/ResourceModel/Widget/Instance/Collection.php b/app/code/Magento/Widget/Model/ResourceModel/Widget/Instance/Collection.php index bbbb4afc385..4ed2b8ba087 100644 --- a/app/code/Magento/Widget/Model/ResourceModel/Widget/Instance/Collection.php +++ b/app/code/Magento/Widget/Model/ResourceModel/Widget/Instance/Collection.php @@ -11,7 +11,7 @@ */ namespace Magento\Widget\Model\ResourceModel\Widget\Instance; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Fields map for corellation names & real selected fields diff --git a/app/code/Magento/Widget/Model/Widget/Instance.php b/app/code/Magento/Widget/Model/Widget/Instance.php index 45775d781ed..7bccc0812d1 100644 --- a/app/code/Magento/Widget/Model/Widget/Instance.php +++ b/app/code/Magento/Widget/Model/Widget/Instance.php @@ -120,7 +120,7 @@ class Instance extends \Magento\Framework\Model\AbstractModel * @param \Magento\Framework\Math\Random $mathRandom * @param \Magento\Framework\Filesystem $filesystem * @param \Magento\Widget\Helper\Conditions $conditionsHelper - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $relatedCacheTypes * @param array $data @@ -139,7 +139,7 @@ class Instance extends \Magento\Framework\Model\AbstractModel \Magento\Framework\Math\Random $mathRandom, \Magento\Framework\Filesystem $filesystem, \Magento\Widget\Helper\Conditions $conditionsHelper, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $relatedCacheTypes = [], array $data = [] diff --git a/app/code/Magento/Widget/Test/Unit/Model/ResourceModel/Layout/AbstractTestCase.php b/app/code/Magento/Widget/Test/Unit/Model/ResourceModel/Layout/AbstractTestCase.php index 16d873d84c8..3b83e0676da 100644 --- a/app/code/Magento/Widget/Test/Unit/Model/ResourceModel/Layout/AbstractTestCase.php +++ b/app/code/Magento/Widget/Test/Unit/Model/ResourceModel/Layout/AbstractTestCase.php @@ -60,7 +60,7 @@ abstract class AbstractTestCase extends \PHPUnit_Framework_TestCase $connection->expects($this->any())->method('quoteIdentifier')->will($this->returnArgument(0)); $resource = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, @@ -77,7 +77,7 @@ abstract class AbstractTestCase extends \PHPUnit_Framework_TestCase /** * @abstract * @param \Magento\Framework\DB\Select $select - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ abstract protected function _getCollection(\Magento\Framework\DB\Select $select); diff --git a/app/code/Magento/Wishlist/Model/Item.php b/app/code/Magento/Wishlist/Model/Item.php index 5d1d08b0930..f3748d8691d 100644 --- a/app/code/Magento/Wishlist/Model/Item.php +++ b/app/code/Magento/Wishlist/Model/Item.php @@ -130,7 +130,7 @@ class Item extends AbstractModel implements ItemInterface * @param CollectionFactory $wishlOptionCollectionFactory * @param \Magento\Catalog\Model\ProductTypes\ConfigInterface $productTypeConfig * @param ProductRepositoryInterface $productRepository - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) @@ -145,7 +145,7 @@ class Item extends AbstractModel implements ItemInterface CollectionFactory $wishlOptionCollectionFactory, \Magento\Catalog\Model\ProductTypes\ConfigInterface $productTypeConfig, ProductRepositoryInterface $productRepository, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/app/code/Magento/Wishlist/Model/ResourceModel/Item.php b/app/code/Magento/Wishlist/Model/ResourceModel/Item.php index 4b050e5a1b3..84f679726d2 100644 --- a/app/code/Magento/Wishlist/Model/ResourceModel/Item.php +++ b/app/code/Magento/Wishlist/Model/ResourceModel/Item.php @@ -11,7 +11,7 @@ */ namespace Magento\Wishlist\Model\ResourceModel; -class Item extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Item extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize connection and define main table diff --git a/app/code/Magento/Wishlist/Model/ResourceModel/Item/Collection.php b/app/code/Magento/Wishlist/Model/ResourceModel/Item/Collection.php index 79d709c4eeb..bbee472a8bd 100644 --- a/app/code/Magento/Wishlist/Model/ResourceModel/Item/Collection.php +++ b/app/code/Magento/Wishlist/Model/ResourceModel/Item/Collection.php @@ -10,7 +10,7 @@ namespace Magento\Wishlist\Model\ResourceModel\Item; * @SuppressWarnings(PHPMD.TooManyFields) * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Product Visibility Filter to product collection flag diff --git a/app/code/Magento/Wishlist/Model/ResourceModel/Item/Option.php b/app/code/Magento/Wishlist/Model/ResourceModel/Item/Option.php index 7e3aadac78e..6660d7eb353 100644 --- a/app/code/Magento/Wishlist/Model/ResourceModel/Item/Option.php +++ b/app/code/Magento/Wishlist/Model/ResourceModel/Item/Option.php @@ -11,7 +11,7 @@ */ namespace Magento\Wishlist\Model\ResourceModel\Item; -class Option extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Option extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @return void diff --git a/app/code/Magento/Wishlist/Model/ResourceModel/Item/Option/Collection.php b/app/code/Magento/Wishlist/Model/ResourceModel/Item/Option/Collection.php index a2f4c18c34e..d6a8343f2cb 100644 --- a/app/code/Magento/Wishlist/Model/ResourceModel/Item/Option/Collection.php +++ b/app/code/Magento/Wishlist/Model/ResourceModel/Item/Option/Collection.php @@ -14,7 +14,7 @@ namespace Magento\Wishlist\Model\ResourceModel\Item\Option; use Magento\Catalog\Model\Product; use Magento\Wishlist\Model\Item; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Array of option ids grouped by item id diff --git a/app/code/Magento/Wishlist/Model/ResourceModel/Wishlist.php b/app/code/Magento/Wishlist/Model/ResourceModel/Wishlist.php index a9afa52ac74..936f362d451 100644 --- a/app/code/Magento/Wishlist/Model/ResourceModel/Wishlist.php +++ b/app/code/Magento/Wishlist/Model/ResourceModel/Wishlist.php @@ -11,7 +11,7 @@ */ namespace Magento\Wishlist\Model\ResourceModel; -class Wishlist extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Wishlist extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Store wishlist items count diff --git a/app/code/Magento/Wishlist/Model/ResourceModel/Wishlist/Collection.php b/app/code/Magento/Wishlist/Model/ResourceModel/Wishlist/Collection.php index 6d009cfa672..61b1feb5b47 100644 --- a/app/code/Magento/Wishlist/Model/ResourceModel/Wishlist/Collection.php +++ b/app/code/Magento/Wishlist/Model/ResourceModel/Wishlist/Collection.php @@ -11,7 +11,7 @@ */ namespace Magento\Wishlist\Model\ResourceModel\Wishlist; -class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * Initialize resource diff --git a/app/etc/di.xml b/app/etc/di.xml index e1aaf36869b..598bc2c341e 100755 --- a/app/etc/di.xml +++ b/app/etc/di.xml @@ -94,7 +94,7 @@ <preference for="Magento\Framework\Api\SearchCriteriaInterface" type="Magento\Framework\Api\SearchCriteria"/> <preference for="Magento\Framework\App\Rss\UrlBuilderInterface" type="Magento\Framework\App\Rss\UrlBuilder"/> <preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\Quiet"/> - <preference for="Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface" type="Magento\Framework\Model\ModelResource\Type\Db\Pdo\Mysql"/> + <preference for="Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface" type="Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql"/> <preference for="Magento\Framework\DB\QueryInterface" type="Magento\Framework\DB\Query"/> <preference for="Magento\Framework\App\ProductMetadataInterface" type="Magento\Framework\App\ProductMetadata"/> <preference for="Magento\Framework\Acl\CacheInterface" type="Magento\Framework\Acl\Cache" /> @@ -133,13 +133,13 @@ <preference for="Magento\Framework\Pricing\Amount\AmountInterface" type="Magento\Framework\Pricing\Amount\Base" /> <preference for="Magento\Framework\Api\SearchResultsInterface" type="Magento\Framework\Api\SearchResults" /> <preference for="Magento\Framework\Api\AttributeInterface" type="Magento\Framework\Api\AttributeValue" /> - <preference for="Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface" type="Magento\Framework\Model\ModelResource\Db\TransactionManager" /> + <preference for="Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface" type="Magento\Framework\Model\ResourceModel\Db\TransactionManager" /> <preference for="Magento\Framework\Api\Data\ImageContentInterface" type="Magento\Framework\Api\ImageContent" /> <preference for="Magento\Framework\Api\ImageContentValidatorInterface" type="Magento\Framework\Api\ImageContentValidator" /> <preference for="Magento\Framework\Api\ImageProcessorInterface" type="Magento\Framework\Api\ImageProcessor" /> <preference for="Magento\Framework\Code\Reader\ClassReaderInterface" type="Magento\Framework\Code\Reader\ClassReader" /> <preference for="Magento\Framework\Stdlib\DateTime\DateTimeFormatterInterface" type="Magento\Framework\Stdlib\DateTime\DateTimeFormatter"/> - <type name="Magento\Framework\Model\ModelResource\Db\TransactionManager" shared="false" /> + <type name="Magento\Framework\Model\ResourceModel\Db\TransactionManager" shared="false" /> <type name="Magento\Framework\Logger\Handler\Base"> <arguments> <argument name="filesystem" xsi:type="object">Magento\Framework\Filesystem\Driver\File</argument> diff --git a/dev/tests/api-functional/_files/Magento/TestModule4/Model/ResourceModel/Item.php b/dev/tests/api-functional/_files/Magento/TestModule4/Model/ResourceModel/Item.php index 39e1bf089cd..b8cab8ad42e 100644 --- a/dev/tests/api-functional/_files/Magento/TestModule4/Model/ResourceModel/Item.php +++ b/dev/tests/api-functional/_files/Magento/TestModule4/Model/ResourceModel/Item.php @@ -9,7 +9,7 @@ namespace Magento\TestModule4\Model\ResourceModel; /** * Sample resource model */ -class Item extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Item extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize connection and define main table diff --git a/dev/tests/api-functional/_files/Magento/TestModuleMSC/Model/ResourceModel/Item.php b/dev/tests/api-functional/_files/Magento/TestModuleMSC/Model/ResourceModel/Item.php index 4052cef7763..fcdce38ba67 100644 --- a/dev/tests/api-functional/_files/Magento/TestModuleMSC/Model/ResourceModel/Item.php +++ b/dev/tests/api-functional/_files/Magento/TestModuleMSC/Model/ResourceModel/Item.php @@ -9,7 +9,7 @@ namespace Magento\TestModuleMSC\Model\ResourceModel; /** * Sample resource model */ -class Item extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class Item extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Initialize connection and define main table diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Repository/RepositoryResource.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Repository/RepositoryResource.php index ee45b740731..db91d8a9984 100644 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Repository/RepositoryResource.php +++ b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Repository/RepositoryResource.php @@ -10,7 +10,7 @@ namespace Magento\Mtf\Util\Generate\Repository; * Class Resource * */ -class RepositoryResource extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class RepositoryResource extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Set fixture entity_type @@ -28,7 +28,7 @@ class RepositoryResource extends \Magento\Framework\Model\ModelResource\Db\Abstr * @param \Magento\Framework\Model\AbstractModel $object * @param mixed $value * @param null $field - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb|void + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb|void * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function load(\Magento\Framework\Model\AbstractModel $object, $value, $field = null) diff --git a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Repository/TableCollection.php b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Repository/TableCollection.php index e22e7837b72..bdfbd8544da 100644 --- a/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Repository/TableCollection.php +++ b/dev/tests/functional/lib/Magento/Mtf/Util/Generate/Repository/TableCollection.php @@ -6,7 +6,7 @@ namespace Magento\Mtf\Util\Generate\Repository; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; /** * Class CollectionProvider @@ -26,7 +26,7 @@ class TableCollection extends AbstractCollection * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param null $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * @param array $fixture */ public function __construct( @@ -35,7 +35,7 @@ class TableCollection extends AbstractCollection \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null, + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null, array $fixture = [] ) { $this->setModel('Magento\Framework\DataObject'); diff --git a/dev/tests/integration/framework/Magento/TestFramework/Db/ConnectionAdapter.php b/dev/tests/integration/framework/Magento/TestFramework/Db/ConnectionAdapter.php index 4e59fa47d7d..7f624342718 100644 --- a/dev/tests/integration/framework/Magento/TestFramework/Db/ConnectionAdapter.php +++ b/dev/tests/integration/framework/Magento/TestFramework/Db/ConnectionAdapter.php @@ -7,7 +7,7 @@ */ namespace Magento\TestFramework\Db; -class ConnectionAdapter extends \Magento\Framework\Model\ModelResource\Type\Db\Pdo\Mysql +class ConnectionAdapter extends \Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql { /** * Retrieve DB connection class name diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/AbstractTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/AbstractTest.php index c772877befa..ca8c899be7b 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/AbstractTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/AbstractTest.php @@ -6,12 +6,12 @@ // @codingStandardsIgnoreFile -namespace Magento\Framework\Model\ModelResource\Db; +namespace Magento\Framework\Model\ResourceModel\Db; class AbstractTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected $_model; @@ -19,10 +19,10 @@ class AbstractTest extends \PHPUnit_Framework_TestCase { $resource = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Magento\Framework\App\ResourceConnection'); $context = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - '\Magento\Framework\Model\ModelResource\Db\Context', + '\Magento\Framework\Model\ResourceModel\Db\Context', ['resource' => $resource] ); - $this->_model = $this->getMockForAbstractClass('Magento\Framework\Model\ModelResource\Db\AbstractDb', + $this->_model = $this->getMockForAbstractClass('Magento\Framework\Model\ResourceModel\Db\AbstractDb', ['context' => $context] ); } @@ -59,11 +59,11 @@ class AbstractTest extends \PHPUnit_Framework_TestCase ['tablePrefix' => 'prefix_'] ); $context = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - '\Magento\Framework\Model\ModelResource\Db\Context', + '\Magento\Framework\Model\ResourceModel\Db\Context', ['resource' => $resource] ); - $model = $this->getMockForAbstractClass('Magento\Framework\Model\ModelResource\Db\AbstractDb', + $model = $this->getMockForAbstractClass('Magento\Framework\Model\ResourceModel\Db\AbstractDb', ['context' => $context] ); diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/Collection/AbstractTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/Collection/AbstractTest.php index 49449b23aa5..0bdb5fa5e4b 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/Collection/AbstractTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/Collection/AbstractTest.php @@ -3,12 +3,12 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Db\Collection; +namespace Magento\Framework\Model\ResourceModel\Db\Collection; class AbstractTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @var \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ protected $_model = null; @@ -17,12 +17,12 @@ class AbstractTest extends \PHPUnit_Framework_TestCase $resourceModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() ->get('Magento\Framework\App\ResourceConnection'); $context = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - '\Magento\Framework\Model\ModelResource\Db\Context', + '\Magento\Framework\Model\ResourceModel\Db\Context', ['resource' => $resourceModel] ); $resource = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [$context], '', true, @@ -52,7 +52,7 @@ class AbstractTest extends \PHPUnit_Framework_TestCase $logger = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get('Psr\Log\LoggerInterface'); $this->_model = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection', + 'Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection', [$entityFactory, $logger, $fetchStrategy, $eventManager, null, $resource] ); } diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/ProfilerTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/ProfilerTest.php index 98031031fe1..34b1d0a51b3 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/ProfilerTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/ProfilerTest.php @@ -1,11 +1,11 @@ <?php /** - * Test for \Magento\Framework\Model\ModelResource\Db\Profiler + * Test for \Magento\Framework\Model\ResourceModel\Db\Profiler * * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Db; +namespace Magento\Framework\Model\ResourceModel\Db; use Magento\Framework\Config\ConfigOptionsListConstants; @@ -49,7 +49,7 @@ class ProfilerTest extends \PHPUnit_Framework_TestCase $dbConfig = $reader->getConfigData(ConfigOptionsListConstants::KEY_DB); $connectionConfig = $dbConfig['connection']['default']; $connectionConfig['profiler'] = [ - 'class' => 'Magento\Framework\Model\ModelResource\Db\Profiler', + 'class' => 'Magento\Framework\Model\ResourceModel\Db\Profiler', 'enabled' => 'true', ]; @@ -78,9 +78,9 @@ class ProfilerTest extends \PHPUnit_Framework_TestCase $result->fetchAll(); } - /** @var \Magento\Framework\Model\ModelResource\Db\Profiler $profiler */ + /** @var \Magento\Framework\Model\ResourceModel\Db\Profiler $profiler */ $profiler = $connection->getProfiler(); - $this->assertInstanceOf('Magento\Framework\Model\ModelResource\Db\Profiler', $profiler); + $this->assertInstanceOf('Magento\Framework\Model\ResourceModel\Db\Profiler', $profiler); $queryProfiles = $profiler->getQueryProfiles($queryType); $this->assertCount(1, $queryProfiles); @@ -140,9 +140,9 @@ class ProfilerTest extends \PHPUnit_Framework_TestCase $testTableName = $resource->getTableName('setup_module'); $connection->query('SELECT * FROM ' . $testTableName); - /** @var \Magento\Framework\Model\ModelResource\Db\Profiler $profiler */ + /** @var \Magento\Framework\Model\ResourceModel\Db\Profiler $profiler */ $profiler = $connection->getProfiler(); - $this->assertInstanceOf('Magento\Framework\Model\ModelResource\Db\Profiler', $profiler); + $this->assertInstanceOf('Magento\Framework\Model\ResourceModel\Db\Profiler', $profiler); $queryProfiles = $profiler->getQueryProfiles(\Magento\Framework\DB\Profiler::SELECT); $this->assertCount(2, $queryProfiles); diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Entity/TableTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Entity/TableTest.php index 432aa215b12..80209e56a03 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Entity/TableTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Entity/TableTest.php @@ -3,12 +3,12 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Entity; +namespace Magento\Framework\Model\ResourceModel\Entity; class TableTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Framework\Model\ModelResource\Entity\Table + * @var \Magento\Framework\Model\ResourceModel\Entity\Table */ protected $_model; @@ -21,7 +21,7 @@ class TableTest extends \PHPUnit_Framework_TestCase // @codingStandardsIgnoreEnd $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() - ->create('Magento\Framework\Model\ModelResource\Entity\Table', ['config' => $config]); + ->create('Magento\Framework\Model\ResourceModel\Entity\Table', ['config' => $config]); } public function testGetTable() diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/IteratorTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/IteratorTest.php index 930397c73d2..808ce911305 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/IteratorTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/IteratorTest.php @@ -3,12 +3,12 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource; +namespace Magento\Framework\Model\ResourceModel; class IteratorTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Framework\Model\ModelResource\Iterator + * @var \Magento\Framework\Model\ResourceModel\Iterator */ protected $_model; @@ -22,7 +22,7 @@ class IteratorTest extends \PHPUnit_Framework_TestCase protected function setUp() { $this->_model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - 'Magento\Framework\Model\ModelResource\Iterator' + 'Magento\Framework\Model\ResourceModel\Iterator' ); } diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Type/Db/ConnectionFactoryTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Type/Db/ConnectionFactoryTest.php index a23a42f42d4..84ff6306201 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Type/Db/ConnectionFactoryTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Type/Db/ConnectionFactoryTest.php @@ -3,7 +3,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Type\Db; +namespace Magento\Framework\Model\ResourceModel\Type\Db; class ConnectionFactoryTest extends \PHPUnit_Framework_TestCase { diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Type/Db/Pdo/MysqlTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Type/Db/Pdo/MysqlTest.php index 871c85d9faf..f57497cd8e9 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Type/Db/Pdo/MysqlTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Type/Db/Pdo/MysqlTest.php @@ -4,7 +4,7 @@ * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Type\Db\Pdo; +namespace Magento\Framework\Model\ResourceModel\Type\Db\Pdo; class MysqlTest extends \PHPUnit_Framework_TestCase { @@ -23,9 +23,9 @@ class MysqlTest extends \PHPUnit_Framework_TestCase 'dbname' => $db->getSchema(), 'active' => true, ]; - /** @var \Magento\Framework\Model\ModelResource\Type\Db\Pdo\Mysql $object */ + /** @var \Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql $object */ $object = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - 'Magento\Framework\Model\ModelResource\Type\Db\Pdo\Mysql', + 'Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql', ['config' => $config] ); diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ResourceTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ResourceTest.php index 666627931ac..961fc60985a 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Model/ResourceTest.php +++ b/dev/tests/integration/testsuite/Magento/Framework/Model/ResourceTest.php @@ -1,6 +1,6 @@ <?php /** - * Test for \Magento\Framework\Model\ModelResource + * Test for \Magento\Framework\Model\ResourceModel * * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. @@ -51,7 +51,7 @@ class ResourceTest extends \PHPUnit_Framework_TestCase [ 'config' => [ 'profiler' => [ - 'class' => 'Magento\Framework\Model\ModelResource\Db\Profiler', + 'class' => 'Magento\Framework\Model\ResourceModel\Db\Profiler', 'enabled' => 'true', ], 'username' => 'username', @@ -63,10 +63,10 @@ class ResourceTest extends \PHPUnit_Framework_TestCase ] ); - /** @var \Magento\Framework\Model\ModelResource\Db\Profiler $profiler */ + /** @var \Magento\Framework\Model\ResourceModel\Db\Profiler $profiler */ $profiler = $connection->getProfiler(); - $this->assertInstanceOf('Magento\Framework\Model\ModelResource\Db\Profiler', $profiler); + $this->assertInstanceOf('Magento\Framework\Model\ResourceModel\Db\Profiler', $profiler); $this->assertTrue($profiler->getEnabled()); } } diff --git a/dev/tests/integration/testsuite/Magento/Store/Model/ResourceModel/Store/CollectionTest.php b/dev/tests/integration/testsuite/Magento/Store/Model/ResourceModel/Store/CollectionTest.php index daf46fa185e..a7ccac4bbaf 100644 --- a/dev/tests/integration/testsuite/Magento/Store/Model/ResourceModel/Store/CollectionTest.php +++ b/dev/tests/integration/testsuite/Magento/Store/Model/ResourceModel/Store/CollectionTest.php @@ -88,8 +88,8 @@ class CollectionTest extends \PHPUnit_Framework_TestCase } /** - * @covers \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection::addFieldToSelect - * @covers \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection::removeFieldFromSelect + * @covers \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection::addFieldToSelect + * @covers \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection::removeFieldFromSelect */ public function testAddRemoveFieldToSelect() { @@ -108,7 +108,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase } /** - * @covers \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection::addExpressionFieldToSelect + * @covers \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection::addExpressionFieldToSelect */ public function testAddExpressionFieldToSelect() { @@ -118,7 +118,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase } /** - * @covers \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection::getAllIds + * @covers \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection::getAllIds */ public function testGetAllIds() { @@ -126,7 +126,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase } /** - * @covers \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection::getData + * @covers \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection::getData */ public function testGetData() { @@ -134,7 +134,7 @@ class CollectionTest extends \PHPUnit_Framework_TestCase } /** - * @covers \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection::join + * @covers \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection::join */ public function testJoin() { diff --git a/dev/tests/integration/testsuite/Magento/User/Model/UserTest.php b/dev/tests/integration/testsuite/Magento/User/Model/UserTest.php index a4ce584c44b..854a38cd660 100644 --- a/dev/tests/integration/testsuite/Magento/User/Model/UserTest.php +++ b/dev/tests/integration/testsuite/Magento/User/Model/UserTest.php @@ -166,7 +166,7 @@ class UserTest extends \PHPUnit_Framework_TestCase public function testGetCollection() { - $this->assertInstanceOf('Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection', + $this->assertInstanceOf('Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection', $this->_model->getCollection()); } diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php index ca08452c4b2..a782da65571 100755 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php @@ -803,23 +803,23 @@ return [ ['Magento\Core\Model\Email\Info', 'Magento\Framework\Mail\MessageInterface'], ['Magento\Core\Model\Email\Sender', 'Magento\Framework\Mail\Template\TransportBuilder'], ['Magento\Core\Model\Email\Template\Mailer', 'Magento\Framework\Mail\Template\TransportBuilder'], - ['Magento\Core\Model\Resource\AbstractResource', 'Magento\Framework\Model\ModelResource\AbstractResource'], - ['Magento\Core\Model\Resource\Db\AbstractDb', 'Magento\Framework\Model\ModelResource\Db\AbstractDb'], - ['Magento\Core\Model\Resource\Db\Profiler', 'Magento\Framework\Model\ModelResource\Db\Profiler'], + ['Magento\Core\Model\Resource\AbstractResource', 'Magento\Framework\Model\ResourceModel\AbstractResource'], + ['Magento\Core\Model\Resource\Db\AbstractDb', 'Magento\Framework\Model\ResourceModel\Db\AbstractDb'], + ['Magento\Core\Model\Resource\Db\Profiler', 'Magento\Framework\Model\ResourceModel\Db\Profiler'], [ 'Magento\Core\Model\Resource\Entity\AbstractEntity', - 'Magento\Framework\Model\ModelResource\Entity\AbstractEntity', + 'Magento\Framework\Model\ResourceModel\Entity\AbstractEntity', ], - ['Magento\Core\Model\Resource\Entity\Table', 'Magento\Framework\Model\ModelResource\Entity\Table'], + ['Magento\Core\Model\Resource\Entity\Table', 'Magento\Framework\Model\ResourceModel\Entity\Table'], ['Magento\Core\Model\Resource\Flag', 'Magento\Framework\Flag\FlagResource'], - ['Magento\Core\Model\Resource\Iterator', 'Magento\Framework\Model\ModelResource\Iterator'], + ['Magento\Core\Model\Resource\Iterator', 'Magento\Framework\Model\ResourceModel\Iterator'], ['Magento\Core\Model\Resource\Resource', 'Magento\Framework\Module\ModuleResource'], - ['Magento\Core\Model\Resource\Type\AbstractType', 'Magento\Framework\Model\ModelResource\Type\AbstractType'], - ['Magento\Core\Model\Resource\Type\Db', 'Magento\Framework\Model\ModelResource\Type\Db'], - ['Magento\Core\Model\Resource\Type\Db\Pdo\Mysql', 'Magento\Framework\Model\ModelResource\Type\Db\Pdo\Mysql'], + ['Magento\Core\Model\Resource\Type\AbstractType', 'Magento\Framework\Model\ResourceModel\Type\AbstractType'], + ['Magento\Core\Model\Resource\Type\Db', 'Magento\Framework\Model\ResourceModel\Type\Db'], + ['Magento\Core\Model\Resource\Type\Db\Pdo\Mysql', 'Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql'], [ 'Magento\Core\Model\Resource\Db\Collection\AbstractCollection', - 'Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection', + 'Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection', ], ['Magento\Email\Model\Info', 'Magento\Framework\Mail\MessageInterface'], ['Magento\Email\Model\Sender', 'Magento\Framework\Mail\Template\TransportBuilder'], @@ -2925,7 +2925,7 @@ return [ 'Magento\Bundle\Api\ProductOptionTypeListInterface', ], ['Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader'], - ['Magento\Sales\Model\ResourceModel\AbstractResource', 'Magento\Framework\Model\ModelResource\Db\AbstractDb'], + ['Magento\Sales\Model\ResourceModel\AbstractResource', 'Magento\Framework\Model\ResourceModel\Db\AbstractDb'], ['Magento\Backend\Block\System\Config\Switcher'], ['Magento\VersionsCms\Block\Adminhtml\Scope\Switcher'], ['Magento\Backend\Block\Widget\View\Container'], diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php index 174f0004e29..ca86654e7a5 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php @@ -19,7 +19,7 @@ return [ ['CACHE_TAG', 'Magento\Framework\AppInterface'], [ 'CACHE_TAG', - 'Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection', + 'Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection', 'Magento_Core_Model_Cache_Type_Collection::CACHE_TAG', ], ['CACHE_TAG', 'Magento\Framework\Translate', 'Magento_Core_Model_Cache_Type_Translate::CACHE_TAG'], diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php index 00e6b2ad57a..d6780911ed9 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php @@ -951,7 +951,7 @@ return [ ['_getUsers', 'Magento\User\Block\Role\Grid\User', 'getUsers'], ['_getGridHtml', 'Magento\User\Block\Role\Tab\Users', 'getGridHtml'], ['_getSelectedRoles', 'Magento\User\Block\User\Edit\Tab\Roles', 'getSelectedRoles'], - ['_prepareSelect', 'Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection'], + ['_prepareSelect', 'Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection'], ['_prepareSelect', 'Magento\Framework\Data\Collection\AbstractDb'], ['_createOrderFromAddress', 'Magento\Checkout\Model\Type\AbstractType'], ['_addLoadAttributesSelectFields', 'Magento\Catalog\Model\ResourceModel\AbstractResource'], @@ -1116,12 +1116,12 @@ return [ ], [ 'formatDate', - 'Magento\Framework\Model\ModelResource\AbstractResource', + 'Magento\Framework\Model\ResourceModel\AbstractResource', '\Magento\Framework\Stdlib\DateTime::formatDate', ], [ 'mktime', - 'Magento\Framework\Model\ModelResource\AbstractResource', + 'Magento\Framework\Model\ResourceModel\AbstractResource', '\Magento\Framework\Stdlib\DateTime::toTimestamp', ], ['getPlainTemplateMode', '\Magento\Email\Model\Template\Filter'], @@ -2342,11 +2342,11 @@ return [ ['_getReadAdapter', 'Magento\Framework\DB\Helper\AbstractHelper', 'getConnection'], ['_getWriteAdapter', 'Magento\Framework\DB\Helper\AbstractHelper', 'getConnection'], ['_getConnection', 'Magento\Framework\DB\Helper\AbstractHelper', 'getConnection'], - ['_getReadAdapter', 'Magento\Framework\Model\ModelResource\AbstractResource', 'getConnection'], - ['_getWriteAdapter', 'Magento\Framework\Model\ModelResource\AbstractResource', 'getConnection'], - ['_getReadAdapter', 'Magento\Framework\Model\ModelResource\Db\AbstractDb', 'getConnection'], - ['_getWriteAdapter', 'Magento\Framework\Model\ModelResource\Db\AbstractDb', 'getConnection'], - ['getReadConnection', 'Magento\Framework\Model\ModelResource\Db\AbstractDb', 'getConnection'], + ['_getReadAdapter', 'Magento\Framework\Model\ResourceModel\AbstractResource', 'getConnection'], + ['_getWriteAdapter', 'Magento\Framework\Model\ResourceModel\AbstractResource', 'getConnection'], + ['_getReadAdapter', 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', 'getConnection'], + ['_getWriteAdapter', 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', 'getConnection'], + ['getReadConnection', 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', 'getConnection'], ['getReadAdapter', 'Magento\Catalog\Model\Indexer\Category\Flat\AbstractAction'], ['getWriteAdapter', 'Magento\Catalog\Model\Indexer\Category\Flat\AbstractAction'], ['getReadAdapter', 'Magento\Catalog\Model\Indexer\Category\Product\AbstractAction'], diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_namespaces.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_namespaces.php index 03be375c655..924b33deb90 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_namespaces.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_namespaces.php @@ -190,6 +190,7 @@ return [ ['Magento\Catalog\Test\Unit\Plugin\Model\Resource', 'Magento\Catalog\Test\Unit\Plugin\Model\ResourceModel'], ['Magento\Framework\Acl\Resource', 'Magento\Framework\Acl\AclResource'], ['Magento\Framework\App\Resource', 'Magento\Framework\App\ResourceConnection'], - ['Magento\Framework\Model\Resource', 'Magento\Framework\Model\ModelResource'], - ['Magento\Framework\Model\Test\Unit\Resource', 'Magento\Framework\Model\Test\Unit\ModelResource'], + ['Magento\Framework\Model\Resource', 'Magento\Framework\Model\ResourceModel'], + ['Magento\Framework\Model\ModelResource', 'Magento\Framework\Model\ResourceModel'], + ['Magento\Framework\Model\Test\Unit\Resource', 'Magento\Framework\Model\Test\Unit\ResourceModel'], ]; diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php index becf2127e48..c17f4d6e46e 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php @@ -179,7 +179,7 @@ return [ ['_dir', 'Magento\Backup\Model\Fs\Collection'], ['_dir', 'Magento\Cms\Model\Wysiwyg\Images\Storage'], ['_dirs', 'Magento\Core\Helper\Theme'], - ['_dirs', 'Magento\Framework\Model\ModelResource\Type\Db\Pdo\Mysql'], + ['_dirs', 'Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql'], ['_filesystem', 'Magento\GiftWrapping\Model\Wrapping'], ['_customer', 'Magento\Backend\Model\Session\Quote'], ['_customerFactory', 'Magento\Backend\Model\Session\Quote'], diff --git a/lib/internal/Magento/Framework/App/Config/Value.php b/lib/internal/Magento/Framework/App/Config/Value.php index 1065c8f1f19..ddfb123d637 100644 --- a/lib/internal/Magento/Framework/App/Config/Value.php +++ b/lib/internal/Magento/Framework/App/Config/Value.php @@ -8,7 +8,7 @@ namespace Magento\Framework\App\Config; /** * Config data model * - * @method \Magento\Framework\Model\ModelResource\Db\AbstractDb getResource() + * @method \Magento\Framework\Model\ResourceModel\Db\AbstractDb getResource() * @method string getScope() * @method \Magento\Framework\App\Config\ValueInterface setScope(string $value) * @method int getScopeId() @@ -46,7 +46,7 @@ class Value extends \Magento\Framework\Model\AbstractModel implements \Magento\F * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\App\Config\ScopeConfigInterface $config - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -54,7 +54,7 @@ class Value extends \Magento\Framework\Model\AbstractModel implements \Magento\F \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/lib/internal/Magento/Framework/App/ResourceConnection.php b/lib/internal/Magento/Framework/App/ResourceConnection.php index 13e10624484..56d220ebb57 100644 --- a/lib/internal/Magento/Framework/App/ResourceConnection.php +++ b/lib/internal/Magento/Framework/App/ResourceConnection.php @@ -9,7 +9,7 @@ namespace Magento\Framework\App; use Magento\Framework\App\DeploymentConfig; use Magento\Framework\App\ResourceConnection\ConfigInterface as ResourceConfigInterface; -use Magento\Framework\Model\ModelResource\Type\Db\ConnectionFactoryInterface; +use Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactoryInterface; use Magento\Framework\Config\ConfigOptionsListConstants; class ResourceConnection diff --git a/lib/internal/Magento/Framework/App/ResourceConnection/ConnectionFactory.php b/lib/internal/Magento/Framework/App/ResourceConnection/ConnectionFactory.php index 6a9922c138c..7924f4babda 100644 --- a/lib/internal/Magento/Framework/App/ResourceConnection/ConnectionFactory.php +++ b/lib/internal/Magento/Framework/App/ResourceConnection/ConnectionFactory.php @@ -7,7 +7,7 @@ */ namespace Magento\Framework\App\ResourceConnection; -use Magento\Framework\Model\ModelResource\Type\Db\ConnectionFactory as ModelConnectionFactory; +use Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactory as ModelConnectionFactory; use Magento\Framework\DB\Adapter\DdlCache; class ConnectionFactory extends ModelConnectionFactory diff --git a/lib/internal/Magento/Framework/App/Test/Unit/AclResourceTest.php b/lib/internal/Magento/Framework/App/Test/Unit/AclResourceTest.php index c32a284af11..265ca6f2964 100644 --- a/lib/internal/Magento/Framework/App/Test/Unit/AclResourceTest.php +++ b/lib/internal/Magento/Framework/App/Test/Unit/AclResourceTest.php @@ -8,7 +8,7 @@ namespace Magento\Framework\App\Test\Unit; use Magento\Framework\App\ResourceConnection; use Magento\Framework\Config\ConfigOptionsListConstants; -use Magento\Framework\Model\ModelResource\Type\Db\ConnectionFactoryInterface; +use Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactoryInterface; class AclResourceTest extends \PHPUnit_Framework_TestCase { diff --git a/lib/internal/Magento/Framework/DB/AbstractMapper.php b/lib/internal/Magento/Framework/DB/AbstractMapper.php index eb34aa778a0..630e3ceb0ae 100644 --- a/lib/internal/Magento/Framework/DB/AbstractMapper.php +++ b/lib/internal/Magento/Framework/DB/AbstractMapper.php @@ -29,7 +29,7 @@ abstract class AbstractMapper implements MapperInterface /** * Resource instance * - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected $resource; @@ -206,7 +206,7 @@ abstract class AbstractMapper implements MapperInterface /** * Get resource instance * - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ public function getResource() { diff --git a/lib/internal/Magento/Framework/DB/MapperInterface.php b/lib/internal/Magento/Framework/DB/MapperInterface.php index a8d6a54b918..4bf1e3be23c 100644 --- a/lib/internal/Magento/Framework/DB/MapperInterface.php +++ b/lib/internal/Magento/Framework/DB/MapperInterface.php @@ -25,7 +25,7 @@ interface MapperInterface /** * Get resource instance * - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ public function getResource(); diff --git a/lib/internal/Magento/Framework/DB/Query.php b/lib/internal/Magento/Framework/DB/Query.php index 22368c1227b..203a5158f64 100644 --- a/lib/internal/Magento/Framework/DB/Query.php +++ b/lib/internal/Magento/Framework/DB/Query.php @@ -27,7 +27,7 @@ class Query implements QueryInterface /** * Resource instance * - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected $resource; @@ -78,13 +78,13 @@ class Query implements QueryInterface /** * @param \Magento\Framework\DB\Select $select * @param \Magento\Framework\Api\CriteriaInterface $criteria - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy */ public function __construct( \Magento\Framework\DB\Select $select, \Magento\Framework\Api\CriteriaInterface $criteria, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource, + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy ) { $this->select = $select; @@ -224,7 +224,7 @@ class Query implements QueryInterface /** * Get resource instance * - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ public function getResource() { diff --git a/lib/internal/Magento/Framework/DB/QueryBuilder.php b/lib/internal/Magento/Framework/DB/QueryBuilder.php index 02eccb25e11..c1e25ed0981 100644 --- a/lib/internal/Magento/Framework/DB/QueryBuilder.php +++ b/lib/internal/Magento/Framework/DB/QueryBuilder.php @@ -25,7 +25,7 @@ class QueryBuilder /** * Resource instance * - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected $resource; @@ -65,10 +65,10 @@ class QueryBuilder /** * Set Resource * - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * @return void */ - public function setResource(\Magento\Framework\Model\ModelResource\Db\AbstractDb $resource) + public function setResource(\Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource) { $this->resource = $resource; } diff --git a/lib/internal/Magento/Framework/DB/QueryInterface.php b/lib/internal/Magento/Framework/DB/QueryInterface.php index d1806a63466..e2429031592 100644 --- a/lib/internal/Magento/Framework/DB/QueryInterface.php +++ b/lib/internal/Magento/Framework/DB/QueryInterface.php @@ -86,7 +86,7 @@ interface QueryInterface /** * Get resource instance * - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ public function getResource(); diff --git a/lib/internal/Magento/Framework/DB/Test/Unit/AbstractMapperTest.php b/lib/internal/Magento/Framework/DB/Test/Unit/AbstractMapperTest.php index 102cf2c9e1b..deec1825b9e 100644 --- a/lib/internal/Magento/Framework/DB/Test/Unit/AbstractMapperTest.php +++ b/lib/internal/Magento/Framework/DB/Test/Unit/AbstractMapperTest.php @@ -16,7 +16,7 @@ use Magento\Framework\DB\Select; class AbstractMapperTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -63,7 +63,7 @@ class AbstractMapperTest extends \PHPUnit_Framework_TestCase protected function setUp() { $this->resourceMock = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, diff --git a/lib/internal/Magento/Framework/DB/Test/Unit/QueryTest.php b/lib/internal/Magento/Framework/DB/Test/Unit/QueryTest.php index 13626313c98..d466786094b 100644 --- a/lib/internal/Magento/Framework/DB/Test/Unit/QueryTest.php +++ b/lib/internal/Magento/Framework/DB/Test/Unit/QueryTest.php @@ -21,7 +21,7 @@ class QueryTest extends \PHPUnit_Framework_TestCase protected $criteriaMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -71,7 +71,7 @@ class QueryTest extends \PHPUnit_Framework_TestCase [] ); $this->resourceMock = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [], '', false, diff --git a/lib/internal/Magento/Framework/Data/Collection/AbstractDb.php b/lib/internal/Magento/Framework/Data/Collection/AbstractDb.php index 0c602a4a091..339c76f06c2 100644 --- a/lib/internal/Magento/Framework/Data/Collection/AbstractDb.php +++ b/lib/internal/Magento/Framework/Data/Collection/AbstractDb.php @@ -117,7 +117,7 @@ abstract class AbstractDb extends \Magento\Framework\Data\Collection /** * Get resource instance. * - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ abstract public function getResource(); diff --git a/lib/internal/Magento/Framework/Data/Test/Unit/Collection/DbCollection.php b/lib/internal/Magento/Framework/Data/Test/Unit/Collection/DbCollection.php index c334bf20d4d..144ef6fe20d 100644 --- a/lib/internal/Magento/Framework/Data/Test/Unit/Collection/DbCollection.php +++ b/lib/internal/Magento/Framework/Data/Test/Unit/Collection/DbCollection.php @@ -11,17 +11,17 @@ namespace Magento\Framework\Data\Test\Unit\Collection; class DbCollection extends \Magento\Framework\Data\Collection\AbstractDb { /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ private $resource; /** * Set DB resource for testing purposes. * - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource * @return $this */ - public function setResource(\Magento\Framework\Model\ModelResource\Db\AbstractDb $resource) + public function setResource(\Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource) { $this->resource = $resource; return $this; @@ -30,7 +30,7 @@ class DbCollection extends \Magento\Framework\Data\Collection\AbstractDb /** * Get resource instance. * - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ public function getResource() { diff --git a/lib/internal/Magento/Framework/Flag/FlagResource.php b/lib/internal/Magento/Framework/Flag/FlagResource.php index 1ec3b61e0c1..730fee2e5d2 100644 --- a/lib/internal/Magento/Framework/Flag/FlagResource.php +++ b/lib/internal/Magento/Framework/Flag/FlagResource.php @@ -8,7 +8,7 @@ namespace Magento\Framework\Flag; /** * Flag Resource model */ -class FlagResource extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +class FlagResource extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * Define main table diff --git a/lib/internal/Magento/Framework/Model/AbstractExtensibleModel.php b/lib/internal/Magento/Framework/Model/AbstractExtensibleModel.php index 8ae263b1467..24802ef1ac1 100644 --- a/lib/internal/Magento/Framework/Model/AbstractExtensibleModel.php +++ b/lib/internal/Magento/Framework/Model/AbstractExtensibleModel.php @@ -48,7 +48,7 @@ abstract class AbstractExtensibleModel extends AbstractModel implements * @param \Magento\Framework\Registry $registry * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory * @param AttributeValueFactory $customAttributeFactory - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ @@ -57,7 +57,7 @@ abstract class AbstractExtensibleModel extends AbstractModel implements \Magento\Framework\Registry $registry, \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { diff --git a/lib/internal/Magento/Framework/Model/AbstractModel.php b/lib/internal/Magento/Framework/Model/AbstractModel.php index 23280395c5f..f72c455daf8 100644 --- a/lib/internal/Magento/Framework/Model/AbstractModel.php +++ b/lib/internal/Magento/Framework/Model/AbstractModel.php @@ -62,14 +62,14 @@ abstract class AbstractModel extends \Magento\Framework\DataObject /** * Resource model instance * - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected $_resource; /** * Resource collection * - * @var \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @var \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ protected $_resourceCollection; @@ -163,14 +163,14 @@ abstract class AbstractModel extends \Magento\Framework\DataObject /** * @param \Magento\Framework\Model\Context $context * @param \Magento\Framework\Registry $registry - * @param \Magento\Framework\Model\ModelResource\AbstractResource $resource + * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection * @param array $data */ public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, - \Magento\Framework\Model\ModelResource\AbstractResource $resource = null, + \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { @@ -448,7 +448,7 @@ abstract class AbstractModel extends \Magento\Framework\DataObject * Get resource instance * * @throws \Magento\Framework\Exception\LocalizedException - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected function _getResource() { @@ -476,7 +476,7 @@ abstract class AbstractModel extends \Magento\Framework\DataObject * * @TODO MAGETWO-23541: Incorrect dependencies between Model\AbstractModel and Data\Collection\Db from Framework * @throws \Magento\Framework\Exception\LocalizedException - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ public function getResourceCollection() { @@ -496,7 +496,7 @@ abstract class AbstractModel extends \Magento\Framework\DataObject * Retrieve collection instance * * @TODO MAGETWO-23541: Incorrect dependencies between Model\AbstractModel and Data\Collection\Db from Framework - * @return \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection + * @return \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection */ public function getCollection() { @@ -849,7 +849,7 @@ abstract class AbstractModel extends \Magento\Framework\DataObject /** * Retrieve model resource * - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ public function getResource() { diff --git a/lib/internal/Magento/Framework/Model/ModelResource/AbstractResource.php b/lib/internal/Magento/Framework/Model/ResourceModel/AbstractResource.php similarity index 99% rename from lib/internal/Magento/Framework/Model/ModelResource/AbstractResource.php rename to lib/internal/Magento/Framework/Model/ResourceModel/AbstractResource.php index 17cd5e51c23..ccd2131de93 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/AbstractResource.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/AbstractResource.php @@ -6,7 +6,7 @@ // @codingStandardsIgnoreFile -namespace Magento\Framework\Model\ModelResource; +namespace Magento\Framework\Model\ResourceModel; /** * Abstract resource model diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Db/AbstractDb.php b/lib/internal/Magento/Framework/Model/ResourceModel/Db/AbstractDb.php similarity index 98% rename from lib/internal/Magento/Framework/Model/ModelResource/Db/AbstractDb.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Db/AbstractDb.php index d6d202a408c..a42c95c1994 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Db/AbstractDb.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Db/AbstractDb.php @@ -4,12 +4,12 @@ * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Db; +namespace Magento\Framework\Model\ResourceModel\Db; use Magento\Framework\App\ResourceConnection; use Magento\Framework\Exception\AlreadyExistsException; use Magento\Framework\Exception\LocalizedException; -use Magento\Framework\Model\ModelResource\AbstractResource; +use Magento\Framework\Model\ResourceModel\AbstractResource; /** * Abstract resource model class @@ -133,10 +133,10 @@ abstract class AbstractDb extends AbstractResource /** * Class constructor * - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param string $connectionName */ - public function __construct(\Magento\Framework\Model\ModelResource\Db\Context $context, $connectionName = null) + public function __construct(\Magento\Framework\Model\ResourceModel\Db\Context $context, $connectionName = null) { $this->transactionManager = $context->getTransactionManager(); $this->_resources = $context->getResources(); diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Db/Collection/AbstractCollection.php b/lib/internal/Magento/Framework/Model/ResourceModel/Db/Collection/AbstractCollection.php similarity index 97% rename from lib/internal/Magento/Framework/Model/ModelResource/Db/Collection/AbstractCollection.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Db/Collection/AbstractCollection.php index 352861097da..582d6c79f64 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Db/Collection/AbstractCollection.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Db/Collection/AbstractCollection.php @@ -6,7 +6,7 @@ // @codingStandardsIgnoreFile -namespace Magento\Framework\Model\ModelResource\Db\Collection; +namespace Magento\Framework\Model\ResourceModel\Db\Collection; use Magento\Framework\App\ResourceConnection\SourceProviderInterface; /** @@ -33,7 +33,7 @@ abstract class AbstractCollection extends \Magento\Framework\Data\Collection\Abs /** * Resource instance * - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected $_resource; @@ -106,7 +106,7 @@ abstract class AbstractCollection extends \Magento\Framework\Data\Collection\Abs * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory, @@ -114,7 +114,7 @@ abstract class AbstractCollection extends \Magento\Framework\Data\Collection\Abs \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->_eventManager = $eventManager; parent::__construct($entityFactory, $logger, $fetchStrategy, $connection); @@ -455,7 +455,7 @@ abstract class AbstractCollection extends \Magento\Framework\Data\Collection\Abs /** * Get resource instance * - * @return \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @return \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ public function getResource() { diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Db/Context.php b/lib/internal/Magento/Framework/Model/ResourceModel/Db/Context.php similarity index 96% rename from lib/internal/Magento/Framework/Model/ModelResource/Db/Context.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Db/Context.php index 59fefb8016b..13877e882e9 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Db/Context.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Db/Context.php @@ -4,7 +4,7 @@ * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Db; +namespace Magento\Framework\Model\ResourceModel\Db; /** * @codeCoverageIgnore diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Db/ObjectRelationProcessor.php b/lib/internal/Magento/Framework/Model/ResourceModel/Db/ObjectRelationProcessor.php similarity index 95% rename from lib/internal/Magento/Framework/Model/ModelResource/Db/ObjectRelationProcessor.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Db/ObjectRelationProcessor.php index 194d00d2429..89ec37c6bf0 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Db/ObjectRelationProcessor.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Db/ObjectRelationProcessor.php @@ -4,7 +4,7 @@ * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Db; +namespace Magento\Framework\Model\ResourceModel\Db; use Magento\Framework\DB\Adapter\AdapterInterface as Connection; diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Db/Profiler.php b/lib/internal/Magento/Framework/Model/ResourceModel/Db/Profiler.php similarity index 94% rename from lib/internal/Magento/Framework/Model/ModelResource/Db/Profiler.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Db/Profiler.php index 05655c886f6..0ae0f5ea4c3 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Db/Profiler.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Db/Profiler.php @@ -5,7 +5,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Db; +namespace Magento\Framework\Model\ResourceModel\Db; class Profiler extends \Magento\Framework\DB\Profiler { @@ -33,7 +33,7 @@ class Profiler extends \Magento\Framework\DB\Profiler protected function _getTimerName($operation) { // default name of connection type - $timerName = \Magento\Framework\Model\ModelResource\Db\Profiler::DEFAULT_CONNECTION_TYPE; + $timerName = \Magento\Framework\Model\ResourceModel\Db\Profiler::DEFAULT_CONNECTION_TYPE; // connection type to database if (!empty($this->_type)) { @@ -48,7 +48,7 @@ class Profiler extends \Magento\Framework\DB\Profiler $timerName .= '_' . $this->_host; } - return \Magento\Framework\Model\ModelResource\Db\Profiler::TIMER_PREFIX . ':' . $timerName; + return \Magento\Framework\Model\ResourceModel\Db\Profiler::TIMER_PREFIX . ':' . $timerName; } /** diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Db/TransactionManager.php b/lib/internal/Magento/Framework/Model/ResourceModel/Db/TransactionManager.php similarity index 96% rename from lib/internal/Magento/Framework/Model/ModelResource/Db/TransactionManager.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Db/TransactionManager.php index 57a636a577b..920eca7e941 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Db/TransactionManager.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Db/TransactionManager.php @@ -4,7 +4,7 @@ * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Db; +namespace Magento\Framework\Model\ResourceModel\Db; use Magento\Framework\DB\Adapter\AdapterInterface as Connection; diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Db/TransactionManagerInterface.php b/lib/internal/Magento/Framework/Model/ResourceModel/Db/TransactionManagerInterface.php similarity index 91% rename from lib/internal/Magento/Framework/Model/ModelResource/Db/TransactionManagerInterface.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Db/TransactionManagerInterface.php index 981edbb64c1..e4e72c8999a 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Db/TransactionManagerInterface.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Db/TransactionManagerInterface.php @@ -4,7 +4,7 @@ * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Db; +namespace Magento\Framework\Model\ResourceModel\Db; use Magento\Framework\DB\Adapter\AdapterInterface as Connection; diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/AbstractDb.php b/lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/AbstractDb.php similarity index 86% rename from lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/AbstractDb.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/AbstractDb.php index 8b8e3e8c355..b6da084e2b7 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/AbstractDb.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/AbstractDb.php @@ -3,12 +3,12 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Db\VersionControl; +namespace Magento\Framework\Model\ResourceModel\Db\VersionControl; /** * Class AbstractDb with snapshot saving and relation save processing */ -abstract class AbstractDb extends \Magento\Framework\Model\ModelResource\Db\AbstractDb +abstract class AbstractDb extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { /** * @var Snapshot @@ -23,11 +23,11 @@ abstract class AbstractDb extends \Magento\Framework\Model\ModelResource\Db\Abst /** * @param Snapshot $entitySnapshot * @param RelationComposite $entityRelationComposite - * @param \Magento\Framework\Model\ModelResource\Db\Context $context + * @param \Magento\Framework\Model\ResourceModel\Db\Context $context * @param string $connectionName */ public function __construct( - \Magento\Framework\Model\ModelResource\Db\Context $context, + \Magento\Framework\Model\ResourceModel\Db\Context $context, Snapshot $entitySnapshot, RelationComposite $entityRelationComposite, $connectionName = null diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/Collection.php b/lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/Collection.php similarity index 85% rename from lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/Collection.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/Collection.php index 75804638605..3591c1a2c07 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/Collection.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/Collection.php @@ -3,12 +3,12 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Db\VersionControl; +namespace Magento\Framework\Model\ResourceModel\Db\VersionControl; /** * Class Collection */ -abstract class Collection extends \Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection +abstract class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * @var Snapshot @@ -22,7 +22,7 @@ abstract class Collection extends \Magento\Framework\Model\ModelResource\Db\Coll * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param Snapshot $entitySnapshot * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection - * @param \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource + * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory, @@ -31,7 +31,7 @@ abstract class Collection extends \Magento\Framework\Model\ModelResource\Db\Coll \Magento\Framework\Event\ManagerInterface $eventManager, Snapshot $entitySnapshot, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, - \Magento\Framework\Model\ModelResource\Db\AbstractDb $resource = null + \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->entitySnapshot = $entitySnapshot; parent::__construct( diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/Metadata.php b/lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/Metadata.php similarity index 94% rename from lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/Metadata.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/Metadata.php index 7dfef23ac5b..bfab1304282 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/Metadata.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/Metadata.php @@ -3,7 +3,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Db\VersionControl; +namespace Magento\Framework\Model\ResourceModel\Db\VersionControl; /** * Class Metadata represents a list of entity fields that are applicable for persistence operations diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/RelationComposite.php b/lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/RelationComposite.php similarity index 95% rename from lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/RelationComposite.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/RelationComposite.php index 49d9ff8db1a..23626faa7bf 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/RelationComposite.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/RelationComposite.php @@ -3,7 +3,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Db\VersionControl; +namespace Magento\Framework\Model\ResourceModel\Db\VersionControl; use Magento\Framework\Model\AbstractModel; use Magento\Framework\Event\ManagerInterface as EventManager; diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/RelationInterface.php b/lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/RelationInterface.php similarity index 86% rename from lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/RelationInterface.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/RelationInterface.php index 636597621ff..257b9652b31 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/RelationInterface.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/RelationInterface.php @@ -3,7 +3,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Db\VersionControl; +namespace Magento\Framework\Model\ResourceModel\Db\VersionControl; /** * Interface RelationInterface diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/Snapshot.php b/lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/Snapshot.php similarity index 96% rename from lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/Snapshot.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/Snapshot.php index 854c1423dc0..c2de9047c4e 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Db/VersionControl/Snapshot.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Db/VersionControl/Snapshot.php @@ -3,7 +3,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Db\VersionControl; +namespace Magento\Framework\Model\ResourceModel\Db\VersionControl; /** * Class Snapshot register snapshot of entity data, for tracking changes diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Entity/AbstractEntity.php b/lib/internal/Magento/Framework/Model/ResourceModel/Entity/AbstractEntity.php similarity index 94% rename from lib/internal/Magento/Framework/Model/ModelResource/Entity/AbstractEntity.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Entity/AbstractEntity.php index d725a102744..6b323bf323c 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Entity/AbstractEntity.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Entity/AbstractEntity.php @@ -3,7 +3,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Entity; +namespace Magento\Framework\Model\ResourceModel\Entity; abstract class AbstractEntity { diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Entity/Table.php b/lib/internal/Magento/Framework/Model/ResourceModel/Entity/Table.php similarity index 73% rename from lib/internal/Magento/Framework/Model/ModelResource/Entity/Table.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Entity/Table.php index 75fe3c8189a..f6eac910f3e 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Entity/Table.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Entity/Table.php @@ -3,13 +3,13 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Entity; +namespace Magento\Framework\Model\ResourceModel\Entity; /** * Class describing db table resource entity * */ -class Table extends \Magento\Framework\Model\ModelResource\Entity\AbstractEntity +class Table extends \Magento\Framework\Model\ResourceModel\Entity\AbstractEntity { /** * Get table diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Iterator.php b/lib/internal/Magento/Framework/Model/ResourceModel/Iterator.php similarity index 94% rename from lib/internal/Magento/Framework/Model/ModelResource/Iterator.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Iterator.php index 63de2861a2b..c165dec4e7a 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Iterator.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Iterator.php @@ -7,7 +7,7 @@ /** * Active record implementation */ -namespace Magento\Framework\Model\ModelResource; +namespace Magento\Framework\Model\ResourceModel; use Magento\Framework\DB\Adapter\AdapterInterface; use Magento\Framework\Exception\LocalizedException; @@ -22,7 +22,7 @@ class Iterator extends \Magento\Framework\DataObject * @param array|string $callbacks * @param array $args * @param AdapterInterface $connection - * @return \Magento\Framework\Model\ModelResource\Iterator + * @return \Magento\Framework\Model\ResourceModel\Iterator */ public function walk($query, array $callbacks, array $args = [], $connection = null) { diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Type/AbstractType.php b/lib/internal/Magento/Framework/Model/ResourceModel/Type/AbstractType.php similarity index 83% rename from lib/internal/Magento/Framework/Model/ModelResource/Type/AbstractType.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Type/AbstractType.php index 6a219bf6608..172434f5d56 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Type/AbstractType.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Type/AbstractType.php @@ -3,7 +3,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Type; +namespace Magento\Framework\Model\ResourceModel\Type; abstract class AbstractType { @@ -19,7 +19,7 @@ abstract class AbstractType * * @var String */ - protected $_entityClass = 'Magento\Framework\Model\ModelResource\Entity\AbstractEntity'; + protected $_entityClass = 'Magento\Framework\Model\ResourceModel\Entity\AbstractEntity'; /** * Retrieve entity type diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Type/Db.php b/lib/internal/Magento/Framework/Model/ResourceModel/Type/Db.php similarity index 50% rename from lib/internal/Magento/Framework/Model/ModelResource/Type/Db.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Type/Db.php index 9c07c36575d..db4737b9923 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Type/Db.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Type/Db.php @@ -3,15 +3,15 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Type; +namespace Magento\Framework\Model\ResourceModel\Type; -abstract class Db extends \Magento\Framework\Model\ModelResource\Type\AbstractType +abstract class Db extends \Magento\Framework\Model\ResourceModel\Type\AbstractType { /** * Constructor */ public function __construct() { - $this->_entityClass = 'Magento\Framework\Model\ModelResource\Entity\Table'; + $this->_entityClass = 'Magento\Framework\Model\ResourceModel\Entity\Table'; } } diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Type/Db/ConnectionFactory.php b/lib/internal/Magento/Framework/Model/ResourceModel/Type/Db/ConnectionFactory.php similarity index 95% rename from lib/internal/Magento/Framework/Model/ModelResource/Type/Db/ConnectionFactory.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Type/Db/ConnectionFactory.php index 886d1fdbdaa..ed253a64539 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Type/Db/ConnectionFactory.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Type/Db/ConnectionFactory.php @@ -5,7 +5,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Type\Db; +namespace Magento\Framework\Model\ResourceModel\Type\Db; use Magento\Framework\ObjectManagerInterface; diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Type/Db/ConnectionFactoryInterface.php b/lib/internal/Magento/Framework/Model/ResourceModel/Type/Db/ConnectionFactoryInterface.php similarity index 88% rename from lib/internal/Magento/Framework/Model/ModelResource/Type/Db/ConnectionFactoryInterface.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Type/Db/ConnectionFactoryInterface.php index ce5cbb166d2..02a9dd0bce6 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Type/Db/ConnectionFactoryInterface.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Type/Db/ConnectionFactoryInterface.php @@ -5,7 +5,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\ModelResource\Type\Db; +namespace Magento\Framework\Model\ResourceModel\Type\Db; interface ConnectionFactoryInterface { diff --git a/lib/internal/Magento/Framework/Model/ModelResource/Type/Db/Pdo/Mysql.php b/lib/internal/Magento/Framework/Model/ResourceModel/Type/Db/Pdo/Mysql.php similarity index 95% rename from lib/internal/Magento/Framework/Model/ModelResource/Type/Db/Pdo/Mysql.php rename to lib/internal/Magento/Framework/Model/ResourceModel/Type/Db/Pdo/Mysql.php index 5ed1847c4df..e28f3109687 100644 --- a/lib/internal/Magento/Framework/Model/ModelResource/Type/Db/Pdo/Mysql.php +++ b/lib/internal/Magento/Framework/Model/ResourceModel/Type/Db/Pdo/Mysql.php @@ -6,13 +6,13 @@ // @codingStandardsIgnoreFile -namespace Magento\Framework\Model\ModelResource\Type\Db\Pdo; +namespace Magento\Framework\Model\ResourceModel\Type\Db\Pdo; use Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface; use Magento\Framework\DB; use Magento\Framework\Stdlib; -class Mysql extends \Magento\Framework\Model\ModelResource\Type\Db implements ConnectionAdapterInterface +class Mysql extends \Magento\Framework\Model\ResourceModel\Type\Db implements ConnectionAdapterInterface { /** * @var Stdlib\StringUtils diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/AbstractExtensibleModelTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/AbstractExtensibleModelTest.php index 753c995c8c2..84959d09523 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/AbstractExtensibleModelTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/AbstractExtensibleModelTest.php @@ -29,7 +29,7 @@ class AbstractExtensibleModelTest extends \PHPUnit_Framework_TestCase protected $registryMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -72,7 +72,7 @@ class AbstractExtensibleModelTest extends \PHPUnit_Framework_TestCase ); $this->registryMock = $this->getMock('Magento\Framework\Registry', [], [], '', false); $this->resourceMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [ '_construct', 'getConnection', diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/AbstractModelTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/AbstractModelTest.php index 0ca67c81c32..e0674f8a882 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/AbstractModelTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/AbstractModelTest.php @@ -25,7 +25,7 @@ class AbstractModelTest extends \PHPUnit_Framework_TestCase protected $registryMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; @@ -62,7 +62,7 @@ class AbstractModelTest extends \PHPUnit_Framework_TestCase ); $this->registryMock = $this->getMock('Magento\Framework\Registry', [], [], '', false); $this->resourceMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [ '_construct', 'getConnection', diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/AbstractDbTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/AbstractDbTest.php similarity index 92% rename from lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/AbstractDbTest.php rename to lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/AbstractDbTest.php index 480bf65ee6f..2c68b6dd876 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/AbstractDbTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/AbstractDbTest.php @@ -6,12 +6,12 @@ // @codingStandardsIgnoreFile -namespace Magento\Framework\Model\Test\Unit\ModelResource\Db; +namespace Magento\Framework\Model\Test\Unit\ResourceModel\Db; class AbstractDbTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected $_model; @@ -41,16 +41,16 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase ); $this->relationProcessorMock = $this->getMock( - '\Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor', + '\Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor', [], [], '', false ); $this->transactionManagerMock = $this->getMock( - '\Magento\Framework\Model\ModelResource\Db\TransactionManagerInterface' + '\Magento\Framework\Model\ResourceModel\Db\TransactionManagerInterface' ); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $contextMock->expects($this->once())->method('getResources')->willReturn($this->_resourcesMock); $contextMock->expects($this->once()) ->method('getObjectRelationProcessor') @@ -60,7 +60,7 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase ->willReturn($this->transactionManagerMock); $this->_model = $this->getMockForAbstractClass( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [$contextMock], '', true, @@ -113,7 +113,7 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase public function testAddUniqueFieldArray() { $this->assertInstanceOf( - '\Magento\Framework\Model\ModelResource\Db\AbstractDb', + '\Magento\Framework\Model\ResourceModel\Db\AbstractDb', $this->_model->addUniqueField(['someField']) ); } @@ -131,7 +131,7 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase { $data = 'MainTableName'; $idFieldNameProperty = new \ReflectionProperty( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', '_idFieldName' + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', '_idFieldName' ); $idFieldNameProperty->setAccessible(true); $idFieldNameProperty->setValue($this->_model, $data); @@ -154,7 +154,7 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase */ public function testGetMainTable($tableName, $expectedResult) { - $mainTableProperty = new \ReflectionProperty('Magento\Framework\Model\ModelResource\Db\AbstractDb', '_mainTable'); + $mainTableProperty = new \ReflectionProperty('Magento\Framework\Model\ResourceModel\Db\AbstractDb', '_mainTable'); $mainTableProperty->setAccessible(true); $mainTableProperty->setValue($this->_model, $tableName); $this->_resourcesMock->expects($this->once()) @@ -188,7 +188,7 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase $this->_resourcesMock->expects($this->once())->method('getTableName')->with($data)->will( $this->returnValue('tableName') ); - $tablesProperty = new \ReflectionProperty('Magento\Framework\Model\ModelResource\Db\AbstractDb', '_tables'); + $tablesProperty = new \ReflectionProperty('Magento\Framework\Model\ResourceModel\Db\AbstractDb', '_tables'); $tablesProperty->setAccessible(true); $tablesProperty->setValue($this->_model, [$data]); $this->assertEquals($data, $this->_model->getTable($data)); @@ -232,7 +232,7 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase public function testResetUniqueField() { - $uniqueFields = new \ReflectionProperty('Magento\Framework\Model\ModelResource\Db\AbstractDb', '_uniqueFields'); + $uniqueFields = new \ReflectionProperty('Magento\Framework\Model\ResourceModel\Db\AbstractDb', '_uniqueFields'); $uniqueFields->setAccessible(true); $uniqueFields->setValue($this->_model, ['uniqueField1', 'uniqueField2']); $this->_model->resetUniqueField(); @@ -242,7 +242,7 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase public function testGetUniqueFields() { $uniqueFieldsReflection = new \ReflectionProperty( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', '_uniqueFields' ); $uniqueFieldsReflection->setAccessible(true); @@ -270,12 +270,12 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase ); $value = 'some_value'; - $idFieldName = new \ReflectionProperty('Magento\Framework\Model\ModelResource\Db\AbstractDb', '_idFieldName'); + $idFieldName = new \ReflectionProperty('Magento\Framework\Model\ResourceModel\Db\AbstractDb', '_idFieldName'); $idFieldName->setAccessible(true); $idFieldName->setValue($this->_model, 'field_value'); $this->assertInstanceOf( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', $this->_model->load($abstractModelMock, $value, $idFieldName) ); } @@ -323,13 +323,13 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase $this->returnValue('tableName') ); $mainTableReflection = new \ReflectionProperty( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', '_mainTable' ); $mainTableReflection->setAccessible(true); $mainTableReflection->setValue($this->_model, 'tableName'); $idFieldNameReflection = new \ReflectionProperty( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', '_idFieldName' ); $idFieldNameReflection->setAccessible(true); @@ -340,7 +340,7 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase $abstractModelMock->expects($this->once())->method('afterDelete'); $abstractModelMock->expects($this->once())->method('afterDeleteCommit'); $this->assertInstanceOf( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', $this->_model->delete($abstractModelMock) ); } @@ -384,7 +384,7 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase true, ['__wakeup', 'getOrigData', 'getData'] ); - $mainTableProperty = new \ReflectionProperty('Magento\Framework\Model\ModelResource\Db\AbstractDb', '_mainTable'); + $mainTableProperty = new \ReflectionProperty('Magento\Framework\Model\ResourceModel\Db\AbstractDb', '_mainTable'); $mainTableProperty->setAccessible(true); $mainTableProperty->setValue($this->_model, 'table'); @@ -417,7 +417,7 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase ); $registryMock = $this->getMock('\Magento\Framework\Registry', [], [], '', false); $resourceMock = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', [ '_construct', 'getConnection', @@ -448,13 +448,13 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase $this->returnValue('tableName') ); $mainTableReflection = new \ReflectionProperty( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', '_mainTable' ); $mainTableReflection->setAccessible(true); $mainTableReflection->setValue($this->_model, 'tableName'); $idFieldNameReflection = new \ReflectionProperty( - 'Magento\Framework\Model\ModelResource\Db\AbstractDb', + 'Magento\Framework\Model\ResourceModel\Db\AbstractDb', '_idFieldName' ); $idFieldNameReflection->setAccessible(true); diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/Collection/AbstractCollectionTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/Collection/AbstractCollectionTest.php similarity index 97% rename from lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/Collection/AbstractCollectionTest.php rename to lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/Collection/AbstractCollectionTest.php index e64b46417df..8e9abd11fef 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/Collection/AbstractCollectionTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/Collection/AbstractCollectionTest.php @@ -6,10 +6,10 @@ // @codingStandardsIgnoreFile -namespace Magento\Framework\Model\Test\Unit\ModelResource\Db\Collection; +namespace Magento\Framework\Model\Test\Unit\ResourceModel\Db\Collection; use Magento\Framework\DB\Select; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Framework\DataObject as MagentoObject; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper; @@ -38,7 +38,7 @@ class AbstractCollectionTest extends \PHPUnit_Framework_TestCase /** @var \Magento\Framework\Event\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $managerMock; - /** @var \Magento\Framework\Model\ModelResource\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ + /** @var \Magento\Framework\Model\ResourceModel\Db\AbstractDb|\PHPUnit_Framework_MockObject_MockObject */ protected $resourceMock; /** @var \Magento\Framework\DB\Adapter\Pdo\Mysql|\PHPUnit_Framework_MockObject_MockObject */ @@ -103,14 +103,14 @@ class AbstractCollectionTest extends \PHPUnit_Framework_TestCase protected function getUut() { return $this->objectManagerHelper->getObject( - 'Magento\Framework\Model\Test\Unit\ModelResource\Db\Collection\Uut', + 'Magento\Framework\Model\Test\Unit\ResourceModel\Db\Collection\Uut', [ 'entityFactory' => $this->entityFactoryMock, 'logger' => $this->loggerMock, 'fetchStrategy' => $this->fetchStrategyMock, 'eventManager' => $this->managerMock, 'connection' => $this->connectionMock, - // Magento\Framework\Flag\FlagResource extends Magento\Framework\Model\ModelResource\Db\AbstractDb + // Magento\Framework\Flag\FlagResource extends Magento\Framework\Model\ResourceModel\Db\AbstractDb 'resource' => $this->resourceMock, ] ); diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/VersionControl/MetadataTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/VersionControl/MetadataTest.php similarity index 91% rename from lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/VersionControl/MetadataTest.php rename to lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/VersionControl/MetadataTest.php index cb8768fbf06..014909543bc 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/VersionControl/MetadataTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/VersionControl/MetadataTest.php @@ -3,7 +3,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\Test\Unit\ModelResource\Db\VersionControl; +namespace Magento\Framework\Model\Test\Unit\ResourceModel\Db\VersionControl; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; @@ -13,7 +13,7 @@ use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; class MetadataTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Metadata + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Metadata */ protected $entityMetadata; @@ -23,7 +23,7 @@ class MetadataTest extends \PHPUnit_Framework_TestCase protected $model; /** - * @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\Model\ModelResource\Db\AbstractDb + * @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\Model\ResourceModel\Db\AbstractDb */ protected $resource; @@ -64,7 +64,7 @@ class MetadataTest extends \PHPUnit_Framework_TestCase $this->model->expects($this->any())->method('getResource')->willReturn($this->resource); $this->resource->expects($this->any())->method('getConnection')->willReturn($this->connection); $this->entityMetadata = $objectManager->getObject( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Metadata' + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Metadata' ); } diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/VersionControl/RelationCompositeTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/VersionControl/RelationCompositeTest.php similarity index 88% rename from lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/VersionControl/RelationCompositeTest.php rename to lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/VersionControl/RelationCompositeTest.php index e099a2d0cee..428e9bef37d 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/VersionControl/RelationCompositeTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/VersionControl/RelationCompositeTest.php @@ -4,7 +4,7 @@ * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\Test\Unit\ModelResource\Db\VersionControl; +namespace Magento\Framework\Model\Test\Unit\ResourceModel\Db\VersionControl; /** * Class RelationCompositeTest @@ -12,7 +12,7 @@ namespace Magento\Framework\Model\Test\Unit\ModelResource\Db\VersionControl; class RelationCompositeTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite */ protected $entityRelationComposite; @@ -22,7 +22,7 @@ class RelationCompositeTest extends \PHPUnit_Framework_TestCase protected $modelMock; /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationInterface + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface */ protected $relationProcessorMock; @@ -48,10 +48,10 @@ class RelationCompositeTest extends \PHPUnit_Framework_TestCase ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->relationProcessorMock = $this->getMockBuilder( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\RelationInterface' + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface' )->disableOriginalConstructor()->getMockForAbstractClass(); - $this->entityRelationComposite = new \Magento\Framework\Model\ModelResource\Db\VersionControl\RelationComposite( + $this->entityRelationComposite = new \Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationComposite( $this->eventManagerMock, [ 'default' => $this->relationProcessorMock diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/VersionControl/SnapshotTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/VersionControl/SnapshotTest.php similarity index 90% rename from lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/VersionControl/SnapshotTest.php rename to lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/VersionControl/SnapshotTest.php index 36dd2997d93..a228106db64 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/VersionControl/SnapshotTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/VersionControl/SnapshotTest.php @@ -3,7 +3,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\Test\Unit\ModelResource\Db\VersionControl; +namespace Magento\Framework\Model\Test\Unit\ResourceModel\Db\VersionControl; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; @@ -13,12 +13,12 @@ use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; class SnapshotTest extends \PHPUnit_Framework_TestCase { /** - * @var \Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot + * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot */ protected $entitySnapshot; /** - * @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\Model\ModelResource\Db\VersionControl\Metadata + * @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\Model\ResourceModel\Db\VersionControl\Metadata */ protected $entityMetadata; @@ -42,7 +42,7 @@ class SnapshotTest extends \PHPUnit_Framework_TestCase ); $this->entityMetadata = $this->getMock( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Metadata', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Metadata', ['getFields'], [], '', @@ -50,7 +50,7 @@ class SnapshotTest extends \PHPUnit_Framework_TestCase ); $this->entitySnapshot = $objectManager->getObject( - 'Magento\Framework\Model\ModelResource\Db\VersionControl\Snapshot', + 'Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot', ['metadata' => $this->entityMetadata] ); } diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Type/Db/ConnectionFactoryTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Type/Db/ConnectionFactoryTest.php similarity index 93% rename from lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Type/Db/ConnectionFactoryTest.php rename to lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Type/Db/ConnectionFactoryTest.php index 8b3ee72e722..011530e544e 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Type/Db/ConnectionFactoryTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Type/Db/ConnectionFactoryTest.php @@ -3,11 +3,11 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\Test\Unit\ModelResource\Type\Db; +namespace Magento\Framework\Model\Test\Unit\ResourceModel\Type\Db; use Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface; use Magento\Framework\DB\LoggerInterface; -use Magento\Framework\Model\ModelResource\Type\Db\ConnectionFactory; +use Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactory; use Magento\Framework\ObjectManagerInterface; class ConnectionFactoryTest extends \PHPUnit_Framework_TestCase diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Type/Db/Pdo/MysqlTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Type/Db/Pdo/MysqlTest.php similarity index 96% rename from lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Type/Db/Pdo/MysqlTest.php rename to lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Type/Db/Pdo/MysqlTest.php index bab2946213e..05c7a395031 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Type/Db/Pdo/MysqlTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Type/Db/Pdo/MysqlTest.php @@ -4,9 +4,9 @@ * See COPYING.txt for license details. */ -namespace Magento\Framework\Model\Test\Unit\ModelResource\Type\Db\Pdo; +namespace Magento\Framework\Model\Test\Unit\ResourceModel\Type\Db\Pdo; -use \Magento\Framework\Model\ModelResource\Type\Db\Pdo\Mysql; +use \Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql; class MysqlTest extends \PHPUnit_Framework_TestCase { diff --git a/lib/internal/Magento/Framework/Module/ModuleResource.php b/lib/internal/Magento/Framework/Module/ModuleResource.php index bbba5b33073..10b49c469e5 100644 --- a/lib/internal/Magento/Framework/Module/ModuleResource.php +++ b/lib/internal/Magento/Framework/Module/ModuleResource.php @@ -11,7 +11,7 @@ namespace Magento\Framework\Module; /** * Resource Model */ -class ModuleResource extends \Magento\Framework\Model\ModelResource\Db\AbstractDb implements \Magento\Framework\Module\ResourceInterface +class ModuleResource extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb implements \Magento\Framework\Module\ResourceInterface { /** * Database versions diff --git a/lib/internal/Magento/Framework/Test/Unit/FlagTest.php b/lib/internal/Magento/Framework/Test/Unit/FlagTest.php index da7593745b8..4cf45055b9f 100644 --- a/lib/internal/Magento/Framework/Test/Unit/FlagTest.php +++ b/lib/internal/Magento/Framework/Test/Unit/FlagTest.php @@ -55,7 +55,7 @@ class FlagTest extends \PHPUnit_Framework_TestCase ->method('getConnection') ->will($this->returnValue($connection)); - $dbContextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $dbContextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $dbContextMock->expects($this->once())->method('getResources')->willReturn($appResource); $resource = $this->getMock( '\Magento\Framework\Flag\FlagResource', diff --git a/lib/internal/Magento/Framework/TestFramework/Unit/Helper/ObjectManager.php b/lib/internal/Magento/Framework/TestFramework/Unit/Helper/ObjectManager.php index e1904afd558..aecb780b108 100644 --- a/lib/internal/Magento/Framework/TestFramework/Unit/Helper/ObjectManager.php +++ b/lib/internal/Magento/Framework/TestFramework/Unit/Helper/ObjectManager.php @@ -17,7 +17,7 @@ class ObjectManager * @var array */ protected $_specialCases = [ - 'Magento\Framework\Model\ModelResource\AbstractResource' => '_getResourceModelMock', + 'Magento\Framework\Model\ResourceModel\AbstractResource' => '_getResourceModelMock', 'Magento\Framework\TranslateInterface' => '_getTranslatorMock', ]; diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/CollectionFactory.php b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/CollectionFactory.php index bc0b10094d9..5adce4658a7 100644 --- a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/CollectionFactory.php +++ b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/CollectionFactory.php @@ -6,7 +6,7 @@ namespace Magento\Framework\View\Element\UiComponent\DataProvider; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Framework\ObjectManagerInterface; /** diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/DataProviderInterface.php b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/DataProviderInterface.php index 456b6f137b1..b2e3894c00b 100644 --- a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/DataProviderInterface.php +++ b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/DataProviderInterface.php @@ -5,7 +5,7 @@ */ namespace Magento\Framework\View\Element\UiComponent\DataProvider; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; /** * Interface DataProviderInterface diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php index 09b29cad871..f53fbf5d1f4 100644 --- a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php +++ b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/FulltextFilter.php @@ -7,7 +7,7 @@ namespace Magento\Framework\View\Element\UiComponent\DataProvider; use Magento\Framework\Data\Collection\AbstractDb as DbCollection; -use Magento\Framework\Model\ModelResource\Db\AbstractDb as DbResource; +use Magento\Framework\Model\ResourceModel\Db\AbstractDb as DbResource; use Magento\Framework\Api\Filter; /** diff --git a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/SearchResult.php b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/SearchResult.php index ab9038ca128..4dd0dab9f34 100644 --- a/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/SearchResult.php +++ b/lib/internal/Magento/Framework/View/Element/UiComponent/DataProvider/SearchResult.php @@ -7,7 +7,7 @@ namespace Magento\Framework\View\Element\UiComponent\DataProvider; use Magento\Framework\Api; -use Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection; +use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection; use Magento\Framework\Event\ManagerInterface as EventManager; use Magento\Framework\Data\Collection\Db\FetchStrategyInterface as FetchStrategy; use Magento\Framework\Data\Collection\EntityFactoryInterface as EntityFactory; diff --git a/setup/src/Magento/Setup/Model/Installer.php b/setup/src/Magento/Setup/Model/Installer.php index bf99f52be03..c3b0b306b14 100644 --- a/setup/src/Magento/Setup/Model/Installer.php +++ b/setup/src/Magento/Setup/Model/Installer.php @@ -15,7 +15,7 @@ use Magento\Framework\Component\ComponentRegistrar; use Magento\Framework\Config\ConfigOptionsListConstants; use Magento\Framework\Filesystem; use Magento\Framework\Exception\FileSystemException; -use Magento\Framework\Model\ModelResource\Db\Context; +use Magento\Framework\Model\ResourceModel\Db\Context; use Magento\Framework\Module\ModuleList\Loader as ModuleLoader; use Magento\Framework\Module\ModuleListInterface; use Magento\Framework\Shell; diff --git a/setup/src/Magento/Setup/Model/InstallerFactory.php b/setup/src/Magento/Setup/Model/InstallerFactory.php index d67611d7311..253c62ef626 100644 --- a/setup/src/Magento/Setup/Model/InstallerFactory.php +++ b/setup/src/Magento/Setup/Model/InstallerFactory.php @@ -62,10 +62,10 @@ class InstallerFactory $this->serviceLocator->get('Magento\Framework\App\MaintenanceMode'), $this->serviceLocator->get('Magento\Framework\Filesystem'), $this->serviceLocator->get('Magento\Setup\Model\ObjectManagerProvider'), - new \Magento\Framework\Model\ModelResource\Db\Context( + new \Magento\Framework\Model\ResourceModel\Db\Context( $this->getResource(), - $this->serviceLocator->get('Magento\Framework\Model\ModelResource\Db\TransactionManager'), - $this->serviceLocator->get('Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor') + $this->serviceLocator->get('Magento\Framework\Model\ResourceModel\Db\TransactionManager'), + $this->serviceLocator->get('Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor') ), $this->serviceLocator->get('Magento\Setup\Model\ConfigModel'), $this->serviceLocator->get('Magento\Framework\App\State\CleanupFiles'), diff --git a/setup/src/Magento/Setup/Module/ConnectionFactory.php b/setup/src/Magento/Setup/Module/ConnectionFactory.php index 51355fe3c39..8fdb1d0ff0b 100644 --- a/setup/src/Magento/Setup/Module/ConnectionFactory.php +++ b/setup/src/Magento/Setup/Module/ConnectionFactory.php @@ -7,11 +7,11 @@ */ namespace Magento\Setup\Module; -use Magento\Framework\Model\ModelResource\Type\Db\Pdo\Mysql; +use Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql; use Magento\Framework\Stdlib; use Zend\ServiceManager\ServiceLocatorInterface; -class ConnectionFactory implements \Magento\Framework\Model\ModelResource\Type\Db\ConnectionFactoryInterface +class ConnectionFactory implements \Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactoryInterface { /** * @var ServiceLocatorInterface diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/CartPriceRulesFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/CartPriceRulesFixtureTest.php index 12c3759b50c..2c277f66eea 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/CartPriceRulesFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/CartPriceRulesFixtureTest.php @@ -42,9 +42,9 @@ class CartPriceRulesFixtureTest extends \PHPUnit_Framework_TestCase ->method('getId') ->will($this->returnValue('website_id')); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $abstractDbMock = $this->getMockForAbstractClass( - '\Magento\Framework\Model\ModelResource\Db\AbstractDb', + '\Magento\Framework\Model\ResourceModel\Db\AbstractDb', [$contextMock], '', true, diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/CatalogPriceRulesFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/CatalogPriceRulesFixtureTest.php index 1c55d224ef0..2e6625e107a 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/CatalogPriceRulesFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/CatalogPriceRulesFixtureTest.php @@ -47,9 +47,9 @@ class CatalogPriceRulesFixtureTest extends \PHPUnit_Framework_TestCase ->method('getWebsites') ->will($this->returnValue([$websiteMock])); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $abstractDbMock = $this->getMockForAbstractClass( - '\Magento\Framework\Model\ModelResource\Db\AbstractDb', + '\Magento\Framework\Model\ResourceModel\Db\AbstractDb', [$contextMock], '', true, diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigurableProductsFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigurableProductsFixtureTest.php index bd05e43a9eb..c5f8b6e18f6 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigurableProductsFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/ConfigurableProductsFixtureTest.php @@ -31,9 +31,9 @@ class ConfigurableProductsFixtureTest extends \PHPUnit_Framework_TestCase { $importMock = $this->getMock('\Magento\ImportExport\Model\Import', [], [], '', false); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $abstractDbMock = $this->getMockForAbstractClass( - '\Magento\Framework\Model\ModelResource\Db\AbstractDb', + '\Magento\Framework\Model\ResourceModel\Db\AbstractDb', [$contextMock], '', true, diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/OrdersFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/OrdersFixtureTest.php index ea923b9b1db..0f787152d07 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/OrdersFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/OrdersFixtureTest.php @@ -132,9 +132,9 @@ class OrdersFixtureTest extends \PHPUnit_Framework_TestCase ->method('getStores') ->willReturn([$storeMock]); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $abstractDbMock = $this->getMockForAbstractClass( - '\Magento\Framework\Model\ModelResource\Db\AbstractDb', + '\Magento\Framework\Model\ResourceModel\Db\AbstractDb', [$contextMock], '', true, diff --git a/setup/src/Magento/Setup/Test/Unit/Fixtures/SimpleProductsFixtureTest.php b/setup/src/Magento/Setup/Test/Unit/Fixtures/SimpleProductsFixtureTest.php index dd3d0036829..9b144188510 100644 --- a/setup/src/Magento/Setup/Test/Unit/Fixtures/SimpleProductsFixtureTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Fixtures/SimpleProductsFixtureTest.php @@ -49,9 +49,9 @@ class SimpleProductsFixtureTest extends \PHPUnit_Framework_TestCase $importMock = $this->getMock('\Magento\ImportExport\Model\Import', [], [], '', false); - $contextMock = $this->getMock('\Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $contextMock = $this->getMock('\Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $abstractDbMock = $this->getMockForAbstractClass( - '\Magento\Framework\Model\ModelResource\Db\AbstractDb', + '\Magento\Framework\Model\ResourceModel\Db\AbstractDb', [$contextMock], '', true, diff --git a/setup/src/Magento/Setup/Test/Unit/Model/InstallerFactoryTest.php b/setup/src/Magento/Setup/Test/Unit/Model/InstallerFactoryTest.php index c2daace4b61..c2927df015d 100644 --- a/setup/src/Magento/Setup/Test/Unit/Model/InstallerFactoryTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Model/InstallerFactoryTest.php @@ -58,12 +58,12 @@ class InstallerFactoryTest extends \PHPUnit_Framework_TestCase $this->getMock('Magento\Setup\Model\ObjectManagerProvider', [], [], '', false), ], [ - 'Magento\Framework\Model\ModelResource\Db\TransactionManager', - $this->getMock('Magento\Framework\Model\ModelResource\Db\TransactionManager', [], [], '', false), + 'Magento\Framework\Model\ResourceModel\Db\TransactionManager', + $this->getMock('Magento\Framework\Model\ResourceModel\Db\TransactionManager', [], [], '', false), ], [ - 'Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor', - $this->getMock('Magento\Framework\Model\ModelResource\Db\ObjectRelationProcessor', [], [], '', false), + 'Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor', + $this->getMock('Magento\Framework\Model\ResourceModel\Db\ObjectRelationProcessor', [], [], '', false), ], [ 'Magento\Setup\Model\ConfigModel', diff --git a/setup/src/Magento/Setup/Test/Unit/Model/InstallerTest.php b/setup/src/Magento/Setup/Test/Unit/Model/InstallerTest.php index ad7a2aa68db..098e2108243 100644 --- a/setup/src/Magento/Setup/Test/Unit/Model/InstallerTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Model/InstallerTest.php @@ -144,7 +144,7 @@ class InstallerTest extends \PHPUnit_Framework_TestCase ]; /** - * @var \Magento\Framework\Model\ModelResource\Db\Context|\PHPUnit_Framework_MockObject_MockObject + * @var \Magento\Framework\Model\ResourceModel\Db\Context|\PHPUnit_Framework_MockObject_MockObject */ private $contextMock; @@ -171,7 +171,7 @@ class InstallerTest extends \PHPUnit_Framework_TestCase $this->maintenanceMode = $this->getMock('Magento\Framework\App\MaintenanceMode', [], [], '', false); $this->filesystem = $this->getMock('Magento\Framework\Filesystem', [], [], '', false); $this->objectManager = $this->getMockForAbstractClass('Magento\Framework\ObjectManagerInterface'); - $this->contextMock = $this->getMock('Magento\Framework\Model\ModelResource\Db\Context', [], [], '', false); + $this->contextMock = $this->getMock('Magento\Framework\Model\ResourceModel\Db\Context', [], [], '', false); $this->configModel = $this->getMock('Magento\Setup\Model\ConfigModel', [], [], '', false); $this->cleanupFiles = $this->getMock('Magento\Framework\App\State\CleanupFiles', [], [], '', false); $this->dbValidator = $this->getMock('Magento\Setup\Validator\DbValidator', [], [], '', false); -- GitLab From 4bec4eafeefa910430d25507c330e80246c106aa Mon Sep 17 00:00:00 2001 From: Ievgen Sentiabov <isentiabov@ebay.com> Date: Mon, 12 Oct 2015 12:22:17 +0300 Subject: [PATCH 335/420] MAGETWO-42818: Verify outputs for Braintree module - Removed unnecessary @escapeNotVerified annotations --- .../view/adminhtml/templates/data_js.phtml | 7 +- .../view/adminhtml/templates/form.phtml | 161 ++++++++------ .../templates/creditcard/delete.phtml | 36 ++-- .../frontend/templates/creditcard/edit.phtml | 196 ++++++++---------- .../frontend/templates/creditcard/index.phtml | 36 ++-- .../view/frontend/templates/data_js.phtml | 4 +- .../view/frontend/templates/form.phtml | 154 +++++++++----- 7 files changed, 329 insertions(+), 265 deletions(-) diff --git a/app/code/Magento/Braintree/view/adminhtml/templates/data_js.phtml b/app/code/Magento/Braintree/view/adminhtml/templates/data_js.phtml index cbfe3dcda5f..70634e81b09 100644 --- a/app/code/Magento/Braintree/view/adminhtml/templates/data_js.phtml +++ b/app/code/Magento/Braintree/view/adminhtml/templates/data_js.phtml @@ -7,21 +7,20 @@ /** * @var $block \Magento\Braintree\Block\Datajs */ -?> -<?php + $arrayData = [ "kountId" => $this->helper('Magento\Braintree\Helper\Data')->getKountId() ? $this->helper('Magento\Braintree\Helper\Data')->getKountId() : false, "formId" =>$block->getFormId(), "merchantId" => $block->getMerchantId(), - "braintreeDataJs" => $block->getJsSrc(), + "braintreeDataJs" => $block->escapeUrl($block->getJsSrc()), ]; $serializedFormData = $this->helper('Magento\Framework\Json\Helper\Data')->jsonEncode($arrayData); ?> <script type="text/x-magento-init"> { "body": { - "braintreeDataJs": <?php /* @escapeNotVerified */ echo $serializedFormData ?> + "braintreeDataJs": <?php /* @noEscape */ echo $serializedFormData ?> } } </script> diff --git a/app/code/Magento/Braintree/view/adminhtml/templates/form.phtml b/app/code/Magento/Braintree/view/adminhtml/templates/form.phtml index f13f2d77b1c..fcfed770a5a 100644 --- a/app/code/Magento/Braintree/view/adminhtml/templates/form.phtml +++ b/app/code/Magento/Braintree/view/adminhtml/templates/form.phtml @@ -7,110 +7,143 @@ // @codingStandardsIgnoreFile /** @var \Magento\Braintree\Block\Form $block */ -$_form = $block; -$_code = $_form->getMethodCode(); -$_storedCards = $this->helper('\Magento\Braintree\Helper\Createorder')->getLoggedInCustomerCards(); -$_useVault = $block->useVault(); -$_useCvv = $block->useCvv(); -$clientToken = $block->getClientToken(); +$code = $block->getMethodCode(); +$storedCards = $this->helper('\Magento\Braintree\Helper\Createorder')->getLoggedInCustomerCards(); +$useVault = $block->useVault(); +$useCvv = $block->useCvv(); +$clientToken = $block->escapeHtml($block->getClientToken()); $isFraudDetectionEnabled = $block->isFraudDetectionEnabled(); $braintreeDataJs = $block->getBraintreeDataJs(); $formData = [ - "useVault" => $_useVault, - "useCvv" => $_useCvv, + "useVault" => $useVault, + "useCvv" => $useCvv, "clientToken" => $clientToken, - "code" => $_code, + "code" => $code, "isFraudDetectionEnabled" => $isFraudDetectionEnabled, "braintreeDataJs"=> $braintreeDataJs, ]; $serializedFormData = $this->helper('Magento\Framework\Json\Helper\Data')->jsonEncode($formData); +$ccType = $block->getInfoData('cc_type'); +$ccExpMonth = $block->getInfoData('cc_exp_month'); +$ccExpYear = $block->getInfoData('cc_exp_year'); ?> -<input id="<?php /* @escapeNotVerified */ echo $_code ?>_payment_method" type="hidden" name="payment[method]" value="<?php /* @escapeNotVerified */ echo $_code ?>" /> -<div id="payment_form_<?php /* @escapeNotVerified */ echo $_code ?>" class="admin__page-section-item" style="display:none;" - data-mage-init='{"braintreeCcForm":<?php /* @escapeNotVerified */ echo $serializedFormData ?>}' +<input id="<?php /* @noEscape */ echo $code; ?>_payment_method" type="hidden" name="payment[method]" + value="<?php /* @noEscape */ echo $code; ?>" /> +<div id="payment_form_<?php /* @noEscape */ echo $code; ?>" class="admin__page-section-item" style="display:none;" + data-mage-init='{"braintreeCcForm":<?php /* @noEscape */ echo $serializedFormData; ?>}' > <input type="hidden" name="payment[payment_method_nonce]" id="braintree_nonce" value="" /> <input type="hidden" name="payment[cc_last4]" id="cc_last4" value="" /> <?php if ($isFraudDetectionEnabled): ?> - <input type="hidden" name="payment[device_data]" id="braintree_device_id" value="" /> + <input type="hidden" name="payment[device_data]" id="braintree_device_id" value="" /> <?php endif; ?> - <?php if ($_storedCards): ?> - <fieldset class="admin__fieldset"> - <div class="admin__field" id="<?php /* @escapeNotVerified */ echo $_code ?>_token_selector"> - <label class="admin__field-label" for="<?php /* @escapeNotVerified */ echo $_code ?>_cc_token"><?php /* @escapeNotVerified */ echo __('Payment Information') ?></label> - <div class="admin__field-control control"> - <select id="<?php /* @escapeNotVerified */ echo $_code ?>_cc_token" name="payment[cc_token]" class="select admin__control-select"> - <?php foreach ($_storedCards as $creditCard): ?> - <option value="<?php /* @escapeNotVerified */ echo $creditCard->token?>" <?php echo $creditCard->default ? 'selected="selected"' : '' ?>> - <?php /* @escapeNotVerified */ echo $creditCard->maskedNumber . ' - ' . $creditCard->cardType ?> - </option> - <?php endforeach; ?> - <option value=''><?php /* @escapeNotVerified */ echo __('Add new card') ?></option> - </select> + <?php if ($storedCards): ?> + <fieldset class="admin__fieldset"> + <div class="admin__field" id="<?php /* @noEscape */ echo $code; ?>_token_selector"> + <label class="admin__field-label" for="<?php /* @noEscape */ echo $code; ?>_cc_token"> + <?php echo $block->escapeHtml(__('Payment Information')); ?> + </label> + <div class="admin__field-control control"> + <select id="<?php /* @noEscape */ echo $code; ?>_cc_token" name="payment[cc_token]" + class="select admin__control-select"> + <?php foreach ($storedCards as $creditCard): ?> + <option value="<?php echo $block->escapeHtml($creditCard->token); ?>" + <?php /* @noEscape */ echo $creditCard->default ? ' selected="selected"' : ''; ?>> + <?php echo $block->escapeHtml($creditCard->maskedNumber . ' - ' . $creditCard->cardType); ?> + </option> + <?php endforeach; ?> + <option value=''><?php echo $block->escapeHtml(__('Add new card')); ?></option> + </select> + </div> </div> - </div> - </fieldset> + </fieldset> <?php endif; ?> <fieldset class="admin__fieldset hide_if_token_selected"> <div class="admin__field"> - <label class="label admin__field-label" for="<?php /* @escapeNotVerified */ echo $_code ?>_cc_type" ><?php /* @escapeNotVerified */ echo __('Credit Card Type') ?><span class="required">*</span></label> + <label class="label admin__field-label" for="<?php /* @noEscape */ echo $code; ?>_cc_type" > + <?php echo $block->escapeHtml(__('Credit Card Type')); ?><span class="required">*</span> + </label> <div class="admin__field-control control"> - <select id="<?php /* @escapeNotVerified */ echo $_code ?>_cc_type" name="payment[cc_type]" class="required-entry _required select admin__control-select validate-cc-type-select"> - <option value="">--<?php /* @escapeNotVerified */ echo __('Please Select')?>--</option> - <?php $_ccType = $_form->getInfoData('cc_type') ?> - <?php foreach ($_form->getCcAvailableTypes() as $_typeCode => $_typeName): ?> - <option value="<?php /* @escapeNotVerified */ echo $_typeCode ?>"<?php if($_typeCode==$_ccType): ?> selected="selected"<?php endif ?>><?php /* @escapeNotVerified */ echo $_typeName ?></option> - <?php endforeach ?> + <select id="<?php /* @noEscape */ echo $code; ?>_cc_type" name="payment[cc_type]" + class="required-entry _required select admin__control-select validate-cc-type-select"> + <option value="">--<?php echo $block->escapeHtml(__('Please Select')); ?>--</option> + <?php foreach ($block->getCcAvailableTypes() as $typeCode => $typeName): ?> + <option value="<?php echo $block->escapeHtml($typeCode); ?>" + <?php if($typeCode == $ccType): ?> selected="selected"<?php endif; ?>> + <?php echo $block->escapeHtml($typeName); ?> + </option> + <?php endforeach; ?> </select> </div> </div> </fieldset> <fieldset class="admin__fieldset hide_if_token_selected"> <div class="admin__field"> - <label class="label admin__field-label" for="<?php /* @escapeNotVerified */ echo $_code ?>_cc_number"><?php /* @escapeNotVerified */ echo __('Credit Card Number') ?><span class="required">*</span></label> + <label class="label admin__field-label" for="<?php /* @noEscape */ echo $code; ?>_cc_number"> + <?php echo $block->escapeHtml(__('Credit Card Number')); ?><span class="required">*</span> + </label> <div class="admin__field-control control"> - <input type="text" id="<?php /* @escapeNotVerified */ echo $_code ?>_cc_number" data-encrypted-name="payment[cc_number]" title="<?php /* @escapeNotVerified */ echo __('Credit Card Number') ?>" class="input-text admin__control-text validate-cc-number validate-cc-type" value="" /> + <input type="text" id="<?php /* @noEscape */ echo $code; ?>_cc_number" data-encrypted-name="payment[cc_number]" + title="<?php echo $block->escapeHtml(__('Credit Card Number')); ?>" + class="input-text admin__control-text validate-cc-number validate-cc-type" value="" /> </div> </div> </fieldset> <fieldset class="admin__fieldset hide_if_token_selected"> - <div id="<?php /* @escapeNotVerified */ echo $_code ?>_cc_type_exp_div" class="admin__field"> - <label class="label admin__field-label" for="<?php /* @escapeNotVerified */ echo $_code ?>_expiration" ><?php /* @escapeNotVerified */ echo __('Expiration Date') ?><span class="required">*</span></label> + <div id="<?php /* @noEscape */ echo $code; ?>_cc_type_exp_div" class="admin__field"> + <label class="label admin__field-label" for="<?php /* @noEscape */ echo $code; ?>_expiration"> + <?php echo $block->escapeHtml(__('Expiration Date')); ?><span class="required">*</span> + </label> <div class="admin__field-control control"> - <select id="<?php /* @escapeNotVerified */ echo $_code ?>_expiration" name="payment[cc_exp_month]" class="month validate-cc-exp required-entry _required select admin__control-select"> - <?php $_ccExpMonth = $_form->getInfoData('cc_exp_month') ?> - <?php foreach ($_form->getCcMonths() as $k=>$v): ?> - <option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpMonth): ?> selected="selected"<?php endif ?>><?php /* @escapeNotVerified */ echo $v ?></option> - <?php endforeach ?> + <select id="<?php /* @noEscape */ echo $code; ?>_expiration" name="payment[cc_exp_month]" + class="month validate-cc-exp required-entry _required select admin__control-select"> + <?php foreach ($block->getCcMonths() as $k=>$v): ?> + <option value="<?php /* @noEscape */ echo $k ? $block->escapeHtml($k) : ''; ?>" + <?php if ($k == $ccExpMonth): ?> selected="selected"<?php endif; ?>> + <?php echo $block->escapeHtml($v); ?></option> + <?php endforeach; ?> </select> - <?php $_ccExpYear = $_form->getInfoData('cc_exp_year') ?> - <select id="<?php /* @escapeNotVerified */ echo $_code ?>_expiration_yr" name="payment[cc_exp_year]" class="year required-entry _required select admin__control-select"> - <?php foreach ($_form->getCcYears() as $k=>$v): ?> - <option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpYear): ?> selected="selected"<?php endif ?>><?php /* @escapeNotVerified */ echo $v ?></option> + <select id="<?php /* @noEscape */ echo $code; ?>_expiration_yr" name="payment[cc_exp_year]" + class="year required-entry _required select admin__control-select"> + <?php foreach ($block->getCcYears() as $k => $v): ?> + <option value="<?php /* @noEscape */ echo $k ? $block->escapeHtml($k) : ''; ?>" + <?php if ($k == $ccExpYear): ?> selected="selected"<?php endif; ?>> + <?php echo $block->escapeHtml($v); ?> + </option> <?php endforeach ?> </select> </div> </div> </fieldset> - <?php echo $_form->getChildHtml() ?> - <?php if($_form->hasVerification()): ?> - <fieldset class="admin__fieldset hide_if_token_selected"> - <div id="<?php /* @escapeNotVerified */ echo $_code ?>_cc_type_cvv_div" class="admin__field"> - <label class="label admin__field-label" for="<?php /* @escapeNotVerified */ echo $_code ?>_cc_cid" ><?php /* @escapeNotVerified */ echo __('Card Verification Number') ?><span class="required">*</span></label> - <div class="admin__field-control control"> - <div class="v-fix"> - <input type="text" title="<?php /* @escapeNotVerified */ echo __('Card Verification Number') ?>" class="input-text admin__control-text cvv required-entry validate-cc-cvn" id="<?php /* @escapeNotVerified */ echo $_code ?>_cc_cid" data-encrypted-name="payment[cc_cid]" value="" /> + <?php echo $block->getChildHtml(); ?> + <?php if ($block->hasVerification()): ?> + <fieldset class="admin__fieldset hide_if_token_selected"> + <div id="<?php /* @noEscape */ echo $code; ?>_cc_type_cvv_div" class="admin__field"> + <label class="label admin__field-label" for="<?php /* @noEscape */ echo $code; ?>_cc_cid"> + <?php echo $block->escapeHtml(__('Card Verification Number')); ?><span class="required">*</span> + </label> + + <div class="admin__field-control control"> + <div class="v-fix"> + <input type="text" title="<?php echo $block->escapeHtml(__('Card Verification Number')); ?>" + class="input-text admin__control-text cvv required-entry validate-cc-cvn" + id="<?php /* @noEscape */ echo $code; ?>_cc_cid" data-encrypted-name="payment[cc_cid]" value=""/> + </div> </div> </div> - </div> - </fieldset> + </fieldset> <?php endif; ?> <?php if($_useVault): ?> - <fieldset class="admin__fieldset hide_if_token_selected"> - <div id="<?php /* @escapeNotVerified */ echo $_code ?>_store_in_vault_div" style="text-align:left;" class=""> - <input type="checkbox" title="<?php /* @escapeNotVerified */ echo __('Save this card for future use') ?>" class="input-checkbox" id="<?php /* @escapeNotVerified */ echo $_code ?>_store_in_vault" name="payment[store_in_vault]" value="1" /> - <label for="<?php /* @escapeNotVerified */ echo $_code ?>_store_in_vault" style="float:none;"><?php /* @escapeNotVerified */ echo __('Save this card for future use') ?></label> - </div> - </fieldset> + <fieldset class="admin__fieldset hide_if_token_selected"> + <div id="<?php /* @noEscape */ echo $code; ?>_store_in_vault_div" style="text-align:left;" class=""> + <input type="checkbox" title="<?php echo $block->escapeHtml(__('Save this card for future use')); ?>" + class="input-checkbox" id="<?php /* @noEscape */ echo $code; ?>_store_in_vault" + name="payment[store_in_vault]" value="1"/> + <label for="<?php /* @noEscape */ echo $code; ?>_store_in_vault" style="float:none;"> + <?php echo $block->escapeHtml(__('Save this card for future use')); ?> + + </label> + </div> + </fieldset> <?php endif; ?> </div> \ No newline at end of file diff --git a/app/code/Magento/Braintree/view/frontend/templates/creditcard/delete.phtml b/app/code/Magento/Braintree/view/frontend/templates/creditcard/delete.phtml index b9011bdd4f5..cba8e56e5aa 100644 --- a/app/code/Magento/Braintree/view/frontend/templates/creditcard/delete.phtml +++ b/app/code/Magento/Braintree/view/frontend/templates/creditcard/delete.phtml @@ -6,46 +6,54 @@ // @codingStandardsIgnoreFile - $creditCard = $block->creditCard(); - $token = $creditCard->token; +/** + * @var \Magento\Braintree\Block\Creditcard\Management $block + */ +$creditCard = $block->creditCard(); +$token = $block->escapeHtml($creditCard->token); ?> <?php echo $block->getLayout()->getMessagesBlock()->getGroupedHtml();?> -<form action="<?php /* @escapeNotVerified */ echo $block->getDeleteConfirmUrl() ?>" method="post" id="delete-form" +<form action="<?php echo $block->escapeUrl($block->getDeleteConfirmUrl()); ?>" method="post" id="delete-form" xmlns="http://www.w3.org/1999/html"> <fieldset class="fieldset info"> - <legend class="legend"><?php /* @escapeNotVerified */ echo __('Please confirm that you want to delete this credit card') ?></legend> + <legend class="legend"> + <?php echo $block->escapeHtml(__('Please confirm that you want to delete this credit card')); ?> + </legend> <div class="field"> <ul> <li> - <b><?php /* @escapeNotVerified */ echo __('Credit Card Number');?></b> + <b><?php echo $block->escapeHtml(__('Credit Card Number'));?></b> </li> <li> - <?php /* @escapeNotVerified */ echo $creditCard->maskedNumber;?> + <?php echo $block->escapeHtml($creditCard->maskedNumber);?> </li> <li> - <b><?php /* @escapeNotVerified */ echo __('Expiration Date');?></b> + <b><?php echo $block->escapeHtml(__('Expiration Date'));?></b> </li> <li> - <?php /* @escapeNotVerified */ echo $creditCard->expirationDate; ?> + <?php echo $block->escapeHtml($creditCard->expirationDate); ?> </li> <li> - <b><?php /* @escapeNotVerified */ echo __('Cardholder Name');?></b> + <b><?php echo $block->escapeHtml(__('Cardholder Name'));?></b> </li> <li> - <?php /* @escapeNotVerified */ echo $creditCard->cardholderName;?> + <?php echo $block->escapeHtml($creditCard->cardholderName);?> </li> </ul> </div> </fieldset> - <input type="hidden" name="token" value="<?php /* @escapeNotVerified */ echo $token ?>"> + <input type="hidden" name="token" value="<?php /* @noEscape */ echo $token; ?>"> <div class="actions-toolbar"> <div class="primary"> <button type="submit" id="opc-submit" data-role="opc-submit" class="action save primary" - title="<?php /* @escapeNotVerified */ echo __('Delete') ?>" ><?php /* @escapeNotVerified */ echo __('Delete') ?></span></button> + title="<?php echo $block->escapeHtml(__('Delete')); ?>" > + <?php echo $block->escapeHtml(__('Delete')); ?> + </button> </div> <div class="secondary"> - <a class="action back" href="<?php /* @escapeNotVerified */ echo $block->getBackUrl() ?>"><span><span><small>« </small> - <?php /* @escapeNotVerified */ echo __('Back') ?></span></a> + <a class="action back" href="<?php echo $block->escapeUrl($block->getBackUrl()); ?>"> + <span><small>« </small><?php echo $block->escapeHtml(__('Back')); ?></span> + </a> </div> </div> diff --git a/app/code/Magento/Braintree/view/frontend/templates/creditcard/edit.phtml b/app/code/Magento/Braintree/view/frontend/templates/creditcard/edit.phtml index 073009c4c6e..aa1a8e1f728 100644 --- a/app/code/Magento/Braintree/view/frontend/templates/creditcard/edit.phtml +++ b/app/code/Magento/Braintree/view/frontend/templates/creditcard/edit.phtml @@ -53,21 +53,37 @@ if ($block->isEditMode()) { $defaultPostalCode = ''; $defaultCountryCodeAlpha2 = ''; } +$streetValidationClass = $this->helper('Magento\Customer\Helper\Address')->getAttributeValidationClass('street'); +$default = $defaultCountryCodeAlpha2; + +$clientToken = $block->getClientToken(); +$formData = [ + "clientToken" => $clientToken, + 'ajaxSaveUrl' => $block->escapeUrl($block->getAjaxSaveUrl()), + 'isEditMode' => $block->isEditMode() ? true : false, + 'cardToken' => $block->isEditMode() ? $block->escapeHtml($creditCard->token) : '', + 'backUrl' => $block->escapeUrl($block->getBackUrl()), + 'hasVerification' => $block->hasVerification(), + "countrySpecificCardTypes" => $countrySpecificCardTypeConfig, + "applicableCardTypes" => $applicableCardTypeConfig, + "cardTypes" => $block->getCcAvailableTypes(), + "isFraudDetectionEnabled" => $block->isFraudDetectionEnabled() +]; +$serializedFormData = $this->helper('Magento\Framework\Json\Helper\Data')->jsonEncode($formData); ?> <form - class="form form-edit-credit-card" - action='<?php /* @escapeNotVerified */ echo $block->getFormAction() ?>' + class="form form-edit-credit-card" action="<?php echo $block->escapeUrl($block->getFormAction()); ?>" method="post" id="form-validate" data-mage-init='{"validation":{}}'> <?php echo $block->getBlockHtml('formkey'); ?> - <fieldset class="fieldset info" data-hasrequired="<?php /* @escapeNotVerified */ echo __('* Required Fields') ?>"> + <fieldset class="fieldset info" data-hasrequired="<?php echo $block->escapeHtml(__('* Required Fields')); ?>"> <legend class="legend"> - <span><?php /* @escapeNotVerified */ echo __('Credit Card') ?></span> + <span><?php echo $block->escapeHtml(__('Credit Card')); ?></span> </legend> <br> <div class="field name required"> <label for="credit_card_cardholder_name" class="label"> - <span><?php /* @escapeNotVerified */ echo __('Cardholder Name') ?></span> + <span><?php echo $block->escapeHtml(__('Cardholder Name')); ?></span> </label> <div class="control"> @@ -75,40 +91,32 @@ if ($block->isEditMode()) { type="text" class="input-text required-entry" id="credit_card_cardholder_name" - value="<?php /* @escapeNotVerified */ echo $defaultCardholder ?>" + value="<?php echo $block->escapeHtml($defaultCardholder); ?>" data-validate="{required:true}"> </div> </div> <div class="field required type"> <label for="credit_card_type" class="label"> - <span><?php /* @escapeNotVerified */ echo __('Credit Card Type') ?></span> + <span><?php echo $block->escapeHtml(__('Credit Card Type')); ?></span> </label> <div class="control"> <select name="credit_card_type" id="credit_card_type" data-container="credit_card_type" data-validate='{required:true, "validate-cc-type-select":"#credit_card_number"}'> - <option value=""><?php /* @escapeNotVerified */ echo __('--Please Select--') ?></option> - <?php - foreach ($block->getCcAvailableTypes() as $_typeCode => $_typeName) : - ?> - <option value="<?php /* @escapeNotVerified */ echo $_typeCode ?>" - <?php - if (stripos($_typeName, $defaultCcType) !== false) : - ?> selected="selected" - <?php - endif; - ?>> - <?php /* @escapeNotVerified */ echo $_typeName ?> + <option value=""><?php echo $block->escapeHtml(__('--Please Select--')); ?></option> + <?php foreach ($block->getCcAvailableTypes() as $typeCode => $typeName): ?> + <option value="<?php echo $block->escapeHtml($typeCode); ?>" + <?php if (stripos($typeName, $defaultCcType) !== false): ?> selected="selected"<?php endif; ?>> + <?php echo $block->escapeHtml($typeName); ?> </option> - <?php - endforeach; + <?php endforeach; ?> </select> </div> </div> <div class="field name required"> - <label for="credit_card_number" class="label"><span> - <?php /* @escapeNotVerified */ echo __('Credit Card Number') ?></span> + <label for="credit_card_number" class="label"> + <span><?php echo $block->escapeHtml(__('Credit Card Number')); ?></span> </label> <div class="control"> @@ -118,19 +126,13 @@ if ($block->isEditMode()) { class="input-text required-entry validate-cc-number" id="credit_card_number" autocomplete="off" - <?php - if ($block->isEditMode()) : - ?> - placeholder="<?php /* @escapeNotVerified */ echo $maskedNumber ?>" - <?php - endif; - ?> + <?php if ($block->isEditMode()): ?> placeholder="<?php echo $block->escapeHtml($maskedNumber); ?>"<?php endif; ?> data-validate="{'required-number':true, 'validate-cc-number':'#credit_card_number', 'validate-cc-type':'#credit_card_type'}"> </div> </div> <div class="field sp-methods required"> <label for="credit_card_expiration_date" class="label"> - <span><?php /* @escapeNotVerified */ echo __('Expiration Date') ?></span> + <span><?php echo $block->escapeHtml(__('Expiration Date')); ?></span> </label> <div class="control"> @@ -143,14 +145,12 @@ if ($block->isEditMode()) { id="credit_card_expiration" class="month validate-cc-exp required-entry" data-validate="{'required-number':true, 'validate-cc-exp':'#credit_card_expiration_yr'}"> - <?php - foreach ($block->getCcMonths() as $k => $v) : - ?> - <option - value="<?php echo $k ? $k : '' ?>"<?php if ($k == $defaultExpMonth) : ?> selected="selected"<?php endif ?>><?php /* @escapeNotVerified */ echo $v ?></option> - <?php - endforeach; - ?> + <?php foreach ($block->getCcMonths() as $k => $v): ?> + <option value="<?php /* @noEscape */ echo $k ? $block->escapeHtml($k) : '' ?>" + <?php if ($k == $defaultExpMonth): ?> selected="selected"<?php endif; ?>> + <?php echo $block->escapeHtml($v); ?> + </option> + <?php endforeach; ?> </select> </div> </div> @@ -163,22 +163,12 @@ if ($block->isEditMode()) { id="credit_card_expiration_yr" class="year required-entry" data-validate="{required:true}"> - <?php - foreach ($block->getCcYears() as $k => $v) : - ?> - <option - value="<?php echo $k ? $k : ''; ?>" - <?php - if ($k == $defaultExpYear) : - ?> selected="selected" - <?php - endif; - ?>> - <?php /* @escapeNotVerified */ echo $v ?> + <?php foreach ($block->getCcYears() as $k => $v): ?> + <option value="<?php /* @noEscape */ echo $k ? $k : ''; ?>" + <?php if ($k == $defaultExpYear): ?> selected="selected"<?php endif; ?>> + <?php echo $block->escapeHtml($v); ?> </option> - <?php - endforeach; - ?> + <?php endforeach; ?> </select> </div> </div> @@ -189,13 +179,13 @@ if ($block->isEditMode()) { <?php if ($block->hasVerification()): ?> <div class="field sp-methods required"> <label for="credit_card_cvv" class="label"> - <span><?php /* @escapeNotVerified */ echo __('CVV') ?></span> + <span><?php echo $block->escapeHtml(__('CVV')); ?></span> </label> <div class="control"> <input type="text" - title="<?php /* @escapeNotVerified */ echo __('Card Verification Number') ?>" + title="<?php echo $block->escapeHtml(__('Card Verification Number')); ?>" class="input-text cvv required-entry validate-cc-cvn validate-cc-cvn-autodetect" name="credit_card_cvv" data-container="credit_card_cvv" @@ -203,14 +193,14 @@ if ($block->isEditMode()) { value="" autocomplete="off" data-validate="{'required-number':true, 'validate-cc-cvn':'#credit_card_type'}"> - <?php $_content = '<img src=\"' . $block->getViewFileUrl('Magento_Checkout::cvv.png') . - '\" alt=\"' . __('Card Verification Number Visual Reference') . '\" title=\"' . - __('Card Verification Number Visual Reference') . '\" />'; ?> + <?php $content = '<img src=\"' . $block->escapeUrl($block->getViewFileUrl('Magento_Checkout::cvv.png')) . + '\" alt=\"' . $block->escapeHtml(__('Card Verification Number Visual Reference')) . '\" title=\"' . + $block->escapeHtml(__('Card Verification Number Visual Reference')) . '\" />'; ?> <div class="note"> <a href="#" id="credit_card-cvv-what-is-this" class="action cvv" title="<?php echo $block->escapeHtml(__('What is this?')); ?>" - data-mage-init='{"tooltip": {"content": "<?php /* @escapeNotVerified */ echo $_content ?>"}}'> - <span><?php /* @escapeNotVerified */ echo __('What is this?') ?></span> + data-mage-init='{"tooltip": {"content": "<?php /* @noEscape */ echo $content; ?>"}}'> + <span><?php echo $block->escapeHtml(__('What is this?')); ?></span> </a> </div> </div> @@ -224,58 +214,61 @@ if ($block->isEditMode()) { <div class="control"> <input type="checkbox" name="credit_card[options][make_default]" id="credit_card_options_make_default" - value="1" <?php /* @escapeNotVerified */ echo $isCCDefault ? "checked" : "" ?>> + value="1" <?php /* @noEscape */ echo $isCCDefault ? "checked" : "" ?>> <label for="credit_card_options_make_default" class="label"> - <span><?php /* @escapeNotVerified */ echo __('Make Default') ?></span> + <span><?php echo $block->escapeHtml(__('Make Default')); ?></span> </label> </div> </div> </fieldset> <fieldset class="fieldset info"> <legend class="legend"> - <span><?php /* @escapeNotVerified */ echo __('Billing Address') ?></span> + <span><?php echo $block->escapeHtml(__('Billing Address')); ?></span> </legend> <div class="field name billing_address_first_name required"> <label for="billing_address_first_name" class="label"> - <span><?php /* @escapeNotVerified */ echo __('First Name') ?></span> + <span><?php echo $block->escapeHtml(__('First Name')); ?></span> </label> <div class="control"> <input type="text" class="input-text required-entry " name="credit_card[billing_address][first_name]" id="billing_address_first_name" - value="<?php /* @escapeNotVerified */ echo $defaultFirstName ?>" + value="<?php echo $block->escapeHtml($defaultFirstName); ?>" data-validate="{required:true}"> </div> </div> <div class="field name billing_address_last_name required"> - <label for="billing_address_last_name" class="label"><span><?php /* @escapeNotVerified */ echo __('Last Name') ?></span></label> + <label for="billing_address_last_name" class="label"> + <span><?php echo $block->escapeHtml(__('Last Name')); ?></span> + </label> <div class="control"> <input type="text" class="input-text required-entry " name="credit_card[billing_address][last_name]" id="billing_address_last_name" - value="<?php /* @escapeNotVerified */ echo $defaultLastName ?>" + value="<?php echo $block->escapeHtml($defaultLastName); ?>" data-validate="{required:true}"> </div> </div> <div class="field name billing_address_company"> - <label for="billing_address_company" class="label"><span><?php /* @escapeNotVerified */ echo __('Company') ?></span></label> + <label for="billing_address_company" class="label"> + <span><?php echo $block->escapeHtml(__('Company')); ?></span> + </label> <div class="control"> <input type="text" class="input-text " name="credit_card[billing_address][company]" id="billing_address_company" - value="<?php /* @escapeNotVerified */ echo $defaultCompany ?>"> + value="<?php echo $block->escapeHtml($defaultCompany); ?>"> </div> </div> - <?php $_streetValidationClass = $this->helper('Magento\Customer\Helper\Address')->getAttributeValidationClass('street'); ?> <div class="field name billing_address_street_address required"> <label for="billing_address_street_address" class="label"> - <span><?php /* @escapeNotVerified */ echo __('Address') ?></span> + <span><?php echo $block->escapeHtml(__('Address')); ?></span> </label> <div class="control"> <input type="text" class="input-text required-entry " name="credit_card[billing_address][street_address]" id="billing_address_street_address" - value="<?php /* @escapeNotVerified */ echo $defaultStreetAddress ?>" + value="<?php echo $block->escapeHtml($defaultStreetAddress); ?>" data-validate="{required:true}"> </div> </div> @@ -287,95 +280,78 @@ if ($block->isEditMode()) { <div class="control"> <input type="text" class="input-text " name="credit_card[billing_address][extended_address]" id="billing_address_extended_address" - value="<?php /* @escapeNotVerified */ echo $defaultExtendedAddress ?>"> + value="<?php echo $block->escapeHtml($defaultExtendedAddress); ?>"> </div> </div> <div class="field name billing_address_locality required"> <label for="billing_address_locality" class="label"> - <span><?php /* @escapeNotVerified */ echo __('City') ?></span> + <span><?php echo $block->escapeHtml(__('City')); ?></span> </label> <div class="control"> <input type="text" class="input-text required-entry " name="credit_card[billing_address][locality]" id="billing_address_locality" - value="<?php /* @escapeNotVerified */ echo $defaultLocality ?>" + value="<?php echo $block->escapeHtml($defaultLocality); ?>" data-validate="{required:true}"> </div> </div> <div class="field region billing_address_region required"> <label for="billing_address_region" class="label"> - <span><?php /* @escapeNotVerified */ echo __('State/Province') ?></span> + <span><?php echo $block->escapeHtml(__('State/Province')); ?></span> </label> <div class="control"> <select id="billing_address_region_id" name="credit_card[billing_address][region_id]" - title="<?php /* @escapeNotVerified */ echo __('State/Province') ?>" class="validate-select" style="display:none;" + title="<?php echo $block->escapeHtml(__('State/Province')); ?>" class="validate-select" style="display:none;" data-validate="{'validate-select':true}"> - <option value=""><?php /* @escapeNotVerified */ echo __('Please select region, state or province') ?></option> + <option value=""><?php echo $block->escapeHtml(__('Please select region, state or province')); ?></option> </select> <input type="text" class="input-text " name="credit_card[billing_address][region]" id="billing_address_region" - value="<?php /* @escapeNotVerified */ echo $block->getPostParam('customer.creditCard.billingAddress.region', $defaultRegion) ?>"> + value="<?php echo $block->escapeHtml($block->getPostParam('customer.creditCard.billingAddress.region', $defaultRegion)); ?>"> </div> </div> <div class="field zip billing_address_postal_code required"> <label for="billing_address_postal_code" class="label"> - <span><?php /* @escapeNotVerified */ echo __('Zip/Postal Code') ?></span> + <span><?php echo $block->escapeHtml(__('Zip/Postal Code')); ?></span> </label> <div class="control"> <input type="text" class="input-text required-entry validate-zip-international " name="credit_card[billing_address][postal_code]" id="billing_address_postal_code" - value="<?php /* @escapeNotVerified */ echo $defaultPostalCode ?>" + value="<?php echo $block->escapeHtml($defaultPostalCode); ?>" data-validate="{required:true, 'validate-zip-international':true}"> </div> </div> <div class="field name billing_address_country required"> <label for="billing_address_country" class="label"> - <span><?php /* @escapeNotVerified */ echo __('Country') ?></span> + <span><?php echo $block->escapeHtml(__('Country')); ?></span> </label> <div class="control"> - <?php $default = $defaultCountryCodeAlpha2 ?> - <?php /* @escapeNotVerified */ echo $block->countrySelect('credit_card' . '[billing_address][country_code_alpha2]', 'billing_address_country', $default) ?> + <?php echo $block->escapeHtml($block->countrySelect('credit_card' . '[billing_address][country_code_alpha2]', 'billing_address_country', $default)); ?> </div> </div> </fieldset> <div class="actions-toolbar"> <div class="primary"> <button type="submit" id="opc-submit" data-role="opc-submit" class="action save primary" - title="<?php /* @escapeNotVerified */ echo __('Submit') ?>"> - <span><?php /* @escapeNotVerified */ echo __('Submit') ?></span> + title="<?php echo $block->escapeHtml(__('Submit')); ?>"> + <span><?php echo $block->escapeHtml(__('Submit')); ?></span> </button> </div> <div class="secondary"> - <a class="action back" href="<?php /* @escapeNotVerified */ echo $block->getBackUrl() ?>"> - <span><span><small>« </small><?php /* @escapeNotVerified */ echo __('Back') ?></span> + <a class="action back" href="<?php echo $block->escapeUrl($block->getBackUrl()); ?>"> + <span><span><small>« </small><?php echo $block->escapeUrl(__('Back')); ?></span> </a> </div> </div> </form> -<?php -$clientToken = $block->getClientToken(); -$formData = [ - "clientToken" => $clientToken, - 'ajaxSaveUrl' => $block->getAjaxSaveUrl(), - 'isEditMode' => $block->isEditMode() ? true : false, - 'cardToken' => $block->isEditMode() ? $creditCard->token : '', - 'backUrl' => $block->getBackUrl(), - 'hasVerification' => $block->hasVerification(), - "countrySpecificCardTypes" => $countrySpecificCardTypeConfig, - "applicableCardTypes" => $applicableCardTypeConfig, - "cardTypes" => $block->getCcAvailableTypes(), - "isFraudDetectionEnabled" => $block->isFraudDetectionEnabled() -]; -$serializedFormData = $this->helper('Magento\Framework\Json\Helper\Data')->jsonEncode($formData); -?> <script type="text/x-magento-init"> { "#form-validate": { "validation": {}, - "braintreeEditForm": <?php /* @escapeNotVerified */ echo $serializedFormData ?> + "braintreeEditForm": <?php /* @noEscape */ echo $serializedFormData; ?> }, "#billing_address_country": { "regionUpdater": { @@ -384,13 +360,11 @@ $serializedFormData = $this->helper('Magento\Framework\Json\Helper\Data')->jsonE "regionInputId": "#billing_address_region", "postcodeId": "#billing_address_region", "form": "#form-validate", - "regionJson": <?php /* @escapeNotVerified */ echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson() ?>, - "defaultRegion": "<?php /* @escapeNotVerified */ echo $defaultRegionId ?>", + "regionJson": <?php /* @noEscape */ echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson(); ?>, + "defaultRegion": "<?php echo $block->escapeHtml($defaultRegionId); ?>", "countriesWithOptionalZip": - <?php /* @escapeNotVerified */ echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?> + <?php /* @noEscape */ echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true); ?> } } } - - </script> \ No newline at end of file diff --git a/app/code/Magento/Braintree/view/frontend/templates/creditcard/index.phtml b/app/code/Magento/Braintree/view/frontend/templates/creditcard/index.phtml index f4cef98141b..fd9ee17028b 100644 --- a/app/code/Magento/Braintree/view/frontend/templates/creditcard/index.phtml +++ b/app/code/Magento/Braintree/view/frontend/templates/creditcard/index.phtml @@ -7,14 +7,18 @@ // @codingStandardsIgnoreFile /** @var $block \Magento\Braintree\Block\Creditcard\Management */ - $_storedCards = $block->getCurrentCustomerStoredCards(); +$storedCards = $block->getCurrentCustomerStoredCards(); ?> <div class="page-title title-buttons"> <?php if ($block->getUsesVault()): ?> - <button type="button" title="<?php /* @escapeNotVerified */ echo __('Add Credit Card') ?>" class="action subscribe primary" onclick="window.location='<?php /* @escapeNotVerified */ echo $block->getAddUrl() ?>';"><span><span><?php /* @escapeNotVerified */ echo __('Add Credit Card') ?></span></span></button> - <?php endif ?> + <button type="button" title="<?php echo $block->escapeHtml(__('Add Credit Card')); ?>" + class="action subscribe primary" + onclick="window.location='<?php echo $block->escapeUrl($block->getAddUrl()) ?>';"> + <span><span><?php echo $block->escapeHtml(__('Add Credit Card')); ?></span></span> + </button> + <?php endif; ?> </div> -<?php echo $block->getLayout()->getMessagesBlock()->getGroupedHtml() ?> +<?php echo $block->getLayout()->getMessagesBlock()->getGroupedHtml(); ?> <?php if (count($_storedCards)): ?> <table class="data-table" id="my-quotes-table"> <col width="1" /> @@ -24,23 +28,27 @@ <col width="1" /> <thead> <tr> - <th><?php /* @escapeNotVerified */ echo __('Type') ?></th> - <th><?php /* @escapeNotVerified */ echo __('Card Number') ?></th> - <th><?php /* @escapeNotVerified */ echo __('Is Default') ?></th> - <th colspan="2"><?php /* @escapeNotVerified */ echo __('Actions') ?></th> + <th><?php echo $block->escapeHtml(__('Type')); ?></th> + <th><?php echo $block->escapeHtml(__('Card Number')); ?></th> + <th><?php echo $block->escapeHtml(__('Is Default')); ?></th> + <th colspan="2"><?php echo $block->escapeHtml(__('Actions')); ?></th> </tr> </thead> <tbody> - <?php foreach ($_storedCards as $card):?> + <?php foreach ($storedCards as $card):?> <tr> - <td><?php /* @escapeNotVerified */ echo $card->cardType ?></td> - <td><?php /* @escapeNotVerified */ echo $card->maskedNumber ?></td> - <td><?php /* @escapeNotVerified */ echo ($card->default) ? __('Yes') : __('No') ?></td> + <td><?php echo $block->escapeHtml($card->cardType); ?></td> + <td><?php echo $block->escapeHtml($card->maskedNumber); ?></td> + <td><?php /* @noEscape */ echo ($card->default) ? $block->escapeHtml(__('Yes')) : $block->escapeHtml(__('No')); ?></td> <td> - <a href="<?php /* @escapeNotVerified */ echo $block->getEditUrl($card->token) ?>"><?php /* @escapeNotVerified */ echo __('Edit')?></a> + <a href="<?php echo $block->escapeUrl($block->getEditUrl($card->token)); ?>"> + <?php echo $block->escapeHtml(__('Edit')); ?> + </a> </td> <td> - <a href="<?php /* @escapeNotVerified */ echo $block->getDeleteUrl($card->token) ?>"><?php /* @escapeNotVerified */ echo __('Delete')?></a> + <a href="<?php echo $block->escapeUrl($block->getDeleteUrl($card->token)); ?>"> + <?php echo $block->escapeHtml(__('Delete'));?> + </a> </td> </tr> <?php endforeach; ?> diff --git a/app/code/Magento/Braintree/view/frontend/templates/data_js.phtml b/app/code/Magento/Braintree/view/frontend/templates/data_js.phtml index cbfe3dcda5f..14579540152 100644 --- a/app/code/Magento/Braintree/view/frontend/templates/data_js.phtml +++ b/app/code/Magento/Braintree/view/frontend/templates/data_js.phtml @@ -14,14 +14,14 @@ $arrayData = [ $this->helper('Magento\Braintree\Helper\Data')->getKountId() : false, "formId" =>$block->getFormId(), "merchantId" => $block->getMerchantId(), - "braintreeDataJs" => $block->getJsSrc(), + "braintreeDataJs" => $block->escapeUrl($block->getJsSrc()), ]; $serializedFormData = $this->helper('Magento\Framework\Json\Helper\Data')->jsonEncode($arrayData); ?> <script type="text/x-magento-init"> { "body": { - "braintreeDataJs": <?php /* @escapeNotVerified */ echo $serializedFormData ?> + "braintreeDataJs": <?php /* @noEscape */ echo $serializedFormData; ?> } } </script> diff --git a/app/code/Magento/Braintree/view/frontend/templates/form.phtml b/app/code/Magento/Braintree/view/frontend/templates/form.phtml index f740ad803b1..e3a32a89da2 100644 --- a/app/code/Magento/Braintree/view/frontend/templates/form.phtml +++ b/app/code/Magento/Braintree/view/frontend/templates/form.phtml @@ -7,75 +7,112 @@ // @codingStandardsIgnoreFile /** @var \Magento\Braintree\Block\Form $block */ -$_code = $block->getMethodCode(); -$_loggedIn = $block->isCustomerLoggedIn(); -$_storedCards = $block->getStoredCards(); -$_useVault = $_loggedIn && $block->useVault() && count($_storedCards); -$_autoDetection = $block->isCcDetectionEnabled(); -$clientToken = $block->getClientToken(); +$code = $block->getMethodCode(); +$loggedIn = $block->isCustomerLoggedIn(); +$storedCards = $block->getStoredCards(); +$useVault = $loggedIn && $block->useVault() && count($storedCards); +$autoDetection = $block->isCcDetectionEnabled(); +$clientToken = $block->escapeHtml($block->getClientToken()); +$formData = [ + "useVault" => $useVault, + "clientToken" => $clientToken, + "autoDetection" => $autoDetection, + "loggedIn" => $loggedIn, +]; +$serializedFormData = $this->helper('Magento\Framework\Json\Helper\Data')->jsonEncode($formData); +$ccType = $block->getInfoData('cc_type'); +$ccExpMonth = $block->getInfoData('cc_exp_month'); +$ccExpYear = $block->getInfoData('cc_exp_year'); ?> -<fieldset class="fieldset items braintree" id="payment_form_<?php /* @escapeNotVerified */ echo $_code ?>" style="display:none;"> +<fieldset class="fieldset items braintree" id="payment_form_<?php /* @noEscape */ echo $code; ?>" style="display:none;"> <input type="hidden" name="payment[payment_method_nonce]" id="braintree_nonce" value="" /> - <input type="hidden" name="payment[cc_last4]" id="<?php /* @escapeNotVerified */ echo $_code ?>_cc_last4" value="" /> - <?php if ($_autoDetection) : ?> + <input type="hidden" name="payment[cc_last4]" id="<?php /* @noEscape */ echo $code; ?>_cc_last4" value="" /> + <?php if ($autoDetection) : ?> <input type="hidden" id="card_type_autoselect" value="" /> <?php endif; ?> - <?php if ($_useVault): ?> - <li id="<?php /* @escapeNotVerified */ echo $_code ?>_token_selector"> - <label for="<?php /* @escapeNotVerified */ echo $_code ?>_cc_token"><?php /* @escapeNotVerified */ echo __('Payment Information') ?></label> + <?php if ($useVault): ?> + <li id="<?php /* @noEscape */ echo $code; ?>_token_selector"> + <label for="<?php /* @noEscape */ echo $code; ?>_cc_token"> + <?php echo $block->escapeHtml(__('Payment Information')); ?> + </label> <div class="input-box"> - <select id="<?php /* @escapeNotVerified */ echo $_code ?>_cc_token" name="payment[cc_token]"> - <?php foreach ($_storedCards as $creditCard): ?> - <option value="<?php /* @escapeNotVerified */ echo $creditCard->token?>" <?php echo $creditCard->default ? 'selected="selected"' : '' ?>> - <?php /* @escapeNotVerified */ echo $creditCard->maskedNumber . ' - ' . $creditCard->cardType; ?> + <select id="<?php /* @noEscape */ echo $code; ?>_cc_token" name="payment[cc_token]"> + <?php foreach ($storedCards as $creditCard): ?> + <option value="<?php echo $block->escapeHtml($creditCard->token); ?>" + <?php /* @noEscape */ echo $creditCard->default ? ' selected="selected"' : '' ?>> + <?php echo $block->escapeHtml($creditCard->maskedNumber . ' - ' . $creditCard->cardType); ?> </option> <?php endforeach; ?> - <option value=''><?php /* @escapeNotVerified */ echo __('Add new card') ?></option> + <option value=''><?php echo $block->escapeHtml(__('Add new card')); ?></option> </select> </div> </li> <?php endif; ?> <div class="field type required hide_if_token_selected"> - <label for="<?php /* @escapeNotVerified */ echo $_code ?>_cc_type" class="label"><span><?php /* @escapeNotVerified */ echo __('Credit Card Type') ?></span></label> + <label for="<?php /* @noEscape */ echo $code; ?>_cc_type" class="label"> + <span><?php echo $block->escapeHtml(__('Credit Card Type')); ?></span> + </label> <div class="control"> - <select id="<?php /* @escapeNotVerified */ echo $_code ?>_cc_type" - data-mage-init='{"creditCardType":{"creditCardTypeContainer":"#<?php /* @escapeNotVerified */ echo $_code ?>_cc_type_ss_div"}}' - name="payment[cc_type]" data-validate='{required:true, "validate-cc-type-select":"#<?php /* @escapeNotVerified */ echo $_code ?>_cc_number"}' class="select"> - <option value=""><?php /* @escapeNotVerified */ echo __('--Please Select--')?></option> - <?php $_ccType = $block->getInfoData('cc_type') ?> - <?php foreach ($block->getCcAvailableTypes() as $_typeCode => $_typeName): ?> - <option value="<?php /* @escapeNotVerified */ echo $_typeCode ?>"<?php if ($_typeCode == $_ccType): ?> selected="selected"<?php endif ?>><?php /* @escapeNotVerified */ echo $_typeName ?></option> + <select id="<?php /* @noEscape */ echo $code; ?>_cc_type" + data-mage-init='{"creditCardType":{"creditCardTypeContainer":"#<?php /* @noEscape */ echo $code; ?>_cc_type_ss_div"}}' + name="payment[cc_type]" data-validate='{ + required:true, + "validate-cc-type-select":"#<?php /* @noEscape */ echo $code; ?>_cc_number" + }' class="select"> + <option value=""><?php echo $block->escapeHtml(__('--Please Select--')); ?></option> + <?php foreach ($block->getCcAvailableTypes() as $typeCode => $typeName): ?> + <option value="<?php echo $block->escapeHtml($typeCode); ?>" + <?php if ($typeCode == $ccType): ?> selected="selected"<?php endif; ?>> + <?php echo $block->escapeHtml($typeName); ?> + </option> <?php endforeach ?> </select> </div> </div> <div class="field number required hide_if_token_selected"> - <label for="<?php /* @escapeNotVerified */ echo $_code ?>_cc_number" class="label"><span><?php /* @escapeNotVerified */ echo __('Credit Card Number') ?></span></label> + <label for="<?php /* @noEscape */ echo $code; ?>_cc_number" class="label"> + <span><?php echo $block->escapeHtml(__('Credit Card Number')); ?></span> + </label> <div class="control"> - <input type="number" id="<?php /* @escapeNotVerified */ echo $_code ?>_cc_number" name="payment[cc_number]" title="<?php /* @escapeNotVerified */ echo __('Credit Card Number') ?>" class="input-text" value="" data-validate='{"required-number":true, "validate-cc-number":"#<?php /* @escapeNotVerified */ echo $_code ?>_cc_type", "validate-cc-type":"#<?php /* @escapeNotVerified */ echo $_code ?>_cc_type"}'/> + <input type="number" id="<?php /* @noEscape */ echo $code; ?>_cc_number" name="payment[cc_number]" + title="<?php echo $block->escapeHtml(__('Credit Card Number')); ?>" class="input-text" value="" + data-validate='{ + "required-number":true, + "validate-cc-number":"#<?php /* @noEscape */ echo $code; ?>_cc_type", + "validate-cc-type":"#<?php /* @noEscape */ echo $code; ?>_cc_type" + }'/> </div> </div> - <div class="field date required hide_if_token_selected" id="<?php /* @escapeNotVerified */ echo $_code ?>_cc_type_exp_div"> - <label for="<?php /* @escapeNotVerified */ echo $_code ?>_expiration" class="label"><span><?php /* @escapeNotVerified */ echo __('Expiration Date') ?></span></label> + <div class="field date required hide_if_token_selected" id="<?php /* @noEscape */ echo $code; ?>_cc_type_exp_div"> + <label for="<?php /* @noEscape */ echo $code; ?>_expiration" class="label"> + <span><?php echo $block->escapeHtml(__('Expiration Date')); ?></span> + </label> <div class="control"> <div class="fields group group-2"> <div class="field no-label month"> <div class="control"> - <select id="<?php /* @escapeNotVerified */ echo $_code ?>_expiration" name="payment[cc_exp_month]" class="select month" data-validate='{required:true, "validate-cc-exp":"#<?php /* @escapeNotVerified */ echo $_code ?>_expiration_yr"}'> - <?php $_ccExpMonth = $block->getInfoData('cc_exp_month') ?> + <select id="<?php /* @noEscape */ echo $code; ?>_expiration" name="payment[cc_exp_month]" + class="select month" data-validate='{ + required:true, "validate-cc-exp":"#<?php /* @noEscape */ echo $code; ?>_expiration_yr" + }'> <?php foreach ($block->getCcMonths() as $k => $v): ?> - <option value="<?php echo $k ? $k : '' ?>"<?php if ($k == $_ccExpMonth): ?> selected="selected"<?php endif ?>><?php /* @escapeNotVerified */ echo $v ?></option> - <?php endforeach ?> + <option value="<?php echo $k ? $block->escapeHtml($k) : ''; ?>" + <?php if ($k == $ccExpMonth): ?> selected="selected"<?php endif; ?>> + <?php echo $block->escapeHtml($v); ?> + </option> + <?php endforeach; ?> </select> </div> </div> <div class="field no-label year"> <div class="control"> - <?php $_ccExpYear = $block->getInfoData('cc_exp_year') ?> - <select id="<?php /* @escapeNotVerified */ echo $_code ?>_expiration_yr" name="payment[cc_exp_year]" class="select year" data-validate='{required:true}'> + <select id="<?php /* @noEscape */ echo $code; ?>_expiration_yr" name="payment[cc_exp_year]" class="select year" data-validate='{required:true}'> <?php foreach ($block->getCcYears() as $k => $v): ?> - <option value="<?php echo $k ? $k : '' ?>"<?php if ($k == $_ccExpYear): ?> selected="selected"<?php endif ?>><?php /* @escapeNotVerified */ echo $v ?></option> - <?php endforeach ?> + <option value="<?php /* @noEscape */ echo $k ? $block->escapeHtml($k) : '' ?>" + <?php if ($k == $ccExpYear): ?> selected="selected"<?php endif; ?>> + <?php echo $block->escapeHtml($v); ?> + </option> + <?php endforeach; ?> </select> </div> </div> @@ -83,39 +120,44 @@ $clientToken = $block->getClientToken(); </div> </div> <?php if ($block->hasVerification()): ?> - <div class="field cvv required hide_if_token_selected" id="<?php /* @escapeNotVerified */ echo $_code ?>_cc_type_cvv_div"> - <label for="<?php /* @escapeNotVerified */ echo $_code ?>_cc_cid" class="label"><span><?php /* @escapeNotVerified */ echo __('Card Verification Number') ?></span></label> + <div class="field cvv required hide_if_token_selected" id="<?php /* @noEscape */ echo $code; ?>_cc_type_cvv_div"> + <label for="<?php /* @noEscape */ echo $code; ?>_cc_cid" class="label"> + <span><?php echo $block->escapeHtml(__('Card Verification Number')); ?></span> + </label> <div class="control"> - <input type="number" title="<?php /* @escapeNotVerified */ echo __('Card Verification Number') ?>" class="input-text cvv" id="<?php /* @escapeNotVerified */ echo $_code ?>_cc_cid" name="payment[cc_cid]" value="" data-validate='{"required-number":true, "validate-cc-cvn":"#<?php /* @escapeNotVerified */ echo $_code ?>_cc_type"}' /> - <?php $_content = '<img src=\"' . $block->getViewFileUrl('Magento_Checkout::cvv.png') . '\" alt=\"' . __('Card Verification Number Visual Reference') . '\" title=\"' . __('Card Verification Number Visual Reference') . '\" />'; ?> + <input type="number" title="<?php echo $block->escapeHtml(__('Card Verification Number')); ?>" + class="input-text cvv" + id="<?php /* @noEscape */ echo $code; ?>_cc_cid" name="payment[cc_cid]" value="" + data-validate='{ + "required-number":true, "validate-cc-cvn":"#<?php /* @noEscape */ echo $code; ?>_cc_type" + }' /> + <?php $content = '<img src=\"' . $block->escapeUrl($block->getViewFileUrl('Magento_Checkout::cvv.png')) . + '\" alt=\"' . $block->escapeHtml(__('Card Verification Number Visual Reference')) . + '\" title=\"' . $block->escapeHtml(__('Card Verification Number Visual Reference')) . '\" />'; ?> <div class="note"> - <a href="#" class="action cvv" title="<?php /* @escapeNotVerified */ echo __('What is this?') ?>" data-mage-init='{"tooltip": {"content": "<?php /* @escapeNotVerified */ echo $_content ?>"}}'><span><?php /* @escapeNotVerified */ echo __('What is this?') ?></span></a> + <a href="#" class="action cvv" title="<?php echo $block->escapeHtml(__('What is this?')); ?>" + data-mage-init='{"tooltip": {"content": "<?php /* @noEscape */ echo $content; ?>"}}'> + <span><?php echo $block->escapeHtml(__('What is this?')); ?></span> + </a> </div> </div> </div> <?php endif; ?> <?php if($block->canSaveCard()): ?> - <li id="<?php /* @escapeNotVerified */ echo $_code ?>_store_in_vault_div" style="text-align:left;" class="hide_if_token_selected"> - <input type="checkbox" title="<?php /* @escapeNotVerified */ echo __('Save this card for future use') ?>" class="input-checkbox" id="<?php /* @escapeNotVerified */ echo $_code ?>_store_in_vault" checked="checked" name="payment[store_in_vault]" value="1" /> - <label for="<?php /* @escapeNotVerified */ echo $_code ?>_store_in_vault" class="required" style="float:none;"><?php /* @escapeNotVerified */ echo __('Save this card for future use') ?></label> + <li id="<?php /* @noEscape */ echo $code; ?>_store_in_vault_div" style="text-align:left;" class="hide_if_token_selected"> + <input type="checkbox" title="<?php echo $block->escapeHtml(__('Save this card for future use')); ?>" class="input-checkbox" + id="<?php /* @noEscape */ echo $code; ?>_store_in_vault" checked="checked" name="payment[store_in_vault]" value="1" /> + <label for="<?php /* @noEscape */ echo $code; ?>_store_in_vault" class="required" style="float:none;"> + <?php echo $block->escapeHtml(__('Save this card for future use')); ?> + </label> </li> <?php endif; ?> </fieldset> - -<?php - $formData = [ - "useVault" => $_useVault, - "clientToken" => $clientToken, - "autoDetection" => $_autoDetection, - "loggedIn" => $_loggedIn, - ]; - $serializedFormData = $this->helper('Magento\Framework\Json\Helper\Data')->jsonEncode($formData); -?> <script type="text/x-magento-init"> { "#payment_form_braintree": { - "braintreeForm": <?php /* @escapeNotVerified */ echo $serializedFormData ?> + "braintreeForm": <?php /* @noEscape */ echo $serializedFormData ?> } } </script> -- GitLab From 9a12976ca07a3e0e81c32c5ba7653a696f157eee Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Mon, 12 Oct 2015 12:32:28 +0300 Subject: [PATCH 336/420] MAGETWO-43923: [GitHub]ModelResource namespace inconsistency renamed integration tests --- .../Model/{ModelResource => ResourceModel}/Db/AbstractTest.php | 0 .../Db/Collection/AbstractTest.php | 0 .../Model/{ModelResource => ResourceModel}/Db/ProfilerTest.php | 0 .../Model/{ModelResource => ResourceModel}/Entity/TableTest.php | 0 .../Model/{ModelResource => ResourceModel}/IteratorTest.php | 0 .../Type/Db/ConnectionFactoryTest.php | 0 .../{ModelResource => ResourceModel}/Type/Db/Pdo/MysqlTest.php | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename dev/tests/integration/testsuite/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/AbstractTest.php (100%) rename dev/tests/integration/testsuite/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/Collection/AbstractTest.php (100%) rename dev/tests/integration/testsuite/Magento/Framework/Model/{ModelResource => ResourceModel}/Db/ProfilerTest.php (100%) rename dev/tests/integration/testsuite/Magento/Framework/Model/{ModelResource => ResourceModel}/Entity/TableTest.php (100%) rename dev/tests/integration/testsuite/Magento/Framework/Model/{ModelResource => ResourceModel}/IteratorTest.php (100%) rename dev/tests/integration/testsuite/Magento/Framework/Model/{ModelResource => ResourceModel}/Type/Db/ConnectionFactoryTest.php (100%) rename dev/tests/integration/testsuite/Magento/Framework/Model/{ModelResource => ResourceModel}/Type/Db/Pdo/MysqlTest.php (100%) diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/AbstractTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ResourceModel/Db/AbstractTest.php similarity index 100% rename from dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/AbstractTest.php rename to dev/tests/integration/testsuite/Magento/Framework/Model/ResourceModel/Db/AbstractTest.php diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/Collection/AbstractTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ResourceModel/Db/Collection/AbstractTest.php similarity index 100% rename from dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/Collection/AbstractTest.php rename to dev/tests/integration/testsuite/Magento/Framework/Model/ResourceModel/Db/Collection/AbstractTest.php diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/ProfilerTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ResourceModel/Db/ProfilerTest.php similarity index 100% rename from dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Db/ProfilerTest.php rename to dev/tests/integration/testsuite/Magento/Framework/Model/ResourceModel/Db/ProfilerTest.php diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Entity/TableTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ResourceModel/Entity/TableTest.php similarity index 100% rename from dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Entity/TableTest.php rename to dev/tests/integration/testsuite/Magento/Framework/Model/ResourceModel/Entity/TableTest.php diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/IteratorTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ResourceModel/IteratorTest.php similarity index 100% rename from dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/IteratorTest.php rename to dev/tests/integration/testsuite/Magento/Framework/Model/ResourceModel/IteratorTest.php diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Type/Db/ConnectionFactoryTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ResourceModel/Type/Db/ConnectionFactoryTest.php similarity index 100% rename from dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Type/Db/ConnectionFactoryTest.php rename to dev/tests/integration/testsuite/Magento/Framework/Model/ResourceModel/Type/Db/ConnectionFactoryTest.php diff --git a/dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Type/Db/Pdo/MysqlTest.php b/dev/tests/integration/testsuite/Magento/Framework/Model/ResourceModel/Type/Db/Pdo/MysqlTest.php similarity index 100% rename from dev/tests/integration/testsuite/Magento/Framework/Model/ModelResource/Type/Db/Pdo/MysqlTest.php rename to dev/tests/integration/testsuite/Magento/Framework/Model/ResourceModel/Type/Db/Pdo/MysqlTest.php -- GitLab From 0aaf6603d5e0f4eaa6f6d3d267a84b2e00b11918 Mon Sep 17 00:00:00 2001 From: Alex Akimov <aakimov@ebay.com> Date: Mon, 12 Oct 2015 10:07:21 +0300 Subject: [PATCH 337/420] MAGETWO-41619: Loader Must be Displayed on Checkout if Discount is Applying for Responsive Theme --- .../Magento/Checkout/view/frontend/web/js/view/estimation.js | 2 +- .../Magento/Checkout/view/frontend/web/template/estimation.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/estimation.js b/app/code/Magento/Checkout/view/frontend/web/js/view/estimation.js index 76e34d4cbf5..f1f92feb37a 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/view/estimation.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/view/estimation.js @@ -13,6 +13,7 @@ define( function (Component, quote, priceUtils, totals, sidebarModel) { 'use strict'; return Component.extend({ + isLoading: totals.isLoading, getQuantity: function() { if (totals.totals()) { return parseFloat(totals.totals().items_qty); @@ -34,7 +35,6 @@ define( getValue: function () { return this.getFormattedPrice(this.getPureValue()); } - }); } ); diff --git a/app/code/Magento/Checkout/view/frontend/web/template/estimation.html b/app/code/Magento/Checkout/view/frontend/web/template/estimation.html index dd037ff8d36..36009ab7b46 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/estimation.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/estimation.html @@ -4,7 +4,7 @@ * See COPYING.txt for license details. */ --> -<div class="opc-estimated-wrapper"> +<div class="opc-estimated-wrapper" data-bind="blockLoader: isLoading"> <div class="estimated-block"> <span class="estimated-label" data-bind="i18n: 'Estimated Total'"></span> <span class="estimated-price" data-bind="i18n: getValue()"></span> -- GitLab From 901991cbc3ccecc008cab4cd0f0e0495ed34c03e Mon Sep 17 00:00:00 2001 From: Ievgen Sentiabov <isentiabov@ebay.com> Date: Mon, 12 Oct 2015 12:58:43 +0300 Subject: [PATCH 338/420] MAGETWO-42818: Verify outputs for Braintree module - Refactored code related to failed tests --- .../Magento/Braintree/view/adminhtml/templates/form.phtml | 2 +- .../Braintree/view/frontend/templates/creditcard/edit.phtml | 2 +- app/code/Magento/Braintree/view/frontend/templates/form.phtml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Braintree/view/adminhtml/templates/form.phtml b/app/code/Magento/Braintree/view/adminhtml/templates/form.phtml index fcfed770a5a..c27901cd4e8 100644 --- a/app/code/Magento/Braintree/view/adminhtml/templates/form.phtml +++ b/app/code/Magento/Braintree/view/adminhtml/templates/form.phtml @@ -49,7 +49,7 @@ $ccExpYear = $block->getInfoData('cc_exp_year'); <?php foreach ($storedCards as $creditCard): ?> <option value="<?php echo $block->escapeHtml($creditCard->token); ?>" <?php /* @noEscape */ echo $creditCard->default ? ' selected="selected"' : ''; ?>> - <?php echo $block->escapeHtml($creditCard->maskedNumber . ' - ' . $creditCard->cardType); ?> + <?php echo $block->escapeHtml($creditCard->maskedNumber); ?> - <?php echo $block->escapeHtml($creditCard->cardType); ?> </option> <?php endforeach; ?> <option value=''><?php echo $block->escapeHtml(__('Add new card')); ?></option> diff --git a/app/code/Magento/Braintree/view/frontend/templates/creditcard/edit.phtml b/app/code/Magento/Braintree/view/frontend/templates/creditcard/edit.phtml index aa1a8e1f728..6fcac2eae9c 100644 --- a/app/code/Magento/Braintree/view/frontend/templates/creditcard/edit.phtml +++ b/app/code/Magento/Braintree/view/frontend/templates/creditcard/edit.phtml @@ -328,7 +328,7 @@ $serializedFormData = $this->helper('Magento\Framework\Json\Helper\Data')->jsonE </label> <div class="control"> - <?php echo $block->escapeHtml($block->countrySelect('credit_card' . '[billing_address][country_code_alpha2]', 'billing_address_country', $default)); ?> + <?php echo $block->escapeHtml($block->countrySelect('credit_card[billing_address][country_code_alpha2]', 'billing_address_country', $default)); ?> </div> </div> </fieldset> diff --git a/app/code/Magento/Braintree/view/frontend/templates/form.phtml b/app/code/Magento/Braintree/view/frontend/templates/form.phtml index e3a32a89da2..459a61568cf 100644 --- a/app/code/Magento/Braintree/view/frontend/templates/form.phtml +++ b/app/code/Magento/Braintree/view/frontend/templates/form.phtml @@ -39,8 +39,8 @@ $ccExpYear = $block->getInfoData('cc_exp_year'); <select id="<?php /* @noEscape */ echo $code; ?>_cc_token" name="payment[cc_token]"> <?php foreach ($storedCards as $creditCard): ?> <option value="<?php echo $block->escapeHtml($creditCard->token); ?>" - <?php /* @noEscape */ echo $creditCard->default ? ' selected="selected"' : '' ?>> - <?php echo $block->escapeHtml($creditCard->maskedNumber . ' - ' . $creditCard->cardType); ?> + <?php /* @noEscape */ echo $creditCard->default ? ' selected="selected"' : ''; ?>> + <?php echo $block->escapeHtml($creditCard->maskedNumber); ?> - <?php echo $block->escapeHtml($creditCard->cardType); ?> </option> <?php endforeach; ?> <option value=''><?php echo $block->escapeHtml(__('Add new card')); ?></option> -- GitLab From 935ce15f6c8dfeb1673421d135d4f01df52543fd Mon Sep 17 00:00:00 2001 From: Vitali Kirychenka <Vitali_Kirychenka@epam.com> Date: Mon, 12 Oct 2015 13:06:06 +0300 Subject: [PATCH 339/420] PV-224: update functional tests for PV --- .../Test/Repository/ConfigData.xml | 27 +++++++++++++++++++ .../UpdateSimpleProductEntityTest.xml | 13 ++++++--- 2 files changed, 36 insertions(+), 4 deletions(-) create mode 100755 dev/tests/functional/tests/app/Magento/ProductVideo/Test/Repository/ConfigData.xml diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Repository/ConfigData.xml new file mode 100755 index 00000000000..5227236ce50 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/Repository/ConfigData.xml @@ -0,0 +1,27 @@ +<?xml version="1.0"?> +<!-- +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +--> +<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/Magento/Mtf/Repository/etc/repository.xsd"> + <repository class="Magento\Config\Test\Repository\ConfigData"> + <dataset name="youtube_api_key"> + <field name="catalog/product_video/youtube_api_key" xsi:type="array"> + <item name="scope" xsi:type="string">default</item> + <item name="scope_id" xsi:type="number">0</item> + <item name="label" xsi:type="string"/> + <item name="value" xsi:type="string">AIzaSyDwqDWuw1lra-LnpJL2Mr02DYuFmkuRSns</item> + </field> + </dataset> + <dataset name="youtube_api_key_rollback"> + <field name="catalog/product_video/youtube_api_key" xsi:type="array"> + <item name="scope" xsi:type="string">default</item> + <item name="scope_id" xsi:type="number">0</item> + <item name="label" xsi:type="string"/> + <item name="value" xsi:type="string"/> + </field> + </dataset> + </repository> +</config> diff --git a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/UpdateSimpleProductEntityTest.xml b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/UpdateSimpleProductEntityTest.xml index 6a151535f05..74f73a10f81 100755 --- a/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/UpdateSimpleProductEntityTest.xml +++ b/dev/tests/functional/tests/app/Magento/ProductVideo/Test/TestCase/UpdateSimpleProductEntityTest.xml @@ -34,6 +34,7 @@ <data name="product/data/media_gallery/images/0/video_url" xsi:type="string">https://youtu.be/WMp2PvU2qi8</data> <data name="product/data/media_gallery/images/0/video_title" xsi:type="string">Foo Test 1</data> <data name="product/data/media_gallery/images/0/video_description" xsi:type="string">This is a test "Foo Test 1"</data> + <data name="configData" xsi:type="string">youtube_api_key</data> <constraint name="Magento\ProductVideo\Test\Constraint\AssertVideoCategoryView" /> <constraint name="Magento\ProductVideo\Test\Constraint\AssertVideoProductView" /> <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" /> @@ -50,18 +51,19 @@ <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" /> </variation> <variation name="AddVideoToPCFTestVariation3"> - <data name="initialProduct/dataset" xsi:type="string">product_with_category</data> - <data name="product/data/sku" xsi:type="string">simple_product_with_category_%isolation%</data> + <data name="initialProduct/dataset" xsi:type="string">product_with_category</data> + <data name="product/data/sku" xsi:type="string">simple_product_with_category_%isolation%</data> <data name="product/data/sku" xsi:type="string">sku_simple_product_with_video_%isolation%</data> <data name="product/data/media_gallery/images/0/video_url" xsi:type="string">https://youtu.be/WMp2PvU2qi8</data> <data name="product/data/media_gallery/images/0/video_title" xsi:type="string">Foo Test 1</data> + <data name="configData" xsi:type="string">youtube_api_key</data> <constraint name="Magento\ProductVideo\Test\Constraint\AssertVideoCategoryView" /> <constraint name="Magento\ProductVideo\Test\Constraint\AssertVideoProductView" /> <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" /> </variation> <variation name="AddVideoToPCFTestVariation4"> - <data name="initialProduct/dataset" xsi:type="string">product_with_category</data> - <data name="product/data/sku" xsi:type="string">simple_product_with_category_%isolation%</data> + <data name="initialProduct/dataset" xsi:type="string">product_with_category</data> + <data name="product/data/sku" xsi:type="string">simple_product_with_category_%isolation%</data> <data name="product/data/media_gallery/images/0/video_url" xsi:type="string">https://vimeo.com/21776334</data> <data name="product/data/media_gallery/images/0/video_title" xsi:type="string">Foo Test 2</data> <constraint name="Magento\ProductVideo\Test\Constraint\AssertVideoCategoryView" /> @@ -73,6 +75,7 @@ <data name="initialProduct/dataset" xsi:type="string">product_with_video_youtube</data> <data name="product/data/sku" xsi:type="string">sku_simple_product_with_video_%isolation%</data> <data name="product/data/media_gallery/images/0/video_url" xsi:type="string">https://youtu.be/bpOSxM0rNPM</data> + <data name="configData" xsi:type="string">youtube_api_key</data> <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" /> </variation> <variation name="UpdateVideoInPCFTestVariation2"> @@ -97,6 +100,7 @@ <data name="productVideo/data/media_gallery/images/0/video_url" xsi:type="string">https://youtu.be/bpOSxM0rNPM</data> <data name="productVideo/data/media_gallery/images/0/video_title" xsi:type="string">Edit Test</data> <data name="productVideo/data/media_gallery/images/0/video_description" xsi:type="string">This is an edit test</data> + <data name="configData" xsi:type="string">youtube_api_key</data> <constraint name="Magento\Catalog\Test\Constraint\AssertProductForm" /> </variation> <variation name="GetVideoInfoTestVariation1"> @@ -105,6 +109,7 @@ <data name="product/data/sku" xsi:type="string">simple_product_with_category_%isolation%</data> <data name="product/data/media_gallery/images/0/video_url" xsi:type="string">https://youtu.be/WMp2PvU2qi8</data> <data name="video/video_title" xsi:type="string">Foo Fighters - Congregation</data> + <data name="configData" xsi:type="string">youtube_api_key</data> <constraint name="Magento\ProductVideo\Test\Constraint\AssertGetVideoInfoDataIsCorrect" /> </variation> <variation name="GetVideoInfoTestVariation2"> -- GitLab From 2aaa6c725760f1bf3da0296b56a3bae6048e9f48 Mon Sep 17 00:00:00 2001 From: Siarhei Andreyeu <siarhei_andreyeu@epam.com> Date: Mon, 12 Oct 2015 13:50:24 +0300 Subject: [PATCH 340/420] PV-224: Code refactoring --- app/code/Magento/ProductVideo/Helper/Media.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/ProductVideo/Helper/Media.php b/app/code/Magento/ProductVideo/Helper/Media.php index db56d45ab05..657c81f3aae 100644 --- a/app/code/Magento/ProductVideo/Helper/Media.php +++ b/app/code/Magento/ProductVideo/Helper/Media.php @@ -73,10 +73,10 @@ class Media extends \Magento\Framework\App\Helper\AbstractHelper DesignInterface $designInterface, Context $context ) { + parent::__construct($context); $this->viewConfig = $configInterface; $this->currentTheme = $designInterface->getDesignTheme(); $this->initConfig(); - parent::__construct($context); } /** -- GitLab From dde01f37a7ab9434043e85a23639655069c8c7ab Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Mon, 12 Oct 2015 13:55:58 +0300 Subject: [PATCH 341/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix for "Category -> Swatches -> Not works" --- .../view/frontend/web/js/SwatchRenderer.js | 47 ++++++++++++------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js index 2927064a61e..0a19217a6de 100644 --- a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js +++ b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js @@ -210,13 +210,23 @@ define(["jquery", "jquery/ui"], function ($) { */ _create: function () { var options = this.options, - gallery = $('[data-gallery-role=gallery-placeholder]', '.column.main'); + gallery = $('[data-gallery-role=gallery-placeholder]', '.column.main'), + isProductViewExist = $('body.catalog-product-view').size() > 0, + $main = isProductViewExist ? + this.element.parents('.column.main') : + this.element.parents('.product-item-info'); - gallery.on('gallery:loaded', function () { - var galleryObject = gallery.data('gallery'); + if (isProductViewExist) { + gallery.on('gallery:loaded', function () { + var galleryObject = gallery.data('gallery'); - options.mediaGalleryInitial = galleryObject.returnCurrentImages(); - }); + options.mediaGalleryInitial = galleryObject.returnCurrentImages(); + }); + } else { + options.mediaGalleryInitial.push({ + 'img': $main.find('.product-image-photo').attr('src') + }); + } }, /** @@ -341,13 +351,13 @@ define(["jquery", "jquery/ui"], function ($) { // Color else if (type == 1) { html += '<div class="' + optionClass + ' color" ' + attr + - '" style="background: ' + value + ' no-repeat center; background-size: initial;">' + '' + '</div>'; + '" style="background: ' + value + ' no-repeat center; background-size: initial;">' + '' + '</div>'; } // Image else if (type == 2) { html += '<div class="' + optionClass + ' image" ' + attr + - '" style="background: url(' + value + ') no-repeat center; background-size: initial;">' + '' + '</div>'; + '" style="background: url(' + value + ') no-repeat center; background-size: initial;">' + '' + '</div>'; } // Clear @@ -758,13 +768,15 @@ define(["jquery", "jquery/ui"], function ($) { * @param {Boolean} isProductViewExist */ updateBaseImage: function (images, context, isProductViewExist) { + var justAnImage = images.shift(); + if (isProductViewExist) { context .find('[data-gallery-role=gallery-placeholder]') .data('gallery') .updateData(images); - } else { - context.find('.product-image-photo').attr('src', images.shift().img); + } else if (justAnImage.img) { + context.find('.product-image-photo').attr('src', justAnImage.img); } }, @@ -777,8 +789,8 @@ define(["jquery", "jquery/ui"], function ($) { var $widget = this; if ( - $widget.xhr != undefined - || $widget.xhr != null + $widget.xhr !== undefined + || $widget.xhr !== null ) { $widget.xhr.abort(); $widget.xhr = null; @@ -792,12 +804,12 @@ define(["jquery", "jquery/ui"], function ($) { */ _EmulateSelected: function () { var $widget = this, - $this = $widget.element; - var request = $.parseParams(window.location.search.substring(1)); + $this = $widget.element, + request = $.parseParams(window.location.search.substring(1)); $.each(request, function (key, value) { $this.find('.' + $widget.options.classes.attributeClass - + '[attribute-code="' + key + '"] [option-id="' + value + '"]').trigger('click'); + + '[attribute-code="' + key + '"] [option-id="' + value + '"]').trigger('click'); }); }, @@ -807,11 +819,14 @@ define(["jquery", "jquery/ui"], function ($) { * @returns {number} * @private */ - _ObjectLength: function(obj) { - var size = 0, key; + _ObjectLength: function (obj) { + var size = 0, + key; + for (key in obj) { if (obj.hasOwnProperty(key)) size++; } + return size; } }); -- GitLab From 7c4823310559060909eb33c147f6a74ed4e1ae33 Mon Sep 17 00:00:00 2001 From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com> Date: Mon, 12 Oct 2015 13:59:51 +0300 Subject: [PATCH 342/420] PV-224: CSS to LESS refactoring. Fix JS youtube API key --- .../adminhtml/web/js/get-video-information.js | 10 +++++++++- .../view/adminhtml/web/js/new-video-dialog.js | 20 +++++++++++++++---- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js index 86b47bfde2a..9292018e3a3 100644 --- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js +++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js @@ -322,7 +322,10 @@ require([ $.widget('mage.videoData', { options: { - youtubeKey: 'AIzaSyDwqDWuw1lra-LnpJL2Mr02DYuFmkuRSns' //sample data, change later! + youtubeKey: '', + noKeyErrorTxt : 'You have not entered youtube API key. ' + + 'No information about youtube video will be retrieved.', + eventSource : '' //where is data going from - focus out or click on button }, _REQUEST_VIDEO_INFORMATION_TRIGGER: 'update_video_information', @@ -337,6 +340,11 @@ require([ * @private */ _init: function () { + if (!this.options.youtubeKey && this.options.eventSource === 'click') { + alert({ + content: this.options.noKeyErrorTxt + }); + } this._onRequestHandler(); }, diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js index 4e9203e0f2c..89974feeb01 100644 --- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js +++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js @@ -243,7 +243,10 @@ define([ this._on(events); - this._videoUrlWidget = $(this._videoUrlSelector).videoData(); + this._videoUrlWidget = $(this._videoUrlSelector).videoData({ + youtubeKey : this.options.youTubeApiKey, + eventSource : 'focusout' + }); this._videoInformationGetBtn = $(this._videoInformationBtnSelector); this._videoInformationGetUrlField = $(this._videoUrlSelector); this._videoInformationGetEditBtn = $(this._editVideoBtnSelector); @@ -262,7 +265,10 @@ define([ _onGetVideoInformationClick: function () { this._onlyVideoPlayer = false; this._isEditPage = false; - this._videoInformationGetUrlField.videoData(); + this._videoInformationGetUrlField.videoData({ + youtubeKey : this.options.youTubeApiKey, + eventSource : 'click' + }); this._videoUrlWidget.trigger('update_video_information'); }, @@ -271,7 +277,10 @@ define([ * @private */ _onGetVideoInformationFocusOut: function () { - this._videoInformationGetUrlField.videoData(); + this._videoInformationGetUrlField.videoData({ + youtubeKey : this.options.youTubeApiKey, + eventSource : 'focusout' + }); this._videoUrlWidget.trigger('update_video_information'); }, @@ -282,7 +291,10 @@ define([ _onGetVideoInformationEditClick: function () { this._onlyVideoPlayer = true; this._isEditPage = true; - this._videoInformationGetUrlField.videoData(); + this._videoInformationGetUrlField.videoData({ + youtubeKey : this.options.youTubeApiKey, + eventSource : 'click' + }); this._videoUrlWidget.trigger('update_video_information'); }, -- GitLab From f28b463a29cf57d6d46989c2bfc74a4201026ffd Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Mon, 12 Oct 2015 14:05:35 +0300 Subject: [PATCH 343/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix for "Category -> Swatches -> Not works" --- .../Magento/Swatches/view/frontend/web/js/SwatchRenderer.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js index 0a19217a6de..026e22af8c0 100644 --- a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js +++ b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js @@ -788,10 +788,7 @@ define(["jquery", "jquery/ui"], function ($) { _XhrKiller: function () { var $widget = this; - if ( - $widget.xhr !== undefined - || $widget.xhr !== null - ) { + if ($widget.xhr !== undefined && $widget.xhr !== null) { $widget.xhr.abort(); $widget.xhr = null; } -- GitLab From 501b26a2afe111c68a3de76f0431717ed42d6b4e Mon Sep 17 00:00:00 2001 From: Mikalai_Eutsikhieu <Mikalai_Eutsikhieu@epam.com> Date: Mon, 12 Oct 2015 14:08:40 +0300 Subject: [PATCH 344/420] PV-224: CSS to LESS refactoring. Fix codestyle --- .../adminhtml/web/js/get-video-information.js | 4 ++-- .../view/adminhtml/web/js/new-video-dialog.js | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js index 9292018e3a3..424d996bda7 100644 --- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js +++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js @@ -323,9 +323,9 @@ require([ $.widget('mage.videoData', { options: { youtubeKey: '', - noKeyErrorTxt : 'You have not entered youtube API key. ' + + noKeyErrorTxt: 'You have not entered youtube API key. ' + 'No information about youtube video will be retrieved.', - eventSource : '' //where is data going from - focus out or click on button + eventSource: '' //where is data going from - focus out or click on button }, _REQUEST_VIDEO_INFORMATION_TRIGGER: 'update_video_information', diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js index 89974feeb01..e5efb668b51 100644 --- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js +++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/new-video-dialog.js @@ -244,8 +244,8 @@ define([ this._on(events); this._videoUrlWidget = $(this._videoUrlSelector).videoData({ - youtubeKey : this.options.youTubeApiKey, - eventSource : 'focusout' + youtubeKey: this.options.youTubeApiKey, + eventSource: 'focusout' }); this._videoInformationGetBtn = $(this._videoInformationBtnSelector); this._videoInformationGetUrlField = $(this._videoUrlSelector); @@ -266,8 +266,8 @@ define([ this._onlyVideoPlayer = false; this._isEditPage = false; this._videoInformationGetUrlField.videoData({ - youtubeKey : this.options.youTubeApiKey, - eventSource : 'click' + youtubeKey: this.options.youTubeApiKey, + eventSource: 'click' }); this._videoUrlWidget.trigger('update_video_information'); }, @@ -278,8 +278,8 @@ define([ */ _onGetVideoInformationFocusOut: function () { this._videoInformationGetUrlField.videoData({ - youtubeKey : this.options.youTubeApiKey, - eventSource : 'focusout' + youtubeKey: this.options.youTubeApiKey, + eventSource: 'focusout' }); this._videoUrlWidget.trigger('update_video_information'); }, @@ -292,8 +292,8 @@ define([ this._onlyVideoPlayer = true; this._isEditPage = true; this._videoInformationGetUrlField.videoData({ - youtubeKey : this.options.youTubeApiKey, - eventSource : 'click' + youtubeKey: this.options.youTubeApiKey, + eventSource: 'click' }); this._videoUrlWidget.trigger('update_video_information'); }, -- GitLab From be110be0fc3de86d07e5e1b60cea682c3eb68f13 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Mon, 12 Oct 2015 14:10:56 +0300 Subject: [PATCH 345/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix for "Category -> Swatches -> Not works" --- .../Magento/Swatches/view/frontend/web/js/SwatchRenderer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js index 026e22af8c0..c9650b78b7f 100644 --- a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js +++ b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js @@ -223,9 +223,9 @@ define(["jquery", "jquery/ui"], function ($) { options.mediaGalleryInitial = galleryObject.returnCurrentImages(); }); } else { - options.mediaGalleryInitial.push({ + options.mediaGalleryInitial = [{ 'img': $main.find('.product-image-photo').attr('src') - }); + }]; } }, -- GitLab From 152db7db56a6cf65a16ce26ac9a0412d4e29e3b5 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Mon, 12 Oct 2015 14:24:50 +0300 Subject: [PATCH 346/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix for "Category -> Swatches -> Not works" --- .../Magento/Swatches/view/frontend/web/js/SwatchRenderer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js index c9650b78b7f..0baa01cffda 100644 --- a/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js +++ b/app/code/Magento/Swatches/view/frontend/web/js/SwatchRenderer.js @@ -768,14 +768,14 @@ define(["jquery", "jquery/ui"], function ($) { * @param {Boolean} isProductViewExist */ updateBaseImage: function (images, context, isProductViewExist) { - var justAnImage = images.shift(); + var justAnImage = images[0]; if (isProductViewExist) { context .find('[data-gallery-role=gallery-placeholder]') .data('gallery') .updateData(images); - } else if (justAnImage.img) { + } else if (justAnImage && justAnImage.img) { context.find('.product-image-photo').attr('src', justAnImage.img); } }, -- GitLab From d4243cacbf11635e3588a0dce51ee2a187318aff Mon Sep 17 00:00:00 2001 From: Denys Rul <drul@ebay.com> Date: Mon, 12 Oct 2015 15:58:30 +0300 Subject: [PATCH 347/420] MAGETWO-43593: PR - Fix visual onoff component templates --- .../Ui/view/base/web/js/grid/columns/onoff.js | 5 ++++ .../base/web/templates/grid/cells/onoff.html | 30 +++++++++++-------- .../web/templates/grid/columns/onoff.html | 13 ++++---- 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/app/code/Magento/Ui/view/base/web/js/grid/columns/onoff.js b/app/code/Magento/Ui/view/base/web/js/grid/columns/onoff.js index 86647b88bd1..407544fd2cc 100755 --- a/app/code/Magento/Ui/view/base/web/js/grid/columns/onoff.js +++ b/app/code/Magento/Ui/view/base/web/js/grid/columns/onoff.js @@ -14,6 +14,11 @@ define([ defaults: { headerTmpl: 'ui/grid/columns/onoff', bodyTmpl: 'ui/grid/cells/onoff', + fieldClass: { + 'admin__scope-old': true, + 'data-grid-onoff-cell': true, + 'data-grid-checkbox-cell': false + }, imports: { selectedData: '${ $.provider }:data.selectedData' }, diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/cells/onoff.html b/app/code/Magento/Ui/view/base/web/templates/grid/cells/onoff.html index 54bc04ebbda..9a23d227e58 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/cells/onoff.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/cells/onoff.html @@ -4,15 +4,21 @@ * See COPYING.txt for license details. */ --> - -<td class="data-grid-onoff-cell admin__scope-old"> - <div class="switcher"> - <input - class="admin__control-onoff" - type="checkbox" - data-bind="checked: selected, - value: row[indexField], - attr: {id: 'check' + row[indexField]}"> - <label class="switcher-label" data-bind="attr: {for: 'check' + row[indexField]}, text: getLabel(row[indexField])"></label> - </div> -</td> +<div class="switcher"> + <input + class="admin__control-onoff" + type="checkbox" + data-bind=" + staticChecked: $col.selected, + value: $row()[$col.indexField], + attr: { + id: 'check' + $row()[$col.indexField] + }"> + <label + class="switcher-label" + data-bind=" + attr: { + for: 'check' + $row()[$col.indexField] + }, + text: $col.getLabel($row()[$col.indexField])"></label> +</div> diff --git a/app/code/Magento/Ui/view/base/web/templates/grid/columns/onoff.html b/app/code/Magento/Ui/view/base/web/templates/grid/columns/onoff.html index f98dcf944f2..5e68fc3a77b 100644 --- a/app/code/Magento/Ui/view/base/web/templates/grid/columns/onoff.html +++ b/app/code/Magento/Ui/view/base/web/templates/grid/columns/onoff.html @@ -10,13 +10,12 @@ <div class="action-multicheck-wrap" style="width: 3.3rem" - data-bind="css: { '_active': menuVisible, '_disabled': !totalRecords()}, - outerClick: hideMenu"> + data-bind="css: {'_disabled': !totalRecords()}, collapsible"> <input id="mass-select-checkbox" class="admin__control-checkbox" type="checkbox" - data-bind="checked: allSelected, + data-bind="checked: allSelected(), event: { change: toggleSelectAll }, css: { '_indeterminate': indetermine }, enable: totalRecords"> @@ -26,14 +25,14 @@ <button class="action-multicheck-toggle" data-toggle="dropdown" - data-bind="css: { '_active': menuVisible }, - click: toggleMenu, - enable: totalRecords"> + data-bind="css: { '_active': $collapsible.opened }, + enable: totalRecords + toggleCollapsible"> <span data-bind="i18n: 'Options'"></span> </button> <ul class="action-menu" - data-bind="click: hideMenu, foreach: actions"> + data-bind="closeCollapsible, foreach: actions"> <li data-bind="click: $parent[value].bind($parent), visible: $parent.isActionRelevant(value)"> <span class="action-menu-item" data-bind="text: label"></span> -- GitLab From 9cc9f5d9e8e6fd60ff45c97dccaad391fc431d76 Mon Sep 17 00:00:00 2001 From: Sergey Semenov <ssemenov@ebay.com> Date: Mon, 12 Oct 2015 17:47:25 +0300 Subject: [PATCH 348/420] MAGETWO-43271: [Technical Debt] Uncovered code with unit test --- .../Unit/Ui/Component/DataProviderTest.php | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 app/code/Magento/Customer/Test/Unit/Ui/Component/DataProviderTest.php diff --git a/app/code/Magento/Customer/Test/Unit/Ui/Component/DataProviderTest.php b/app/code/Magento/Customer/Test/Unit/Ui/Component/DataProviderTest.php new file mode 100644 index 00000000000..7e1b9f9d437 --- /dev/null +++ b/app/code/Magento/Customer/Test/Unit/Ui/Component/DataProviderTest.php @@ -0,0 +1,164 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Customer\Test\Unit\Ui\Component; + +use Magento\Customer\Api\Data\AttributeMetadataInterface; +use Magento\Customer\Ui\Component\DataProvider; +use Magento\Customer\Ui\Component\Listing\AttributeRepository; +use Magento\Framework\Api\FilterBuilder; +use Magento\Framework\Api\Search\SearchCriteriaInterface; +use Magento\Framework\View\Element\UiComponent\DataProvider\Reporting; + +class DataProviderTest extends \PHPUnit_Framework_TestCase +{ + const TEST_REQUEST_NAME = 'test_request_name'; + + /** + * @var DataProvider + */ + protected $model; + + /** + * @var Reporting | \PHPUnit_Framework_MockObject_MockObject + */ + protected $reporting; + + /** + * @var SearchCriteriaInterface | \PHPUnit_Framework_MockObject_MockObject + */ + protected $searchCriteria; + + /** + * @var \Magento\Framework\App\RequestInterface | \PHPUnit_Framework_MockObject_MockObject + */ + protected $request; + + /** + * @var FilterBuilder | \PHPUnit_Framework_MockObject_MockObject + */ + protected $filterBuilder; + + /** + * @var AttributeRepository | \PHPUnit_Framework_MockObject_MockObject + */ + protected $attributeRepository; + + public function setUp() + { + $this->reporting = $this->getMockBuilder('Magento\Framework\View\Element\UiComponent\DataProvider\Reporting') + ->disableOriginalConstructor() + ->getMock(); + + $searchCriteriaBuilder = $this->mockSearchCriteria(); + + $this->request = $this->getMockBuilder('Magento\Framework\App\RequestInterface') + ->getMockForAbstractClass(); + + $this->filterBuilder = $this->getMockBuilder('Magento\Framework\Api\FilterBuilder') + ->disableOriginalConstructor() + ->getMock(); + + $this->attributeRepository = $this->getMockBuilder('Magento\Customer\Ui\Component\Listing\AttributeRepository') + ->disableOriginalConstructor() + ->getMock(); + + $this->model = new DataProvider( + self::TEST_REQUEST_NAME, + '', + '', + $this->reporting, + $searchCriteriaBuilder, + $this->request, + $this->filterBuilder, + $this->attributeRepository + ); + } + + public function testGetData() + { + $attributeCode = 'attribute_code'; + $attributeValue = [ + AttributeMetadataInterface::OPTIONS => [ + [ + 'label' => 'opt1_label', + 'value' => 'opt1_value', + ], + ], + ]; + + $expected = [ + [ + 'attribute_code' => ['opt1_value'], + ], + ]; + + $attributeMock = $this->getMockBuilder('Magento\Framework\Api\AttributeInterface') + ->getMockForAbstractClass(); + $attributeMock->expects($this->once()) + ->method('getAttributeCode') + ->willReturn($attributeCode); + $attributeMock->expects($this->once()) + ->method('getValue') + ->willReturn('opt1_value'); + + $searchDocumentMock = $this->getMockBuilder('Magento\Framework\Api\Search\DocumentInterface') + ->getMockForAbstractClass(); + $searchDocumentMock->expects($this->once()) + ->method('getCustomAttributes') + ->willReturn([$attributeMock]); + + $searchResultMock = $this->getMockBuilder('Magento\Framework\Api\Search\SearchResultInterface') + ->getMockForAbstractClass(); + $searchResultMock->expects($this->once()) + ->method('getTotalCount') + ->willReturn(1); + $searchResultMock->expects($this->once()) + ->method('getItems') + ->willReturn([$searchDocumentMock]); + + $this->searchCriteria->expects($this->once()) + ->method('setRequestName') + ->with(self::TEST_REQUEST_NAME) + ->willReturnSelf(); + + $this->reporting->expects($this->once()) + ->method('search') + ->with($this->searchCriteria) + ->willReturn($searchResultMock); + + $this->attributeRepository->expects($this->once()) + ->method('getList') + ->willReturn([$attributeCode => $attributeValue]); + + $result = $this->model->getData(); + + $this->assertTrue(is_array($result)); + $this->assertArrayHasKey('totalRecords', $result); + $this->assertEquals(1, $result['totalRecords']); + $this->assertArrayHasKey('items', $result); + $this->assertTrue(is_array($result['items'])); + $this->assertEquals($result['items'], $expected); + } + + /** + * @return \PHPUnit_Framework_MockObject_MockObject + */ + protected function mockSearchCriteria() + { + $this->searchCriteria = $this->getMockBuilder('Magento\Framework\Api\Search\SearchCriteriaInterface') + ->getMockForAbstractClass(); + + $searchCriteriaBuilder = $this->getMockBuilder('Magento\Framework\Api\Search\SearchCriteriaBuilder') + ->disableOriginalConstructor() + ->getMock(); + + $searchCriteriaBuilder->expects($this->any()) + ->method('create') + ->willReturn($this->searchCriteria); + + return $searchCriteriaBuilder; + } +} -- GitLab From 16fd37fd52238a4d2fc24c0bebdc014d4e2dd90c Mon Sep 17 00:00:00 2001 From: Oleksandr Miroshnichenko <omiroshnichenko@ebay.com> Date: Mon, 12 Oct 2015 18:07:12 +0300 Subject: [PATCH 349/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix zoom --- lib/web/magnifier/magnifier.js | 151 +++++++++++++++++---------------- 1 file changed, 79 insertions(+), 72 deletions(-) diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index fd182705b98..92c7156fcef 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -609,6 +609,7 @@ if (gallery.data('fotorama').fullScreen) { toggleZoomButtons($image); + resetVars($('[data-gallery-role="stage-shaft"] .fotorama__img--full')); $('.fotorama__stage__frame .fotorama__img--full').each(function () { var path = $(this).attr("src"), @@ -635,80 +636,86 @@ }); } - $image.on(isTouchEnabled ? 'touchstart' : 'pointerdown mousedown MSPointerDown', function (e) { - if (gallery.data('fotorama').fullScreen && isDraggable) { - e.preventDefault(); - $image.css('cursor', 'move'); - imagePosY = $image.offset().top; - imagePosX = $image.offset().left; - - if (isTouchEnabled) { - touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; - e.clientX = touch.pageX; - e.clientY = touch.pageY; + $image + .off(isTouchEnabled ? 'touchstart' : 'pointerdown mousedown MSPointerDown') + .on(isTouchEnabled ? 'touchstart' : 'pointerdown mousedown MSPointerDown', function (e) { + if (gallery.data('fotorama').fullScreen && isDraggable) { + e.preventDefault(); + $image.css('cursor', 'move'); + imagePosY = $image.offset().top; + imagePosX = $image.offset().left; + + if (isTouchEnabled) { + touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; + e.clientX = touch.pageX; + e.clientY = touch.pageY; + } + startX = e.clientX || e.originalEvent.clientX; + startY = e.clientY || e.originalEvent.clientY; + isDragActive = true; } - startX = e.clientX || e.originalEvent.clientX; - startY = e.clientY || e.originalEvent.clientY; - isDragActive = true; - } - }); + }); - $image.on(isTouchEnabled ? 'touchmove' : 'mousemove pointermove MSPointerMove', function (e) { - if (gallery.data('fotorama').fullScreen && isDragActive && isDraggable) { + $image + .off(isTouchEnabled ? 'touchmove' : 'mousemove pointermove MSPointerMove') + .on(isTouchEnabled ? 'touchmove' : 'mousemove pointermove MSPointerMove', function (e) { + if (gallery.data('fotorama').fullScreen && isDragActive && isDraggable) { - var top, - left, - startOffset = $image.offset(), - clientX = e.clientX || e.originalEvent.clientX, - clientY = e.clientY || e.originalEvent.clientY; + var top, + left, + startOffset = $image.offset(), + clientX = e.clientX || e.originalEvent.clientX, + clientY = e.clientY || e.originalEvent.clientY; - e.preventDefault(); + e.preventDefault(); - if (isTouchEnabled) { - touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; - e.clientX = touch.pageX; - e.clientY = touch.pageY; - } - top = +imagePosY + (clientY - startY); - left = +imagePosX + (clientX - startX); + if (isTouchEnabled) { + touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0]; + e.clientX = touch.pageX; + e.clientY = touch.pageY; + } + top = +imagePosY + (clientY - startY); + left = +imagePosX + (clientX - startX); - if ($image.height() > $imageContainer.height()) { + if ($image.height() > $imageContainer.height()) { - if (($imageContainer.offset().top + $imageContainer.height()) > (top + $image.height())) { - top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); - } else { - top = ($imageContainer.offset().top < top) ? 0 : top; + if (($imageContainer.offset().top + $imageContainer.height()) > (top + $image.height())) { + top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); + } else { + top = ($imageContainer.offset().top < top) ? 0 : top; + } + $image.offset({ + 'top': top + }); } - $image.offset({ - 'top': top - }); - } - if ($image.width() > $imageContainer.width()) { + if ($image.width() > $imageContainer.width()) { - if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width())) { - left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); - } else { - left = ($imageContainer.offset().left < left) ? $imageContainer.offset().left : left; + if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width())) { + left = $imageContainer.offset().left + $imageContainer.width() - $image.width(); + } else { + left = ($imageContainer.offset().left < left) ? $imageContainer.offset().left : left; + } + $image.offset({ + 'left': left + }); } - $image.offset({ - 'left': left - }); } - } - }); + }); - $image.on(isTouchEnabled ? 'touchend' : 'mouseup pointerup MSPointerUp', function (e) { - if (gallery.data('fotorama').fullScreen && isDragActive && isDraggable) { - isDragActive = false; - $image.css('cursor', 'pointer'); + $image + .off(isTouchEnabled ? 'touchend' : 'mouseup pointerup MSPointerUp') + .on(isTouchEnabled ? 'touchend' : 'mouseup pointerup MSPointerUp', function (e) { + if (gallery.data('fotorama').fullScreen && isDragActive && isDraggable) { + isDragActive = false; + $image.css('cursor', 'pointer'); - return false; - } - }); + return false; + } + }); }); } @@ -792,10 +799,10 @@ left = $image.offset().left; if ($image.height() > $imageContainer.height()) { - if ($imageContainer.offset().top + $imageContainer.height() > top + $image.height()) { - top = $imageContainer.offset().top + $imageContainer.height() - $image.height(); + if ($imageContainer.offset().top + $imageContainer.height() > top + $image.height() + heightStep/2) { + top = $imageContainer.offset().top + $imageContainer.height() - $image.height() + heightStep/2; } else { - top = ($imageContainer.offset().top <= top && heightStep > 0) ? 0 : top + heightStep/2; + top = ($imageContainer.offset().top <= top + heightStep/2 && heightStep > 0) ? 0 : top + heightStep/2; } $image.css({ top: top, @@ -809,10 +816,10 @@ } if ($image.width() > $imageContainer.width()) { - if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width())) { + if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width() + widthStep/2)) { left = $imageContainer.offset().left + $imageContainer.width() - $image.width() + widthStep/2; } else { - left = ($imageContainer.offset().left <= left && widthStep > 0) ? 0 : left + widthStep/2; + left = ($imageContainer.offset().left <= left + widthStep/2 && widthStep > 0) ? 0 : left + widthStep/2; } $image.css({ left: left, @@ -835,8 +842,8 @@ heightResult; if (!zoomWidthStep) { - zoomWidthStep = Math.round((imgOriginalSize.rw - $image.width())/parseFloat(options.fullscreenzoom)); - zoomHeightStep = Math.round((imgOriginalSize.rh - $image.height())/parseFloat(options.fullscreenzoom)); + zoomWidthStep = Math.ceil((imgOriginalSize.rw - $image.width())/parseFloat(options.fullscreenzoom)); + zoomHeightStep = Math.ceil((imgOriginalSize.rh - $image.height())/parseFloat(options.fullscreenzoom)); } widthResult = $image.width() + zoomWidthStep; heightResult = $image.height() + zoomHeightStep; @@ -879,16 +886,16 @@ e.preventDefault(); - if ($image.width() >= $image.height() && widthCheck) { - $image.css({'width': $image.parent().width(), height: 'auto'}); - resetVars($image); + if (widthCheck && heightCheck) { + if ($image.width() >= $image.height()) { + $image.trigger('fotorama:load'); - return false; - } else if ($image.width() < $image.height() && heightCheck) { - $image.css({'width': 'auto', height: $image.parent().height()}); - resetVars($image); + return false; + } else if ($image.width() < $image.height()) { + $image.trigger('fotorama:load'); - return false; + return false; + } } $image.css({'width': setedResult, height: 'auto'}); -- GitLab From b2ec993e3911f2b5f3557d1c137e75a5a4addaea Mon Sep 17 00:00:00 2001 From: Stanislau komar <head.trackingsoft@gmail.com> Date: Mon, 12 Oct 2015 18:08:50 +0300 Subject: [PATCH 350/420] PV-224: Create errors handler --- .../adminhtml/web/js/get-video-information.js | 43 ++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js index 424d996bda7..9e1f8436618 100644 --- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js +++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js @@ -373,14 +373,53 @@ require([ } /** + * + * @param {Object} data * @private */ function _onYouTubeLoaded(data) { var tmp, uploadedFormatted, - respData; + respData, + createErrorMessage; + + /** + * Create errors message + * + * @returns {String} + */ + createErrorMessage = function () { + var error = data.error, + errors = error.errors, + i, + errLength = errors.length, + tmpError, + errReason, + errorsMessage = []; + + for (i = 0; i < errLength; i++) { + tmpError = errors[i]; + errReason = tmpError.reason; + + if (['keyInvalid'].indexOf(errReason) !== -1) { + errorsMessage.push('Youtube API key is an invalid'); + + break; + } + + errorsMessage.push(tmpError.message); + } + + return 'Video can\'t be shown by reason: ' + $.unique(errorsMessage).join(', '); + }; + + if (data.code === 400) { + this._onRequestError(createErrorMessage()); + + return; + } - if (data.items.length < 1) { + if (!data.items || data.items.length < 1) { this._onRequestError('Video not found'); return; -- GitLab From 164efa6a3ceac4ea29845c04a8de59df3d2c1e69 Mon Sep 17 00:00:00 2001 From: Stanislau komar <head.trackingsoft@gmail.com> Date: Mon, 12 Oct 2015 18:15:48 +0300 Subject: [PATCH 351/420] PV-224: Fix youtube errors check --- .../view/adminhtml/web/js/get-video-information.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js index 9e1f8436618..52171f1537a 100644 --- a/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js +++ b/app/code/Magento/ProductVideo/view/adminhtml/web/js/get-video-information.js @@ -413,7 +413,7 @@ require([ return 'Video can\'t be shown by reason: ' + $.unique(errorsMessage).join(', '); }; - if (data.code === 400) { + if (data.error && data.error.code === 400) { this._onRequestError(createErrorMessage()); return; @@ -424,6 +424,7 @@ require([ return; } + tmp = data.items[0]; uploadedFormatted = tmp.snippet.publishedAt.replace('T', ' ').replace(/\..+/g, ''); respData = { -- GitLab From f03464b9befe80e98848b0f26ce3bd2169de98c6 Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Mon, 12 Oct 2015 13:08:55 +0300 Subject: [PATCH 352/420] MAGETWO-43923: [GitHub]ModelResource namespace inconsistency static tests fixes --- app/code/Magento/Config/Model/ResourceModel/Config.php | 4 ++-- .../Adminhtml/Invoice/AbstractInvoice/Pdfinvoices.php | 3 +++ app/code/Magento/Theme/Model/ResourceModel/Design.php | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Config/Model/ResourceModel/Config.php b/app/code/Magento/Config/Model/ResourceModel/Config.php index 617a7bc5f09..7f7ccfc8826 100644 --- a/app/code/Magento/Config/Model/ResourceModel/Config.php +++ b/app/code/Magento/Config/Model/ResourceModel/Config.php @@ -10,8 +10,8 @@ namespace Magento\Config\Model\ResourceModel; * * @author Magento Core Team <core@magentocommerce.com> */ -class Config extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb - implements \Magento\Framework\App\Config\ConfigResource\ConfigInterface +class Config extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb implements + \Magento\Framework\App\Config\ConfigResource\ConfigInterface { /** * Define main table diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Pdfinvoices.php b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Pdfinvoices.php index 043565937d8..18176404798 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Pdfinvoices.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Invoice/AbstractInvoice/Pdfinvoices.php @@ -16,6 +16,9 @@ use Magento\Framework\App\Response\Http\FileFactory; use Magento\Backend\App\Action\Context; use Magento\Sales\Model\ResourceModel\Order\Invoice\CollectionFactory; +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ abstract class Pdfinvoices extends \Magento\Sales\Controller\Adminhtml\Order\AbstractMassAction { /** diff --git a/app/code/Magento/Theme/Model/ResourceModel/Design.php b/app/code/Magento/Theme/Model/ResourceModel/Design.php index 8743ff1b7bd..2edb0163bae 100644 --- a/app/code/Magento/Theme/Model/ResourceModel/Design.php +++ b/app/code/Magento/Theme/Model/ResourceModel/Design.php @@ -3,7 +3,7 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ - +// @codingStandardsIgnoreFile namespace Magento\Theme\Model\ResourceModel; use Magento\Framework\Stdlib\DateTime; -- GitLab From 79168550de5fbd39c7d9bd05429e76315cb0e1ac Mon Sep 17 00:00:00 2001 From: Natalia Momotenko <nmomotenko@ebay.com> Date: Mon, 12 Oct 2015 18:30:19 +0300 Subject: [PATCH 353/420] MAGETWO-43358: Shipment packages cannot be shown in Admin - revert changes with mixin renaming, they will be added in the separate task --- .../Magento/luma/Magento_Sales/web/css/source/_email.less | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/design/frontend/Magento/luma/Magento_Sales/web/css/source/_email.less b/app/design/frontend/Magento/luma/Magento_Sales/web/css/source/_email.less index 9fbeb9458d0..8d002c55b8e 100644 --- a/app/design/frontend/Magento/luma/Magento_Sales/web/css/source/_email.less +++ b/app/design/frontend/Magento/luma/Magento_Sales/web/css/source/_email.less @@ -100,7 +100,7 @@ // ---------------------------------------------- .shipment-track { - .lib-table(@table__width, 0); + .table(@table__width, 0); thead, tbody { @@ -127,7 +127,7 @@ // ---------------------------------------------- .email-items { - .lib-table(@table__width, 0); + .table(@table__width, 0); tfoot { > tr { > th, @@ -241,6 +241,6 @@ .email-non-inline() { .email-items { - .lib-table-overflow(); + .table-overflow(); } } -- GitLab From c8d1844838f71e0129b761c61862c11fb4a3ac74 Mon Sep 17 00:00:00 2001 From: Joan He <joan@x.com> Date: Mon, 12 Oct 2015 10:38:35 -0500 Subject: [PATCH 354/420] MAGETWO-32443: [GITHUB] if_module_enabled has no effect #934 --- .../Config/Block/System/Config/FormTest.php | 74 +++++++++++-------- .../Config/_files/test_section_config.xml | 8 +- 2 files changed, 50 insertions(+), 32 deletions(-) diff --git a/dev/tests/integration/testsuite/Magento/Config/Block/System/Config/FormTest.php b/dev/tests/integration/testsuite/Magento/Config/Block/System/Config/FormTest.php index cc545e0b553..d1bd13f74a1 100644 --- a/dev/tests/integration/testsuite/Magento/Config/Block/System/Config/FormTest.php +++ b/dev/tests/integration/testsuite/Magento/Config/Block/System/Config/FormTest.php @@ -75,19 +75,21 @@ class FormTest extends \PHPUnit_Framework_TestCase /** * @covers \Magento\Config\Block\System\Config\Form::initFields - * @param bool $useConfigField uses the test_field_use_config field if true + * @param string $fieldId uses the test_field_use_config field if true * @param bool $isConfigDataEmpty if the config data array should be empty or not - * @param $configDataValue the value that the field path should be set to in the config data + * @param string $configDataValue The value that the field path should be set to in the config data + * @param int $valueSelCtr Number of time that value is selected * @param bool $expectedUseDefault * @dataProvider initFieldsUseDefaultCheckboxDataProvider */ public function testInitFieldsUseDefaultCheckbox( - $useConfigField, + $fieldId, $isConfigDataEmpty, $configDataValue, - $expectedUseDefault + $expectedUseDefault, + $valueSelCtr = 1 ) { - $this->_setupFieldsInheritCheckbox($useConfigField, $isConfigDataEmpty, $configDataValue); + $this->_setupFieldsInheritCheckbox($fieldId, $isConfigDataEmpty, $configDataValue); \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( 'Magento\Framework\Config\ScopeInterface' @@ -126,12 +128,17 @@ class FormTest extends \PHPUnit_Framework_TestCase $fieldsetHtml = $fieldset->getElementHtml(); $this->assertSelectCount($fieldsetSel, true, $fieldsetHtml, 'Fieldset HTML is invalid'); - $this->assertSelectCount($valueSel, true, $fieldsetHtml, 'Field input not found in fieldset HTML'); + $this->assertSelectCount( + $valueSel, + $valueSelCtr, + $fieldsetHtml, + 'Field input should appear ' . $valueSelCtr . ' times in fieldset HTML' + ); $this->assertSelectCount( $useDefaultSel, - true, + $valueSelCtr, $fieldsetHtml, - '"Use Default" checkbox not found in fieldset HTML' + '"Use Default" checkbox should appear' . $valueSelCtr . ' times in fieldset HTML.' ); if ($expectedUseDefault) { @@ -159,25 +166,27 @@ class FormTest extends \PHPUnit_Framework_TestCase public static function initFieldsUseDefaultCheckboxDataProvider() { return [ - [false, true, null, true], - [false, false, null, false], - [false, false, '', false], - [false, false, 'value', false], - [true, false, 'config value', false] + ['test_field', true, null, true], + ['test_field', false, null, false], + ['test_field', false, '', false], + ['test_field', false, 'value', false], + ['test_field_use_config_module_1', false, 'config value', false], + ['test_field_use_config_module_0', false, 'config value', false, 0], ]; } /** * @covers \Magento\Config\Block\System\Config\Form::initFields - * @param bool $useConfigField uses the test_field_use_config field if true + * @param string $fieldId uses the test_field_use_config field if true * @param bool $isConfigDataEmpty if the config data array should be empty or not - * @param $configDataValue the value that the field path should be set to in the config data + * @param string $configDataValue Value that the field path should be set to in the config data + * @param int $valueSelCtr Number of time that value is selected * @dataProvider initFieldsUseConfigPathDataProvider * @magentoConfigFixture default/test_config_section/test_group_config_node/test_field_value config value */ - public function testInitFieldsUseConfigPath($useConfigField, $isConfigDataEmpty, $configDataValue) + public function testInitFieldsUseConfigPath($fieldId, $isConfigDataEmpty, $configDataValue, $valueSelCtr = 1) { - $this->_setupFieldsInheritCheckbox($useConfigField, $isConfigDataEmpty, $configDataValue); + $this->_setupFieldsInheritCheckbox($fieldId, $isConfigDataEmpty, $configDataValue); \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get( 'Magento\Framework\Config\ScopeInterface' @@ -208,7 +217,12 @@ class FormTest extends \PHPUnit_Framework_TestCase $fieldsetHtml = $fieldset->getElementHtml(); $this->assertSelectCount($fieldsetSel, true, $fieldsetHtml, 'Fieldset HTML is invalid'); - $this->assertSelectCount($valueSel, true, $fieldsetHtml, 'Field input not found in fieldset HTML'); + $this->assertSelectCount( + $valueSel, + $valueSelCtr, + $fieldsetHtml, + 'Field input should appear ' . $valueSelCtr . ' times in fieldset HTML' + ); } /** @@ -217,20 +231,21 @@ class FormTest extends \PHPUnit_Framework_TestCase public static function initFieldsUseConfigPathDataProvider() { return [ - [false, true, null], - [false, false, null], - [false, false, ''], - [false, false, 'value'], - [true, false, 'config value'] + ['test_field', true, null], + ['test_field', false, null], + ['test_field', false, ''], + ['test_field', false, 'value'], + ['test_field_use_config_module_1', false, 'config value'], + ['test_field_use_config_module_0', false, 'config value', 0] ]; } /** - * @param bool $useConfigField uses the test_field_use_config field if true + * @param string $fieldId uses the test_field_use_config field if true * @param bool $isConfigDataEmpty if the config data array should be empty or not - * @param $configDataValue the value that the field path should be set to in the config data + * @param string $configDataValue the value that the field path should be set to in the config data */ - protected function _setupFieldsInheritCheckbox($useConfigField, $isConfigDataEmpty, $configDataValue) + protected function _setupFieldsInheritCheckbox($fieldId, $isConfigDataEmpty, $configDataValue) { \Magento\TestFramework\Helper\Bootstrap::getInstance()->reinitialize([ State::PARAM_BAN_CACHE => true, @@ -273,11 +288,8 @@ class FormTest extends \PHPUnit_Framework_TestCase $this->_group = $structure->getElement('test_section/test_group'); - if ($useConfigField) { - $this->_field = $structure->getElement('test_section/test_group/test_field_use_config'); - } else { - $this->_field = $structure->getElement('test_section/test_group/test_field'); - } + $this->_field = $structure->getElement('test_section/test_group/' . $fieldId); + $fieldPath = $this->_field->getConfigPath(); if ($isConfigDataEmpty) { diff --git a/dev/tests/integration/testsuite/Magento/Config/Block/System/Config/_files/test_section_config.xml b/dev/tests/integration/testsuite/Magento/Config/Block/System/Config/_files/test_section_config.xml index 072e1921a23..d584ff2a9f4 100644 --- a/dev/tests/integration/testsuite/Magento/Config/Block/System/Config/_files/test_section_config.xml +++ b/dev/tests/integration/testsuite/Magento/Config/Block/System/Config/_files/test_section_config.xml @@ -20,9 +20,15 @@ <label>Test Field</label> <config_path>test_section/test_group/test_field</config_path> </field> - <field id="test_field_use_config" translate="label comment" showInDefault="1" showInWebsite="1" showInStore="1" type="text" sortOrder="20"> + <field id="test_field_use_config_module_1" translate="label comment" showInDefault="1" showInWebsite="1" showInStore="1" type="text" sortOrder="20"> <label>Test Field</label> <config_path>test_config_section/test_group_config_node/test_field_value</config_path> + <if_module_enabled>Magento_Config</if_module_enabled> + </field> + <field id="test_field_use_config_module_0" translate="label comment" showInDefault="1" showInWebsite="1" showInStore="1" type="text" sortOrder="20"> + <label>Test Field</label> + <config_path>test_config_section/test_group_config_node/test_field_value</config_path> + <if_module_enabled>Test_Module</if_module_enabled> </field> </group> </section> -- GitLab From b8143f128de2bb5981a511794a1a807ae2e92013 Mon Sep 17 00:00:00 2001 From: ALIAKSANDR KOMAR <ALIAKSANDR_KOMAR@epam.com> Date: Mon, 12 Oct 2015 18:51:00 +0300 Subject: [PATCH 355/420] PV-224: unit test fix --- .../Test/Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/ProductVideo/Test/Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php b/app/code/Magento/ProductVideo/Test/Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php index 55fe3af0f92..e07d3144baa 100644 --- a/app/code/Magento/ProductVideo/Test/Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php +++ b/app/code/Magento/ProductVideo/Test/Unit/Block/Adminhtml/Product/Edit/NewVideoTest.php @@ -86,7 +86,8 @@ class NewVideoTest extends \PHPUnit_Framework_TestCase $value = [ 'saveVideoUrl' => $saveVideoUrl, 'saveRemoteVideoUrl' => $saveRemoteVideoUrl, - 'htmlId' => 'id_' . $rand + 'htmlId' => 'id_' . $rand, + 'youTubeApiKey' => null ]; $this->jsonEncoderMock->expects($this->once())->method('encode')->with( $value -- GitLab From 50aad75484ae9494785e792cc575cf25dda4fb23 Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Mon, 12 Oct 2015 18:57:35 +0300 Subject: [PATCH 356/420] MAGETWO-43920: [GitHub]Magento requires reinstalling after PR #697 added upgrade scripts --- .../Magento/Catalog/Setup/UpgradeData.php | 41 ++++++++ app/code/Magento/Catalog/etc/module.xml | 2 +- .../Magento/Customer/Setup/UpgradeData.php | 45 +++++++++ app/code/Magento/Customer/etc/module.xml | 2 +- app/code/Magento/Sales/Setup/UpgradeData.php | 95 +++++++++++++++++++ app/code/Magento/Sales/etc/module.xml | 2 +- .../NamingConventions/ReservedWordsSniff.php | 1 - 7 files changed, 184 insertions(+), 4 deletions(-) create mode 100644 app/code/Magento/Sales/Setup/UpgradeData.php diff --git a/app/code/Magento/Catalog/Setup/UpgradeData.php b/app/code/Magento/Catalog/Setup/UpgradeData.php index 5adf385101f..b45361434e2 100644 --- a/app/code/Magento/Catalog/Setup/UpgradeData.php +++ b/app/code/Magento/Catalog/Setup/UpgradeData.php @@ -85,6 +85,47 @@ class UpgradeData implements UpgradeDataInterface $categorySetupManager = $this->categorySetupFactory->create(); $categorySetupManager->removeAttribute(\Magento\Catalog\Model\Product::ENTITY, 'group_price'); } + + if (version_compare($context->getVersion(), '2.0.2') < 0) { + /** @var \Magento\Catalog\Setup\CategorySetup $categorySetup */ + $categorySetup = $this->categorySetupFactory->create(['setup' => $setup]); + $categorySetup->updateEntityType( + \Magento\Catalog\Model\Category::ENTITY, + 'entity_model', + 'Magento\Catalog\Model\ResourceModel\Category' + ); + $categorySetup->updateEntityType( + \Magento\Catalog\Model\Category::ENTITY, + 'attribute_model', + 'Magento\Catalog\Model\ResourceModel\Eav\Attribute' + ); + $categorySetup->updateEntityType( + \Magento\Catalog\Model\Category::ENTITY, + 'entity_attribute_collection', + 'Magento\Catalog\Model\ResourceModel\Category\Attribute\Collection' + ); + $categorySetup->updateAttribute( + \Magento\Catalog\Model\Category::ENTITY, + 'custom_design_from', + 'attribute_model', + 'Magento\Catalog\Model\ResourceModel\Eav\Attribute' + ); + $categorySetup->updateEntityType( + \Magento\Catalog\Model\Product::ENTITY, + 'entity_model', + 'Magento\Catalog\Model\ResourceModel\Product' + ); + $categorySetup->updateEntityType( + \Magento\Catalog\Model\Product::ENTITY, + 'attribute_model', + 'Magento\Catalog\Model\ResourceModel\Eav\Attribute' + ); + $categorySetup->updateEntityType( + \Magento\Catalog\Model\Product::ENTITY, + 'entity_attribute_collection', + 'Magento\Catalog\Model\ResourceModel\Product\Attribute\Collection' + ); + } $setup->endSetup(); } } diff --git a/app/code/Magento/Catalog/etc/module.xml b/app/code/Magento/Catalog/etc/module.xml index dd1aeca3057..ee04bbc7431 100644 --- a/app/code/Magento/Catalog/etc/module.xml +++ b/app/code/Magento/Catalog/etc/module.xml @@ -6,7 +6,7 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> - <module name="Magento_Catalog" setup_version="2.0.1"> + <module name="Magento_Catalog" setup_version="2.0.2"> <sequence> <module name="Magento_Eav"/> <module name="Magento_Cms"/> diff --git a/app/code/Magento/Customer/Setup/UpgradeData.php b/app/code/Magento/Customer/Setup/UpgradeData.php index a37210bd9fb..6c6e32e92eb 100644 --- a/app/code/Magento/Customer/Setup/UpgradeData.php +++ b/app/code/Magento/Customer/Setup/UpgradeData.php @@ -240,6 +240,51 @@ class UpgradeData implements UpgradeDataInterface ]; $this->upgradeAttributes($entityAttributes, $customerSetup); } + if (version_compare($context->getVersion(), '2.0.6', '<')) { + $customerSetup->updateEntityType( + \Magento\Customer\Model\Customer::ENTITY, + 'entity_model', + 'Magento\Customer\Model\ResourceModel\Customer' + ); + $customerSetup->updateEntityType( + \Magento\Customer\Model\Customer::ENTITY, + 'increment_model', + 'Magento\Eav\Model\Entity\Increment\NumericValue' + ); + $customerSetup->updateEntityType( + \Magento\Customer\Model\Customer::ENTITY, + 'entity_attribute_collection', + 'Magento\Customer\Model\ResourceModel\Attribute\Collection' + ); + $customerSetup->updateEntityType( + 'customer_address', + 'entity_model', + 'Magento\Customer\Model\ResourceModel\Address' + ); + $customerSetup->updateEntityType( + 'customer_address', + 'entity_attribute_collection', + 'Magento\Customer\Model\ResourceModel\Address\Attribute\Collection' + ); + $customerSetup->updateAttribute( + 'customer_address', + 'country_id', + 'source', + 'Magento\Customer\Model\ResourceModel\Address\Attribute\Source\Country' + ); + $customerSetup->updateAttribute( + 'customer_address', + 'region', + 'backend', + 'Magento\Customer\Model\ResourceModel\Address\Attribute\Backend\Region' + ); + $customerSetup->updateAttribute( + 'customer_address', + 'region_id', + 'source', + 'Magento\Customer\Model\ResourceModel\Address\Attribute\Source\Region' + ); + } $indexer = $this->indexerRegistry->get(Customer::CUSTOMER_GRID_INDEXER_ID); $indexer->reindexAll(); diff --git a/app/code/Magento/Customer/etc/module.xml b/app/code/Magento/Customer/etc/module.xml index a2b9b1eacfe..20c352f8c53 100644 --- a/app/code/Magento/Customer/etc/module.xml +++ b/app/code/Magento/Customer/etc/module.xml @@ -6,7 +6,7 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> - <module name="Magento_Customer" setup_version="2.0.5"> + <module name="Magento_Customer" setup_version="2.0.6"> <sequence> <module name="Magento_Eav"/> <module name="Magento_Directory"/> diff --git a/app/code/Magento/Sales/Setup/UpgradeData.php b/app/code/Magento/Sales/Setup/UpgradeData.php new file mode 100644 index 00000000000..f3283b97bd2 --- /dev/null +++ b/app/code/Magento/Sales/Setup/UpgradeData.php @@ -0,0 +1,95 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Sales\Setup; + +use Magento\Framework\Setup\UpgradeDataInterface; +use Magento\Framework\Setup\ModuleContextInterface; +use Magento\Framework\Setup\ModuleDataSetupInterface; + +class UpgradeData implements UpgradeDataInterface +{ + /** + * Sales setup factory + * + * @var SalesSetupFactory + */ + protected $salesSetupFactory; + + /** + * @var \Magento\Eav\Model\Config + */ + protected $eavConfig; + + /** + * @param SalesSetupFactory $salesSetupFactory + * @param \Magento\Eav\Model\Config $eavConfig + */ + public function __construct( + SalesSetupFactory $salesSetupFactory, + \Magento\Eav\Model\Config $eavConfig + ) { + $this->salesSetupFactory = $salesSetupFactory; + $this->eavConfig = $eavConfig; + } + + /** + * {@inheritdoc} + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + */ + public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context) + { + $setup->startSetup(); + + /** @var SalesSetup $salesSetup */ + $salesSetup = $this->salesSetupFactory->create(['setup' => $setup]); + + if (version_compare($context->getVersion(), '2.0.1', '<')) { + $salesSetup->updateEntityType( + \Magento\Sales\Model\Order::ENTITY, + 'entity_model', + 'Magento\Sales\Model\ResourceModel\Order' + ); + $salesSetup->updateEntityType( + \Magento\Sales\Model\Order::ENTITY, + 'increment_model', + 'Magento\Eav\Model\Entity\Increment\NumericValue' + ); + $salesSetup->updateEntityType( + 'invoice', + 'entity_model', + 'Magento\Sales\Model\ResourceModel\Order' + ); + $salesSetup->updateEntityType( + 'invoice', + 'increment_model', + 'Magento\Eav\Model\Entity\Increment\NumericValue' + ); + $salesSetup->updateEntityType( + 'creditmemo', + 'entity_model', + 'Magento\Sales\Model\ResourceModel\Order\Creditmemo' + ); + $salesSetup->updateEntityType( + 'creditmemo', + 'increment_model', + 'Magento\Eav\Model\Entity\Increment\NumericValue' + ); + $salesSetup->updateEntityType( + 'shipment', + 'entity_model', + 'Magento\Sales\Model\ResourceModel\Order\Shipment' + ); + $salesSetup->updateEntityType( + 'shipment', + 'increment_model', + 'Magento\Eav\Model\Entity\Increment\NumericValue' + ); + } + $this->eavConfig->clear(); + $setup->endSetup(); + } +} diff --git a/app/code/Magento/Sales/etc/module.xml b/app/code/Magento/Sales/etc/module.xml index 6ad917d859b..1239c5692db 100644 --- a/app/code/Magento/Sales/etc/module.xml +++ b/app/code/Magento/Sales/etc/module.xml @@ -6,7 +6,7 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> - <module name="Magento_Sales" setup_version="2.0.0"> + <module name="Magento_Sales" setup_version="2.0.1"> <sequence> <module name="Magento_Rule"/> <module name="Magento_Catalog"/> diff --git a/dev/tests/static/framework/Magento/Sniffs/NamingConventions/ReservedWordsSniff.php b/dev/tests/static/framework/Magento/Sniffs/NamingConventions/ReservedWordsSniff.php index 734170053c9..e33309f46d8 100644 --- a/dev/tests/static/framework/Magento/Sniffs/NamingConventions/ReservedWordsSniff.php +++ b/dev/tests/static/framework/Magento/Sniffs/NamingConventions/ReservedWordsSniff.php @@ -12,7 +12,6 @@ class ReservedWordsSniff implements PHP_CodeSniffer_Sniff { /** * source: http://php.net/manual/en/reserved.other-reserved-words.php - * disabled(commented) items are not restricted int PHP 7 beta 3, just declared as prohibited * * @var array PHP 7 reserved words for name spaces */ -- GitLab From 12b5a02b146a4db95488284c51311ee9a2120891 Mon Sep 17 00:00:00 2001 From: Siarhei Andreyeu <siarhei_andreyeu@epam.com> Date: Mon, 12 Oct 2015 20:42:42 +0300 Subject: [PATCH 357/420] PV-224: Fixed noNamespaceSchemaLocation --- app/code/Magento/ProductVideo/etc/adminhtml/system.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/ProductVideo/etc/adminhtml/system.xml b/app/code/Magento/ProductVideo/etc/adminhtml/system.xml index b295e662803..f475ab5b70d 100644 --- a/app/code/Magento/ProductVideo/etc/adminhtml/system.xml +++ b/app/code/Magento/ProductVideo/etc/adminhtml/system.xml @@ -5,7 +5,7 @@ * See COPYING.txt for license details. */ --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Config/etc/system_file.xsd"> +<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd"> <system> <section id="catalog"> <group id="product_video" translate="label" type="text" sortOrder="350" showInDefault="1" showInWebsite="1" showInStore="1"> -- GitLab From acf779583382f27a54d370976e2575b6c7a37bd3 Mon Sep 17 00:00:00 2001 From: Natalia Momotenko <nmomotenko@ebay.com> Date: Mon, 12 Oct 2015 20:43:33 +0300 Subject: [PATCH 358/420] MAGETWO-42256: Marketing Admin page lost its styles --- .../Magento/backend/web/css/source/forms/_controls.less | 9 +++++++++ .../Magento/Framework/Data/Form/Element/Checkboxes.php | 8 ++++---- .../Magento/Framework/Data/Form/Element/Note.php | 2 +- .../Framework/Data/Test/Unit/Form/Element/NoteTest.php | 2 +- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/_controls.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_controls.less index ce0fee6a772..a8e768b98e1 100644 --- a/app/design/adminhtml/Magento/backend/web/css/source/forms/_controls.less +++ b/app/design/adminhtml/Magento/backend/web/css/source/forms/_controls.less @@ -176,6 +176,15 @@ option:empty { } } +// +// Service text or control. Can be used to add text or "Use Default Value" checkbox +// --------------------------------------------- + +.admin__control-service { + float: left; + margin: .8rem 0 0 3rem; +} + // // Textarea // --------------------------------------------- diff --git a/lib/internal/Magento/Framework/Data/Form/Element/Checkboxes.php b/lib/internal/Magento/Framework/Data/Form/Element/Checkboxes.php index 1eb259438a5..c4f88313fc3 100644 --- a/lib/internal/Magento/Framework/Data/Form/Element/Checkboxes.php +++ b/lib/internal/Magento/Framework/Data/Form/Element/Checkboxes.php @@ -194,10 +194,10 @@ class Checkboxes extends AbstractElement { $id = $this->getHtmlId() . '_' . $this->_escape($option['value']); - $html = '<div class="field choice"><input id="' . $id . '"'; + $html = '<div class="field choice admin__field admin__field-option"><input id="' . $id . '"'; foreach ($this->getHtmlAttributes() as $attribute) { if ($value = $this->getDataUsingMethod($attribute, $option['value'])) { - $html .= ' ' . $attribute . '="' . $value . '"'; + $html .= ' ' . $attribute . '="' . $value . '" class="admin__control-checkbox"'; } } $html .= ' value="' . @@ -205,9 +205,9 @@ class Checkboxes extends AbstractElement '" />' . ' <label for="' . $id . - '">' . + '" class="admin__field-label"><span>' . $option['label'] . - '</label></div>' . + '</span></label></div>' . "\n"; return $html; } diff --git a/lib/internal/Magento/Framework/Data/Form/Element/Note.php b/lib/internal/Magento/Framework/Data/Form/Element/Note.php index be04c5e2bea..06cad0f195e 100644 --- a/lib/internal/Magento/Framework/Data/Form/Element/Note.php +++ b/lib/internal/Magento/Framework/Data/Form/Element/Note.php @@ -39,7 +39,7 @@ class Note extends AbstractElement $html = $this->getBeforeElementHtml() . '<div id="' . $this->getHtmlId() - . '" class="control-value">' + . '" class="control-value admin__field-value">' . $this->getText() . '</div>' . $this->getAfterElementHtml(); diff --git a/lib/internal/Magento/Framework/Data/Test/Unit/Form/Element/NoteTest.php b/lib/internal/Magento/Framework/Data/Test/Unit/Form/Element/NoteTest.php index 23e07bf7fb2..a76a244f1ce 100644 --- a/lib/internal/Magento/Framework/Data/Test/Unit/Form/Element/NoteTest.php +++ b/lib/internal/Magento/Framework/Data/Test/Unit/Form/Element/NoteTest.php @@ -63,7 +63,7 @@ class NoteTest extends \PHPUnit_Framework_TestCase $this->_model->setValue('Note Text'); $html = $this->_model->getElementHtml(); $this->assertEquals( - "note_before<div id=\"note_id\" class=\"control-value\"></div>note_after", + "note_before<div id=\"note_id\" class=\"control-value admin__field-value\"></div>note_after", $html ); } -- GitLab From c01a1562ace7da4f3e1f0f6b2ed7547aeb5c3fb3 Mon Sep 17 00:00:00 2001 From: Joan He <joan@x.com> Date: Mon, 12 Oct 2015 13:44:31 -0500 Subject: [PATCH 359/420] MAGETWO-32443: [GITHUB] if_module_enabled has no effect #934 --- app/code/Magento/Config/Model/Config/Structure/Element/Field.php | 1 - .../Magento/Config/Model/Config/Structure/Element/Section.php | 1 - 2 files changed, 2 deletions(-) diff --git a/app/code/Magento/Config/Model/Config/Structure/Element/Field.php b/app/code/Magento/Config/Model/Config/Structure/Element/Field.php index e4678fb5e29..8f218a34f02 100644 --- a/app/code/Magento/Config/Model/Config/Structure/Element/Field.php +++ b/app/code/Magento/Config/Model/Config/Structure/Element/Field.php @@ -72,7 +72,6 @@ class Field extends \Magento\Config\Model\Config\Structure\AbstractElement $this->_commentFactory = $commentFactory; $this->_blockFactory = $blockFactory; $this->_dependencyMapper = $dependencyMapper; - $this->moduleManager = $moduleManager; } /** diff --git a/app/code/Magento/Config/Model/Config/Structure/Element/Section.php b/app/code/Magento/Config/Model/Config/Structure/Element/Section.php index 7f61631dbe0..46696967d31 100644 --- a/app/code/Magento/Config/Model/Config/Structure/Element/Section.php +++ b/app/code/Magento/Config/Model/Config/Structure/Element/Section.php @@ -28,7 +28,6 @@ class Section extends AbstractComposite ) { parent::__construct($storeManager, $moduleManager, $childrenIterator); $this->_authorization = $authorization; - $this->moduleManager = $moduleManager; } /** -- GitLab From 2f307dbe5734f449c2e4f3261bf9e84260522c96 Mon Sep 17 00:00:00 2001 From: Joan He <joan@x.com> Date: Mon, 12 Oct 2015 14:59:17 -0500 Subject: [PATCH 360/420] MAGETWO-39769: [GITHUB] lastInsertId returns 0 when PK is not AI #1445 --- .../Model/Test/Unit/ModelResource/Db/AbstractDbTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/AbstractDbTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/AbstractDbTest.php index ad83ddfc46d..71d0c2be8b0 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/AbstractDbTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/ModelResource/Db/AbstractDbTest.php @@ -499,7 +499,7 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase /** * Mock SUT so as not to test extraneous logic */ - $model = $this->getMockBuilder('Magento\Framework\Model\Resource\Db\AbstractDb') + $model = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\AbstractDb') ->disableOriginalConstructor() ->setMethods(['_prepareDataForSave', 'getIdFieldName', 'getConnection', 'getMainTable']) ->getMockForAbstractClass(); -- GitLab From 938abc6a7bf254418add899ebab172c8e9e89a91 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Mon, 12 Oct 2015 23:49:19 +0300 Subject: [PATCH 361/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix for unit tests --- app/code/Magento/Swatches/Test/Unit/Helper/DataTest.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/code/Magento/Swatches/Test/Unit/Helper/DataTest.php b/app/code/Magento/Swatches/Test/Unit/Helper/DataTest.php index 775e1b21961..31e868cdf4c 100644 --- a/app/code/Magento/Swatches/Test/Unit/Helper/DataTest.php +++ b/app/code/Magento/Swatches/Test/Unit/Helper/DataTest.php @@ -334,6 +334,15 @@ class DataTest extends \PHPUnit_Framework_TestCase ->method('setImageFile') ->with($image) ->willReturnSelf(); + $this->imageHelperMock->expects($this->any()) + ->method('constrainOnly') + ->willReturnSelf(); + $this->imageHelperMock->expects($this->any()) + ->method('keepAspectRatio') + ->willReturnSelf(); + $this->imageHelperMock->expects($this->any()) + ->method('keepFrame') + ->willReturnSelf(); $this->imageHelperMock->expects($this->any()) ->method('getUrl') ->willReturn('http://full_path_to_image/magento1.png'); -- GitLab From 4897c36dc77a22cefce2a81b12628094ab749aa3 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Tue, 13 Oct 2015 00:49:22 +0300 Subject: [PATCH 362/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix for unit tests --- app/code/Magento/Catalog/Model/Product.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Model/Product.php b/app/code/Magento/Catalog/Model/Product.php index 02719bd1f7d..99709b513ca 100644 --- a/app/code/Magento/Catalog/Model/Product.php +++ b/app/code/Magento/Catalog/Model/Product.php @@ -19,7 +19,7 @@ use Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryExtensionFactory; * Catalog product model * * @method Product setHasError(bool $value) - * @method \Magento\Catalog\Model\Resource\Product getResource() + * @method \Magento\Catalog\Model\ResourceModel\Product getResource() * @method null|bool getHasError() * @method Product setAssociatedProductIds(array $productIds) * @method array getAssociatedProductIds() -- GitLab From ac40fdce479df4a17d7cd0723c04f8801907c63f Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Tue, 13 Oct 2015 00:49:56 +0300 Subject: [PATCH 363/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix var parser --- .../Magento/Framework/Config/View.php | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/internal/Magento/Framework/Config/View.php b/lib/internal/Magento/Framework/Config/View.php index b0ebadc89a5..dc223024610 100644 --- a/lib/internal/Magento/Framework/Config/View.php +++ b/lib/internal/Magento/Framework/Config/View.php @@ -107,8 +107,10 @@ class View extends \Magento\Framework\Config\AbstractXml } /** + * Recursive parser for <var> nodes + * * @param \DOMElement $node - * @return string|[] + * @return string|boolean|number|null|[] */ protected function parseVarElement(\DOMElement $node) { @@ -120,7 +122,22 @@ class View extends \Magento\Framework\Config\AbstractXml } } if (!count($result)) { - $result = $node->nodeValue; + switch ($node->nodeValue) { + case 'false': + $result = false; + break; + case 'true': + $result = true; + break; + case 'null': + $result = null; + break; + default: + $result = $node->nodeValue; + if ($result == strval(floatval($result))) { + $result = floatval($result); + } + }; } return $result; -- GitLab From 381df205c164710cc35e679debf09465946fb634 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Tue, 13 Oct 2015 01:35:24 +0300 Subject: [PATCH 364/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix var parser --- lib/internal/Magento/Framework/Config/View.php | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/lib/internal/Magento/Framework/Config/View.php b/lib/internal/Magento/Framework/Config/View.php index dc223024610..98a96140188 100644 --- a/lib/internal/Magento/Framework/Config/View.php +++ b/lib/internal/Magento/Framework/Config/View.php @@ -122,24 +122,8 @@ class View extends \Magento\Framework\Config\AbstractXml } } if (!count($result)) { - switch ($node->nodeValue) { - case 'false': - $result = false; - break; - case 'true': - $result = true; - break; - case 'null': - $result = null; - break; - default: - $result = $node->nodeValue; - if ($result == strval(floatval($result))) { - $result = floatval($result); - } - }; + $result = $node->nodeValue; } - return $result; } -- GitLab From 2b9bc21769f99ef4b02f4b0dba477449b780f3c7 Mon Sep 17 00:00:00 2001 From: Oleh Posyniak <oposyniak@ebay.com> Date: Tue, 13 Oct 2015 10:44:16 +0300 Subject: [PATCH 365/420] MAGETWO-43966: Performance degradation on section load --- .../Magento/Customer/Block/CustomerData.php | 32 +------------------ .../frontend/templates/js/customer-data.phtml | 1 - .../view/frontend/web/js/customer-data.js | 8 ----- 3 files changed, 1 insertion(+), 40 deletions(-) diff --git a/app/code/Magento/Customer/Block/CustomerData.php b/app/code/Magento/Customer/Block/CustomerData.php index 66d4043f152..9d30a56de21 100644 --- a/app/code/Magento/Customer/Block/CustomerData.php +++ b/app/code/Magento/Customer/Block/CustomerData.php @@ -7,24 +7,14 @@ namespace Magento\Customer\Block; class CustomerData extends \Magento\Framework\View\Element\Template { - /** - * Sections that can not be cached on frontend-side - * - * @var array - */ - protected $nonCachedSections = []; - /** * @param \Magento\Framework\View\Element\Template\Context $context * @param array $data - * @param array $nonCachedSections */ public function __construct( \Magento\Framework\View\Element\Template\Context $context, - array $data = [], - array $nonCachedSections = [] + array $data = [] ) { - $this->nonCachedSections = $nonCachedSections; parent::__construct($context, $data); } @@ -50,24 +40,4 @@ class CustomerData extends \Magento\Framework\View\Element\Template { return $this->getUrl($route, ['_secure' => $this->getRequest()->isSecure()]); } - - /** - * Get sections that can not be cached on frontend-side - * - * @return array - */ - public function getNotCachedSections() - { - return $this->nonCachedSections; - } - - /** - * Get keys of sections that can not be cached on frontend-side - * - * @return array - */ - public function getNonCachedSectionKeys() - { - return array_keys($this->nonCachedSections); - } } diff --git a/app/code/Magento/Customer/view/frontend/templates/js/customer-data.phtml b/app/code/Magento/Customer/view/frontend/templates/js/customer-data.phtml index 60441eb039d..b34e7c871d3 100644 --- a/app/code/Magento/Customer/view/frontend/templates/js/customer-data.phtml +++ b/app/code/Magento/Customer/view/frontend/templates/js/customer-data.phtml @@ -13,7 +13,6 @@ '*' => ['Magento_Customer/js/customer-data' => [ 'sectionLoadUrl' => $block->getCustomerDataUrl('customer/section/load'), 'cookieLifeTime' => $block->getCookieLifeTime(), - 'nonCachedSections' => $block->getNonCachedSectionKeys(), ]], ]); ?> diff --git a/app/code/Magento/Customer/view/frontend/web/js/customer-data.js b/app/code/Magento/Customer/view/frontend/web/js/customer-data.js index ae42dc97892..f4f79932d39 100644 --- a/app/code/Magento/Customer/view/frontend/web/js/customer-data.js +++ b/app/code/Magento/Customer/view/frontend/web/js/customer-data.js @@ -23,8 +23,6 @@ define([ storage.removeAll(); var date = new Date(Date.now() + parseInt(options.cookieLifeTime, 10) * 1000); $.localStorage.set('mage-cache-timeout', date); - } else { - invalidateNonCachedSections(options); } }; @@ -35,12 +33,6 @@ define([ } }; - var invalidateNonCachedSections = function(options) { - _.each(options.nonCachedSections, function (sectionName) { - storageInvalidation.set(sectionName, true); - }); - } - var dataProvider = { getFromStorage: function (sectionNames) { var result = {}; -- GitLab From ede6b42329e899fedba88996d40b341ea0aeeb7a Mon Sep 17 00:00:00 2001 From: Yaroslav Onischenko <yonischenko@ebay.com> Date: Tue, 13 Oct 2015 11:55:05 +0300 Subject: [PATCH 366/420] MAGETWO-43977: Problems with Sample Data content on Store Front after installation --- app/code/Magento/CatalogImportExport/Model/Import/Product.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php index 09c883b094a..1e8fcbc4aa0 100644 --- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php +++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php @@ -1803,7 +1803,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity 'value' => $insertValue['value'], ]; $valueToProductId[$insertValue['value']] = $productId; - $imageNames = $insertValue['value']; + $imageNames[] = $insertValue['value']; $multiInsertData[] = $valueArr; $insertedGalleryImgs[] = $insertValue['value']; } -- GitLab From 5607d47f7f3eb0ba2c4c3ebe5487de59a916ff39 Mon Sep 17 00:00:00 2001 From: Viktor Tymchynskyi <vtymchynskyi@ebay.com> Date: Tue, 13 Oct 2015 11:57:58 +0300 Subject: [PATCH 367/420] MAGETWO-43942: Unable to place order within PayPal through Braintree if click PayPal Check out in shopping cart --- app/code/Magento/Braintree/etc/frontend/di.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/code/Magento/Braintree/etc/frontend/di.xml b/app/code/Magento/Braintree/etc/frontend/di.xml index ddc18722e8d..83dc6607ed3 100644 --- a/app/code/Magento/Braintree/etc/frontend/di.xml +++ b/app/code/Magento/Braintree/etc/frontend/di.xml @@ -21,4 +21,11 @@ </argument> </arguments> </type> + <type name="Magento\Framework\Url\SecurityInfo"> + <arguments> + <argument name="secureUrlList" xsi:type="array"> + <item name="braintree" xsi:type="string">/braintree/</item> + </argument> + </arguments> + </type> </config> -- GitLab From 32bc7fcdd921754066399232524b4fd73628465c Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Tue, 13 Oct 2015 12:06:17 +0300 Subject: [PATCH 368/420] MAGETWO-43920: [GitHub]Magento requires reinstalling after PR #697 fix for upgrade script --- app/code/Magento/Customer/Setup/UpgradeData.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Customer/Setup/UpgradeData.php b/app/code/Magento/Customer/Setup/UpgradeData.php index 6c6e32e92eb..7f43ee046bd 100644 --- a/app/code/Magento/Customer/Setup/UpgradeData.php +++ b/app/code/Magento/Customer/Setup/UpgradeData.php @@ -269,19 +269,19 @@ class UpgradeData implements UpgradeDataInterface $customerSetup->updateAttribute( 'customer_address', 'country_id', - 'source', + 'source_model', 'Magento\Customer\Model\ResourceModel\Address\Attribute\Source\Country' ); $customerSetup->updateAttribute( 'customer_address', 'region', - 'backend', + 'backend_model', 'Magento\Customer\Model\ResourceModel\Address\Attribute\Backend\Region' ); $customerSetup->updateAttribute( 'customer_address', 'region_id', - 'source', + 'source_model', 'Magento\Customer\Model\ResourceModel\Address\Attribute\Source\Region' ); } -- GitLab From b5d39276e280c2d3c3d8bff0fbc0501b7fbfd2d2 Mon Sep 17 00:00:00 2001 From: Evgeniy Kolesov <ikolesov@ebay.com> Date: Tue, 6 Oct 2015 17:12:21 +0300 Subject: [PATCH 369/420] MAGETWO-43072: Style issues in Web Setup Wizard - Fixes after merge with mainline --- .../less/components/_navigation-bar.less | 3 ++- .../less/components/tooltips/_tooltips.less | 3 +++ .../app/setup/styles/less/lib/_buttons.less | 3 +-- .../setup/styles/less/lib/_structures.less | 3 +++ .../app/setup/styles/less/lib/_variables.less | 2 +- .../styles/less/pages/_readiness-check.less | 10 ++++++-- .../web/app/setup/styles/less/setup.less | 1 - .../styles/less/pages/_readiness-check.less | 23 ------------------- setup/pub/styles/setup.css | 2 +- setup/view/magento/setup/home.phtml | 20 ++++++++-------- .../view/magento/setup/navigation/menu.phtml | 6 ++--- setup/view/magento/setup/select-version.phtml | 4 ++-- 12 files changed, 34 insertions(+), 46 deletions(-) delete mode 100644 app/design/adminhtml/Magento/backend/web/app/updater/styles/less/pages/_readiness-check.less diff --git a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/components/_navigation-bar.less b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/components/_navigation-bar.less index e5749d61309..b0032568136 100644 --- a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/components/_navigation-bar.less +++ b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/components/_navigation-bar.less @@ -40,11 +40,12 @@ // --------------------------------------------- .nav { + .extend__clearer(); background-color: @nav__background-color; border-bottom: 1px solid @nav__border-color; border-top: 1px solid @nav__border-color; - .extend__clearer(); display: none; + margin-bottom: @nav-bar__indent-top; padding: @nav-bar-dot__size @nav__indent-right 0 0; } diff --git a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/components/tooltips/_tooltips.less b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/components/tooltips/_tooltips.less index 17e40244032..f364351ed02 100644 --- a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/components/tooltips/_tooltips.less +++ b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/components/tooltips/_tooltips.less @@ -54,6 +54,9 @@ margin-left: -(@tooltip-arrow__size / 2); padding: 0 @tooltip-arrow__size; } + p:last-child { + margin-bottom: 0; + } } // Wrapper for the tooltip content diff --git a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_buttons.less b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_buttons.less index ea227158185..3d18910a59e 100644 --- a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_buttons.less +++ b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_buttons.less @@ -113,8 +113,7 @@ ); color: @btn-prime__color; } - &:active, - &:focus { + &:active { .lib-background-gradient( @_background-gradient: true, @_background-gradient-direction: horizontal, diff --git a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_structures.less b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_structures.less index 5a63e780678..0dd2a8ed52b 100644 --- a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_structures.less +++ b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_structures.less @@ -3,6 +3,9 @@ // * See COPYING.txt for license details. // */ +body:not([class]) { + min-width: 0; +} .container { display: block; margin: 0 auto 4rem; diff --git a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_variables.less b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_variables.less index 7f63e9a9933..7b9cc9eb8d2 100644 --- a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_variables.less +++ b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/lib/_variables.less @@ -156,7 +156,7 @@ // --------------------------------------------- @container__width: 100rem; -@container__indent: 2rem; +@container__indent: 0; @content__indent: @indent__l; diff --git a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/pages/_readiness-check.less b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/pages/_readiness-check.less index 542d96aedeb..cde931e2c71 100644 --- a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/pages/_readiness-check.less +++ b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/pages/_readiness-check.less @@ -10,7 +10,7 @@ // Sizes @readiness-check-side__width: 22rem; -@readiness-check-content__indent: 7.5rem; +@readiness-check-content__indent: 5.7rem; // // Common @@ -18,6 +18,12 @@ .readiness-check-item { margin-bottom: 4rem; + min-height: 2.5rem; + .spinner { + font-size: 2.5rem; + float: left; + margin: -.4rem 0 0 1.7rem; + } } .readiness-check-title { @@ -49,7 +55,7 @@ .readiness-check-icon { float: left; - margin-left: 2rem; + margin-left: 1.7rem; margin-top: .7rem; } diff --git a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/setup.less b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/setup.less index 963c6b01b9f..c2bbaf8f432 100644 --- a/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/setup.less +++ b/app/design/adminhtml/Magento/backend/web/app/setup/styles/less/setup.less @@ -98,7 +98,6 @@ // Updater pages @import '../../../updater/styles/less/pages/_common.less'; @import '../../../updater/styles/less/pages/_home.less'; -@import '../../../updater/styles/less/pages/_readiness-check.less'; @import '../../../updater/styles/less/pages/_component-manager.less'; @import '../../../updater/styles/less/pages/_login.less'; diff --git a/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/pages/_readiness-check.less b/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/pages/_readiness-check.less deleted file mode 100644 index 2b6356f5f41..00000000000 --- a/app/design/adminhtml/Magento/backend/web/app/updater/styles/less/pages/_readiness-check.less +++ /dev/null @@ -1,23 +0,0 @@ -// /** -// * Copyright © 2015 Magento. All rights reserved. -// * See COPYING.txt for license details. -// */ - -// -// Upgrade -> Pages -> Readiness Check -// _____________________________________________ - -.readiness-check-item { - padding-top: .3rem; -} - -.readiness-check-icon { - margin-left: 2.4rem; - margin-top: -0.1rem; - &.icon-success { - font-size: 2rem; - } - &.icon-failed { - font-size: 1.6rem; - } -} \ No newline at end of file diff --git a/setup/pub/styles/setup.css b/setup/pub/styles/setup.css index c8cf89e38ec..ebfc3c33616 100644 --- a/setup/pub/styles/setup.css +++ b/setup/pub/styles/setup.css @@ -3,4 +3,4 @@ * See COPYING.txt for license details. */ -.abs-action-delete,.abs-icon,.action-close:before,.action-next:before,.action-previous:before,.admin-user .admin__action-dropdown:before,.admin__action-multiselect-search-label:before,.admin__control-checkbox+label:before,.admin__control-radio+label:before,.admin__control-table .action-delete:before,.admin__current-filters-list .action-remove:before,.admin__data-grid-action-bookmarks .action-delete:before,.admin__data-grid-action-bookmarks .action-edit:before,.admin__data-grid-action-bookmarks .action-submit:before,.admin__data-grid-action-bookmarks .admin__action-dropdown:before,.admin__data-grid-action-columns .admin__action-dropdown:before,.admin__data-grid-action-export .admin__action-dropdown:before,.admin__menu .level-0>a:before,.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon,.admin__page-nav-title._collapsible:after,.data-grid-filters-action-wrap .action-default:before,.data-grid-row-changed:after,.data-grid-row-parent>td .data-grid-checkbox-cell-inner:before,.data-grid-search-control-wrap .action-submit:before,.icon-failed:before,.icon-success:before,.notifications-action:before,.notifications-close:before,.page-actions .page-actions-buttons>button.action-back:before,.page-actions .page-actions-buttons>button.back:before,.page-actions>button.action-back:before,.page-actions>button.back:before,.page-title-jumbo-success:before,.search-global-label:before,.selectmenu .action-delete:before,.selectmenu .action-edit:before,.selectmenu .action-save:before,.setup-home-item:before,.sticky-header .data-grid-search-control-wrap .data-grid-search-label:before,.store-switcher .dropdown-menu .dropdown-toolbar a:before,.tooltip .help a:before,.tooltip .help span:before{-webkit-font-smoothing:antialiased;font-family:Icons;line-height:1;font-style:normal;font-weight:400;speak:none}.validation-symbol:after{content:'*';color:#e22626;font-weight:400;margin-left:3px}.abs-modal-overlay,.modals-overlay{background:rgba(0,0,0,.35);bottom:0;left:0;position:fixed;right:0;top:0}.abs-action-delete>span,.abs-visually-hidden,.admin__control-fields .admin__field:nth-child(n+2):not(.admin__field-option)>.admin__field-label,.admin__field-tooltip .admin__field-tooltip-action span,.selectmenu .action-delete>span,.selectmenu .action-edit>span,.selectmenu .action-save>span,.selectmenu-toggle span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.abs-visually-hidden-reset{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.abs-clearfix:after,.abs-clearfix:before,.action-multicheck-wrap:after,.action-multicheck-wrap:before,.actions-split:after,.actions-split:before,.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content:after,.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content:before,.admin__data-grid-filters-footer:after,.admin__data-grid-filters-footer:before,.admin__data-grid-filters:after,.admin__data-grid-filters:before,.admin__data-grid-header-row:after,.admin__data-grid-header-row:before,.page-actions._fixed:after,.page-actions._fixed:before,.page-content:after,.page-content:before,.page-header-actions:after,.page-header-actions:before,.page-main-actions:not(._hidden):after,.page-main-actions:not(._hidden):before{content:'';display:table}.abs-clearfix:after,.action-multicheck-wrap:after,.actions-split:after,.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content:after,.admin__data-grid-filters-footer:after,.admin__data-grid-filters:after,.admin__data-grid-header-row:after,.page-actions._fixed:after,.page-content:after,.page-header-actions:after,.page-main-actions:not(._hidden):after{clear:both}.abs-list-reset-styles{margin:0;padding:0;list-style:none}.abs-draggable-handle{cursor:-webkit-grab;cursor:move;font-size:0;margin-top:-4px;padding:0 1rem 0 0;vertical-align:middle;display:inline-block;text-decoration:none}.abs-draggable-handle:before{-webkit-font-smoothing:antialiased;font-size:1.8rem;line-height:inherit;color:#9e9e9e;content:'\e617';font-family:Icons;vertical-align:middle;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.abs-draggable-handle:hover:before{color:#858585}html{box-sizing:border-box;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}:focus{box-shadow:none;outline:0}._keyfocus :focus{box-shadow:0 0 0 1px #008bdb}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}mark{background:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}embed,img,object,video{max-width:100%}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/light/opensans-300.eot);src:url(../fonts/opensans/light/opensans-300.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/light/opensans-300.woff2) format('woff2'),url(../fonts/opensans/light/opensans-300.woff) format('woff'),url(../fonts/opensans/light/opensans-300.ttf) format('truetype'),url('../fonts/opensans/light/opensans-300.svg#Open Sans') format('svg');font-weight:300;font-style:normal}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/regular/opensans-400.eot);src:url(../fonts/opensans/regular/opensans-400.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/regular/opensans-400.woff2) format('woff2'),url(../fonts/opensans/regular/opensans-400.woff) format('woff'),url(../fonts/opensans/regular/opensans-400.ttf) format('truetype'),url('../fonts/opensans/regular/opensans-400.svg#Open Sans') format('svg');font-weight:400;font-style:normal}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/semibold/opensans-600.eot);src:url(../fonts/opensans/semibold/opensans-600.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/semibold/opensans-600.woff2) format('woff2'),url(../fonts/opensans/semibold/opensans-600.woff) format('woff'),url(../fonts/opensans/semibold/opensans-600.ttf) format('truetype'),url('../fonts/opensans/semibold/opensans-600.svg#Open Sans') format('svg');font-weight:600;font-style:normal}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/bold/opensans-700.eot);src:url(../fonts/opensans/bold/opensans-700.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/bold/opensans-700.woff2) format('woff2'),url(../fonts/opensans/bold/opensans-700.woff) format('woff'),url(../fonts/opensans/bold/opensans-700.ttf) format('truetype'),url('../fonts/opensans/bold/opensans-700.svg#Open Sans') format('svg');font-weight:700;font-style:normal}html{font-size:62.5%}body{color:#333;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.36;font-size:1.4rem}h1{margin:0 0 2rem;color:#41362f;font-weight:400;line-height:1.2;font-size:2.8rem}h2{margin:0 0 2rem;color:#41362f;font-weight:400;line-height:1.2;font-size:2rem}h3{margin:0 0 2rem;color:#41362f;font-weight:600;line-height:1.2;font-size:1.7rem}h4,h5,h6{font-weight:600;margin-top:0}p{margin:0 0 1em}small{font-size:1.2rem}a{color:#008bdb;text-decoration:none}a:hover{color:#0fa7ff;text-decoration:underline}dl,ol,ul{padding-left:0}nav ol,nav ul{list-style:none;margin:0;padding:0}html{height:100%}body{background-color:#fff;min-height:100%;min-width:102.4rem}.page-wrapper{background-color:#fff;display:inline-block;margin-left:-4px;vertical-align:top;width:calc(100% - 8.8rem)}.page-content{padding-bottom:3rem;padding-left:3rem;padding-right:3rem}.notices-wrapper{margin:0 3rem}.notices-wrapper .messages{margin-bottom:0}@media (min-width:1024px){html{width:100vw}body{overflow-x:hidden}}.row{margin-left:0;margin-right:0}.row:after{clear:both;content:'';display:table}.col-l-1,.col-l-10,.col-l-11,.col-l-12,.col-l-2,.col-l-3,.col-l-4,.col-l-5,.col-l-6,.col-l-7,.col-l-8,.col-l-9,.col-m-1,.col-m-10,.col-m-11,.col-m-12,.col-m-2,.col-m-3,.col-m-4,.col-m-5,.col-m-6,.col-m-7,.col-m-8,.col-m-9,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:0;padding-right:0}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}.row-gutter{margin-left:-1.5rem;margin-right:-1.5rem}.row-gutter>[class*=col-]{padding-left:1.5rem;padding-right:1.5rem}.abs-clearer:after,.component-manager-content:after,.component-manager-title:after,.form-row:after,.header:after,.nav:after,body:after{clear:both;content:'';display:table}.ng-cloak{display:none!important}.hide.hide{display:none}.show.show{display:block}.text-center{text-align:center}.text-right{text-align:right}@font-face{font-family:Icons;src:url(../fonts/icons/icons.eot);src:url(../fonts/icons/icons.eot?#iefix) format('embedded-opentype'),url(../fonts/icons/icons.woff2) format('woff2'),url(../fonts/icons/icons.woff) format('woff'),url(../fonts/icons/icons.ttf) format('truetype'),url(../fonts/icons/icons.svg#Icons) format('svg');font-weight:400;font-style:normal}[class*=icon-]{display:inline-block;line-height:1}.icon-failed:before,.icon-success:before,[class*=icon-]:after{font-family:Icons}.icon-success{color:#79a22e}.icon-success:before{content:'\e62d'}.icon-failed{color:#e22626}.icon-failed:before{content:'\e632'}.icon-success-thick:after{content:'\e62d'}.icon-collapse:after{content:'\e615'}.icon-failed-thick:after{content:'\e632'}.icon-expand:after{content:'\e616'}.icon-warning:after{content:'\e623'}.icon-failed-round,.icon-success-round{border-radius:100%;color:#fff;font-size:2.5rem;height:1em;position:relative;text-align:center;width:1em}.icon-failed-round:after,.icon-success-round:after{bottom:0;font-size:.5em;left:0;position:absolute;right:0;top:.45em}.icon-success-round{background-color:#79a22e}.icon-success-round:after{content:'\e62d'}.icon-failed-round{background-color:#e22626}.icon-failed-round:after{content:'\e632'}dl,ol,ul{margin-top:0}.list{padding-left:0}.list>li{display:block;margin-bottom:.75em;position:relative}.list>li>.icon-failed,.list>li>.icon-success{font-size:1.6em;left:-.1em;position:absolute;top:0}.list>li>.icon-success{color:#79a22e}.list>li>.icon-failed{color:#e22626}.list-item-failed,.list-item-icon,.list-item-success,.list-item-warning{padding-left:3.5rem}.list-item-failed:before,.list-item-success:before,.list-item-warning:before{left:-.1em;position:absolute}.list-item-success:before{color:#79a22e}.list-item-failed:before{color:#e22626}.list-item-warning:before{color:#ef672f}.list-definition{margin:0 0 3rem;padding:0}.list-definition>dt{clear:left;float:left}.list-definition>dd{margin-bottom:1em;margin-left:20rem}.btn-wrap{margin:0 auto}.btn-wrap .btn{width:100%}.btn{background:#e3e3e3;border:none;color:#514943;display:inline-block;font-size:1.6rem;font-weight:600;padding:.45em .9em;text-align:center}.btn:hover{background-color:#dbdbdb;color:#514943;text-decoration:none}.btn:active{background-color:#d6d6d6}.btn.disabled,.btn[disabled]{cursor:default;opacity:.5;pointer-events:none}.ie9 .btn.disabled,.ie9 .btn[disabled]{background-color:#f0f0f0;opacity:1;text-shadow:none}.btn-large{padding:.75em 1.25em}.btn-medium{font-size:1.4rem;padding:.5em 1.5em .6em}.btn-link{background-color:transparent;border:none;color:#008bdb;font-family:1.6rem;font-size:1.5rem}.btn-link:active,.btn-link:focus,.btn-link:hover{background-color:transparent;color:#0fa7ff}.btn-prime{background-color:#eb5202;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.btn-prime:focus,.btn-prime:hover{background-color:#f65405;background-repeat:repeat-x;background-image:linear-gradient(to right,#e04f00 0,#f65405 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e04f00', endColorstr='#f65405', GradientType=1);color:#fff}.btn-prime:active,.btn-prime:focus{background-color:#e04f00;background-repeat:repeat-x;background-image:linear-gradient(to right,#f65405 0,#e04f00 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f65405', endColorstr='#e04f00', GradientType=1);color:#fff}.ie9 .btn-prime.disabled,.ie9 .btn-prime[disabled]{background-color:#fd6e23}.ie9 .btn-prime.disabled:active,.ie9 .btn-prime.disabled:hover,.ie9 .btn-prime[disabled]:active,.ie9 .btn-prime[disabled]:hover{background-color:#fd6e23;-webkit-filter:none;filter:none}.btn-secondary{background-color:#514943;color:#fff}.btn-secondary:hover{background-color:#5f564f;color:#fff}.btn-secondary:active,.btn-secondary:focus{background-color:#574e48;color:#fff}.ie9 .btn-secondary.disabled,.ie9 .btn-secondary[disabled]{background-color:#514943}.ie9 .btn-secondary.disabled:active,.ie9 .btn-secondary[disabled]:active{background-color:#514943;-webkit-filter:none;filter:none}[class*=btn-wrap-triangle]{overflow:hidden;position:relative}[class*=btn-wrap-triangle] .btn:after{border-style:solid;content:'';height:0;position:absolute;top:0;width:0}.btn-wrap-triangle-right{display:inline-block;padding-right:1.74rem;position:relative}.btn-wrap-triangle-right .btn{text-indent:.92rem}.btn-wrap-triangle-right .btn:after{border-color:transparent transparent transparent #e3e3e3;border-width:1.84rem 0 1.84rem 1.84rem;left:100%;margin-left:-1.74rem}.btn-wrap-triangle-right .btn:focus:after,.btn-wrap-triangle-right .btn:hover:after{border-left-color:#dbdbdb}.btn-wrap-triangle-right .btn:active:after{border-left-color:#d6d6d6}.btn-wrap-triangle-right .btn:not(.disabled):active,.btn-wrap-triangle-right .btn:not([disabled]):active{left:1px}.ie9 .btn-wrap-triangle-right .btn.disabled:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:after{border-color:transparent transparent transparent #f0f0f0}.ie9 .btn-wrap-triangle-right .btn.disabled:active:after,.ie9 .btn-wrap-triangle-right .btn.disabled:focus:after,.ie9 .btn-wrap-triangle-right .btn.disabled:hover:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:active:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:focus:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:hover:after{border-left-color:#f0f0f0}.btn-wrap-triangle-right .btn-prime:after{border-color:transparent transparent transparent #eb5202}.btn-wrap-triangle-right .btn-prime:focus:after,.btn-wrap-triangle-right .btn-prime:hover:after{border-left-color:#f65405}.btn-wrap-triangle-right .btn-prime:active:after{border-left-color:#e04f00}.btn-wrap-triangle-right .btn-prime:not(.disabled):active,.btn-wrap-triangle-right .btn-prime:not([disabled]):active{left:1px}.ie9 .btn-wrap-triangle-right .btn-prime.disabled:after,.ie9 .btn-wrap-triangle-right .btn-prime[disabled]:after{border-color:transparent transparent transparent #fd6e23}.ie9 .btn-wrap-triangle-right .btn-prime.disabled:active:after,.ie9 .btn-wrap-triangle-right .btn-prime.disabled:hover:after,.ie9 .btn-wrap-triangle-right .btn-prime[disabled]:active:after,.ie9 .btn-wrap-triangle-right .btn-prime[disabled]:hover:after{border-left-color:#fd6e23}.btn-wrap-triangle-left{display:inline-block;padding-left:1.74rem}.btn-wrap-triangle-left .btn{text-indent:-.92rem}.btn-wrap-triangle-left .btn:after{border-color:transparent #e3e3e3 transparent transparent;border-width:1.84rem 1.84rem 1.84rem 0;margin-right:-1.74rem;right:100%}.btn-wrap-triangle-left .btn:focus:after,.btn-wrap-triangle-left .btn:hover:after{border-right-color:#dbdbdb}.btn-wrap-triangle-left .btn:active:after{border-right-color:#d6d6d6}.btn-wrap-triangle-left .btn:not(.disabled):active,.btn-wrap-triangle-left .btn:not([disabled]):active{right:1px}.ie9 .btn-wrap-triangle-left .btn.disabled:after,.ie9 .btn-wrap-triangle-left .btn[disabled]:after{border-color:transparent #f0f0f0 transparent transparent}.ie9 .btn-wrap-triangle-left .btn.disabled:active:after,.ie9 .btn-wrap-triangle-left .btn.disabled:hover:after,.ie9 .btn-wrap-triangle-left .btn[disabled]:active:after,.ie9 .btn-wrap-triangle-left .btn[disabled]:hover:after{border-right-color:#f0f0f0}.btn-wrap-triangle-left .btn-prime:after{border-color:transparent #eb5202 transparent transparent}.btn-wrap-triangle-left .btn-prime:focus:after,.btn-wrap-triangle-left .btn-prime:hover:after{border-right-color:#e04f00}.btn-wrap-triangle-left .btn-prime:active:after{border-right-color:#f65405}.btn-wrap-triangle-left .btn-prime:not(.disabled):active,.btn-wrap-triangle-left .btn-prime:not([disabled]):active{right:1px}.ie9 .btn-wrap-triangle-left .btn-prime.disabled:after,.ie9 .btn-wrap-triangle-left .btn-prime[disabled]:after{border-color:transparent #fd6e23 transparent transparent}.ie9 .btn-wrap-triangle-left .btn-prime.disabled:active:after,.ie9 .btn-wrap-triangle-left .btn-prime.disabled:hover:after,.ie9 .btn-wrap-triangle-left .btn-prime[disabled]:active:after,.ie9 .btn-wrap-triangle-left .btn-prime[disabled]:hover:after{border-right-color:#fd6e23}.btn-expand{background-color:transparent;border:none;color:#303030;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;padding:0;position:relative}.btn-expand.expanded:after{border-color:transparent transparent #303030;border-width:0 .285em .36em}.btn-expand.expanded:hover:after{border-color:transparent transparent #3d3d3d}.btn-expand:hover{background-color:transparent;border:none;color:#3d3d3d}.btn-expand:hover:after{border-color:#3d3d3d transparent transparent}.btn-expand:after{border-color:#303030 transparent transparent;border-style:solid;border-width:.36em .285em 0;content:'';height:0;left:100%;margin-left:.5em;margin-top:-.18em;position:absolute;top:50%;width:0}[class*=col-] .form-el-input,[class*=col-] .form-el-select{width:100%}.form-fieldset{border:none;margin:0 0 1em;padding:0}.form-row{margin-bottom:2.2rem}.form-row .form-row{margin-bottom:.4rem}.form-row .form-label{display:block;font-weight:600;padding:.6rem 2.1em 0 0;text-align:right}.form-row .form-label.required{position:relative}.form-row .form-label.required:after{color:#eb5202;content:'*';font-size:1.15em;position:absolute;right:.7em;top:.5em}.form-row .form-el-checkbox+.form-label:before,.form-row .form-el-radio+.form-label:before{top:.7rem}.form-row .form-el-checkbox+.form-label:after,.form-row .form-el-radio+.form-label:after{top:1.1rem}.form-row.form-row-text{padding-top:.6rem}.form-row.form-row-text .action-sign-out{font-size:1.2rem;margin-left:1rem}.form-note{font-size:1.2rem;font-weight:600;margin-top:1rem}.form-el-dummy{display:none}.fieldset{border:0;margin:0;min-width:0;padding:0}input:not([disabled]):focus,textarea:not([disabled]):focus{box-shadow:none}.form-el-input{border:1px solid #adadad;color:#303030;padding:.35em .55em .5em}.form-el-input:hover{border-color:#949494}.form-el-input:focus{border-color:#008bdb}.form-el-input:required{box-shadow:none}.form-label{margin-bottom:.5em}[class*=form-label][for]{cursor:pointer}.form-el-insider-wrap{display:table;width:100%}.form-el-insider-input{display:table-cell;width:100%}.form-el-insider{border-radius:2px;display:table-cell;vertical-align:top;padding:.43em .55em .5em 0}.form-legend,.form-legend-expand,.form-legend-light{display:block;margin:0}.form-legend,.form-legend-expand{margin-bottom:2.5em;padding-top:1.5em;font-weight:600;font-size:1.25em}.form-legend{width:100%;border-top:1px solid #ccc}.form-legend-light{margin-bottom:1.5em;font-size:1em}.form-legend-expand{cursor:pointer;transition:opacity .2s linear}.form-legend-expand:hover{opacity:.85}.form-legend-expand.expanded:after{content:'\e615'}.form-legend-expand:after{margin-left:.5em;font-weight:400;font-size:1.15em;font-family:Icons;content:'\e616';vertical-align:sub}.form-el-checkbox,.form-el-radio{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.form-el-checkbox.disabled+.form-label,.form-el-checkbox.disabled+.form-label:before,.form-el-checkbox[disabled]+.form-label,.form-el-checkbox[disabled]+.form-label:before,.form-el-radio.disabled+.form-label,.form-el-radio.disabled+.form-label:before,.form-el-radio[disabled]+.form-label,.form-el-radio[disabled]+.form-label:before{cursor:default;opacity:.5;pointer-events:none}.form-el-checkbox:not(.disabled)+.form-label:hover:before,.form-el-checkbox:not([disabled])+.form-label:hover:before,.form-el-radio:not(.disabled)+.form-label:hover:before,.form-el-radio:not([disabled])+.form-label:hover:before{border-color:#514943}.form-el-checkbox+.form-label,.form-el-radio+.form-label{font-weight:400;padding-left:2em;padding-right:0;position:relative;text-align:left;transition:border-color .1s linear}.form-el-checkbox+.form-label:before,.form-el-radio+.form-label:before{border:1px solid;content:'';left:0;position:absolute;top:.1rem;transition:border-color .1s linear}.form-el-checkbox+.form-label:before{background-color:#fff;border-color:#adadad;border-radius:2px;height:1.6rem;line-height:1.2;width:1.6rem;font-size:1.2rem}.form-el-checkbox:checked+.form-label::before{content:'\e62d';font-family:Icons}.form-el-radio+.form-label:before{background-color:#fff;border:1px solid #adadad;border-radius:100%;height:1.8rem;width:1.8rem}.form-el-radio+.form-label:after{background:0 0;border:.5rem solid transparent;border-radius:100%;content:'';height:0;left:.4rem;position:absolute;top:.5rem;transition:background .3s linear;width:0}.form-el-radio:checked+.form-label{cursor:default}.form-el-radio:checked+.form-label:after{border-color:#514943}.form-select-label{border:1px solid #adadad;color:#303030;cursor:pointer;display:block;overflow:hidden;position:relative;z-index:0}.form-select-label:hover,.form-select-label:hover:after{border-color:#949494}.form-select-label:active,.form-select-label:active:after,.form-select-label:focus,.form-select-label:focus:after{border-color:#008bdb}.form-select-label:after{background:#e3e3e3;border-left:1px solid #adadad;bottom:0;content:'';position:absolute;right:0;top:0;width:2.36em;z-index:-2}.ie9 .form-select-label:after{display:none}.form-select-label:before{border-color:#303030 transparent transparent;border-style:solid;border-width:5px 4px 0;content:'';height:0;margin-right:-4px;margin-top:-2.5px;position:absolute;right:1.18em;top:50%;width:0;z-index:-1}.ie9 .form-select-label:before{display:none}.form-select-label .form-el-select{background:0 0;border:none;border-radius:0;content:'';display:block;margin:0;padding:.35em calc(2.36em + 10%) .5em .55em;width:110%}.ie9 .form-select-label .form-el-select{padding-right:.55em;width:100%}.form-el-select{background:#fff;border:1px solid #adadad;border-radius:2px;color:#303030;display:block;padding:.35em .55em}.multiselect-custom{position:relative;height:45.2rem;border:1px solid #adadad;overflow:auto;margin:0 0 1.5rem}.multiselect-custom ul{margin:0;padding:0;list-style:none;min-width:29rem}.multiselect-custom .item{padding:1rem 1.4rem}.multiselect-custom .selected{background-color:#e0f6fe}.multiselect-custom .form-label{margin-bottom:0}[class*=form-el-].invalid{border-color:#e22626}[class*=form-el-].invalid+.error-container{display:block}.error-container{background-color:#fffbbb;border:1px solid #ee7d7d;color:#514943;display:none;font-size:1.19rem;margin-top:.2rem;padding:.8rem 1rem .9rem}.check-result-message{margin-left:.5em;min-height:3.68rem;-webkit-align-items:center;-ms-align-items:center;-ms-flex-align:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex}.check-result-text{margin-left:.5em}.container{display:block;margin:0 auto 4rem;max-width:100rem;padding:0 2rem}.abs-action-delete,.action-close:before,.action-next:before,.action-previous:before,.admin-user .admin__action-dropdown:before,.admin__action-multiselect-search-label:before,.admin__control-checkbox+label:before,.admin__control-radio+label:before,.admin__control-table .action-delete:before,.admin__current-filters-list .action-remove:before,.admin__data-grid-action-bookmarks .action-delete:before,.admin__data-grid-action-bookmarks .action-edit:before,.admin__data-grid-action-bookmarks .action-submit:before,.admin__data-grid-action-bookmarks .admin__action-dropdown:before,.admin__data-grid-action-columns .admin__action-dropdown:before,.admin__data-grid-action-export .admin__action-dropdown:before,.admin__menu .level-0>a:before,.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon,.admin__page-nav-title._collapsible:after,.data-grid-filters-action-wrap .action-default:before,.data-grid-row-changed:after,.data-grid-row-parent>td .data-grid-checkbox-cell-inner:before,.data-grid-search-control-wrap .action-submit:before,.icon-failed:before,.icon-success:before,.notifications-action:before,.notifications-close:before,.page-actions .page-actions-buttons>button.action-back:before,.page-actions .page-actions-buttons>button.back:before,.page-actions>button.action-back:before,.page-actions>button.back:before,.page-title-jumbo-success:before,.search-global-label:before,.selectmenu .action-delete:before,.selectmenu .action-edit:before,.selectmenu .action-save:before,.setup-home-item:before,.sticky-header .data-grid-search-control-wrap .data-grid-search-label:before,.store-switcher .dropdown-menu .dropdown-toolbar a:before,.tooltip .help a:before,.tooltip .help span:before{-webkit-font-smoothing:antialiased;font-family:Icons;line-height:1;font-style:normal;font-weight:400;speak:none}.text-stretch{margin-bottom:1.5em}.page-title-jumbo{font-size:4rem;font-weight:300;letter-spacing:-.05em;margin-bottom:2.9rem}.page-title-jumbo-success:before{color:#79a22e;content:'\e62d';font-size:3.9rem;margin-left:-.3rem;margin-right:2.4rem}.list{margin-bottom:3rem}.list-dot .list-item{display:list-item;list-style-position:inside;margin-bottom:1.2rem}.list-title{color:#333;font-size:1.4rem;font-weight:700;letter-spacing:.025em;margin-bottom:1.2rem}.list-item-failed:before,.list-item-success:before,.list-item-warning:before{font-family:Icons;font-size:1.6rem;top:0}.list-item-success:before{content:'\e62d';font-size:1.6rem}.list-item-failed:before{content:'\e632';font-size:1.4rem;left:.1rem;top:.2rem}.list-item-warning:before{content:'\e623';font-size:1.3rem;left:.2rem}.form-wrap{padding-top:2.1rem;margin-bottom:3.6rem}.form-el-label-horizontal{display:inline-block;font-size:1.3rem;font-weight:600;letter-spacing:.025em;margin-left:.4rem;margin-bottom:.4rem}.app-updater{min-width:768px}body._has-modal{height:100%;overflow:hidden;width:100%}.modals-overlay{z-index:899}.modal-popup,.modal-slide{bottom:0;min-width:0;pointer-events:none;position:fixed;right:0;top:0;visibility:hidden}.modal-popup._show,.modal-slide._show{visibility:visible}.modal-popup._show .modal-inner-wrap,.modal-slide._show .modal-inner-wrap{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-popup .modal-inner-wrap,.modal-slide .modal-inner-wrap{background-color:#fff;box-shadow:0 0 12px 2px rgba(0,0,0,.35);opacity:1;pointer-events:auto}.modal-slide{left:14.8rem;z-index:900}.modal-slide._show .modal-inner-wrap{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.modal-slide .modal-inner-wrap{height:100%;overflow-y:auto;position:static;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);transition-duration:.3s;transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-timing-function:ease-in-out;width:auto}.modal-slide._inner-scroll .modal-inner-wrap{overflow-y:visible;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.modal-slide._inner-scroll .modal-footer,.modal-slide._inner-scroll .modal-header{-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.modal-slide._inner-scroll .modal-content{overflow-y:auto}.modal-slide._inner-scroll .modal-footer{margin-top:auto}.modal-slide .modal-content,.modal-slide .modal-footer,.modal-slide .modal-header{padding:0 2.6rem 2.6rem}.modal-slide .modal-header{padding-bottom:2.1rem;padding-top:2.1rem}.modal-popup{left:0;overflow-y:auto;z-index:900}.modal-popup._show .modal-inner-wrap{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.modal-popup .modal-inner-wrap{box-sizing:border-box;height:auto;left:0;margin:5rem auto;position:absolute;right:0;-webkit-transform:translateY(-200%);-ms-transform:translateY(-200%);transform:translateY(-200%);transition-duration:.2s;transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-timing-function:ease;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:75%}.modal-popup._inner-scroll{overflow-y:visible}.ie10 .modal-popup._inner-scroll,.ie9 .modal-popup._inner-scroll{overflow-y:auto}.modal-popup._inner-scroll .modal-inner-wrap{max-height:90%}.ie10 .modal-popup._inner-scroll .modal-inner-wrap,.ie9 .modal-popup._inner-scroll .modal-inner-wrap{max-height:none}.modal-popup._inner-scroll .modal-content{overflow-y:auto}.modal-popup .modal-content,.modal-popup .modal-footer,.modal-popup .modal-header{padding-left:3rem;padding-right:3rem}.modal-popup .modal-footer,.modal-popup .modal-header{-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.modal-popup .modal-header{padding-bottom:3rem;padding-top:3rem}.modal-popup .modal-footer{margin-top:auto;padding-bottom:3rem;padding-top:3rem}.modal-popup .modal-footer-actions{text-align:right}.modal-popup.confirm .modal-inner-wrap{left:50%;margin-left:-25rem;width:50rem}.modal-popup.confirm .modal-footer{text-align:right}.modal-popup._image-box .modal-inner-wrap{margin:5rem auto;max-width:78rem;position:static}.modal-popup._image-box .thumbnail-preview{padding-bottom:3rem;text-align:center}.modal-popup._image-box .thumbnail-preview .thumbnail-preview-image-block{border:1px solid #ccc;margin:0 auto 2rem;max-width:58rem;padding:2rem}.modal-popup._image-box .thumbnail-preview .thumbnail-preview-image{max-height:54rem}@media (max-width:768px){.modal-popup.modal-slide{left:14.8rem;z-index:900}.modal-popup.modal-slide._show .modal-inner-wrap{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.modal-popup.modal-slide .modal-inner-wrap{height:100%;overflow-y:auto;position:static;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);transition-duration:.3s;transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-timing-function:ease-in-out;width:auto;margin:0;max-height:none}}.admin__action-dropdown-wrap{display:inline-block;position:relative}.admin__action-dropdown-wrap .admin__action-dropdown-text:after{left:-6px;right:0}.admin__action-dropdown-wrap .admin__action-dropdown-menu{left:auto;right:0}.admin__action-dropdown-wrap._active .admin__action-dropdown,.admin__action-dropdown-wrap.active .admin__action-dropdown{border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5)}.admin__action-dropdown-wrap._active .admin__action-dropdown-text:after,.admin__action-dropdown-wrap.active .admin__action-dropdown-text:after{background-color:#fff;content:'';height:6px;position:absolute;top:100%}.admin__action-dropdown-wrap._active .admin__action-dropdown-menu,.admin__action-dropdown-wrap.active .admin__action-dropdown-menu{display:block}.admin__action-dropdown-wrap._disabled .admin__action-dropdown{cursor:default}.admin__action-dropdown-wrap._disabled:hover .admin__action-dropdown{color:#333}.admin__action-dropdown{background-color:#fff;border:1px solid transparent;border-bottom:none;border-radius:0;box-shadow:none;color:#333;display:inline-block;font-size:1.3rem;font-weight:400;letter-spacing:-.025em;padding:.7rem 3.3rem .8rem 1.5rem;position:relative;vertical-align:baseline;z-index:2}.admin__action-dropdown._active:after,.admin__action-dropdown.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin__action-dropdown:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;top:50%;transition:all .2s linear;width:0}._active .admin__action-dropdown:after,.active .admin__action-dropdown:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin__action-dropdown:hover:after{border-color:#000 transparent transparent}.admin__action-dropdown:focus,.admin__action-dropdown:hover{background-color:#fff;color:#000;text-decoration:none}.admin__action-dropdown:after{right:1.5rem}.admin__action-dropdown:before{margin-right:1rem}.admin__action-dropdown-menu{background-color:#fff;border:1px solid #007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5);display:none;line-height:1.36;margin-top:-1px;min-width:120%;padding:.5rem 1rem;position:absolute;top:100%;transition:all .15s ease;z-index:1}.admin__action-dropdown-menu>li{display:block}.admin__action-dropdown-menu>li>a{color:#333;display:block;text-decoration:none;padding:.6rem .5rem}.selectmenu{display:inline-block;position:relative;text-align:left;z-index:1}.selectmenu._active{z-index:500;border-color:#007bdb}.selectmenu .action-delete,.selectmenu .action-edit,.selectmenu .action-save{background-color:transparent;border-color:transparent;box-shadow:none;padding:0 1rem}.selectmenu .action-delete:hover,.selectmenu .action-edit:hover,.selectmenu .action-save:hover{background-color:transparent;border-color:transparent;box-shadow:none}.selectmenu .action-delete:before,.selectmenu .action-edit:before,.selectmenu .action-save:before{content:'\e630'}.selectmenu .action-delete,.selectmenu .action-edit{border:0 solid #fff;border-left-width:1px;bottom:0;position:absolute;right:0;top:0;z-index:1}.selectmenu .action-delete:hover,.selectmenu .action-edit:hover{border:0 solid #fff;border-left-width:1px}.selectmenu .action-save:before{content:'\e625'}.selectmenu .action-edit:before{content:'\e631'}.selectmenu-value{display:inline-block}.selectmenu-value input[type=text]{-moz-appearance:none;-webkit-appearance:none;appearance:none;border:0;display:inline;margin:0;width:6rem}body._keyfocus .selectmenu-value input[type=text]:focus{box-shadow:none}.selectmenu-toggle{padding-right:3rem;background:0 0;border-width:0;bottom:0;float:right;position:absolute;right:0;top:0;width:0}.selectmenu-toggle._active:after,.selectmenu-toggle.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.selectmenu-toggle:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.1rem;top:50%;transition:all .2s linear;width:0}._active .selectmenu-toggle:after,.active .selectmenu-toggle:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.selectmenu-toggle:hover:after{border-color:#000 transparent transparent}.selectmenu-toggle:active,.selectmenu-toggle:focus,.selectmenu-toggle:hover{background:0 0}.selectmenu._active .selectmenu-toggle:before{border-color:#007bdb}body._keyfocus .selectmenu-toggle:focus{box-shadow:none}.selectmenu-toggle:before{background:#e3e3e3;border-left:1px solid #adadad;bottom:0;content:'';display:block;position:absolute;right:0;top:0;width:3.2rem}.selectmenu-items{background:#fff;border:1px solid #007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5);display:none;float:left;left:-1px;margin-top:3px;max-width:20rem;min-width:calc(100% + 2px);position:absolute;top:100%}.selectmenu-items._active{display:block}.selectmenu-items ul{float:left;list-style-type:none;margin:0;min-width:100%;padding:0}.selectmenu-items li{display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;transition:background .2s linear}.selectmenu-items li:hover{background:#e3e3e3}.selectmenu-items li:last-child .selectmenu-item-action,.selectmenu-items li:last-child .selectmenu-item-action:visited{color:#008bdb;text-decoration:none}.selectmenu-items li:last-child .selectmenu-item-action:hover{color:#0fa7ff;text-decoration:underline}.selectmenu-items li:last-child .selectmenu-item-action:active{color:#ff5501;text-decoration:underline}.selectmenu-item{position:relative;width:100%;z-index:1}li._edit>.selectmenu-item{display:none}.selectmenu-item-edit{display:none;padding:.3rem 4rem .3rem .4rem;position:relative;white-space:nowrap;z-index:1}li:last-child .selectmenu-item-edit{padding-right:.4rem}.selectmenu-item-edit .admin__control-text{width:5.4rem;margin:0}li._edit .selectmenu-item-edit{display:block}.selectmenu-item-action{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:0;color:#333;display:block;font-size:1.4rem;font-weight:400;min-width:100%;padding:1rem 6rem 1rem 1.5rem;text-align:left;transition:background .2s linear;width:5rem}.selectmenu-item-action:focus,.selectmenu-item-action:hover{background:#e3e3e3}.abs-actions-split-xl .action-default,.page-actions .actions-split .action-default{margin-right:4rem}.abs-actions-split-xl .action-toggle,.page-actions .actions-split .action-toggle{padding-right:4rem}.abs-actions-split-xl .action-toggle:after,.page-actions .actions-split .action-toggle:after{border-width:.9rem .6rem 0;margin-top:-.3rem;right:1.4rem}.actions-split{position:relative;z-index:200}.actions-split._active,.actions-split.active,.actions-split:hover{box-shadow:0 0 0 1px #007bdb}.actions-split._active .action-toggle.action-primary,.actions-split._active .action-toggle.primary,.actions-split.active .action-toggle.action-primary,.actions-split.active .action-toggle.primary{background-color:#ba4000;border-color:#ba4000}.actions-split._active .dropdown-menu,.actions-split.active .dropdown-menu{opacity:1;visibility:visible;display:block}.actions-split .action-default,.actions-split .action-toggle{float:left;margin:0}.actions-split .action-default._active,.actions-split .action-default.active,.actions-split .action-default:hover,.actions-split .action-toggle._active,.actions-split .action-toggle.active,.actions-split .action-toggle:hover{box-shadow:none}.actions-split .action-default{margin-right:3.2rem;min-width:9.3rem}.actions-split .action-toggle{padding-right:3.2rem;border-left-color:rgba(0,0,0,.2);bottom:0;padding-left:0;position:absolute;right:0;top:0}.actions-split .action-toggle._active:after,.actions-split .action-toggle.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.actions-split .action-toggle:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.2rem;top:50%;transition:all .2s linear;width:0}._active .actions-split .action-toggle:after,.active .actions-split .action-toggle:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.actions-split .action-toggle:hover:after{border-color:#000 transparent transparent}.actions-split .action-toggle.action-primary:after,.actions-split .action-toggle.action-secondary:after,.actions-split .action-toggle.primary:after,.actions-split .action-toggle.secondary:after{border-color:#fff transparent transparent}.actions-split .action-toggle>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.action-select-wrap{display:inline-block;position:relative}.action-select-wrap .action-select{padding-right:3.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#fff;font-weight:400;text-align:left}.action-select-wrap .action-select._active:after,.action-select-wrap .action-select.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-select-wrap .action-select:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.2rem;top:50%;transition:all .2s linear;width:0}._active .action-select-wrap .action-select:after,.active .action-select-wrap .action-select:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-select-wrap .action-select:hover:after{border-color:#000 transparent transparent}.action-select-wrap .action-select:hover,.action-select-wrap .action-select:hover:before{border-color:#878787}.action-select-wrap .action-select:before{background-color:#e3e3e3;border:1px solid #adadad;bottom:0;content:'';position:absolute;right:0;top:0;width:3.2rem}.action-select-wrap .action-select._active{border-color:#007bdb}.action-select-wrap .action-select._active:before{border-color:#007bdb #007bdb #007bdb #adadad}.action-select-wrap .action-select[disabled]{color:#333}.action-select-wrap .action-select[disabled]:after{border-color:#333 transparent transparent}.action-select-wrap._active{z-index:500}.action-select-wrap._active .action-select,.action-select-wrap._active .action-select:before{border-color:#007bdb}.action-select-wrap._active .action-select:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-select-wrap .abs-action-menu .action-submenu,.action-select-wrap .abs-action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu,.action-select-wrap .action-menu .action-submenu,.action-select-wrap .actions-split .action-menu .action-submenu,.action-select-wrap .actions-split .action-menu .action-submenu .action-submenu,.action-select-wrap .actions-split .dropdown-menu .action-submenu,.action-select-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{max-height:45rem;overflow-y:auto}.action-select-wrap .action-menu-items{left:0;position:absolute;right:0;top:100%}.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu,.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.action-menu,.action-select-wrap .action-menu-items>.action-menu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu .action-submenu{min-width:100%;position:static}.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.action-menu .action-submenu,.action-select-wrap .action-menu-items>.action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu .action-submenu .action-submenu{position:absolute}.action-multicheck-wrap{display:inline-block;height:1.6rem;padding-top:1px;position:relative;width:3.1rem;z-index:200}.action-multicheck-wrap:hover .action-multicheck-toggle,.action-multicheck-wrap:hover .admin__control-checkbox+label:before{border-color:#878787}.action-multicheck-wrap._active .action-multicheck-toggle,.action-multicheck-wrap._active .admin__control-checkbox+label:before{border-color:#007bdb}.action-multicheck-wrap._active .abs-action-menu .action-submenu,.action-multicheck-wrap._active .abs-action-menu .action-submenu .action-submenu,.action-multicheck-wrap._active .action-menu,.action-multicheck-wrap._active .action-menu .action-submenu,.action-multicheck-wrap._active .actions-split .action-menu .action-submenu,.action-multicheck-wrap._active .actions-split .action-menu .action-submenu .action-submenu,.action-multicheck-wrap._active .actions-split .dropdown-menu .action-submenu,.action-multicheck-wrap._active .actions-split .dropdown-menu .action-submenu .action-submenu{opacity:1;visibility:visible;display:block}.action-multicheck-wrap._disabled .admin__control-checkbox+label:before{background-color:#fff}.action-multicheck-wrap._disabled .action-multicheck-toggle,.action-multicheck-wrap._disabled .admin__control-checkbox+label:before{border-color:#adadad;opacity:1}.action-multicheck-wrap .action-multicheck-toggle,.action-multicheck-wrap .admin__control-checkbox,.action-multicheck-wrap .admin__control-checkbox+label{float:left}.action-multicheck-wrap .action-multicheck-toggle{border-radius:0 1px 1px 0;height:1.6rem;margin-left:-1px;padding:0;position:relative;transition:border-color .1s linear;width:1.6rem}.action-multicheck-wrap .action-multicheck-toggle._active:after,.action-multicheck-wrap .action-multicheck-toggle.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-multicheck-wrap .action-multicheck-toggle:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;top:50%;transition:all .2s linear;width:0}._active .action-multicheck-wrap .action-multicheck-toggle:after,.active .action-multicheck-wrap .action-multicheck-toggle:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-multicheck-wrap .action-multicheck-toggle:hover:after{border-color:#000 transparent transparent}.action-multicheck-wrap .action-multicheck-toggle:focus{border-color:#007bdb}.action-multicheck-wrap .action-multicheck-toggle:after{right:.3rem}.action-multicheck-wrap .action-multicheck-toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.action-multicheck-wrap .abs-action-menu .action-submenu,.action-multicheck-wrap .abs-action-menu .action-submenu .action-submenu,.action-multicheck-wrap .action-menu,.action-multicheck-wrap .action-menu .action-submenu,.action-multicheck-wrap .actions-split .action-menu .action-submenu,.action-multicheck-wrap .actions-split .action-menu .action-submenu .action-submenu,.action-multicheck-wrap .actions-split .dropdown-menu .action-submenu,.action-multicheck-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{left:-1.2rem;margin-top:1px;right:auto;text-align:left}.action-multicheck-wrap .action-menu-item{white-space:nowrap}.admin__action-multiselect-wrap{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.admin__action-multiselect-wrap.action-select-wrap:focus{box-shadow:none}.admin__action-multiselect-wrap.action-select-wrap .abs-action-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .abs-action-menu .action-submenu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .action-menu,.admin__action-multiselect-wrap.action-select-wrap .action-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .action-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .action-menu .action-submenu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .dropdown-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{max-height:none;overflow-y:inherit}.admin__action-multiselect-wrap .action-menu-item{transition:background-color .1s linear}.admin__action-multiselect-wrap .action-menu-item._selected{background-color:#e3e3e3}.admin__action-multiselect-wrap .action-menu-item._hover{background-color:#e0f6fe}.admin__action-multiselect-wrap .admin__action-multiselect{border:1px solid #adadad;cursor:pointer;min-height:3.2rem;padding:.7rem 3.6rem .6rem 1em;white-space:normal}.admin__action-multiselect-wrap .admin__action-multiselect:after{bottom:1.25rem;top:auto}.admin__action-multiselect-wrap .admin__action-multiselect:before{height:3.2rem;top:auto;width:3.2rem}.abs-action-menu .action-submenu,.abs-action-menu .action-submenu .action-submenu,.action-menu,.action-menu .action-submenu,.actions-split .action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu,.actions-split .dropdown-menu .action-submenu .action-submenu{text-align:left}.admin__action-multiselect-label{position:relative;z-index:1}.admin__action-multiselect-label:before{margin-right:.5rem}.admin__action-multiselect-search-wrap{margin-bottom:1rem;padding:1rem;position:relative}.admin__action-multiselect-search-wrap+.admin__action-multiselect-menu-inner{border-bottom:1px solid #e3e3e3;border-top:1px solid #e3e3e3;margin-bottom:1rem}.admin__action-multiselect-menu-inner{margin-bottom:0;max-height:17.2rem;overflow-y:auto}.admin__action-multiselect-search{padding-right:3rem;width:100%}.admin__action-multiselect-search-label{display:block;font-size:1.5rem;height:1em;overflow:hidden;position:absolute;right:2.2rem;top:1.7rem;width:1em}.admin__action-multiselect-search-label:before{content:'\e60c'}.admin__action-multiselect-actions-wrap{text-align:center}.admin__action-multiselect-actions-wrap .action-default{font-size:1.3rem;min-width:13rem}.admin__action-multiselect-crumb{background-color:#f5f5f5;border:1px solid #a79d95;border-radius:1px;display:inline-block;font-size:1.2rem;margin:-.3rem .9rem .5rem -1.1rem;padding:.3rem 2.4rem .4rem 1rem;position:relative;transition:border-color .1s linear}.admin__action-multiselect-crumb:hover{border-color:#908379}.admin__action-multiselect-crumb .action-close{bottom:0;font-size:.5em;position:absolute;right:0;top:0;width:2rem}.admin__action-multiselect-crumb .action-close:hover{color:#000}.admin__action-multiselect-crumb .action-close:active,.admin__action-multiselect-crumb .action-close:focus{background-color:transparent}.admin__action-multiselect-crumb .action-close:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.abs-action-delete,.abs-action-reset,.action-close,.notifications-close,.search-global-field._active .search-global-action{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;padding:0}.abs-action-delete:hover,.abs-action-reset:hover,.action-close:hover,.notifications-close:hover,.search-global-field._active .search-global-action:hover{background-color:transparent;border:none;box-shadow:none}.abs-action-default,.abs-action-pattern,.abs-action-primary,.abs-action-quaternary,.abs-action-secondary,.abs-action-tertiary,.action-default,.action-primary,.action-quaternary,.action-secondary,.action-tertiary,.page-actions .page-actions-buttons>button,.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions>button,.page-actions>button.action-primary,.page-actions>button.primary,button,button.primary,button.secondary,button.tertiary{border:1px solid;border-radius:0;display:inline-block;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:600;line-height:1.36;padding:.6rem 1em;text-align:center;vertical-align:baseline}.abs-action-default.disabled,.abs-action-default[disabled],.abs-action-pattern.disabled,.abs-action-pattern[disabled],.abs-action-primary.disabled,.abs-action-primary[disabled],.abs-action-quaternary.disabled,.abs-action-quaternary[disabled],.abs-action-secondary.disabled,.abs-action-secondary[disabled],.abs-action-tertiary.disabled,.abs-action-tertiary[disabled],.action-default.disabled,.action-default[disabled],.action-primary.disabled,.action-primary[disabled],.action-quaternary.disabled,.action-quaternary[disabled],.action-secondary.disabled,.action-secondary[disabled],.action-tertiary.disabled,.action-tertiary[disabled],.page-actions .page-actions-buttons>button.action-primary.disabled,.page-actions .page-actions-buttons>button.action-primary[disabled],.page-actions .page-actions-buttons>button.disabled,.page-actions .page-actions-buttons>button.primary.disabled,.page-actions .page-actions-buttons>button.primary[disabled],.page-actions .page-actions-buttons>button[disabled],.page-actions>button.action-primary.disabled,.page-actions>button.action-primary[disabled],.page-actions>button.disabled,.page-actions>button.primary.disabled,.page-actions>button.primary[disabled],.page-actions>button[disabled],button.disabled,button.primary.disabled,button.primary[disabled],button.secondary.disabled,button.secondary[disabled],button.tertiary.disabled,button.tertiary[disabled],button[disabled]{cursor:default;opacity:.5;pointer-events:none}.abs-action-l,.page-actions .page-actions-buttons>button,.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions button,.page-actions>button.action-primary,.page-actions>button.primary{font-size:1.6rem;letter-spacing:.025em;padding-bottom:.6875em;padding-top:.6875em}.abs-action-delete{display:inline-block;font-size:1.6rem;margin-left:1.2rem;padding-top:.7rem;text-decoration:none;vertical-align:middle}.abs-action-delete:after{color:#666;content:'\e630'}.abs-action-delete:hover:after{color:#35302c}.abs-action-default,button{background:#e3e3e3;border-color:#adadad;color:#514943}.abs-action-default:active,.abs-action-default:focus,.abs-action-default:hover,button:active,button:focus,button:hover{background-color:#dbdbdb;color:#514943;text-decoration:none}.abs-action-primary,.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions>button.action-primary,.page-actions>button.primary,button.primary{background-color:#eb5202;border-color:#eb5202;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.abs-action-primary:active,.abs-action-primary:focus,.abs-action-primary:hover,.page-actions .page-actions-buttons>button.action-primary:active,.page-actions .page-actions-buttons>button.action-primary:focus,.page-actions .page-actions-buttons>button.action-primary:hover,.page-actions .page-actions-buttons>button.primary:active,.page-actions .page-actions-buttons>button.primary:focus,.page-actions .page-actions-buttons>button.primary:hover,.page-actions>button.action-primary:active,.page-actions>button.action-primary:focus,.page-actions>button.action-primary:hover,.page-actions>button.primary:active,.page-actions>button.primary:focus,.page-actions>button.primary:hover,button.primary:active,button.primary:focus,button.primary:hover{background-color:#ba4000;border-color:#b84002;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.abs-action-primary.disabled,.abs-action-primary[disabled],.page-actions .page-actions-buttons>button.action-primary.disabled,.page-actions .page-actions-buttons>button.action-primary[disabled],.page-actions .page-actions-buttons>button.primary.disabled,.page-actions .page-actions-buttons>button.primary[disabled],.page-actions>button.action-primary.disabled,.page-actions>button.action-primary[disabled],.page-actions>button.primary.disabled,.page-actions>button.primary[disabled],button.primary.disabled,button.primary[disabled]{cursor:default;opacity:.5;pointer-events:none}.abs-action-secondary,button.secondary{background-color:#514943;border-color:#514943;color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.3)}.abs-action-secondary:active,.abs-action-secondary:focus,.abs-action-secondary:hover,button.secondary:active,button.secondary:focus,button.secondary:hover{background-color:#35302c;border-color:#35302c;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.abs-action-secondary:active,button.secondary:active{background-color:#35302c}.abs-action-tertiary,button.tertiary{background-color:transparent;border-color:transparent;text-shadow:none;color:#008bdb}.abs-action-tertiary:active,.abs-action-tertiary:focus,.abs-action-tertiary:hover,button.tertiary:active,button.tertiary:focus,button.tertiary:hover{background-color:transparent;border-color:transparent;box-shadow:none;color:#0fa7ff;text-decoration:underline}.abs-action-quaternary,.page-actions .page-actions-buttons>button,.page-actions>button{background-color:transparent;border-color:transparent;text-shadow:none;color:#333}.abs-action-quaternary:active,.abs-action-quaternary:focus,.abs-action-quaternary:hover,.page-actions .page-actions-buttons>button:active,.page-actions .page-actions-buttons>button:focus,.page-actions .page-actions-buttons>button:hover,.page-actions>button:active,.page-actions>button:focus,.page-actions>button:hover{background-color:transparent;border-color:transparent;box-shadow:none;color:#1a1a1a}.abs-action-menu,.actions-split .abs-action-menu .action-submenu,.actions-split .abs-action-menu .action-submenu .action-submenu,.actions-split .action-menu,.actions-split .action-menu .action-submenu,.actions-split .actions-split .dropdown-menu .action-submenu,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu,.actions-split .dropdown-menu{text-align:left;background-color:#fff;border:1px solid #007bdb;border-radius:1px;box-shadow:1px 1px 5px rgba(0,0,0,.5);color:#333;display:none;font-weight:400;left:0;list-style:none;margin:2px 0 0;min-width:0;padding:0;position:absolute;right:0;top:100%}.abs-action-menu._active,.actions-split .abs-action-menu .action-submenu .action-submenu._active,.actions-split .abs-action-menu .action-submenu._active,.actions-split .action-menu .action-submenu._active,.actions-split .action-menu._active,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu._active,.actions-split .actions-split .dropdown-menu .action-submenu._active,.actions-split .dropdown-menu._active{display:block}.abs-action-menu>li,.actions-split .abs-action-menu .action-submenu .action-submenu>li,.actions-split .abs-action-menu .action-submenu>li,.actions-split .action-menu .action-submenu>li,.actions-split .action-menu>li,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li,.actions-split .actions-split .dropdown-menu .action-submenu>li,.actions-split .dropdown-menu>li{border:none;display:block;padding:0;transition:background-color .1s linear}.abs-action-menu>li>a:hover,.actions-split .abs-action-menu .action-submenu .action-submenu>li>a:hover,.actions-split .abs-action-menu .action-submenu>li>a:hover,.actions-split .action-menu .action-submenu>li>a:hover,.actions-split .action-menu>li>a:hover,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li>a:hover,.actions-split .actions-split .dropdown-menu .action-submenu>li>a:hover,.actions-split .dropdown-menu>li>a:hover{text-decoration:none}.abs-action-menu>li._visible,.abs-action-menu>li:hover,.actions-split .abs-action-menu .action-submenu .action-submenu>li._visible,.actions-split .abs-action-menu .action-submenu .action-submenu>li:hover,.actions-split .abs-action-menu .action-submenu>li._visible,.actions-split .abs-action-menu .action-submenu>li:hover,.actions-split .action-menu .action-submenu>li._visible,.actions-split .action-menu .action-submenu>li:hover,.actions-split .action-menu>li._visible,.actions-split .action-menu>li:hover,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li._visible,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li:hover,.actions-split .actions-split .dropdown-menu .action-submenu>li._visible,.actions-split .actions-split .dropdown-menu .action-submenu>li:hover,.actions-split .dropdown-menu>li._visible,.actions-split .dropdown-menu>li:hover{background-color:#e3e3e3}.abs-action-menu>li:active,.actions-split .abs-action-menu .action-submenu .action-submenu>li:active,.actions-split .abs-action-menu .action-submenu>li:active,.actions-split .action-menu .action-submenu>li:active,.actions-split .action-menu>li:active,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li:active,.actions-split .actions-split .dropdown-menu .action-submenu>li:active,.actions-split .dropdown-menu>li:active{background-color:#cacaca}.abs-action-menu>li._parent,.actions-split .abs-action-menu .action-submenu .action-submenu>li._parent,.actions-split .abs-action-menu .action-submenu>li._parent,.actions-split .action-menu .action-submenu>li._parent,.actions-split .action-menu>li._parent,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li._parent,.actions-split .actions-split .dropdown-menu .action-submenu>li._parent,.actions-split .dropdown-menu>li._parent{display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.abs-action-menu>li._parent>.action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .abs-action-menu .action-submenu>li._parent>.action-menu-item,.actions-split .action-menu .action-submenu>li._parent>.action-menu-item,.actions-split .action-menu>li._parent>.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu>li._parent>.action-menu-item,.actions-split .dropdown-menu>li._parent>.action-menu-item{min-width:100%}.abs-action-menu .action-menu-item,.abs-action-menu .item,.actions-split .abs-action-menu .action-submenu .action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu .action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu .item,.actions-split .abs-action-menu .action-submenu .item,.actions-split .action-menu .action-menu-item,.actions-split .action-menu .action-submenu .action-menu-item,.actions-split .action-menu .action-submenu .item,.actions-split .action-menu .item,.actions-split .actions-split .dropdown-menu .action-submenu .action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu .action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu .item,.actions-split .actions-split .dropdown-menu .action-submenu .item,.actions-split .dropdown-menu .action-menu-item,.actions-split .dropdown-menu .item{display:block;padding:.6875em 1em;cursor:pointer}.abs-action-menu .action-submenu,.actions-split .action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu{bottom:auto;left:auto;margin-left:0;margin-top:-1px;position:absolute;right:auto;top:auto}.ie9 .abs-action-menu .action-submenu,.ie9 .actions-split .abs-action-menu .action-submenu .action-submenu,.ie9 .actions-split .abs-action-menu .action-submenu .action-submenu .action-submenu,.ie9 .actions-split .action-menu .action-submenu,.ie9 .actions-split .action-menu .action-submenu .action-submenu,.ie9 .actions-split .actions-split .dropdown-menu .action-submenu .action-submenu,.ie9 .actions-split .actions-split .dropdown-menu .action-submenu .action-submenu .action-submenu,.ie9 .actions-split .dropdown-menu .action-submenu{margin-left:99%;margin-top:-3.5rem}.abs-action-menu a.action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .abs-action-menu .action-submenu a.action-menu-item,.actions-split .action-menu .action-submenu a.action-menu-item,.actions-split .action-menu a.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu a.action-menu-item,.actions-split .dropdown-menu a.action-menu-item{color:#333}.abs-action-menu a.action-menu-item:focus,.actions-split .abs-action-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .abs-action-menu .action-submenu a.action-menu-item:focus,.actions-split .action-menu .action-submenu a.action-menu-item:focus,.actions-split .action-menu a.action-menu-item:focus,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .actions-split .dropdown-menu .action-submenu a.action-menu-item:focus,.actions-split .dropdown-menu a.action-menu-item:focus{background-color:#e3e3e3;box-shadow:none}.abs-action-wrap-triangle{position:relative}.abs-action-wrap-triangle .action-default{width:100%}.abs-action-wrap-triangle .action-default:after,.abs-action-wrap-triangle .action-default:before{border-style:solid;content:'';height:0;position:absolute;top:0;width:0}.abs-action-wrap-triangle .action-default:active,.abs-action-wrap-triangle .action-default:focus,.abs-action-wrap-triangle .action-default:hover{box-shadow:none}._keyfocus .abs-action-wrap-triangle .action-default:focus{box-shadow:0 0 0 1px #007bdb}.ie10 .abs-action-wrap-triangle .action-default.disabled,.ie10 .abs-action-wrap-triangle .action-default[disabled],.ie9 .abs-action-wrap-triangle .action-default.disabled,.ie9 .abs-action-wrap-triangle .action-default[disabled]{background-color:#fcfcfc;opacity:1;text-shadow:none}.abs-action-wrap-triangle-right{display:inline-block;padding-right:1.6rem;position:relative}.abs-action-wrap-triangle-right .action-default:after,.abs-action-wrap-triangle-right .action-default:before{border-color:transparent transparent transparent #e3e3e3;border-width:1.7rem 0 1.6rem 1.7rem;left:100%;margin-left:-1.7rem}.abs-action-wrap-triangle-right .action-default:before{border-left-color:#949494;right:-1px}.abs-action-wrap-triangle-right .action-default:active:after,.abs-action-wrap-triangle-right .action-default:focus:after,.abs-action-wrap-triangle-right .action-default:hover:after{border-left-color:#dbdbdb}.ie10 .abs-action-wrap-triangle-right .action-default.disabled:after,.ie10 .abs-action-wrap-triangle-right .action-default[disabled]:after,.ie9 .abs-action-wrap-triangle-right .action-default.disabled:after,.ie9 .abs-action-wrap-triangle-right .action-default[disabled]:after{border-color:transparent transparent transparent #fcfcfc}.abs-action-wrap-triangle-right .action-primary:after{border-color:transparent transparent transparent #eb5202}.abs-action-wrap-triangle-right .action-primary:active:after,.abs-action-wrap-triangle-right .action-primary:focus:after,.abs-action-wrap-triangle-right .action-primary:hover:after{border-left-color:#ba4000}.abs-action-wrap-triangle-left{display:inline-block;padding-left:1.6rem}.abs-action-wrap-triangle-left .action-default{text-indent:-.85rem}.abs-action-wrap-triangle-left .action-default:after,.abs-action-wrap-triangle-left .action-default:before{border-color:transparent #e3e3e3 transparent transparent;border-width:1.7rem 1.7rem 1.6rem 0;margin-right:-1.7rem;right:100%}.abs-action-wrap-triangle-left .action-default:before{border-right-color:#949494;left:-1px}.abs-action-wrap-triangle-left .action-default:active:after,.abs-action-wrap-triangle-left .action-default:focus:after,.abs-action-wrap-triangle-left .action-default:hover:after{border-right-color:#dbdbdb}.ie10 .abs-action-wrap-triangle-left .action-default.disabled:after,.ie10 .abs-action-wrap-triangle-left .action-default[disabled]:after,.ie9 .abs-action-wrap-triangle-left .action-default.disabled:after,.ie9 .abs-action-wrap-triangle-left .action-default[disabled]:after{border-color:transparent #fcfcfc transparent transparent}.abs-action-wrap-triangle-left .action-primary:after{border-color:transparent #eb5202 transparent transparent}.abs-action-wrap-triangle-left .action-primary:active:after,.abs-action-wrap-triangle-left .action-primary:focus:after,.abs-action-wrap-triangle-left .action-primary:hover:after{border-right-color:#ba4000}.action-default,button{background:#e3e3e3;border-color:#adadad;color:#514943}.action-default:active,.action-default:focus,.action-default:hover,button:active,button:focus,button:hover{background-color:#dbdbdb;color:#514943;text-decoration:none}.action-primary{background-color:#eb5202;border-color:#eb5202;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.action-primary:active,.action-primary:focus,.action-primary:hover{background-color:#ba4000;border-color:#b84002;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.action-primary.disabled,.action-primary[disabled]{cursor:default;opacity:.5;pointer-events:none}.action-secondary{background-color:#514943;border-color:#514943;color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.3)}.action-secondary:active,.action-secondary:focus,.action-secondary:hover{background-color:#35302c;border-color:#35302c;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.action-secondary:active{background-color:#35302c}.action-quaternary,.action-tertiary{background-color:transparent;border-color:transparent;text-shadow:none}.action-quaternary:active,.action-quaternary:focus,.action-quaternary:hover,.action-tertiary:active,.action-tertiary:focus,.action-tertiary:hover{background-color:transparent;border-color:transparent;box-shadow:none}.action-tertiary{color:#008bdb}.action-tertiary:active,.action-tertiary:focus,.action-tertiary:hover{color:#0fa7ff;text-decoration:underline}.action-quaternary{color:#333}.action-quaternary:active,.action-quaternary:focus,.action-quaternary:hover{color:#1a1a1a}.action-close>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.action-close:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.action-close:before{content:'\e62f';transition:color .1s linear}.action-close:hover{cursor:pointer;text-decoration:none}.abs-action-menu .action-submenu,.abs-action-menu .action-submenu .action-submenu,.action-menu,.action-menu .action-submenu,.actions-split .action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu,.actions-split .dropdown-menu .action-submenu .action-submenu{background-color:#fff;border:1px solid #007bdb;border-radius:1px;box-shadow:1px 1px 5px rgba(0,0,0,.5);color:#333;display:none;font-weight:400;left:0;list-style:none;margin:2px 0 0;min-width:0;padding:0;position:absolute;right:0;top:100%}.abs-action-menu .action-submenu .action-submenu._active,.abs-action-menu .action-submenu._active,.action-menu .action-submenu._active,.action-menu._active,.actions-split .action-menu .action-submenu .action-submenu._active,.actions-split .action-menu .action-submenu._active,.actions-split .dropdown-menu .action-submenu .action-submenu._active,.actions-split .dropdown-menu .action-submenu._active{display:block}.abs-action-menu .action-submenu .action-submenu>li,.abs-action-menu .action-submenu>li,.action-menu .action-submenu>li,.action-menu>li,.actions-split .action-menu .action-submenu .action-submenu>li,.actions-split .action-menu .action-submenu>li,.actions-split .dropdown-menu .action-submenu .action-submenu>li,.actions-split .dropdown-menu .action-submenu>li{border:none;display:block;padding:0;transition:background-color .1s linear}.abs-action-menu .action-submenu .action-submenu>li>a:hover,.abs-action-menu .action-submenu>li>a:hover,.action-menu .action-submenu>li>a:hover,.action-menu>li>a:hover,.actions-split .action-menu .action-submenu .action-submenu>li>a:hover,.actions-split .action-menu .action-submenu>li>a:hover,.actions-split .dropdown-menu .action-submenu .action-submenu>li>a:hover,.actions-split .dropdown-menu .action-submenu>li>a:hover{text-decoration:none}.abs-action-menu .action-submenu .action-submenu>li._visible,.abs-action-menu .action-submenu .action-submenu>li:hover,.abs-action-menu .action-submenu>li._visible,.abs-action-menu .action-submenu>li:hover,.action-menu .action-submenu>li._visible,.action-menu .action-submenu>li:hover,.action-menu>li._visible,.action-menu>li:hover,.actions-split .action-menu .action-submenu .action-submenu>li._visible,.actions-split .action-menu .action-submenu .action-submenu>li:hover,.actions-split .action-menu .action-submenu>li._visible,.actions-split .action-menu .action-submenu>li:hover,.actions-split .dropdown-menu .action-submenu .action-submenu>li._visible,.actions-split .dropdown-menu .action-submenu .action-submenu>li:hover,.actions-split .dropdown-menu .action-submenu>li._visible,.actions-split .dropdown-menu .action-submenu>li:hover{background-color:#e3e3e3}.abs-action-menu .action-submenu .action-submenu>li:active,.abs-action-menu .action-submenu>li:active,.action-menu .action-submenu>li:active,.action-menu>li:active,.actions-split .action-menu .action-submenu .action-submenu>li:active,.actions-split .action-menu .action-submenu>li:active,.actions-split .dropdown-menu .action-submenu .action-submenu>li:active,.actions-split .dropdown-menu .action-submenu>li:active{background-color:#cacaca}.abs-action-menu .action-submenu .action-submenu>li._parent,.abs-action-menu .action-submenu>li._parent,.action-menu .action-submenu>li._parent,.action-menu>li._parent,.actions-split .action-menu .action-submenu .action-submenu>li._parent,.actions-split .action-menu .action-submenu>li._parent,.actions-split .dropdown-menu .action-submenu .action-submenu>li._parent,.actions-split .dropdown-menu .action-submenu>li._parent{display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.abs-action-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.abs-action-menu .action-submenu>li._parent>.action-menu-item,.action-menu .action-submenu>li._parent>.action-menu-item,.action-menu>li._parent>.action-menu-item,.actions-split .action-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .action-menu .action-submenu>li._parent>.action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .dropdown-menu .action-submenu>li._parent>.action-menu-item{min-width:100%}.abs-action-menu .action-submenu .action-menu-item,.abs-action-menu .action-submenu .action-submenu .action-menu-item,.abs-action-menu .action-submenu .action-submenu .item,.abs-action-menu .action-submenu .item,.action-menu .action-menu-item,.action-menu .action-submenu .action-menu-item,.action-menu .action-submenu .item,.action-menu .item,.actions-split .action-menu .action-submenu .action-menu-item,.actions-split .action-menu .action-submenu .action-submenu .action-menu-item,.actions-split .action-menu .action-submenu .action-submenu .item,.actions-split .action-menu .action-submenu .item,.actions-split .dropdown-menu .action-submenu .action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu .action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu .item,.actions-split .dropdown-menu .action-submenu .item{display:block;padding:.6875em 1em;cursor:pointer}.abs-action-menu .action-submenu .action-submenu,.action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu .action-submenu{bottom:auto;left:auto;margin-left:0;margin-top:-1px;position:absolute;right:auto;top:auto}.ie9 .abs-action-menu .action-submenu .action-submenu,.ie9 .abs-action-menu .action-submenu .action-submenu .action-submenu,.ie9 .action-menu .action-submenu,.ie9 .action-menu .action-submenu .action-submenu,.ie9 .actions-split .action-menu .action-submenu .action-submenu,.ie9 .actions-split .action-menu .action-submenu .action-submenu .action-submenu,.ie9 .actions-split .dropdown-menu .action-submenu .action-submenu,.ie9 .actions-split .dropdown-menu .action-submenu .action-submenu .action-submenu{margin-left:99%;margin-top:-3.5rem}.abs-action-menu .action-submenu .action-submenu a.action-menu-item,.abs-action-menu .action-submenu a.action-menu-item,.action-menu .action-submenu a.action-menu-item,.action-menu a.action-menu-item,.actions-split .action-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .action-menu .action-submenu a.action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .dropdown-menu .action-submenu a.action-menu-item{color:#333}.abs-action-menu .action-submenu .action-submenu a.action-menu-item:focus,.abs-action-menu .action-submenu a.action-menu-item:focus,.action-menu .action-submenu a.action-menu-item:focus,.action-menu a.action-menu-item:focus,.actions-split .action-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .action-menu .action-submenu a.action-menu-item:focus,.actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .dropdown-menu .action-submenu a.action-menu-item:focus{background-color:#e3e3e3;box-shadow:none}.messages .message:last-child{margin:0 0 2rem}.message{background:#fffbbb;border:none;border-radius:0;color:#333;font-size:1.4rem;margin:0 0 1px;padding:1.8rem 4rem 1.8rem 5.5rem;position:relative;text-shadow:none}.message:before{background:0 0;border:0;color:#007bdb;content:'\e61a';font-family:Icons;font-size:1.9rem;font-style:normal;font-weight:400;height:auto;left:1.9rem;line-height:inherit;margin-top:-1.3rem;position:absolute;speak:none;text-shadow:none;top:50%;width:auto}.message-notice:before{color:#007bdb;content:'\e61a'}.message-warning:before{color:#eb5202;content:'\e623'}.message-error{background:#fcc}.message-error:before{color:#e22626;content:'\e632';font-size:1.5rem;left:2.2rem;margin-top:-1rem}.message-success:before{color:#79a22e;content:'\e62d'}.message-spinner:before{display:none}.message-spinner .spinner{font-size:2.5rem;left:1.5rem;position:absolute;top:1.5rem}.message-in-rating-edit{margin-left:1.8rem;margin-right:1.8rem}.modal-popup .action-close,.modal-slide .action-close{color:#736963;position:absolute;right:0;top:0}.modal-popup .action-close:active,.modal-slide .action-close:active{-webkit-transform:none;-ms-transform:none;transform:none}.modal-popup .action-close:active:before,.modal-slide .action-close:active:before{font-size:1.8rem}.modal-popup .action-close:hover:before,.modal-slide .action-close:hover:before{color:#58504b}.modal-popup .action-close:before,.modal-slide .action-close:before{font-size:2rem}.modal-popup .modal-title{font-size:2.4rem;margin-right:6.4rem}.modal-popup .action-close{padding:3rem}.modal-popup .action-close:active,.modal-popup .action-close:focus{background:0 0;padding-right:3.1rem;padding-top:3.1rem}.modal-slide .modal-title{font-size:2.1rem;margin-right:5.7rem}.modal-slide .action-close{padding:2.1rem 2.6rem}.modal-slide .action-close:active{padding-right:2.7rem;padding-top:2.2rem}.modal-slide .page-main-actions{margin-bottom:.6rem;margin-top:2.1rem}.modal-title{font-weight:400;margin-bottom:0;min-height:1em}.spinner{display:inline-block;font-size:4rem;height:1em;margin-right:1.5rem;position:relative;width:1em}.spinner>span:nth-child(1){-webkit-animation-delay:.27s;animation-delay:.27s;-webkit-transform:rotate(-315deg);-ms-transform:rotate(-315deg);transform:rotate(-315deg)}.spinner>span:nth-child(2){-webkit-animation-delay:.36s;animation-delay:.36s;-webkit-transform:rotate(-270deg);-ms-transform:rotate(-270deg);transform:rotate(-270deg)}.spinner>span:nth-child(3){-webkit-animation-delay:.45s;animation-delay:.45s;-webkit-transform:rotate(-225deg);-ms-transform:rotate(-225deg);transform:rotate(-225deg)}.spinner>span:nth-child(4){-webkit-animation-delay:.54s;animation-delay:.54s;-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}.spinner>span:nth-child(5){-webkit-animation-delay:.63s;animation-delay:.63s;-webkit-transform:rotate(-135deg);-ms-transform:rotate(-135deg);transform:rotate(-135deg)}.spinner>span:nth-child(6){-webkit-animation-delay:.72s;animation-delay:.72s;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}.spinner>span:nth-child(7){-webkit-animation-delay:.81s;animation-delay:.81s;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.spinner>span:nth-child(8){-webkit-animation-delay:.9;animation-delay:.9;-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}@-webkit-keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}@keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}.spinner>span{-webkit-transform:scale(0.4);-ms-transform:scale(0.4);transform:scale(0.4);-webkit-animation-name:fade;animation-name:fade;-webkit-animation-duration:.72s;animation-duration:.72s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-direction:linear;animation-direction:linear;background-color:#fff;border-radius:6px;clip:rect(0 .28571429em .1em 0);height:.1em;margin-top:.5em;position:absolute;width:1em}.ie9 .spinner{background:url(../images/ajax-loader.gif) center no-repeat}.ie9 .spinner>span{display:none}.popup-loading{background:rgba(255,255,255,.8);border-color:#ef672f;color:#ef672f;font-size:14px;font-weight:700;left:50%;margin-left:-100px;padding:100px 0 10px;position:fixed;text-align:center;top:40%;width:200px;z-index:1003}.popup-loading:after{background-image:url(../images/loader-1.gif);content:'';height:64px;left:50%;margin:-32px 0 0 -32px;position:absolute;top:40%;width:64px;z-index:2}.loading-mask,.loading-old{background:rgba(255,255,255,.4);bottom:0;left:0;position:fixed;right:0;top:0;z-index:2003}.loading-mask img,.loading-old img{display:none}.loading-mask p,.loading-old p{margin-top:118px}.loading-mask .loader,.loading-old .loader{background:url(../images/loader-1.gif) 50% 30% no-repeat #e5e2dd;border-radius:5px;bottom:0;color:#5e5b56;font-size:14px;font-weight:700;height:160px;left:0;margin:auto;opacity:.95;position:absolute;right:0;text-align:center;top:0;width:160px}.admin-user{float:right;line-height:1.36;margin-left:.3rem;z-index:390}.admin-user._active .admin__action-dropdown,.admin-user.active .admin__action-dropdown{border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5)}.admin-user .admin__action-dropdown{height:3.3rem;padding:.7rem 2.8rem .4rem 4rem}.admin-user .admin__action-dropdown._active:after,.admin-user .admin__action-dropdown.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin-user .admin__action-dropdown:after{border-color:#777 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.3rem;top:50%;transition:all .2s linear;width:0}._active .admin-user .admin__action-dropdown:after,.active .admin-user .admin__action-dropdown:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin-user .admin__action-dropdown:hover:after{border-color:#000 transparent transparent}.admin-user .admin__action-dropdown:before{color:#777;content:'\e600';font-size:2rem;left:1.1rem;margin-top:-1.1rem;position:absolute;top:50%}.admin-user .admin__action-dropdown:hover:before{color:#333}.admin-user .admin__action-dropdown-menu{min-width:20rem;padding-left:1rem;padding-right:1rem}.admin-user .admin__action-dropdown-menu>li>a{padding-right:1.8rem;padding-left:.5em;white-space:nowrap;transition:background-color .1s linear}.admin-user .admin__action-dropdown-menu>li>a:hover{background-color:#e0f6fe;color:#333}.admin-user .admin__action-dropdown-menu>li>a:active{background-color:#c7effd;bottom:-1px;position:relative}.admin-user .admin__action-dropdown-menu .admin-user-name{text-overflow:ellipsis;white-space:nowrap;display:inline-block;max-width:20rem;overflow:hidden;vertical-align:top}.admin-user-account-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;max-width:11.2rem}.search-global{float:right;margin-right:-.3rem;position:relative;z-index:380}.search-global-field{min-width:5rem}.search-global-field._active .search-global-input{background-color:#fff;border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5);padding-right:4rem;width:25rem}.search-global-field._active .search-global-action{display:block;height:3.3rem;position:absolute;right:0;text-indent:-100%;top:0;width:5rem;z-index:3}.search-global-field .autocomplete-results{height:3.3rem;position:absolute;right:0;top:0;width:25rem}.search-global-field .search-global-menu{border:1px solid #007bdb;border-top-color:transparent;box-shadow:1px 1px 5px rgba(0,0,0,.5);left:0;margin-top:-2px;padding:0;position:absolute;right:0;top:100%;z-index:2}.search-global-field .search-global-menu:after{background-color:#fff;content:'';height:5px;left:0;position:absolute;right:0;top:-5px}.search-global-field .search-global-menu>li{background-color:#fff;border-top:1px solid #ddd;display:block;font-size:1.2rem;padding:.75rem 1.4rem .55rem}.search-global-field .search-global-menu>li._active{background-color:#e0f6fe}.search-global-field .search-global-menu .title{display:block;font-size:1.4rem}.search-global-field .search-global-menu .type{color:#1a1a1a;display:block}.search-global-label{cursor:pointer;height:3.3rem;padding:.75rem 1.4rem .55rem;position:absolute;right:0;top:0;z-index:2}.search-global-label:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.search-global-label:hover:before{color:#000}.search-global-label:before{color:#777;content:'\e60c';font-size:2rem}.search-global-input{background-color:transparent;border:1px solid transparent;font-size:1.4rem;height:3.3rem;padding:.75rem 1.4rem .55rem;position:absolute;right:0;top:0;transition:all .1s linear,width .3s linear;width:5rem;z-index:1}.search-global-action{display:none}.notifications-wrapper{float:right;line-height:1;position:relative}.notifications-wrapper.active{z-index:400}.notifications-wrapper.active .notifications-action{border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5)}.notifications-wrapper.active .notifications-action:after{border:none;background-color:#fff;content:'';display:block;height:6px;left:-6px;margin-top:0;position:absolute;right:0;top:100%;width:auto}.notifications-wrapper .admin__action-dropdown-menu{padding:1rem 0 0;width:32rem}.notifications-action{color:#777;height:3.3rem;padding:.75rem 2rem .65rem}.notifications-action:after{display:none}.notifications-action:before{content:'\e607';font-size:1.9rem;margin-right:0}.notifications-action:active:before{position:relative;top:1px}.notifications-action .notifications-counter{background-color:#e22626;border-radius:1em;color:#fff;display:inline-block;font-size:1.1rem;font-weight:700;left:50%;margin-left:.3em;margin-top:-1.1em;padding:.3em .5em;position:absolute;top:50%}.notifications-entry{line-height:1.36;padding:.6rem 2rem .8rem;position:relative;transition:background-color .1s linear}.notifications-entry:hover{background-color:#e0f6fe}.notifications-entry.notifications-entry-last{margin:0 2rem;padding:.3rem 0 1.3rem;text-align:center}.notifications-entry.notifications-entry-last:hover{background-color:transparent}.notifications-entry+.notifications-entry-last{border-top:1px solid #ddd;padding-bottom:.6rem}.notifications-entry ._cutted{cursor:pointer}.notifications-entry ._cutted .notifications-entry-description-start:after{content:'...'}.notifications-entry-title{color:#ef672f;display:block;font-size:1.1rem;font-weight:700;margin-bottom:.7rem;margin-right:1em}.notifications-entry-description{color:#333;font-size:1.1rem;margin-bottom:.8rem}.notifications-entry-description-end{display:none}.notifications-entry-description-end._show{display:inline}.notifications-entry-time{color:#777;font-size:1.1rem}.notifications-close{line-height:1;padding:1rem;position:absolute;right:0;top:.6rem}.notifications-close:before{color:#ccc;content:'\e620';transition:color .1s linear}.notifications-close:hover:before{color:#b3b3b3}.notifications-close:active{-webkit-transform:scale(0.95);-ms-transform:scale(0.95);transform:scale(0.95)}.page-header-actions{padding-top:1.1rem}.page-header-hgroup{padding-right:1.5rem}.page-title{color:#333;font-size:2.8rem;margin-bottom:0}.page-header{padding:1.5rem 3rem}.menu-wrapper{display:inline-block;position:relative;width:8.8rem;z-index:700}.menu-wrapper:before{background-color:#373330;bottom:0;content:'';left:0;position:fixed;top:0;width:8.8rem;z-index:699}.menu-wrapper._fixed{left:0;position:fixed;top:0}.menu-wrapper._fixed~.page-wrapper{margin-left:8.8rem}.menu-wrapper .logo{display:block;height:8.8rem;padding:2.4rem 0 2.2rem;position:relative;text-align:center;z-index:700}._keyfocus .menu-wrapper .logo:focus{background-color:#4a4542;box-shadow:none}._keyfocus .menu-wrapper .logo:focus+.admin__menu .level-0:first-child>a{background-color:#373330}._keyfocus .menu-wrapper .logo:focus+.admin__menu .level-0:first-child>a:after{display:none}.menu-wrapper .logo:hover .logo-img{-webkit-filter:brightness(1.1);filter:brightness(1.1)}.menu-wrapper .logo:active .logo-img{-webkit-transform:scale(0.95);-ms-transform:scale(0.95);transform:scale(0.95)}.menu-wrapper .logo .logo-img{height:4.2rem;transition:-webkit-filter .2s linear,filter .2s linear,transform .1s linear;width:3.5rem}.abs-menu-separator,.admin__menu .item-partners>a:after,.admin__menu .level-0:first-child>a:after{background-color:#736963;content:'';display:block;height:1px;left:0;margin-left:16%;position:absolute;top:0;width:68%}.admin__menu li{display:block}.admin__menu .level-0:first-child>a{position:relative}.admin__menu .level-0:first-child._active>a:after{display:none}.admin__menu .level-0._active>a,.admin__menu .level-0:hover>a{color:#f7f3eb}.admin__menu .level-0._active>a{background-color:#524d49}.admin__menu .level-0:hover>a{background-color:#4a4542}.admin__menu .level-0>a{color:#aaa6a0;display:block;font-size:1rem;letter-spacing:.025em;min-height:6.2rem;padding:1.2rem .5rem .5rem;position:relative;text-align:center;text-decoration:none;text-transform:uppercase;transition:background-color .1s linear;word-wrap:break-word;z-index:700}.admin__menu .level-0>a:focus{box-shadow:none}.admin__menu .level-0>a:before{content:'\e63a';display:block;font-size:2.2rem;height:2.2rem}.admin__menu .level-0>.submenu{background-color:#4a4542;box-shadow:0 0 3px #000;left:100%;min-height:calc(8.8rem + 2rem + 100%);padding:2rem 0 0;position:absolute;top:0;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-duration:.3s;transition-timing-function:ease-in-out;visibility:hidden;z-index:697}.admin__menu .level-0._show>.submenu{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);visibility:visible;z-index:698}.admin__menu .level-1{margin-left:1.5rem;margin-right:1.5rem}.admin__menu [class*=level-]:not(.level-0) a{display:block;padding:1.25rem 1.5rem}.admin__menu [class*=level-]:not(.level-0) a:hover{background-color:#403934}.admin__menu [class*=level-]:not(.level-0) a:active{padding-top:1.35rem;padding-bottom:1.15rem;background-color:#322c29}.admin__menu .submenu li{min-width:23.8rem}.admin__menu .submenu a{color:#fcfcfc;transition:background-color .1s linear}.admin__menu .submenu a:focus,.admin__menu .submenu a:hover{box-shadow:none;text-decoration:none}._keyfocus .admin__menu .submenu a:focus{background-color:#403934}._keyfocus .admin__menu .submenu a:active{background-color:#322c29}.admin__menu .submenu .parent{margin-bottom:4.5rem}.admin__menu .submenu .parent .submenu-group-title,.admin__menu .submenu .parent>a{color:#a79d95;display:block;font-size:1.6rem;font-weight:600;margin-bottom:.7rem;padding:1.25rem 1.5rem;pointer-events:none}.admin__menu .submenu .column{display:table-cell}.admin__menu .submenu-title{color:#fff;display:block;font-size:2.2rem;font-weight:600;margin-bottom:4.2rem;margin-left:3rem;margin-right:5.8rem}.admin__menu .submenu-sub-title{color:#fff;display:block;font-size:1.2rem;margin:-3.8rem 5.8rem 3.8rem 3rem}.admin__menu .action-close{padding:2.4rem 2.8rem;position:absolute;right:0;top:0}.admin__menu .action-close:before{color:#a79d95;font-size:1.7rem}.admin__menu .action-close:hover:before{color:#fff}.admin__menu .item-dashboard>a:before{content:'\e604';font-size:1.8rem;padding-top:.4rem}.admin__menu .item-sales>a:before{content:'\e60b'}.admin__menu .item-catalog>a:before{content:'\e608'}.admin__menu .item-customer>a:before{content:'\e603';font-size:2.6rem;position:relative;top:-.4rem}.admin__menu .item-marketing>a:before{content:'\e609';font-size:2rem;padding-top:.2rem}.admin__menu .item-content>a:before{content:'\e602';font-size:2.4rem;position:relative;top:-.2rem}.admin__menu .item-report>a:before{content:'\e60a'}.admin__menu .item-stores>a:before{content:'\e60d';font-size:1.9rem;padding-top:.3rem}.admin__menu .item-system>a:before{content:'\e60e'}.admin__menu .item-partners>a{padding-bottom:1rem}.admin__menu .item-partners>a:before{content:'\e612'}.admin__menu-overlay{bottom:0;left:0;position:fixed;right:0;top:0;z-index:697}.store-switcher{color:#333;float:left;font-size:1.3rem;margin-top:.7rem}.store-switcher .admin__action-dropdown{margin-left:.5em;background-color:#f8f8f8}.store-switcher .dropdown{display:inline-block;position:relative}.store-switcher .dropdown:after,.store-switcher .dropdown:before{content:'';display:table}.store-switcher .dropdown:after{clear:both}.store-switcher .dropdown .action.toggle{cursor:pointer;display:inline-block;text-decoration:none}.store-switcher .dropdown .action.toggle:after{-webkit-font-smoothing:antialiased;font-size:22px;line-height:2;color:#333;content:'\e607';font-family:icons-blank-theme;margin:0;vertical-align:top;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.store-switcher .dropdown .action.toggle:active:after,.store-switcher .dropdown .action.toggle:hover:after{color:#333}.store-switcher .dropdown .action.toggle.active{display:inline-block;text-decoration:none}.store-switcher .dropdown .action.toggle.active:after{-webkit-font-smoothing:antialiased;font-size:22px;line-height:2;color:#333;content:'\e618';font-family:icons-blank-theme;margin:0;vertical-align:top;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.store-switcher .dropdown .action.toggle.active:active:after,.store-switcher .dropdown .action.toggle.active:hover:after{color:#333}.store-switcher .dropdown .dropdown-menu{background:#fff;border:1px solid #ada89e;z-index:100;margin:4px 0 0;padding:0;list-style:none;box-sizing:border-box;position:absolute;top:100%;box-shadow:1px 1px 5px rgba(0,0,0,.5);min-width:19.5rem;display:none}.store-switcher .dropdown .dropdown-menu li{margin:0;padding:0}.store-switcher .dropdown .dropdown-menu li:hover{background:0 0;cursor:pointer}.store-switcher .dropdown.active{overflow:visible}.store-switcher .dropdown.active .dropdown-menu{display:block}.store-switcher .dropdown-menu{left:0;margin-top:.5em;padding-top:.25em}.store-switcher .dropdown-menu li{border:0;cursor:default}.store-switcher .dropdown-menu li:hover{cursor:default}.store-switcher .dropdown-menu li a,.store-switcher .dropdown-menu li span{color:#333;display:block;padding:.5rem 1.3rem}.store-switcher .dropdown-menu li a{text-decoration:none}.store-switcher .dropdown-menu li a:hover{background:#e9e9e9}.store-switcher .dropdown-menu li span{color:#adadad;cursor:default}.store-switcher .dropdown-menu li.current span{background:#eee;color:#333}.store-switcher .dropdown-menu .store-switcher-store a,.store-switcher .dropdown-menu .store-switcher-store span{padding-left:2.6rem}.store-switcher .dropdown-menu .store-switcher-store-view a,.store-switcher .dropdown-menu .store-switcher-store-view span{padding-left:3.9rem}.store-switcher .dropdown-menu .dropdown-toolbar{border-top:1px solid #ebebeb;margin-top:1rem}.store-switcher .dropdown-menu .dropdown-toolbar a:before{content:'\e60e';margin-right:.25em;position:relative;top:1px}.store-switcher-label{font-weight:700}.store-switcher-alt{display:inline-block;position:relative}.store-switcher-alt.active .dropdown-menu{display:block}.store-switcher-alt .dropdown-menu{margin-top:2px;white-space:nowrap}.store-switcher-alt .dropdown-menu ul{list-style:none;margin:0;padding:0}.store-switcher-alt strong{color:#a6a098;display:block;font-size:14px;font-weight:500;line-height:1.333;padding:5px 10px}.store-switcher-alt .store-selected{color:#676056;cursor:pointer;font-size:12px;font-weight:400;line-height:1.333}.store-switcher-alt .store-selected:after{color:#b3b0ad;content:'\e02c';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;margin:0 0 0 3px;speak:none;vertical-align:text-top}.store-switcher-alt .store-switcher-store,.store-switcher-alt .store-switcher-website{padding:0}.store-switcher-alt .store-switcher-store:hover,.store-switcher-alt .store-switcher-website:hover{background:0 0}.store-switcher-alt .manage-stores,.store-switcher-alt .store-switcher-all,.store-switcher-alt .store-switcher-store-view{padding:0}.store-switcher-alt .manage-stores>a,.store-switcher-alt .store-switcher-all>a{color:#676056;display:block;font-size:12px;padding:8px 15px;text-decoration:none}.store-switcher-website{margin:5px 0 0}.store-switcher-website>strong{padding-left:13px}.store-switcher-store{margin:1px 0 0}.store-switcher-store>strong{padding-left:20px}.store-switcher-store>ul{margin-top:1px}.store-switcher-store-view:first-child{border-top:1px solid #e5e5e5}.store-switcher-store-view>a{color:#333;display:block;font-size:13px;padding:5px 15px 5px 24px;text-decoration:none}.tooltip{margin-left:.5em}.tooltip .help a,.tooltip .help span{cursor:pointer;display:inline-block;height:22px;position:relative;vertical-align:middle;width:22px;z-index:2}.tooltip .help a:before,.tooltip .help span:before{color:#333;content:'\e633';font-size:1.7rem}.tooltip .help a span,.tooltip .help span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tooltip .help a:hover{text-decoration:none}.tooltip .tooltip-content{background:#000;border-radius:3px;color:#fff;display:none;margin-left:-19px;margin-top:10px;max-width:200px;padding:4px 8px;position:absolute;text-shadow:none;z-index:20}.tooltip .tooltip-content:before{border-bottom:5px solid #000;border-left:5px solid transparent;border-right:5px solid transparent;content:'';height:0;left:20px;opacity:.8;position:absolute;top:-5px;width:0}.tooltip .tooltip-content.loading{position:absolute}.tooltip .tooltip-content.loading:before{border-bottom-color:rgba(0,0,0,.3)}.tooltip:hover>.tooltip-content{display:block}.page-actions._fixed,.page-main-actions:not(._hidden){background:#f8f8f8;border-bottom:1px solid #e3e3e3;border-top:1px solid #e3e3e3;padding:1.5rem}.page-main-actions{margin:0 0 3rem}.page-main-actions._hidden .store-switcher{display:none}.page-actions{float:right}.page-main-actions .page-actions._fixed{left:8.8rem;position:fixed;right:0;top:0;z-index:400}.page-main-actions .page-actions._fixed .page-actions-inner:before{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333;content:attr(data-title);float:left;font-size:2.8rem;margin-top:.3rem;max-width:50%}.page-actions .page-actions-buttons>button,.page-actions>button{float:right;margin-left:1.3rem}.page-actions .page-actions-buttons>button.action-back,.page-actions .page-actions-buttons>button.back,.page-actions>button.action-back,.page-actions>button.back{float:left;-ms-flex-order:-1;-webkit-order:-1;order:-1}.page-actions .page-actions-buttons>button.action-back:before,.page-actions .page-actions-buttons>button.back:before,.page-actions>button.action-back:before,.page-actions>button.back:before{content:'\e626';margin-right:.5em;position:relative;top:1px}.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions>button.action-primary,.page-actions>button.primary{-ms-flex-order:2;-webkit-order:2;order:2}.page-actions .page-actions-buttons>button.save:not(.primary),.page-actions>button.save:not(.primary){-ms-flex-order:1;-webkit-order:1;order:1}.page-actions .page-actions-buttons>button.delete,.page-actions>button.delete{-ms-flex-order:-1;-webkit-order:-1;order:-1}.page-actions .actions-split{float:right;margin-left:1.3rem;-ms-flex-order:2;-webkit-order:2;order:2}.page-actions .actions-split .dropdown-menu .item{display:block}.page-actions-buttons{float:right;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;display:-webkit-flex;display:-ms-flexbox;display:flex}.customer-index-edit .page-actions-buttons{background-color:transparent}.admin__page-nav{background:#f1f1f1;border:1px solid #e3e3e3}.admin__page-nav._collapsed:first-child{border-bottom:none}.admin__page-nav._collapsed._show{border-bottom:1px solid #e3e3e3}.admin__page-nav._collapsed._show ._collapsible{background:#f1f1f1}.admin__page-nav._collapsed._show ._collapsible:after{content:'\e62b'}.admin__page-nav._collapsed._show ._collapsible+.admin__page-nav-items{display:block}.admin__page-nav._collapsed._hide .admin__page-nav-title-messages,.admin__page-nav._collapsed._hide .admin__page-nav-title-messages ._active{display:inline-block}.admin__page-nav+._collapsed{border-bottom:none;border-top:none}.admin__page-nav-title{border-bottom:1px solid #e3e3e3;color:#303030;display:block;font-size:1.4rem;line-height:1.2;margin:0 0 -1px;padding:1.8rem 1.5rem;position:relative;text-transform:uppercase}.admin__page-nav-title._collapsible{background:#fff;cursor:pointer;margin:0;padding-right:3.5rem;transition:border-color .1s ease-out,background-color .1s ease-out}.admin__page-nav-title._collapsible+.admin__page-nav-items{display:none;margin-top:-1px}.admin__page-nav-title._collapsible:after{content:'\e628';font-size:1.3rem;font-weight:700;position:absolute;right:1.8rem;top:2rem}.admin__page-nav-title._collapsible:hover{background:#f1f1f1}.admin__page-nav-title._collapsible:last-child{margin:0 0 -1px}.admin__page-nav-title strong{font-weight:700}.admin__page-nav-title .admin__page-nav-title-messages{display:none}.admin__page-nav-items{list-style-type:none;margin:0;padding:1rem 0 1.3rem}.admin__page-nav-item{border-left:3px solid transparent;margin-left:.7rem;padding:0;position:relative;transition:border-color .1s ease-out,background-color .1s ease-out}.admin__page-nav-item:hover{border-color:#e4e4e4}.admin__page-nav-item:hover .admin__page-nav-link{background:#e4e4e4;color:#303030;text-decoration:none}.admin__page-nav-item._active,.admin__page-nav-item.ui-state-active{border-color:#eb5202}.admin__page-nav-item._active .admin__page-nav-link,.admin__page-nav-item.ui-state-active .admin__page-nav-link{background:#fff;border-color:#e3e3e3;border-right:1px solid #fff;color:#303030;margin-right:-1px;font-weight:600}.admin__page-nav-item._loading:before,.admin__page-nav-item.ui-tabs-loading:before{display:none}.admin__page-nav-item._loading .admin__page-nav-item-message-loader,.admin__page-nav-item.ui-tabs-loading .admin__page-nav-item-message-loader{display:inline-block}.admin__page-nav-link{border:1px solid transparent;border-width:1px 0;color:#303030;display:block;font-weight:500;line-height:1.2;margin:0 0 -1px;padding:2rem 4rem 2rem 1rem;transition:border-color .1s ease-out,background-color .1s ease-out;word-wrap:break-word}.admin__page-nav-item-messages,.admin__page-nav-link._changed .admin__page-nav-item-message._changed,.admin__page-nav-link._error .admin__page-nav-item-message._error{display:inline-block}.admin__page-nav-item-messages .admin__page-nav-item-message{position:relative}.admin__page-nav-item-messages .admin__page-nav-item-message:hover{z-index:500}.admin__page-nav-item-messages .admin__page-nav-item-message:hover .admin__page-nav-item-message-tooltip{display:block}.admin__page-nav-item-messages .admin__page-nav-item-message._changed,.admin__page-nav-item-messages .admin__page-nav-item-message._error{display:none}.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon{display:inline-block;font-size:1.4rem;padding-left:.8em;vertical-align:top}.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon:after,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon:after{color:#666;content:'\e631'}.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon:after{color:#eb5202;content:'\e623'}.admin__page-nav-item-messages .admin__page-nav-item-message-loader{display:none;margin-top:-1rem;position:absolute;right:0;top:50%}.admin__page-nav-item-messages .admin__page-nav-item-message-loader .spinner{font-size:2rem;margin-right:1.5rem}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip{background:#f1f1f1;border:1px solid #f1f1f1;border-radius:1px;bottom:3.7rem;box-shadow:0 3px 9px 0 rgba(0,0,0,.3);display:none;font-weight:400;left:-1rem;line-height:1.36;padding:2rem;position:absolute;text-transform:none;width:27rem;word-break:normal;z-index:2}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:after,.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:before{border:15px solid transparent;height:0;width:0;border-top-color:#f1f1f1;content:'';display:block;left:2rem;position:absolute;top:100%;z-index:3}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:after{border-top-color:#f1f1f1;margin-top:-1px;z-index:4}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:before{border-top-color:#bfbfbf}.admin__data-grid-wrap-static .data-grid{box-sizing:border-box}.admin__data-grid-wrap-static .data-grid thead{color:#333}.admin__data-grid-wrap-static .data-grid tr:nth-child(even) td{background-color:#f5f5f5}.admin__data-grid-wrap-static .data-grid tr:nth-child(even) td._dragging{background-color:rgba(245,245,245,.95)}.admin__data-grid-wrap-static .data-grid ul{padding-left:1rem;margin-left:1rem}.admin__data-grid-wrap-static .admin__data-grid-loading-mask{background:rgba(255,255,255,.5);bottom:0;left:0;position:absolute;right:0;top:0;z-index:401}.admin__data-grid-wrap-static .admin__data-grid-loading-mask .grid-loader{background:url(../images/loader-2.gif) 50% 50% no-repeat;bottom:0;height:149px;left:0;margin:auto;position:absolute;right:0;top:0;width:218px}.data-grid-filters-actions-wrap{float:right}.data-grid-search-control-wrap{float:left;max-width:45.5rem;position:relative;width:50%}.data-grid-search-control-wrap :-ms-input-placeholder{font-style:italic}.data-grid-search-control-wrap ::-webkit-input-placeholder{font-style:italic}.data-grid-search-control-wrap ::-moz-placeholder{font-style:italic}.data-grid-search-control-wrap .action-submit{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;padding:.6rem 2rem .2rem;position:absolute;right:0;top:1px}.data-grid-search-control-wrap .action-submit:hover{background-color:transparent;border:none;box-shadow:none}.data-grid-search-control-wrap .action-submit:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.data-grid-search-control-wrap .action-submit:hover:before{color:#1a1a1a}._keyfocus .data-grid-search-control-wrap .action-submit:focus{box-shadow:0 0 0 1px #008bdb}.data-grid-search-control-wrap .action-submit:before{content:'\e60c';font-size:2rem;transition:color .1s linear}.data-grid-search-control-wrap .action-submit>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.data-grid-search-control-wrap .abs-action-menu .action-submenu,.data-grid-search-control-wrap .abs-action-menu .action-submenu .action-submenu,.data-grid-search-control-wrap .action-menu,.data-grid-search-control-wrap .action-menu .action-submenu,.data-grid-search-control-wrap .actions-split .action-menu .action-submenu,.data-grid-search-control-wrap .actions-split .action-menu .action-submenu .action-submenu,.data-grid-search-control-wrap .actions-split .dropdown-menu .action-submenu,.data-grid-search-control-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{z-index:400;max-height:19.25rem;overflow-y:auto}.data-grid-search-control-wrap .action-menu-item._selected{background-color:#e0f6fe}.data-grid-search-control-wrap .data-grid-search-label{display:none}.data-grid-search-control{padding-right:6rem;width:100%}.data-grid-filters-action-wrap{float:left;padding-left:2rem}.data-grid-filters-action-wrap .action-default{font-size:1.3rem;margin-bottom:1rem;padding-left:1.7rem;padding-right:2.1rem;padding-top:.7rem}.data-grid-filters-action-wrap .action-default._active{background-color:#fff;border-bottom-color:#fff;border-right-color:#ccc;font-weight:600;margin:-.1rem 0 0;padding-bottom:1.6rem;padding-top:.8rem;position:relative;z-index:281}.data-grid-filters-action-wrap .action-default._active:after{background-color:#eb5202;bottom:100%;content:'';height:3px;left:-1px;position:absolute;right:-1px}.data-grid-filters-action-wrap .action-default:before{color:#333;content:'\e605';font-size:1.8rem;margin-right:.4rem;position:relative;top:-1px;vertical-align:top}.data-grid-filters-action-wrap .filters-active{display:none}.admin__data-grid-filters-wrap{opacity:0;visibility:hidden;clear:both;font-size:1.3rem;transition:opacity .3s ease}.admin__data-grid-filters-wrap._show{opacity:1;visibility:visible;border-bottom:1px solid #ccc;border-top:1px solid #ccc;margin-bottom:.7rem;padding:3.6rem 0 3rem;position:relative;top:-1px;z-index:280}.admin__data-grid-filters-wrap._show .admin__data-grid-filters,.admin__data-grid-filters-wrap._show .admin__data-grid-filters-footer{display:block}.admin__data-grid-filters-wrap .admin__form-field-label,.admin__data-grid-filters-wrap .admin__form-field-legend{display:block;font-weight:700;margin:0 0 .3rem;text-align:left}.admin__data-grid-filters-wrap .admin__form-field{display:inline-block;margin-bottom:2em;margin-left:0;padding-left:2rem;padding-right:2rem;vertical-align:top;width:calc(100% / 4 - 4px)}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field{display:block;float:none;margin-bottom:1.5rem;padding-left:0;padding-right:0;width:auto}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field:last-child{margin-bottom:0}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field .admin__form-field-label{border:1px solid transparent;float:left;font-weight:400;line-height:1.36;margin-bottom:0;padding-bottom:.6rem;padding-right:1em;padding-top:.6rem;width:25%}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field .admin__form-field-control{margin-left:25%}.admin__data-grid-filters-wrap .admin__action-multiselect,.admin__data-grid-filters-wrap .admin__control-select,.admin__data-grid-filters-wrap .admin__control-text,.admin__data-grid-filters-wrap .admin__form-field-label{font-size:1.3rem}.admin__data-grid-filters-wrap .admin__control-select{padding-top:.5rem;height:3.2rem}.admin__data-grid-filters-wrap .admin__control-select,.admin__data-grid-filters-wrap .admin__control-text.hasDatepicker{width:100%}.admin__data-grid-filters{display:none;margin-left:-2rem;margin-right:-2rem}.admin__filters-legend{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.admin__data-grid-filters-footer{display:none;font-size:1.4rem}.admin__data-grid-filters-footer .admin__footer-main-actions{margin-left:25%;text-align:right}.admin__data-grid-filters-footer .admin__footer-secondary-actions{float:left;width:50%}.admin__data-grid-filters-current{border-bottom:.1rem solid #ccc;border-top:.1rem solid #ccc;display:none;font-size:1.3rem;margin-bottom:.9rem;padding-bottom:.8rem;padding-top:1.1rem;width:100%}.admin__data-grid-filters-current._show{display:table;position:relative;top:-1px;z-index:3}.admin__data-grid-filters-current._show+.admin__data-grid-filters-wrap._show{margin-top:-1rem}.admin__current-filters-actions-wrap,.admin__current-filters-list-wrap,.admin__current-filters-title-wrap{display:table-cell;vertical-align:top}.admin__current-filters-title{margin-right:1em;white-space:nowrap}.admin__current-filters-list-wrap{width:100%}.admin__current-filters-list{margin-bottom:0}.admin__current-filters-list>li{display:inline-block;font-weight:600;margin:0 1rem .5rem;padding-right:2.6rem;position:relative}.admin__current-filters-list .action-remove{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;padding:0;line-height:1;position:absolute;right:0;top:1px}.admin__current-filters-list .action-remove:hover{background-color:transparent;border:none;box-shadow:none}.admin__current-filters-list .action-remove:hover:before{color:#949494}.admin__current-filters-list .action-remove:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.admin__current-filters-list .action-remove:before{color:#adadad;content:'\e620';font-size:1.6rem;transition:color .1s linear}.admin__current-filters-list .action-remove>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.admin__current-filters-actions-wrap .action-clear{border:none;padding-bottom:0;padding-top:0;white-space:nowrap}.admin__data-grid-pager-wrap{text-align:right}.admin__data-grid-pager{display:inline-block;margin-left:3rem}.admin__data-grid-pager .admin__control-text::-webkit-inner-spin-button,.admin__data-grid-pager .admin__control-text::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.admin__data-grid-pager .admin__control-text{-moz-appearance:textfield;text-align:center;width:4.4rem}.action-next,.action-previous{width:4.4rem}.action-next:before,.action-previous:before{font-weight:700}.action-next>span,.action-previous>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.action-previous{margin-right:2.5rem;text-indent:-.25em}.action-previous:before{content:'\e629'}.action-next{margin-left:1.5rem;text-indent:.1em}.action-next:before{content:'\e62a'}.admin__data-grid-action-bookmarks{opacity:.98}.admin__data-grid-action-bookmarks .admin__action-dropdown-text:after{right:-6px;left:0}.admin__data-grid-action-bookmarks._active{z-index:290}.admin__data-grid-action-bookmarks .admin__action-dropdown .admin__action-dropdown-text{display:inline-block;max-width:15rem;min-width:4.9rem;vertical-align:top;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin__data-grid-action-bookmarks .admin__action-dropdown:before{content:'\e60f'}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu{font-size:1.3rem;left:0;padding:1rem 0;right:auto}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu>li{padding:0 5rem 0 0;position:relative;white-space:nowrap}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu>li:not(.action-dropdown-menu-action){transition:background-color .1s linear}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu>li:not(.action-dropdown-menu-action):hover{background-color:#e3e3e3}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item{max-width:23rem;min-width:18rem;white-space:normal;word-break:break-all}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-edit{display:none;padding-bottom:1rem;padding-left:1rem;padding-top:1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-edit .action-dropdown-menu-item-actions{padding-bottom:1rem;padding-top:1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action{padding-left:1rem;padding-top:1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action+.action-dropdown-menu-item-last{padding-top:.5rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action>a{color:#008bdb;text-decoration:none;display:inline-block;padding-left:1.1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action>a:hover{color:#0fa7ff;text-decoration:underline}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-last{padding-bottom:0}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu ._edit .action-dropdown-menu-item{display:none}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu ._edit .action-dropdown-menu-item-edit{display:block}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu ._active .action-dropdown-menu-link{font-weight:600}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .admin__control-text{font-size:1.3rem;min-width:15rem;width:calc(100% - 4rem)}.ie9 .admin__data-grid-action-bookmarks .admin__action-dropdown-menu .admin__control-text{width:15rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-actions{border-left:1px solid #fff;bottom:0;position:absolute;right:0;top:0;width:5rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-link{color:#333;display:block;text-decoration:none;padding:1rem 1rem 1rem 2.1rem}.admin__data-grid-action-bookmarks .action-delete,.admin__data-grid-action-bookmarks .action-edit,.admin__data-grid-action-bookmarks .action-submit{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;vertical-align:top}.admin__data-grid-action-bookmarks .action-delete:hover,.admin__data-grid-action-bookmarks .action-edit:hover,.admin__data-grid-action-bookmarks .action-submit:hover{background-color:transparent;border:none;box-shadow:none}.admin__data-grid-action-bookmarks .action-delete:before,.admin__data-grid-action-bookmarks .action-edit:before,.admin__data-grid-action-bookmarks .action-submit:before{font-size:1.7rem}.admin__data-grid-action-bookmarks .action-delete>span,.admin__data-grid-action-bookmarks .action-edit>span,.admin__data-grid-action-bookmarks .action-submit>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.admin__data-grid-action-bookmarks .action-delete,.admin__data-grid-action-bookmarks .action-edit{padding:.6rem 1.4rem}.admin__data-grid-action-bookmarks .action-delete:active,.admin__data-grid-action-bookmarks .action-edit:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.admin__data-grid-action-bookmarks .action-submit{padding:.6rem 1rem .6rem .8rem}.admin__data-grid-action-bookmarks .action-submit:active{position:relative;right:-1px}.admin__data-grid-action-bookmarks .action-submit:before{content:'\e625'}.admin__data-grid-action-bookmarks .action-delete:before{content:'\e630'}.admin__data-grid-action-bookmarks .action-edit{padding-top:.8rem}.admin__data-grid-action-bookmarks .action-edit:before{content:'\e631'}.admin__data-grid-action-columns._active{opacity:.98;z-index:290}.admin__data-grid-action-columns .admin__action-dropdown:before{content:'\e60e';font-size:1.8rem;margin-right:.7rem;vertical-align:top}.admin__data-grid-action-columns-menu{color:#303030;font-size:1.3rem;overflow:hidden;padding:2.2rem 3.5rem 1rem;z-index:1}.admin__data-grid-action-columns-menu._overflow .admin__action-dropdown-menu-header{border-bottom:1px solid #d1d1d1}.admin__data-grid-action-columns-menu._overflow .admin__action-dropdown-menu-content{width:49.2rem}.admin__data-grid-action-columns-menu._overflow .admin__action-dropdown-menu-footer{border-top:1px solid #d1d1d1;padding-top:2.5rem}.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content{max-height:22.85rem;overflow-y:auto;padding-top:1.5rem;position:relative;width:47.4rem}.admin__data-grid-action-columns-menu .admin__field-option{height:1.9rem;float:left;margin-bottom:1.5rem;padding:0 1rem 0 0;width:15.8rem}.admin__data-grid-action-columns-menu .admin__field-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-header{padding-bottom:1.5rem}.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-footer{padding:1rem 0 2rem}.admin__data-grid-action-columns-menu .admin__action-dropdown-footer-main-actions{margin-left:25%;text-align:right}.admin__data-grid-action-columns-menu .admin__action-dropdown-footer-secondary-actions{float:left;margin-left:-1em}.admin__data-grid-action-export._active{opacity:.98;z-index:290}.admin__data-grid-action-export .admin__action-dropdown:before{content:'\e635';font-size:1.7rem;left:.3rem;margin-right:.7rem;vertical-align:top}.admin__data-grid-action-export-menu{padding-left:2rem;padding-right:2rem;padding-top:1rem}.admin__data-grid-action-export-menu .admin__action-dropdown-footer-main-actions{padding-bottom:2rem;padding-top:2.5rem;white-space:nowrap}.sticky-header{background-color:#f8f8f8;border-bottom:1px solid #e3e3e3;box-shadow:0 5px 5px 0 rgba(0,0,0,.25);left:8.8rem;right:0;margin-top:-1px;padding:.5rem 3rem 0;position:fixed;top:77px;z-index:400}.sticky-header .admin__data-grid-wrap{margin-bottom:0;overflow-x:visible;padding-bottom:0}.sticky-header .admin__data-grid-header-row{position:relative;text-align:right}.sticky-header .admin__data-grid-header-row:last-child{margin:0}.sticky-header .admin__data-grid-actions-wrap,.sticky-header .admin__data-grid-filters-wrap,.sticky-header .admin__data-grid-pager-wrap,.sticky-header .data-grid-filters-actions-wrap,.sticky-header .data-grid-search-control-wrap{display:inline-block;float:none;vertical-align:top}.sticky-header .action-select-wrap{float:left;margin-right:1.5rem;width:16.66666667%}.sticky-header .admin__control-support-text{float:left}.sticky-header .data-grid-search-control-wrap{margin:-.5rem 0 0 1.1rem;width:auto}.sticky-header .data-grid-search-control-wrap .data-grid-search-label{box-sizing:border-box;cursor:pointer;display:block;min-width:3.8rem;padding:1.2rem .6rem 1.7rem;position:relative;text-align:center}.sticky-header .data-grid-search-control-wrap .data-grid-search-label:before{color:#333;content:'\e60c';font-size:2rem;transition:color .1s linear}.sticky-header .data-grid-search-control-wrap .data-grid-search-label:hover:before{color:#000}.sticky-header .data-grid-search-control-wrap .data-grid-search-label span{display:none}.sticky-header .data-grid-filters-actions-wrap{margin:-.5rem 0 0 1.1rem;padding-left:0;position:relative}.sticky-header .data-grid-filters-actions-wrap .action-default{background-color:transparent;border:1px solid transparent;box-sizing:border-box;min-width:3.8rem;padding:1.2rem .6rem 1.7rem;text-align:center;transition:all .15s ease}.sticky-header .data-grid-filters-actions-wrap .action-default span{display:none}.sticky-header .data-grid-filters-actions-wrap .action-default:before{margin:0}.sticky-header .data-grid-filters-actions-wrap .action-default._active{background-color:#fff;border-color:#adadad #adadad #fff;box-shadow:1px 1px 5px rgba(0,0,0,.5);z-index:210}.sticky-header .data-grid-filters-actions-wrap .action-default._active:after{background-color:#fff;content:'';height:6px;left:-2px;position:absolute;right:-6px;top:100%}.sticky-header .data-grid-filters-action-wrap{padding:0}.sticky-header .admin__data-grid-filters-wrap{background-color:#fff;border:1px solid #adadad;box-shadow:0 5px 5px 0 rgba(0,0,0,.25);left:0;padding-left:3.5rem;padding-right:3.5rem;position:absolute;top:100%;width:100%;z-index:209}.sticky-header .admin__data-grid-filters-current+.admin__data-grid-filters-wrap._show{margin-top:-6px}.sticky-header .filters-active{background-color:#e04f00;border-radius:10px;color:#fff;display:block;font-size:1.4rem;font-weight:700;padding:.1rem .7rem;position:absolute;right:-7px;top:0;z-index:211}.sticky-header .filters-active:empty{padding-top:0;padding-bottom:0}.sticky-header .admin__data-grid-actions-wrap{margin:-.5rem 0 0 1.1rem;padding-right:.3rem}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown{background-color:transparent;box-sizing:border-box;min-width:3.8rem;padding-left:.6rem;padding-right:.6rem;text-align:center}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown .admin__action-dropdown-text{display:inline-block;min-width:0;max-width:0;overflow:hidden}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown:before{margin:0}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown-wrap{margin-right:1.1rem}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown-wrap:after,.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown:after{display:none}.sticky-header .admin__data-grid-actions-wrap ._active .admin__action-dropdown{background-color:#fff}.sticky-header .admin__data-grid-action-bookmarks .admin__action-dropdown:before{position:relative;top:-3px}.sticky-header .admin__data-grid-filters-current{border-top:0;border-bottom:0;margin-bottom:0;padding-bottom:0;padding-top:0}.sticky-header .admin__data-grid-pager .admin__control-text,.sticky-header .admin__data-grid-pager-wrap .admin__control-support-text,.sticky-header .data-grid-search-control-wrap .action-submit,.sticky-header .data-grid-search-control-wrap .data-grid-search-control{display:none}.sticky-header .action-next{margin:0}.sticky-header .data-grid{margin-bottom:-1px}.data-grid-cap-left,.data-grid-cap-right{background-color:#f8f8f8;bottom:-2px;position:absolute;top:6rem;width:3rem;z-index:201}.data-grid-cap-left{left:0}.data-grid-cap-right{right:0}.admin__data-grid-header{font-size:1.4rem}.admin__data-grid-header-row+.admin__data-grid-header-row{margin-top:1.1rem}.admin__data-grid-header-row:last-child{margin-bottom:0}.admin__data-grid-header-row .action-select-wrap{display:block}.admin__data-grid-header-row .action-select{width:100%}.admin__data-grid-actions-wrap{float:right;margin-left:1.1rem;margin-top:-.5rem;text-align:right}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap{position:relative;text-align:left}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active+.admin__action-dropdown-wrap:after,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active:after,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._hide+.admin__action-dropdown-wrap:after,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap:first-child:after{display:none}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active .admin__action-dropdown,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active .admin__action-dropdown-menu{border-color:#adadad}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap:after{border-left:1px solid #ccc;content:'';height:3.2rem;left:0;position:absolute;top:.5rem;z-index:3}.admin__data-grid-actions-wrap .admin__action-dropdown{padding-bottom:1.7rem;padding-top:1.2rem}.admin__data-grid-actions-wrap .admin__action-dropdown:after{margin-top:-.4rem}.admin__data-grid-outer-wrap{min-height:8rem;position:relative}.admin__data-grid-wrap{margin-bottom:2rem;max-width:100%;overflow-x:auto;padding-bottom:1rem;padding-top:2rem}.admin__data-grid-loading-mask{background:rgba(255,255,255,.5);bottom:0;left:-3rem;position:absolute;right:-3rem;top:0;z-index:401}.admin__data-grid-loading-mask .spinner{font-size:4rem;left:50%;margin-left:-2rem;margin-top:-2rem;position:absolute;top:50%}.ie9 .admin__data-grid-loading-mask .spinner{background:url(../images/loader-2.gif) 50% 50% no-repeat;bottom:0;height:149px;left:0;margin:auto;position:absolute;right:0;top:0;width:218px}.data-grid-cell-content{overflow:hidden;width:100%;display:inline-block}body._in-resize{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:col-resize}body._in-resize *,body._in-resize .data-grid-th,body._in-resize .data-grid-th._draggable,body._in-resize .data-grid-th._sortable{cursor:col-resize!important}._layout-fixed{table-layout:fixed}.data-grid{border:none;font-size:1.3rem;margin-bottom:0;max-width:100%;width:100%}.data-grid:not(._dragging-copy) ._odd-row td._dragging{background-color:#d0d0d0}.data-grid:not(._dragging-copy) ._dragging{background-color:#d9d9d9;color:rgba(48,48,48,.95)}.data-grid:not(._dragging-copy) ._dragging a{color:rgba(0,139,219,.95)}.data-grid:not(._dragging-copy) ._dragging a:hover{color:rgba(15,167,255,.95)}.data-grid thead{background-color:transparent}.data-grid tfoot th{padding:1rem}.data-grid tr._odd-row td{background-color:#f5f5f5}.data-grid tr.data-grid-tr-no-data:hover td{background-color:#fff;cursor:default}.data-grid tr:active td{background-color:#e0f6fe}.data-grid tr:hover td{background-color:#e5f7fe}.data-grid tr:not(.data-grid-editable-row):last-child td{border-bottom:.1rem solid #d6d6d6}.data-grid tr ._clickable,.data-grid tr._clickable{cursor:pointer}.data-grid td,.data-grid th{font-size:1.3rem;line-height:1.36;transition:background-color .1s linear;vertical-align:top}.data-grid td._resizing,.data-grid th._resizing{border-left:1px solid #007bdb;border-right:1px solid #007bdb}.data-grid td{background-color:#fff;border-left:.1rem dashed #d6d6d6;border-right:.1rem dashed #d6d6d6;color:#303030;padding:1rem}.data-grid td:first-child{border-left-style:solid}.data-grid td:last-child{border-right-style:solid}.data-grid td .action-select-wrap{position:static}.data-grid td .action-select{background-color:transparent;border:none;font-size:1.3rem;position:relative;color:#008bdb;text-decoration:none;padding:0 3rem 0 0}.data-grid td .action-select:hover{color:#0fa7ff;text-decoration:underline}.data-grid td .action-select:hover:after{border-color:#0fa7ff transparent transparent}.data-grid td .action-select:after{border-color:#008bdb transparent transparent;margin:.6rem 0 0 .7rem;right:auto;top:auto}.data-grid td .action-select:before{display:none}.data-grid td .abs-action-menu .action-submenu,.data-grid td .abs-action-menu .action-submenu .action-submenu,.data-grid td .action-menu,.data-grid td .action-menu .action-submenu,.data-grid td .actions-split .action-menu .action-submenu,.data-grid td .actions-split .action-menu .action-submenu .action-submenu,.data-grid td .actions-split .dropdown-menu .action-submenu,.data-grid td .actions-split .dropdown-menu .action-submenu .action-submenu{left:auto;min-width:10rem;right:0;text-align:left;top:auto;z-index:1}.data-grid th{background-color:#514943;border:.1rem solid #8a837f;border-left-color:transparent;color:#fff;font-weight:600;padding:0;text-align:left}.data-grid th:first-child{border-left-color:#8a837f}.data-grid th._dragover-left{box-shadow:inset 3px 0 0 0 #fff;z-index:2}.data-grid th._dragover-right{box-shadow:inset -3px 0 0 0 #fff}.data-grid .shadow-div{cursor:col-resize;height:100%;margin-right:-5px;position:absolute;right:0;top:0;width:10px}.data-grid .data-grid-th{background-clip:padding-box;color:#fff;padding:1rem;position:relative;vertical-align:middle}.data-grid .data-grid-th._resize-visible .shadow-div{cursor:auto;display:none}.data-grid .data-grid-th._draggable{cursor:-webkit-grab;cursor:grab}.data-grid .data-grid-th._sortable{cursor:pointer;transition:background-color .1s linear;z-index:1}.data-grid .data-grid-th._sortable:focus,.data-grid .data-grid-th._sortable:hover{background-color:#5f564f}.data-grid .data-grid-th._sortable:active{padding-bottom:.9rem;padding-top:1.1rem}.data-grid .data-grid-th.required>span:after{color:#f38a5e;content:'*';margin-left:.3rem}.data-grid .data-grid-checkbox-cell{padding:0;vertical-align:top;width:5.2rem}.data-grid .data-grid-checkbox-cell:hover{cursor:default}.data-grid .data-grid-thumbnail-cell{text-align:center;width:7rem}.data-grid .data-grid-thumbnail-cell img{border:1px solid #d6d6d6;max-width:5rem}.data-grid .data-grid-multicheck-cell{padding:1rem 1rem .9rem;text-align:center;vertical-align:middle}.data-grid .data-grid-actions-cell{padding-left:2rem;padding-right:2rem;text-align:center;width:1%}.data-grid._hidden{display:none}.data-grid._dragging-copy{box-shadow:1px 1px 5px rgba(0,0,0,.5);left:0;opacity:.95;position:fixed;top:0;z-index:1000}.data-grid._dragging-copy .data-grid-th{border:1px solid #007bdb;border-bottom:none}.data-grid._dragging-copy .data-grid-th,.data-grid._dragging-copy .data-grid-th._sortable{cursor:-webkit-grabbing;cursor:grabbing}.data-grid._dragging-copy tr:last-child td{border-bottom:1px solid #007bdb}.data-grid._dragging-copy td{border-left:1px solid #007bdb;border-right:1px solid #007bdb}.data-grid._dragging-copy._in-edit .data-grid-editable-row.data-grid-bulk-edit-panel td,.data-grid._dragging-copy._in-edit .data-grid-editable-row.data-grid-bulk-edit-panel td:before,.data-grid._dragging-copy._in-edit .data-grid-editable-row.data-grid-bulk-edit-panel:hover td{background-color:rgba(255,251,230,.95)}.data-grid._dragging-copy._in-edit .data-grid-editable-row td,.data-grid._dragging-copy._in-edit .data-grid-editable-row:hover td{background-color:rgba(255,255,255,.95)}.data-grid._dragging-copy._in-edit .data-grid-editable-row td:after,.data-grid._dragging-copy._in-edit .data-grid-editable-row td:before{left:0;right:0}.data-grid._dragging-copy._in-edit .data-grid-editable-row td:before{background-color:rgba(255,255,255,.95)}.data-grid._dragging-copy._in-edit .data-grid-editable-row td:only-child{border-left:1px solid #007bdb;border-right:1px solid #007bdb;left:0}.data-grid._dragging-copy._in-edit .data-grid-editable-row .admin__control-select,.data-grid._dragging-copy._in-edit .data-grid-editable-row .admin__control-text{opacity:.5}.data-grid._in-edit tr:hover td{background-color:#e6e6e6}.data-grid._in-edit ._odd-row.data-grid-editable-row td,.data-grid._in-edit ._odd-row.data-grid-editable-row:hover td{background-color:#fff}.data-grid._in-edit ._odd-row td,.data-grid._in-edit ._odd-row:hover td{background-color:#dcdcdc}.data-grid._in-edit .data-grid-editable-row-actions td,.data-grid._in-edit .data-grid-editable-row-actions:hover td{background-color:#fff}.data-grid._in-edit td{background-color:#e6e6e6;pointer-events:none}.data-grid._in-edit .data-grid-checkbox-cell{pointer-events:auto}.data-grid._in-edit .data-grid-editable-row{border:.1rem solid #adadad;border-bottom-color:#c2c2c2}.data-grid._in-edit .data-grid-editable-row:hover td{background-color:#fff}.data-grid._in-edit .data-grid-editable-row td{background-color:#fff;border-bottom-color:#fff;border-left-style:hidden;border-right-style:hidden;border-top-color:#fff;pointer-events:auto;vertical-align:middle}.data-grid._in-edit .data-grid-editable-row td:first-child{border-left-color:#adadad;border-left-style:solid}.data-grid._in-edit .data-grid-editable-row td:first-child:after,.data-grid._in-edit .data-grid-editable-row td:first-child:before{left:0}.data-grid._in-edit .data-grid-editable-row td:last-child{border-right-color:#adadad;border-right-style:solid;left:-.1rem}.data-grid._in-edit .data-grid-editable-row td:last-child:after,.data-grid._in-edit .data-grid-editable-row td:last-child:before{right:0}.data-grid._in-edit .data-grid-editable-row .admin__control-select,.data-grid._in-edit .data-grid-editable-row .admin__control-text{width:100%}.data-grid._in-edit .data-grid-bulk-edit-panel td{vertical-align:bottom}.data-grid .data-grid-editable-row td{border-left-color:#fff;border-left-style:solid;position:relative;z-index:1}.data-grid .data-grid-editable-row td:after{bottom:0;box-shadow:0 5px 5px rgba(0,0,0,.25);content:'';height:.9rem;left:0;margin-top:-1rem;position:absolute;right:0}.data-grid .data-grid-editable-row td:before{background-color:#fff;bottom:0;content:'';height:1rem;left:-10px;position:absolute;right:-10px;z-index:1}.data-grid .data-grid-editable-row.data-grid-editable-row-actions td,.data-grid .data-grid-editable-row.data-grid-editable-row-actions:hover td{background-color:#fff}.data-grid .data-grid-editable-row.data-grid-editable-row-actions td:first-child{border-left-color:#fff;border-right-color:#fff}.data-grid .data-grid-editable-row.data-grid-editable-row-actions td:last-child{left:0}.data-grid .data-grid-editable-row.data-grid-bulk-edit-panel td,.data-grid .data-grid-editable-row.data-grid-bulk-edit-panel td:before,.data-grid .data-grid-editable-row.data-grid-bulk-edit-panel:hover td{background-color:#fffbe6}.data-grid .data-grid-editable-row-actions{left:50%;margin-left:-12.5rem;margin-top:-2px;position:absolute;text-align:center}.data-grid .data-grid-editable-row-actions td{width:25rem}.data-grid .data-grid-editable-row-actions [class*=action-]{min-width:9rem}.data-grid-th._sortable._ascend,.data-grid-th._sortable._descend{padding-right:2.7rem}.data-grid-th._sortable._ascend:before,.data-grid-th._sortable._descend:before{margin-top:-1em;position:absolute;right:1rem;top:50%}.data-grid-th._sortable._ascend:before{content:'\2193'}.data-grid-th._sortable._descend:before{content:'\2191'}.data-grid-checkbox-cell-inner{display:block;padding:1.1rem 1.8rem .9rem;text-align:right}.data-grid-checkbox-cell-inner:hover{cursor:pointer}.data-grid-row-parent._active>td .data-grid-checkbox-cell-inner:before{content:'\e62b'}.data-grid-row-parent>td .data-grid-checkbox-cell-inner{padding-left:3.7rem;position:relative}.data-grid-row-parent>td .data-grid-checkbox-cell-inner:before{content:'\e628';font-size:1rem;font-weight:700;left:1.35rem;position:absolute;top:1.6rem}.data-grid-th._col-xs{width:1%}.data-grid-info-panel{box-shadow:0 0 5px rgba(0,0,0,.5);margin:2rem .1rem -2rem;padding:1rem}.data-grid-info-panel .messages{margin-bottom:1rem}.data-grid-info-panel-actions{text-align:right}.data-grid-editable-row .admin__field-control{position:relative}.data-grid-editable-row .admin__field-control._error:after{border-color:transparent #ee7d7d transparent transparent;border-style:solid;border-width:0 12px 12px 0;content:'';position:absolute;right:0;top:0}.data-grid-editable-row .admin__field-control._error .admin__control-text{border-color:#ee7d7d}.data-grid-editable-row .admin__field-control._focus:after{display:none}.data-grid-editable-row .admin__field-error{bottom:100%;box-shadow:1px 1px 5px rgba(0,0,0,.5);left:0;margin:0 auto 1.5rem;max-width:32rem;position:absolute;right:0}.data-grid-editable-row .admin__field-error:after,.data-grid-editable-row .admin__field-error:before{border-style:solid;content:'';left:50%;position:absolute;top:100%}.data-grid-editable-row .admin__field-error:after{border-color:#fffbbb transparent transparent;border-width:10px 10px 0;margin-left:-10px;z-index:1}.data-grid-editable-row .admin__field-error:before{border-color:#ee7d7d transparent transparent;border-width:11px 12px 0;margin-left:-12px}.data-grid-bulk-edit-panel .admin__field-label-vertical{display:block;font-size:1.2rem;margin-bottom:.5rem;text-align:left}.data-grid-row-changed{cursor:default;display:block;opacity:.5;position:relative;width:100%;z-index:1}.data-grid-row-changed:after{content:'\e631';display:inline-block}.data-grid-row-changed .data-grid-row-changed-tooltip{background:#f1f1f1;border-radius:1px;border:1px solid #f1f1f1;bottom:100%;box-shadow:0 3px 9px 0 rgba(0,0,0,.3);display:none;font-weight:400;line-height:1.36;margin-bottom:1.5rem;padding:1rem;position:absolute;right:-1rem;text-transform:none;width:27rem;word-break:normal;z-index:2}.data-grid-row-changed._changed{opacity:1;z-index:3}.data-grid-row-changed._changed:hover .data-grid-row-changed-tooltip{display:block}.data-grid-row-changed._changed:hover:before{background:#f1f1f1;border:1px solid #f1f1f1;bottom:100%;box-shadow:4px 4px 3px -1px rgba(0,0,0,.15);content:'';display:block;height:1.6rem;left:50%;margin:0 0 .7rem -.8rem;position:absolute;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:1.6rem;z-index:3}.ie9 .data-grid-row-changed._changed:hover:before{display:none}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]:before,.admin__control-file-label :before,.admin__control-multiselect,.admin__control-select,.admin__control-text,.admin__control-textarea,.selectmenu{background-color:#fff;border-radius:1px;border:1px solid #adadad;color:#303030;font-size:1.4rem;font-weight:400;line-height:1.36;height:auto;width:auto;padding:.6rem 1rem;transition:border-color .1s linear;vertical-align:baseline}.admin__control-multiselect:hover,.admin__control-select:hover,.admin__control-text:hover,.admin__control-textarea:hover,.selectmenu:hover,.selectmenu:hover .selectmenu-toggle:before{border-color:#878787}.admin__control-addon [class*=admin__control-][type]:focus+[class*=admin__addon-]:before,.admin__control-file:active+.admin__control-file-label :before,.admin__control-file:focus+.admin__control-file-label :before,.admin__control-multiselect:focus,.admin__control-select:focus,.admin__control-text:focus,.admin__control-textarea:focus,.selectmenu._focus,.selectmenu._focus .selectmenu-toggle:before{border-color:#007bdb;box-shadow:none;outline:0}.admin__control-addon [class*=admin__control-][type][disabled]+[class*=admin__addon-]:before,.admin__control-file[disabled]+.admin__control-file-label :before,.admin__control-multiselect[disabled],.admin__control-select[disabled],.admin__control-text[disabled],.admin__control-textarea[disabled]{background-color:#e9e9e9;border-color:#adadad;color:#303030;opacity:.5;cursor:not-allowed}.admin__fieldset>.admin__field.admin__field-wide[class]>.admin__field-control{float:none;clear:left;text-align:left;width:auto}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)>.admin__field-label{display:block;line-height:1.4rem;margin-bottom:.86rem;margin-top:-.14rem;text-align:left;width:auto}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)>.admin__field-label:before{display:none}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)._required>.admin__field-label span{padding-left:1.5rem}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)._required>.admin__field-label span:after{left:0;margin-left:30px;top:.2rem}.admin__legend{font-size:1.8rem;font-weight:600;margin-bottom:3rem}.admin__control-checkbox,.admin__control-radio{cursor:pointer;opacity:.01;overflow:hidden;position:absolute;vertical-align:top}.admin__control-checkbox:after,.admin__control-radio:after{display:none}.admin__control-checkbox+label,.admin__control-radio+label{cursor:pointer;display:inline-block}.admin__control-checkbox+label:before,.admin__control-radio+label:before{background-color:#fff;border:1px solid #adadad;color:transparent;float:left;height:1.6rem;text-align:center;vertical-align:top;width:1.6rem}.admin__control-checkbox+.admin__field-label,.admin__control-radio+.admin__field-label{padding-left:2.6rem}.admin__control-checkbox+.admin__field-label:before,.admin__control-radio+.admin__field-label:before{margin:1px 1rem 0 -2.6rem}.admin__control-checkbox:checked+label:before,.admin__control-radio:checked+label:before{color:#514943}.admin__control-checkbox.disabled+label,.admin__control-checkbox[disabled]+label,.admin__control-radio.disabled+label,.admin__control-radio[disabled]+label{cursor:default;color:#303030;opacity:.5}.admin__control-checkbox.disabled+label:before,.admin__control-checkbox[disabled]+label:before,.admin__control-radio.disabled+label:before,.admin__control-radio[disabled]+label:before{background-color:#e9e9e9;border-color:#adadad;cursor:default}._keyfocus .admin__control-checkbox:not(.disabled):focus+label:before,._keyfocus .admin__control-checkbox:not([disabled]):focus+label:before,._keyfocus .admin__control-radio:not(.disabled):focus+label:before,._keyfocus .admin__control-radio:not([disabled]):focus+label:before{border-color:#007bdb}.admin__control-checkbox:not(.disabled):hover+label:before,.admin__control-checkbox:not([disabled]):hover+label:before,.admin__control-radio:not(.disabled):hover+label:before,.admin__control-radio:not([disabled]):hover+label:before{border-color:#878787}.admin__control-radio+label:before{border-radius:1.6rem;content:'\e637';font-size:1rem;transition:border-color .1s linear,color .1s ease-in}.admin__control-radio.admin__control-radio+label:before{line-height:140%}.admin__control-radio:checked:not(.disabled):hover,.admin__control-radio:checked:not(.disabled):hover+label,.admin__control-radio:checked:not([disabled]):hover,.admin__control-radio:checked:not([disabled]):hover+label{cursor:default}.admin__control-radio:checked:not(.disabled):hover+label:before,.admin__control-radio:checked:not([disabled]):hover+label:before{border-color:#adadad}.admin__control-checkbox+label:before{border-radius:1px;content:'';font-size:0;transition:font-size .1s ease-out,color .1s ease-out,border-color .1s linear}.admin__control-checkbox:checked+label:before{content:'\e62d';font-size:1.1rem;line-height:125%}.admin__control-checkbox:not(:checked)._indeterminate+label:before,.admin__control-checkbox:not(:checked):indeterminate+label:before{color:#514943;content:'-';font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700}input[type=checkbox].admin__control-checkbox,input[type=radio].admin__control-checkbox{position:absolute;margin:0}.admin__control-select{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background-repeat:no-repeat;background-image:url(../images/arrows-bg.svg),linear-gradient(#e3e3e3,#e3e3e3),linear-gradient(#adadad,#adadad);background-position:calc(100% - 12px) -34px,100%,calc(100% - 3.2rem) 0;background-size:auto,3.2rem 100%,1px 100%;padding-bottom:.5rem;padding-right:4.4rem;padding-top:.5rem;transition:border-color .1s linear}.admin__control-select:hover{border-color:#878787;cursor:pointer}.admin__control-select:focus{background-image:url(../images/arrows-bg.svg),linear-gradient(#e3e3e3,#e3e3e3),linear-gradient(#007bdb,#007bdb);background-position:calc(100% - 12px) 13px,100%,calc(100% - 3.2rem) 0;border-color:#007bdb}.admin__control-select::-ms-expand{display:none}.ie9 .admin__control-select{background-image:none;padding-right:1rem}option:empty{display:none}.admin__control-multiselect{height:auto;padding:.6rem 1rem}.admin__control-file-wrapper{display:inline-block;padding:.5rem 1rem;position:relative;z-index:1}.admin__control-file-label :before{content:'';left:0;position:absolute;top:0;width:100%;z-index:0}.admin__control-file{position:relative;z-index:1;background:0 0;border:0;width:auto}.admin__control-support-text{border:1px solid transparent;display:inline-block;font-size:1.4rem;line-height:1.36;padding-top:.6rem;padding-bottom:.6rem}.admin__control-support-text+[class*=admin__control-],[class*=admin__control-]+.admin__control-support-text{margin-left:.7rem}.admin__control-textarea{height:8.48rem;line-height:1.18;padding-top:.8rem;resize:vertical}.admin__control-addon{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;display:inline-flex;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;position:relative;width:100%;z-index:1}.admin__control-addon>[class*=admin__addon-],.admin__control-addon>[class*=admin__control-]{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:relative;z-index:1}.admin__control-addon [class*=admin__control-][type]{appearence:none;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;box-shadow:none;background-color:transparent;border-color:transparent;-webkit-order:1;-ms-flex-order:1;order:1;vertical-align:top;width:auto}.admin__control-addon [class*=admin__control-][type] :focus{box-shadow:0}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]{padding-left:1rem;position:static!important;z-index:0}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]>*{position:relative;vertical-align:top;z-index:2}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]:before{bottom:0;box-sizing:border-box;content:'';left:0;position:absolute;top:0;width:100%;z-index:0}.admin__addon-prefix,.admin__addon-suffix{border:0;box-sizing:border-box;color:#858585;display:inline-block;font-size:1.4rem;font-weight:400;height:3.2rem;line-height:3.2rem;padding:0}.admin__addon-suffix{-webkit-order:3;-ms-flex-order:3;order:3}.admin__addon-suffix:last-child{padding-right:1rem}.admin__addon-prefix{-webkit-order:0;-ms-flex-order:0;order:0}.ie9 .admin__control-addon:after{clear:both;content:'';display:block;height:0;overflow:hidden}.ie9 .admin__addon{min-width:0;overflow:hidden;text-align:right;white-space:nowrap;width:auto}.ie9 .admin__addon [class*=admin__control-]{display:inline}.ie9 .admin__addon-prefix{float:left}.ie9 .admin__addon-suffix{float:right}.admin__control-table-wrapper{max-width:100%;overflow-x:auto;overflow-y:hidden}.admin__control-table{width:100%}.admin__control-table thead{background-color:transparent}.admin__control-table tbody td{vertical-align:middle}.admin__control-table tfoot th{padding-bottom:1.3rem}.admin__control-table tr:last-child td,.admin__control-table tr:last-child th{border-bottom:none}.admin__control-table td,.admin__control-table th{background-color:#efefef;border:0;border-bottom:1px solid #fff;padding:1.3rem 2.5rem 1.3rem 0;text-align:left;vertical-align:top}.admin__control-table td:first-child,.admin__control-table th:first-child{padding-left:1.5rem}.admin__control-table th{border:0;vertical-align:bottom;color:#303030;font-size:1.4rem;font-weight:600;padding-bottom:0}.admin__control-table th._required span:after{color:#eb5202;content:'*'}.admin__control-table .control-table-actions-th{white-space:nowrap}.admin__control-table .control-table-actions-cell{padding-top:1.8rem;text-align:center;width:1%}.admin__control-table .col-draggable{padding-top:2.2rem;width:1%}.admin__control-table .action-delete,.admin__control-table .action-delete:hover{background-color:transparent;border-color:transparent;box-shadow:none}.admin__control-table .action-delete:before{content:'\e630'}.admin__control-table .action-delete>span{display:none}.admin__field-tooltip{display:inline-block;margin-top:5px;overflow:visible;vertical-align:top;width:0}.admin__field-tooltip:hover{position:relative;z-index:500}.admin__field-option .admin__field-tooltip{margin-top:10px}.admin__field-tooltip .admin__field-tooltip-action{margin-left:20px;display:inline-block;text-decoration:none}.admin__field-tooltip .admin__field-tooltip-action:before{-webkit-font-smoothing:antialiased;font-size:2.2rem;line-height:1;color:#514943;content:'\e633';font-family:Icons;vertical-align:middle;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.admin__field-tooltip .admin__control-text:focus+.admin__field-tooltip-content,.admin__field-tooltip:hover .admin__field-tooltip-content{display:block}.admin__field-tooltip .admin__field-tooltip-content{bottom:42px;display:none;right:-70px}.admin__field-tooltip .admin__field-tooltip-content:after,.admin__field-tooltip .admin__field-tooltip-content:before{border:16px solid transparent;height:0;width:0;border-top-color:#afadac;content:"";display:block;position:absolute;right:20px;top:100%;z-index:3}.admin__field-tooltip .admin__field-tooltip-content:after{border-top-color:#fffbbb;margin-top:-1px;z-index:4}.abs-admin__field-tooltip-content,.admin__field-tooltip .admin__field-tooltip-content{box-shadow:0 2px 8px 0 rgba(0,0,0,.3);background:#fffbbb;border-radius:1px;border:1px solid #afadac;padding:15px 25px;position:absolute;width:320px;z-index:1}.admin__fieldset{border:0;margin:0;min-width:0;padding:0}.admin__fieldset>.admin__field{border:0;margin:0 0 0 -30px;padding:0}.admin__fieldset>.admin__field:after{clear:both;content:'';display:table}.admin__fieldset>.admin__field>.admin__field-control{width:calc((100%) * .4444444444444444 - 30px);float:left;margin-left:30px}.admin__fieldset>.admin__field>.admin__field-label{width:calc((100%) * .3333333333333333 - 30px);float:left;margin-left:30px}.admin__form-field{border:0;margin:0;padding:0}.admin__field-control .admin__control-text,.admin__field-control .admin__control-textarea,.admin__form-field-control .admin__control-text,.admin__form-field-control .admin__control-textarea{width:100%}.admin__field-label{color:#303030;margin:0;text-align:right}.admin__field-label+br{display:none}.admin__field:not(.admin__field-option)>.admin__field-label{font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:600;line-height:3.2rem;padding:0;white-space:nowrap;word-wrap:break-word}.admin__field:not(.admin__field-option)>.admin__field-label:before{opacity:0;visibility:hidden;content:'.';margin-left:-7px;overflow:hidden}.admin__field:not(.admin__field-option)>.admin__field-label span{display:inline-block;line-height:1.2;vertical-align:middle;white-space:normal}._required>.admin__field-label span:after{color:#eb5202;content:'*';display:inline-block;font-size:1.6rem;font-weight:500;line-height:1;margin-left:10px;position:absolute;top:1.2rem;z-index:1}._disabled>.admin__field-label{color:#999}.admin__field{margin-bottom:0}.admin__field+.admin__field{margin-top:1.5rem}.admin__field:not(.admin__field-option)~.admin__field-option{margin-top:.5rem}.admin__field.admin__field-option~.admin__field-option{margin-top:.9rem}.admin__field~.admin__field-option:last-child{margin-bottom:.8rem}.admin__fieldset>.admin__field{margin-bottom:3rem;position:relative}.admin__field[data-config-scope]:before{color:gray;content:attr(data-config-scope);display:inline-block;font-size:1.2rem;left:calc((100%) * .7777777777777778 - 30px);line-height:3.2rem;margin-left:60px;position:absolute;width:calc((100%) * .2222222222222222 - 30px)}.admin__field-control .admin__field[data-config-scope]:nth-child(n+2):before{content:''}.admin__field._error .admin__field-control [class*=admin__addon-]:before,.admin__field._error .admin__field-control>[class*=admin__control-]{border-color:#e22626}.admin__field-control+.admin__field-control{margin-top:1.5rem}.admin__field-error{background:#fffbbb;border:1px solid #ee7d7d;box-sizing:border-box;color:#555;display:block;font-size:1.2rem;font-weight:400;line-height:1.2;margin:.2rem 0 0;padding:.8rem 1rem .9rem}.admin__field-note{color:#303030;font-size:1.2rem;margin:10px 0 0;padding:0}.admin__field-option{padding-top:.8rem}.admin__field-option .admin__field-label{text-align:left}.admin__field-control>.admin__field-option:nth-child(1):nth-last-child(2),.admin__field-control>.admin__field-option:nth-child(2):nth-last-child(1){display:inline-block}.admin__field-control>.admin__field-option:nth-child(1):nth-last-child(2)+.admin__field-option,.admin__field-control>.admin__field-option:nth-child(2):nth-last-child(1)+.admin__field-option{display:inline-block;margin-left:41px;margin-top:0}.admin__field-control>.admin__field-option:nth-child(1):nth-last-child(2)+.admin__field-option:before,.admin__field-control>.admin__field-option:nth-child(2):nth-last-child(1)+.admin__field-option:before{background:#cacaca;content:'';display:inline-block;height:20px;margin-left:-20px;position:absolute;width:1px}.admin__field-value{padding-top:.8rem}.admin__control-fields>.admin__field:first-child,[class*=admin__control-grouped]>.admin__field:first-child{position:static}.admin__control-fields>.admin__field:first-child>.admin__field-label,[class*=admin__control-grouped]>.admin__field:first-child>.admin__field-label{width:calc((100%) * .3333333333333333 - 30px);float:left;margin-left:30px;cursor:pointer;left:0;opacity:0;position:absolute;top:0}.admin__control-fields .admin__field-label~.admin__field-control{width:100%}[class*=admin__control-grouped]{box-sizing:border-box;display:table;table-layout:fixed;width:100%}[class*=admin__control-grouped]>.admin__field{display:table-cell;vertical-align:top;width:50%}[class*=admin__control-grouped]>.admin__field>.admin__field-control{float:none;width:100%}[class*=admin__control-grouped]>.admin__field:nth-child(n+2){padding-left:20px}[class*=admin__control-grouped]>.admin__field:nth-child(n+2):not(.admin__field-option) .admin__field-label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.admin__field-control-group{margin-top:.8rem}.admin__field-control-group>.admin__field{padding:0}.admin__legend{float:left;position:static;width:100%}.admin__legend+br{display:block;height:0;overflow:hidden;clear:left}.message{margin-bottom:3rem}.message-icon-top:before{margin-top:0;top:1.8rem}.nav{background-color:#f8f8f8;border-bottom:1px solid #e3e3e3;border-top:1px solid #e3e3e3;display:none;padding:2.2rem 1.5rem 0 0}.nav .btn-group,.nav-bar-outer-actions{float:right;margin-bottom:1.7rem}.nav .btn-group .btn-wrap,.nav-bar-outer-actions .btn-wrap{float:right;margin-left:.5rem;margin-right:.5rem}.nav .btn-group .btn-wrap .btn,.nav-bar-outer-actions .btn-wrap .btn{padding-left:.5rem;padding-right:.5rem}.nav-bar-outer-actions{margin-top:-10.6rem;padding-right:1.5rem}.btn-wrap-try-again{width:9.5rem}.btn-wrap-next,.btn-wrap-prev{width:8.5rem}.nav-bar{counter-reset:i;float:left;margin:0 1rem 1.7rem 0;padding:0;position:relative;white-space:nowrap}.nav-bar:before{background-color:#d4d4d4;background-repeat:repeat-x;background-image:linear-gradient(to bottom,#d1d1d1 0,#d4d4d4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#d1d1d1', endColorstr='#d4d4d4', GradientType=0);border-bottom:1px solid #d9d9d9;border-top:1px solid #bfbfbf;content:'';height:1rem;left:5.15rem;position:absolute;right:5.15rem;top:.7rem}.nav-bar>li{display:inline-block;font-size:0;position:relative;vertical-align:top;width:10.3rem}.nav-bar>li:first-child:after{display:none}.nav-bar>li:after{background-color:#514943;content:'';height:.5rem;left:calc(-50% + .25rem);position:absolute;right:calc(50% + .7rem);top:.9rem}.nav-bar>li.disabled:before,.nav-bar>li.ui-state-disabled:before{bottom:0;content:'';left:0;position:absolute;right:0;top:0;z-index:1}.nav-bar>li.active~li:after,.nav-bar>li.ui-state-active~li:after{display:none}.nav-bar>li.active~li a:after,.nav-bar>li.ui-state-active~li a:after{background-color:transparent;border-color:transparent;color:#a6a6a6}.nav-bar>li.active a,.nav-bar>li.ui-state-active a{color:#000}.nav-bar>li.active a:hover,.nav-bar>li.ui-state-active a:hover{cursor:default}.nav-bar>li.active a:after,.nav-bar>li.ui-state-active a:after{background-color:#fff;content:''}.nav-bar a{color:#514943;display:block;font-size:1.2rem;font-weight:600;line-height:1.2;overflow:hidden;padding:3rem .5em 0;position:relative;text-align:center;text-overflow:ellipsis}.nav-bar a:hover{text-decoration:none}.nav-bar a:after{background-color:#514943;border:.4rem solid #514943;border-radius:100%;color:#fff;content:counter(i);counter-increment:i;height:1.5rem;left:50%;line-height:.6;margin-left:-.8rem;position:absolute;right:auto;text-align:center;top:.4rem;width:1.5rem}.nav-bar a:before{background-color:#d6d6d6;border:1px solid transparent;border-bottom-color:#d9d9d9;border-radius:100%;border-top-color:#bfbfbf;content:'';height:2.3rem;left:50%;line-height:1;margin-left:-1.2rem;position:absolute;top:0;width:2.3rem}.tooltip{display:block;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.19rem;font-weight:400;line-height:1.4;opacity:0;position:absolute;visibility:visible;z-index:10}.tooltip.in{opacity:.9}.tooltip.top{margin-top:-4px;padding:8px 0}.tooltip.right{margin-left:4px;padding:0 8px}.tooltip.bottom{margin-top:4px;padding:8px 0}.tooltip.left{margin-left:-4px;padding:0 8px}.tooltip-inner{background-color:#fff;border:1px solid #adadad;border-radius:0;box-shadow:1px 1px 1px #ccc;color:#41362f;max-width:20rem;padding:.5em 1em;text-decoration:none}.tooltip-arrow,.tooltip-arrow:after{border:solid transparent;height:0;position:absolute;width:0}.tooltip-arrow:after{content:'';position:absolute}.tooltip.top .tooltip-arrow,.tooltip.top .tooltip-arrow:after{border-top-color:#949494;border-width:8px 8px 0;bottom:0;left:50%;margin-left:-8px}.tooltip.top-left .tooltip-arrow,.tooltip.top-left .tooltip-arrow:after{border-top-color:#949494;border-width:8px 8px 0;bottom:0;margin-bottom:-8px;right:8px}.tooltip.top-right .tooltip-arrow,.tooltip.top-right .tooltip-arrow:after{border-top-color:#949494;border-width:8px 8px 0;bottom:0;left:8px;margin-bottom:-8px}.tooltip.right .tooltip-arrow,.tooltip.right .tooltip-arrow:after{border-right-color:#949494;border-width:8px 8px 8px 0;left:1px;margin-top:-8px;top:50%}.tooltip.right .tooltip-arrow:after{border-right-color:#fff;border-width:6px 7px 6px 0;margin-left:0;margin-top:-6px}.tooltip.left .tooltip-arrow,.tooltip.left .tooltip-arrow:after{border-left-color:#949494;border-width:8px 0 8px 8px;margin-top:-8px;right:0;top:50%}.tooltip.bottom .tooltip-arrow,.tooltip.bottom .tooltip-arrow:after{border-bottom-color:#949494;border-width:0 8px 8px;left:50%;margin-left:-8px;top:0}.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow:after{border-bottom-color:#949494;border-width:0 8px 8px;margin-top:-8px;right:8px;top:0}.tooltip.bottom-right .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow:after{border-bottom-color:#949494;border-width:0 8px 8px;left:8px;margin-top:-8px;top:0}.password-strength{display:block;margin:0 -.3rem 1em;white-space:nowrap}.password-strength.password-strength-too-short .password-strength-item:first-child,.password-strength.password-strength-weak .password-strength-item:first-child,.password-strength.password-strength-weak .password-strength-item:first-child+.password-strength-item{background-color:#e22626}.password-strength.password-strength-fair .password-strength-item:first-child,.password-strength.password-strength-fair .password-strength-item:first-child+.password-strength-item,.password-strength.password-strength-fair .password-strength-item:first-child+.password-strength-item+.password-strength-item{background-color:#ef672f}.password-strength.password-strength-good .password-strength-item:first-child,.password-strength.password-strength-good .password-strength-item:first-child+.password-strength-item,.password-strength.password-strength-good .password-strength-item:first-child+.password-strength-item+.password-strength-item,.password-strength.password-strength-good .password-strength-item:first-child+.password-strength-item+.password-strength-item+.password-strength-item,.password-strength.password-strength-strong .password-strength-item{background-color:#79a22e}.password-strength .password-strength-item{background-color:#ccc;display:inline-block;font-size:0;height:1.4rem;margin-right:.3rem;width:calc(20% - .6rem)}@-webkit-keyframes progress-bar-stripes{from{background-position:4rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:4rem 0}to{background-position:0 0}}.progress{background-color:#fafafa;border:1px solid #ccc;clear:left;height:3rem;margin-bottom:3rem;overflow:hidden}.progress-bar{background-color:#79a22e;color:#fff;float:left;font-size:1.19rem;height:100%;line-height:3rem;text-align:center;transition:width .6s ease;width:0}.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-text-description{margin-bottom:1.6rem}.progress-bar-text-progress{text-align:right}.page-columns .page-inner-sidebar{margin:0 0 3rem}.page-header{margin-bottom:2.7rem;padding-bottom:2.9rem;position:relative}.page-header:before{border-bottom:1px solid #e3e3e3;bottom:0;content:'';display:block;height:1px;left:3rem;position:absolute;right:3rem}.container .page-header:before{content:normal}.page-header .message{margin-bottom:1.8rem}.page-header .message+.message{margin-top:-1.5rem}.page-header .admin__action-dropdown,.page-header .search-global-input{transition:none}.container .page-header{margin-bottom:0}.page-title-wrapper{margin-top:1.1rem}.container .page-title-wrapper{background:url(../../pub/images/logo.svg) no-repeat;min-height:41px;padding:4px 0 0 45px}.admin__menu .level-0:first-child>a{margin-top:1.6rem}.admin__menu .level-0:first-child>a:after{top:-1.6rem}.admin__menu .level-0>a{padding-top:1.3rem;padding-bottom:1.3rem}.admin__menu .level-0>a:before{margin-bottom:.7rem}.admin__menu .item-home>a:before{content:'\e611';font-size:2.3rem;padding-top:-.1rem}.admin__menu .item-component>a:before{content:'\e612'}.admin__menu .item-upgrade>a:before{content:'\e614'}.admin__menu .item-system-config>a:before{content:'\e610'}.admin__menu .item-tools>a:before{content:'\e613'}.modal-sub-title{font-size:1.7rem;font-weight:600}.modal-connect-signin .modal-inner-wrap{max-width:80rem}@-webkit-keyframes ngdialog-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes ngdialog-fadeout{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes ngdialog-fadein{0%{opacity:0}100%{opacity:1}}@keyframes ngdialog-fadein{0%{opacity:0}100%{opacity:1}}.ngdialog{-webkit-overflow-scrolling:touch;bottom:0;box-sizing:border-box;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:999}.ngdialog *,.ngdialog:after,.ngdialog:before{box-sizing:inherit}.ngdialog.ngdialog-disabled-animation *{-webkit-animation:none!important;animation:none!important}.ngdialog.ngdialog-closing .ngdialog-content,.ngdialog.ngdialog-closing .ngdialog-overlay{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadeout .5s;animation:ngdialog-fadeout .5s}.ngdialog-overlay{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadein .5s;animation:ngdialog-fadein .5s;background:rgba(0,0,0,.4);bottom:0;left:0;position:fixed;right:0;top:0}.ngdialog-content{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadein .5s;animation:ngdialog-fadein .5s}body.ngdialog-open{overflow:hidden}.component-indicator{border-radius:50%;cursor:help;display:inline-block;height:20px;text-align:center;width:20px}.component-indicator::after,.component-indicator::before{background:#fff;display:block;opacity:0;position:absolute;transition:opacity .2s linear .1s;visibility:hidden}.component-indicator::before{border-radius:1px;border:1px solid #adadad;box-shadow:0 0 2px rgba(0,0,0,.4);content:attr(data-label);font-size:1.2rem;margin:34px 0 0 -10px;min-width:50px;padding:4px 5px}.component-indicator::after{border:1px solid #999;border-width:1px 0 0 1px;box-shadow:-1px -1px 1px rgba(0,0,0,.1);content:'';height:10px;margin:9px 0 0 5px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:10px}.component-indicator:hover::after,.component-indicator:hover::before{opacity:1;transition:opacity .2s linear;visibility:visible}.component-indicator span{display:block;height:20px;overflow:hidden;width:20px}.component-indicator span:before{content:'';display:block;font-family:Icons;font-size:20px;height:100%;line-height:20px;width:100%}.component-indicator._on{background:#79a22e}.component-indicator._off{background:#e22626}.component-indicator._off span:before{background:#fff;height:4px;margin:8px auto 20px;width:12px}.component-indicator._info{background:0 0}.component-indicator._info span{width:21px}.component-indicator._info span:before{color:#008bdb;content:'\e61a';font-family:Icons;font-size:21px}.app-updater .nav{display:block;margin-bottom:3.1rem;margin-top:-2.8rem}.app-updater .nav-bar-outer-actions{margin-top:1rem;padding-right:0}.app-updater .nav-bar-outer-actions .btn-wrap-cancel{margin-right:2.6rem}.main{padding-bottom:2rem;padding-top:3rem}.header{display:none}.header .logo{float:left;height:4.1rem;width:3.5rem}.header-title{font-size:2.8rem;letter-spacing:.02em;line-height:1.4;margin:2.5rem 0 3.5rem 5rem}.page-sub-title{font-size:2rem}.accent-box{margin-bottom:2rem}.accent-box .btn-prime{margin-top:1.5rem}.page-landing{margin:7.6% auto 0;max-width:44rem;text-align:center}.page-landing .logo{height:5.6rem;margin-bottom:2rem;width:19.2rem}.page-landing .text-version{margin-bottom:3rem}.page-landing .text-welcome{margin-bottom:6.5rem}.page-landing .text-terms{margin-bottom:2.5rem;text-align:center}.page-landing .btn-submit,.page-license .license-text{margin-bottom:2rem}.page-license .page-license-footer{text-align:right}.readiness-check-item{margin-bottom:4rem}.readiness-check-title{font-size:1.4rem;font-weight:700;margin-bottom:.1rem;margin-left:7.5rem}.readiness-check-content{margin-left:7.5rem;margin-right:22rem}.readiness-check-content .readiness-check-title{margin-left:0}.readiness-check-content .list{margin-top:-.3rem}.readiness-check-side{float:right;padding-left:2.4rem;width:22rem}.readiness-check-side .side-title{margin-bottom:0}.readiness-check-icon{float:left}.page-web-configuration .form-el-insider-wrap{width:auto}.page-web-configuration .form-el-insider{width:15.4rem}.page-web-configuration .form-el-insider-input .form-el-input{width:16.5rem}.customize-your-store .customize-your-store-default .legend{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.customize-your-store .advanced-modules-count,.customize-your-store .advanced-modules-select{padding-left:1.5rem}.customize-your-store .customize-your-store-advanced{min-width:0}.customize-your-store .message-error:before{margin-top:0;top:1.8rem}.customize-your-store .message-error a{color:#333;text-decoration:underline}.customize-your-store .message-error .form-label:before{background:#fff}.customize-your-store .customize-database-clean p{margin-top:2.5rem}.content-install{margin-bottom:2rem}.console{border:1px solid #ccc;font-family:'Courier New',Courier,monospace;font-weight:300;height:20rem;margin:1rem 0 2rem;overflow-y:auto;padding:1.5rem 2rem 2rem;resize:vertical}.console .text-danger{color:#e22626}.console .text-success{color:#090}.console .hidden{display:none}.content-success .btn-prime{margin-top:1.5rem}.jumbo-title{font-size:3.6rem}.jumbo-title .jumbo-icon{font-size:3.8rem;margin-right:.25em;position:relative;top:.15em}.install-database-clean{margin-top:4rem}.install-database-clean .btn{margin-right:1rem}.page-sub-title{margin-bottom:2.1rem}.multiselect-custom{max-width:71.1rem}.content-install{margin-top:3.7rem}.home-page-inner-wrap{margin:0 auto;max-width:91rem}.setup-home-title{margin-bottom:3.9rem;padding-top:1.8rem;text-align:center}.setup-home-item{background-color:#fafafa;border:1px solid #ccc;color:#333;display:block;margin-bottom:2rem;margin-left:1.3rem;margin-right:1.3rem;min-height:30rem;padding:2rem;text-align:center}.setup-home-item:hover{border-color:#8c8c8c;color:#333;text-decoration:none;transition:border-color .1s linear}.setup-home-item:active{-webkit-transform:scale(0.99);-ms-transform:scale(0.99);transform:scale(0.99)}.setup-home-item:before{display:block;font-size:7rem;margin-bottom:3.3rem;margin-top:4rem}.setup-home-item-component:before{content:'\e612'}.setup-home-item-upgrade:before{content:'\e614'}.setup-home-item-configuration:before{content:'\e610'}.setup-home-item-title{display:block;font-size:1.8rem;letter-spacing:.025em;margin-bottom:1rem}.setup-home-item-description{display:block}.readiness-check-item{padding-top:.3rem}.readiness-check-icon{margin-left:2.4rem;margin-top:-.1rem}.readiness-check-icon.icon-success{font-size:2rem}.readiness-check-icon.icon-failed{font-size:1.6rem}.componenet-manager-wrap{border:1px solid #bbb;margin:0 0 4rem}.componenet-manager-wrap .componenet-manager-account{font-size:1.4rem;float:right;padding:.6rem 0 0}.componenet-manager-wrap .componenet-manager-account .sign-in-out{margin-left:2rem}.component-manager-title{background-color:#f8f8f8;border-bottom:1px solid #e3e3e3;color:#41362f;font-size:2rem;line-height:1.2;padding:2rem}.component-manager-content{padding:2.5rem 2rem 2rem}.componenet-manager-items{list-style:none;margin:0;text-align:center}.componenet-manager-items .btn{border:1px solid #adadad}.componenet-manager-items .item-title{margin:0 0 1.5rem}.componenet-manager-items .item-number{font-size:6rem;line-height:.8;margin:0 0 1.5rem}.componenet-manager-items .item-date{margin:0 0 3.7rem}.componenet-manager-items .item-install{margin:0 0 2rem}.componenet-manager-items .item-install .btn{line-height:1.36;margin:0;padding:0;color:#008bdb;text-decoration:none;background:0 0;border:0;display:inline;font-size:1.4rem;font-weight:400}.componenet-manager-items .item-install .btn:visited{color:#008bdb;text-decoration:none}.componenet-manager-items .item-install .btn:hover{text-decoration:underline}.componenet-manager-items .item-install .btn:active{color:#ff5501;text-decoration:underline}.componenet-manager-items .item-install .btn:hover{color:#0fa7ff}.componenet-manager-items .item-install .btn:active,.componenet-manager-items .item-install .btn:focus,.componenet-manager-items .item-install .btn:hover{background:0 0;border:0}.componenet-manager-items .item-install .btn.disabled,.componenet-manager-items .item-install .btn[disabled],fieldset[disabled] .componenet-manager-items .item-install .btn{color:#008bdb;opacity:.5;cursor:default;pointer-events:none;text-decoration:underline}.componenet-manager-items .item-install .btn.disabled{text-decoration:none}.sync-login-wrap{margin:-2.5rem 0 0;padding:0 10% 4rem}.sync-login-wrap .legend{font-size:2.6rem;color:#eb5202;float:left;font-weight:300;line-height:1.2;margin:-1rem 0 2.5rem;position:static;width:100%}.sync-login-wrap .legend._hidden{display:none}.sync-login-wrap .login-header{font-size:3.4rem;font-weight:300;margin:0 0 2rem}.sync-login-wrap .login-header span{display:inline-block;padding:.9rem 0 0;vertical-align:top}.sync-login-wrap .form-row .form-label{display:inline-block}.sync-login-wrap .form-row .form-label.required{padding-left:1.5rem}.sync-login-wrap .form-row .form-label.required:after{left:0;position:absolute;right:auto}.sync-login-wrap .form-row{max-width:28rem}.sync-login-wrap .form-actions{display:table;margin-top:-1.3rem}.sync-login-wrap .form-actions .links{display:table-header-group}.sync-login-wrap .form-actions .actions{padding:3rem 0 0}@media all and (max-width:1047px){.admin__menu .submenu li{min-width:19.8rem}.nav{padding-bottom:5.38rem;padding-left:1.5rem;text-align:center}.nav-bar{display:inline-block;float:none;margin-right:0;vertical-align:top}.nav .btn-group,.nav-bar-outer-actions{display:inline-block;float:none;margin-top:-8.48rem;text-align:center;vertical-align:top;width:100%}.nav-bar-outer-actions{padding-right:0}.nav-bar-outer-actions .outer-actions-inner-wrap{display:inline-block}.app-updater .nav{padding-bottom:1.7rem}.app-updater .nav-bar-outer-actions{margin-top:2rem}}@media all and (min-width:768px){.page-layout-admin-2columns-left .page-columns{margin-left:-30px}.page-layout-admin-2columns-left .page-columns:after{clear:both;content:'';display:table}.page-layout-admin-2columns-left .page-columns .main-col{width:calc((100%) * .75 - 30px);float:right}.page-layout-admin-2columns-left .page-columns .side-col{width:calc((100%) * .25 - 30px);float:left;margin-left:30px}.col-m-1,.col-m-10,.col-m-11,.col-m-12,.col-m-2,.col-m-3,.col-m-4,.col-m-5,.col-m-6,.col-m-7,.col-m-8,.col-m-9{float:left}.col-m-12{width:100%}.col-m-11{width:91.66666667%}.col-m-10{width:83.33333333%}.col-m-9{width:75%}.col-m-8{width:66.66666667%}.col-m-7{width:58.33333333%}.col-m-6{width:50%}.col-m-5{width:41.66666667%}.col-m-4{width:33.33333333%}.col-m-3{width:25%}.col-m-2{width:16.66666667%}.col-m-1{width:8.33333333%}.col-m-pull-12{right:100%}.col-m-pull-11{right:91.66666667%}.col-m-pull-10{right:83.33333333%}.col-m-pull-9{right:75%}.col-m-pull-8{right:66.66666667%}.col-m-pull-7{right:58.33333333%}.col-m-pull-6{right:50%}.col-m-pull-5{right:41.66666667%}.col-m-pull-4{right:33.33333333%}.col-m-pull-3{right:25%}.col-m-pull-2{right:16.66666667%}.col-m-pull-1{right:8.33333333%}.col-m-pull-0{right:auto}.col-m-push-12{left:100%}.col-m-push-11{left:91.66666667%}.col-m-push-10{left:83.33333333%}.col-m-push-9{left:75%}.col-m-push-8{left:66.66666667%}.col-m-push-7{left:58.33333333%}.col-m-push-6{left:50%}.col-m-push-5{left:41.66666667%}.col-m-push-4{left:33.33333333%}.col-m-push-3{left:25%}.col-m-push-2{left:16.66666667%}.col-m-push-1{left:8.33333333%}.col-m-push-0{left:auto}.col-m-offset-12{margin-left:100%}.col-m-offset-11{margin-left:91.66666667%}.col-m-offset-10{margin-left:83.33333333%}.col-m-offset-9{margin-left:75%}.col-m-offset-8{margin-left:66.66666667%}.col-m-offset-7{margin-left:58.33333333%}.col-m-offset-6{margin-left:50%}.col-m-offset-5{margin-left:41.66666667%}.col-m-offset-4{margin-left:33.33333333%}.col-m-offset-3{margin-left:25%}.col-m-offset-2{margin-left:16.66666667%}.col-m-offset-1{margin-left:8.33333333%}.col-m-offset-0{margin-left:0}.page-columns{margin-left:-30px}.page-columns:after{clear:both;content:'';display:table}.page-columns .page-inner-content{width:calc((100%) * .75 - 30px);float:right}.page-columns .page-inner-sidebar{width:calc((100%) * .25 - 30px);float:left;margin-left:30px}}@media all and (min-width:1048px){.col-l-1,.col-l-10,.col-l-11,.col-l-12,.col-l-2,.col-l-3,.col-l-4,.col-l-5,.col-l-6,.col-l-7,.col-l-8,.col-l-9{float:left}.col-l-12{width:100%}.col-l-11{width:91.66666667%}.col-l-10{width:83.33333333%}.col-l-9{width:75%}.col-l-8{width:66.66666667%}.col-l-7{width:58.33333333%}.col-l-6{width:50%}.col-l-5{width:41.66666667%}.col-l-4{width:33.33333333%}.col-l-3{width:25%}.col-l-2{width:16.66666667%}.col-l-1{width:8.33333333%}.col-l-pull-12{right:100%}.col-l-pull-11{right:91.66666667%}.col-l-pull-10{right:83.33333333%}.col-l-pull-9{right:75%}.col-l-pull-8{right:66.66666667%}.col-l-pull-7{right:58.33333333%}.col-l-pull-6{right:50%}.col-l-pull-5{right:41.66666667%}.col-l-pull-4{right:33.33333333%}.col-l-pull-3{right:25%}.col-l-pull-2{right:16.66666667%}.col-l-pull-1{right:8.33333333%}.col-l-pull-0{right:auto}.col-l-push-12{left:100%}.col-l-push-11{left:91.66666667%}.col-l-push-10{left:83.33333333%}.col-l-push-9{left:75%}.col-l-push-8{left:66.66666667%}.col-l-push-7{left:58.33333333%}.col-l-push-6{left:50%}.col-l-push-5{left:41.66666667%}.col-l-push-4{left:33.33333333%}.col-l-push-3{left:25%}.col-l-push-2{left:16.66666667%}.col-l-push-1{left:8.33333333%}.col-l-push-0{left:auto}.col-l-offset-12{margin-left:100%}.col-l-offset-11{margin-left:91.66666667%}.col-l-offset-10{margin-left:83.33333333%}.col-l-offset-9{margin-left:75%}.col-l-offset-8{margin-left:66.66666667%}.col-l-offset-7{margin-left:58.33333333%}.col-l-offset-6{margin-left:50%}.col-l-offset-5{margin-left:41.66666667%}.col-l-offset-4{margin-left:33.33333333%}.col-l-offset-3{margin-left:25%}.col-l-offset-2{margin-left:16.66666667%}.col-l-offset-1{margin-left:8.33333333%}.col-l-offset-0{margin-left:0}}@media all and (min-width:1440px){.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{float:left}.col-xl-12{width:100%}.col-xl-11{width:91.66666667%}.col-xl-10{width:83.33333333%}.col-xl-9{width:75%}.col-xl-8{width:66.66666667%}.col-xl-7{width:58.33333333%}.col-xl-6{width:50%}.col-xl-5{width:41.66666667%}.col-xl-4{width:33.33333333%}.col-xl-3{width:25%}.col-xl-2{width:16.66666667%}.col-xl-1{width:8.33333333%}.col-xl-pull-12{right:100%}.col-xl-pull-11{right:91.66666667%}.col-xl-pull-10{right:83.33333333%}.col-xl-pull-9{right:75%}.col-xl-pull-8{right:66.66666667%}.col-xl-pull-7{right:58.33333333%}.col-xl-pull-6{right:50%}.col-xl-pull-5{right:41.66666667%}.col-xl-pull-4{right:33.33333333%}.col-xl-pull-3{right:25%}.col-xl-pull-2{right:16.66666667%}.col-xl-pull-1{right:8.33333333%}.col-xl-pull-0{right:auto}.col-xl-push-12{left:100%}.col-xl-push-11{left:91.66666667%}.col-xl-push-10{left:83.33333333%}.col-xl-push-9{left:75%}.col-xl-push-8{left:66.66666667%}.col-xl-push-7{left:58.33333333%}.col-xl-push-6{left:50%}.col-xl-push-5{left:41.66666667%}.col-xl-push-4{left:33.33333333%}.col-xl-push-3{left:25%}.col-xl-push-2{left:16.66666667%}.col-xl-push-1{left:8.33333333%}.col-xl-push-0{left:auto}.col-xl-offset-12{margin-left:100%}.col-xl-offset-11{margin-left:91.66666667%}.col-xl-offset-10{margin-left:83.33333333%}.col-xl-offset-9{margin-left:75%}.col-xl-offset-8{margin-left:66.66666667%}.col-xl-offset-7{margin-left:58.33333333%}.col-xl-offset-6{margin-left:50%}.col-xl-offset-5{margin-left:41.66666667%}.col-xl-offset-4{margin-left:33.33333333%}.col-xl-offset-3{margin-left:25%}.col-xl-offset-2{margin-left:16.66666667%}.col-xl-offset-1{margin-left:8.33333333%}.col-xl-offset-0{margin-left:0}}@media all and (max-width:767px){.list-definition>dt{float:none}.list-definition>dd{margin-left:0}.form-row .form-label{text-align:left}.form-row .form-label.required:after{position:static}.nav{padding-bottom:0;padding-left:0;padding-right:0}.nav-bar-outer-actions{margin-top:0}.nav-bar{display:block;margin-bottom:0;margin-left:auto;margin-right:auto;width:30.9rem}.nav-bar:before{display:none}.nav-bar>li{float:left;min-height:9rem}.nav-bar>li:after{display:none}.nav-bar>li:nth-child(4n){clear:both}.nav-bar a{line-height:1.4}.tooltip{display:none!important}.readiness-check-content{margin-right:2rem}.form-el-insider,.form-el-insider-wrap,.page-web-configuration .form-el-insider-input,.page-web-configuration .form-el-insider-input .form-el-input{display:block;width:100%}}@media all and (max-width:479px){.nav-bar{width:23.175rem}.nav-bar>li{width:7.725rem}.nav .btn-group .btn-wrap-try-again,.nav-bar-outer-actions .btn-wrap-try-again{clear:both;display:block;float:none;margin-left:auto;margin-right:auto;margin-top:1rem;padding-top:1rem}} +.abs-action-delete,.abs-icon,.action-close:before,.action-next:before,.action-previous:before,.admin-user .admin__action-dropdown:before,.admin__action-multiselect-search-label:before,.admin__control-checkbox+label:before,.admin__control-radio+label:before,.admin__control-table .action-delete:before,.admin__current-filters-list .action-remove:before,.admin__data-grid-action-bookmarks .action-delete:before,.admin__data-grid-action-bookmarks .action-edit:before,.admin__data-grid-action-bookmarks .action-submit:before,.admin__data-grid-action-bookmarks .admin__action-dropdown:before,.admin__data-grid-action-columns .admin__action-dropdown:before,.admin__data-grid-action-export .admin__action-dropdown:before,.admin__menu .level-0>a:before,.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon,.admin__page-nav-title._collapsible:after,.data-grid-filters-action-wrap .action-default:before,.data-grid-row-changed:after,.data-grid-row-parent>td .data-grid-checkbox-cell-inner:before,.data-grid-search-control-wrap .action-submit:before,.icon-failed:before,.icon-success:before,.notifications-action:before,.notifications-close:before,.page-actions .page-actions-buttons>button.action-back:before,.page-actions .page-actions-buttons>button.back:before,.page-actions>button.action-back:before,.page-actions>button.back:before,.page-title-jumbo-success:before,.search-global-label:before,.selectmenu .action-delete:before,.selectmenu .action-edit:before,.selectmenu .action-save:before,.setup-home-item:before,.sticky-header .data-grid-search-control-wrap .data-grid-search-label:before,.store-switcher .dropdown-menu .dropdown-toolbar a:before,.tooltip .help a:before,.tooltip .help span:before{-webkit-font-smoothing:antialiased;font-family:Icons;line-height:1;font-style:normal;font-weight:400;speak:none}.validation-symbol:after{content:'*';color:#e22626;font-weight:400;margin-left:3px}.abs-modal-overlay,.modals-overlay{background:rgba(0,0,0,.35);bottom:0;left:0;position:fixed;right:0;top:0}.abs-action-delete>span,.abs-visually-hidden,.admin__control-fields .admin__field:nth-child(n+2):not(.admin__field-option)>.admin__field-label,.admin__field-tooltip .admin__field-tooltip-action span,.selectmenu .action-delete>span,.selectmenu .action-edit>span,.selectmenu .action-save>span,.selectmenu-toggle span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.abs-visually-hidden-reset{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.abs-clearfix:after,.abs-clearfix:before,.action-multicheck-wrap:after,.action-multicheck-wrap:before,.actions-split:after,.actions-split:before,.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content:after,.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content:before,.admin__data-grid-filters-footer:after,.admin__data-grid-filters-footer:before,.admin__data-grid-filters:after,.admin__data-grid-filters:before,.admin__data-grid-header-row:after,.admin__data-grid-header-row:before,.page-actions._fixed:after,.page-actions._fixed:before,.page-content:after,.page-content:before,.page-header-actions:after,.page-header-actions:before,.page-main-actions:not(._hidden):after,.page-main-actions:not(._hidden):before{content:'';display:table}.abs-clearfix:after,.action-multicheck-wrap:after,.actions-split:after,.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content:after,.admin__data-grid-filters-footer:after,.admin__data-grid-filters:after,.admin__data-grid-header-row:after,.page-actions._fixed:after,.page-content:after,.page-header-actions:after,.page-main-actions:not(._hidden):after{clear:both}.abs-list-reset-styles{margin:0;padding:0;list-style:none}.abs-draggable-handle{cursor:-webkit-grab;cursor:move;font-size:0;margin-top:-4px;padding:0 1rem 0 0;vertical-align:middle;display:inline-block;text-decoration:none}.abs-draggable-handle:before{-webkit-font-smoothing:antialiased;font-size:1.8rem;line-height:inherit;color:#9e9e9e;content:'\e617';font-family:Icons;vertical-align:middle;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.abs-draggable-handle:hover:before{color:#858585}html{box-sizing:border-box;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}:focus{box-shadow:none;outline:0}._keyfocus :focus{box-shadow:0 0 0 1px #008bdb}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}mark{background:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}embed,img,object,video{max-width:100%}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/light/opensans-300.eot);src:url(../fonts/opensans/light/opensans-300.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/light/opensans-300.woff2) format('woff2'),url(../fonts/opensans/light/opensans-300.woff) format('woff'),url(../fonts/opensans/light/opensans-300.ttf) format('truetype'),url('../fonts/opensans/light/opensans-300.svg#Open Sans') format('svg');font-weight:300;font-style:normal}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/regular/opensans-400.eot);src:url(../fonts/opensans/regular/opensans-400.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/regular/opensans-400.woff2) format('woff2'),url(../fonts/opensans/regular/opensans-400.woff) format('woff'),url(../fonts/opensans/regular/opensans-400.ttf) format('truetype'),url('../fonts/opensans/regular/opensans-400.svg#Open Sans') format('svg');font-weight:400;font-style:normal}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/semibold/opensans-600.eot);src:url(../fonts/opensans/semibold/opensans-600.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/semibold/opensans-600.woff2) format('woff2'),url(../fonts/opensans/semibold/opensans-600.woff) format('woff'),url(../fonts/opensans/semibold/opensans-600.ttf) format('truetype'),url('../fonts/opensans/semibold/opensans-600.svg#Open Sans') format('svg');font-weight:600;font-style:normal}@font-face{font-family:'Open Sans';src:url(../fonts/opensans/bold/opensans-700.eot);src:url(../fonts/opensans/bold/opensans-700.eot?#iefix) format('embedded-opentype'),url(../fonts/opensans/bold/opensans-700.woff2) format('woff2'),url(../fonts/opensans/bold/opensans-700.woff) format('woff'),url(../fonts/opensans/bold/opensans-700.ttf) format('truetype'),url('../fonts/opensans/bold/opensans-700.svg#Open Sans') format('svg');font-weight:700;font-style:normal}html{font-size:62.5%}body{color:#333;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.36;font-size:1.4rem}h1{margin:0 0 2rem;color:#41362f;font-weight:400;line-height:1.2;font-size:2.8rem}h2{margin:0 0 2rem;color:#41362f;font-weight:400;line-height:1.2;font-size:2rem}h3{margin:0 0 2rem;color:#41362f;font-weight:600;line-height:1.2;font-size:1.7rem}h4,h5,h6{font-weight:600;margin-top:0}p{margin:0 0 1em}small{font-size:1.2rem}a{color:#008bdb;text-decoration:none}a:hover{color:#0fa7ff;text-decoration:underline}dl,ol,ul{padding-left:0}nav ol,nav ul{list-style:none;margin:0;padding:0}html{height:100%}body{background-color:#fff;min-height:100%;min-width:102.4rem}.page-wrapper{background-color:#fff;display:inline-block;margin-left:-4px;vertical-align:top;width:calc(100% - 8.8rem)}.page-content{padding-bottom:3rem;padding-left:3rem;padding-right:3rem}.notices-wrapper{margin:0 3rem}.notices-wrapper .messages{margin-bottom:0}@media (min-width:1024px){html{width:100vw}body{overflow-x:hidden}}.row{margin-left:0;margin-right:0}.row:after{clear:both;content:'';display:table}.col-l-1,.col-l-10,.col-l-11,.col-l-12,.col-l-2,.col-l-3,.col-l-4,.col-l-5,.col-l-6,.col-l-7,.col-l-8,.col-l-9,.col-m-1,.col-m-10,.col-m-11,.col-m-12,.col-m-2,.col-m-3,.col-m-4,.col-m-5,.col-m-6,.col-m-7,.col-m-8,.col-m-9,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:0;padding-right:0}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}.row-gutter{margin-left:-1.5rem;margin-right:-1.5rem}.row-gutter>[class*=col-]{padding-left:1.5rem;padding-right:1.5rem}.abs-clearer:after,.component-manager-content:after,.component-manager-title:after,.form-row:after,.header:after,.nav:after,body:after{clear:both;content:'';display:table}.ng-cloak{display:none!important}.hide.hide{display:none}.show.show{display:block}.text-center{text-align:center}.text-right{text-align:right}@font-face{font-family:Icons;src:url(../fonts/icons/icons.eot);src:url(../fonts/icons/icons.eot?#iefix) format('embedded-opentype'),url(../fonts/icons/icons.woff2) format('woff2'),url(../fonts/icons/icons.woff) format('woff'),url(../fonts/icons/icons.ttf) format('truetype'),url(../fonts/icons/icons.svg#Icons) format('svg');font-weight:400;font-style:normal}[class*=icon-]{display:inline-block;line-height:1}.icon-failed:before,.icon-success:before,[class*=icon-]:after{font-family:Icons}.icon-success{color:#79a22e}.icon-success:before{content:'\e62d'}.icon-failed{color:#e22626}.icon-failed:before{content:'\e632'}.icon-success-thick:after{content:'\e62d'}.icon-collapse:after{content:'\e615'}.icon-failed-thick:after{content:'\e632'}.icon-expand:after{content:'\e616'}.icon-warning:after{content:'\e623'}.icon-failed-round,.icon-success-round{border-radius:100%;color:#fff;font-size:2.5rem;height:1em;position:relative;text-align:center;width:1em}.icon-failed-round:after,.icon-success-round:after{bottom:0;font-size:.5em;left:0;position:absolute;right:0;top:.45em}.icon-success-round{background-color:#79a22e}.icon-success-round:after{content:'\e62d'}.icon-failed-round{background-color:#e22626}.icon-failed-round:after{content:'\e632'}dl,ol,ul{margin-top:0}.list{padding-left:0}.list>li{display:block;margin-bottom:.75em;position:relative}.list>li>.icon-failed,.list>li>.icon-success{font-size:1.6em;left:-.1em;position:absolute;top:0}.list>li>.icon-success{color:#79a22e}.list>li>.icon-failed{color:#e22626}.list-item-failed,.list-item-icon,.list-item-success,.list-item-warning{padding-left:3.5rem}.list-item-failed:before,.list-item-success:before,.list-item-warning:before{left:-.1em;position:absolute}.list-item-success:before{color:#79a22e}.list-item-failed:before{color:#e22626}.list-item-warning:before{color:#ef672f}.list-definition{margin:0 0 3rem;padding:0}.list-definition>dt{clear:left;float:left}.list-definition>dd{margin-bottom:1em;margin-left:20rem}.btn-wrap{margin:0 auto}.btn-wrap .btn{width:100%}.btn{background:#e3e3e3;border:none;color:#514943;display:inline-block;font-size:1.6rem;font-weight:600;padding:.45em .9em;text-align:center}.btn:hover{background-color:#dbdbdb;color:#514943;text-decoration:none}.btn:active{background-color:#d6d6d6}.btn.disabled,.btn[disabled]{cursor:default;opacity:.5;pointer-events:none}.ie9 .btn.disabled,.ie9 .btn[disabled]{background-color:#f0f0f0;opacity:1;text-shadow:none}.btn-large{padding:.75em 1.25em}.btn-medium{font-size:1.4rem;padding:.5em 1.5em .6em}.btn-link{background-color:transparent;border:none;color:#008bdb;font-family:1.6rem;font-size:1.5rem}.btn-link:active,.btn-link:focus,.btn-link:hover{background-color:transparent;color:#0fa7ff}.btn-prime{background-color:#eb5202;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.btn-prime:focus,.btn-prime:hover{background-color:#f65405;background-repeat:repeat-x;background-image:linear-gradient(to right,#e04f00 0,#f65405 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e04f00', endColorstr='#f65405', GradientType=1);color:#fff}.btn-prime:active{background-color:#e04f00;background-repeat:repeat-x;background-image:linear-gradient(to right,#f65405 0,#e04f00 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f65405', endColorstr='#e04f00', GradientType=1);color:#fff}.ie9 .btn-prime.disabled,.ie9 .btn-prime[disabled]{background-color:#fd6e23}.ie9 .btn-prime.disabled:active,.ie9 .btn-prime.disabled:hover,.ie9 .btn-prime[disabled]:active,.ie9 .btn-prime[disabled]:hover{background-color:#fd6e23;-webkit-filter:none;filter:none}.btn-secondary{background-color:#514943;color:#fff}.btn-secondary:hover{background-color:#5f564f;color:#fff}.btn-secondary:active,.btn-secondary:focus{background-color:#574e48;color:#fff}.ie9 .btn-secondary.disabled,.ie9 .btn-secondary[disabled]{background-color:#514943}.ie9 .btn-secondary.disabled:active,.ie9 .btn-secondary[disabled]:active{background-color:#514943;-webkit-filter:none;filter:none}[class*=btn-wrap-triangle]{overflow:hidden;position:relative}[class*=btn-wrap-triangle] .btn:after{border-style:solid;content:'';height:0;position:absolute;top:0;width:0}.btn-wrap-triangle-right{display:inline-block;padding-right:1.74rem;position:relative}.btn-wrap-triangle-right .btn{text-indent:.92rem}.btn-wrap-triangle-right .btn:after{border-color:transparent transparent transparent #e3e3e3;border-width:1.84rem 0 1.84rem 1.84rem;left:100%;margin-left:-1.74rem}.btn-wrap-triangle-right .btn:focus:after,.btn-wrap-triangle-right .btn:hover:after{border-left-color:#dbdbdb}.btn-wrap-triangle-right .btn:active:after{border-left-color:#d6d6d6}.btn-wrap-triangle-right .btn:not(.disabled):active,.btn-wrap-triangle-right .btn:not([disabled]):active{left:1px}.ie9 .btn-wrap-triangle-right .btn.disabled:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:after{border-color:transparent transparent transparent #f0f0f0}.ie9 .btn-wrap-triangle-right .btn.disabled:active:after,.ie9 .btn-wrap-triangle-right .btn.disabled:focus:after,.ie9 .btn-wrap-triangle-right .btn.disabled:hover:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:active:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:focus:after,.ie9 .btn-wrap-triangle-right .btn[disabled]:hover:after{border-left-color:#f0f0f0}.btn-wrap-triangle-right .btn-prime:after{border-color:transparent transparent transparent #eb5202}.btn-wrap-triangle-right .btn-prime:focus:after,.btn-wrap-triangle-right .btn-prime:hover:after{border-left-color:#f65405}.btn-wrap-triangle-right .btn-prime:active:after{border-left-color:#e04f00}.btn-wrap-triangle-right .btn-prime:not(.disabled):active,.btn-wrap-triangle-right .btn-prime:not([disabled]):active{left:1px}.ie9 .btn-wrap-triangle-right .btn-prime.disabled:after,.ie9 .btn-wrap-triangle-right .btn-prime[disabled]:after{border-color:transparent transparent transparent #fd6e23}.ie9 .btn-wrap-triangle-right .btn-prime.disabled:active:after,.ie9 .btn-wrap-triangle-right .btn-prime.disabled:hover:after,.ie9 .btn-wrap-triangle-right .btn-prime[disabled]:active:after,.ie9 .btn-wrap-triangle-right .btn-prime[disabled]:hover:after{border-left-color:#fd6e23}.btn-wrap-triangle-left{display:inline-block;padding-left:1.74rem}.btn-wrap-triangle-left .btn{text-indent:-.92rem}.btn-wrap-triangle-left .btn:after{border-color:transparent #e3e3e3 transparent transparent;border-width:1.84rem 1.84rem 1.84rem 0;margin-right:-1.74rem;right:100%}.btn-wrap-triangle-left .btn:focus:after,.btn-wrap-triangle-left .btn:hover:after{border-right-color:#dbdbdb}.btn-wrap-triangle-left .btn:active:after{border-right-color:#d6d6d6}.btn-wrap-triangle-left .btn:not(.disabled):active,.btn-wrap-triangle-left .btn:not([disabled]):active{right:1px}.ie9 .btn-wrap-triangle-left .btn.disabled:after,.ie9 .btn-wrap-triangle-left .btn[disabled]:after{border-color:transparent #f0f0f0 transparent transparent}.ie9 .btn-wrap-triangle-left .btn.disabled:active:after,.ie9 .btn-wrap-triangle-left .btn.disabled:hover:after,.ie9 .btn-wrap-triangle-left .btn[disabled]:active:after,.ie9 .btn-wrap-triangle-left .btn[disabled]:hover:after{border-right-color:#f0f0f0}.btn-wrap-triangle-left .btn-prime:after{border-color:transparent #eb5202 transparent transparent}.btn-wrap-triangle-left .btn-prime:focus:after,.btn-wrap-triangle-left .btn-prime:hover:after{border-right-color:#e04f00}.btn-wrap-triangle-left .btn-prime:active:after{border-right-color:#f65405}.btn-wrap-triangle-left .btn-prime:not(.disabled):active,.btn-wrap-triangle-left .btn-prime:not([disabled]):active{right:1px}.ie9 .btn-wrap-triangle-left .btn-prime.disabled:after,.ie9 .btn-wrap-triangle-left .btn-prime[disabled]:after{border-color:transparent #fd6e23 transparent transparent}.ie9 .btn-wrap-triangle-left .btn-prime.disabled:active:after,.ie9 .btn-wrap-triangle-left .btn-prime.disabled:hover:after,.ie9 .btn-wrap-triangle-left .btn-prime[disabled]:active:after,.ie9 .btn-wrap-triangle-left .btn-prime[disabled]:hover:after{border-right-color:#fd6e23}.btn-expand{background-color:transparent;border:none;color:#303030;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;padding:0;position:relative}.btn-expand.expanded:after{border-color:transparent transparent #303030;border-width:0 .285em .36em}.btn-expand.expanded:hover:after{border-color:transparent transparent #3d3d3d}.btn-expand:hover{background-color:transparent;border:none;color:#3d3d3d}.btn-expand:hover:after{border-color:#3d3d3d transparent transparent}.btn-expand:after{border-color:#303030 transparent transparent;border-style:solid;border-width:.36em .285em 0;content:'';height:0;left:100%;margin-left:.5em;margin-top:-.18em;position:absolute;top:50%;width:0}[class*=col-] .form-el-input,[class*=col-] .form-el-select{width:100%}.form-fieldset{border:none;margin:0 0 1em;padding:0}.form-row{margin-bottom:2.2rem}.form-row .form-row{margin-bottom:.4rem}.form-row .form-label{display:block;font-weight:600;padding:.6rem 2.1em 0 0;text-align:right}.form-row .form-label.required{position:relative}.form-row .form-label.required:after{color:#eb5202;content:'*';font-size:1.15em;position:absolute;right:.7em;top:.5em}.form-row .form-el-checkbox+.form-label:before,.form-row .form-el-radio+.form-label:before{top:.7rem}.form-row .form-el-checkbox+.form-label:after,.form-row .form-el-radio+.form-label:after{top:1.1rem}.form-row.form-row-text{padding-top:.6rem}.form-row.form-row-text .action-sign-out{font-size:1.2rem;margin-left:1rem}.form-note{font-size:1.2rem;font-weight:600;margin-top:1rem}.form-el-dummy{display:none}.fieldset{border:0;margin:0;min-width:0;padding:0}input:not([disabled]):focus,textarea:not([disabled]):focus{box-shadow:none}.form-el-input{border:1px solid #adadad;color:#303030;padding:.35em .55em .5em}.form-el-input:hover{border-color:#949494}.form-el-input:focus{border-color:#008bdb}.form-el-input:required{box-shadow:none}.form-label{margin-bottom:.5em}[class*=form-label][for]{cursor:pointer}.form-el-insider-wrap{display:table;width:100%}.form-el-insider-input{display:table-cell;width:100%}.form-el-insider{border-radius:2px;display:table-cell;vertical-align:top;padding:.43em .55em .5em 0}.form-legend,.form-legend-expand,.form-legend-light{display:block;margin:0}.form-legend,.form-legend-expand{margin-bottom:2.5em;padding-top:1.5em;font-weight:600;font-size:1.25em}.form-legend{width:100%;border-top:1px solid #ccc}.form-legend-light{margin-bottom:1.5em;font-size:1em}.form-legend-expand{cursor:pointer;transition:opacity .2s linear}.form-legend-expand:hover{opacity:.85}.form-legend-expand.expanded:after{content:'\e615'}.form-legend-expand:after{margin-left:.5em;font-weight:400;font-size:1.15em;font-family:Icons;content:'\e616';vertical-align:sub}.form-el-checkbox,.form-el-radio{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.form-el-checkbox.disabled+.form-label,.form-el-checkbox.disabled+.form-label:before,.form-el-checkbox[disabled]+.form-label,.form-el-checkbox[disabled]+.form-label:before,.form-el-radio.disabled+.form-label,.form-el-radio.disabled+.form-label:before,.form-el-radio[disabled]+.form-label,.form-el-radio[disabled]+.form-label:before{cursor:default;opacity:.5;pointer-events:none}.form-el-checkbox:not(.disabled)+.form-label:hover:before,.form-el-checkbox:not([disabled])+.form-label:hover:before,.form-el-radio:not(.disabled)+.form-label:hover:before,.form-el-radio:not([disabled])+.form-label:hover:before{border-color:#514943}.form-el-checkbox+.form-label,.form-el-radio+.form-label{font-weight:400;padding-left:2em;padding-right:0;position:relative;text-align:left;transition:border-color .1s linear}.form-el-checkbox+.form-label:before,.form-el-radio+.form-label:before{border:1px solid;content:'';left:0;position:absolute;top:.1rem;transition:border-color .1s linear}.form-el-checkbox+.form-label:before{background-color:#fff;border-color:#adadad;border-radius:2px;height:1.6rem;line-height:1.2;width:1.6rem;font-size:1.2rem}.form-el-checkbox:checked+.form-label::before{content:'\e62d';font-family:Icons}.form-el-radio+.form-label:before{background-color:#fff;border:1px solid #adadad;border-radius:100%;height:1.8rem;width:1.8rem}.form-el-radio+.form-label:after{background:0 0;border:.5rem solid transparent;border-radius:100%;content:'';height:0;left:.4rem;position:absolute;top:.5rem;transition:background .3s linear;width:0}.form-el-radio:checked+.form-label{cursor:default}.form-el-radio:checked+.form-label:after{border-color:#514943}.form-select-label{border:1px solid #adadad;color:#303030;cursor:pointer;display:block;overflow:hidden;position:relative;z-index:0}.form-select-label:hover,.form-select-label:hover:after{border-color:#949494}.form-select-label:active,.form-select-label:active:after,.form-select-label:focus,.form-select-label:focus:after{border-color:#008bdb}.form-select-label:after{background:#e3e3e3;border-left:1px solid #adadad;bottom:0;content:'';position:absolute;right:0;top:0;width:2.36em;z-index:-2}.ie9 .form-select-label:after{display:none}.form-select-label:before{border-color:#303030 transparent transparent;border-style:solid;border-width:5px 4px 0;content:'';height:0;margin-right:-4px;margin-top:-2.5px;position:absolute;right:1.18em;top:50%;width:0;z-index:-1}.ie9 .form-select-label:before{display:none}.form-select-label .form-el-select{background:0 0;border:none;border-radius:0;content:'';display:block;margin:0;padding:.35em calc(2.36em + 10%) .5em .55em;width:110%}.ie9 .form-select-label .form-el-select{padding-right:.55em;width:100%}.form-el-select{background:#fff;border:1px solid #adadad;border-radius:2px;color:#303030;display:block;padding:.35em .55em}.multiselect-custom{position:relative;height:45.2rem;border:1px solid #adadad;overflow:auto;margin:0 0 1.5rem}.multiselect-custom ul{margin:0;padding:0;list-style:none;min-width:29rem}.multiselect-custom .item{padding:1rem 1.4rem}.multiselect-custom .selected{background-color:#e0f6fe}.multiselect-custom .form-label{margin-bottom:0}[class*=form-el-].invalid{border-color:#e22626}[class*=form-el-].invalid+.error-container{display:block}.error-container{background-color:#fffbbb;border:1px solid #ee7d7d;color:#514943;display:none;font-size:1.19rem;margin-top:.2rem;padding:.8rem 1rem .9rem}.check-result-message{margin-left:.5em;min-height:3.68rem;-webkit-align-items:center;-ms-align-items:center;-ms-flex-align:center;align-items:center;display:-webkit-flex;display:-ms-flexbox;display:flex}.check-result-text{margin-left:.5em}body:not([class]){min-width:0}.container{display:block;margin:0 auto 4rem;max-width:100rem;padding:0}.abs-action-delete,.action-close:before,.action-next:before,.action-previous:before,.admin-user .admin__action-dropdown:before,.admin__action-multiselect-search-label:before,.admin__control-checkbox+label:before,.admin__control-radio+label:before,.admin__control-table .action-delete:before,.admin__current-filters-list .action-remove:before,.admin__data-grid-action-bookmarks .action-delete:before,.admin__data-grid-action-bookmarks .action-edit:before,.admin__data-grid-action-bookmarks .action-submit:before,.admin__data-grid-action-bookmarks .admin__action-dropdown:before,.admin__data-grid-action-columns .admin__action-dropdown:before,.admin__data-grid-action-export .admin__action-dropdown:before,.admin__menu .level-0>a:before,.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon,.admin__page-nav-title._collapsible:after,.data-grid-filters-action-wrap .action-default:before,.data-grid-row-changed:after,.data-grid-row-parent>td .data-grid-checkbox-cell-inner:before,.data-grid-search-control-wrap .action-submit:before,.icon-failed:before,.icon-success:before,.notifications-action:before,.notifications-close:before,.page-actions .page-actions-buttons>button.action-back:before,.page-actions .page-actions-buttons>button.back:before,.page-actions>button.action-back:before,.page-actions>button.back:before,.page-title-jumbo-success:before,.search-global-label:before,.selectmenu .action-delete:before,.selectmenu .action-edit:before,.selectmenu .action-save:before,.setup-home-item:before,.sticky-header .data-grid-search-control-wrap .data-grid-search-label:before,.store-switcher .dropdown-menu .dropdown-toolbar a:before,.tooltip .help a:before,.tooltip .help span:before{-webkit-font-smoothing:antialiased;font-family:Icons;line-height:1;font-style:normal;font-weight:400;speak:none}.text-stretch{margin-bottom:1.5em}.page-title-jumbo{font-size:4rem;font-weight:300;letter-spacing:-.05em;margin-bottom:2.9rem}.page-title-jumbo-success:before{color:#79a22e;content:'\e62d';font-size:3.9rem;margin-left:-.3rem;margin-right:2.4rem}.list{margin-bottom:3rem}.list-dot .list-item{display:list-item;list-style-position:inside;margin-bottom:1.2rem}.list-title{color:#333;font-size:1.4rem;font-weight:700;letter-spacing:.025em;margin-bottom:1.2rem}.list-item-failed:before,.list-item-success:before,.list-item-warning:before{font-family:Icons;font-size:1.6rem;top:0}.list-item-success:before{content:'\e62d';font-size:1.6rem}.list-item-failed:before{content:'\e632';font-size:1.4rem;left:.1rem;top:.2rem}.list-item-warning:before{content:'\e623';font-size:1.3rem;left:.2rem}.form-wrap{padding-top:2.1rem;margin-bottom:3.6rem}.form-el-label-horizontal{display:inline-block;font-size:1.3rem;font-weight:600;letter-spacing:.025em;margin-left:.4rem;margin-bottom:.4rem}.app-updater{min-width:768px}body._has-modal{height:100%;overflow:hidden;width:100%}.modals-overlay{z-index:899}.modal-popup,.modal-slide{bottom:0;min-width:0;pointer-events:none;position:fixed;right:0;top:0;visibility:hidden}.modal-popup._show,.modal-slide._show{visibility:visible}.modal-popup._show .modal-inner-wrap,.modal-slide._show .modal-inner-wrap{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-popup .modal-inner-wrap,.modal-slide .modal-inner-wrap{background-color:#fff;box-shadow:0 0 12px 2px rgba(0,0,0,.35);opacity:1;pointer-events:auto}.modal-slide{left:14.8rem;z-index:900}.modal-slide._show .modal-inner-wrap{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.modal-slide .modal-inner-wrap{height:100%;overflow-y:auto;position:static;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);transition-duration:.3s;transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-timing-function:ease-in-out;width:auto}.modal-slide._inner-scroll .modal-inner-wrap{overflow-y:visible;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.modal-slide._inner-scroll .modal-footer,.modal-slide._inner-scroll .modal-header{-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.modal-slide._inner-scroll .modal-content{overflow-y:auto}.modal-slide._inner-scroll .modal-footer{margin-top:auto}.modal-slide .modal-content,.modal-slide .modal-footer,.modal-slide .modal-header{padding:0 2.6rem 2.6rem}.modal-slide .modal-header{padding-bottom:2.1rem;padding-top:2.1rem}.modal-popup{left:0;overflow-y:auto;z-index:900}.modal-popup._show .modal-inner-wrap{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.modal-popup .modal-inner-wrap{box-sizing:border-box;height:auto;left:0;margin:5rem auto;position:absolute;right:0;-webkit-transform:translateY(-200%);-ms-transform:translateY(-200%);transform:translateY(-200%);transition-duration:.2s;transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-timing-function:ease;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:75%}.modal-popup._inner-scroll{overflow-y:visible}.ie10 .modal-popup._inner-scroll,.ie9 .modal-popup._inner-scroll{overflow-y:auto}.modal-popup._inner-scroll .modal-inner-wrap{max-height:90%}.ie10 .modal-popup._inner-scroll .modal-inner-wrap,.ie9 .modal-popup._inner-scroll .modal-inner-wrap{max-height:none}.modal-popup._inner-scroll .modal-content{overflow-y:auto}.modal-popup .modal-content,.modal-popup .modal-footer,.modal-popup .modal-header{padding-left:3rem;padding-right:3rem}.modal-popup .modal-footer,.modal-popup .modal-header{-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.modal-popup .modal-header{padding-bottom:3rem;padding-top:3rem}.modal-popup .modal-footer{margin-top:auto;padding-bottom:3rem;padding-top:3rem}.modal-popup .modal-footer-actions{text-align:right}.modal-popup.confirm .modal-inner-wrap{left:50%;margin-left:-25rem;width:50rem}.modal-popup.confirm .modal-footer{text-align:right}.modal-popup._image-box .modal-inner-wrap{margin:5rem auto;max-width:78rem;position:static}.modal-popup._image-box .thumbnail-preview{padding-bottom:3rem;text-align:center}.modal-popup._image-box .thumbnail-preview .thumbnail-preview-image-block{border:1px solid #ccc;margin:0 auto 2rem;max-width:58rem;padding:2rem}.modal-popup._image-box .thumbnail-preview .thumbnail-preview-image{max-height:54rem}@media (max-width:768px){.modal-popup.modal-slide{left:14.8rem;z-index:900}.modal-popup.modal-slide._show .modal-inner-wrap{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.modal-popup.modal-slide .modal-inner-wrap{height:100%;overflow-y:auto;position:static;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);transition-duration:.3s;transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-timing-function:ease-in-out;width:auto;margin:0;max-height:none}}.admin__action-dropdown-wrap{display:inline-block;position:relative}.admin__action-dropdown-wrap .admin__action-dropdown-text:after{left:-6px;right:0}.admin__action-dropdown-wrap .admin__action-dropdown-menu{left:auto;right:0}.admin__action-dropdown-wrap._active .admin__action-dropdown,.admin__action-dropdown-wrap.active .admin__action-dropdown{border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5)}.admin__action-dropdown-wrap._active .admin__action-dropdown-text:after,.admin__action-dropdown-wrap.active .admin__action-dropdown-text:after{background-color:#fff;content:'';height:6px;position:absolute;top:100%}.admin__action-dropdown-wrap._active .admin__action-dropdown-menu,.admin__action-dropdown-wrap.active .admin__action-dropdown-menu{display:block}.admin__action-dropdown-wrap._disabled .admin__action-dropdown{cursor:default}.admin__action-dropdown-wrap._disabled:hover .admin__action-dropdown{color:#333}.admin__action-dropdown{background-color:#fff;border:1px solid transparent;border-bottom:none;border-radius:0;box-shadow:none;color:#333;display:inline-block;font-size:1.3rem;font-weight:400;letter-spacing:-.025em;padding:.7rem 3.3rem .8rem 1.5rem;position:relative;vertical-align:baseline;z-index:2}.admin__action-dropdown._active:after,.admin__action-dropdown.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin__action-dropdown:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;top:50%;transition:all .2s linear;width:0}._active .admin__action-dropdown:after,.active .admin__action-dropdown:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin__action-dropdown:hover:after{border-color:#000 transparent transparent}.admin__action-dropdown:focus,.admin__action-dropdown:hover{background-color:#fff;color:#000;text-decoration:none}.admin__action-dropdown:after{right:1.5rem}.admin__action-dropdown:before{margin-right:1rem}.admin__action-dropdown-menu{background-color:#fff;border:1px solid #007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5);display:none;line-height:1.36;margin-top:-1px;min-width:120%;padding:.5rem 1rem;position:absolute;top:100%;transition:all .15s ease;z-index:1}.admin__action-dropdown-menu>li{display:block}.admin__action-dropdown-menu>li>a{color:#333;display:block;text-decoration:none;padding:.6rem .5rem}.selectmenu{display:inline-block;position:relative;text-align:left;z-index:1}.selectmenu._active{z-index:500;border-color:#007bdb}.selectmenu .action-delete,.selectmenu .action-edit,.selectmenu .action-save{background-color:transparent;border-color:transparent;box-shadow:none;padding:0 1rem}.selectmenu .action-delete:hover,.selectmenu .action-edit:hover,.selectmenu .action-save:hover{background-color:transparent;border-color:transparent;box-shadow:none}.selectmenu .action-delete:before,.selectmenu .action-edit:before,.selectmenu .action-save:before{content:'\e630'}.selectmenu .action-delete,.selectmenu .action-edit{border:0 solid #fff;border-left-width:1px;bottom:0;position:absolute;right:0;top:0;z-index:1}.selectmenu .action-delete:hover,.selectmenu .action-edit:hover{border:0 solid #fff;border-left-width:1px}.selectmenu .action-save:before{content:'\e625'}.selectmenu .action-edit:before{content:'\e631'}.selectmenu-value{display:inline-block}.selectmenu-value input[type=text]{-moz-appearance:none;-webkit-appearance:none;appearance:none;border:0;display:inline;margin:0;width:6rem}body._keyfocus .selectmenu-value input[type=text]:focus{box-shadow:none}.selectmenu-toggle{padding-right:3rem;background:0 0;border-width:0;bottom:0;float:right;position:absolute;right:0;top:0;width:0}.selectmenu-toggle._active:after,.selectmenu-toggle.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.selectmenu-toggle:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.1rem;top:50%;transition:all .2s linear;width:0}._active .selectmenu-toggle:after,.active .selectmenu-toggle:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.selectmenu-toggle:hover:after{border-color:#000 transparent transparent}.selectmenu-toggle:active,.selectmenu-toggle:focus,.selectmenu-toggle:hover{background:0 0}.selectmenu._active .selectmenu-toggle:before{border-color:#007bdb}body._keyfocus .selectmenu-toggle:focus{box-shadow:none}.selectmenu-toggle:before{background:#e3e3e3;border-left:1px solid #adadad;bottom:0;content:'';display:block;position:absolute;right:0;top:0;width:3.2rem}.selectmenu-items{background:#fff;border:1px solid #007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5);display:none;float:left;left:-1px;margin-top:3px;max-width:20rem;min-width:calc(100% + 2px);position:absolute;top:100%}.selectmenu-items._active{display:block}.selectmenu-items ul{float:left;list-style-type:none;margin:0;min-width:100%;padding:0}.selectmenu-items li{display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;transition:background .2s linear}.selectmenu-items li:hover{background:#e3e3e3}.selectmenu-items li:last-child .selectmenu-item-action,.selectmenu-items li:last-child .selectmenu-item-action:visited{color:#008bdb;text-decoration:none}.selectmenu-items li:last-child .selectmenu-item-action:hover{color:#0fa7ff;text-decoration:underline}.selectmenu-items li:last-child .selectmenu-item-action:active{color:#ff5501;text-decoration:underline}.selectmenu-item{position:relative;width:100%;z-index:1}li._edit>.selectmenu-item{display:none}.selectmenu-item-edit{display:none;padding:.3rem 4rem .3rem .4rem;position:relative;white-space:nowrap;z-index:1}li:last-child .selectmenu-item-edit{padding-right:.4rem}.selectmenu-item-edit .admin__control-text{width:5.4rem;margin:0}li._edit .selectmenu-item-edit{display:block}.selectmenu-item-action{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:0 0;border:0;color:#333;display:block;font-size:1.4rem;font-weight:400;min-width:100%;padding:1rem 6rem 1rem 1.5rem;text-align:left;transition:background .2s linear;width:5rem}.selectmenu-item-action:focus,.selectmenu-item-action:hover{background:#e3e3e3}.abs-actions-split-xl .action-default,.page-actions .actions-split .action-default{margin-right:4rem}.abs-actions-split-xl .action-toggle,.page-actions .actions-split .action-toggle{padding-right:4rem}.abs-actions-split-xl .action-toggle:after,.page-actions .actions-split .action-toggle:after{border-width:.9rem .6rem 0;margin-top:-.3rem;right:1.4rem}.actions-split{position:relative;z-index:200}.actions-split._active,.actions-split.active,.actions-split:hover{box-shadow:0 0 0 1px #007bdb}.actions-split._active .action-toggle.action-primary,.actions-split._active .action-toggle.primary,.actions-split.active .action-toggle.action-primary,.actions-split.active .action-toggle.primary{background-color:#ba4000;border-color:#ba4000}.actions-split._active .dropdown-menu,.actions-split.active .dropdown-menu{opacity:1;visibility:visible;display:block}.actions-split .action-default,.actions-split .action-toggle{float:left;margin:0}.actions-split .action-default._active,.actions-split .action-default.active,.actions-split .action-default:hover,.actions-split .action-toggle._active,.actions-split .action-toggle.active,.actions-split .action-toggle:hover{box-shadow:none}.actions-split .action-default{margin-right:3.2rem;min-width:9.3rem}.actions-split .action-toggle{padding-right:3.2rem;border-left-color:rgba(0,0,0,.2);bottom:0;padding-left:0;position:absolute;right:0;top:0}.actions-split .action-toggle._active:after,.actions-split .action-toggle.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.actions-split .action-toggle:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.2rem;top:50%;transition:all .2s linear;width:0}._active .actions-split .action-toggle:after,.active .actions-split .action-toggle:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.actions-split .action-toggle:hover:after{border-color:#000 transparent transparent}.actions-split .action-toggle.action-primary:after,.actions-split .action-toggle.action-secondary:after,.actions-split .action-toggle.primary:after,.actions-split .action-toggle.secondary:after{border-color:#fff transparent transparent}.actions-split .action-toggle>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.action-select-wrap{display:inline-block;position:relative}.action-select-wrap .action-select{padding-right:3.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#fff;font-weight:400;text-align:left}.action-select-wrap .action-select._active:after,.action-select-wrap .action-select.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-select-wrap .action-select:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.2rem;top:50%;transition:all .2s linear;width:0}._active .action-select-wrap .action-select:after,.active .action-select-wrap .action-select:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-select-wrap .action-select:hover:after{border-color:#000 transparent transparent}.action-select-wrap .action-select:hover,.action-select-wrap .action-select:hover:before{border-color:#878787}.action-select-wrap .action-select:before{background-color:#e3e3e3;border:1px solid #adadad;bottom:0;content:'';position:absolute;right:0;top:0;width:3.2rem}.action-select-wrap .action-select._active{border-color:#007bdb}.action-select-wrap .action-select._active:before{border-color:#007bdb #007bdb #007bdb #adadad}.action-select-wrap .action-select[disabled]{color:#333}.action-select-wrap .action-select[disabled]:after{border-color:#333 transparent transparent}.action-select-wrap._active{z-index:500}.action-select-wrap._active .action-select,.action-select-wrap._active .action-select:before{border-color:#007bdb}.action-select-wrap._active .action-select:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-select-wrap .abs-action-menu .action-submenu,.action-select-wrap .abs-action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu,.action-select-wrap .action-menu .action-submenu,.action-select-wrap .actions-split .action-menu .action-submenu,.action-select-wrap .actions-split .action-menu .action-submenu .action-submenu,.action-select-wrap .actions-split .dropdown-menu .action-submenu,.action-select-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{max-height:45rem;overflow-y:auto}.action-select-wrap .action-menu-items{left:0;position:absolute;right:0;top:100%}.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu,.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.action-menu,.action-select-wrap .action-menu-items>.action-menu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu .action-submenu{min-width:100%;position:static}.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.abs-action-menu .action-submenu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.action-menu .action-submenu,.action-select-wrap .action-menu-items>.action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .action-menu .action-submenu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu .action-submenu,.action-select-wrap .action-menu-items>.actions-split .dropdown-menu .action-submenu .action-submenu .action-submenu{position:absolute}.action-multicheck-wrap{display:inline-block;height:1.6rem;padding-top:1px;position:relative;width:3.1rem;z-index:200}.action-multicheck-wrap:hover .action-multicheck-toggle,.action-multicheck-wrap:hover .admin__control-checkbox+label:before{border-color:#878787}.action-multicheck-wrap._active .action-multicheck-toggle,.action-multicheck-wrap._active .admin__control-checkbox+label:before{border-color:#007bdb}.action-multicheck-wrap._active .abs-action-menu .action-submenu,.action-multicheck-wrap._active .abs-action-menu .action-submenu .action-submenu,.action-multicheck-wrap._active .action-menu,.action-multicheck-wrap._active .action-menu .action-submenu,.action-multicheck-wrap._active .actions-split .action-menu .action-submenu,.action-multicheck-wrap._active .actions-split .action-menu .action-submenu .action-submenu,.action-multicheck-wrap._active .actions-split .dropdown-menu .action-submenu,.action-multicheck-wrap._active .actions-split .dropdown-menu .action-submenu .action-submenu{opacity:1;visibility:visible;display:block}.action-multicheck-wrap._disabled .admin__control-checkbox+label:before{background-color:#fff}.action-multicheck-wrap._disabled .action-multicheck-toggle,.action-multicheck-wrap._disabled .admin__control-checkbox+label:before{border-color:#adadad;opacity:1}.action-multicheck-wrap .action-multicheck-toggle,.action-multicheck-wrap .admin__control-checkbox,.action-multicheck-wrap .admin__control-checkbox+label{float:left}.action-multicheck-wrap .action-multicheck-toggle{border-radius:0 1px 1px 0;height:1.6rem;margin-left:-1px;padding:0;position:relative;transition:border-color .1s linear;width:1.6rem}.action-multicheck-wrap .action-multicheck-toggle._active:after,.action-multicheck-wrap .action-multicheck-toggle.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-multicheck-wrap .action-multicheck-toggle:after{border-color:#000 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;top:50%;transition:all .2s linear;width:0}._active .action-multicheck-wrap .action-multicheck-toggle:after,.active .action-multicheck-wrap .action-multicheck-toggle:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.action-multicheck-wrap .action-multicheck-toggle:hover:after{border-color:#000 transparent transparent}.action-multicheck-wrap .action-multicheck-toggle:focus{border-color:#007bdb}.action-multicheck-wrap .action-multicheck-toggle:after{right:.3rem}.action-multicheck-wrap .action-multicheck-toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.action-multicheck-wrap .abs-action-menu .action-submenu,.action-multicheck-wrap .abs-action-menu .action-submenu .action-submenu,.action-multicheck-wrap .action-menu,.action-multicheck-wrap .action-menu .action-submenu,.action-multicheck-wrap .actions-split .action-menu .action-submenu,.action-multicheck-wrap .actions-split .action-menu .action-submenu .action-submenu,.action-multicheck-wrap .actions-split .dropdown-menu .action-submenu,.action-multicheck-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{left:-1.2rem;margin-top:1px;right:auto;text-align:left}.action-multicheck-wrap .action-menu-item{white-space:nowrap}.admin__action-multiselect-wrap{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.admin__action-multiselect-wrap.action-select-wrap:focus{box-shadow:none}.admin__action-multiselect-wrap.action-select-wrap .abs-action-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .abs-action-menu .action-submenu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .action-menu,.admin__action-multiselect-wrap.action-select-wrap .action-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .action-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .action-menu .action-submenu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .dropdown-menu .action-submenu,.admin__action-multiselect-wrap.action-select-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{max-height:none;overflow-y:inherit}.admin__action-multiselect-wrap .action-menu-item{transition:background-color .1s linear}.admin__action-multiselect-wrap .action-menu-item._selected{background-color:#e3e3e3}.admin__action-multiselect-wrap .action-menu-item._hover{background-color:#e0f6fe}.admin__action-multiselect-wrap .admin__action-multiselect{border:1px solid #adadad;cursor:pointer;min-height:3.2rem;padding:.7rem 3.6rem .6rem 1em;white-space:normal}.admin__action-multiselect-wrap .admin__action-multiselect:after{bottom:1.25rem;top:auto}.admin__action-multiselect-wrap .admin__action-multiselect:before{height:3.2rem;top:auto;width:3.2rem}.abs-action-menu .action-submenu,.abs-action-menu .action-submenu .action-submenu,.action-menu,.action-menu .action-submenu,.actions-split .action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu,.actions-split .dropdown-menu .action-submenu .action-submenu{text-align:left}.admin__action-multiselect-label{position:relative;z-index:1}.admin__action-multiselect-label:before{margin-right:.5rem}.admin__action-multiselect-search-wrap{margin-bottom:1rem;padding:1rem;position:relative}.admin__action-multiselect-search-wrap+.admin__action-multiselect-menu-inner{border-bottom:1px solid #e3e3e3;border-top:1px solid #e3e3e3;margin-bottom:1rem}.admin__action-multiselect-menu-inner{margin-bottom:0;max-height:17.2rem;overflow-y:auto}.admin__action-multiselect-search{padding-right:3rem;width:100%}.admin__action-multiselect-search-label{display:block;font-size:1.5rem;height:1em;overflow:hidden;position:absolute;right:2.2rem;top:1.7rem;width:1em}.admin__action-multiselect-search-label:before{content:'\e60c'}.admin__action-multiselect-actions-wrap{text-align:center}.admin__action-multiselect-actions-wrap .action-default{font-size:1.3rem;min-width:13rem}.admin__action-multiselect-crumb{background-color:#f5f5f5;border:1px solid #a79d95;border-radius:1px;display:inline-block;font-size:1.2rem;margin:-.3rem .9rem .5rem -1.1rem;padding:.3rem 2.4rem .4rem 1rem;position:relative;transition:border-color .1s linear}.admin__action-multiselect-crumb:hover{border-color:#908379}.admin__action-multiselect-crumb .action-close{bottom:0;font-size:.5em;position:absolute;right:0;top:0;width:2rem}.admin__action-multiselect-crumb .action-close:hover{color:#000}.admin__action-multiselect-crumb .action-close:active,.admin__action-multiselect-crumb .action-close:focus{background-color:transparent}.admin__action-multiselect-crumb .action-close:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.abs-action-delete,.abs-action-reset,.action-close,.notifications-close,.search-global-field._active .search-global-action{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;padding:0}.abs-action-delete:hover,.abs-action-reset:hover,.action-close:hover,.notifications-close:hover,.search-global-field._active .search-global-action:hover{background-color:transparent;border:none;box-shadow:none}.abs-action-default,.abs-action-pattern,.abs-action-primary,.abs-action-quaternary,.abs-action-secondary,.abs-action-tertiary,.action-default,.action-primary,.action-quaternary,.action-secondary,.action-tertiary,.page-actions .page-actions-buttons>button,.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions>button,.page-actions>button.action-primary,.page-actions>button.primary,button,button.primary,button.secondary,button.tertiary{border:1px solid;border-radius:0;display:inline-block;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:600;line-height:1.36;padding:.6rem 1em;text-align:center;vertical-align:baseline}.abs-action-default.disabled,.abs-action-default[disabled],.abs-action-pattern.disabled,.abs-action-pattern[disabled],.abs-action-primary.disabled,.abs-action-primary[disabled],.abs-action-quaternary.disabled,.abs-action-quaternary[disabled],.abs-action-secondary.disabled,.abs-action-secondary[disabled],.abs-action-tertiary.disabled,.abs-action-tertiary[disabled],.action-default.disabled,.action-default[disabled],.action-primary.disabled,.action-primary[disabled],.action-quaternary.disabled,.action-quaternary[disabled],.action-secondary.disabled,.action-secondary[disabled],.action-tertiary.disabled,.action-tertiary[disabled],.page-actions .page-actions-buttons>button.action-primary.disabled,.page-actions .page-actions-buttons>button.action-primary[disabled],.page-actions .page-actions-buttons>button.disabled,.page-actions .page-actions-buttons>button.primary.disabled,.page-actions .page-actions-buttons>button.primary[disabled],.page-actions .page-actions-buttons>button[disabled],.page-actions>button.action-primary.disabled,.page-actions>button.action-primary[disabled],.page-actions>button.disabled,.page-actions>button.primary.disabled,.page-actions>button.primary[disabled],.page-actions>button[disabled],button.disabled,button.primary.disabled,button.primary[disabled],button.secondary.disabled,button.secondary[disabled],button.tertiary.disabled,button.tertiary[disabled],button[disabled]{cursor:default;opacity:.5;pointer-events:none}.abs-action-l,.page-actions .page-actions-buttons>button,.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions button,.page-actions>button.action-primary,.page-actions>button.primary{font-size:1.6rem;letter-spacing:.025em;padding-bottom:.6875em;padding-top:.6875em}.abs-action-delete{display:inline-block;font-size:1.6rem;margin-left:1.2rem;padding-top:.7rem;text-decoration:none;vertical-align:middle}.abs-action-delete:after{color:#666;content:'\e630'}.abs-action-delete:hover:after{color:#35302c}.abs-action-default,button{background:#e3e3e3;border-color:#adadad;color:#514943}.abs-action-default:active,.abs-action-default:focus,.abs-action-default:hover,button:active,button:focus,button:hover{background-color:#dbdbdb;color:#514943;text-decoration:none}.abs-action-primary,.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions>button.action-primary,.page-actions>button.primary,button.primary{background-color:#eb5202;border-color:#eb5202;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.abs-action-primary:active,.abs-action-primary:focus,.abs-action-primary:hover,.page-actions .page-actions-buttons>button.action-primary:active,.page-actions .page-actions-buttons>button.action-primary:focus,.page-actions .page-actions-buttons>button.action-primary:hover,.page-actions .page-actions-buttons>button.primary:active,.page-actions .page-actions-buttons>button.primary:focus,.page-actions .page-actions-buttons>button.primary:hover,.page-actions>button.action-primary:active,.page-actions>button.action-primary:focus,.page-actions>button.action-primary:hover,.page-actions>button.primary:active,.page-actions>button.primary:focus,.page-actions>button.primary:hover,button.primary:active,button.primary:focus,button.primary:hover{background-color:#ba4000;border-color:#b84002;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.abs-action-primary.disabled,.abs-action-primary[disabled],.page-actions .page-actions-buttons>button.action-primary.disabled,.page-actions .page-actions-buttons>button.action-primary[disabled],.page-actions .page-actions-buttons>button.primary.disabled,.page-actions .page-actions-buttons>button.primary[disabled],.page-actions>button.action-primary.disabled,.page-actions>button.action-primary[disabled],.page-actions>button.primary.disabled,.page-actions>button.primary[disabled],button.primary.disabled,button.primary[disabled]{cursor:default;opacity:.5;pointer-events:none}.abs-action-secondary,button.secondary{background-color:#514943;border-color:#514943;color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.3)}.abs-action-secondary:active,.abs-action-secondary:focus,.abs-action-secondary:hover,button.secondary:active,button.secondary:focus,button.secondary:hover{background-color:#35302c;border-color:#35302c;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.abs-action-secondary:active,button.secondary:active{background-color:#35302c}.abs-action-tertiary,button.tertiary{background-color:transparent;border-color:transparent;text-shadow:none;color:#008bdb}.abs-action-tertiary:active,.abs-action-tertiary:focus,.abs-action-tertiary:hover,button.tertiary:active,button.tertiary:focus,button.tertiary:hover{background-color:transparent;border-color:transparent;box-shadow:none;color:#0fa7ff;text-decoration:underline}.abs-action-quaternary,.page-actions .page-actions-buttons>button,.page-actions>button{background-color:transparent;border-color:transparent;text-shadow:none;color:#333}.abs-action-quaternary:active,.abs-action-quaternary:focus,.abs-action-quaternary:hover,.page-actions .page-actions-buttons>button:active,.page-actions .page-actions-buttons>button:focus,.page-actions .page-actions-buttons>button:hover,.page-actions>button:active,.page-actions>button:focus,.page-actions>button:hover{background-color:transparent;border-color:transparent;box-shadow:none;color:#1a1a1a}.abs-action-menu,.actions-split .abs-action-menu .action-submenu,.actions-split .abs-action-menu .action-submenu .action-submenu,.actions-split .action-menu,.actions-split .action-menu .action-submenu,.actions-split .actions-split .dropdown-menu .action-submenu,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu,.actions-split .dropdown-menu{text-align:left;background-color:#fff;border:1px solid #007bdb;border-radius:1px;box-shadow:1px 1px 5px rgba(0,0,0,.5);color:#333;display:none;font-weight:400;left:0;list-style:none;margin:2px 0 0;min-width:0;padding:0;position:absolute;right:0;top:100%}.abs-action-menu._active,.actions-split .abs-action-menu .action-submenu .action-submenu._active,.actions-split .abs-action-menu .action-submenu._active,.actions-split .action-menu .action-submenu._active,.actions-split .action-menu._active,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu._active,.actions-split .actions-split .dropdown-menu .action-submenu._active,.actions-split .dropdown-menu._active{display:block}.abs-action-menu>li,.actions-split .abs-action-menu .action-submenu .action-submenu>li,.actions-split .abs-action-menu .action-submenu>li,.actions-split .action-menu .action-submenu>li,.actions-split .action-menu>li,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li,.actions-split .actions-split .dropdown-menu .action-submenu>li,.actions-split .dropdown-menu>li{border:none;display:block;padding:0;transition:background-color .1s linear}.abs-action-menu>li>a:hover,.actions-split .abs-action-menu .action-submenu .action-submenu>li>a:hover,.actions-split .abs-action-menu .action-submenu>li>a:hover,.actions-split .action-menu .action-submenu>li>a:hover,.actions-split .action-menu>li>a:hover,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li>a:hover,.actions-split .actions-split .dropdown-menu .action-submenu>li>a:hover,.actions-split .dropdown-menu>li>a:hover{text-decoration:none}.abs-action-menu>li._visible,.abs-action-menu>li:hover,.actions-split .abs-action-menu .action-submenu .action-submenu>li._visible,.actions-split .abs-action-menu .action-submenu .action-submenu>li:hover,.actions-split .abs-action-menu .action-submenu>li._visible,.actions-split .abs-action-menu .action-submenu>li:hover,.actions-split .action-menu .action-submenu>li._visible,.actions-split .action-menu .action-submenu>li:hover,.actions-split .action-menu>li._visible,.actions-split .action-menu>li:hover,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li._visible,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li:hover,.actions-split .actions-split .dropdown-menu .action-submenu>li._visible,.actions-split .actions-split .dropdown-menu .action-submenu>li:hover,.actions-split .dropdown-menu>li._visible,.actions-split .dropdown-menu>li:hover{background-color:#e3e3e3}.abs-action-menu>li:active,.actions-split .abs-action-menu .action-submenu .action-submenu>li:active,.actions-split .abs-action-menu .action-submenu>li:active,.actions-split .action-menu .action-submenu>li:active,.actions-split .action-menu>li:active,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li:active,.actions-split .actions-split .dropdown-menu .action-submenu>li:active,.actions-split .dropdown-menu>li:active{background-color:#cacaca}.abs-action-menu>li._parent,.actions-split .abs-action-menu .action-submenu .action-submenu>li._parent,.actions-split .abs-action-menu .action-submenu>li._parent,.actions-split .action-menu .action-submenu>li._parent,.actions-split .action-menu>li._parent,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li._parent,.actions-split .actions-split .dropdown-menu .action-submenu>li._parent,.actions-split .dropdown-menu>li._parent{display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.abs-action-menu>li._parent>.action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .abs-action-menu .action-submenu>li._parent>.action-menu-item,.actions-split .action-menu .action-submenu>li._parent>.action-menu-item,.actions-split .action-menu>li._parent>.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu>li._parent>.action-menu-item,.actions-split .dropdown-menu>li._parent>.action-menu-item{min-width:100%}.abs-action-menu .action-menu-item,.abs-action-menu .item,.actions-split .abs-action-menu .action-submenu .action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu .action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu .item,.actions-split .abs-action-menu .action-submenu .item,.actions-split .action-menu .action-menu-item,.actions-split .action-menu .action-submenu .action-menu-item,.actions-split .action-menu .action-submenu .item,.actions-split .action-menu .item,.actions-split .actions-split .dropdown-menu .action-submenu .action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu .action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu .item,.actions-split .actions-split .dropdown-menu .action-submenu .item,.actions-split .dropdown-menu .action-menu-item,.actions-split .dropdown-menu .item{display:block;padding:.6875em 1em;cursor:pointer}.abs-action-menu .action-submenu,.actions-split .action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu{bottom:auto;left:auto;margin-left:0;margin-top:-1px;position:absolute;right:auto;top:auto}.ie9 .abs-action-menu .action-submenu,.ie9 .actions-split .abs-action-menu .action-submenu .action-submenu,.ie9 .actions-split .abs-action-menu .action-submenu .action-submenu .action-submenu,.ie9 .actions-split .action-menu .action-submenu,.ie9 .actions-split .action-menu .action-submenu .action-submenu,.ie9 .actions-split .actions-split .dropdown-menu .action-submenu .action-submenu,.ie9 .actions-split .actions-split .dropdown-menu .action-submenu .action-submenu .action-submenu,.ie9 .actions-split .dropdown-menu .action-submenu{margin-left:99%;margin-top:-3.5rem}.abs-action-menu a.action-menu-item,.actions-split .abs-action-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .abs-action-menu .action-submenu a.action-menu-item,.actions-split .action-menu .action-submenu a.action-menu-item,.actions-split .action-menu a.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .actions-split .dropdown-menu .action-submenu a.action-menu-item,.actions-split .dropdown-menu a.action-menu-item{color:#333}.abs-action-menu a.action-menu-item:focus,.actions-split .abs-action-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .abs-action-menu .action-submenu a.action-menu-item:focus,.actions-split .action-menu .action-submenu a.action-menu-item:focus,.actions-split .action-menu a.action-menu-item:focus,.actions-split .actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .actions-split .dropdown-menu .action-submenu a.action-menu-item:focus,.actions-split .dropdown-menu a.action-menu-item:focus{background-color:#e3e3e3;box-shadow:none}.abs-action-wrap-triangle{position:relative}.abs-action-wrap-triangle .action-default{width:100%}.abs-action-wrap-triangle .action-default:after,.abs-action-wrap-triangle .action-default:before{border-style:solid;content:'';height:0;position:absolute;top:0;width:0}.abs-action-wrap-triangle .action-default:active,.abs-action-wrap-triangle .action-default:focus,.abs-action-wrap-triangle .action-default:hover{box-shadow:none}._keyfocus .abs-action-wrap-triangle .action-default:focus{box-shadow:0 0 0 1px #007bdb}.ie10 .abs-action-wrap-triangle .action-default.disabled,.ie10 .abs-action-wrap-triangle .action-default[disabled],.ie9 .abs-action-wrap-triangle .action-default.disabled,.ie9 .abs-action-wrap-triangle .action-default[disabled]{background-color:#fcfcfc;opacity:1;text-shadow:none}.abs-action-wrap-triangle-right{display:inline-block;padding-right:1.6rem;position:relative}.abs-action-wrap-triangle-right .action-default:after,.abs-action-wrap-triangle-right .action-default:before{border-color:transparent transparent transparent #e3e3e3;border-width:1.7rem 0 1.6rem 1.7rem;left:100%;margin-left:-1.7rem}.abs-action-wrap-triangle-right .action-default:before{border-left-color:#949494;right:-1px}.abs-action-wrap-triangle-right .action-default:active:after,.abs-action-wrap-triangle-right .action-default:focus:after,.abs-action-wrap-triangle-right .action-default:hover:after{border-left-color:#dbdbdb}.ie10 .abs-action-wrap-triangle-right .action-default.disabled:after,.ie10 .abs-action-wrap-triangle-right .action-default[disabled]:after,.ie9 .abs-action-wrap-triangle-right .action-default.disabled:after,.ie9 .abs-action-wrap-triangle-right .action-default[disabled]:after{border-color:transparent transparent transparent #fcfcfc}.abs-action-wrap-triangle-right .action-primary:after{border-color:transparent transparent transparent #eb5202}.abs-action-wrap-triangle-right .action-primary:active:after,.abs-action-wrap-triangle-right .action-primary:focus:after,.abs-action-wrap-triangle-right .action-primary:hover:after{border-left-color:#ba4000}.abs-action-wrap-triangle-left{display:inline-block;padding-left:1.6rem}.abs-action-wrap-triangle-left .action-default{text-indent:-.85rem}.abs-action-wrap-triangle-left .action-default:after,.abs-action-wrap-triangle-left .action-default:before{border-color:transparent #e3e3e3 transparent transparent;border-width:1.7rem 1.7rem 1.6rem 0;margin-right:-1.7rem;right:100%}.abs-action-wrap-triangle-left .action-default:before{border-right-color:#949494;left:-1px}.abs-action-wrap-triangle-left .action-default:active:after,.abs-action-wrap-triangle-left .action-default:focus:after,.abs-action-wrap-triangle-left .action-default:hover:after{border-right-color:#dbdbdb}.ie10 .abs-action-wrap-triangle-left .action-default.disabled:after,.ie10 .abs-action-wrap-triangle-left .action-default[disabled]:after,.ie9 .abs-action-wrap-triangle-left .action-default.disabled:after,.ie9 .abs-action-wrap-triangle-left .action-default[disabled]:after{border-color:transparent #fcfcfc transparent transparent}.abs-action-wrap-triangle-left .action-primary:after{border-color:transparent #eb5202 transparent transparent}.abs-action-wrap-triangle-left .action-primary:active:after,.abs-action-wrap-triangle-left .action-primary:focus:after,.abs-action-wrap-triangle-left .action-primary:hover:after{border-right-color:#ba4000}.action-default,button{background:#e3e3e3;border-color:#adadad;color:#514943}.action-default:active,.action-default:focus,.action-default:hover,button:active,button:focus,button:hover{background-color:#dbdbdb;color:#514943;text-decoration:none}.action-primary{background-color:#eb5202;border-color:#eb5202;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.action-primary:active,.action-primary:focus,.action-primary:hover{background-color:#ba4000;border-color:#b84002;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.action-primary.disabled,.action-primary[disabled]{cursor:default;opacity:.5;pointer-events:none}.action-secondary{background-color:#514943;border-color:#514943;color:#fff;text-shadow:1px 1px 1px rgba(0,0,0,.3)}.action-secondary:active,.action-secondary:focus,.action-secondary:hover{background-color:#35302c;border-color:#35302c;box-shadow:0 0 0 1px #007bdb;color:#fff;text-decoration:none}.action-secondary:active{background-color:#35302c}.action-quaternary,.action-tertiary{background-color:transparent;border-color:transparent;text-shadow:none}.action-quaternary:active,.action-quaternary:focus,.action-quaternary:hover,.action-tertiary:active,.action-tertiary:focus,.action-tertiary:hover{background-color:transparent;border-color:transparent;box-shadow:none}.action-tertiary{color:#008bdb}.action-tertiary:active,.action-tertiary:focus,.action-tertiary:hover{color:#0fa7ff;text-decoration:underline}.action-quaternary{color:#333}.action-quaternary:active,.action-quaternary:focus,.action-quaternary:hover{color:#1a1a1a}.action-close>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.action-close:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.action-close:before{content:'\e62f';transition:color .1s linear}.action-close:hover{cursor:pointer;text-decoration:none}.abs-action-menu .action-submenu,.abs-action-menu .action-submenu .action-submenu,.action-menu,.action-menu .action-submenu,.actions-split .action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu,.actions-split .dropdown-menu .action-submenu .action-submenu{background-color:#fff;border:1px solid #007bdb;border-radius:1px;box-shadow:1px 1px 5px rgba(0,0,0,.5);color:#333;display:none;font-weight:400;left:0;list-style:none;margin:2px 0 0;min-width:0;padding:0;position:absolute;right:0;top:100%}.abs-action-menu .action-submenu .action-submenu._active,.abs-action-menu .action-submenu._active,.action-menu .action-submenu._active,.action-menu._active,.actions-split .action-menu .action-submenu .action-submenu._active,.actions-split .action-menu .action-submenu._active,.actions-split .dropdown-menu .action-submenu .action-submenu._active,.actions-split .dropdown-menu .action-submenu._active{display:block}.abs-action-menu .action-submenu .action-submenu>li,.abs-action-menu .action-submenu>li,.action-menu .action-submenu>li,.action-menu>li,.actions-split .action-menu .action-submenu .action-submenu>li,.actions-split .action-menu .action-submenu>li,.actions-split .dropdown-menu .action-submenu .action-submenu>li,.actions-split .dropdown-menu .action-submenu>li{border:none;display:block;padding:0;transition:background-color .1s linear}.abs-action-menu .action-submenu .action-submenu>li>a:hover,.abs-action-menu .action-submenu>li>a:hover,.action-menu .action-submenu>li>a:hover,.action-menu>li>a:hover,.actions-split .action-menu .action-submenu .action-submenu>li>a:hover,.actions-split .action-menu .action-submenu>li>a:hover,.actions-split .dropdown-menu .action-submenu .action-submenu>li>a:hover,.actions-split .dropdown-menu .action-submenu>li>a:hover{text-decoration:none}.abs-action-menu .action-submenu .action-submenu>li._visible,.abs-action-menu .action-submenu .action-submenu>li:hover,.abs-action-menu .action-submenu>li._visible,.abs-action-menu .action-submenu>li:hover,.action-menu .action-submenu>li._visible,.action-menu .action-submenu>li:hover,.action-menu>li._visible,.action-menu>li:hover,.actions-split .action-menu .action-submenu .action-submenu>li._visible,.actions-split .action-menu .action-submenu .action-submenu>li:hover,.actions-split .action-menu .action-submenu>li._visible,.actions-split .action-menu .action-submenu>li:hover,.actions-split .dropdown-menu .action-submenu .action-submenu>li._visible,.actions-split .dropdown-menu .action-submenu .action-submenu>li:hover,.actions-split .dropdown-menu .action-submenu>li._visible,.actions-split .dropdown-menu .action-submenu>li:hover{background-color:#e3e3e3}.abs-action-menu .action-submenu .action-submenu>li:active,.abs-action-menu .action-submenu>li:active,.action-menu .action-submenu>li:active,.action-menu>li:active,.actions-split .action-menu .action-submenu .action-submenu>li:active,.actions-split .action-menu .action-submenu>li:active,.actions-split .dropdown-menu .action-submenu .action-submenu>li:active,.actions-split .dropdown-menu .action-submenu>li:active{background-color:#cacaca}.abs-action-menu .action-submenu .action-submenu>li._parent,.abs-action-menu .action-submenu>li._parent,.action-menu .action-submenu>li._parent,.action-menu>li._parent,.actions-split .action-menu .action-submenu .action-submenu>li._parent,.actions-split .action-menu .action-submenu>li._parent,.actions-split .dropdown-menu .action-submenu .action-submenu>li._parent,.actions-split .dropdown-menu .action-submenu>li._parent{display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.abs-action-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.abs-action-menu .action-submenu>li._parent>.action-menu-item,.action-menu .action-submenu>li._parent>.action-menu-item,.action-menu>li._parent>.action-menu-item,.actions-split .action-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .action-menu .action-submenu>li._parent>.action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu>li._parent>.action-menu-item,.actions-split .dropdown-menu .action-submenu>li._parent>.action-menu-item{min-width:100%}.abs-action-menu .action-submenu .action-menu-item,.abs-action-menu .action-submenu .action-submenu .action-menu-item,.abs-action-menu .action-submenu .action-submenu .item,.abs-action-menu .action-submenu .item,.action-menu .action-menu-item,.action-menu .action-submenu .action-menu-item,.action-menu .action-submenu .item,.action-menu .item,.actions-split .action-menu .action-submenu .action-menu-item,.actions-split .action-menu .action-submenu .action-submenu .action-menu-item,.actions-split .action-menu .action-submenu .action-submenu .item,.actions-split .action-menu .action-submenu .item,.actions-split .dropdown-menu .action-submenu .action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu .action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu .item,.actions-split .dropdown-menu .action-submenu .item{display:block;padding:.6875em 1em;cursor:pointer}.abs-action-menu .action-submenu .action-submenu,.action-menu .action-submenu,.actions-split .action-menu .action-submenu .action-submenu,.actions-split .dropdown-menu .action-submenu .action-submenu{bottom:auto;left:auto;margin-left:0;margin-top:-1px;position:absolute;right:auto;top:auto}.ie9 .abs-action-menu .action-submenu .action-submenu,.ie9 .abs-action-menu .action-submenu .action-submenu .action-submenu,.ie9 .action-menu .action-submenu,.ie9 .action-menu .action-submenu .action-submenu,.ie9 .actions-split .action-menu .action-submenu .action-submenu,.ie9 .actions-split .action-menu .action-submenu .action-submenu .action-submenu,.ie9 .actions-split .dropdown-menu .action-submenu .action-submenu,.ie9 .actions-split .dropdown-menu .action-submenu .action-submenu .action-submenu{margin-left:99%;margin-top:-3.5rem}.abs-action-menu .action-submenu .action-submenu a.action-menu-item,.abs-action-menu .action-submenu a.action-menu-item,.action-menu .action-submenu a.action-menu-item,.action-menu a.action-menu-item,.actions-split .action-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .action-menu .action-submenu a.action-menu-item,.actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item,.actions-split .dropdown-menu .action-submenu a.action-menu-item{color:#333}.abs-action-menu .action-submenu .action-submenu a.action-menu-item:focus,.abs-action-menu .action-submenu a.action-menu-item:focus,.action-menu .action-submenu a.action-menu-item:focus,.action-menu a.action-menu-item:focus,.actions-split .action-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .action-menu .action-submenu a.action-menu-item:focus,.actions-split .dropdown-menu .action-submenu .action-submenu a.action-menu-item:focus,.actions-split .dropdown-menu .action-submenu a.action-menu-item:focus{background-color:#e3e3e3;box-shadow:none}.messages .message:last-child{margin:0 0 2rem}.message{background:#fffbbb;border:none;border-radius:0;color:#333;font-size:1.4rem;margin:0 0 1px;padding:1.8rem 4rem 1.8rem 5.5rem;position:relative;text-shadow:none}.message:before{background:0 0;border:0;color:#007bdb;content:'\e61a';font-family:Icons;font-size:1.9rem;font-style:normal;font-weight:400;height:auto;left:1.9rem;line-height:inherit;margin-top:-1.3rem;position:absolute;speak:none;text-shadow:none;top:50%;width:auto}.message-notice:before{color:#007bdb;content:'\e61a'}.message-warning:before{color:#eb5202;content:'\e623'}.message-error{background:#fcc}.message-error:before{color:#e22626;content:'\e632';font-size:1.5rem;left:2.2rem;margin-top:-1rem}.message-success:before{color:#79a22e;content:'\e62d'}.message-spinner:before{display:none}.message-spinner .spinner{font-size:2.5rem;left:1.5rem;position:absolute;top:1.5rem}.message-in-rating-edit{margin-left:1.8rem;margin-right:1.8rem}.modal-popup .action-close,.modal-slide .action-close{color:#736963;position:absolute;right:0;top:0}.modal-popup .action-close:active,.modal-slide .action-close:active{-webkit-transform:none;-ms-transform:none;transform:none}.modal-popup .action-close:active:before,.modal-slide .action-close:active:before{font-size:1.8rem}.modal-popup .action-close:hover:before,.modal-slide .action-close:hover:before{color:#58504b}.modal-popup .action-close:before,.modal-slide .action-close:before{font-size:2rem}.modal-popup .modal-title{font-size:2.4rem;margin-right:6.4rem}.modal-popup .action-close{padding:3rem}.modal-popup .action-close:active,.modal-popup .action-close:focus{background:0 0;padding-right:3.1rem;padding-top:3.1rem}.modal-slide .modal-title{font-size:2.1rem;margin-right:5.7rem}.modal-slide .action-close{padding:2.1rem 2.6rem}.modal-slide .action-close:active{padding-right:2.7rem;padding-top:2.2rem}.modal-slide .page-main-actions{margin-bottom:.6rem;margin-top:2.1rem}.modal-title{font-weight:400;margin-bottom:0;min-height:1em}.spinner{display:inline-block;font-size:4rem;height:1em;margin-right:1.5rem;position:relative;width:1em}.spinner>span:nth-child(1){-webkit-animation-delay:.27s;animation-delay:.27s;-webkit-transform:rotate(-315deg);-ms-transform:rotate(-315deg);transform:rotate(-315deg)}.spinner>span:nth-child(2){-webkit-animation-delay:.36s;animation-delay:.36s;-webkit-transform:rotate(-270deg);-ms-transform:rotate(-270deg);transform:rotate(-270deg)}.spinner>span:nth-child(3){-webkit-animation-delay:.45s;animation-delay:.45s;-webkit-transform:rotate(-225deg);-ms-transform:rotate(-225deg);transform:rotate(-225deg)}.spinner>span:nth-child(4){-webkit-animation-delay:.54s;animation-delay:.54s;-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}.spinner>span:nth-child(5){-webkit-animation-delay:.63s;animation-delay:.63s;-webkit-transform:rotate(-135deg);-ms-transform:rotate(-135deg);transform:rotate(-135deg)}.spinner>span:nth-child(6){-webkit-animation-delay:.72s;animation-delay:.72s;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg)}.spinner>span:nth-child(7){-webkit-animation-delay:.81s;animation-delay:.81s;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.spinner>span:nth-child(8){-webkit-animation-delay:.9;animation-delay:.9;-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}@-webkit-keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}@keyframes fade{0%{background-color:#514943}100%{background-color:#fff}}.spinner>span{-webkit-transform:scale(0.4);-ms-transform:scale(0.4);transform:scale(0.4);-webkit-animation-name:fade;animation-name:fade;-webkit-animation-duration:.72s;animation-duration:.72s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-direction:linear;animation-direction:linear;background-color:#fff;border-radius:6px;clip:rect(0 .28571429em .1em 0);height:.1em;margin-top:.5em;position:absolute;width:1em}.ie9 .spinner{background:url(../images/ajax-loader.gif) center no-repeat}.ie9 .spinner>span{display:none}.popup-loading{background:rgba(255,255,255,.8);border-color:#ef672f;color:#ef672f;font-size:14px;font-weight:700;left:50%;margin-left:-100px;padding:100px 0 10px;position:fixed;text-align:center;top:40%;width:200px;z-index:1003}.popup-loading:after{background-image:url(../images/loader-1.gif);content:'';height:64px;left:50%;margin:-32px 0 0 -32px;position:absolute;top:40%;width:64px;z-index:2}.loading-mask,.loading-old{background:rgba(255,255,255,.4);bottom:0;left:0;position:fixed;right:0;top:0;z-index:2003}.loading-mask img,.loading-old img{display:none}.loading-mask p,.loading-old p{margin-top:118px}.loading-mask .loader,.loading-old .loader{background:url(../images/loader-1.gif) 50% 30% no-repeat #e5e2dd;border-radius:5px;bottom:0;color:#5e5b56;font-size:14px;font-weight:700;height:160px;left:0;margin:auto;opacity:.95;position:absolute;right:0;text-align:center;top:0;width:160px}.admin-user{float:right;line-height:1.36;margin-left:.3rem;z-index:390}.admin-user._active .admin__action-dropdown,.admin-user.active .admin__action-dropdown{border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5)}.admin-user .admin__action-dropdown{height:3.3rem;padding:.7rem 2.8rem .4rem 4rem}.admin-user .admin__action-dropdown._active:after,.admin-user .admin__action-dropdown.active:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin-user .admin__action-dropdown:after{border-color:#777 transparent transparent;border-style:solid;border-width:.5rem .4rem 0;content:'';height:0;margin-top:-.2rem;position:absolute;right:1.3rem;top:50%;transition:all .2s linear;width:0}._active .admin-user .admin__action-dropdown:after,.active .admin-user .admin__action-dropdown:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.admin-user .admin__action-dropdown:hover:after{border-color:#000 transparent transparent}.admin-user .admin__action-dropdown:before{color:#777;content:'\e600';font-size:2rem;left:1.1rem;margin-top:-1.1rem;position:absolute;top:50%}.admin-user .admin__action-dropdown:hover:before{color:#333}.admin-user .admin__action-dropdown-menu{min-width:20rem;padding-left:1rem;padding-right:1rem}.admin-user .admin__action-dropdown-menu>li>a{padding-right:1.8rem;padding-left:.5em;white-space:nowrap;transition:background-color .1s linear}.admin-user .admin__action-dropdown-menu>li>a:hover{background-color:#e0f6fe;color:#333}.admin-user .admin__action-dropdown-menu>li>a:active{background-color:#c7effd;bottom:-1px;position:relative}.admin-user .admin__action-dropdown-menu .admin-user-name{text-overflow:ellipsis;white-space:nowrap;display:inline-block;max-width:20rem;overflow:hidden;vertical-align:top}.admin-user-account-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;max-width:11.2rem}.search-global{float:right;margin-right:-.3rem;position:relative;z-index:380}.search-global-field{min-width:5rem}.search-global-field._active .search-global-input{background-color:#fff;border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5);padding-right:4rem;width:25rem}.search-global-field._active .search-global-action{display:block;height:3.3rem;position:absolute;right:0;text-indent:-100%;top:0;width:5rem;z-index:3}.search-global-field .autocomplete-results{height:3.3rem;position:absolute;right:0;top:0;width:25rem}.search-global-field .search-global-menu{border:1px solid #007bdb;border-top-color:transparent;box-shadow:1px 1px 5px rgba(0,0,0,.5);left:0;margin-top:-2px;padding:0;position:absolute;right:0;top:100%;z-index:2}.search-global-field .search-global-menu:after{background-color:#fff;content:'';height:5px;left:0;position:absolute;right:0;top:-5px}.search-global-field .search-global-menu>li{background-color:#fff;border-top:1px solid #ddd;display:block;font-size:1.2rem;padding:.75rem 1.4rem .55rem}.search-global-field .search-global-menu>li._active{background-color:#e0f6fe}.search-global-field .search-global-menu .title{display:block;font-size:1.4rem}.search-global-field .search-global-menu .type{color:#1a1a1a;display:block}.search-global-label{cursor:pointer;height:3.3rem;padding:.75rem 1.4rem .55rem;position:absolute;right:0;top:0;z-index:2}.search-global-label:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.search-global-label:hover:before{color:#000}.search-global-label:before{color:#777;content:'\e60c';font-size:2rem}.search-global-input{background-color:transparent;border:1px solid transparent;font-size:1.4rem;height:3.3rem;padding:.75rem 1.4rem .55rem;position:absolute;right:0;top:0;transition:all .1s linear,width .3s linear;width:5rem;z-index:1}.search-global-action{display:none}.notifications-wrapper{float:right;line-height:1;position:relative}.notifications-wrapper.active{z-index:400}.notifications-wrapper.active .notifications-action{border-color:#007bdb;box-shadow:1px 1px 5px rgba(0,0,0,.5)}.notifications-wrapper.active .notifications-action:after{border:none;background-color:#fff;content:'';display:block;height:6px;left:-6px;margin-top:0;position:absolute;right:0;top:100%;width:auto}.notifications-wrapper .admin__action-dropdown-menu{padding:1rem 0 0;width:32rem}.notifications-action{color:#777;height:3.3rem;padding:.75rem 2rem .65rem}.notifications-action:after{display:none}.notifications-action:before{content:'\e607';font-size:1.9rem;margin-right:0}.notifications-action:active:before{position:relative;top:1px}.notifications-action .notifications-counter{background-color:#e22626;border-radius:1em;color:#fff;display:inline-block;font-size:1.1rem;font-weight:700;left:50%;margin-left:.3em;margin-top:-1.1em;padding:.3em .5em;position:absolute;top:50%}.notifications-entry{line-height:1.36;padding:.6rem 2rem .8rem;position:relative;transition:background-color .1s linear}.notifications-entry:hover{background-color:#e0f6fe}.notifications-entry.notifications-entry-last{margin:0 2rem;padding:.3rem 0 1.3rem;text-align:center}.notifications-entry.notifications-entry-last:hover{background-color:transparent}.notifications-entry+.notifications-entry-last{border-top:1px solid #ddd;padding-bottom:.6rem}.notifications-entry ._cutted{cursor:pointer}.notifications-entry ._cutted .notifications-entry-description-start:after{content:'...'}.notifications-entry-title{color:#ef672f;display:block;font-size:1.1rem;font-weight:700;margin-bottom:.7rem;margin-right:1em}.notifications-entry-description{color:#333;font-size:1.1rem;margin-bottom:.8rem}.notifications-entry-description-end{display:none}.notifications-entry-description-end._show{display:inline}.notifications-entry-time{color:#777;font-size:1.1rem}.notifications-close{line-height:1;padding:1rem;position:absolute;right:0;top:.6rem}.notifications-close:before{color:#ccc;content:'\e620';transition:color .1s linear}.notifications-close:hover:before{color:#b3b3b3}.notifications-close:active{-webkit-transform:scale(0.95);-ms-transform:scale(0.95);transform:scale(0.95)}.page-header-actions{padding-top:1.1rem}.page-header-hgroup{padding-right:1.5rem}.page-title{color:#333;font-size:2.8rem;margin-bottom:0}.page-header{padding:1.5rem 3rem}.menu-wrapper{display:inline-block;position:relative;width:8.8rem;z-index:700}.menu-wrapper:before{background-color:#373330;bottom:0;content:'';left:0;position:fixed;top:0;width:8.8rem;z-index:699}.menu-wrapper._fixed{left:0;position:fixed;top:0}.menu-wrapper._fixed~.page-wrapper{margin-left:8.8rem}.menu-wrapper .logo{display:block;height:8.8rem;padding:2.4rem 0 2.2rem;position:relative;text-align:center;z-index:700}._keyfocus .menu-wrapper .logo:focus{background-color:#4a4542;box-shadow:none}._keyfocus .menu-wrapper .logo:focus+.admin__menu .level-0:first-child>a{background-color:#373330}._keyfocus .menu-wrapper .logo:focus+.admin__menu .level-0:first-child>a:after{display:none}.menu-wrapper .logo:hover .logo-img{-webkit-filter:brightness(1.1);filter:brightness(1.1)}.menu-wrapper .logo:active .logo-img{-webkit-transform:scale(0.95);-ms-transform:scale(0.95);transform:scale(0.95)}.menu-wrapper .logo .logo-img{height:4.2rem;transition:-webkit-filter .2s linear,filter .2s linear,transform .1s linear;width:3.5rem}.abs-menu-separator,.admin__menu .item-partners>a:after,.admin__menu .level-0:first-child>a:after{background-color:#736963;content:'';display:block;height:1px;left:0;margin-left:16%;position:absolute;top:0;width:68%}.admin__menu li{display:block}.admin__menu .level-0:first-child>a{position:relative}.admin__menu .level-0:first-child._active>a:after{display:none}.admin__menu .level-0._active>a,.admin__menu .level-0:hover>a{color:#f7f3eb}.admin__menu .level-0._active>a{background-color:#524d49}.admin__menu .level-0:hover>a{background-color:#4a4542}.admin__menu .level-0>a{color:#aaa6a0;display:block;font-size:1rem;letter-spacing:.025em;min-height:6.2rem;padding:1.2rem .5rem .5rem;position:relative;text-align:center;text-decoration:none;text-transform:uppercase;transition:background-color .1s linear;word-wrap:break-word;z-index:700}.admin__menu .level-0>a:focus{box-shadow:none}.admin__menu .level-0>a:before{content:'\e63a';display:block;font-size:2.2rem;height:2.2rem}.admin__menu .level-0>.submenu{background-color:#4a4542;box-shadow:0 0 3px #000;left:100%;min-height:calc(8.8rem + 2rem + 100%);padding:2rem 0 0;position:absolute;top:0;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);transition-property:-webkit-transform,visibility;transition-property:transform,visibility;transition-duration:.3s;transition-timing-function:ease-in-out;visibility:hidden;z-index:697}.admin__menu .level-0._show>.submenu{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);visibility:visible;z-index:698}.admin__menu .level-1{margin-left:1.5rem;margin-right:1.5rem}.admin__menu [class*=level-]:not(.level-0) a{display:block;padding:1.25rem 1.5rem}.admin__menu [class*=level-]:not(.level-0) a:hover{background-color:#403934}.admin__menu [class*=level-]:not(.level-0) a:active{padding-top:1.35rem;padding-bottom:1.15rem;background-color:#322c29}.admin__menu .submenu li{min-width:23.8rem}.admin__menu .submenu a{color:#fcfcfc;transition:background-color .1s linear}.admin__menu .submenu a:focus,.admin__menu .submenu a:hover{box-shadow:none;text-decoration:none}._keyfocus .admin__menu .submenu a:focus{background-color:#403934}._keyfocus .admin__menu .submenu a:active{background-color:#322c29}.admin__menu .submenu .parent{margin-bottom:4.5rem}.admin__menu .submenu .parent .submenu-group-title,.admin__menu .submenu .parent>a{color:#a79d95;display:block;font-size:1.6rem;font-weight:600;margin-bottom:.7rem;padding:1.25rem 1.5rem;pointer-events:none}.admin__menu .submenu .column{display:table-cell}.admin__menu .submenu-title{color:#fff;display:block;font-size:2.2rem;font-weight:600;margin-bottom:4.2rem;margin-left:3rem;margin-right:5.8rem}.admin__menu .submenu-sub-title{color:#fff;display:block;font-size:1.2rem;margin:-3.8rem 5.8rem 3.8rem 3rem}.admin__menu .action-close{padding:2.4rem 2.8rem;position:absolute;right:0;top:0}.admin__menu .action-close:before{color:#a79d95;font-size:1.7rem}.admin__menu .action-close:hover:before{color:#fff}.admin__menu .item-dashboard>a:before{content:'\e604';font-size:1.8rem;padding-top:.4rem}.admin__menu .item-sales>a:before{content:'\e60b'}.admin__menu .item-catalog>a:before{content:'\e608'}.admin__menu .item-customer>a:before{content:'\e603';font-size:2.6rem;position:relative;top:-.4rem}.admin__menu .item-marketing>a:before{content:'\e609';font-size:2rem;padding-top:.2rem}.admin__menu .item-content>a:before{content:'\e602';font-size:2.4rem;position:relative;top:-.2rem}.admin__menu .item-report>a:before{content:'\e60a'}.admin__menu .item-stores>a:before{content:'\e60d';font-size:1.9rem;padding-top:.3rem}.admin__menu .item-system>a:before{content:'\e60e'}.admin__menu .item-partners>a{padding-bottom:1rem}.admin__menu .item-partners>a:before{content:'\e612'}.admin__menu-overlay{bottom:0;left:0;position:fixed;right:0;top:0;z-index:697}.store-switcher{color:#333;float:left;font-size:1.3rem;margin-top:.7rem}.store-switcher .admin__action-dropdown{margin-left:.5em;background-color:#f8f8f8}.store-switcher .dropdown{display:inline-block;position:relative}.store-switcher .dropdown:after,.store-switcher .dropdown:before{content:'';display:table}.store-switcher .dropdown:after{clear:both}.store-switcher .dropdown .action.toggle{cursor:pointer;display:inline-block;text-decoration:none}.store-switcher .dropdown .action.toggle:after{-webkit-font-smoothing:antialiased;font-size:22px;line-height:2;color:#333;content:'\e607';font-family:icons-blank-theme;margin:0;vertical-align:top;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.store-switcher .dropdown .action.toggle:active:after,.store-switcher .dropdown .action.toggle:hover:after{color:#333}.store-switcher .dropdown .action.toggle.active{display:inline-block;text-decoration:none}.store-switcher .dropdown .action.toggle.active:after{-webkit-font-smoothing:antialiased;font-size:22px;line-height:2;color:#333;content:'\e618';font-family:icons-blank-theme;margin:0;vertical-align:top;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.store-switcher .dropdown .action.toggle.active:active:after,.store-switcher .dropdown .action.toggle.active:hover:after{color:#333}.store-switcher .dropdown .dropdown-menu{background:#fff;border:1px solid #ada89e;z-index:100;margin:4px 0 0;padding:0;list-style:none;box-sizing:border-box;position:absolute;top:100%;box-shadow:1px 1px 5px rgba(0,0,0,.5);min-width:19.5rem;display:none}.store-switcher .dropdown .dropdown-menu li{margin:0;padding:0}.store-switcher .dropdown .dropdown-menu li:hover{background:0 0;cursor:pointer}.store-switcher .dropdown.active{overflow:visible}.store-switcher .dropdown.active .dropdown-menu{display:block}.store-switcher .dropdown-menu{left:0;margin-top:.5em;padding-top:.25em}.store-switcher .dropdown-menu li{border:0;cursor:default}.store-switcher .dropdown-menu li:hover{cursor:default}.store-switcher .dropdown-menu li a,.store-switcher .dropdown-menu li span{color:#333;display:block;padding:.5rem 1.3rem}.store-switcher .dropdown-menu li a{text-decoration:none}.store-switcher .dropdown-menu li a:hover{background:#e9e9e9}.store-switcher .dropdown-menu li span{color:#adadad;cursor:default}.store-switcher .dropdown-menu li.current span{background:#eee;color:#333}.store-switcher .dropdown-menu .store-switcher-store a,.store-switcher .dropdown-menu .store-switcher-store span{padding-left:2.6rem}.store-switcher .dropdown-menu .store-switcher-store-view a,.store-switcher .dropdown-menu .store-switcher-store-view span{padding-left:3.9rem}.store-switcher .dropdown-menu .dropdown-toolbar{border-top:1px solid #ebebeb;margin-top:1rem}.store-switcher .dropdown-menu .dropdown-toolbar a:before{content:'\e60e';margin-right:.25em;position:relative;top:1px}.store-switcher-label{font-weight:700}.store-switcher-alt{display:inline-block;position:relative}.store-switcher-alt.active .dropdown-menu{display:block}.store-switcher-alt .dropdown-menu{margin-top:2px;white-space:nowrap}.store-switcher-alt .dropdown-menu ul{list-style:none;margin:0;padding:0}.store-switcher-alt strong{color:#a6a098;display:block;font-size:14px;font-weight:500;line-height:1.333;padding:5px 10px}.store-switcher-alt .store-selected{color:#676056;cursor:pointer;font-size:12px;font-weight:400;line-height:1.333}.store-switcher-alt .store-selected:after{color:#b3b0ad;content:'\e02c';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:400;margin:0 0 0 3px;speak:none;vertical-align:text-top}.store-switcher-alt .store-switcher-store,.store-switcher-alt .store-switcher-website{padding:0}.store-switcher-alt .store-switcher-store:hover,.store-switcher-alt .store-switcher-website:hover{background:0 0}.store-switcher-alt .manage-stores,.store-switcher-alt .store-switcher-all,.store-switcher-alt .store-switcher-store-view{padding:0}.store-switcher-alt .manage-stores>a,.store-switcher-alt .store-switcher-all>a{color:#676056;display:block;font-size:12px;padding:8px 15px;text-decoration:none}.store-switcher-website{margin:5px 0 0}.store-switcher-website>strong{padding-left:13px}.store-switcher-store{margin:1px 0 0}.store-switcher-store>strong{padding-left:20px}.store-switcher-store>ul{margin-top:1px}.store-switcher-store-view:first-child{border-top:1px solid #e5e5e5}.store-switcher-store-view>a{color:#333;display:block;font-size:13px;padding:5px 15px 5px 24px;text-decoration:none}.tooltip{margin-left:.5em}.tooltip .help a,.tooltip .help span{cursor:pointer;display:inline-block;height:22px;position:relative;vertical-align:middle;width:22px;z-index:2}.tooltip .help a:before,.tooltip .help span:before{color:#333;content:'\e633';font-size:1.7rem}.tooltip .help a span,.tooltip .help span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tooltip .help a:hover{text-decoration:none}.tooltip .tooltip-content{background:#000;border-radius:3px;color:#fff;display:none;margin-left:-19px;margin-top:10px;max-width:200px;padding:4px 8px;position:absolute;text-shadow:none;z-index:20}.tooltip .tooltip-content:before{border-bottom:5px solid #000;border-left:5px solid transparent;border-right:5px solid transparent;content:'';height:0;left:20px;opacity:.8;position:absolute;top:-5px;width:0}.tooltip .tooltip-content.loading{position:absolute}.tooltip .tooltip-content.loading:before{border-bottom-color:rgba(0,0,0,.3)}.tooltip:hover>.tooltip-content{display:block}.page-actions._fixed,.page-main-actions:not(._hidden){background:#f8f8f8;border-bottom:1px solid #e3e3e3;border-top:1px solid #e3e3e3;padding:1.5rem}.page-main-actions{margin:0 0 3rem}.page-main-actions._hidden .store-switcher{display:none}.page-actions{float:right}.page-main-actions .page-actions._fixed{left:8.8rem;position:fixed;right:0;top:0;z-index:400}.page-main-actions .page-actions._fixed .page-actions-inner:before{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333;content:attr(data-title);float:left;font-size:2.8rem;margin-top:.3rem;max-width:50%}.page-actions .page-actions-buttons>button,.page-actions>button{float:right;margin-left:1.3rem}.page-actions .page-actions-buttons>button.action-back,.page-actions .page-actions-buttons>button.back,.page-actions>button.action-back,.page-actions>button.back{float:left;-ms-flex-order:-1;-webkit-order:-1;order:-1}.page-actions .page-actions-buttons>button.action-back:before,.page-actions .page-actions-buttons>button.back:before,.page-actions>button.action-back:before,.page-actions>button.back:before{content:'\e626';margin-right:.5em;position:relative;top:1px}.page-actions .page-actions-buttons>button.action-primary,.page-actions .page-actions-buttons>button.primary,.page-actions>button.action-primary,.page-actions>button.primary{-ms-flex-order:2;-webkit-order:2;order:2}.page-actions .page-actions-buttons>button.save:not(.primary),.page-actions>button.save:not(.primary){-ms-flex-order:1;-webkit-order:1;order:1}.page-actions .page-actions-buttons>button.delete,.page-actions>button.delete{-ms-flex-order:-1;-webkit-order:-1;order:-1}.page-actions .actions-split{float:right;margin-left:1.3rem;-ms-flex-order:2;-webkit-order:2;order:2}.page-actions .actions-split .dropdown-menu .item{display:block}.page-actions-buttons{float:right;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;display:-webkit-flex;display:-ms-flexbox;display:flex}.customer-index-edit .page-actions-buttons{background-color:transparent}.admin__page-nav{background:#f1f1f1;border:1px solid #e3e3e3}.admin__page-nav._collapsed:first-child{border-bottom:none}.admin__page-nav._collapsed._show{border-bottom:1px solid #e3e3e3}.admin__page-nav._collapsed._show ._collapsible{background:#f1f1f1}.admin__page-nav._collapsed._show ._collapsible:after{content:'\e62b'}.admin__page-nav._collapsed._show ._collapsible+.admin__page-nav-items{display:block}.admin__page-nav._collapsed._hide .admin__page-nav-title-messages,.admin__page-nav._collapsed._hide .admin__page-nav-title-messages ._active{display:inline-block}.admin__page-nav+._collapsed{border-bottom:none;border-top:none}.admin__page-nav-title{border-bottom:1px solid #e3e3e3;color:#303030;display:block;font-size:1.4rem;line-height:1.2;margin:0 0 -1px;padding:1.8rem 1.5rem;position:relative;text-transform:uppercase}.admin__page-nav-title._collapsible{background:#fff;cursor:pointer;margin:0;padding-right:3.5rem;transition:border-color .1s ease-out,background-color .1s ease-out}.admin__page-nav-title._collapsible+.admin__page-nav-items{display:none;margin-top:-1px}.admin__page-nav-title._collapsible:after{content:'\e628';font-size:1.3rem;font-weight:700;position:absolute;right:1.8rem;top:2rem}.admin__page-nav-title._collapsible:hover{background:#f1f1f1}.admin__page-nav-title._collapsible:last-child{margin:0 0 -1px}.admin__page-nav-title strong{font-weight:700}.admin__page-nav-title .admin__page-nav-title-messages{display:none}.admin__page-nav-items{list-style-type:none;margin:0;padding:1rem 0 1.3rem}.admin__page-nav-item{border-left:3px solid transparent;margin-left:.7rem;padding:0;position:relative;transition:border-color .1s ease-out,background-color .1s ease-out}.admin__page-nav-item:hover{border-color:#e4e4e4}.admin__page-nav-item:hover .admin__page-nav-link{background:#e4e4e4;color:#303030;text-decoration:none}.admin__page-nav-item._active,.admin__page-nav-item.ui-state-active{border-color:#eb5202}.admin__page-nav-item._active .admin__page-nav-link,.admin__page-nav-item.ui-state-active .admin__page-nav-link{background:#fff;border-color:#e3e3e3;border-right:1px solid #fff;color:#303030;margin-right:-1px;font-weight:600}.admin__page-nav-item._loading:before,.admin__page-nav-item.ui-tabs-loading:before{display:none}.admin__page-nav-item._loading .admin__page-nav-item-message-loader,.admin__page-nav-item.ui-tabs-loading .admin__page-nav-item-message-loader{display:inline-block}.admin__page-nav-link{border:1px solid transparent;border-width:1px 0;color:#303030;display:block;font-weight:500;line-height:1.2;margin:0 0 -1px;padding:2rem 4rem 2rem 1rem;transition:border-color .1s ease-out,background-color .1s ease-out;word-wrap:break-word}.admin__page-nav-item-messages,.admin__page-nav-link._changed .admin__page-nav-item-message._changed,.admin__page-nav-link._error .admin__page-nav-item-message._error{display:inline-block}.admin__page-nav-item-messages .admin__page-nav-item-message{position:relative}.admin__page-nav-item-messages .admin__page-nav-item-message:hover{z-index:500}.admin__page-nav-item-messages .admin__page-nav-item-message:hover .admin__page-nav-item-message-tooltip{display:block}.admin__page-nav-item-messages .admin__page-nav-item-message._changed,.admin__page-nav-item-messages .admin__page-nav-item-message._error{display:none}.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon{display:inline-block;font-size:1.4rem;padding-left:.8em;vertical-align:top}.admin__page-nav-item-messages .admin__page-nav-item-message._changed .admin__page-nav-item-message-icon:after,.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon:after{color:#666;content:'\e631'}.admin__page-nav-item-messages .admin__page-nav-item-message._error .admin__page-nav-item-message-icon:after{color:#eb5202;content:'\e623'}.admin__page-nav-item-messages .admin__page-nav-item-message-loader{display:none;margin-top:-1rem;position:absolute;right:0;top:50%}.admin__page-nav-item-messages .admin__page-nav-item-message-loader .spinner{font-size:2rem;margin-right:1.5rem}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip{background:#f1f1f1;border:1px solid #f1f1f1;border-radius:1px;bottom:3.7rem;box-shadow:0 3px 9px 0 rgba(0,0,0,.3);display:none;font-weight:400;left:-1rem;line-height:1.36;padding:2rem;position:absolute;text-transform:none;width:27rem;word-break:normal;z-index:2}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:after,.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:before{border:15px solid transparent;height:0;width:0;border-top-color:#f1f1f1;content:'';display:block;left:2rem;position:absolute;top:100%;z-index:3}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:after{border-top-color:#f1f1f1;margin-top:-1px;z-index:4}.admin__page-nav-item-messages .admin__page-nav-item-message-tooltip:before{border-top-color:#bfbfbf}.admin__data-grid-wrap-static .data-grid{box-sizing:border-box}.admin__data-grid-wrap-static .data-grid thead{color:#333}.admin__data-grid-wrap-static .data-grid tr:nth-child(even) td{background-color:#f5f5f5}.admin__data-grid-wrap-static .data-grid tr:nth-child(even) td._dragging{background-color:rgba(245,245,245,.95)}.admin__data-grid-wrap-static .data-grid ul{padding-left:1rem;margin-left:1rem}.admin__data-grid-wrap-static .admin__data-grid-loading-mask{background:rgba(255,255,255,.5);bottom:0;left:0;position:absolute;right:0;top:0;z-index:401}.admin__data-grid-wrap-static .admin__data-grid-loading-mask .grid-loader{background:url(../images/loader-2.gif) 50% 50% no-repeat;bottom:0;height:149px;left:0;margin:auto;position:absolute;right:0;top:0;width:218px}.data-grid-filters-actions-wrap{float:right}.data-grid-search-control-wrap{float:left;max-width:45.5rem;position:relative;width:50%}.data-grid-search-control-wrap :-ms-input-placeholder{font-style:italic}.data-grid-search-control-wrap ::-webkit-input-placeholder{font-style:italic}.data-grid-search-control-wrap ::-moz-placeholder{font-style:italic}.data-grid-search-control-wrap .action-submit{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;padding:.6rem 2rem .2rem;position:absolute;right:0;top:1px}.data-grid-search-control-wrap .action-submit:hover{background-color:transparent;border:none;box-shadow:none}.data-grid-search-control-wrap .action-submit:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.data-grid-search-control-wrap .action-submit:hover:before{color:#1a1a1a}._keyfocus .data-grid-search-control-wrap .action-submit:focus{box-shadow:0 0 0 1px #008bdb}.data-grid-search-control-wrap .action-submit:before{content:'\e60c';font-size:2rem;transition:color .1s linear}.data-grid-search-control-wrap .action-submit>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.data-grid-search-control-wrap .abs-action-menu .action-submenu,.data-grid-search-control-wrap .abs-action-menu .action-submenu .action-submenu,.data-grid-search-control-wrap .action-menu,.data-grid-search-control-wrap .action-menu .action-submenu,.data-grid-search-control-wrap .actions-split .action-menu .action-submenu,.data-grid-search-control-wrap .actions-split .action-menu .action-submenu .action-submenu,.data-grid-search-control-wrap .actions-split .dropdown-menu .action-submenu,.data-grid-search-control-wrap .actions-split .dropdown-menu .action-submenu .action-submenu{z-index:400;max-height:19.25rem;overflow-y:auto}.data-grid-search-control-wrap .action-menu-item._selected{background-color:#e0f6fe}.data-grid-search-control-wrap .data-grid-search-label{display:none}.data-grid-search-control{padding-right:6rem;width:100%}.data-grid-filters-action-wrap{float:left;padding-left:2rem}.data-grid-filters-action-wrap .action-default{font-size:1.3rem;margin-bottom:1rem;padding-left:1.7rem;padding-right:2.1rem;padding-top:.7rem}.data-grid-filters-action-wrap .action-default._active{background-color:#fff;border-bottom-color:#fff;border-right-color:#ccc;font-weight:600;margin:-.1rem 0 0;padding-bottom:1.6rem;padding-top:.8rem;position:relative;z-index:281}.data-grid-filters-action-wrap .action-default._active:after{background-color:#eb5202;bottom:100%;content:'';height:3px;left:-1px;position:absolute;right:-1px}.data-grid-filters-action-wrap .action-default:before{color:#333;content:'\e605';font-size:1.8rem;margin-right:.4rem;position:relative;top:-1px;vertical-align:top}.data-grid-filters-action-wrap .filters-active{display:none}.admin__data-grid-filters-wrap{opacity:0;visibility:hidden;clear:both;font-size:1.3rem;transition:opacity .3s ease}.admin__data-grid-filters-wrap._show{opacity:1;visibility:visible;border-bottom:1px solid #ccc;border-top:1px solid #ccc;margin-bottom:.7rem;padding:3.6rem 0 3rem;position:relative;top:-1px;z-index:280}.admin__data-grid-filters-wrap._show .admin__data-grid-filters,.admin__data-grid-filters-wrap._show .admin__data-grid-filters-footer{display:block}.admin__data-grid-filters-wrap .admin__form-field-label,.admin__data-grid-filters-wrap .admin__form-field-legend{display:block;font-weight:700;margin:0 0 .3rem;text-align:left}.admin__data-grid-filters-wrap .admin__form-field{display:inline-block;margin-bottom:2em;margin-left:0;padding-left:2rem;padding-right:2rem;vertical-align:top;width:calc(100% / 4 - 4px)}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field{display:block;float:none;margin-bottom:1.5rem;padding-left:0;padding-right:0;width:auto}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field:last-child{margin-bottom:0}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field .admin__form-field-label{border:1px solid transparent;float:left;font-weight:400;line-height:1.36;margin-bottom:0;padding-bottom:.6rem;padding-right:1em;padding-top:.6rem;width:25%}.admin__data-grid-filters-wrap .admin__form-field .admin__form-field .admin__form-field-control{margin-left:25%}.admin__data-grid-filters-wrap .admin__action-multiselect,.admin__data-grid-filters-wrap .admin__control-select,.admin__data-grid-filters-wrap .admin__control-text,.admin__data-grid-filters-wrap .admin__form-field-label{font-size:1.3rem}.admin__data-grid-filters-wrap .admin__control-select{padding-top:.5rem;height:3.2rem}.admin__data-grid-filters-wrap .admin__control-select,.admin__data-grid-filters-wrap .admin__control-text.hasDatepicker{width:100%}.admin__data-grid-filters{display:none;margin-left:-2rem;margin-right:-2rem}.admin__filters-legend{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.admin__data-grid-filters-footer{display:none;font-size:1.4rem}.admin__data-grid-filters-footer .admin__footer-main-actions{margin-left:25%;text-align:right}.admin__data-grid-filters-footer .admin__footer-secondary-actions{float:left;width:50%}.admin__data-grid-filters-current{border-bottom:.1rem solid #ccc;border-top:.1rem solid #ccc;display:none;font-size:1.3rem;margin-bottom:.9rem;padding-bottom:.8rem;padding-top:1.1rem;width:100%}.admin__data-grid-filters-current._show{display:table;position:relative;top:-1px;z-index:3}.admin__data-grid-filters-current._show+.admin__data-grid-filters-wrap._show{margin-top:-1rem}.admin__current-filters-actions-wrap,.admin__current-filters-list-wrap,.admin__current-filters-title-wrap{display:table-cell;vertical-align:top}.admin__current-filters-title{margin-right:1em;white-space:nowrap}.admin__current-filters-list-wrap{width:100%}.admin__current-filters-list{margin-bottom:0}.admin__current-filters-list>li{display:inline-block;font-weight:600;margin:0 1rem .5rem;padding-right:2.6rem;position:relative}.admin__current-filters-list .action-remove{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;padding:0;line-height:1;position:absolute;right:0;top:1px}.admin__current-filters-list .action-remove:hover{background-color:transparent;border:none;box-shadow:none}.admin__current-filters-list .action-remove:hover:before{color:#949494}.admin__current-filters-list .action-remove:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.admin__current-filters-list .action-remove:before{color:#adadad;content:'\e620';font-size:1.6rem;transition:color .1s linear}.admin__current-filters-list .action-remove>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.admin__current-filters-actions-wrap .action-clear{border:none;padding-bottom:0;padding-top:0;white-space:nowrap}.admin__data-grid-pager-wrap{text-align:right}.admin__data-grid-pager{display:inline-block;margin-left:3rem}.admin__data-grid-pager .admin__control-text::-webkit-inner-spin-button,.admin__data-grid-pager .admin__control-text::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.admin__data-grid-pager .admin__control-text{-moz-appearance:textfield;text-align:center;width:4.4rem}.action-next,.action-previous{width:4.4rem}.action-next:before,.action-previous:before{font-weight:700}.action-next>span,.action-previous>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.action-previous{margin-right:2.5rem;text-indent:-.25em}.action-previous:before{content:'\e629'}.action-next{margin-left:1.5rem;text-indent:.1em}.action-next:before{content:'\e62a'}.admin__data-grid-action-bookmarks{opacity:.98}.admin__data-grid-action-bookmarks .admin__action-dropdown-text:after{right:-6px;left:0}.admin__data-grid-action-bookmarks._active{z-index:290}.admin__data-grid-action-bookmarks .admin__action-dropdown .admin__action-dropdown-text{display:inline-block;max-width:15rem;min-width:4.9rem;vertical-align:top;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin__data-grid-action-bookmarks .admin__action-dropdown:before{content:'\e60f'}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu{font-size:1.3rem;left:0;padding:1rem 0;right:auto}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu>li{padding:0 5rem 0 0;position:relative;white-space:nowrap}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu>li:not(.action-dropdown-menu-action){transition:background-color .1s linear}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu>li:not(.action-dropdown-menu-action):hover{background-color:#e3e3e3}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item{max-width:23rem;min-width:18rem;white-space:normal;word-break:break-all}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-edit{display:none;padding-bottom:1rem;padding-left:1rem;padding-top:1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-edit .action-dropdown-menu-item-actions{padding-bottom:1rem;padding-top:1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action{padding-left:1rem;padding-top:1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action+.action-dropdown-menu-item-last{padding-top:.5rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action>a{color:#008bdb;text-decoration:none;display:inline-block;padding-left:1.1rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-action>a:hover{color:#0fa7ff;text-decoration:underline}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-last{padding-bottom:0}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu ._edit .action-dropdown-menu-item{display:none}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu ._edit .action-dropdown-menu-item-edit{display:block}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu ._active .action-dropdown-menu-link{font-weight:600}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .admin__control-text{font-size:1.3rem;min-width:15rem;width:calc(100% - 4rem)}.ie9 .admin__data-grid-action-bookmarks .admin__action-dropdown-menu .admin__control-text{width:15rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-item-actions{border-left:1px solid #fff;bottom:0;position:absolute;right:0;top:0;width:5rem}.admin__data-grid-action-bookmarks .admin__action-dropdown-menu .action-dropdown-menu-link{color:#333;display:block;text-decoration:none;padding:1rem 1rem 1rem 2.1rem}.admin__data-grid-action-bookmarks .action-delete,.admin__data-grid-action-bookmarks .action-edit,.admin__data-grid-action-bookmarks .action-submit{background-color:transparent;border:none;border-radius:0;box-shadow:none;margin:0;vertical-align:top}.admin__data-grid-action-bookmarks .action-delete:hover,.admin__data-grid-action-bookmarks .action-edit:hover,.admin__data-grid-action-bookmarks .action-submit:hover{background-color:transparent;border:none;box-shadow:none}.admin__data-grid-action-bookmarks .action-delete:before,.admin__data-grid-action-bookmarks .action-edit:before,.admin__data-grid-action-bookmarks .action-submit:before{font-size:1.7rem}.admin__data-grid-action-bookmarks .action-delete>span,.admin__data-grid-action-bookmarks .action-edit>span,.admin__data-grid-action-bookmarks .action-submit>span{clip:rect(0,0,0,0);overflow:hidden;position:absolute}.admin__data-grid-action-bookmarks .action-delete,.admin__data-grid-action-bookmarks .action-edit{padding:.6rem 1.4rem}.admin__data-grid-action-bookmarks .action-delete:active,.admin__data-grid-action-bookmarks .action-edit:active{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)}.admin__data-grid-action-bookmarks .action-submit{padding:.6rem 1rem .6rem .8rem}.admin__data-grid-action-bookmarks .action-submit:active{position:relative;right:-1px}.admin__data-grid-action-bookmarks .action-submit:before{content:'\e625'}.admin__data-grid-action-bookmarks .action-delete:before{content:'\e630'}.admin__data-grid-action-bookmarks .action-edit{padding-top:.8rem}.admin__data-grid-action-bookmarks .action-edit:before{content:'\e631'}.admin__data-grid-action-columns._active{opacity:.98;z-index:290}.admin__data-grid-action-columns .admin__action-dropdown:before{content:'\e60e';font-size:1.8rem;margin-right:.7rem;vertical-align:top}.admin__data-grid-action-columns-menu{color:#303030;font-size:1.3rem;overflow:hidden;padding:2.2rem 3.5rem 1rem;z-index:1}.admin__data-grid-action-columns-menu._overflow .admin__action-dropdown-menu-header{border-bottom:1px solid #d1d1d1}.admin__data-grid-action-columns-menu._overflow .admin__action-dropdown-menu-content{width:49.2rem}.admin__data-grid-action-columns-menu._overflow .admin__action-dropdown-menu-footer{border-top:1px solid #d1d1d1;padding-top:2.5rem}.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-content{max-height:22.85rem;overflow-y:auto;padding-top:1.5rem;position:relative;width:47.4rem}.admin__data-grid-action-columns-menu .admin__field-option{height:1.9rem;float:left;margin-bottom:1.5rem;padding:0 1rem 0 0;width:15.8rem}.admin__data-grid-action-columns-menu .admin__field-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-header{padding-bottom:1.5rem}.admin__data-grid-action-columns-menu .admin__action-dropdown-menu-footer{padding:1rem 0 2rem}.admin__data-grid-action-columns-menu .admin__action-dropdown-footer-main-actions{margin-left:25%;text-align:right}.admin__data-grid-action-columns-menu .admin__action-dropdown-footer-secondary-actions{float:left;margin-left:-1em}.admin__data-grid-action-export._active{opacity:.98;z-index:290}.admin__data-grid-action-export .admin__action-dropdown:before{content:'\e635';font-size:1.7rem;left:.3rem;margin-right:.7rem;vertical-align:top}.admin__data-grid-action-export-menu{padding-left:2rem;padding-right:2rem;padding-top:1rem}.admin__data-grid-action-export-menu .admin__action-dropdown-footer-main-actions{padding-bottom:2rem;padding-top:2.5rem;white-space:nowrap}.sticky-header{background-color:#f8f8f8;border-bottom:1px solid #e3e3e3;box-shadow:0 5px 5px 0 rgba(0,0,0,.25);left:8.8rem;right:0;margin-top:-1px;padding:.5rem 3rem 0;position:fixed;top:77px;z-index:400}.sticky-header .admin__data-grid-wrap{margin-bottom:0;overflow-x:visible;padding-bottom:0}.sticky-header .admin__data-grid-header-row{position:relative;text-align:right}.sticky-header .admin__data-grid-header-row:last-child{margin:0}.sticky-header .admin__data-grid-actions-wrap,.sticky-header .admin__data-grid-filters-wrap,.sticky-header .admin__data-grid-pager-wrap,.sticky-header .data-grid-filters-actions-wrap,.sticky-header .data-grid-search-control-wrap{display:inline-block;float:none;vertical-align:top}.sticky-header .action-select-wrap{float:left;margin-right:1.5rem;width:16.66666667%}.sticky-header .admin__control-support-text{float:left}.sticky-header .data-grid-search-control-wrap{margin:-.5rem 0 0 1.1rem;width:auto}.sticky-header .data-grid-search-control-wrap .data-grid-search-label{box-sizing:border-box;cursor:pointer;display:block;min-width:3.8rem;padding:1.2rem .6rem 1.7rem;position:relative;text-align:center}.sticky-header .data-grid-search-control-wrap .data-grid-search-label:before{color:#333;content:'\e60c';font-size:2rem;transition:color .1s linear}.sticky-header .data-grid-search-control-wrap .data-grid-search-label:hover:before{color:#000}.sticky-header .data-grid-search-control-wrap .data-grid-search-label span{display:none}.sticky-header .data-grid-filters-actions-wrap{margin:-.5rem 0 0 1.1rem;padding-left:0;position:relative}.sticky-header .data-grid-filters-actions-wrap .action-default{background-color:transparent;border:1px solid transparent;box-sizing:border-box;min-width:3.8rem;padding:1.2rem .6rem 1.7rem;text-align:center;transition:all .15s ease}.sticky-header .data-grid-filters-actions-wrap .action-default span{display:none}.sticky-header .data-grid-filters-actions-wrap .action-default:before{margin:0}.sticky-header .data-grid-filters-actions-wrap .action-default._active{background-color:#fff;border-color:#adadad #adadad #fff;box-shadow:1px 1px 5px rgba(0,0,0,.5);z-index:210}.sticky-header .data-grid-filters-actions-wrap .action-default._active:after{background-color:#fff;content:'';height:6px;left:-2px;position:absolute;right:-6px;top:100%}.sticky-header .data-grid-filters-action-wrap{padding:0}.sticky-header .admin__data-grid-filters-wrap{background-color:#fff;border:1px solid #adadad;box-shadow:0 5px 5px 0 rgba(0,0,0,.25);left:0;padding-left:3.5rem;padding-right:3.5rem;position:absolute;top:100%;width:100%;z-index:209}.sticky-header .admin__data-grid-filters-current+.admin__data-grid-filters-wrap._show{margin-top:-6px}.sticky-header .filters-active{background-color:#e04f00;border-radius:10px;color:#fff;display:block;font-size:1.4rem;font-weight:700;padding:.1rem .7rem;position:absolute;right:-7px;top:0;z-index:211}.sticky-header .filters-active:empty{padding-top:0;padding-bottom:0}.sticky-header .admin__data-grid-actions-wrap{margin:-.5rem 0 0 1.1rem;padding-right:.3rem}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown{background-color:transparent;box-sizing:border-box;min-width:3.8rem;padding-left:.6rem;padding-right:.6rem;text-align:center}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown .admin__action-dropdown-text{display:inline-block;min-width:0;max-width:0;overflow:hidden}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown:before{margin:0}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown-wrap{margin-right:1.1rem}.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown-wrap:after,.sticky-header .admin__data-grid-actions-wrap .admin__action-dropdown:after{display:none}.sticky-header .admin__data-grid-actions-wrap ._active .admin__action-dropdown{background-color:#fff}.sticky-header .admin__data-grid-action-bookmarks .admin__action-dropdown:before{position:relative;top:-3px}.sticky-header .admin__data-grid-filters-current{border-top:0;border-bottom:0;margin-bottom:0;padding-bottom:0;padding-top:0}.sticky-header .admin__data-grid-pager .admin__control-text,.sticky-header .admin__data-grid-pager-wrap .admin__control-support-text,.sticky-header .data-grid-search-control-wrap .action-submit,.sticky-header .data-grid-search-control-wrap .data-grid-search-control{display:none}.sticky-header .action-next{margin:0}.sticky-header .data-grid{margin-bottom:-1px}.data-grid-cap-left,.data-grid-cap-right{background-color:#f8f8f8;bottom:-2px;position:absolute;top:6rem;width:3rem;z-index:201}.data-grid-cap-left{left:0}.data-grid-cap-right{right:0}.admin__data-grid-header{font-size:1.4rem}.admin__data-grid-header-row+.admin__data-grid-header-row{margin-top:1.1rem}.admin__data-grid-header-row:last-child{margin-bottom:0}.admin__data-grid-header-row .action-select-wrap{display:block}.admin__data-grid-header-row .action-select{width:100%}.admin__data-grid-actions-wrap{float:right;margin-left:1.1rem;margin-top:-.5rem;text-align:right}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap{position:relative;text-align:left}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active+.admin__action-dropdown-wrap:after,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active:after,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._hide+.admin__action-dropdown-wrap:after,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap:first-child:after{display:none}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active .admin__action-dropdown,.admin__data-grid-actions-wrap .admin__action-dropdown-wrap._active .admin__action-dropdown-menu{border-color:#adadad}.admin__data-grid-actions-wrap .admin__action-dropdown-wrap:after{border-left:1px solid #ccc;content:'';height:3.2rem;left:0;position:absolute;top:.5rem;z-index:3}.admin__data-grid-actions-wrap .admin__action-dropdown{padding-bottom:1.7rem;padding-top:1.2rem}.admin__data-grid-actions-wrap .admin__action-dropdown:after{margin-top:-.4rem}.admin__data-grid-outer-wrap{min-height:8rem;position:relative}.admin__data-grid-wrap{margin-bottom:2rem;max-width:100%;overflow-x:auto;padding-bottom:1rem;padding-top:2rem}.admin__data-grid-loading-mask{background:rgba(255,255,255,.5);bottom:0;left:-3rem;position:absolute;right:-3rem;top:0;z-index:401}.admin__data-grid-loading-mask .spinner{font-size:4rem;left:50%;margin-left:-2rem;margin-top:-2rem;position:absolute;top:50%}.ie9 .admin__data-grid-loading-mask .spinner{background:url(../images/loader-2.gif) 50% 50% no-repeat;bottom:0;height:149px;left:0;margin:auto;position:absolute;right:0;top:0;width:218px}.data-grid-cell-content{overflow:hidden;width:100%;display:inline-block}body._in-resize{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:col-resize}body._in-resize *,body._in-resize .data-grid-th,body._in-resize .data-grid-th._draggable,body._in-resize .data-grid-th._sortable{cursor:col-resize!important}._layout-fixed{table-layout:fixed}.data-grid{border:none;font-size:1.3rem;margin-bottom:0;max-width:100%;width:100%}.data-grid:not(._dragging-copy) ._odd-row td._dragging{background-color:#d0d0d0}.data-grid:not(._dragging-copy) ._dragging{background-color:#d9d9d9;color:rgba(48,48,48,.95)}.data-grid:not(._dragging-copy) ._dragging a{color:rgba(0,139,219,.95)}.data-grid:not(._dragging-copy) ._dragging a:hover{color:rgba(15,167,255,.95)}.data-grid thead{background-color:transparent}.data-grid tfoot th{padding:1rem}.data-grid tr._odd-row td{background-color:#f5f5f5}.data-grid tr.data-grid-tr-no-data:hover td{background-color:#fff;cursor:default}.data-grid tr:active td{background-color:#e0f6fe}.data-grid tr:hover td{background-color:#e5f7fe}.data-grid tr:not(.data-grid-editable-row):last-child td{border-bottom:.1rem solid #d6d6d6}.data-grid tr ._clickable,.data-grid tr._clickable{cursor:pointer}.data-grid td,.data-grid th{font-size:1.3rem;line-height:1.36;transition:background-color .1s linear;vertical-align:top}.data-grid td._resizing,.data-grid th._resizing{border-left:1px solid #007bdb;border-right:1px solid #007bdb}.data-grid td{background-color:#fff;border-left:.1rem dashed #d6d6d6;border-right:.1rem dashed #d6d6d6;color:#303030;padding:1rem}.data-grid td:first-child{border-left-style:solid}.data-grid td:last-child{border-right-style:solid}.data-grid td .action-select-wrap{position:static}.data-grid td .action-select{background-color:transparent;border:none;font-size:1.3rem;position:relative;color:#008bdb;text-decoration:none;padding:0 3rem 0 0}.data-grid td .action-select:hover{color:#0fa7ff;text-decoration:underline}.data-grid td .action-select:hover:after{border-color:#0fa7ff transparent transparent}.data-grid td .action-select:after{border-color:#008bdb transparent transparent;margin:.6rem 0 0 .7rem;right:auto;top:auto}.data-grid td .action-select:before{display:none}.data-grid td .abs-action-menu .action-submenu,.data-grid td .abs-action-menu .action-submenu .action-submenu,.data-grid td .action-menu,.data-grid td .action-menu .action-submenu,.data-grid td .actions-split .action-menu .action-submenu,.data-grid td .actions-split .action-menu .action-submenu .action-submenu,.data-grid td .actions-split .dropdown-menu .action-submenu,.data-grid td .actions-split .dropdown-menu .action-submenu .action-submenu{left:auto;min-width:10rem;right:0;text-align:left;top:auto;z-index:1}.data-grid th{background-color:#514943;border:.1rem solid #8a837f;border-left-color:transparent;color:#fff;font-weight:600;padding:0;text-align:left}.data-grid th:first-child{border-left-color:#8a837f}.data-grid th._dragover-left{box-shadow:inset 3px 0 0 0 #fff;z-index:2}.data-grid th._dragover-right{box-shadow:inset -3px 0 0 0 #fff}.data-grid .shadow-div{cursor:col-resize;height:100%;margin-right:-5px;position:absolute;right:0;top:0;width:10px}.data-grid .data-grid-th{background-clip:padding-box;color:#fff;padding:1rem;position:relative;vertical-align:middle}.data-grid .data-grid-th._resize-visible .shadow-div{cursor:auto;display:none}.data-grid .data-grid-th._draggable{cursor:-webkit-grab;cursor:grab}.data-grid .data-grid-th._sortable{cursor:pointer;transition:background-color .1s linear;z-index:1}.data-grid .data-grid-th._sortable:focus,.data-grid .data-grid-th._sortable:hover{background-color:#5f564f}.data-grid .data-grid-th._sortable:active{padding-bottom:.9rem;padding-top:1.1rem}.data-grid .data-grid-th.required>span:after{color:#f38a5e;content:'*';margin-left:.3rem}.data-grid .data-grid-checkbox-cell{padding:0;vertical-align:top;width:5.2rem}.data-grid .data-grid-checkbox-cell:hover{cursor:default}.data-grid .data-grid-thumbnail-cell{text-align:center;width:7rem}.data-grid .data-grid-thumbnail-cell img{border:1px solid #d6d6d6;max-width:5rem}.data-grid .data-grid-multicheck-cell{padding:1rem 1rem .9rem;text-align:center;vertical-align:middle}.data-grid .data-grid-actions-cell{padding-left:2rem;padding-right:2rem;text-align:center;width:1%}.data-grid._hidden{display:none}.data-grid._dragging-copy{box-shadow:1px 1px 5px rgba(0,0,0,.5);left:0;opacity:.95;position:fixed;top:0;z-index:1000}.data-grid._dragging-copy .data-grid-th{border:1px solid #007bdb;border-bottom:none}.data-grid._dragging-copy .data-grid-th,.data-grid._dragging-copy .data-grid-th._sortable{cursor:-webkit-grabbing;cursor:grabbing}.data-grid._dragging-copy tr:last-child td{border-bottom:1px solid #007bdb}.data-grid._dragging-copy td{border-left:1px solid #007bdb;border-right:1px solid #007bdb}.data-grid._dragging-copy._in-edit .data-grid-editable-row.data-grid-bulk-edit-panel td,.data-grid._dragging-copy._in-edit .data-grid-editable-row.data-grid-bulk-edit-panel td:before,.data-grid._dragging-copy._in-edit .data-grid-editable-row.data-grid-bulk-edit-panel:hover td{background-color:rgba(255,251,230,.95)}.data-grid._dragging-copy._in-edit .data-grid-editable-row td,.data-grid._dragging-copy._in-edit .data-grid-editable-row:hover td{background-color:rgba(255,255,255,.95)}.data-grid._dragging-copy._in-edit .data-grid-editable-row td:after,.data-grid._dragging-copy._in-edit .data-grid-editable-row td:before{left:0;right:0}.data-grid._dragging-copy._in-edit .data-grid-editable-row td:before{background-color:rgba(255,255,255,.95)}.data-grid._dragging-copy._in-edit .data-grid-editable-row td:only-child{border-left:1px solid #007bdb;border-right:1px solid #007bdb;left:0}.data-grid._dragging-copy._in-edit .data-grid-editable-row .admin__control-select,.data-grid._dragging-copy._in-edit .data-grid-editable-row .admin__control-text{opacity:.5}.data-grid._in-edit tr:hover td{background-color:#e6e6e6}.data-grid._in-edit ._odd-row.data-grid-editable-row td,.data-grid._in-edit ._odd-row.data-grid-editable-row:hover td{background-color:#fff}.data-grid._in-edit ._odd-row td,.data-grid._in-edit ._odd-row:hover td{background-color:#dcdcdc}.data-grid._in-edit .data-grid-editable-row-actions td,.data-grid._in-edit .data-grid-editable-row-actions:hover td{background-color:#fff}.data-grid._in-edit td{background-color:#e6e6e6;pointer-events:none}.data-grid._in-edit .data-grid-checkbox-cell{pointer-events:auto}.data-grid._in-edit .data-grid-editable-row{border:.1rem solid #adadad;border-bottom-color:#c2c2c2}.data-grid._in-edit .data-grid-editable-row:hover td{background-color:#fff}.data-grid._in-edit .data-grid-editable-row td{background-color:#fff;border-bottom-color:#fff;border-left-style:hidden;border-right-style:hidden;border-top-color:#fff;pointer-events:auto;vertical-align:middle}.data-grid._in-edit .data-grid-editable-row td:first-child{border-left-color:#adadad;border-left-style:solid}.data-grid._in-edit .data-grid-editable-row td:first-child:after,.data-grid._in-edit .data-grid-editable-row td:first-child:before{left:0}.data-grid._in-edit .data-grid-editable-row td:last-child{border-right-color:#adadad;border-right-style:solid;left:-.1rem}.data-grid._in-edit .data-grid-editable-row td:last-child:after,.data-grid._in-edit .data-grid-editable-row td:last-child:before{right:0}.data-grid._in-edit .data-grid-editable-row .admin__control-select,.data-grid._in-edit .data-grid-editable-row .admin__control-text{width:100%}.data-grid._in-edit .data-grid-bulk-edit-panel td{vertical-align:bottom}.data-grid .data-grid-editable-row td{border-left-color:#fff;border-left-style:solid;position:relative;z-index:1}.data-grid .data-grid-editable-row td:after{bottom:0;box-shadow:0 5px 5px rgba(0,0,0,.25);content:'';height:.9rem;left:0;margin-top:-1rem;position:absolute;right:0}.data-grid .data-grid-editable-row td:before{background-color:#fff;bottom:0;content:'';height:1rem;left:-10px;position:absolute;right:-10px;z-index:1}.data-grid .data-grid-editable-row.data-grid-editable-row-actions td,.data-grid .data-grid-editable-row.data-grid-editable-row-actions:hover td{background-color:#fff}.data-grid .data-grid-editable-row.data-grid-editable-row-actions td:first-child{border-left-color:#fff;border-right-color:#fff}.data-grid .data-grid-editable-row.data-grid-editable-row-actions td:last-child{left:0}.data-grid .data-grid-editable-row.data-grid-bulk-edit-panel td,.data-grid .data-grid-editable-row.data-grid-bulk-edit-panel td:before,.data-grid .data-grid-editable-row.data-grid-bulk-edit-panel:hover td{background-color:#fffbe6}.data-grid .data-grid-editable-row-actions{left:50%;margin-left:-12.5rem;margin-top:-2px;position:absolute;text-align:center}.data-grid .data-grid-editable-row-actions td{width:25rem}.data-grid .data-grid-editable-row-actions [class*=action-]{min-width:9rem}.data-grid-th._sortable._ascend,.data-grid-th._sortable._descend{padding-right:2.7rem}.data-grid-th._sortable._ascend:before,.data-grid-th._sortable._descend:before{margin-top:-1em;position:absolute;right:1rem;top:50%}.data-grid-th._sortable._ascend:before{content:'\2193'}.data-grid-th._sortable._descend:before{content:'\2191'}.data-grid-checkbox-cell-inner{display:block;padding:1.1rem 1.8rem .9rem;text-align:right}.data-grid-checkbox-cell-inner:hover{cursor:pointer}.data-grid-row-parent._active>td .data-grid-checkbox-cell-inner:before{content:'\e62b'}.data-grid-row-parent>td .data-grid-checkbox-cell-inner{padding-left:3.7rem;position:relative}.data-grid-row-parent>td .data-grid-checkbox-cell-inner:before{content:'\e628';font-size:1rem;font-weight:700;left:1.35rem;position:absolute;top:1.6rem}.data-grid-th._col-xs{width:1%}.data-grid-info-panel{box-shadow:0 0 5px rgba(0,0,0,.5);margin:2rem .1rem -2rem;padding:1rem}.data-grid-info-panel .messages{margin-bottom:1rem}.data-grid-info-panel-actions{text-align:right}.data-grid-editable-row .admin__field-control{position:relative}.data-grid-editable-row .admin__field-control._error:after{border-color:transparent #ee7d7d transparent transparent;border-style:solid;border-width:0 12px 12px 0;content:'';position:absolute;right:0;top:0}.data-grid-editable-row .admin__field-control._error .admin__control-text{border-color:#ee7d7d}.data-grid-editable-row .admin__field-control._focus:after{display:none}.data-grid-editable-row .admin__field-error{bottom:100%;box-shadow:1px 1px 5px rgba(0,0,0,.5);left:0;margin:0 auto 1.5rem;max-width:32rem;position:absolute;right:0}.data-grid-editable-row .admin__field-error:after,.data-grid-editable-row .admin__field-error:before{border-style:solid;content:'';left:50%;position:absolute;top:100%}.data-grid-editable-row .admin__field-error:after{border-color:#fffbbb transparent transparent;border-width:10px 10px 0;margin-left:-10px;z-index:1}.data-grid-editable-row .admin__field-error:before{border-color:#ee7d7d transparent transparent;border-width:11px 12px 0;margin-left:-12px}.data-grid-bulk-edit-panel .admin__field-label-vertical{display:block;font-size:1.2rem;margin-bottom:.5rem;text-align:left}.data-grid-row-changed{cursor:default;display:block;opacity:.5;position:relative;width:100%;z-index:1}.data-grid-row-changed:after{content:'\e631';display:inline-block}.data-grid-row-changed .data-grid-row-changed-tooltip{background:#f1f1f1;border-radius:1px;border:1px solid #f1f1f1;bottom:100%;box-shadow:0 3px 9px 0 rgba(0,0,0,.3);display:none;font-weight:400;line-height:1.36;margin-bottom:1.5rem;padding:1rem;position:absolute;right:-1rem;text-transform:none;width:27rem;word-break:normal;z-index:2}.data-grid-row-changed._changed{opacity:1;z-index:3}.data-grid-row-changed._changed:hover .data-grid-row-changed-tooltip{display:block}.data-grid-row-changed._changed:hover:before{background:#f1f1f1;border:1px solid #f1f1f1;bottom:100%;box-shadow:4px 4px 3px -1px rgba(0,0,0,.15);content:'';display:block;height:1.6rem;left:50%;margin:0 0 .7rem -.8rem;position:absolute;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:1.6rem;z-index:3}.ie9 .data-grid-row-changed._changed:hover:before{display:none}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]:before,.admin__control-file-label :before,.admin__control-multiselect,.admin__control-select,.admin__control-text,.admin__control-textarea,.selectmenu{background-color:#fff;border-radius:1px;border:1px solid #adadad;color:#303030;font-size:1.4rem;font-weight:400;line-height:1.36;height:auto;width:auto;padding:.6rem 1rem;transition:border-color .1s linear;vertical-align:baseline}.admin__control-multiselect:hover,.admin__control-select:hover,.admin__control-text:hover,.admin__control-textarea:hover,.selectmenu:hover,.selectmenu:hover .selectmenu-toggle:before{border-color:#878787}.admin__control-addon [class*=admin__control-][type]:focus+[class*=admin__addon-]:before,.admin__control-file:active+.admin__control-file-label :before,.admin__control-file:focus+.admin__control-file-label :before,.admin__control-multiselect:focus,.admin__control-select:focus,.admin__control-text:focus,.admin__control-textarea:focus,.selectmenu._focus,.selectmenu._focus .selectmenu-toggle:before{border-color:#007bdb;box-shadow:none;outline:0}.admin__control-addon [class*=admin__control-][type][disabled]+[class*=admin__addon-]:before,.admin__control-file[disabled]+.admin__control-file-label :before,.admin__control-multiselect[disabled],.admin__control-select[disabled],.admin__control-text[disabled],.admin__control-textarea[disabled]{background-color:#e9e9e9;border-color:#adadad;color:#303030;opacity:.5;cursor:not-allowed}.admin__fieldset>.admin__field.admin__field-wide[class]>.admin__field-control{float:none;clear:left;text-align:left;width:auto}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)>.admin__field-label{display:block;line-height:1.4rem;margin-bottom:.86rem;margin-top:-.14rem;text-align:left;width:auto}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)>.admin__field-label:before{display:none}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)._required>.admin__field-label span{padding-left:1.5rem}.admin__fieldset>.admin__field.admin__field-wide[class]:not(.admin__field-option)._required>.admin__field-label span:after{left:0;margin-left:30px;top:.2rem}.admin__legend{font-size:1.8rem;font-weight:600;margin-bottom:3rem}.admin__control-checkbox,.admin__control-radio{cursor:pointer;opacity:.01;overflow:hidden;position:absolute;vertical-align:top}.admin__control-checkbox:after,.admin__control-radio:after{display:none}.admin__control-checkbox+label,.admin__control-radio+label{cursor:pointer;display:inline-block}.admin__control-checkbox+label:before,.admin__control-radio+label:before{background-color:#fff;border:1px solid #adadad;color:transparent;float:left;height:1.6rem;text-align:center;vertical-align:top;width:1.6rem}.admin__control-checkbox+.admin__field-label,.admin__control-radio+.admin__field-label{padding-left:2.6rem}.admin__control-checkbox+.admin__field-label:before,.admin__control-radio+.admin__field-label:before{margin:1px 1rem 0 -2.6rem}.admin__control-checkbox:checked+label:before,.admin__control-radio:checked+label:before{color:#514943}.admin__control-checkbox.disabled+label,.admin__control-checkbox[disabled]+label,.admin__control-radio.disabled+label,.admin__control-radio[disabled]+label{cursor:default;color:#303030;opacity:.5}.admin__control-checkbox.disabled+label:before,.admin__control-checkbox[disabled]+label:before,.admin__control-radio.disabled+label:before,.admin__control-radio[disabled]+label:before{background-color:#e9e9e9;border-color:#adadad;cursor:default}._keyfocus .admin__control-checkbox:not(.disabled):focus+label:before,._keyfocus .admin__control-checkbox:not([disabled]):focus+label:before,._keyfocus .admin__control-radio:not(.disabled):focus+label:before,._keyfocus .admin__control-radio:not([disabled]):focus+label:before{border-color:#007bdb}.admin__control-checkbox:not(.disabled):hover+label:before,.admin__control-checkbox:not([disabled]):hover+label:before,.admin__control-radio:not(.disabled):hover+label:before,.admin__control-radio:not([disabled]):hover+label:before{border-color:#878787}.admin__control-radio+label:before{border-radius:1.6rem;content:'\e637';font-size:1rem;transition:border-color .1s linear,color .1s ease-in}.admin__control-radio.admin__control-radio+label:before{line-height:140%}.admin__control-radio:checked:not(.disabled):hover,.admin__control-radio:checked:not(.disabled):hover+label,.admin__control-radio:checked:not([disabled]):hover,.admin__control-radio:checked:not([disabled]):hover+label{cursor:default}.admin__control-radio:checked:not(.disabled):hover+label:before,.admin__control-radio:checked:not([disabled]):hover+label:before{border-color:#adadad}.admin__control-checkbox+label:before{border-radius:1px;content:'';font-size:0;transition:font-size .1s ease-out,color .1s ease-out,border-color .1s linear}.admin__control-checkbox:checked+label:before{content:'\e62d';font-size:1.1rem;line-height:125%}.admin__control-checkbox:not(:checked)._indeterminate+label:before,.admin__control-checkbox:not(:checked):indeterminate+label:before{color:#514943;content:'-';font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700}input[type=checkbox].admin__control-checkbox,input[type=radio].admin__control-checkbox{position:absolute;margin:0}.admin__control-select{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background-repeat:no-repeat;background-image:url(../images/arrows-bg.svg),linear-gradient(#e3e3e3,#e3e3e3),linear-gradient(#adadad,#adadad);background-position:calc(100% - 12px) -34px,100%,calc(100% - 3.2rem) 0;background-size:auto,3.2rem 100%,1px 100%;padding-bottom:.5rem;padding-right:4.4rem;padding-top:.5rem;transition:border-color .1s linear}.admin__control-select:hover{border-color:#878787;cursor:pointer}.admin__control-select:focus{background-image:url(../images/arrows-bg.svg),linear-gradient(#e3e3e3,#e3e3e3),linear-gradient(#007bdb,#007bdb);background-position:calc(100% - 12px) 13px,100%,calc(100% - 3.2rem) 0;border-color:#007bdb}.admin__control-select::-ms-expand{display:none}.ie9 .admin__control-select{background-image:none;padding-right:1rem}option:empty{display:none}.admin__control-multiselect{height:auto;padding:.6rem 1rem}.admin__control-file-wrapper{display:inline-block;padding:.5rem 1rem;position:relative;z-index:1}.admin__control-file-label :before{content:'';left:0;position:absolute;top:0;width:100%;z-index:0}.admin__control-file{position:relative;z-index:1;background:0 0;border:0;width:auto}.admin__control-support-text{border:1px solid transparent;display:inline-block;font-size:1.4rem;line-height:1.36;padding-top:.6rem;padding-bottom:.6rem}.admin__control-support-text+[class*=admin__control-],[class*=admin__control-]+.admin__control-support-text{margin-left:.7rem}.admin__control-textarea{height:8.48rem;line-height:1.18;padding-top:.8rem;resize:vertical}.admin__control-addon{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;display:inline-flex;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;position:relative;width:100%;z-index:1}.admin__control-addon>[class*=admin__addon-],.admin__control-addon>[class*=admin__control-]{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:relative;z-index:1}.admin__control-addon [class*=admin__control-][type]{appearence:none;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;box-shadow:none;background-color:transparent;border-color:transparent;-webkit-order:1;-ms-flex-order:1;order:1;vertical-align:top;width:auto}.admin__control-addon [class*=admin__control-][type] :focus{box-shadow:0}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]{padding-left:1rem;position:static!important;z-index:0}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]>*{position:relative;vertical-align:top;z-index:2}.admin__control-addon [class*=admin__control-][type]+[class*=admin__addon-]:before{bottom:0;box-sizing:border-box;content:'';left:0;position:absolute;top:0;width:100%;z-index:0}.admin__addon-prefix,.admin__addon-suffix{border:0;box-sizing:border-box;color:#858585;display:inline-block;font-size:1.4rem;font-weight:400;height:3.2rem;line-height:3.2rem;padding:0}.admin__addon-suffix{-webkit-order:3;-ms-flex-order:3;order:3}.admin__addon-suffix:last-child{padding-right:1rem}.admin__addon-prefix{-webkit-order:0;-ms-flex-order:0;order:0}.ie9 .admin__control-addon:after{clear:both;content:'';display:block;height:0;overflow:hidden}.ie9 .admin__addon{min-width:0;overflow:hidden;text-align:right;white-space:nowrap;width:auto}.ie9 .admin__addon [class*=admin__control-]{display:inline}.ie9 .admin__addon-prefix{float:left}.ie9 .admin__addon-suffix{float:right}.admin__control-table-wrapper{max-width:100%;overflow-x:auto;overflow-y:hidden}.admin__control-table{width:100%}.admin__control-table thead{background-color:transparent}.admin__control-table tbody td{vertical-align:middle}.admin__control-table tfoot th{padding-bottom:1.3rem}.admin__control-table tr:last-child td,.admin__control-table tr:last-child th{border-bottom:none}.admin__control-table td,.admin__control-table th{background-color:#efefef;border:0;border-bottom:1px solid #fff;padding:1.3rem 2.5rem 1.3rem 0;text-align:left;vertical-align:top}.admin__control-table td:first-child,.admin__control-table th:first-child{padding-left:1.5rem}.admin__control-table th{border:0;vertical-align:bottom;color:#303030;font-size:1.4rem;font-weight:600;padding-bottom:0}.admin__control-table th._required span:after{color:#eb5202;content:'*'}.admin__control-table .control-table-actions-th{white-space:nowrap}.admin__control-table .control-table-actions-cell{padding-top:1.8rem;text-align:center;width:1%}.admin__control-table .col-draggable{padding-top:2.2rem;width:1%}.admin__control-table .action-delete,.admin__control-table .action-delete:hover{background-color:transparent;border-color:transparent;box-shadow:none}.admin__control-table .action-delete:before{content:'\e630'}.admin__control-table .action-delete>span{display:none}.admin__field-tooltip{display:inline-block;margin-top:5px;overflow:visible;vertical-align:top;width:0}.admin__field-tooltip:hover{position:relative;z-index:500}.admin__field-option .admin__field-tooltip{margin-top:10px}.admin__field-tooltip .admin__field-tooltip-action{margin-left:20px;display:inline-block;text-decoration:none}.admin__field-tooltip .admin__field-tooltip-action:before{-webkit-font-smoothing:antialiased;font-size:2.2rem;line-height:1;color:#514943;content:'\e633';font-family:Icons;vertical-align:middle;display:inline-block;font-weight:400;overflow:hidden;speak:none;text-align:center}.admin__field-tooltip .admin__control-text:focus+.admin__field-tooltip-content,.admin__field-tooltip:hover .admin__field-tooltip-content{display:block}.admin__field-tooltip .admin__field-tooltip-content{bottom:42px;display:none;right:-70px}.admin__field-tooltip .admin__field-tooltip-content:after,.admin__field-tooltip .admin__field-tooltip-content:before{border:16px solid transparent;height:0;width:0;border-top-color:#afadac;content:"";display:block;position:absolute;right:20px;top:100%;z-index:3}.admin__field-tooltip .admin__field-tooltip-content:after{border-top-color:#fffbbb;margin-top:-1px;z-index:4}.abs-admin__field-tooltip-content,.admin__field-tooltip .admin__field-tooltip-content{box-shadow:0 2px 8px 0 rgba(0,0,0,.3);background:#fffbbb;border-radius:1px;border:1px solid #afadac;padding:15px 25px;position:absolute;width:320px;z-index:1}.admin__fieldset{border:0;margin:0;min-width:0;padding:0}.admin__fieldset>.admin__field{border:0;margin:0 0 0 -30px;padding:0}.admin__fieldset>.admin__field:after{clear:both;content:'';display:table}.admin__fieldset>.admin__field>.admin__field-control{width:calc((100%) * .4444444444444444 - 30px);float:left;margin-left:30px}.admin__fieldset>.admin__field>.admin__field-label{width:calc((100%) * .3333333333333333 - 30px);float:left;margin-left:30px}.admin__form-field{border:0;margin:0;padding:0}.admin__field-control .admin__control-text,.admin__field-control .admin__control-textarea,.admin__form-field-control .admin__control-text,.admin__form-field-control .admin__control-textarea{width:100%}.admin__field-label{color:#303030;margin:0;text-align:right}.admin__field-label+br{display:none}.admin__field:not(.admin__field-option)>.admin__field-label{font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:600;line-height:3.2rem;padding:0;white-space:nowrap;word-wrap:break-word}.admin__field:not(.admin__field-option)>.admin__field-label:before{opacity:0;visibility:hidden;content:'.';margin-left:-7px;overflow:hidden}.admin__field:not(.admin__field-option)>.admin__field-label span{display:inline-block;line-height:1.2;vertical-align:middle;white-space:normal}._required>.admin__field-label span:after{color:#eb5202;content:'*';display:inline-block;font-size:1.6rem;font-weight:500;line-height:1;margin-left:10px;position:absolute;top:1.2rem;z-index:1}._disabled>.admin__field-label{color:#999}.admin__field{margin-bottom:0}.admin__field+.admin__field{margin-top:1.5rem}.admin__field:not(.admin__field-option)~.admin__field-option{margin-top:.5rem}.admin__field.admin__field-option~.admin__field-option{margin-top:.9rem}.admin__field~.admin__field-option:last-child{margin-bottom:.8rem}.admin__fieldset>.admin__field{margin-bottom:3rem;position:relative}.admin__field[data-config-scope]:before{color:gray;content:attr(data-config-scope);display:inline-block;font-size:1.2rem;left:calc((100%) * .7777777777777778 - 30px);line-height:3.2rem;margin-left:60px;position:absolute;width:calc((100%) * .2222222222222222 - 30px)}.admin__field-control .admin__field[data-config-scope]:nth-child(n+2):before{content:''}.admin__field._error .admin__field-control [class*=admin__addon-]:before,.admin__field._error .admin__field-control>[class*=admin__control-]{border-color:#e22626}.admin__field-control+.admin__field-control{margin-top:1.5rem}.admin__field-error{background:#fffbbb;border:1px solid #ee7d7d;box-sizing:border-box;color:#555;display:block;font-size:1.2rem;font-weight:400;line-height:1.2;margin:.2rem 0 0;padding:.8rem 1rem .9rem}.admin__field-note{color:#303030;font-size:1.2rem;margin:10px 0 0;padding:0}.admin__field-option{padding-top:.8rem}.admin__field-option .admin__field-label{text-align:left}.admin__field-control>.admin__field-option:nth-child(1):nth-last-child(2),.admin__field-control>.admin__field-option:nth-child(2):nth-last-child(1){display:inline-block}.admin__field-control>.admin__field-option:nth-child(1):nth-last-child(2)+.admin__field-option,.admin__field-control>.admin__field-option:nth-child(2):nth-last-child(1)+.admin__field-option{display:inline-block;margin-left:41px;margin-top:0}.admin__field-control>.admin__field-option:nth-child(1):nth-last-child(2)+.admin__field-option:before,.admin__field-control>.admin__field-option:nth-child(2):nth-last-child(1)+.admin__field-option:before{background:#cacaca;content:'';display:inline-block;height:20px;margin-left:-20px;position:absolute;width:1px}.admin__field-value{padding-top:.8rem}.admin__control-fields>.admin__field:first-child,[class*=admin__control-grouped]>.admin__field:first-child{position:static}.admin__control-fields>.admin__field:first-child>.admin__field-label,[class*=admin__control-grouped]>.admin__field:first-child>.admin__field-label{width:calc((100%) * .3333333333333333 - 30px);float:left;margin-left:30px;cursor:pointer;left:0;opacity:0;position:absolute;top:0}.admin__control-fields .admin__field-label~.admin__field-control{width:100%}[class*=admin__control-grouped]{box-sizing:border-box;display:table;table-layout:fixed;width:100%}[class*=admin__control-grouped]>.admin__field{display:table-cell;vertical-align:top;width:50%}[class*=admin__control-grouped]>.admin__field>.admin__field-control{float:none;width:100%}[class*=admin__control-grouped]>.admin__field:nth-child(n+2){padding-left:20px}[class*=admin__control-grouped]>.admin__field:nth-child(n+2):not(.admin__field-option) .admin__field-label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.admin__field-control-group{margin-top:.8rem}.admin__field-control-group>.admin__field{padding:0}.admin__legend{float:left;position:static;width:100%}.admin__legend+br{display:block;height:0;overflow:hidden;clear:left}.message{margin-bottom:3rem}.message-icon-top:before{margin-top:0;top:1.8rem}.nav{background-color:#f8f8f8;border-bottom:1px solid #e3e3e3;border-top:1px solid #e3e3e3;display:none;margin-bottom:3rem;padding:2.2rem 1.5rem 0 0}.nav .btn-group,.nav-bar-outer-actions{float:right;margin-bottom:1.7rem}.nav .btn-group .btn-wrap,.nav-bar-outer-actions .btn-wrap{float:right;margin-left:.5rem;margin-right:.5rem}.nav .btn-group .btn-wrap .btn,.nav-bar-outer-actions .btn-wrap .btn{padding-left:.5rem;padding-right:.5rem}.nav-bar-outer-actions{margin-top:-10.6rem;padding-right:1.5rem}.btn-wrap-try-again{width:9.5rem}.btn-wrap-next,.btn-wrap-prev{width:8.5rem}.nav-bar{counter-reset:i;float:left;margin:0 1rem 1.7rem 0;padding:0;position:relative;white-space:nowrap}.nav-bar:before{background-color:#d4d4d4;background-repeat:repeat-x;background-image:linear-gradient(to bottom,#d1d1d1 0,#d4d4d4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#d1d1d1', endColorstr='#d4d4d4', GradientType=0);border-bottom:1px solid #d9d9d9;border-top:1px solid #bfbfbf;content:'';height:1rem;left:5.15rem;position:absolute;right:5.15rem;top:.7rem}.nav-bar>li{display:inline-block;font-size:0;position:relative;vertical-align:top;width:10.3rem}.nav-bar>li:first-child:after{display:none}.nav-bar>li:after{background-color:#514943;content:'';height:.5rem;left:calc(-50% + .25rem);position:absolute;right:calc(50% + .7rem);top:.9rem}.nav-bar>li.disabled:before,.nav-bar>li.ui-state-disabled:before{bottom:0;content:'';left:0;position:absolute;right:0;top:0;z-index:1}.nav-bar>li.active~li:after,.nav-bar>li.ui-state-active~li:after{display:none}.nav-bar>li.active~li a:after,.nav-bar>li.ui-state-active~li a:after{background-color:transparent;border-color:transparent;color:#a6a6a6}.nav-bar>li.active a,.nav-bar>li.ui-state-active a{color:#000}.nav-bar>li.active a:hover,.nav-bar>li.ui-state-active a:hover{cursor:default}.nav-bar>li.active a:after,.nav-bar>li.ui-state-active a:after{background-color:#fff;content:''}.nav-bar a{color:#514943;display:block;font-size:1.2rem;font-weight:600;line-height:1.2;overflow:hidden;padding:3rem .5em 0;position:relative;text-align:center;text-overflow:ellipsis}.nav-bar a:hover{text-decoration:none}.nav-bar a:after{background-color:#514943;border:.4rem solid #514943;border-radius:100%;color:#fff;content:counter(i);counter-increment:i;height:1.5rem;left:50%;line-height:.6;margin-left:-.8rem;position:absolute;right:auto;text-align:center;top:.4rem;width:1.5rem}.nav-bar a:before{background-color:#d6d6d6;border:1px solid transparent;border-bottom-color:#d9d9d9;border-radius:100%;border-top-color:#bfbfbf;content:'';height:2.3rem;left:50%;line-height:1;margin-left:-1.2rem;position:absolute;top:0;width:2.3rem}.tooltip{display:block;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.19rem;font-weight:400;line-height:1.4;opacity:0;position:absolute;visibility:visible;z-index:10}.tooltip.in{opacity:.9}.tooltip.top{margin-top:-4px;padding:8px 0}.tooltip.right{margin-left:4px;padding:0 8px}.tooltip.bottom{margin-top:4px;padding:8px 0}.tooltip.left{margin-left:-4px;padding:0 8px}.tooltip p:last-child{margin-bottom:0}.tooltip-inner{background-color:#fff;border:1px solid #adadad;border-radius:0;box-shadow:1px 1px 1px #ccc;color:#41362f;max-width:20rem;padding:.5em 1em;text-decoration:none}.tooltip-arrow,.tooltip-arrow:after{border:solid transparent;height:0;position:absolute;width:0}.tooltip-arrow:after{content:'';position:absolute}.tooltip.top .tooltip-arrow,.tooltip.top .tooltip-arrow:after{border-top-color:#949494;border-width:8px 8px 0;bottom:0;left:50%;margin-left:-8px}.tooltip.top-left .tooltip-arrow,.tooltip.top-left .tooltip-arrow:after{border-top-color:#949494;border-width:8px 8px 0;bottom:0;margin-bottom:-8px;right:8px}.tooltip.top-right .tooltip-arrow,.tooltip.top-right .tooltip-arrow:after{border-top-color:#949494;border-width:8px 8px 0;bottom:0;left:8px;margin-bottom:-8px}.tooltip.right .tooltip-arrow,.tooltip.right .tooltip-arrow:after{border-right-color:#949494;border-width:8px 8px 8px 0;left:1px;margin-top:-8px;top:50%}.tooltip.right .tooltip-arrow:after{border-right-color:#fff;border-width:6px 7px 6px 0;margin-left:0;margin-top:-6px}.tooltip.left .tooltip-arrow,.tooltip.left .tooltip-arrow:after{border-left-color:#949494;border-width:8px 0 8px 8px;margin-top:-8px;right:0;top:50%}.tooltip.bottom .tooltip-arrow,.tooltip.bottom .tooltip-arrow:after{border-bottom-color:#949494;border-width:0 8px 8px;left:50%;margin-left:-8px;top:0}.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow:after{border-bottom-color:#949494;border-width:0 8px 8px;margin-top:-8px;right:8px;top:0}.tooltip.bottom-right .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow:after{border-bottom-color:#949494;border-width:0 8px 8px;left:8px;margin-top:-8px;top:0}.password-strength{display:block;margin:0 -.3rem 1em;white-space:nowrap}.password-strength.password-strength-too-short .password-strength-item:first-child,.password-strength.password-strength-weak .password-strength-item:first-child,.password-strength.password-strength-weak .password-strength-item:first-child+.password-strength-item{background-color:#e22626}.password-strength.password-strength-fair .password-strength-item:first-child,.password-strength.password-strength-fair .password-strength-item:first-child+.password-strength-item,.password-strength.password-strength-fair .password-strength-item:first-child+.password-strength-item+.password-strength-item{background-color:#ef672f}.password-strength.password-strength-good .password-strength-item:first-child,.password-strength.password-strength-good .password-strength-item:first-child+.password-strength-item,.password-strength.password-strength-good .password-strength-item:first-child+.password-strength-item+.password-strength-item,.password-strength.password-strength-good .password-strength-item:first-child+.password-strength-item+.password-strength-item+.password-strength-item,.password-strength.password-strength-strong .password-strength-item{background-color:#79a22e}.password-strength .password-strength-item{background-color:#ccc;display:inline-block;font-size:0;height:1.4rem;margin-right:.3rem;width:calc(20% - .6rem)}@-webkit-keyframes progress-bar-stripes{from{background-position:4rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:4rem 0}to{background-position:0 0}}.progress{background-color:#fafafa;border:1px solid #ccc;clear:left;height:3rem;margin-bottom:3rem;overflow:hidden}.progress-bar{background-color:#79a22e;color:#fff;float:left;font-size:1.19rem;height:100%;line-height:3rem;text-align:center;transition:width .6s ease;width:0}.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-text-description{margin-bottom:1.6rem}.progress-bar-text-progress{text-align:right}.page-columns .page-inner-sidebar{margin:0 0 3rem}.page-header{margin-bottom:2.7rem;padding-bottom:2.9rem;position:relative}.page-header:before{border-bottom:1px solid #e3e3e3;bottom:0;content:'';display:block;height:1px;left:3rem;position:absolute;right:3rem}.container .page-header:before{content:normal}.page-header .message{margin-bottom:1.8rem}.page-header .message+.message{margin-top:-1.5rem}.page-header .admin__action-dropdown,.page-header .search-global-input{transition:none}.container .page-header{margin-bottom:0}.page-title-wrapper{margin-top:1.1rem}.container .page-title-wrapper{background:url(../../pub/images/logo.svg) no-repeat;min-height:41px;padding:4px 0 0 45px}.admin__menu .level-0:first-child>a{margin-top:1.6rem}.admin__menu .level-0:first-child>a:after{top:-1.6rem}.admin__menu .level-0>a{padding-top:1.3rem;padding-bottom:1.3rem}.admin__menu .level-0>a:before{margin-bottom:.7rem}.admin__menu .item-home>a:before{content:'\e611';font-size:2.3rem;padding-top:-.1rem}.admin__menu .item-component>a:before{content:'\e612'}.admin__menu .item-upgrade>a:before{content:'\e614'}.admin__menu .item-system-config>a:before{content:'\e610'}.admin__menu .item-tools>a:before{content:'\e613'}.modal-sub-title{font-size:1.7rem;font-weight:600}.modal-connect-signin .modal-inner-wrap{max-width:80rem}@-webkit-keyframes ngdialog-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes ngdialog-fadeout{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes ngdialog-fadein{0%{opacity:0}100%{opacity:1}}@keyframes ngdialog-fadein{0%{opacity:0}100%{opacity:1}}.ngdialog{-webkit-overflow-scrolling:touch;bottom:0;box-sizing:border-box;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:999}.ngdialog *,.ngdialog:after,.ngdialog:before{box-sizing:inherit}.ngdialog.ngdialog-disabled-animation *{-webkit-animation:none!important;animation:none!important}.ngdialog.ngdialog-closing .ngdialog-content,.ngdialog.ngdialog-closing .ngdialog-overlay{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadeout .5s;animation:ngdialog-fadeout .5s}.ngdialog-overlay{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadein .5s;animation:ngdialog-fadein .5s;background:rgba(0,0,0,.4);bottom:0;left:0;position:fixed;right:0;top:0}.ngdialog-content{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadein .5s;animation:ngdialog-fadein .5s}body.ngdialog-open{overflow:hidden}.component-indicator{border-radius:50%;cursor:help;display:inline-block;height:20px;text-align:center;width:20px}.component-indicator::after,.component-indicator::before{background:#fff;display:block;opacity:0;position:absolute;transition:opacity .2s linear .1s;visibility:hidden}.component-indicator::before{border-radius:1px;border:1px solid #adadad;box-shadow:0 0 2px rgba(0,0,0,.4);content:attr(data-label);font-size:1.2rem;margin:34px 0 0 -10px;min-width:50px;padding:4px 5px}.component-indicator::after{border:1px solid #999;border-width:1px 0 0 1px;box-shadow:-1px -1px 1px rgba(0,0,0,.1);content:'';height:10px;margin:9px 0 0 5px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:10px}.component-indicator:hover::after,.component-indicator:hover::before{opacity:1;transition:opacity .2s linear;visibility:visible}.component-indicator span{display:block;height:20px;overflow:hidden;width:20px}.component-indicator span:before{content:'';display:block;font-family:Icons;font-size:20px;height:100%;line-height:20px;width:100%}.component-indicator._on{background:#79a22e}.component-indicator._off{background:#e22626}.component-indicator._off span:before{background:#fff;height:4px;margin:8px auto 20px;width:12px}.component-indicator._info{background:0 0}.component-indicator._info span{width:21px}.component-indicator._info span:before{color:#008bdb;content:'\e61a';font-family:Icons;font-size:21px}.app-updater .nav{display:block;margin-bottom:3.1rem;margin-top:-2.8rem}.app-updater .nav-bar-outer-actions{margin-top:1rem;padding-right:0}.app-updater .nav-bar-outer-actions .btn-wrap-cancel{margin-right:2.6rem}.main{padding-bottom:2rem;padding-top:3rem}.header{display:none}.header .logo{float:left;height:4.1rem;width:3.5rem}.header-title{font-size:2.8rem;letter-spacing:.02em;line-height:1.4;margin:2.5rem 0 3.5rem 5rem}.page-sub-title{font-size:2rem}.accent-box{margin-bottom:2rem}.accent-box .btn-prime{margin-top:1.5rem}.page-landing{margin:7.6% auto 0;max-width:44rem;text-align:center}.page-landing .logo{height:5.6rem;margin-bottom:2rem;width:19.2rem}.page-landing .text-version{margin-bottom:3rem}.page-landing .text-welcome{margin-bottom:6.5rem}.page-landing .text-terms{margin-bottom:2.5rem;text-align:center}.page-landing .btn-submit,.page-license .license-text{margin-bottom:2rem}.page-license .page-license-footer{text-align:right}.readiness-check-item{margin-bottom:4rem;min-height:2.5rem}.readiness-check-item .spinner{font-size:2.5rem;float:left;margin:-.4rem 0 0 1.7rem}.readiness-check-title{font-size:1.4rem;font-weight:700;margin-bottom:.1rem;margin-left:5.7rem}.readiness-check-content{margin-left:5.7rem;margin-right:22rem}.readiness-check-content .readiness-check-title{margin-left:0}.readiness-check-content .list{margin-top:-.3rem}.readiness-check-side{float:right;padding-left:2.4rem;width:22rem}.readiness-check-side .side-title{margin-bottom:0}.readiness-check-icon{float:left;margin-left:1.7rem;margin-top:.7rem}.page-web-configuration .form-el-insider-wrap{width:auto}.page-web-configuration .form-el-insider{width:15.4rem}.page-web-configuration .form-el-insider-input .form-el-input{width:16.5rem}.customize-your-store .customize-your-store-default .legend{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.customize-your-store .advanced-modules-count,.customize-your-store .advanced-modules-select{padding-left:1.5rem}.customize-your-store .customize-your-store-advanced{min-width:0}.customize-your-store .message-error:before{margin-top:0;top:1.8rem}.customize-your-store .message-error a{color:#333;text-decoration:underline}.customize-your-store .message-error .form-label:before{background:#fff}.customize-your-store .customize-database-clean p{margin-top:2.5rem}.content-install{margin-bottom:2rem}.console{border:1px solid #ccc;font-family:'Courier New',Courier,monospace;font-weight:300;height:20rem;margin:1rem 0 2rem;overflow-y:auto;padding:1.5rem 2rem 2rem;resize:vertical}.console .text-danger{color:#e22626}.console .text-success{color:#090}.console .hidden{display:none}.content-success .btn-prime{margin-top:1.5rem}.jumbo-title{font-size:3.6rem}.jumbo-title .jumbo-icon{font-size:3.8rem;margin-right:.25em;position:relative;top:.15em}.install-database-clean{margin-top:4rem}.install-database-clean .btn{margin-right:1rem}.page-sub-title{margin-bottom:2.1rem}.multiselect-custom{max-width:71.1rem}.content-install{margin-top:3.7rem}.home-page-inner-wrap{margin:0 auto;max-width:91rem}.setup-home-title{margin-bottom:3.9rem;padding-top:1.8rem;text-align:center}.setup-home-item{background-color:#fafafa;border:1px solid #ccc;color:#333;display:block;margin-bottom:2rem;margin-left:1.3rem;margin-right:1.3rem;min-height:30rem;padding:2rem;text-align:center}.setup-home-item:hover{border-color:#8c8c8c;color:#333;text-decoration:none;transition:border-color .1s linear}.setup-home-item:active{-webkit-transform:scale(0.99);-ms-transform:scale(0.99);transform:scale(0.99)}.setup-home-item:before{display:block;font-size:7rem;margin-bottom:3.3rem;margin-top:4rem}.setup-home-item-component:before{content:'\e612'}.setup-home-item-upgrade:before{content:'\e614'}.setup-home-item-configuration:before{content:'\e610'}.setup-home-item-title{display:block;font-size:1.8rem;letter-spacing:.025em;margin-bottom:1rem}.setup-home-item-description{display:block}.componenet-manager-wrap{border:1px solid #bbb;margin:0 0 4rem}.componenet-manager-wrap .componenet-manager-account{font-size:1.4rem;float:right;padding:.6rem 0 0}.componenet-manager-wrap .componenet-manager-account .sign-in-out{margin-left:2rem}.component-manager-title{background-color:#f8f8f8;border-bottom:1px solid #e3e3e3;color:#41362f;font-size:2rem;line-height:1.2;padding:2rem}.component-manager-content{padding:2.5rem 2rem 2rem}.componenet-manager-items{list-style:none;margin:0;text-align:center}.componenet-manager-items .btn{border:1px solid #adadad}.componenet-manager-items .item-title{margin:0 0 1.5rem}.componenet-manager-items .item-number{font-size:6rem;line-height:.8;margin:0 0 1.5rem}.componenet-manager-items .item-date{margin:0 0 3.7rem}.componenet-manager-items .item-install{margin:0 0 2rem}.componenet-manager-items .item-install .btn{line-height:1.36;margin:0;padding:0;color:#008bdb;text-decoration:none;background:0 0;border:0;display:inline;font-size:1.4rem;font-weight:400}.componenet-manager-items .item-install .btn:visited{color:#008bdb;text-decoration:none}.componenet-manager-items .item-install .btn:hover{text-decoration:underline}.componenet-manager-items .item-install .btn:active{color:#ff5501;text-decoration:underline}.componenet-manager-items .item-install .btn:hover{color:#0fa7ff}.componenet-manager-items .item-install .btn:active,.componenet-manager-items .item-install .btn:focus,.componenet-manager-items .item-install .btn:hover{background:0 0;border:0}.componenet-manager-items .item-install .btn.disabled,.componenet-manager-items .item-install .btn[disabled],fieldset[disabled] .componenet-manager-items .item-install .btn{color:#008bdb;opacity:.5;cursor:default;pointer-events:none;text-decoration:underline}.componenet-manager-items .item-install .btn.disabled{text-decoration:none}.sync-login-wrap{margin:-2.5rem 0 0;padding:0 10% 4rem}.sync-login-wrap .legend{font-size:2.6rem;color:#eb5202;float:left;font-weight:300;line-height:1.2;margin:-1rem 0 2.5rem;position:static;width:100%}.sync-login-wrap .legend._hidden{display:none}.sync-login-wrap .login-header{font-size:3.4rem;font-weight:300;margin:0 0 2rem}.sync-login-wrap .login-header span{display:inline-block;padding:.9rem 0 0;vertical-align:top}.sync-login-wrap .form-row .form-label{display:inline-block}.sync-login-wrap .form-row .form-label.required{padding-left:1.5rem}.sync-login-wrap .form-row .form-label.required:after{left:0;position:absolute;right:auto}.sync-login-wrap .form-row{max-width:28rem}.sync-login-wrap .form-actions{display:table;margin-top:-1.3rem}.sync-login-wrap .form-actions .links{display:table-header-group}.sync-login-wrap .form-actions .actions{padding:3rem 0 0}@media all and (max-width:1047px){.admin__menu .submenu li{min-width:19.8rem}.nav{padding-bottom:5.38rem;padding-left:1.5rem;text-align:center}.nav-bar{display:inline-block;float:none;margin-right:0;vertical-align:top}.nav .btn-group,.nav-bar-outer-actions{display:inline-block;float:none;margin-top:-8.48rem;text-align:center;vertical-align:top;width:100%}.nav-bar-outer-actions{padding-right:0}.nav-bar-outer-actions .outer-actions-inner-wrap{display:inline-block}.app-updater .nav{padding-bottom:1.7rem}.app-updater .nav-bar-outer-actions{margin-top:2rem}}@media all and (min-width:768px){.page-layout-admin-2columns-left .page-columns{margin-left:-30px}.page-layout-admin-2columns-left .page-columns:after{clear:both;content:'';display:table}.page-layout-admin-2columns-left .page-columns .main-col{width:calc((100%) * .75 - 30px);float:right}.page-layout-admin-2columns-left .page-columns .side-col{width:calc((100%) * .25 - 30px);float:left;margin-left:30px}.col-m-1,.col-m-10,.col-m-11,.col-m-12,.col-m-2,.col-m-3,.col-m-4,.col-m-5,.col-m-6,.col-m-7,.col-m-8,.col-m-9{float:left}.col-m-12{width:100%}.col-m-11{width:91.66666667%}.col-m-10{width:83.33333333%}.col-m-9{width:75%}.col-m-8{width:66.66666667%}.col-m-7{width:58.33333333%}.col-m-6{width:50%}.col-m-5{width:41.66666667%}.col-m-4{width:33.33333333%}.col-m-3{width:25%}.col-m-2{width:16.66666667%}.col-m-1{width:8.33333333%}.col-m-pull-12{right:100%}.col-m-pull-11{right:91.66666667%}.col-m-pull-10{right:83.33333333%}.col-m-pull-9{right:75%}.col-m-pull-8{right:66.66666667%}.col-m-pull-7{right:58.33333333%}.col-m-pull-6{right:50%}.col-m-pull-5{right:41.66666667%}.col-m-pull-4{right:33.33333333%}.col-m-pull-3{right:25%}.col-m-pull-2{right:16.66666667%}.col-m-pull-1{right:8.33333333%}.col-m-pull-0{right:auto}.col-m-push-12{left:100%}.col-m-push-11{left:91.66666667%}.col-m-push-10{left:83.33333333%}.col-m-push-9{left:75%}.col-m-push-8{left:66.66666667%}.col-m-push-7{left:58.33333333%}.col-m-push-6{left:50%}.col-m-push-5{left:41.66666667%}.col-m-push-4{left:33.33333333%}.col-m-push-3{left:25%}.col-m-push-2{left:16.66666667%}.col-m-push-1{left:8.33333333%}.col-m-push-0{left:auto}.col-m-offset-12{margin-left:100%}.col-m-offset-11{margin-left:91.66666667%}.col-m-offset-10{margin-left:83.33333333%}.col-m-offset-9{margin-left:75%}.col-m-offset-8{margin-left:66.66666667%}.col-m-offset-7{margin-left:58.33333333%}.col-m-offset-6{margin-left:50%}.col-m-offset-5{margin-left:41.66666667%}.col-m-offset-4{margin-left:33.33333333%}.col-m-offset-3{margin-left:25%}.col-m-offset-2{margin-left:16.66666667%}.col-m-offset-1{margin-left:8.33333333%}.col-m-offset-0{margin-left:0}.page-columns{margin-left:-30px}.page-columns:after{clear:both;content:'';display:table}.page-columns .page-inner-content{width:calc((100%) * .75 - 30px);float:right}.page-columns .page-inner-sidebar{width:calc((100%) * .25 - 30px);float:left;margin-left:30px}}@media all and (min-width:1048px){.col-l-1,.col-l-10,.col-l-11,.col-l-12,.col-l-2,.col-l-3,.col-l-4,.col-l-5,.col-l-6,.col-l-7,.col-l-8,.col-l-9{float:left}.col-l-12{width:100%}.col-l-11{width:91.66666667%}.col-l-10{width:83.33333333%}.col-l-9{width:75%}.col-l-8{width:66.66666667%}.col-l-7{width:58.33333333%}.col-l-6{width:50%}.col-l-5{width:41.66666667%}.col-l-4{width:33.33333333%}.col-l-3{width:25%}.col-l-2{width:16.66666667%}.col-l-1{width:8.33333333%}.col-l-pull-12{right:100%}.col-l-pull-11{right:91.66666667%}.col-l-pull-10{right:83.33333333%}.col-l-pull-9{right:75%}.col-l-pull-8{right:66.66666667%}.col-l-pull-7{right:58.33333333%}.col-l-pull-6{right:50%}.col-l-pull-5{right:41.66666667%}.col-l-pull-4{right:33.33333333%}.col-l-pull-3{right:25%}.col-l-pull-2{right:16.66666667%}.col-l-pull-1{right:8.33333333%}.col-l-pull-0{right:auto}.col-l-push-12{left:100%}.col-l-push-11{left:91.66666667%}.col-l-push-10{left:83.33333333%}.col-l-push-9{left:75%}.col-l-push-8{left:66.66666667%}.col-l-push-7{left:58.33333333%}.col-l-push-6{left:50%}.col-l-push-5{left:41.66666667%}.col-l-push-4{left:33.33333333%}.col-l-push-3{left:25%}.col-l-push-2{left:16.66666667%}.col-l-push-1{left:8.33333333%}.col-l-push-0{left:auto}.col-l-offset-12{margin-left:100%}.col-l-offset-11{margin-left:91.66666667%}.col-l-offset-10{margin-left:83.33333333%}.col-l-offset-9{margin-left:75%}.col-l-offset-8{margin-left:66.66666667%}.col-l-offset-7{margin-left:58.33333333%}.col-l-offset-6{margin-left:50%}.col-l-offset-5{margin-left:41.66666667%}.col-l-offset-4{margin-left:33.33333333%}.col-l-offset-3{margin-left:25%}.col-l-offset-2{margin-left:16.66666667%}.col-l-offset-1{margin-left:8.33333333%}.col-l-offset-0{margin-left:0}}@media all and (min-width:1440px){.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{float:left}.col-xl-12{width:100%}.col-xl-11{width:91.66666667%}.col-xl-10{width:83.33333333%}.col-xl-9{width:75%}.col-xl-8{width:66.66666667%}.col-xl-7{width:58.33333333%}.col-xl-6{width:50%}.col-xl-5{width:41.66666667%}.col-xl-4{width:33.33333333%}.col-xl-3{width:25%}.col-xl-2{width:16.66666667%}.col-xl-1{width:8.33333333%}.col-xl-pull-12{right:100%}.col-xl-pull-11{right:91.66666667%}.col-xl-pull-10{right:83.33333333%}.col-xl-pull-9{right:75%}.col-xl-pull-8{right:66.66666667%}.col-xl-pull-7{right:58.33333333%}.col-xl-pull-6{right:50%}.col-xl-pull-5{right:41.66666667%}.col-xl-pull-4{right:33.33333333%}.col-xl-pull-3{right:25%}.col-xl-pull-2{right:16.66666667%}.col-xl-pull-1{right:8.33333333%}.col-xl-pull-0{right:auto}.col-xl-push-12{left:100%}.col-xl-push-11{left:91.66666667%}.col-xl-push-10{left:83.33333333%}.col-xl-push-9{left:75%}.col-xl-push-8{left:66.66666667%}.col-xl-push-7{left:58.33333333%}.col-xl-push-6{left:50%}.col-xl-push-5{left:41.66666667%}.col-xl-push-4{left:33.33333333%}.col-xl-push-3{left:25%}.col-xl-push-2{left:16.66666667%}.col-xl-push-1{left:8.33333333%}.col-xl-push-0{left:auto}.col-xl-offset-12{margin-left:100%}.col-xl-offset-11{margin-left:91.66666667%}.col-xl-offset-10{margin-left:83.33333333%}.col-xl-offset-9{margin-left:75%}.col-xl-offset-8{margin-left:66.66666667%}.col-xl-offset-7{margin-left:58.33333333%}.col-xl-offset-6{margin-left:50%}.col-xl-offset-5{margin-left:41.66666667%}.col-xl-offset-4{margin-left:33.33333333%}.col-xl-offset-3{margin-left:25%}.col-xl-offset-2{margin-left:16.66666667%}.col-xl-offset-1{margin-left:8.33333333%}.col-xl-offset-0{margin-left:0}}@media all and (max-width:767px){.list-definition>dt{float:none}.list-definition>dd{margin-left:0}.form-row .form-label{text-align:left}.form-row .form-label.required:after{position:static}.nav{padding-bottom:0;padding-left:0;padding-right:0}.nav-bar-outer-actions{margin-top:0}.nav-bar{display:block;margin-bottom:0;margin-left:auto;margin-right:auto;width:30.9rem}.nav-bar:before{display:none}.nav-bar>li{float:left;min-height:9rem}.nav-bar>li:after{display:none}.nav-bar>li:nth-child(4n){clear:both}.nav-bar a{line-height:1.4}.tooltip{display:none!important}.readiness-check-content{margin-right:2rem}.form-el-insider,.form-el-insider-wrap,.page-web-configuration .form-el-insider-input,.page-web-configuration .form-el-insider-input .form-el-input{display:block;width:100%}}@media all and (max-width:479px){.nav-bar{width:23.175rem}.nav-bar>li{width:7.725rem}.nav .btn-group .btn-wrap-try-again,.nav-bar-outer-actions .btn-wrap-try-again{clear:both;display:block;float:none;margin-left:auto;margin-right:auto;margin-top:1rem;padding-top:1rem}} \ No newline at end of file diff --git a/setup/view/magento/setup/home.phtml b/setup/view/magento/setup/home.phtml index 4dd3b27962e..42387438af5 100644 --- a/setup/view/magento/setup/home.phtml +++ b/setup/view/magento/setup/home.phtml @@ -6,27 +6,27 @@ ?> <section class="home-page-inner-wrap ng-scope"> - <p class="upgrade-home-title"> + <p class="setup-home-title"> Welcome to the Magento Setup Tool. Please choose a task below. </p> <div class="row" style="padding-left: 145px;" > <div class="col-m-4"> - <a href="" class="upgrade-home-item upgrade-home-item-component" ui-sref="root.update"> - <span class="upgrade-home-item-title">Component Manager</span> - <span class="upgrade-home-item-description">I want to manage my packages and modules.</span> + <a href="" class="setup-home-item setup-home-item-component" ui-sref="root.update"> + <span class="setup-home-item-title">Component Manager</span> + <span class="setup-home-item-description">I want to manage my packages and modules.</span> </a> </div> <div class="col-m-4"> - <a href="" class="upgrade-home-item upgrade-home-item-upgrade" ui-sref="root.upgrade"> - <span class="upgrade-home-item-title">System Upgrade</span> - <span class="upgrade-home-item-description">I want to upgrade my Magento Admin version.</span> + <a href="" class="setup-home-item setup-home-item-upgrade" ui-sref="root.upgrade"> + <span class="setup-home-item-title">System Upgrade</span> + <span class="setup-home-item-description">I want to upgrade my Magento Admin version.</span> </a> </div> <div class="col-m-4"> - <a href="" class="upgrade-home-item upgrade-home-item-configuration" ui-sref="root.system-config"> - <span class="upgrade-home-item-title">System Configuration</span> - <span class="upgrade-home-item-description">I want to change my Magento system configurations.</span> + <a href="" class="setup-home-item setup-home-item-configuration" ui-sref="root.system-config"> + <span class="setup-home-item-title">System Configuration</span> + <span class="setup-home-item-description">I want to change my Magento system configurations.</span> </a> </div> </div> diff --git a/setup/view/magento/setup/navigation/menu.phtml b/setup/view/magento/setup/navigation/menu.phtml index d3ea9768c9a..b69df93fae2 100644 --- a/setup/view/magento/setup/navigation/menu.phtml +++ b/setup/view/magento/setup/navigation/menu.phtml @@ -17,8 +17,8 @@ </head> -<div> - <nav ng-controller="navigationController" id="menu" class="nav ng-scope show" + +<nav ng-controller="navigationController" id="menu" class="nav ng-scope show" ng-hide="$state.current.noMenu || $state.current.main || $state.current.default"> <ul class="nav-bar"> <li ng-repeat="menuState in menu | filter: {type: $state.current.type}:true" @@ -29,4 +29,4 @@ </li> </ul> </nav> -</div> + diff --git a/setup/view/magento/setup/select-version.phtml b/setup/view/magento/setup/select-version.phtml index 9cfca95e680..b1a8367978e 100644 --- a/setup/view/magento/setup/select-version.phtml +++ b/setup/view/magento/setup/select-version.phtml @@ -5,8 +5,6 @@ */ ?> -<h2 class="page-title">{{$state.current.header}}</h2> - <div class="nav-bar-outer-actions"> <div class="outer-actions-inner-wrap"> @@ -30,6 +28,8 @@ </div> </div> +<h2 class="page-sub-title">{{$state.current.header}}</h2> + <div class="row form-row"> <div class="message message-spinner" ng-show="!upgradeProcessed"> <span class="spinner"> -- GitLab From b240869a892061f58291de78570e004cca26e2fe Mon Sep 17 00:00:00 2001 From: Ievgen Sentiabov <isentiabov@ebay.com> Date: Tue, 13 Oct 2015 12:36:57 +0300 Subject: [PATCH 370/420] MAGETWO-43951: Unable to place order within Authorize.net from backend - Fixed incorrect variable usage - Updated version of code sniffer --- .../adminhtml/templates/directpost/info.phtml | 15 +++++++++------ composer.json | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/app/code/Magento/Authorizenet/view/adminhtml/templates/directpost/info.phtml b/app/code/Magento/Authorizenet/view/adminhtml/templates/directpost/info.phtml index c6dd0ce00e6..5c04fb59e0c 100644 --- a/app/code/Magento/Authorizenet/view/adminhtml/templates/directpost/info.phtml +++ b/app/code/Magento/Authorizenet/view/adminhtml/templates/directpost/info.phtml @@ -4,7 +4,6 @@ * See COPYING.txt for license details. */ -// @codingStandardsIgnoreFile /** * @var \Magento\Authorizenet\Block\Transparent\Iframe $block @@ -24,10 +23,12 @@ $ccExpYear = $block->getInfoData('cc_exp_year'); src="<?php /* @noEscape */ echo $block->getViewFileUrl('blank.html'); ?>"> </iframe> <!-- IFRAME for request to Authorize.net --> -<iframe id="directpost-iframe" allowtransparency="true" frameborder="0" name="iframeDirectPost" style="display:none;width:100%;background-color:transparent" +<iframe id="directpost-iframe" allowtransparency="true" frameborder="0" name="iframeDirectPost" + style="display:none;width:100%;background-color:transparent" src="<?php /* @noEscape */ echo $block->getViewFileUrl('blank.html'); ?>"> </iframe> -<fieldset class="admin__fieldset payment-method" id="payment_form_<?php /* @noEscape */ echo $code; ?>" style="display:none;"> +<fieldset class="admin__fieldset payment-method" id="payment_form_<?php /* @noEscape */ echo $code; ?>" + style="display:none;"> <div class="admin__field _required"> <label for="<?php /* @noEscape */ echo $code; ?>_cc_type" class="admin__field-label"> <span><?php echo $block->escapeHtml(__('Credit Card Type')); ?></span> @@ -81,11 +82,11 @@ $ccExpYear = $block->getInfoData('cc_exp_year'); <?php if ($k == $ccExpYear): ?>selected="selected"<?php endif; ?>> <?php echo $block->escapeHtml($v); ?> </option> - <?php endforeach ?> + <?php endforeach; ?> </select> </div> </div> - <?php if ($_form->hasVerification()): ?> + <?php if ($block->hasVerification()): ?> <div class="admin__field _required"> <label for="<?php /* @noEscape */ echo $code; ?>_cc_cid"> <span><?php echo $block->escapeHtml(__('Card Verification Number')); ?></span> @@ -123,7 +124,9 @@ $ccExpYear = $block->getInfoData('cc_exp_year'); '<?php /* @noEscape */ echo $controller; ?>', '<?php /* @noEscape */ echo $orderUrl; ?>', '<?php echo $block->escapeUrl($method->getCgiUrl()); ?>', - '<?php /* @noEscape */ echo $block->getUrl('*/*/save', ['_secure' => $block->getRequest()->isSecure()]) ?>'); + '<?php /* @noEscape */ echo $block->getUrl('*/*/save', [ + '_secure' => $block->getRequest()->isSecure() + ]);?>'); <?php if (!$block->isAjaxRequest()): ?> }); diff --git a/composer.json b/composer.json index 0fa24640ae4..e0d6f057360 100644 --- a/composer.json +++ b/composer.json @@ -53,7 +53,7 @@ }, "require-dev": { "phpunit/phpunit": "4.1.0", - "squizlabs/php_codesniffer": "1.5.3", + "squizlabs/php_codesniffer": "2.3.4", "phpmd/phpmd": "@stable", "pdepend/pdepend": "2.0.6", "lib-libxml": "*", -- GitLab From 948f39a8c9fdda7f434585a8e1892f8210e668ee Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Tue, 13 Oct 2015 12:40:42 +0300 Subject: [PATCH 371/420] MAGETWO-43923: [GitHub]ModelResource namespace inconsistency CR changes static test fix --- .../Adminhtml/Order/Pdfinvoices.php | 3 +++ .../Test/Legacy/_files/obsolete_classes.php | 20 +++++++++++++++++++ .../Legacy/_files/obsolete_namespaces.php | 1 + 3 files changed, 24 insertions(+) diff --git a/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfinvoices.php b/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfinvoices.php index 15469cdf292..6f7f353dddc 100644 --- a/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfinvoices.php +++ b/app/code/Magento/Sales/Controller/Adminhtml/Order/Pdfinvoices.php @@ -17,6 +17,9 @@ use Magento\Framework\Controller\ResultInterface; use Magento\Sales\Model\ResourceModel\Order\Invoice\CollectionFactory; use Magento\Sales\Model\ResourceModel\Order\Collection as OrderCollection; +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ class Pdfinvoices extends \Magento\Sales\Controller\Adminhtml\Order\AbstractMassAction { /** diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php index a782da65571..f81735e973a 100755 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php @@ -804,23 +804,42 @@ return [ ['Magento\Core\Model\Email\Sender', 'Magento\Framework\Mail\Template\TransportBuilder'], ['Magento\Core\Model\Email\Template\Mailer', 'Magento\Framework\Mail\Template\TransportBuilder'], ['Magento\Core\Model\Resource\AbstractResource', 'Magento\Framework\Model\ResourceModel\AbstractResource'], + [ + 'Magento\Framework\Model\ModelResource\AbstractResource', + 'Magento\Framework\Model\ResourceModel\AbstractResource' + ], ['Magento\Core\Model\Resource\Db\AbstractDb', 'Magento\Framework\Model\ResourceModel\Db\AbstractDb'], + ['Magento\Framework\Model\ModelResource\Db\AbstractDb', 'Magento\Framework\Model\ResourceModel\Db\AbstractDb'], ['Magento\Core\Model\Resource\Db\Profiler', 'Magento\Framework\Model\ResourceModel\Db\Profiler'], + ['Magento\Framework\Model\ModelResource\Db\Profiler', 'Magento\Framework\Model\ResourceModel\Db\Profiler'], [ 'Magento\Core\Model\Resource\Entity\AbstractEntity', 'Magento\Framework\Model\ResourceModel\Entity\AbstractEntity', ], + [ + 'Magento\Framework\Model\ModelResource\Entity\AbstractEntity', + 'Magento\Framework\Model\ResourceModel\Entity\AbstractEntity', + ], ['Magento\Core\Model\Resource\Entity\Table', 'Magento\Framework\Model\ResourceModel\Entity\Table'], + ['Magento\Framework\Model\ModelResource\Entity\Table', 'Magento\Framework\Model\ResourceModel\Entity\Table'], ['Magento\Core\Model\Resource\Flag', 'Magento\Framework\Flag\FlagResource'], ['Magento\Core\Model\Resource\Iterator', 'Magento\Framework\Model\ResourceModel\Iterator'], + ['Magento\Framework\Model\ModelResource\Iterator', 'Magento\Framework\Model\ResourceModel\Iterator'], ['Magento\Core\Model\Resource\Resource', 'Magento\Framework\Module\ModuleResource'], ['Magento\Core\Model\Resource\Type\AbstractType', 'Magento\Framework\Model\ResourceModel\Type\AbstractType'], + ['Magento\Framework\Model\ModelResource\Type\AbstractType', 'Magento\Framework\Model\ResourceModel\Type\AbstractType'], ['Magento\Core\Model\Resource\Type\Db', 'Magento\Framework\Model\ResourceModel\Type\Db'], + ['Magento\Framework\Model\ModelResource\Type\Db', 'Magento\Framework\Model\ResourceModel\Type\Db'], ['Magento\Core\Model\Resource\Type\Db\Pdo\Mysql', 'Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql'], + ['Magento\Framework\Model\ModelResource\Type\Db\Pdo\Mysql', 'Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql'], [ 'Magento\Core\Model\Resource\Db\Collection\AbstractCollection', 'Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection', ], + [ + 'Magento\Framework\Model\ModelResource\Db\Collection\AbstractCollection', + 'Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection', + ], ['Magento\Email\Model\Info', 'Magento\Framework\Mail\MessageInterface'], ['Magento\Email\Model\Sender', 'Magento\Framework\Mail\Template\TransportBuilder'], ['Magento\Email\Model\Template\Mailer', 'Magento\Framework\Mail\Template\TransportBuilder'], @@ -2926,6 +2945,7 @@ return [ ], ['Magento\Sales\Controller\Adminhtml\Order\InvoiceLoader'], ['Magento\Sales\Model\ResourceModel\AbstractResource', 'Magento\Framework\Model\ResourceModel\Db\AbstractDb'], + ['Magento\Framework\Model\ModelResource\Db\AbstractDb', 'Magento\Framework\Model\ResourceModel\Db\AbstractDb'], ['Magento\Backend\Block\System\Config\Switcher'], ['Magento\VersionsCms\Block\Adminhtml\Scope\Switcher'], ['Magento\Backend\Block\Widget\View\Container'], diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_namespaces.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_namespaces.php index 924b33deb90..2419014c40d 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_namespaces.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_namespaces.php @@ -193,4 +193,5 @@ return [ ['Magento\Framework\Model\Resource', 'Magento\Framework\Model\ResourceModel'], ['Magento\Framework\Model\ModelResource', 'Magento\Framework\Model\ResourceModel'], ['Magento\Framework\Model\Test\Unit\Resource', 'Magento\Framework\Model\Test\Unit\ResourceModel'], + ['Magento\Framework\Model\Test\Unit\ModelResource', 'Magento\Framework\Model\Test\Unit\ResourceModel'], ]; -- GitLab From 3f5482bdced0ce030614ea600770d339c98f76e4 Mon Sep 17 00:00:00 2001 From: Ievgen Sentiabov <isentiabov@ebay.com> Date: Tue, 13 Oct 2015 12:56:58 +0300 Subject: [PATCH 372/420] MAGETWO-43951: Unable to place order within Authorize.net from backend - Updated version of code sniffer --- .../Framework/Composer/_files/testFromClone/composer.json | 2 +- .../Composer/_files/testFromCreateProject/composer.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromClone/composer.json b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromClone/composer.json index 438e99d692d..11c14569efd 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromClone/composer.json +++ b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromClone/composer.json @@ -41,7 +41,7 @@ }, "require-dev": { "phpunit/phpunit": "4.1.0", - "squizlabs/php_codesniffer": "1.5.3", + "squizlabs/php_codesniffer": "2.3.4", "phpmd/phpmd": "@stable", "pdepend/pdepend": "2.0.6", "lib-libxml": "*", diff --git a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.json b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.json index e7403b54be9..285e6772dea 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.json +++ b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.json @@ -12,7 +12,7 @@ }, "require-dev": { "phpunit/phpunit": "4.1.0", - "squizlabs/php_codesniffer": "1.5.3", + "squizlabs/php_codesniffer": "2.3.4", "phpmd/phpmd": "@stable", "pdepend/pdepend": "2.0.6", "lib-libxml": "*", -- GitLab From b710315388b6181ef171d1b6c7d8710d187b7a87 Mon Sep 17 00:00:00 2001 From: Ievgen Sentiabov <isentiabov@ebay.com> Date: Tue, 13 Oct 2015 13:13:58 +0300 Subject: [PATCH 373/420] MAGETWO-43951: Unable to place order within Authorize.net from backend - Changed composer version to old --- .../Authorizenet/view/adminhtml/templates/directpost/info.phtml | 2 +- composer.json | 2 +- .../Framework/Composer/_files/testFromClone/composer.json | 2 +- .../Composer/_files/testFromCreateProject/composer.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Authorizenet/view/adminhtml/templates/directpost/info.phtml b/app/code/Magento/Authorizenet/view/adminhtml/templates/directpost/info.phtml index 5c04fb59e0c..6c02076b5a7 100644 --- a/app/code/Magento/Authorizenet/view/adminhtml/templates/directpost/info.phtml +++ b/app/code/Magento/Authorizenet/view/adminhtml/templates/directpost/info.phtml @@ -4,7 +4,7 @@ * See COPYING.txt for license details. */ - +// @codingStandardsIgnoreFile /** * @var \Magento\Authorizenet\Block\Transparent\Iframe $block * @see \Magento\Authorizenet\Block\Transparent\Iframe diff --git a/composer.json b/composer.json index e0d6f057360..0fa24640ae4 100644 --- a/composer.json +++ b/composer.json @@ -53,7 +53,7 @@ }, "require-dev": { "phpunit/phpunit": "4.1.0", - "squizlabs/php_codesniffer": "2.3.4", + "squizlabs/php_codesniffer": "1.5.3", "phpmd/phpmd": "@stable", "pdepend/pdepend": "2.0.6", "lib-libxml": "*", diff --git a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromClone/composer.json b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromClone/composer.json index 11c14569efd..438e99d692d 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromClone/composer.json +++ b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromClone/composer.json @@ -41,7 +41,7 @@ }, "require-dev": { "phpunit/phpunit": "4.1.0", - "squizlabs/php_codesniffer": "2.3.4", + "squizlabs/php_codesniffer": "1.5.3", "phpmd/phpmd": "@stable", "pdepend/pdepend": "2.0.6", "lib-libxml": "*", diff --git a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.json b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.json index 285e6772dea..e7403b54be9 100644 --- a/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.json +++ b/dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.json @@ -12,7 +12,7 @@ }, "require-dev": { "phpunit/phpunit": "4.1.0", - "squizlabs/php_codesniffer": "2.3.4", + "squizlabs/php_codesniffer": "1.5.3", "phpmd/phpmd": "@stable", "pdepend/pdepend": "2.0.6", "lib-libxml": "*", -- GitLab From 9087aed550660126ef8a51e33e2d9524d6bfb503 Mon Sep 17 00:00:00 2001 From: Yaroslav Onischenko <yonischenko@ebay.com> Date: Tue, 13 Oct 2015 13:34:51 +0300 Subject: [PATCH 374/420] MAGETWO-43977: Problems with Sample Data content on Store Front after installation --- .../Magento/SampleData/Model/BlackHole.php | 22 ------------------- app/code/Magento/SampleData/etc/di.xml | 20 ----------------- 2 files changed, 42 deletions(-) delete mode 100644 app/code/Magento/SampleData/Model/BlackHole.php diff --git a/app/code/Magento/SampleData/Model/BlackHole.php b/app/code/Magento/SampleData/Model/BlackHole.php deleted file mode 100644 index 06f557d3184..00000000000 --- a/app/code/Magento/SampleData/Model/BlackHole.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\SampleData\Model; - -/** - * Mail Transport that do not send mail - */ -class BlackHole implements \Magento\Framework\Mail\TransportInterface -{ - /** - * Send a mail using this transport - * - * @return void - */ - public function sendMessage() - { - return true; - } -} diff --git a/app/code/Magento/SampleData/etc/di.xml b/app/code/Magento/SampleData/etc/di.xml index 1ddee22996d..a34bdcabd0f 100644 --- a/app/code/Magento/SampleData/etc/di.xml +++ b/app/code/Magento/SampleData/etc/di.xml @@ -15,24 +15,4 @@ </argument> </arguments> </type> - <virtualType name="Magento\SampleData\Model\BlackHoleFactory" type="\Magento\Framework\Mail\TransportInterfaceFactory"> - <arguments> - <argument name="instanceName" xsi:type="string">Magento\SampleData\Model\BlackHole</argument> - </arguments> - </virtualType> - <virtualType name="blackHoleTransportBuilder" type="Magento\Framework\Mail\Template\TransportBuilder"> - <arguments> - <argument name="mailTransportFactory" xsi:type="object" >Magento\SampleData\Model\BlackHoleFactory</argument> - </arguments> - </virtualType> - <virtualType name="sampleDataAccountManagement" type="Magento\Customer\Model\AccountManagement"> - <arguments> - <argument name="transportBuilder" xsi:type="object">blackHoleTransportBuilder</argument> - </arguments> - </virtualType> - <type name="Magento\SampleData\Module\Customer\Setup\Customer"> - <arguments> - <argument name="accountManagement" xsi:type="object">sampleDataAccountManagement</argument> - </arguments> - </type> </config> -- GitLab From b0f8d19973bda995d8c8edd038850285ce379830 Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Tue, 13 Oct 2015 13:39:14 +0300 Subject: [PATCH 375/420] MAGETWO-43923: [GitHub]ModelResource namespace inconsistency removed extra pattern --- .../testsuite/Magento/Test/Legacy/_files/obsolete_classes.php | 1 - 1 file changed, 1 deletion(-) diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php index 92c2bd24331..f6e9a5779e1 100755 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php @@ -809,7 +809,6 @@ return [ 'Magento\Framework\Model\ResourceModel\AbstractResource' ], ['Magento\Core\Model\Resource\Db\AbstractDb', 'Magento\Framework\Model\ResourceModel\Db\AbstractDb'], - ['Magento\Framework\Model\ModelResource\Db\AbstractDb', 'Magento\Framework\Model\ResourceModel\Db\AbstractDb'], ['Magento\Core\Model\Resource\Db\Profiler', 'Magento\Framework\Model\ResourceModel\Db\Profiler'], ['Magento\Framework\Model\ModelResource\Db\Profiler', 'Magento\Framework\Model\ResourceModel\Db\Profiler'], [ -- GitLab From 0f2faf506155d7f896b7d12957e338c2663450ad Mon Sep 17 00:00:00 2001 From: Ievgen Sentiabov <isentiabov@ebay.com> Date: Tue, 13 Oct 2015 15:08:50 +0300 Subject: [PATCH 376/420] MAGETWO-43951: Unable to place order within Authorize.net from backend - Fixed typo in variable name --- .../Payment/view/adminhtml/templates/info/default.phtml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Payment/view/adminhtml/templates/info/default.phtml b/app/code/Magento/Payment/view/adminhtml/templates/info/default.phtml index 99805632010..2ce70dcad46 100644 --- a/app/code/Magento/Payment/view/adminhtml/templates/info/default.phtml +++ b/app/code/Magento/Payment/view/adminhtml/templates/info/default.phtml @@ -9,10 +9,11 @@ * @var \Magento\Payment\Block\Info $block * @see \Magento\Payment\Block\Info */ +$specificInfo = $block->getSpecificInformation(); ?> <?php echo $block->escapeHtml($block->getMethod()->getTitle()); ?> -<?php if ($_specificInfo = $block->getSpecificInformation()):?> +<?php if ($specificInfo): ?> <table class="data-table admin__table-secondary"> <?php foreach ($specificInfo as $label => $value):?> <tr> -- GitLab From b1e5ae41b8d2e8400ce012a2b35fa26167d62bd3 Mon Sep 17 00:00:00 2001 From: Andrii Kasian <akasian@ebay.com> Date: Tue, 13 Oct 2015 15:14:47 +0300 Subject: [PATCH 377/420] MAGETWO-39604: [GITHUB] Doesn't work sorting in the search list. #1432 --- .../Catalog/Block/Product/ProductList/Toolbar.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php b/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php index 7188c99efea..4661cfb7110 100644 --- a/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php +++ b/app/code/Magento/Catalog/Block/Product/ProductList/Toolbar.php @@ -5,6 +5,7 @@ */ namespace Magento\Catalog\Block\Product\ProductList; +use Magento\Catalog\Helper\Product\ProductList; use Magento\Catalog\Model\Product\ProductList\Toolbar as ToolbarModel; /** @@ -63,7 +64,7 @@ class Toolbar extends \Magento\Framework\View\Element\Template * * @var string */ - protected $_direction = \Magento\Catalog\Helper\Product\ProductList::DEFAULT_SORT_DIRECTION; + protected $_direction = ProductList::DEFAULT_SORT_DIRECTION; /** * Default View mode @@ -102,7 +103,7 @@ class Toolbar extends \Magento\Framework\View\Element\Template protected $_toolbarModel; /** - * @var \Magento\Catalog\Helper\Product\ProductList + * @var ProductList */ protected $_productListHelper; @@ -122,7 +123,7 @@ class Toolbar extends \Magento\Framework\View\Element\Template * @param \Magento\Catalog\Model\Config $catalogConfig * @param ToolbarModel $toolbarModel * @param \Magento\Framework\Url\EncoderInterface $urlEncoder - * @param \Magento\Catalog\Helper\Product\ProductList $productListHelper + * @param ProductList $productListHelper * @param \Magento\Framework\Data\Helper\PostHelper $postDataHelper * @param array $data */ @@ -132,7 +133,7 @@ class Toolbar extends \Magento\Framework\View\Element\Template \Magento\Catalog\Model\Config $catalogConfig, ToolbarModel $toolbarModel, \Magento\Framework\Url\EncoderInterface $urlEncoder, - \Magento\Catalog\Helper\Product\ProductList $productListHelper, + ProductList $productListHelper, \Magento\Framework\Data\Helper\PostHelper $postDataHelper, array $data = [] ) { @@ -678,7 +679,7 @@ class Toolbar extends \Magento\Framework\View\Element\Template 'order' => ToolbarModel::ORDER_PARAM_NAME, 'limit' => ToolbarModel::LIMIT_PARAM_NAME, 'modeDefault' => $defaultMode, - 'directionDefault' => \Magento\Catalog\Helper\Product\ProductList::DEFAULT_SORT_DIRECTION, + 'directionDefault' => $this->_direction ?: ProductList::DEFAULT_SORT_DIRECTION, 'orderDefault' => $this->_productListHelper->getDefaultSortField(), 'limitDefault' => $this->_productListHelper->getDefaultLimitPerPageValue($defaultMode), 'url' => $this->getPagerUrl(), -- GitLab From bac9ee78182d34c3087726050be9d040ee1d5f44 Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Tue, 13 Oct 2015 15:33:30 +0300 Subject: [PATCH 378/420] MAGETWO-43923: [GitHub]ModelResource namespace inconsistency static test fix --- .../Magento/Test/Legacy/_files/obsolete_classes.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php index f6e9a5779e1..3093142055f 100755 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php @@ -826,11 +826,17 @@ return [ ['Magento\Framework\Model\ModelResource\Iterator', 'Magento\Framework\Model\ResourceModel\Iterator'], ['Magento\Core\Model\Resource\Resource', 'Magento\Framework\Module\ModuleResource'], ['Magento\Core\Model\Resource\Type\AbstractType', 'Magento\Framework\Model\ResourceModel\Type\AbstractType'], - ['Magento\Framework\Model\ModelResource\Type\AbstractType', 'Magento\Framework\Model\ResourceModel\Type\AbstractType'], + [ + 'Magento\Framework\Model\ModelResource\Type\AbstractType', + 'Magento\Framework\Model\ResourceModel\Type\AbstractType' + ], ['Magento\Core\Model\Resource\Type\Db', 'Magento\Framework\Model\ResourceModel\Type\Db'], ['Magento\Framework\Model\ModelResource\Type\Db', 'Magento\Framework\Model\ResourceModel\Type\Db'], ['Magento\Core\Model\Resource\Type\Db\Pdo\Mysql', 'Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql'], - ['Magento\Framework\Model\ModelResource\Type\Db\Pdo\Mysql', 'Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql'], + [ + 'Magento\Framework\Model\ModelResource\Type\Db\Pdo\Mysql', + 'Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql' + ], [ 'Magento\Core\Model\Resource\Db\Collection\AbstractCollection', 'Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection', -- GitLab From 54c510a585a2d5048ab2de9b5db57d7c7860e74d Mon Sep 17 00:00:00 2001 From: Viktor Tymchynskyi <vtymchynskyi@ebay.com> Date: Tue, 13 Oct 2015 15:50:10 +0300 Subject: [PATCH 379/420] MAGETWO-43950: Unable to place order within PayPal Express Checkout with virtual product --- app/code/Magento/Paypal/Model/Express/Checkout.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Paypal/Model/Express/Checkout.php b/app/code/Magento/Paypal/Model/Express/Checkout.php index d9b9d986f1b..214a4d6f293 100644 --- a/app/code/Magento/Paypal/Model/Express/Checkout.php +++ b/app/code/Magento/Paypal/Model/Express/Checkout.php @@ -1191,10 +1191,10 @@ class Checkout /** * Set shipping options to api * @param \Magento\Paypal\Model\Cart $cart - * @param \Magento\Quote\Model\Quote\Address $address + * @param \Magento\Quote\Model\Quote\Address|null $address * @return void */ - private function setShippingOptions(PaypalCart $cart, Address $address) + private function setShippingOptions(PaypalCart $cart, $address) { // for included tax always disable line items (related to paypal amount rounding problem) $this->_api->setIsLineItemsEnabled($this->_config->getValue(PaypalConfig::TRANSFER_CART_LINE_ITEMS)); -- GitLab From 833d9e6beafef0e8853e66bcdd67f94f73f526db Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Tue, 13 Oct 2015 16:12:10 +0300 Subject: [PATCH 380/420] MAGETWO-43923: [GitHub]ModelResource namespace inconsistency static test fix --- .../testsuite/Magento/Test/Legacy/_files/obsolete_classes.php | 1 - 1 file changed, 1 deletion(-) diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php index 3093142055f..e4864f983e5 100755 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php @@ -4000,7 +4000,6 @@ return [ ['Magento\Framework\Module\Resource', 'Magento\Framework\Module\ModuleResource'], ['Magento\OfflineShipping\Model\Observer\SalesRule\ActionsTab', 'Magento\OfflineShipping\Observer\*'], ['Magento\Theme\Model\Observer', 'Magento\Theme\Observer\*'], - ['Magento\Catalog\Model\Product\Compare\Item', 'Magento\Catalog\Observer\*'], ['Magento\Catalog\Observer\AddCatalogToTopmenuItems', 'Magento\Catalog\Observer\*'], ['Magento\Catalog\Observer\CatalogCheckIsUsingStaticUrlsAllowed', 'Magento\Catalog\Observer\*'], [ -- GitLab From 50d3dc191a5769259624351938bdd2c86b816e20 Mon Sep 17 00:00:00 2001 From: Viktor Tymchynskyi <vtymchynskyi@ebay.com> Date: Tue, 13 Oct 2015 16:08:14 +0300 Subject: [PATCH 381/420] MAGETWO-43950: Unable to place order within PayPal Express Checkout with virtual product - Revert commit of 54c510a585a2d5048ab2de9b5db57d7c7860e74d --- app/code/Magento/Paypal/Model/Express/Checkout.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Paypal/Model/Express/Checkout.php b/app/code/Magento/Paypal/Model/Express/Checkout.php index 214a4d6f293..d9b9d986f1b 100644 --- a/app/code/Magento/Paypal/Model/Express/Checkout.php +++ b/app/code/Magento/Paypal/Model/Express/Checkout.php @@ -1191,10 +1191,10 @@ class Checkout /** * Set shipping options to api * @param \Magento\Paypal\Model\Cart $cart - * @param \Magento\Quote\Model\Quote\Address|null $address + * @param \Magento\Quote\Model\Quote\Address $address * @return void */ - private function setShippingOptions(PaypalCart $cart, $address) + private function setShippingOptions(PaypalCart $cart, Address $address) { // for included tax always disable line items (related to paypal amount rounding problem) $this->_api->setIsLineItemsEnabled($this->_config->getValue(PaypalConfig::TRANSFER_CART_LINE_ITEMS)); -- GitLab From 8afcb7906219c988d36861702b6d7af6abaa3130 Mon Sep 17 00:00:00 2001 From: Michail Slabko <mslabko@ebay.com> Date: Tue, 13 Oct 2015 16:32:44 +0300 Subject: [PATCH 382/420] MAGETWO-43997: Remove extra classes from obsolete list --- .../Magento/Test/Legacy/_files/obsolete_classes.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php index 1e240b0bebc..58104369e36 100755 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php @@ -3975,7 +3975,6 @@ return [ ['Magento\Framework\Module\Resource', 'Magento\Framework\Module\ModuleResource'], ['Magento\OfflineShipping\Model\Observer\SalesRule\ActionsTab', 'Magento\OfflineShipping\Observer\*'], ['Magento\Theme\Model\Observer', 'Magento\Theme\Observer\*'], - ['Magento\Catalog\Model\Product\Compare\Item', 'Magento\Catalog\Observer\*'], ['Magento\Catalog\Observer\AddCatalogToTopmenuItems', 'Magento\Catalog\Observer\*'], ['Magento\Catalog\Observer\CatalogCheckIsUsingStaticUrlsAllowed', 'Magento\Catalog\Observer\*'], [ @@ -3991,9 +3990,6 @@ return [ ['Magento\Msrp\Model\Observer\Frontend\Quote\SetCanApplyMsrp', 'Magento\Msrp\Observer\*'], ['Magento\Customer\Model\Observer\Log', 'Magento\Customer\Observer\*'], ['Magento\Customer\Model\Observer', 'Magento\Customer\Observer\*'], - ['Magento\Paypal\Observer\SaveOrderAfterSubmitObserver', 'Magento\Paypal\Observer\*'], - ['Magento\Paypal\Observer\SetResponseAfterSaveOrderObserver', 'Magento\Paypal\Observer\*'], - ['Magento\Paypal\Observer\AddPaypalShortcutsObserver', 'Magento\Paypal\Observer\*'], ['Magento\Paypal\Model\Observer\RestrictAdminBillingAgreementUsage', 'Magento\Paypal\Observer\*'], ['Magento\GiftMessage\Model\Observer', 'Magento\GiftMessage\Observer\*'], ['Magento\Quote\Model\Observer\Webapi\Submit', 'Magento\Quote\Observer\*'], @@ -4021,7 +4017,6 @@ return [ ['Magento\CatalogUrlRewrite\Model\Product\Observer', 'Magento\CatalogUrlRewrite\Observer\*'], ['Magento\CatalogUrlRewrite\Model\Category\Observer', 'Magento\CatalogUrlRewrite\Observer\*'], ['Magento\CatalogUrlRewrite\Observer\ProductUrlKeyAutogenerator', 'Magento\CatalogUrlRewrite\Observer\*'], - ['Magento\CatalogSearch\Model\Indexer\Fulltext\Store', 'Magento\CatalogSearch\Observer\*'], ['Magento\Weee\Model\Total\Observer\Webapi\Item', 'Magento\Weee\Observer\*'], ['Magento\Captcha\Model\Observer', 'Magento\Captcha\Observer\*'], ['Magento\GoogleAdwords\Model\Observer', 'Magento\GoogleAdwords\Observer\*'], @@ -4071,7 +4066,6 @@ return [ ['Magento\PageCache\Model\Observer\InvalidateCache', 'Magento\PageCache\Observer\*'], ['Magento\PageCache\Model\Observer\RegisterFormKeyFromCookie', 'Magento\PageCache\Observer\*'], ['Magento\PageCache\Model\Observer\FlushFormKeyOnLogout', 'Magento\PageCache\Observer\*'], - ['Magento\CatalogInventory\Model\Quote\Item\QuantityValidator', 'Magento\CatalogInventory\Observer\*'], ['Magento\GoogleOptimizer\Model\Observer\Product\Save', 'Magento\GoogleOptimizer\Observer\*'], ['Magento\GoogleOptimizer\Model\Observer\Product\Delete', 'Magento\GoogleOptimizer\Observer\*'], ['Magento\GoogleOptimizer\Model\Observer\Category\Save', 'Magento\GoogleOptimizer\Observer\*'], -- GitLab From 51e3955cbe1781867130c32cd5f2415f7b50ff94 Mon Sep 17 00:00:00 2001 From: Viktor Tymchynskyi <vtymchynskyi@ebay.com> Date: Tue, 13 Oct 2015 17:03:38 +0300 Subject: [PATCH 383/420] MAGETWO-43950: Unable to place order within PayPal Express Checkout with virtual product --- app/code/Magento/Paypal/Model/Express/Checkout.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Paypal/Model/Express/Checkout.php b/app/code/Magento/Paypal/Model/Express/Checkout.php index 214a4d6f293..d3b0cf72fc7 100644 --- a/app/code/Magento/Paypal/Model/Express/Checkout.php +++ b/app/code/Magento/Paypal/Model/Express/Checkout.php @@ -1194,7 +1194,7 @@ class Checkout * @param \Magento\Quote\Model\Quote\Address|null $address * @return void */ - private function setShippingOptions(PaypalCart $cart, $address) + private function setShippingOptions(PaypalCart $cart, Address $address = null) { // for included tax always disable line items (related to paypal amount rounding problem) $this->_api->setIsLineItemsEnabled($this->_config->getValue(PaypalConfig::TRANSFER_CART_LINE_ITEMS)); -- GitLab From f83f4ac888c1d56ff8862fcb277a6912e2d4808d Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Tue, 13 Oct 2015 20:27:42 +0300 Subject: [PATCH 384/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - CSP test - Fix translation --- .../Catalog/view/frontend/templates/product/view/gallery.phtml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml index 7bc5622d15d..d344cef700d 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/gallery.phtml @@ -15,7 +15,8 @@ <div class="gallery-placeholder _block-content-loading" data-gallery-role="gallery-placeholder"> <div data-role="loader" class="loading-mask"> <div class="loader"> - <img src="<?php /* @escapeNotVerified */ echo $block->getViewFileUrl('images/loader-2.gif'); ?>" alt="Loading..."> + <img src="<?php /* @escapeNotVerified */ echo $block->getViewFileUrl('images/loader-1.gif'); ?>" + alt="<?php /* @escapeNotVerified */ echo __('Loading...') ?>"> </div> </div> </div> -- GitLab From 602094ddf6436338a9bfd6d0b613601618b5d4a4 Mon Sep 17 00:00:00 2001 From: Anton Guz <aguz@ebay.com> Date: Tue, 13 Oct 2015 20:40:44 +0300 Subject: [PATCH 385/420] MAGETWO-43599: Prepare Pull Request for Gallery Widget on Configurable Product - Fix vertical thumbs option --- lib/web/magnifier/magnifier.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/web/magnifier/magnifier.js b/lib/web/magnifier/magnifier.js index 92c7156fcef..2a315a2b9bc 100644 --- a/lib/web/magnifier/magnifier.js +++ b/lib/web/magnifier/magnifier.js @@ -819,7 +819,7 @@ if (($imageContainer.offset().left + $imageContainer.width()) > (left + $image.width() + widthStep/2)) { left = $imageContainer.offset().left + $imageContainer.width() - $image.width() + widthStep/2; } else { - left = ($imageContainer.offset().left <= left + widthStep/2 && widthStep > 0) ? 0 : left + widthStep/2; + left = ($imageContainer.offset().left <= left + widthStep/2 && widthStep > 0) ? 0 : left - $imageContainer.offset().left + widthStep/2; } $image.css({ left: left, -- GitLab From 659dbfc80cb7c320da9cd23ee570a34536da3fcf Mon Sep 17 00:00:00 2001 From: Oleksii Korshenko <okorshenko@ebay.com> Date: Wed, 14 Oct 2015 15:44:30 +0300 Subject: [PATCH 386/420] MAGETWO-43923: [GitHub] ModelResource namespace inconsistency --- .../Model/Test/Unit/ResourceModel/Db/AbstractDbTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/AbstractDbTest.php b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/AbstractDbTest.php index ab63a57d469..b6ec3d9a68f 100644 --- a/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/AbstractDbTest.php +++ b/lib/internal/Magento/Framework/Model/Test/Unit/ResourceModel/Db/AbstractDbTest.php @@ -499,7 +499,7 @@ class AbstractDbTest extends \PHPUnit_Framework_TestCase /** * Mock SUT so as not to test extraneous logic */ - $model = $this->getMockBuilder('Magento\Framework\Model\ModelResource\Db\AbstractDb') + $model = $this->getMockBuilder('Magento\Framework\Model\ResourceModel\Db\AbstractDb') ->disableOriginalConstructor() ->setMethods(['_prepareDataForSave', 'getIdFieldName', 'getConnection', 'getMainTable']) ->getMockForAbstractClass(); -- GitLab From 39af05da08f756168ed0948e080bd24cfc9b45f0 Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Thu, 15 Oct 2015 10:35:50 +0300 Subject: [PATCH 387/420] MAGETWO-43923: [GitHub]ModelResource namespace inconsistency static test fix --- app/code/Magento/Catalog/Setup/UpgradeData.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/code/Magento/Catalog/Setup/UpgradeData.php b/app/code/Magento/Catalog/Setup/UpgradeData.php index 9dbadabc4eb..c5963538371 100644 --- a/app/code/Magento/Catalog/Setup/UpgradeData.php +++ b/app/code/Magento/Catalog/Setup/UpgradeData.php @@ -35,6 +35,7 @@ class UpgradeData implements UpgradeDataInterface /** * {@inheritdoc} + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context) { @@ -98,6 +99,7 @@ class UpgradeData implements UpgradeDataInterface } if (version_compare($context->getVersion(), '2.0.2') < 0) { + // set new resource model paths /** @var \Magento\Catalog\Setup\CategorySetup $categorySetup */ $categorySetup = $this->categorySetupFactory->create(['setup' => $setup]); $categorySetup->updateEntityType( -- GitLab From 07158252cb210a946111336c508a5021e36b7954 Mon Sep 17 00:00:00 2001 From: Ievgen Sentiabov <isentiabov@ebay.com> Date: Thu, 15 Oct 2015 11:05:26 +0300 Subject: [PATCH 388/420] MAGETWO-43951: Unable to place order within Authorize.net from backend - Refactored variables --- .../Payment/view/adminhtml/templates/transparent/form.phtml | 6 +++--- .../Payment/view/frontend/templates/transparent/form.phtml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/Payment/view/adminhtml/templates/transparent/form.phtml b/app/code/Magento/Payment/view/adminhtml/templates/transparent/form.phtml index 92c44c6c5d4..1bb248e6fd5 100644 --- a/app/code/Magento/Payment/view/adminhtml/templates/transparent/form.phtml +++ b/app/code/Magento/Payment/view/adminhtml/templates/transparent/form.phtml @@ -10,6 +10,7 @@ $code = $block->getMethodCode(); $ccType = $block->getInfoData('cc_type'); $ccExpYear = $block->getInfoData('cc_exp_year'); +$ccExpMonth = $block->getInfoData('cc_exp_month'); ?> <!-- IFRAME for request to Payment Gateway --> @@ -87,11 +88,10 @@ $ccExpYear = $block->getInfoData('cc_exp_year'); data-container="<?php /* @noEscape */ echo $code; ?>-cc-month" class="admin__control-select admin__control-select-month" data-validate='{required:true, "validate-cc-exp":"#<?php /* @noEscape */ echo $code; ?>_expiration_yr"}'> - <?php $_ccExpMonth = $block->getInfoData('cc_exp_month') ?> <?php foreach ($block->getCcMonths() as $k => $v): ?> <option - value="<?php /* @noEscape */ echo $k ? $block->escapeHtml($k) : '' ?>" - <?php if ($k == $_ccExpMonth): ?> selected="selected"<?php endif ?>> + value="<?php /* @noEscape */ echo $k ? $block->escapeHtml($k) : ''; ?>" + <?php if ($k == $ccExpMonth): ?> selected="selected"<?php endif; ?>> <?php echo $block->escapeHtml($v); ?> </option> <?php endforeach ?> diff --git a/app/code/Magento/Payment/view/frontend/templates/transparent/form.phtml b/app/code/Magento/Payment/view/frontend/templates/transparent/form.phtml index eeaa13ee814..64ea503996c 100644 --- a/app/code/Magento/Payment/view/frontend/templates/transparent/form.phtml +++ b/app/code/Magento/Payment/view/frontend/templates/transparent/form.phtml @@ -10,6 +10,7 @@ $code = $block->getMethodCode(); $ccExpMonth = $block->getInfoData('cc_exp_month'); $ccExpYear = $block->getInfoData('cc_exp_year'); +$ccType = $block->getInfoData('cc_type'); $content = '<img src=\"' . $block->getViewFileUrl('Magento_Checkout::cvv.png') . '\" alt=\"' . $block->escapeHtml(__('Card Verification Number Visual Reference')) . '\" title=\"' . $block->escapeHtml(__('Card Verification Number Visual Reference')) . '\" />'; @@ -46,10 +47,9 @@ $content = '<img src=\"' . $block->getViewFileUrl('Magento_Checkout::cvv.png') . "validate-cc-type-select":"#<?php /* @noEscape */ echo $code; ?>_cc_number" }'> <option value=""><?php echo $block->escapeHtml(__('--Please Select--'));?></option> - <?php $_ccType = $block->getInfoData('cc_type') ?> <?php foreach ($block->getCcAvailableTypes() as $typeCode => $typeName): ?> <option value="<?php echo $block->escapeHtml($typeCode); ?>" - <?php if ($typeCode == $_ccType): ?> selected="selected"<?php endif; ?>> + <?php if ($typeCode == $ccType): ?> selected="selected"<?php endif; ?>> <?php echo $block->escapeHtml($typeName); ?></option> <?php endforeach ?> </select> -- GitLab From 8eea06c52cbefb3179d2f008cbe4ad6ef1ff707b Mon Sep 17 00:00:00 2001 From: Iryna Lagno <ilagno@ebay.com> Date: Thu, 15 Oct 2015 13:19:11 +0300 Subject: [PATCH 389/420] MAGETWO-44096: [Dev experience] Rename "disabled" argument to "componentDisabled" --- app/code/Magento/Ui/view/base/web/js/core/renderer/layout.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Ui/view/base/web/js/core/renderer/layout.js b/app/code/Magento/Ui/view/base/web/js/core/renderer/layout.js index 68509f43b5d..57082ee7922 100644 --- a/app/code/Magento/Ui/view/base/web/js/core/renderer/layout.js +++ b/app/code/Magento/Ui/view/base/web/js/core/renderer/layout.js @@ -140,7 +140,7 @@ define([ return false; } - if (node.disabled === true) { + if (node.componentDisabled === true) { return false; } -- GitLab From ea46c303fc192bb15497fdfc95f05c3b059eb328 Mon Sep 17 00:00:00 2001 From: Viktor Tymchynskyi <vtymchynskyi@ebay.com> Date: Thu, 15 Oct 2015 14:51:14 +0300 Subject: [PATCH 390/420] MAGETWO-43934: Unnecessary loader on checkout when placing order with invalid credit card --- .../js/view/payment/method-renderer/authorizenet-directpost.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/code/Magento/Authorizenet/view/frontend/web/js/view/payment/method-renderer/authorizenet-directpost.js b/app/code/Magento/Authorizenet/view/frontend/web/js/view/payment/method-renderer/authorizenet-directpost.js index cb58db6d1d5..bf6978cfa36 100644 --- a/app/code/Magento/Authorizenet/view/frontend/web/js/view/payment/method-renderer/authorizenet-directpost.js +++ b/app/code/Magento/Authorizenet/view/frontend/web/js/view/payment/method-renderer/authorizenet-directpost.js @@ -50,9 +50,8 @@ define( placeOrder: function () { var self = this; - fullScreenLoader.startLoader(); - if (this.validateHandler() && additionalValidators.validate()) { + fullScreenLoader.startLoader(); this.isPlaceOrderActionAllowed(false); $.when(setPaymentInformationAction(this.messageContainer, { 'method': self.getCode() -- GitLab From c7efc6e42ec53c7ca0a6cde67aea7430da17131b Mon Sep 17 00:00:00 2001 From: Viktor Tymchynskyi <vtymchynskyi@ebay.com> Date: Thu, 15 Oct 2015 15:12:15 +0300 Subject: [PATCH 391/420] MAGETWO-43934: Unnecessary loader on checkout when placing order with invalid credit card - Fix on payflowpro --- .../web/js/view/payment/method-renderer/payflowpro-method.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/code/Magento/Paypal/view/frontend/web/js/view/payment/method-renderer/payflowpro-method.js b/app/code/Magento/Paypal/view/frontend/web/js/view/payment/method-renderer/payflowpro-method.js index a7a03184812..f0095877bbc 100644 --- a/app/code/Magento/Paypal/view/frontend/web/js/view/payment/method-renderer/payflowpro-method.js +++ b/app/code/Magento/Paypal/view/frontend/web/js/view/payment/method-renderer/payflowpro-method.js @@ -51,9 +51,8 @@ define( placeOrder: function () { var self = this; - fullScreenLoader.startLoader(); - if (this.validateHandler() && additionalValidators.validate()) { + fullScreenLoader.startLoader(); this.isPlaceOrderActionAllowed(false); $.when(setPaymentInformationAction(this.messageContainer, { 'method': self.getCode() -- GitLab From 01e50e8c99210e42f87d430182b13ae3b2d85aed Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Thu, 15 Oct 2015 15:22:42 +0300 Subject: [PATCH 392/420] MAGETWO-43923: [GitHub]ModelResource namespace inconsistency fixed obsolete classes --- .../Magento/Test/Legacy/_files/obsolete_constants.php | 7 ------- .../Magento/Test/Legacy/_files/obsolete_methods.php | 2 +- .../Magento/Test/Legacy/_files/obsolete_properties.php | 2 +- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php index ca86654e7a5..1a0a6503809 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_constants.php @@ -148,11 +148,6 @@ return [ ['XML_CHARSET_NODE', 'Magento\SalesRule\Helper\Coupon'], ['XML_CHARSET_SEPARATOR', 'Magento\SalesRule\Helper\Coupon'], ['XML_NODE_RELATED_CACHE', 'Magento\CatalogRule\Model\Rule'], - [ - 'XML_NODE_ATTRIBUTE_NODES', - 'Magento\Catalog\Model\ResourceModel\Product\Flat\Indexer', - 'XML_NODE_ATTRIBUTE_GROUPS', - ], [ 'XML_PATH_ALLOW_DUPLICATION', 'Magento\Core\Model\Design\PackageInterface', @@ -310,8 +305,6 @@ return [ ['XML_NODE_ADD_FILTERABLE_ATTRIBUTES', 'Magento\Catalog\Helper\Product\Flat'], ['XML_NODE_ADD_CHILD_DATA', 'Magento\Catalog\Helper\Product\Flat'], ['XML_PATH_CONTENT_TEMPLATE_FILTER', 'Magento\Catalog\Helper\Data'], - ['XML_NODE_MAX_INDEX_COUNT', 'Magento\Catalog\Model\ResourceModel\Product\Flat\Indexer'], - ['XML_NODE_ATTRIBUTE_GROUPS', 'Magento\Catalog\Model\ResourceModel\Product\Flat\Indexer'], ['XML_PATH_UNASSIGNABLE_ATTRIBUTES', 'Magento\Catalog\Helper\Product'], ['XML_PATH_ATTRIBUTES_USED_IN_AUTOGENERATION', 'Magento\Catalog\Helper\Product'], ['XML_PATH_PRODUCT_TYPE_SWITCHER_LABEL', 'Magento\Catalog\Helper\Product'], diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php index 94b97cd46c0..ca7f4471723 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php @@ -866,7 +866,7 @@ return [ ['validateDataArray', 'Magento\Framework\Convert\Container\AbstractContainer'], ['validateFile', 'Magento\Core\Model\Design\Package'], ['validateOrder', 'Magento\Checkout\Model\Type\Onepage'], - ['viewTrackAction', 'Magento\Sales\Controller\Adminhtml\Order\Shipment'], + ['viewTrackAction', 'Magento\Shipping\Controller\Adminhtml\Order\Shipment'], ['_prepareOptionValues', 'Magento\Eav\Block\Adminhtml\Attribute\Edit\Options\AbstractOptions'], ['_getOptionValuesCollection', 'Magento\Eav\Block\Adminhtml\Attribute\Edit\Options\AbstractOptions'], [ diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php index c17f4d6e46e..43ec07e30fd 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_properties.php @@ -173,7 +173,7 @@ return [ ['_dirModel', 'Magento\Downloadable\Controller\Adminhtml\Downloadable\File'], ['_dirModel', 'Magento\Downloadable\Model\Link'], ['_dirModel', 'Magento\Downloadable\Model\Sample'], - ['_dir', 'Magento\Framework\App\Dir'], + ['_dir', 'Magento\Framework\Filesystem'], ['_baseDir', 'Magento\Backup\Model\Fs\Collection'], ['_filesystem', 'Magento\Backup\Model\Fs\Collection'], ['_dir', 'Magento\Backup\Model\Fs\Collection'], -- GitLab From c5019e4f6d93ef2ed48657f76e460d0e6ae36c31 Mon Sep 17 00:00:00 2001 From: Sergey Semenov <ssemenov@ebay.com> Date: Thu, 15 Oct 2015 18:34:38 +0300 Subject: [PATCH 393/420] MAGETWO-36353: False VAT number verification message if soap extension is not enabled --- .../System/Config/Validatevat/Validate.php | 27 ++-- app/code/Magento/Customer/Model/Vat.php | 9 +- .../Config/Validatevat/ValidateTest.php | 130 ++++++++++++++++++ .../templates/system/config/validatevat.phtml | 10 +- 4 files changed, 160 insertions(+), 16 deletions(-) create mode 100644 app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/System/Config/Validatevat/ValidateTest.php diff --git a/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/Validate.php b/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/Validate.php index b20ff74c903..f1f638a852e 100644 --- a/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/Validate.php +++ b/app/code/Magento/Customer/Controller/Adminhtml/System/Config/Validatevat/Validate.php @@ -1,40 +1,45 @@ <?php /** - * - * Copyright © 2015 Magento. All rights reserved. + * * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Customer\Controller\Adminhtml\System\Config\Validatevat; +use Magento\Framework\Controller\Result\JsonFactory; + class Validate extends \Magento\Customer\Controller\Adminhtml\System\Config\Validatevat { /** - * @var \Magento\Framework\Controller\Result\RawFactory + * @var JsonFactory */ - protected $resultRawFactory; + protected $resultJsonFactory; /** * @param \Magento\Backend\App\Action\Context $context - * @param \Magento\Framework\Controller\Result\RawFactory $resultRawFactory + * @param JsonFactory $resultJsonFactory */ public function __construct( \Magento\Backend\App\Action\Context $context, - \Magento\Framework\Controller\Result\RawFactory $resultRawFactory + JsonFactory $resultJsonFactory ) { parent::__construct($context); - $this->resultRawFactory = $resultRawFactory; + $this->resultJsonFactory = $resultJsonFactory; } /** * Check whether vat is valid * - * @return \Magento\Framework\Controller\Result\Raw + * @return \Magento\Framework\Controller\Result\Json */ public function execute() { $result = $this->_validate(); - /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */ - $resultRaw = $this->resultRawFactory->create(); - return $resultRaw->setContents((int)$result->getIsValid()); + + /** @var \Magento\Framework\Controller\Result\Json $resultJson */ + $resultJson = $this->resultJsonFactory->create(); + return $resultJson->setData([ + 'valid' => (int)$result->getIsValid(), + 'message' => $result->getRequestMessage(), + ]); } } diff --git a/app/code/Magento/Customer/Model/Vat.php b/app/code/Magento/Customer/Model/Vat.php index 78fd927507f..43c883b5d0e 100644 --- a/app/code/Magento/Customer/Model/Vat.php +++ b/app/code/Magento/Customer/Model/Vat.php @@ -166,7 +166,8 @@ class Vat 'is_valid' => false, 'request_date' => '', 'request_identifier' => '', - 'request_success' => false + 'request_success' => false, + 'request_message' => __('Error during VAT Number verification.'), ]); if (!extension_loaded('soap')) { @@ -194,6 +195,12 @@ class Vat $gatewayResponse->setRequestDate((string)$result->requestDate); $gatewayResponse->setRequestIdentifier((string)$result->requestIdentifier); $gatewayResponse->setRequestSuccess(true); + + if ($gatewayResponse->getIsValid()) { + $gatewayResponse->setRequestMessage(__('VAT Number is valid.')); + } else { + $gatewayResponse->setRequestMessage(__('Please enter a valid VAT number.')); + } } catch (\Exception $exception) { $gatewayResponse->setIsValid(false); $gatewayResponse->setRequestDate(''); diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/System/Config/Validatevat/ValidateTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/System/Config/Validatevat/ValidateTest.php new file mode 100644 index 00000000000..ac5625eadef --- /dev/null +++ b/app/code/Magento/Customer/Test/Unit/Controller/Adminhtml/System/Config/Validatevat/ValidateTest.php @@ -0,0 +1,130 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Customer\Test\Unit\Controller\Adminhtml\System\Config\Validatevat; + +class ValidateTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var \Magento\Customer\Controller\Adminhtml\System\Config\Validatevat\Validate + */ + protected $controller; + + /** + * @var \Magento\Backend\App\Action\Context + */ + protected $context; + + /** + * @var \Magento\Framework\Controller\Result\Json | \PHPUnit_Framework_MockObject_MockObject + */ + protected $resultJson; + + /** + * @var \Magento\Framework\ObjectManagerInterface | \PHPUnit_Framework_MockObject_MockObject + */ + protected $objectManager; + + /** + * @var \Magento\Framework\App\Request\Http | \PHPUnit_Framework_MockObject_MockObject + */ + protected $request; + + protected function setUp() + { + $resultJsonFactory = $this->mockResultJson(); + + $this->request = $this->getMockBuilder('Magento\Framework\App\Request\Http') + ->disableOriginalConstructor() + ->getMock(); + + $this->objectManager = $this->getMockBuilder('Magento\Framework\ObjectManagerInterface') + ->getMockForAbstractClass(); + + $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->context = $objectManager->getObject( + 'Magento\Backend\App\Action\Context', + [ + 'request' => $this->request, + 'objectManager' => $this->objectManager, + ] + ); + $this->controller = $objectManager->getObject( + 'Magento\Customer\Controller\Adminhtml\System\Config\Validatevat\Validate', + [ + 'context' => $this->context, + 'resultJsonFactory' => $resultJsonFactory, + ] + ); + } + + public function testExecute() + { + $country = 'US'; + $vat = '123456789'; + + $isValid = true; + $requestMessage = 'test'; + + $json = '{"valid":' . (int)$isValid . ',"message":"' . $requestMessage . '"}'; + + $gatewayResponse = new \Magento\Framework\DataObject([ + 'is_valid' => $isValid, + 'request_message' => $requestMessage, + ]); + + $this->request->expects($this->any()) + ->method('getParam') + ->willReturnMap([ + ['country', null, $country], + ['vat', null, $vat], + ]); + + $vatMock = $this->getMockBuilder('Magento\Customer\Model\Vat') + ->disableOriginalConstructor() + ->getMock(); + + $vatMock->expects($this->once()) + ->method('checkVatNumber') + ->with($country, $vat) + ->willReturn($gatewayResponse); + + $this->objectManager->expects($this->once()) + ->method('get') + ->with('Magento\Customer\Model\Vat') + ->willReturn($vatMock); + + $this->resultJson->expects($this->once()) + ->method('setData') + ->with([ + 'valid' => $gatewayResponse->getIsValid(), + 'message' => $gatewayResponse->getRequestMessage() + ]) + ->willReturn($json); + + $this->assertEquals($json, $this->controller->execute()); + } + + /** + * @return \PHPUnit_Framework_MockObject_MockObject + */ + protected function mockResultJson() + { + $this->resultJson = $this->getMockBuilder('Magento\Framework\Controller\Result\Json') + ->disableOriginalConstructor() + ->getMock(); + + $resultJsonFactory = $this->getMockBuilder('Magento\Framework\Controller\Result\JsonFactory') + ->setMethods(['create']) + ->disableOriginalConstructor() + ->getMock(); + + $resultJsonFactory->expects($this->any()) + ->method('create') + ->willReturn($this->resultJson); + + return $resultJsonFactory; + } +} diff --git a/app/code/Magento/Customer/view/adminhtml/templates/system/config/validatevat.phtml b/app/code/Magento/Customer/view/adminhtml/templates/system/config/validatevat.phtml index d9916cb30d0..208394342e1 100644 --- a/app/code/Magento/Customer/view/adminhtml/templates/system/config/validatevat.phtml +++ b/app/code/Magento/Customer/view/adminhtml/templates/system/config/validatevat.phtml @@ -27,11 +27,13 @@ require(['prototype'], function(){ new Ajax.Request('<?php /* @escapeNotVerified */ echo $block->getAjaxUrl() ?>', { parameters: params, onSuccess: function(response) { - result = '<?php /* @escapeNotVerified */ echo __('Please enter a valid VAT number.') ?>'; + var result = '<?php /* @escapeNotVerified */ echo __('Error during VAT Number verification.') ?>'; try { - response = response.responseText; - if (response == 1) { - result = '<?php /* @escapeNotVerified */ echo __('VAT Number is valid.') ?>'; + if (response.responseText.isJSON()) { + response = response.responseText.evalJSON(); + result = response.message; + } + if (response.valid == 1) { validationMessage.removeClassName('hidden').addClassName('success') } else { validationMessage.removeClassName('hidden').addClassName('error') -- GitLab From 9336dcbbb19ce3a8cf619ddd32f93205f4d27dd6 Mon Sep 17 00:00:00 2001 From: Oleksandr Karpenko <okarpenko@ebay.com> Date: Thu, 15 Oct 2015 18:43:04 +0300 Subject: [PATCH 394/420] MAGETWO-42988: Can't fill customer attributes on Customer Checkout Registration form as it is not available anymore --- .../Magento/Checkout/Model/Type/Onepage.php | 273 ++--------------- .../Test/Unit/Model/Type/OnepageTest.php | 274 ------------------ .../Magento/Customer/Setup/UpgradeData.php | 7 + app/code/Magento/Customer/etc/module.xml | 2 +- .../Component/ComponentRegistrar.php | 2 + 5 files changed, 28 insertions(+), 530 deletions(-) diff --git a/app/code/Magento/Checkout/Model/Type/Onepage.php b/app/code/Magento/Checkout/Model/Type/Onepage.php index 775c0dcb632..1820e7936db 100644 --- a/app/code/Magento/Checkout/Model/Type/Onepage.php +++ b/app/code/Magento/Checkout/Model/Type/Onepage.php @@ -379,149 +379,6 @@ class Onepage return []; } - /** - * Save billing address information to quote - * This method is called by One Page Checkout JS (AJAX) while saving the billing information. - * - * @param array $data - * @param int $customerAddressId - * @return array - * @SuppressWarnings(PHPMD.CyclomaticComplexity) - * @SuppressWarnings(PHPMD.NPathComplexity) - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - */ - public function saveBilling($data, $customerAddressId) - { - if (empty($data)) { - return ['error' => -1, 'message' => __('Invalid data')]; - } - - $address = $this->getQuote()->getBillingAddress(); - $addressForm = $this->_formFactory->create( - AddressMetadata::ENTITY_TYPE_ADDRESS, - 'customer_address_edit', - [], - $this->_request->isAjax(), - Form::IGNORE_INVISIBLE, - [] - ); - - if ($customerAddressId) { - try { - $customerAddress = $this->addressRepository->getById($customerAddressId); - if ($customerAddress->getCustomerId() != $this->getQuote()->getCustomerId()) { - return ['error' => 1, 'message' => __('The customer address is not valid.')]; - } - $address->importCustomerAddressData($customerAddress)->setSaveInAddressBook(0); - } catch (\Exception $e) { - return ['error' => 1, 'message' => __('Address does not exist.')]; - } - } else { - // emulate request object - $addressData = $addressForm->extractData($addressForm->prepareRequest($data)); - $addressErrors = $addressForm->validateData($addressData); - if ($addressErrors !== true) { - return ['error' => 1, 'message' => array_values($addressErrors)]; - } - $address->addData($addressForm->compactData($addressData)); - //unset billing address attributes which were not shown in form - foreach ($addressForm->getAttributes() as $attribute) { - if (!isset($data[$attribute->getAttributeCode()])) { - $address->setData($attribute->getAttributeCode(), null); - } - } - $address->setCustomerAddressId(null); - // Additional form data, not fetched by extractData (as it fetches only attributes) - $address->setSaveInAddressBook(empty($data['save_in_address_book']) ? 0 : 1); - $this->getQuote()->setBillingAddress($address); - } - - // validate billing address - if (($validateRes = $address->validate()) !== true) { - return ['error' => 1, 'message' => $validateRes]; - } - - if (true !== ($result = $this->_validateCustomerData($data))) { - return $result; - } else { - /** Even though _validateCustomerData should not modify data, it does */ - $address = $this->getQuote()->getBillingAddress(); - } - - if (!$this->getQuote()->getCustomerId() && $this->isCheckoutMethodRegister()) { - if ($this->_customerEmailExists($address->getEmail(), $this->_storeManager->getWebsite()->getId())) { - return [ - 'error' => 1, - // @codingStandardsIgnoreStart - 'message' => __( - 'This email address already belongs to a registered customer. You can sign in or create an account with a different email address.' - ) - // @codingStandardsIgnoreEnd - ]; - } - } - - if (!$this->getQuote()->isVirtual()) { - /** - * Billing address using options - */ - $usingCase = isset($data['use_for_shipping']) - ? (bool)$data['use_for_shipping'] - : self::NOT_USE_FOR_SHIPPING; - - switch ($usingCase) { - case self::NOT_USE_FOR_SHIPPING: - $shipping = $this->getQuote()->getShippingAddress(); - $shipping->setSameAsBilling(0); - $shipping->save(); - break; - case self::USE_FOR_SHIPPING: - $billing = clone $address; - $billing->unsAddressId()->unsAddressType(); - $shipping = $this->getQuote()->getShippingAddress(); - $shippingMethod = $shipping->getShippingMethod(); - - // Billing address properties that must be always copied to shipping address - $requiredBillingAttributes = ['customer_address_id']; - - // don't reset original shipping data, if it was not changed by customer - foreach ($shipping->getData() as $shippingKey => $shippingValue) { - if ($shippingValue !== null - && $billing->getData($shippingKey) !== null - && !isset($data[$shippingKey]) - && !in_array($shippingKey, $requiredBillingAttributes) - ) { - $billing->unsetData($shippingKey); - } - } - $shipping->addData($billing->getData()) - ->setSameAsBilling(1) - ->setSaveInAddressBook(0) - ->setShippingMethod($shippingMethod) - ->setCollectShippingRates(true); - $this->totalsCollector->collectAddressTotals($this->getQuote(), $shipping); - - if (!$this->isCheckoutMethodRegister()) { - $shipping->save(); - } - $this->getCheckout()->setStepData('shipping', 'complete', true); - break; - } - } - - if ($this->isCheckoutMethodRegister()) { - $this->quoteRepository->save($this->getQuote()); - } else { - $address->save(); - } - - $this->getCheckout() - ->setStepData('billing', 'allow', true) - ->setStepData('billing', 'complete', true) - ->setStepData('shipping', 'allow', true); - return []; - } - /** * Check whether checkout method is "register" * @@ -532,100 +389,6 @@ class Onepage return $this->getQuote()->getCheckoutMethod() == self::METHOD_REGISTER; } - /** - * Validate customer data and set some its data for further usage in quote - * - * Will return either true or array with error messages - * - * @param array $data - * @return bool|array - */ - protected function _validateCustomerData(array $data) - { - $quote = $this->getQuote(); - $isCustomerNew = !$quote->getCustomerId(); - $customer = $quote->getCustomer(); - $customerData = $this->extensibleDataObjectConverter->toFlatArray( - $customer, - [], - '\Magento\Customer\Api\Data\CustomerInterface' - ); - - /** @var Form $customerForm */ - $customerForm = $this->_formFactory->create( - \Magento\Customer\Api\CustomerMetadataInterface::ENTITY_TYPE_CUSTOMER, - 'checkout_register', - $customerData, - $this->_request->isAjax(), - Form::IGNORE_INVISIBLE, - [] - ); - - if ($isCustomerNew) { - $customerRequest = $customerForm->prepareRequest($data); - $customerData = $customerForm->extractData($customerRequest); - } - - $customerErrors = $customerForm->validateData($customerData); - if ($customerErrors !== true) { - return ['error' => -1, 'message' => implode(', ', $customerErrors)]; - } - - if (!$isCustomerNew) { - return true; - } - - $customer = $this->customerDataFactory->create(); - $this->dataObjectHelper->populateWithArray( - $customer, - $customerData, - '\Magento\Customer\Api\Data\CustomerInterface' - ); - - if ($quote->getCheckoutMethod() == self::METHOD_REGISTER) { - // We always have $customerRequest here, otherwise we would have been kicked off the function several - // lines above - $password = $customerRequest->getParam('customer_password'); - if ($password != $customerRequest->getParam('confirm_password')) { - return [ - 'error' => -1, - 'message' => __('Password and password confirmation are not equal.') - ]; - } - $quote->setPasswordHash($this->accountManagement->getPasswordHash($password)); - } else { - // set NOT LOGGED IN group id explicitly, - // otherwise copyFieldsetToTarget('customer_account', 'to_quote') will fill it with default group id value - $customer->setGroupId(GroupInterface::NOT_LOGGED_IN_ID); - } - - //validate customer - $result = $this->accountManagement->validate($customer); - if (!$result->isValid()) { - return [ - 'error' => -1, - 'message' => implode(', ', $result->getMessages()) - ]; - } - - // copy customer/guest email to address - $quote->getBillingAddress()->setEmail($customer->getEmail()); - - // copy customer data to quote - $this->_objectCopyService->copyFieldsetToTarget( - 'customer_account', - 'to_quote', - $this->extensibleDataObjectConverter->toFlatArray( - $customer, - [], - '\Magento\Customer\Api\Data\CustomerInterface' - ), - $quote - ); - - return true; - } - /** * Save checkout shipping address * @@ -634,24 +397,24 @@ class Onepage * @return array * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) - */ - public function saveShipping($data, $customerAddressId) - { - if (empty($data)) { - return ['error' => -1, 'message' => __('Invalid data')]; - } - $address = $this->getQuote()->getShippingAddress(); - - $addressForm = $this->_formFactory->create( - 'customer_address', - 'customer_address_edit', - [], - $this->_request->isAjax(), - Form::IGNORE_INVISIBLE, - [] - ); - - if (!empty($customerAddressId)) { + */ + public function saveShipping($data, $customerAddressId) + { + if (empty($data)) { + return ['error' => -1, 'message' => __('Invalid data')]; + } + $address = $this->getQuote()->getShippingAddress(); + + $addressForm = $this->_formFactory->create( + 'customer_address', + 'customer_address_edit', + [], + $this->_request->isAjax(), + Form::IGNORE_INVISIBLE, + [] + ); + + if (!empty($customerAddressId)) { $addressData = null; try { $addressData = $this->addressRepository->getById($customerAddressId); diff --git a/app/code/Magento/Checkout/Test/Unit/Model/Type/OnepageTest.php b/app/code/Magento/Checkout/Test/Unit/Model/Type/OnepageTest.php index 0c319e19e1f..15275b9c119 100644 --- a/app/code/Magento/Checkout/Test/Unit/Model/Type/OnepageTest.php +++ b/app/code/Magento/Checkout/Test/Unit/Model/Type/OnepageTest.php @@ -367,280 +367,6 @@ class OnepageTest extends \PHPUnit_Framework_TestCase $this->assertEquals([], $this->onepage->saveCheckoutMethod('someMethod')); } - public function testSaveBillingInvalidData() - { - $this->assertEquals(['error' => -1, 'message' => 'Invalid data'], $this->onepage->saveBilling([], 0)); - } - - /** - * @dataProvider saveBillingDataProvider - * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - * @SuppressWarnings(PHPMD.ExcessiveParameterList) - * @SuppressWarnings(PHPMD.NPathComplexity) - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - * @SuppressWarnings(PHPMD.CyclomaticComplexity) - */ - public function testSaveBilling( - $data, - $customerAddressId, - $quoteCustomerId, - $addressCustomerId, - $isAddress, - $validateDataResult, - $validateResult, - $checkoutMethod, - $customerPassword, - $confirmPassword, - $validationResultMessages, - $isEmailAvailable, - $isVirtual, - $getStepDataResult, - $expected - ) { - $useForShipping = (int)$data['use_for_shipping']; - - $passwordHash = 'password hash'; - $this->requestMock->expects($this->any())->method('isAjax')->will($this->returnValue(false)); - $customerValidationResultMock = $this->getMock( - 'Magento\Customer\Api\Data\ValidationResultsInterface', [], [], '', false - ); - $customerValidationResultMock - ->expects($this->any()) - ->method('isValid') - ->will($this->returnValue(empty($validationResultMessages))); - $customerValidationResultMock - ->expects($this->any()) - ->method('getMessages') - ->will($this->returnValue($validationResultMessages)); - $this->accountManagementMock - ->expects($this->any()) - ->method('getPasswordHash') - ->with($customerPassword) - ->will($this->returnValue($passwordHash)); - $this->accountManagementMock - ->expects($this->any()) - ->method('validate') - ->will($this->returnValue($customerValidationResultMock)); - $this->accountManagementMock - ->expects($this->any()) - ->method('isEmailAvailable') - ->will($this->returnValue($isEmailAvailable)); - /** @var \Magento\Quote\Model\Quote|\PHPUnit_Framework_MockObject_MockObject $quoteMock */ - $quoteMock = $this->getMock( - 'Magento\Quote\Model\Quote', - [ - 'getData', - 'getCustomerId', - '__wakeup', - 'getBillingAddress', - 'setPasswordHash', - 'getCheckoutMethod', - 'isVirtual', - 'getShippingAddress', - 'getCustomerData', - 'collectTotals', - 'save', - 'getCustomer' - ], - [], - '', - false - ); - $customerMock = $this->getMockForAbstractClass( - 'Magento\Framework\Api\AbstractExtensibleObject', - [], - '', - false, - true, - true, - ['__toArray'] - ); - $shippingAddressMock = $this->getMock( - 'Magento\Quote\Model\Quote\Address', - [ - 'setSameAsBilling', - 'save', - 'collectTotals', - 'addData', - 'setShippingMethod', - 'setCollectShippingRates', - '__wakeup' - ], - [], - '', - false - ); - $quoteMock->expects($this->any())->method('getShippingAddress')->will($this->returnValue($shippingAddressMock)); - - $shippingAddressMock->expects($useForShipping ? $this->any() : $this->once()) - ->method('setSameAsBilling') - ->with($useForShipping) - ->will($this->returnSelf()); - - $expects = (!$useForShipping || ($checkoutMethod != Onepage::METHOD_REGISTER)) ? $this->once() : $this->never(); - $shippingAddressMock->expects($expects) - ->method('save'); - - $shippingAddressMock->expects($useForShipping ? $this->once() : $this->never()) - ->method('addData') - ->will($this->returnSelf()); - - $shippingAddressMock->expects($this->any()) - ->method('setSaveInAddressBook') - ->will($this->returnSelf()); - - $shippingAddressMock->expects($useForShipping ? $this->once() : $this->never()) - ->method('setShippingMethod') - ->will($this->returnSelf()); - - $shippingAddressMock->expects($useForShipping ? $this->once() : $this->never()) - ->method('setCollectShippingRates') - ->will($this->returnSelf()); - - if ($useForShipping === \Magento\Checkout\Model\Type\Onepage::USE_FOR_SHIPPING) { - $this->totalsCollectorMock - ->expects($this->once()) - ->method('collectAddressTotals') - ->with($quoteMock, $shippingAddressMock); - } else { - $this->totalsCollectorMock - ->expects($this->never()) - ->method('collectAddressTotals') - ->with($quoteMock, $shippingAddressMock); - } - - $quoteMock->expects($this->any())->method('setPasswordHash')->with($passwordHash); - $quoteMock->expects($this->any())->method('getCheckoutMethod')->will($this->returnValue($checkoutMethod)); - $quoteMock->expects($this->any())->method('isVirtual')->will($this->returnValue($isVirtual)); - - $addressMock = $this->getMock( - 'Magento\Quote\Model\Quote\Address', - [ - 'setSaveInAddressBook', - 'getData', - 'setEmail', - '__wakeup', - 'importCustomerAddressData', - 'validate', - 'save' - ], - [], - '', - false - ); - $addressMock->expects($this->any())->method('importCustomerAddressData')->will($this->returnSelf()); - $addressMock->expects($this->atLeastOnce())->method('validate')->will($this->returnValue($validateResult)); - $addressMock->expects($this->any())->method('getData')->will($this->returnValue([])); - - $quoteMock->expects($this->any())->method('getBillingAddress')->will($this->returnValue($addressMock)); - $quoteMock->expects($this->any())->method('getCustomerId')->will($this->returnValue($quoteCustomerId)); - - $this->quoteRepositoryMock - ->expects($checkoutMethod === Onepage::METHOD_REGISTER ? $this->once() : $this->never()) - ->method('save') - ->with($quoteMock); - - $addressMock->expects($checkoutMethod === Onepage::METHOD_REGISTER ? $this->never() : $this->once()) - ->method('save'); - - $quoteMock->expects($this->any())->method('getCustomer')->will($this->returnValue($customerMock)); - $data1 = []; - $extensibleDataObjectConverterMock = $this->getMock( - 'Magento\Framework\Api\ExtensibleDataObjectConverter', - ['toFlatArray'], - [], - '', - false - ); - $extensibleDataObjectConverterMock->expects($this->any()) - ->method('toFlatArray') - ->with($customerMock) - ->will($this->returnValue($data1)); - - $formMock = $this->getMock('Magento\Customer\Model\Metadata\Form', [], [], '', false); - $formMock->expects($this->atLeastOnce())->method('validateData')->will($this->returnValue($validateDataResult)); - - $this->formFactoryMock->expects($this->any())->method('create')->will($this->returnValue($formMock)); - $formMock->expects($this->any())->method('prepareRequest')->will($this->returnValue($this->requestMock)); - $formMock->expects($this->any()) - ->method('extractData') - ->with($this->requestMock) - ->will($this->returnValue([])); - $formMock->expects($this->any()) - ->method('validateData') - ->with([]) - ->will($this->returnValue(false)); - - $customerDataMock = $this->getMock('Magento\Customer\Api\Data\CustomerInterface', [], [], '', false); - - $this->customerDataFactoryMock - ->expects($this->any()) - ->method('create') - ->will($this->returnValue($customerDataMock)); - - $this->checkoutSessionMock->expects($this->any())->method('getQuote')->will($this->returnValue($quoteMock)); - $this->checkoutSessionMock->expects($this->any()) - ->method('getStepData') - ->will($this->returnValue($useForShipping ? true : $getStepDataResult)); - $this->checkoutSessionMock->expects($this->any())->method('setStepData')->will($this->returnSelf()); - $customerAddressMock = $this->getMockForAbstractClass( - 'Magento\Customer\Api\Data\AddressInterface', - [], - '', - false - ); - $customerAddressMock->expects($this->any()) - ->method('getCustomerId') - ->will($this->returnValue($addressCustomerId)); - $this->addressRepositoryMock->expects($this->any()) - ->method('getById') - ->will($isAddress ? $this->returnValue($customerAddressMock) : $this->throwException(new \Exception())); - - $websiteMock = $this->getMock('Magento\Store\Model\Website', [], [], '', false); - $this->storeManagerMock->expects($this->any())->method('getWebsite')->will($this->returnValue($websiteMock)); - $this->assertEquals($expected, $this->onepage->saveBilling($data, $customerAddressId)); - } - - public function saveBillingDataProvider() - { - return [ - [ - ['use_for_shipping' => 0], // $data - 1, // $customerAddressId - 1, // $quoteCustomerId - 1, // $addressCustomerId - true, //$isAddress - true, // $validateDataResult - true, // $validateResult - Onepage::METHOD_REGISTER, // $checkoutMethod - 'password', // $customerPassword - 'password', // $confirmPassword - [], // $validationResultMessages - true, // $isEmailAvailable - false, // $isVirtual - false, // $getStepDataResult - [], // $expected - ], - [ - ['use_for_shipping' => 1], // $data - 1, // $customerAddressId - 1, // $quoteCustomerId - 1, // $addressCustomerId - true, //$isAddress - true, // $validateDataResult - true, // $validateResult - Onepage::METHOD_CUSTOMER, // $checkoutMethod - 'password', // $customerPassword - 'password', // $confirmPassword - [], // $validationResultMessages - true, // $isEmailAvailable - false, // $isVirtual - false, // $getStepDataResult - [], // $expected - ] - ]; - } - public function testGetLastOrderId() { $orderIncrementId = 100001; diff --git a/app/code/Magento/Customer/Setup/UpgradeData.php b/app/code/Magento/Customer/Setup/UpgradeData.php index a37210bd9fb..ef1ff180828 100644 --- a/app/code/Magento/Customer/Setup/UpgradeData.php +++ b/app/code/Magento/Customer/Setup/UpgradeData.php @@ -241,6 +241,13 @@ class UpgradeData implements UpgradeDataInterface $this->upgradeAttributes($entityAttributes, $customerSetup); } + if (version_compare($context->getVersion(), '2.0.6', '<')) { + $setup->getConnection()->delete( + $setup->getTable('customer_form_attribute'), + ['form_code = ?' => 'checkout_register'] + ); + } + $indexer = $this->indexerRegistry->get(Customer::CUSTOMER_GRID_INDEXER_ID); $indexer->reindexAll(); $this->eavConfig->clear(); diff --git a/app/code/Magento/Customer/etc/module.xml b/app/code/Magento/Customer/etc/module.xml index a2b9b1eacfe..20c352f8c53 100644 --- a/app/code/Magento/Customer/etc/module.xml +++ b/app/code/Magento/Customer/etc/module.xml @@ -6,7 +6,7 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> - <module name="Magento_Customer" setup_version="2.0.5"> + <module name="Magento_Customer" setup_version="2.0.6"> <sequence> <module name="Magento_Eav"/> <module name="Magento_Directory"/> diff --git a/lib/internal/Magento/Framework/Component/ComponentRegistrar.php b/lib/internal/Magento/Framework/Component/ComponentRegistrar.php index c2c928b2376..7ead27ff67d 100644 --- a/lib/internal/Magento/Framework/Component/ComponentRegistrar.php +++ b/lib/internal/Magento/Framework/Component/ComponentRegistrar.php @@ -44,6 +44,8 @@ class ComponentRegistrar implements ComponentRegistrarInterface */ public static function register($type, $componentName, $path) { + $path = str_replace('\\', '/', $path); + $path = str_replace('magento2ee', 'magento2ce', $path); self::validateType($type); if (isset(self::$paths[$type][$componentName])) { throw new \LogicException('\'' . $componentName . '\' component already exists'); -- GitLab From 43b1bd8afe906044a3e3d2c12aa5b751df61c010 Mon Sep 17 00:00:00 2001 From: Iryna Lagno <ilagno@ebay.com> Date: Thu, 15 Oct 2015 18:12:35 +0300 Subject: [PATCH 395/420] MAGETWO-43992: Can't select payment method for virtual product if payment is available for specific countries --- .../web/js/action/set-billing-address.js | 28 +++++++++++++++---- .../view/frontend/web/js/view/payment/list.js | 9 ++++-- .../CanUseForCountry/CountryProvider.php | 7 +++-- .../CanUseForCountry/CountryProviderTest.php | 15 +++++++++- 4 files changed, 47 insertions(+), 12 deletions(-) diff --git a/app/code/Magento/Checkout/view/frontend/web/js/action/set-billing-address.js b/app/code/Magento/Checkout/view/frontend/web/js/action/set-billing-address.js index 84979c5f0ce..faf798bf988 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/action/set-billing-address.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/action/set-billing-address.js @@ -4,15 +4,26 @@ */ define( [ + 'jquery', 'Magento_Checkout/js/model/quote', 'Magento_Checkout/js/model/url-builder', 'mage/storage', 'Magento_Checkout/js/model/error-processor', 'Magento_Customer/js/model/customer', 'Magento_Checkout/js/action/get-totals', - 'Magento_Checkout/js/model/full-screen-loader' + 'Magento_Checkout/js/model/full-screen-loader', + 'Magento_Checkout/js/action/get-payment-information' ], - function (quote, urlBuilder, storage, errorProcessor, customer, getTotalsAction, fullScreenLoader) { + function ($, + quote, + urlBuilder, + storage, + errorProcessor, + customer, + getTotalsAction, + fullScreenLoader, + getPaymentInformationAction + ) { 'use strict'; return function (messageContainer) { @@ -44,14 +55,19 @@ define( serviceUrl, JSON.stringify(payload) ).done( function () { - getTotalsAction([]); + if (!quote.isVirtual()) { + getTotalsAction([]); + } else { + var deferred = $.Deferred(); + getPaymentInformationAction(deferred); + $.when(deferred).done(function () { + fullScreenLoader.stopLoader(); + }); + } } ).fail( function (response) { errorProcessor.process(response, messageContainer); - } - ).always( - function () { fullScreenLoader.stopLoader(); } ); diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/payment/list.js b/app/code/Magento/Checkout/view/frontend/web/js/view/payment/list.js index 4559bbbc745..abb629a32ce 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/view/payment/list.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/view/payment/list.js @@ -30,11 +30,16 @@ define([ paymentMethods.subscribe( function (changes) { checkoutDataResolver.resolvePaymentMethod(); + //remove renderer for "deleted" payment methods + _.each(changes, function (change) { + if (change.status === 'deleted') { + this.removeRenderer(change.value.method); + } + }, this); + //add renderer for "added" payment methods _.each(changes, function (change) { if (change.status === 'added') { this.createRenderer(change.value); - } else if (change.status === 'deleted') { - this.removeRenderer(change.value.method); } }, this); }, this, 'arrayChange'); diff --git a/app/code/Magento/Payment/Model/Checks/CanUseForCountry/CountryProvider.php b/app/code/Magento/Payment/Model/Checks/CanUseForCountry/CountryProvider.php index 8bbdbef2830..efd63ae579a 100644 --- a/app/code/Magento/Payment/Model/Checks/CanUseForCountry/CountryProvider.php +++ b/app/code/Magento/Payment/Model/Checks/CanUseForCountry/CountryProvider.php @@ -31,8 +31,9 @@ class CountryProvider */ public function getCountry(Quote $quote) { - return $quote->isVirtual() - ? $this->directoryHelper->getDefaultCountry() - : $quote->getShippingAddress()->getCountry(); + $address = $quote->isVirtual() ? $quote->getBillingAddress() : $quote->getShippingAddress(); + return $address + ? $address->getCountry() + : $this->directoryHelper->getDefaultCountry(); } } diff --git a/app/code/Magento/Payment/Test/Unit/Model/Checks/CanUseForCountry/CountryProviderTest.php b/app/code/Magento/Payment/Test/Unit/Model/Checks/CanUseForCountry/CountryProviderTest.php index 13f1ad7d414..89fac656c32 100644 --- a/app/code/Magento/Payment/Test/Unit/Model/Checks/CanUseForCountry/CountryProviderTest.php +++ b/app/code/Magento/Payment/Test/Unit/Model/Checks/CanUseForCountry/CountryProviderTest.php @@ -33,14 +33,27 @@ class CountryProviderTest extends \PHPUnit_Framework_TestCase $this->assertEquals(1, $this->model->getCountry($quoteMock)); } - public function testGetCountryForVirtualQuote() + public function testGetCountryForVirtualQuoteWhenBillingAddressNotExist() { $quoteMock = $this->getMock('Magento\Quote\Model\Quote', [], [], '', false, false); $quoteMock->expects($this->once())->method('isVirtual')->willReturn(true); $addressMock = $this->getMock('Magento\Quote\Model\Quote\Address', [], [], '', false, false); $addressMock->expects($this->never())->method('getCountry'); $quoteMock->expects($this->never())->method('getShippingAddress'); + $quoteMock->expects($this->once())->method('getBillingAddress')->willReturn(null); $this->directoryMock->expects($this->once())->method('getDefaultCountry')->willReturn(10); $this->assertEquals(10, $this->model->getCountry($quoteMock)); } + + public function testGetCountryForVirtualQuoteWhenBillingAddressExist() + { + $quoteMock = $this->getMock('Magento\Quote\Model\Quote', [], [], '', false, false); + $quoteMock->expects($this->once())->method('isVirtual')->willReturn(true); + $addressMock = $this->getMock('Magento\Quote\Model\Quote\Address', [], [], '', false, false); + $addressMock->expects($this->once())->method('getCountry')->willReturn(10); + $quoteMock->expects($this->never())->method('getShippingAddress'); + $quoteMock->expects($this->once())->method('getBillingAddress')->willReturn($addressMock); + $this->directoryMock->expects($this->never())->method('getDefaultCountry'); + $this->assertEquals(10, $this->model->getCountry($quoteMock)); + } } -- GitLab From cef75fe363508a09ad96388daea89414f9ec4655 Mon Sep 17 00:00:00 2001 From: Oleksandr Karpenko <okarpenko@ebay.com> Date: Thu, 15 Oct 2015 18:46:03 +0300 Subject: [PATCH 396/420] MAGETWO-43952: Ability to overwrite customer addressed from front-end --- .../Customer/Controller/Address/FormPost.php | 16 +++++++++++++--- .../Unit/Controller/Address/FormPostTest.php | 13 ++++++++----- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/app/code/Magento/Customer/Controller/Address/FormPost.php b/app/code/Magento/Customer/Controller/Address/FormPost.php index a3275491f6c..7c6b71b3436 100644 --- a/app/code/Magento/Customer/Controller/Address/FormPost.php +++ b/app/code/Magento/Customer/Controller/Address/FormPost.php @@ -106,7 +106,6 @@ class FormPost extends \Magento\Customer\Controller\Address array_merge($existingAddressData, $attributeValues), '\Magento\Customer\Api\Data\AddressInterface' ); - $addressDataObject->setCustomerId($this->_getSession()->getCustomerId()) ->setIsDefaultBilling($this->getRequest()->getParam('default_billing', false)) ->setIsDefaultShipping($this->getRequest()->getParam('default_shipping', false)); @@ -118,12 +117,16 @@ class FormPost extends \Magento\Customer\Controller\Address * Retrieve existing address data * * @return array + * @throws \Exception */ protected function getExistingAddressData() { $existingAddressData = []; if ($addressId = $this->getRequest()->getParam('id')) { $existingAddress = $this->_addressRepository->getById($addressId); + if ($existingAddress->getCustomerId() !== $this->_getSession()->getCustomerId()) { + throw new \Exception(); + } $existingAddressData = $this->_dataProcessor->buildOutputDataArray( $existingAddress, '\Magento\Customer\Api\Data\AddressInterface' @@ -175,6 +178,7 @@ class FormPost extends \Magento\Customer\Controller\Address */ public function execute() { + $redirectUrl = null; if (!$this->_formKeyValidator->validate($this->getRequest())) { return $this->resultRedirectFactory->create()->setPath('*/*/'); } @@ -198,11 +202,17 @@ class FormPost extends \Magento\Customer\Controller\Address $this->messageManager->addError($error->getMessage()); } } catch (\Exception $e) { + $redirectUrl = $this->_buildUrl('*/*/index'); $this->messageManager->addException($e, __('We can\'t save the address.')); } - $this->_getSession()->setAddressFormData($this->getRequest()->getPostValue()); - $url = $this->_buildUrl('*/*/edit', ['id' => $this->getRequest()->getParam('id')]); + if (is_null($redirectUrl)) { + $this->_getSession()->setAddressFormData($this->getRequest()->getPostValue()); + $url = $this->_buildUrl('*/*/edit', ['id' => $this->getRequest()->getParam('id')]); + } else { + $url = $redirectUrl; + } + return $this->resultRedirectFactory->create()->setUrl($this->_redirect->error($url)); } } diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Address/FormPostTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Address/FormPostTest.php index 3b351f5160c..39fa2018cff 100644 --- a/app/code/Magento/Customer/Test/Unit/Controller/Address/FormPostTest.php +++ b/app/code/Magento/Customer/Test/Unit/Controller/Address/FormPostTest.php @@ -528,7 +528,10 @@ class FormPostTest extends \PHPUnit_Framework_TestCase ], ]); - $this->session->expects($this->once()) + $this->session->expects($this->atLeastOnce()) + ->method('getCustomerId') + ->willReturn($customerId); + $this->addressData->expects($this->once()) ->method('getCustomerId') ->willReturn($customerId); @@ -682,11 +685,11 @@ class FormPostTest extends \PHPUnit_Framework_TestCase $this->request->expects($this->once()) ->method('isPost') ->willReturn(true); - $this->request->expects($this->exactly(2)) + $this->request->expects($this->once()) ->method('getParam') ->with('id') ->willReturn($addressId); - $this->request->expects($this->once()) + $this->request->expects($this->never()) ->method('getPostValue') ->willReturn($postValue); @@ -701,7 +704,7 @@ class FormPostTest extends \PHPUnit_Framework_TestCase ->with($exception, __('We can\'t save the address.')) ->willReturnSelf(); - $this->session->expects($this->once()) + $this->session->expects($this->never()) ->method('setAddressFormData') ->with($postValue) ->willReturnSelf(); @@ -710,7 +713,7 @@ class FormPostTest extends \PHPUnit_Framework_TestCase ->getMockForAbstractClass(); $urlBuilder->expects($this->once()) ->method('getUrl') - ->with('*/*/edit', ['id' => $addressId]) + ->with('*/*/index') ->willReturn($url); $this->objectManager->expects($this->once()) -- GitLab From 5542bb1f24b0517edda6583a836c73c0245d7a70 Mon Sep 17 00:00:00 2001 From: Sergey Semenov <ssemenov@ebay.com> Date: Thu, 15 Oct 2015 18:48:38 +0300 Subject: [PATCH 397/420] MAGETWO-44090: [GITHUB] system > import > customers ambiguity #1841 --- app/code/Magento/CustomerImportExport/etc/import.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/CustomerImportExport/etc/import.xml b/app/code/Magento/CustomerImportExport/etc/import.xml index 8a0fa98d2b2..5c625b53804 100644 --- a/app/code/Magento/CustomerImportExport/etc/import.xml +++ b/app/code/Magento/CustomerImportExport/etc/import.xml @@ -6,7 +6,7 @@ */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_ImportExport:etc/import.xsd"> - <entity name="customer_composite" label="Customers" model="Magento\CustomerImportExport\Model\Import\CustomerComposite" behaviorModel="Magento\ImportExport\Model\Source\Import\Behavior\Basic" /> + <entity name="customer_composite" label="Customers and Addresses (single file)" model="Magento\CustomerImportExport\Model\Import\CustomerComposite" behaviorModel="Magento\ImportExport\Model\Source\Import\Behavior\Basic" /> <entity name="customer" label="Customers Main File" model="Magento\CustomerImportExport\Model\Import\Customer" behaviorModel="Magento\ImportExport\Model\Source\Import\Behavior\Custom" /> <entity name="customer_address" label="Customer Addresses" model="Magento\CustomerImportExport\Model\Import\Address" behaviorModel="Magento\ImportExport\Model\Source\Import\Behavior\Custom" /> </config> -- GitLab From b3c4fa03eb4f82930fcdad76e8df491c30254240 Mon Sep 17 00:00:00 2001 From: Oleksandr Karpenko <okarpenko@ebay.com> Date: Thu, 15 Oct 2015 19:13:28 +0300 Subject: [PATCH 398/420] MAGETWO-42988: Can't fill customer attributes on Customer Checkout Registration form as it is not available anymore --- .../Magento/Checkout/Model/Type/Onepage.php | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/app/code/Magento/Checkout/Model/Type/Onepage.php b/app/code/Magento/Checkout/Model/Type/Onepage.php index 1820e7936db..8d9f2ed620c 100644 --- a/app/code/Magento/Checkout/Model/Type/Onepage.php +++ b/app/code/Magento/Checkout/Model/Type/Onepage.php @@ -397,24 +397,24 @@ class Onepage * @return array * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) - */ - public function saveShipping($data, $customerAddressId) - { - if (empty($data)) { - return ['error' => -1, 'message' => __('Invalid data')]; - } - $address = $this->getQuote()->getShippingAddress(); - - $addressForm = $this->_formFactory->create( - 'customer_address', - 'customer_address_edit', - [], - $this->_request->isAjax(), - Form::IGNORE_INVISIBLE, - [] - ); - - if (!empty($customerAddressId)) { + */ + public function saveShipping($data, $customerAddressId) + { + if (empty($data)) { + return ['error' => -1, 'message' => __('Invalid data')]; + } + $address = $this->getQuote()->getShippingAddress(); + + $addressForm = $this->_formFactory->create( + 'customer_address', + 'customer_address_edit', + [], + $this->_request->isAjax(), + Form::IGNORE_INVISIBLE, + [] + ); + + if (!empty($customerAddressId)) { $addressData = null; try { $addressData = $this->addressRepository->getById($customerAddressId); -- GitLab From efb29c8d180e488b53721f2c0da5866cb556be90 Mon Sep 17 00:00:00 2001 From: Sergey Semenov <ssemenov@ebay.com> Date: Thu, 15 Oct 2015 19:16:12 +0300 Subject: [PATCH 399/420] MAGETWO-43710: [GITHUB] Wrong class name in a comment: \Magento\Customer\Block\Adminhtml\Edit\Tab\View\Status\PersonalInfo --- .../view/adminhtml/templates/tab/view/personal_info.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Customer/view/adminhtml/templates/tab/view/personal_info.phtml b/app/code/Magento/Customer/view/adminhtml/templates/tab/view/personal_info.phtml index ade28198142..74b855e01b1 100644 --- a/app/code/Magento/Customer/view/adminhtml/templates/tab/view/personal_info.phtml +++ b/app/code/Magento/Customer/view/adminhtml/templates/tab/view/personal_info.phtml @@ -7,7 +7,7 @@ // @codingStandardsIgnoreFile /** - * Template for block \Magento\Customer\Block\Adminhtml\Edit\Tab\View\Status\PersonalInfo + * @var $block \Magento\Customer\Block\Adminhtml\Edit\Tab\View\PersonalInfo */ $lastLoginDateAdmin = $block->getLastLoginDate(); -- GitLab From e93d87be7ff409ad28430659116c4f5d1d1ddc43 Mon Sep 17 00:00:00 2001 From: Oleksandr Karpenko <okarpenko@ebay.com> Date: Fri, 16 Oct 2015 11:23:08 +0300 Subject: [PATCH 400/420] MAGETWO-43952: Ability to overwrite customer addressed from front-end --- app/code/Magento/Customer/Controller/Address/FormPost.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Customer/Controller/Address/FormPost.php b/app/code/Magento/Customer/Controller/Address/FormPost.php index 7c6b71b3436..88fd7ce4006 100644 --- a/app/code/Magento/Customer/Controller/Address/FormPost.php +++ b/app/code/Magento/Customer/Controller/Address/FormPost.php @@ -206,10 +206,10 @@ class FormPost extends \Magento\Customer\Controller\Address $this->messageManager->addException($e, __('We can\'t save the address.')); } - if (is_null($redirectUrl)) { + if (!$redirectUrl) { $this->_getSession()->setAddressFormData($this->getRequest()->getPostValue()); $url = $this->_buildUrl('*/*/edit', ['id' => $this->getRequest()->getParam('id')]); - } else { + } else { $url = $redirectUrl; } -- GitLab From a5f476af0904dad472deced1ced78522dcbcf79b Mon Sep 17 00:00:00 2001 From: Oleksandr Karpenko <okarpenko@ebay.com> Date: Fri, 16 Oct 2015 12:11:15 +0300 Subject: [PATCH 401/420] MAGETWO-42988: Can't fill customer attributes on Customer Checkout Registration form as it is not available anymore --- lib/internal/Magento/Framework/Component/ComponentRegistrar.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/internal/Magento/Framework/Component/ComponentRegistrar.php b/lib/internal/Magento/Framework/Component/ComponentRegistrar.php index 7ead27ff67d..c2c928b2376 100644 --- a/lib/internal/Magento/Framework/Component/ComponentRegistrar.php +++ b/lib/internal/Magento/Framework/Component/ComponentRegistrar.php @@ -44,8 +44,6 @@ class ComponentRegistrar implements ComponentRegistrarInterface */ public static function register($type, $componentName, $path) { - $path = str_replace('\\', '/', $path); - $path = str_replace('magento2ee', 'magento2ce', $path); self::validateType($type); if (isset(self::$paths[$type][$componentName])) { throw new \LogicException('\'' . $componentName . '\' component already exists'); -- GitLab From f15be30a31b64335ba5e9685c5d98890fda96559 Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Fri, 16 Oct 2015 12:21:37 +0300 Subject: [PATCH 402/420] MAGETWO-44167: ObsoleteCodeTest ignores blacklist fixed blacklist processing --- .../testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php b/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php index de26ad30530..9a41edaabfd 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php @@ -910,8 +910,12 @@ class ObsoleteCodeTest extends \PHPUnit_Framework_TestCase $blackList = include __DIR__ . '/_files/blacklist/obsolete_mage.php'; $ignored = []; $appPath = Files::init()->getPathToSource(); + $relativePathStart = strlen($appPath); foreach ($blackList as $file) { - $ignored = array_merge($ignored, glob($appPath . '/' . $file, GLOB_NOSORT)); + $fileSet = glob($appPath . DIRECTORY_SEPARATOR . $file, GLOB_NOSORT); + foreach ($fileSet as $file) { + $ignored[] = substr($file, $relativePathStart); + } } return $ignored; } -- GitLab From c54495d45b71295936095cb209b82379efd2312c Mon Sep 17 00:00:00 2001 From: Oleksandr Karpenko <okarpenko@ebay.com> Date: Fri, 16 Oct 2015 12:31:05 +0300 Subject: [PATCH 403/420] MAGETWO-43952: Ability to overwrite customer addressed from front-end --- app/code/Magento/Customer/Controller/Address/FormPost.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/code/Magento/Customer/Controller/Address/FormPost.php b/app/code/Magento/Customer/Controller/Address/FormPost.php index 88fd7ce4006..9360ca0f7d6 100644 --- a/app/code/Magento/Customer/Controller/Address/FormPost.php +++ b/app/code/Magento/Customer/Controller/Address/FormPost.php @@ -206,11 +206,10 @@ class FormPost extends \Magento\Customer\Controller\Address $this->messageManager->addException($e, __('We can\'t save the address.')); } + $url = $redirectUrl; if (!$redirectUrl) { $this->_getSession()->setAddressFormData($this->getRequest()->getPostValue()); $url = $this->_buildUrl('*/*/edit', ['id' => $this->getRequest()->getParam('id')]); - } else { - $url = $redirectUrl; } return $this->resultRedirectFactory->create()->setUrl($this->_redirect->error($url)); -- GitLab From e4f8a0052c681e3134f015f0106242a95c81e69b Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Fri, 16 Oct 2015 15:14:06 +0300 Subject: [PATCH 404/420] MAGETWO-44167: ObsoleteCodeTest ignores blacklist refactoring to decrease complexity --- .../Magento/Test/Legacy/ObsoleteCodeTest.php | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php b/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php index 9a41edaabfd..9d1fa761b6b 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php @@ -900,6 +900,25 @@ class ObsoleteCodeTest extends \PHPUnit_Framework_TestCase ); } + /** + * @param string $pattern + * @return array + * @throws \Exception + */ + private function processPattern($pattern) + { + $files = []; + $appPath = Files::init()->getPathToSource(); + $relativePathStart = strlen($appPath); + + $fileSet = glob($appPath . DIRECTORY_SEPARATOR . $pattern, GLOB_NOSORT); + foreach ($fileSet as $file) { + $files[] = substr($file, $relativePathStart); + } + + return $files; + } + /** * Reads list of blacklisted files * @@ -909,13 +928,8 @@ class ObsoleteCodeTest extends \PHPUnit_Framework_TestCase { $blackList = include __DIR__ . '/_files/blacklist/obsolete_mage.php'; $ignored = []; - $appPath = Files::init()->getPathToSource(); - $relativePathStart = strlen($appPath); foreach ($blackList as $file) { - $fileSet = glob($appPath . DIRECTORY_SEPARATOR . $file, GLOB_NOSORT); - foreach ($fileSet as $file) { - $ignored[] = substr($file, $relativePathStart); - } + $ignored = array_merge($ignored, $this->processPattern($file)); } return $ignored; } -- GitLab From 9199119b86bbdbee942700959b5b2a4c6cbe3cd6 Mon Sep 17 00:00:00 2001 From: Stanislav Idolov <sidolov@ebay.com> Date: Fri, 16 Oct 2015 15:37:34 +0300 Subject: [PATCH 405/420] MAGETWO-44162: Wrong password validation for Sign In on checkout --- app/code/Magento/Customer/Controller/Account/LoginPost.php | 7 ++----- app/code/Magento/Customer/Controller/Ajax/Login.php | 2 +- .../Test/Unit/Controller/Account/LoginPostTest.php | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/app/code/Magento/Customer/Controller/Account/LoginPost.php b/app/code/Magento/Customer/Controller/Account/LoginPost.php index 2faeca50ad9..7b6191eb255 100644 --- a/app/code/Magento/Customer/Controller/Account/LoginPost.php +++ b/app/code/Magento/Customer/Controller/Account/LoginPost.php @@ -92,15 +92,12 @@ class LoginPost extends Action implements AccountInterface ); $this->messageManager->addError($message); $this->session->setUsername($login['username']); - } - catch (AuthenticationException $e) { + } catch (AuthenticationException $e) { $message = __('Invalid login or password.'); $this->messageManager->addError($message); $this->session->setUsername($login['username']); } catch (\Exception $e) { - $this->messageManager->addError( - __('Something went wrong while validating the login and password.') - ); + $this->messageManager->addError(__('Invalid login or password.')); } } else { $this->messageManager->addError(__('A login and a password are required.')); diff --git a/app/code/Magento/Customer/Controller/Ajax/Login.php b/app/code/Magento/Customer/Controller/Ajax/Login.php index 8491d5b08e4..4258ebf1ef0 100644 --- a/app/code/Magento/Customer/Controller/Ajax/Login.php +++ b/app/code/Magento/Customer/Controller/Ajax/Login.php @@ -116,7 +116,7 @@ class Login extends \Magento\Framework\App\Action\Action } catch (\Exception $e) { $response = [ 'errors' => true, - 'message' => __('Something went wrong while validating the login and password.') + 'message' => __('Invalid login or password.') ]; } /** @var \Magento\Framework\Controller\Result\Json $resultJson */ diff --git a/app/code/Magento/Customer/Test/Unit/Controller/Account/LoginPostTest.php b/app/code/Magento/Customer/Test/Unit/Controller/Account/LoginPostTest.php index 6c2d57a9f95..e71e413d7e1 100644 --- a/app/code/Magento/Customer/Test/Unit/Controller/Account/LoginPostTest.php +++ b/app/code/Magento/Customer/Test/Unit/Controller/Account/LoginPostTest.php @@ -423,7 +423,7 @@ class LoginPostTest extends \PHPUnit_Framework_TestCase case '\Exception': $this->messageManager->expects($this->once()) ->method('addError') - ->with(__('Something went wrong while validating the login and password.')) + ->with(__('Invalid login or password.')) ->willReturnSelf(); break; } -- GitLab From dbf4c64f72d4e01ec3a56fd4ece4e9be12ff83d8 Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Fri, 16 Oct 2015 16:10:59 +0300 Subject: [PATCH 406/420] MAGETWO-44167: ObsoleteCodeTest ignores blacklist refactored code --- .../Magento/Test/Legacy/ObsoleteCodeTest.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php b/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php index 9d1fa761b6b..c3acb75b2e1 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php @@ -871,7 +871,7 @@ class ObsoleteCodeTest extends \PHPUnit_Framework_TestCase public function testMageMethodsObsolete() { - $ignored = $this->getBlacklistFiles(); + $ignored = $this->getBlacklistFiles(true); $files = Files::init()->getPhpFiles( Files::INCLUDE_APP_CODE | Files::INCLUDE_TESTS @@ -901,14 +901,14 @@ class ObsoleteCodeTest extends \PHPUnit_Framework_TestCase } /** + * @param string $appPath * @param string $pattern * @return array * @throws \Exception */ - private function processPattern($pattern) + private function processPattern($appPath, $pattern) { $files = []; - $appPath = Files::init()->getPathToSource(); $relativePathStart = strlen($appPath); $fileSet = glob($appPath . DIRECTORY_SEPARATOR . $pattern, GLOB_NOSORT); @@ -922,14 +922,21 @@ class ObsoleteCodeTest extends \PHPUnit_Framework_TestCase /** * Reads list of blacklisted files * + * @param bool $absolutePath * @return array + * @throws \Exception */ - private function getBlacklistFiles() + private function getBlacklistFiles($absolutePath = false) { $blackList = include __DIR__ . '/_files/blacklist/obsolete_mage.php'; $ignored = []; + $appPath = Files::init()->getPathToSource(); foreach ($blackList as $file) { - $ignored = array_merge($ignored, $this->processPattern($file)); + if ($absolutePath) { + $ignored = array_merge($ignored, glob($appPath . DIRECTORY_SEPARATOR . $file, GLOB_NOSORT)); + } else { + $ignored = array_merge($ignored, $this->processPattern($appPath, $file)); + } } return $ignored; } -- GitLab From 96f2f8c267bac9c8e213534aac4bdbe89d816303 Mon Sep 17 00:00:00 2001 From: Alex Akimov <aakimov@ebay.com> Date: Fri, 16 Oct 2015 15:25:04 +0300 Subject: [PATCH 407/420] MAGETWO-44149: Grid Template Improvement --- .../view/adminhtml/templates/widget/grid/extended.phtml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/code/Magento/Backend/view/adminhtml/templates/widget/grid/extended.phtml b/app/code/Magento/Backend/view/adminhtml/templates/widget/grid/extended.phtml index ddd9fa5f2f1..3fbc1989214 100644 --- a/app/code/Magento/Backend/view/adminhtml/templates/widget/grid/extended.phtml +++ b/app/code/Magento/Backend/view/adminhtml/templates/widget/grid/extended.phtml @@ -255,6 +255,12 @@ $numColumns = sizeof($block->getColumns()); deps.push('mage/adminhtml/grid'); + <?php if (is_array($block->getRequireJsDependencies())): ?> + <?php foreach ($block->getRequireJsDependencies() as $dependency): ?> + deps.push('<?php /* @escapeNotVerified */ echo $dependency; ?>'); + <?php endforeach; ?> + <?php endif; ?> + require(deps, function(<?php echo ($block->getDependencyJsObject() ? 'registry' : '') ?>){ <?php //TODO: getJsObjectName and getRowClickCallback has unexpected behavior. Should be removed ?> -- GitLab From f8fced1829b361875095e879a2efb4c707223b84 Mon Sep 17 00:00:00 2001 From: Oleksandr Karpenko <okarpenko@ebay.com> Date: Fri, 16 Oct 2015 17:04:29 +0300 Subject: [PATCH 408/420] MAGETWO-42988: Can't fill customer attributes on Customer Checkout Registration form as it is not available anymore --- .../Checkout/Model/Type/OnepageTest.php | 560 ------------------ 1 file changed, 560 deletions(-) delete mode 100644 dev/tests/integration/testsuite/Magento/Checkout/Model/Type/OnepageTest.php diff --git a/dev/tests/integration/testsuite/Magento/Checkout/Model/Type/OnepageTest.php b/dev/tests/integration/testsuite/Magento/Checkout/Model/Type/OnepageTest.php deleted file mode 100644 index 617b9c0dc52..00000000000 --- a/dev/tests/integration/testsuite/Magento/Checkout/Model/Type/OnepageTest.php +++ /dev/null @@ -1,560 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Checkout\Model\Type; - -use Magento\TestFramework\Helper\Bootstrap; - -/** - * @magentoDataFixture Magento/Checkout/_files/quote_with_product_and_payment.php - * @magentoAppArea frontend - */ -class OnepageTest extends \PHPUnit_Framework_TestCase -{ - /** @var \Magento\Checkout\Model\Type\Onepage */ - protected $_model; - - /** @var \Magento\Quote\Model\Quote */ - protected $_currentQuote; - - protected function setUp() - { - parent::setUp(); - $this->_model = Bootstrap::getObjectManager()->create('Magento\Checkout\Model\Type\Onepage'); - /** @var \Magento\Quote\Model\ResourceModel\Quote\Collection $quoteCollection */ - $quoteCollection = Bootstrap::getObjectManager()->create('Magento\Quote\Model\ResourceModel\Quote\Collection'); - /** @var \Magento\Quote\Model\Quote $quote */ - $this->_currentQuote = $quoteCollection->getLastItem(); - $this->_model->setQuote($this->_currentQuote); - } - - /** - * @magentoAppIsolation enabled - * @magentoDbIsolation enabled - * @magentoDataFixture Magento/Customer/_files/customer.php - * @magentoDataFixture Magento/Customer/_files/customer_address.php - */ - public function testSaveShippingWithCustomerId() - { - $this->_currentQuote->setCustomerId(1)->save(); - $data = [ - 'address_id' => '', - 'firstname' => 'Joe', - 'lastname' => 'Black', - 'company' => 'Lunatis', - 'street' => ['1100 Parmer', 'ln.'], - 'city' => 'Austin', - 'region_id' => '57', - 'region' => '', - 'postcode' => '78757', - 'country_id' => 'US', - 'telephone' => '(512) 999-9999', - 'fax' => '', - 'save_in_address_book' => 1, - ]; - $this->_model->saveShipping($data, 1); - - $address = $this->_currentQuote->getShippingAddress(); - - /* Verify that data from Customer Address identified by id=1 is set */ - $this->assertEquals('John', $address->getFirstname()); - $this->assertEquals('Smith', $address->getLastname()); - $this->assertEquals(['Green str, 67'], $address->getStreet()); - $this->assertEquals('CityM', $address->getCity()); - $this->assertEquals('Alabama', $address->getRegion()); - $this->assertEquals(1, $address->getRegionId()); - $this->assertEquals('75477', $address->getPostcode()); - $this->assertEquals('US', $address->getCountryId()); - $this->assertEquals('3468676', $address->getTelephone()); - $this->assertEquals('customer@example.com', $address->getEmail()); - $this->assertTrue($address->getCollectShippingRates()); - $this->assertEquals(1, $address->getCustomerAddressId()); - } - - /** - * @magentoAppIsolation enabled - * @magentoDbIsolation enabled - * @magentoDataFixture Magento/Customer/_files/customer.php - * @magentoDataFixture Magento/Customer/_files/customer_address.php - */ - public function testSaveShippingWithData() - { - $data = [ - 'address_id' => '', - 'firstname' => 'Joe', - 'lastname' => 'Black', - 'company' => 'Lunatis', - 'street' => ['1100 Parmer', 'ln.'], - 'city' => 'Austin', - 'region_id' => '57', - 'region' => '', - 'postcode' => '78757', - 'country_id' => 'US', - 'telephone' => '(512) 999-9999', - 'save_in_address_book' => 1, - ]; - $this->_model->saveShipping($data, null); - - $address = $this->_currentQuote->getShippingAddress(); - - /* Verify that data from the form is set */ - $this->assertEquals('Joe', $address->getFirstname()); - $this->assertEquals('Black', $address->getLastname()); - $this->assertEquals('Lunatis', $address->getCompany()); - $this->assertEquals("1100 Parmer\nln.", $address->getData('street')); - $this->assertEquals('Austin', $address->getCity()); - $this->assertEquals('US', $address->getCountryId()); - $this->assertEquals('Texas', $address->getRegion()); - $this->assertEquals('57', $address->getRegionId()); - $this->assertEquals('78757', $address->getPostcode()); - $this->assertEquals('(512) 999-9999', $address->getTelephone()); - $this->assertNull($address->getCustomerAddressId()); - } - - /** - * @magentoAppIsolation enabled - */ - public function testSaveOrder() - { - $this->markTestIncomplete('MAGETWO-31257'); - $this->_model->saveBilling($this->_getCustomerData(), null); - $this->_prepareQuote($this->_getQuote()); - - $this->_model->saveOrder(); - - /** @var $order \Magento\Sales\Model\Order */ - $order = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\Sales\Model\Order'); - $order->loadByIncrementId($this->_model->getLastOrderId()); - - $this->assertNotEmpty( - $this->_model->getQuote()->getShippingAddress()->getCustomerAddressId(), - 'Quote shipping CustomerAddressId should not be empty' - ); - $this->assertNotEmpty( - $this->_model->getQuote()->getBillingAddress()->getCustomerAddressId(), - 'Quote billing CustomerAddressId should not be empty' - ); - - $this->assertNotEmpty( - $order->getShippingAddress()->getCustomerAddressId(), - 'Order shipping CustomerAddressId should not be empty' - ); - $this->assertNotEmpty( - $order->getBillingAddress()->getCustomerAddressId(), - 'Order billing CustomerAddressId should not be empty' - ); - } - - /** - * @magentoAppIsolation enabled - * @magentoDataFixture Magento/Customer/_files/customer.php - */ - public function testInitCheckoutNotLoggedIn() - { - /* The customer session must be cleared before the real test begins. Need to - have a customer via the data fixture to actually log out. */ - /** @var $customerSession \Magento\Customer\Model\Session*/ - $customerSession = Bootstrap::getObjectManager()->create('Magento\Customer\Model\Session'); - $customerSession->setCustomerId(1); - $customerSession->logout(); - - $this->_model->saveBilling($this->_getCustomerData(), null); - $this->_prepareQuote($this->_getQuote()); - $this->assertTrue($this->_model->getCheckout()->getSteps()['shipping']['allow']); - $this->assertTrue($this->_model->getCheckout()->getSteps()['billing']['allow']); - $this->_model->initCheckout(); - $this->assertFalse($this->_model->getCheckout()->getSteps()['shipping']['allow']); - $this->assertFalse($this->_model->getCheckout()->getSteps()['billing']['allow']); - $this->assertNull($this->_model->getQuote()->getCustomer()->getEmail()); - } - - /** - * @magentoAppIsolation enabled - * @magentoDataFixture Magento/Customer/_files/customer.php - */ - public function testInitCheckoutLoggedIn() - { - $this->_model->saveBilling($this->_getCustomerData(), null); - $this->_prepareQuote($this->_getQuote()); - $customerIdFromFixture = 1; - $emailFromFixture = 'customer@example.com'; - /** @var $customerSession \Magento\Customer\Model\Session*/ - $customerSession = Bootstrap::getObjectManager()->create('Magento\Customer\Model\Session'); - /** @var $customerRepository \Magento\Customer\Api\CustomerRepositoryInterface */ - $customerRepository = Bootstrap::getObjectManager()->create( - 'Magento\Customer\Api\CustomerRepositoryInterface' - ); - $customerData = $customerRepository->getById($customerIdFromFixture); - $customerSession->setCustomerDataObject($customerData); - $this->_model = Bootstrap::getObjectManager()->create( - 'Magento\Checkout\Model\Type\Onepage', - ['customerSession' => $customerSession] - ); - $this->assertTrue($this->_model->getCheckout()->getSteps()['shipping']['allow']); - $this->assertTrue($this->_model->getCheckout()->getSteps()['billing']['allow']); - $this->_model->initCheckout(); - $this->assertFalse($this->_model->getCheckout()->getSteps()['shipping']['allow']); - //When the user is logged in and for Step billing - allow is not reset to true - $this->assertTrue($this->_model->getCheckout()->getSteps()['billing']['allow']); - $this->assertEquals($emailFromFixture, $this->_model->getQuote()->getCustomer()->getEmail()); - } - - /** - * New customer, the same address should be used for shipping and billing, it should be persisted to DB. - * - * @magentoAppIsolation enabled - * @magentoDbIsolation enabled - */ - public function testSaveBillingSameAsShipping() - { - $quote = $this->_model->getQuote(); - - /** Preconditions */ - $customerData = $this->_getCustomerData(); - $customerAddressId = false; - $this->assertEquals(1, $customerData['use_for_shipping'], "Precondition failed: use_for_shipping is invalid"); - $this->assertEquals( - 1, - $customerData['save_in_address_book'], - "Precondition failed: save_in_address_book is invalid" - ); - $this->assertEmpty( - $quote->getBillingAddress()->getId(), - "Precondition failed: billing address must not be initialized." - ); - $this->assertEmpty( - $quote->getShippingAddress()->getId(), - "Precondition failed: billing address must not be initialized." - ); - - /** Execute SUT */ - $result = $this->_model->saveBilling($customerData, $customerAddressId); - $this->assertEquals([], $result, 'Return value is invalid'); - - /** Ensure that quote addresses were persisted correctly */ - $billingAddress = $quote->getBillingAddress(); - $shippingAddress = $quote->getShippingAddress(); - - $quoteAddressFieldsToCheck = [ - 'quote_id' => $quote->getId(), - 'firstname' => 'John', - 'lastname' => 'Smith', - 'email' => 'John.Smith@example.com', - 'street' => '6131 Monterey Rd, Apt 1', - 'city' => 'Los Angeles', - 'postcode' => '90042', - 'country_id' => 'US', - 'region_id' => '1', - 'region' => 'Alabama', - 'telephone' => '(323) 255-5861', - 'customer_id' => null, - 'customer_address_id' => null, - ]; - - foreach ($quoteAddressFieldsToCheck as $field => $value) { - $this->assertEquals($value, $billingAddress->getData($field), "{$field} value is invalid"); - $this->assertEquals($value, $shippingAddress->getData($field), "{$field} value is invalid"); - } - $this->assertEquals('1', $shippingAddress->getData('same_as_billing'), "same_as_billing value is invalid"); - $this->assertGreaterThan(0, $shippingAddress->getData('address_id'), "address_id value is invalid"); - $this->assertGreaterThan(0, $billingAddress->getData('address_id'), "address_id value is invalid"); - $this->assertEquals( - 1, - $billingAddress->getData('save_in_address_book'), - "save_in_address_book value is invalid" - ); - $this->assertEquals( - 0, - $shippingAddress->getData('save_in_address_book'), - "As soon as 'same_as_billing' is set to 1, 'save_in_address_book' of shipping should be 0" - ); - - /** Ensure that customer-related data was ported to quote correctly */ - $quoteFieldsToCheck = [ - 'customer_firstname' => 'John', - 'customer_lastname' => 'Smith', - 'customer_email' => 'John.Smith@example.com', - ]; - foreach ($quoteFieldsToCheck as $field => $value) { - $this->assertEquals($value, $quote->getData($field), "{$field} value is set to quote incorrectly."); - } - - /** Perform if checkout steps status was correctly updated in session */ - /** @var \Magento\Checkout\Model\Session $checkoutSession */ - $checkoutSession = Bootstrap::getObjectManager()->get('Magento\Checkout\Model\Session'); - $this->assertTrue($checkoutSession->getStepData('billing', 'allow'), 'Billing step should be allowed.'); - $this->assertTrue($checkoutSession->getStepData('billing', 'complete'), 'Billing step should be completed.'); - $this->assertTrue($checkoutSession->getStepData('shipping', 'allow'), 'Shipping step should be allowed.'); - } - - /** - * New customer, billing address should not be used as shipping address, it should be persisted to DB. - * - * @magentoAppIsolation enabled - * @magentoDbIsolation enabled - */ - public function testSaveBilling() - { - $quote = $this->_model->getQuote(); - - /** Preconditions */ - $customerData = $this->_getCustomerData(); - $customerData['use_for_shipping'] = 0; - $customerAddressId = false; - $this->assertEquals( - 1, - $customerData['save_in_address_book'], - "Precondition failed: save_in_address_book is invalid" - ); - $this->assertEmpty( - $quote->getBillingAddress()->getId(), - "Precondition failed: billing address must not be initialized." - ); - $this->assertEmpty( - $quote->getShippingAddress()->getId(), - "Precondition failed: billing address must not be initialized." - ); - - /** Execute SUT */ - $result = $this->_model->saveBilling($customerData, $customerAddressId); - $this->assertEquals([], $result, 'Return value is invalid'); - - /** Ensure that quote addresses were persisted correctly */ - $billingAddress = $quote->getBillingAddress(); - $shippingAddress = $quote->getShippingAddress(); - - $quoteAddressFieldsToCheck = [ - 'quote_id' => $quote->getId(), - 'firstname' => 'John', - 'lastname' => 'Smith', - 'email' => 'John.Smith@example.com', - 'street' => '6131 Monterey Rd, Apt 1', - 'city' => 'Los Angeles', - 'postcode' => '90042', - 'country_id' => 'US', - 'region_id' => '1', - 'region' => 'Alabama', - 'telephone' => '(323) 255-5861', - 'customer_id' => null, - 'customer_address_id' => null, - ]; - - foreach ($quoteAddressFieldsToCheck as $field => $value) { - $this->assertEquals($value, $billingAddress->getData($field), "{$field} value is invalid"); - } - $this->assertGreaterThan(0, $billingAddress->getData('address_id'), "address_id value is invalid"); - $this->assertEmpty( - $shippingAddress->getData('firstname'), - "Shipping address should not be populated with billing address data when 'same_as_billing' is set to 0." - ); - $this->assertEquals( - 1, - $billingAddress->getData('save_in_address_book'), - "save_in_address_book value is invalid" - ); - - /** Ensure that customer-related data was ported to quote correctly */ - $quoteFieldsToCheck = [ - 'customer_firstname' => 'John', - 'customer_lastname' => 'Smith', - 'customer_email' => 'John.Smith@example.com', - ]; - foreach ($quoteFieldsToCheck as $field => $value) { - $this->assertEquals($value, $quote->getData($field), "{$field} value is set to quote incorrectly."); - } - - /** Perform if checkout steps status was correctly updated in session */ - /** @var \Magento\Checkout\Model\Session $checkoutSession */ - $checkoutSession = Bootstrap::getObjectManager()->get('Magento\Checkout\Model\Session'); - $this->assertTrue($checkoutSession->getStepData('billing', 'allow'), 'Billing step should be allowed.'); - $this->assertTrue($checkoutSession->getStepData('billing', 'complete'), 'Billing step should be completed.'); - $this->assertTrue($checkoutSession->getStepData('shipping', 'allow'), 'Shipping step should be allowed.'); - } - - /** - * New address, address data is invalid. - */ - public function testSaveBillingValidationErrorNewAddress() - { - /** Preconditions */ - $customerData = $this->_getCustomerData(); - unset($customerData['firstname']); - $customerAddressId = false; - - /** Execute SUT */ - $result = $this->_model->saveBilling($customerData, $customerAddressId); - $validationErrors = [ - '"First Name" is a required value.', - '"First Name" length must be equal or greater than 1 characters.', - ]; - $this->assertEquals( - ['error' => 1, 'message' => $validationErrors], - $result, - 'Validation error is invalid.' - ); - } - - /** - * Existing address, address data is invalid. - * - * @magentoDataFixture Magento/Customer/_files/customer.php - * @magentoDataFixture Magento/Customer/_files/customer_address.php - */ - public function testSaveBillingExistingAddressInvalidData() - { - /** Preconditions */ - $addressIdFromFixture = 1; - $customerIdFromFixture = 1; - $customerData = $this->_getCustomerData(); - unset($customerData['firstname']); - $this->_getQuote()->setCustomerId($customerIdFromFixture); - - /** Execute SUT */ - /** - * If customer address is available, provided customer data is not validated, - * that's why no error occurs when invalid data is provided - */ - $result = $this->_model->saveBilling($customerData, $addressIdFromFixture); - $this->assertEquals([], $result, 'No errors expected.'); - } - - /** - * Address exists, but it does not belong to the current customer which is set to quote. - * - * @magentoDataFixture Magento/Customer/_files/customer.php - * @magentoDataFixture Magento/Customer/_files/customer_address.php - */ - public function testSaveBillingInvalidAddressId() - { - /** Preconditions */ - $addressIdFromFixture = 1; - $customerData = $this->_getCustomerData(); - unset($customerData['firstname']); - /** Any ID can be used, which is not equal to ID of customer to which current address belongs. */ - $secondCustomerId = 2; - $this->_getQuote()->setCustomerId($secondCustomerId); - - /** Execute SUT */ - $result = $this->_model->saveBilling($customerData, $addressIdFromFixture); - $validationErrors = 'The customer address is not valid.'; - $this->assertEquals( - ['error' => 1, 'message' => $validationErrors], - $result, - 'Validation error is invalid.' - ); - } - - /** - * Empty data. - */ - public function testSaveBillingEmptyData() - { - /** Execute SUT */ - $customerData = []; - $customerAddressId = false; - $result = $this->_model->saveBilling($customerData, $customerAddressId); - $this->assertEquals( - ['error' => -1, 'message' => 'Invalid data'], - $result, - 'Validation error is invalid.' - ); - } - - /** - * Address does not exist, but existing email is specified in address data. - * - * @magentoDataFixture Magento/Customer/_files/customer.php - */ - public function testSaveBillingNewAddressErrorExistingEmail() - { - /** Preconditions */ - $customerData = $this->_getCustomerData(); - $fixtureCustomerEmail = 'customer@example.com'; - $customerData['email'] = $fixtureCustomerEmail; - $customerAddressId = false; - $this->_getQuote()->setCheckoutMethod(\Magento\Checkout\Model\Type\Onepage::METHOD_REGISTER); - - /** Execute SUT */ - $result = $this->_model->saveBilling($customerData, $customerAddressId); - $this->assertArrayHasKey('message', $result, 'Error message was expected to be set'); - $this->assertStringStartsWith( - 'This email address already belongs to a registered customer.', - (string)$result['message'], - 'Validation error is invalid.' - ); - } - - /** - * New address, customer address is invalid (customer validation should fail, not address validation). - */ - public function testSaveBillingInvalidCustomerData() - { - /** Preconditions */ - $customerData = $this->_getCustomerData(); - $customerData['email'] = 'invalidemail'; - $this->_getQuote()->setCheckoutMethod(\Magento\Checkout\Model\Type\Onepage::METHOD_REGISTER); - $customerAddressId = false; - - /** Execute SUT */ - $result = $this->_model->saveBilling($customerData, $customerAddressId); - $validationErrors = '"Email" is not a valid email address.'; - $this->assertEquals( - ['error' => -1, 'message' => $validationErrors], - $result, - 'Validation error is invalid.' - ); - } - - /** - * @return \Magento\Quote\Model\Quote - */ - protected function _getQuote() - { - return $this->_currentQuote; - } - - /** - * Prepare Quote - * - * @param \Magento\Quote\Model\Quote $quote - */ - protected function _prepareQuote($quote) - { - /** @var $rate \Magento\Quote\Model\Quote\Address\Rate */ - $rate = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create( - 'Magento\Quote\Model\Quote\Address\Rate' - ); - $rate->setCode('freeshipping_freeshipping'); - $rate->getPrice(1); - - $quote->getShippingAddress()->setShippingMethod('freeshipping_freeshipping'); - $quote->getShippingAddress()->addShippingRate($rate); - $quote->setCheckoutMethod(\Magento\Checkout\Model\Type\Onepage::METHOD_REGISTER); - } - - /** - * Customer data for quote - * - * @return array - */ - protected function _getCustomerData() - { - return [ - 'firstname' => 'John', - 'lastname' => 'Smith', - 'email' => 'John.Smith@example.com', - 'street' => ['6131 Monterey Rd, Apt 1', ''], - 'city' => 'Los Angeles', - 'postcode' => '90042', - 'country_id' => 'US', - 'region_id' => '1', - 'telephone' => '(323) 255-5861', - 'customer_password' => 'password', - 'confirm_password' => 'password', - 'save_in_address_book' => '1', - 'use_for_shipping' => '1' - ]; - } -} -- GitLab From 4a7dd5807c3427d4e2aded0a87762ad686178f8a Mon Sep 17 00:00:00 2001 From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com> Date: Fri, 16 Oct 2015 17:19:22 +0300 Subject: [PATCH 409/420] MAGETWO-44092: Inputted data from first checkout step is not pre-filled in shopping cart estimator --- .../Magento/Customer/view/frontend/web/js/customer-data.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/code/Magento/Customer/view/frontend/web/js/customer-data.js b/app/code/Magento/Customer/view/frontend/web/js/customer-data.js index f4f79932d39..1f49ca48afb 100644 --- a/app/code/Magento/Customer/view/frontend/web/js/customer-data.js +++ b/app/code/Magento/Customer/view/frontend/web/js/customer-data.js @@ -107,6 +107,9 @@ define([ if (_.isEmpty(storage.keys())) { this.reload([], false); } else if (this.needReload()) { + _.each(dataProvider.getFromStorage(storage.keys()), function (sectionData, sectionName) { + buffer.notify(sectionName, sectionData); + }); this.reload(this.getExpiredKeys(), false); } else { _.each(dataProvider.getFromStorage(storage.keys()), function (sectionData, sectionName) { @@ -154,6 +157,7 @@ define([ set: function (sectionName, sectionData) { var data = {}; data[sectionName] = sectionData; + console.log(sectionName); buffer.update(data); }, reload: function (sectionNames, updateSectionId) { -- GitLab From ca1c74676f7bc95ed6e3a515443354d1100778f5 Mon Sep 17 00:00:00 2001 From: Stanislav Idolov <sidolov@ebay.com> Date: Fri, 16 Oct 2015 17:21:16 +0300 Subject: [PATCH 410/420] MAGETWO-44179: Order Summary block on Shipping checkout step contains "Not yet calculated" and Subtotal information --- .../Checkout/view/frontend/layout/checkout_index_index.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_index_index.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_index_index.xml index 696a2089c46..d63de55391c 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_index_index.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_index_index.xml @@ -334,6 +334,9 @@ <item name="displayArea" xsi:type="string">sidebar</item> <item name="config" xsi:type="array"> <item name="template" xsi:type="string">Magento_Checkout/sidebar</item> + <item name="deps" xsi:type="array"> + <item name="0" xsi:type="string">checkout.steps</item> + </item> </item> <item name="children" xsi:type="array"> <item name="summary" xsi:type="array"> -- GitLab From aec69af1986a3c89419b249d0d12a8c699bfe1c7 Mon Sep 17 00:00:00 2001 From: Alex Akimov <aakimov@ebay.com> Date: Fri, 16 Oct 2015 17:23:43 +0300 Subject: [PATCH 411/420] MAGETWO-44084: There is no Block on Frontend for "Accept Cookies" if Cookie Restriction Mode = Yes --- .../Magento/Cookie/{View => view}/adminhtml/requirejs-config.js | 0 .../Magento/Cookie/{View => view}/frontend/layout/default.xml | 0 .../Magento/Cookie/{View => view}/frontend/requirejs-config.js | 0 .../Cookie/{View => view}/frontend/templates/html/notices.phtml | 0 .../Cookie/{View => view}/frontend/templates/require_cookie.phtml | 0 app/code/Magento/Cookie/{View => view}/frontend/web/js/notices.js | 0 .../Cookie/{View => view}/frontend/web/js/require-cookie.js | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename app/code/Magento/Cookie/{View => view}/adminhtml/requirejs-config.js (100%) rename app/code/Magento/Cookie/{View => view}/frontend/layout/default.xml (100%) rename app/code/Magento/Cookie/{View => view}/frontend/requirejs-config.js (100%) rename app/code/Magento/Cookie/{View => view}/frontend/templates/html/notices.phtml (100%) rename app/code/Magento/Cookie/{View => view}/frontend/templates/require_cookie.phtml (100%) rename app/code/Magento/Cookie/{View => view}/frontend/web/js/notices.js (100%) rename app/code/Magento/Cookie/{View => view}/frontend/web/js/require-cookie.js (100%) diff --git a/app/code/Magento/Cookie/View/adminhtml/requirejs-config.js b/app/code/Magento/Cookie/view/adminhtml/requirejs-config.js similarity index 100% rename from app/code/Magento/Cookie/View/adminhtml/requirejs-config.js rename to app/code/Magento/Cookie/view/adminhtml/requirejs-config.js diff --git a/app/code/Magento/Cookie/View/frontend/layout/default.xml b/app/code/Magento/Cookie/view/frontend/layout/default.xml similarity index 100% rename from app/code/Magento/Cookie/View/frontend/layout/default.xml rename to app/code/Magento/Cookie/view/frontend/layout/default.xml diff --git a/app/code/Magento/Cookie/View/frontend/requirejs-config.js b/app/code/Magento/Cookie/view/frontend/requirejs-config.js similarity index 100% rename from app/code/Magento/Cookie/View/frontend/requirejs-config.js rename to app/code/Magento/Cookie/view/frontend/requirejs-config.js diff --git a/app/code/Magento/Cookie/View/frontend/templates/html/notices.phtml b/app/code/Magento/Cookie/view/frontend/templates/html/notices.phtml similarity index 100% rename from app/code/Magento/Cookie/View/frontend/templates/html/notices.phtml rename to app/code/Magento/Cookie/view/frontend/templates/html/notices.phtml diff --git a/app/code/Magento/Cookie/View/frontend/templates/require_cookie.phtml b/app/code/Magento/Cookie/view/frontend/templates/require_cookie.phtml similarity index 100% rename from app/code/Magento/Cookie/View/frontend/templates/require_cookie.phtml rename to app/code/Magento/Cookie/view/frontend/templates/require_cookie.phtml diff --git a/app/code/Magento/Cookie/View/frontend/web/js/notices.js b/app/code/Magento/Cookie/view/frontend/web/js/notices.js similarity index 100% rename from app/code/Magento/Cookie/View/frontend/web/js/notices.js rename to app/code/Magento/Cookie/view/frontend/web/js/notices.js diff --git a/app/code/Magento/Cookie/View/frontend/web/js/require-cookie.js b/app/code/Magento/Cookie/view/frontend/web/js/require-cookie.js similarity index 100% rename from app/code/Magento/Cookie/View/frontend/web/js/require-cookie.js rename to app/code/Magento/Cookie/view/frontend/web/js/require-cookie.js -- GitLab From 26a110718da79469888d6795472d372acc587ba2 Mon Sep 17 00:00:00 2001 From: Serhiy Shkolyarenko <sshkolyarenko@ebay.com> Date: Fri, 16 Oct 2015 17:28:38 +0300 Subject: [PATCH 412/420] MAGETWO-44167: ObsoleteCodeTest ignores blacklist mess detection fix --- .../static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php b/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php index c3acb75b2e1..813aababf3b 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/ObsoleteCodeTest.php @@ -14,6 +14,9 @@ use Magento\Framework\App\Utility\Files; use Magento\Framework\App\Utility\AggregateInvoker; use Magento\TestFramework\Utility\ChangedFiles; +/** + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + */ class ObsoleteCodeTest extends \PHPUnit_Framework_TestCase { /**@#+ -- GitLab From c23bf258687db3ee76e2c641b6bfe975562f996b Mon Sep 17 00:00:00 2001 From: Maxim Medinskiy <mmedinskiy@ebay.com> Date: Fri, 16 Oct 2015 17:58:03 +0300 Subject: [PATCH 413/420] MAGETWO-43648: CLONE - Multi-select customer attribute rendered in admin UI as a dropdown --- .../Ui/Component/Form/Element/MultiSelect.php | 24 +++++++++++++++++++ .../view/base/ui_component/etc/definition.xml | 5 +++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 app/code/Magento/Ui/Component/Form/Element/MultiSelect.php diff --git a/app/code/Magento/Ui/Component/Form/Element/MultiSelect.php b/app/code/Magento/Ui/Component/Form/Element/MultiSelect.php new file mode 100644 index 00000000000..93fd7f600e0 --- /dev/null +++ b/app/code/Magento/Ui/Component/Form/Element/MultiSelect.php @@ -0,0 +1,24 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Ui\Component\Form\Element; + +class MultiSelect extends Select +{ + const NAME = 'multiselect'; + + const DEFAULT_SIZE = 6; + + /** + * @inheritDoc + */ + public function prepare() + { + $config['size'] = self::DEFAULT_SIZE; + $this->setData('config', array_replace_recursive((array)$this->getData('config'), $config)); + parent::prepare(); + } +} diff --git a/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml b/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml index b8485998fec..090c3a9e277 100755 --- a/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml +++ b/app/code/Magento/Ui/view/base/ui_component/etc/definition.xml @@ -199,7 +199,7 @@ </item> </argument> </select> - <multiselect class="Magento\Ui\Component\Form\Element\Select"> + <multiselect class="Magento\Ui\Component\Form\Element\MultiSelect"> <argument name="data" xsi:type="array"> <item name="template" xsi:type="string">ui/form/element/multiselect</item> <item name="js_config" xsi:type="array"> @@ -209,6 +209,9 @@ <item name="elementTmpl" xsi:type="string">ui/form/element/multiselect</item> </item> </item> + <item name="config" xsi:type="array"> + <item name="size" xsi:type="string">6</item> + </item> </argument> </multiselect> <textarea class="Magento\Ui\Component\Form\Element\Textarea"> -- GitLab From a698766edbcdbe92d6e684c0ba02e54734afb0e1 Mon Sep 17 00:00:00 2001 From: Maxim Medinskiy <mmedinskiy@ebay.com> Date: Fri, 16 Oct 2015 18:13:16 +0300 Subject: [PATCH 414/420] MAGETWO-44062: [github] Method \Magento\Customer\Model\Customer::setWebsiteId() has wrong PHPDoc declaration #2089 --- app/code/Magento/Customer/Model/Customer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Customer/Model/Customer.php b/app/code/Magento/Customer/Model/Customer.php index 53cd1bcc12a..4516a33962a 100644 --- a/app/code/Magento/Customer/Model/Customer.php +++ b/app/code/Magento/Customer/Model/Customer.php @@ -22,7 +22,7 @@ use Magento\Framework\Indexer\StateInterface; * Customer model * * @method int getWebsiteId() getWebsiteId() - * @method Customer setWebsiteId(int) + * @method Customer setWebsiteId($value) * @method int getStoreId() getStoreId() * @method string getEmail() getEmail() * @method ResourceCustomer _getResource() -- GitLab From 9d4b60487f44ec1bc5ec56f26df474b404578304 Mon Sep 17 00:00:00 2001 From: Ievgen Shakhsuvarov <ishakhsuvarov@ebay.com> Date: Fri, 16 Oct 2015 18:31:22 +0300 Subject: [PATCH 415/420] MAGETWO-44092: Inputted data from first checkout step is not pre-filled in shopping cart estimator --- app/code/Magento/Customer/view/frontend/web/js/customer-data.js | 1 - 1 file changed, 1 deletion(-) diff --git a/app/code/Magento/Customer/view/frontend/web/js/customer-data.js b/app/code/Magento/Customer/view/frontend/web/js/customer-data.js index 1f49ca48afb..bfec0bf9202 100644 --- a/app/code/Magento/Customer/view/frontend/web/js/customer-data.js +++ b/app/code/Magento/Customer/view/frontend/web/js/customer-data.js @@ -157,7 +157,6 @@ define([ set: function (sectionName, sectionData) { var data = {}; data[sectionName] = sectionData; - console.log(sectionName); buffer.update(data); }, reload: function (sectionNames, updateSectionId) { -- GitLab From 6eadce90429d579bd73855da4b2ce737bba4c175 Mon Sep 17 00:00:00 2001 From: Stanislav Idolov <sidolov@ebay.com> Date: Fri, 16 Oct 2015 19:41:54 +0300 Subject: [PATCH 416/420] MAGETWO-44005: Checkout with Paypal Express button becomes unavailable after changing quantity in Mini Shopping Cart --- .../Magento/Checkout/view/frontend/web/js/view/minicart.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js b/app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js index 68f02b5d572..7c4025a51c2 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/view/minicart.js @@ -72,6 +72,12 @@ define([ this.isLoading(addToCartCalls > 0); sidebarInitialized = false; initSidebar(); + + /**TODO: Extra options support. Should be refactored after MAGETWO-43159. */ + setInterval(function(){ + minicart.trigger('contentUpdated'); + }, 500); + }, this); $('[data-block="minicart"]').on('contentLoading', function(event) { addToCartCalls++; -- GitLab From d3607fde59503444f3b54c710b5cf9dfe84a5c99 Mon Sep 17 00:00:00 2001 From: Stanislav Idolov <sidolov@ebay.com> Date: Fri, 16 Oct 2015 20:06:33 +0300 Subject: [PATCH 417/420] MAGETWO-44219: Tax(totals) is not recalculated in Order Summary for virtual product if customer changes address --- .../Checkout/view/frontend/web/js/view/billing-address.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/billing-address.js b/app/code/Magento/Checkout/view/frontend/web/js/view/billing-address.js index 6be04c3df05..80d9a5982a6 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/view/billing-address.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/view/billing-address.js @@ -133,6 +133,9 @@ define( if (this.selectedAddress() && this.selectedAddress() != newAddressOption) { selectBillingAddress(this.selectedAddress()); checkoutData.setSelectedBillingAddress(this.selectedAddress().getKey()); + if (window.checkoutConfig.reloadOnBillingAddress) { + setBillingAddressAction(globalMessageList); + } } else { this.source.set('params.invalid', false); this.source.trigger(this.dataScopePrefix + '.data.validate'); -- GitLab From b08187244fc6585fb45a6f6ab07f16364f0a3790 Mon Sep 17 00:00:00 2001 From: Oleksii Korshenko <okorshenko@ebay.com> Date: Fri, 16 Oct 2015 20:27:57 +0300 Subject: [PATCH 418/420] MAGETWO-44084: There is no block/message on frontend for "accept cookies" if Cookie Restriction Mode = Yes --- .../view/frontend/web/js/action/set-billing-address.js | 4 +++- .../testsuite/Magento/Test/Js/_files/blacklist/magento.txt | 7 +++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/Checkout/view/frontend/web/js/action/set-billing-address.js b/app/code/Magento/Checkout/view/frontend/web/js/action/set-billing-address.js index faf798bf988..2090bdabfe6 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/action/set-billing-address.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/action/set-billing-address.js @@ -55,10 +55,12 @@ define( serviceUrl, JSON.stringify(payload) ).done( function () { + var deferred = null; + if (!quote.isVirtual()) { getTotalsAction([]); } else { - var deferred = $.Deferred(); + deferred = $.Deferred(); getPaymentInformationAction(deferred); $.when(deferred).done(function () { fullScreenLoader.stopLoader(); diff --git a/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt b/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt index 02aa8c3d205..473a08355e6 100644 --- a/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt +++ b/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt @@ -173,10 +173,9 @@ app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/steps/summ app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/variations/variations.js app/code/Magento/ConfigurableProduct/view/frontend/requirejs-config.js app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js -app/code/Magento/Cookie/View/adminhtml/requirejs-config.js -app/code/Magento/Cookie/View/frontend/requirejs-config.js -app/code/Magento/Cookie/View/frontend/web/js/notices.js -app/code/Magento/Cookie/View/frontend/web/js/require-cookie.js +app/code/Magento/Cookie/view/adminhtml/requirejs-config.js +app/code/Magento/Cookie/view/frontend/requirejs-config.js +app/code/Magento/Cookie/view/frontend/web/js/require-cookie.js app/code/Magento/Customer/view/adminhtml/requirejs-config.js app/code/Magento/Customer/view/adminhtml/web/edit/tab/js/addresses.js app/code/Magento/Customer/view/frontend/requirejs-config.js -- GitLab From 97b2e8098858c6c158add01f570c86ed441f43f8 Mon Sep 17 00:00:00 2001 From: Oleksii Korshenko <okorshenko@ebay.com> Date: Fri, 16 Oct 2015 20:41:46 +0300 Subject: [PATCH 419/420] MAGETWO-44084: There is no block/message on frontend for "accept cookies" if Cookie Restriction Mode = Yes --- app/code/Magento/Cookie/view/frontend/web/js/notices.js | 4 +++- .../Magento/Cookie/view/frontend/web/js/require-cookie.js | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Cookie/view/frontend/web/js/notices.js b/app/code/Magento/Cookie/view/frontend/web/js/notices.js index 09094b971a2..5c82ce31468 100644 --- a/app/code/Magento/Cookie/view/frontend/web/js/notices.js +++ b/app/code/Magento/Cookie/view/frontend/web/js/notices.js @@ -8,6 +8,7 @@ define([ "jquery/ui", "mage/cookies" ], function($){ + "use strict"; $.widget('mage.cookieNotices', { _create: function() { @@ -18,6 +19,7 @@ define([ } $(this.options.cookieAllowButtonSelector).on('click', $.proxy(function() { var cookieExpires = new Date(new Date().getTime() + this.options.cookieLifetime * 1000); + $.mage.cookies.set(this.options.cookieName, this.options.cookieValue, {expires: cookieExpires}); if ($.mage.cookies.get(this.options.cookieName)) { window.location.reload(); @@ -29,4 +31,4 @@ define([ }); return $.mage.cookieNotices; -}); \ No newline at end of file +}); diff --git a/app/code/Magento/Cookie/view/frontend/web/js/require-cookie.js b/app/code/Magento/Cookie/view/frontend/web/js/require-cookie.js index 22abfc82d56..6aedd8ac9b5 100644 --- a/app/code/Magento/Cookie/view/frontend/web/js/require-cookie.js +++ b/app/code/Magento/Cookie/view/frontend/web/js/require-cookie.js @@ -30,6 +30,7 @@ define([ */ _bind: function() { var events = {}; + $.each(this.options.triggers, function(index, value) { events['click ' + value] = '_checkCookie'; }); @@ -50,4 +51,4 @@ define([ }); return $.mage.requireCookie; -}); \ No newline at end of file +}); -- GitLab From b068bf8b6ee2a7e9426e63ddf66c3d26509232a2 Mon Sep 17 00:00:00 2001 From: Oleksii Korshenko <okorshenko@ebay.com> Date: Fri, 16 Oct 2015 20:52:50 +0300 Subject: [PATCH 420/420] MAGETWO-44084: There is no block/message on frontend for "accept cookies" if Cookie Restriction Mode = Yes --- .../testsuite/Magento/Test/Js/_files/blacklist/magento.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt b/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt index 473a08355e6..70168b63a4e 100644 --- a/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt +++ b/dev/tests/static/testsuite/Magento/Test/Js/_files/blacklist/magento.txt @@ -175,6 +175,7 @@ app/code/Magento/ConfigurableProduct/view/frontend/requirejs-config.js app/code/Magento/ConfigurableProduct/view/frontend/web/js/configurable.js app/code/Magento/Cookie/view/adminhtml/requirejs-config.js app/code/Magento/Cookie/view/frontend/requirejs-config.js +app/code/Magento/Cookie/view/frontend/web/js/notices.js app/code/Magento/Cookie/view/frontend/web/js/require-cookie.js app/code/Magento/Customer/view/adminhtml/requirejs-config.js app/code/Magento/Customer/view/adminhtml/web/edit/tab/js/addresses.js -- GitLab