diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php
index 00a836309e58e..575eb2d1142ff 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/Set/Save.php
@@ -6,6 +6,9 @@
*/
namespace Magento\Catalog\Controller\Adminhtml\Product\Set;
+/**
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ */
class Save extends \Magento\Catalog\Controller\Adminhtml\Product\Set
{
/**
@@ -17,22 +20,49 @@ class Save extends \Magento\Catalog\Controller\Adminhtml\Product\Set
* @var \Magento\Framework\Controller\Result\JsonFactory
*/
protected $resultJsonFactory;
-
+
+ /*
+ * @var \Magento\Eav\Model\Entity\Attribute\SetFactory
+ */
+ private $attributeSetFactory;
+
+ /*
+ * @var \Magento\Framework\Filter\FilterManager
+ */
+ private $filterManager;
+
+ /*
+ * @var \Magento\Framework\Json\Helper\Data
+ */
+ private $jsonHelper;
+
/**
* @param \Magento\Backend\App\Action\Context $context
* @param \Magento\Framework\Registry $coreRegistry
* @param \Magento\Framework\View\LayoutFactory $layoutFactory
* @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory
+ * @param \Magento\Eav\Model\Entity\Attribute\SetFactory $attributeSetFactory
+ * @param \Magento\Framework\Filter\FilterManager $filterManager
+ * @param \Magento\Framework\Json\Helper\Data $jsonHelper
*/
public function __construct(
\Magento\Backend\App\Action\Context $context,
\Magento\Framework\Registry $coreRegistry,
\Magento\Framework\View\LayoutFactory $layoutFactory,
- \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory
+ \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory,
+ \Magento\Eav\Model\Entity\Attribute\SetFactory $attributeSetFactory = null,
+ \Magento\Framework\Filter\FilterManager $filterManager = null,
+ \Magento\Framework\Json\Helper\Data $jsonHelper = null
) {
parent::__construct($context, $coreRegistry);
$this->layoutFactory = $layoutFactory;
$this->resultJsonFactory = $resultJsonFactory;
+ $this->attributeSetFactory = $attributeSetFactory ?: \Magento\Framework\App\ObjectManager::getInstance()
+ ->get(\Magento\Eav\Model\Entity\Attribute\SetFactory::class);
+ $this->filterManager = $filterManager ?: \Magento\Framework\App\ObjectManager::getInstance()
+ ->get(\Magento\Framework\Filter\FilterManager::class);
+ $this->jsonHelper = $jsonHelper ?: \Magento\Framework\App\ObjectManager::getInstance()
+ ->get(\Magento\Framework\Json\Helper\Data::class);
}
/**
@@ -65,16 +95,12 @@ public function execute()
$isNewSet = $this->getRequest()->getParam('gotoEdit', false) == '1';
/* @var $model \Magento\Eav\Model\Entity\Attribute\Set */
- $model = $this->_objectManager->create(\Magento\Eav\Model\Entity\Attribute\Set::class)
- ->setEntityTypeId($entityTypeId);
-
- /** @var $filterManager \Magento\Framework\Filter\FilterManager */
- $filterManager = $this->_objectManager->get(\Magento\Framework\Filter\FilterManager::class);
+ $model = $this->attributeSetFactory->create()->setEntityTypeId($entityTypeId);
try {
if ($isNewSet) {
//filter html tags
- $name = $filterManager->stripTags($this->getRequest()->getParam('attribute_set_name'));
+ $name = $this->filterManager->stripTags($this->getRequest()->getParam('attribute_set_name'));
$model->setAttributeSetName(trim($name));
} else {
if ($attributeSetId) {
@@ -85,11 +111,10 @@ public function execute()
__('This attribute set no longer exists.')
);
}
- $data = $this->_objectManager->get(\Magento\Framework\Json\Helper\Data::class)
- ->jsonDecode($this->getRequest()->getPost('data'));
+ $data = $this->jsonHelper->jsonDecode($this->getRequest()->getPost('data'));
//filter html tags
- $data['attribute_set_name'] = $filterManager->stripTags($data['attribute_set_name']);
+ $data['attribute_set_name'] = $this->filterManager->stripTags($data['attribute_set_name']);
$model->organizeData($data);
}
diff --git a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Row.php b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Row.php
index b5dbdb68606ff..0e64775860d56 100644
--- a/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Row.php
+++ b/app/code/Magento/Catalog/Model/Indexer/Product/Flat/Action/Row.php
@@ -61,6 +61,7 @@ public function __construct(
* @param int|null $id
* @return \Magento\Catalog\Model\Indexer\Product\Flat\Action\Row
* @throws \Magento\Framework\Exception\LocalizedException
+ * @throws \Zend_Db_Statement_Exception
*/
public function execute($id = null)
{
@@ -75,17 +76,42 @@ public function execute($id = null)
if ($tableExists) {
$this->flatItemEraser->removeDeletedProducts($ids, $store->getId());
}
- if (isset($ids[0])) {
- if (!$tableExists) {
- $this->_flatTableBuilder->build(
- $store->getId(),
- [$ids[0]],
- $this->_valueFieldSuffix,
- $this->_tableDropSuffix,
- false
- );
+
+ /* @var $status \Magento\Eav\Model\Entity\Attribute */
+ $status = $this->_productIndexerHelper->getAttribute('status');
+ $statusTable = $status->getBackend()->getTable();
+ $statusConditions = [
+ 'store_id IN(0,' . (int)$store->getId() . ')',
+ 'attribute_id = ' . (int)$status->getId(),
+ 'entity_id = ' . (int)$id
+ ];
+ $select = $this->_connection->select();
+ $select->from(
+ $statusTable,
+ ['value']
+ )->where(
+ implode(' AND ', $statusConditions)
+ )->order(
+ 'store_id DESC'
+ );
+ $result = $this->_connection->query($select);
+ $status = $result->fetch(1);
+ if ($status['value'] == \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED) {
+ if (isset($ids[0])) {
+ if (!$tableExists) {
+ $this->_flatTableBuilder->build(
+ $store->getId(),
+ [$ids[0]],
+ $this->_valueFieldSuffix,
+ $this->_tableDropSuffix,
+ false
+ );
+ }
+ $this->flatItemWriter->write($store->getId(), $ids[0], $this->_valueFieldSuffix);
}
- $this->flatItemWriter->write($store->getId(), $ids[0], $this->_valueFieldSuffix);
+ }
+ if ($status['value'] == \Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_DISABLED) {
+ $this->flatItemEraser->deleteProductsFromStore($id, $store->getId());
}
}
return $this;
diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Indexer/Product/Flat/Action/RowTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Indexer/Product/Flat/Action/RowTest.php
index 7b2a2ff304b80..265e9a3ebb87a 100644
--- a/app/code/Magento/Catalog/Test/Unit/Model/Indexer/Product/Flat/Action/RowTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Model/Indexer/Product/Flat/Action/RowTest.php
@@ -8,6 +8,10 @@
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
+
+/**
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ */
class RowTest extends \PHPUnit\Framework\TestCase
{
/**
@@ -59,6 +63,8 @@ protected function setUp()
{
$objectManager = new ObjectManager($this);
+ $attributeTable = 'catalog_product_entity_int';
+ $statusId = 22;
$this->connection = $this->createMock(\Magento\Framework\DB\Adapter\AdapterInterface::class);
$this->resource = $this->createMock(\Magento\Framework\App\ResourceConnection::class);
$this->resource->expects($this->any())->method('getConnection')
@@ -68,12 +74,38 @@ protected function setUp()
$this->store = $this->createMock(\Magento\Store\Model\Store::class);
$this->store->expects($this->any())->method('getId')->will($this->returnValue('store_id_1'));
$this->storeManager->expects($this->any())->method('getStores')->will($this->returnValue([$this->store]));
- $this->productIndexerHelper = $this->createMock(\Magento\Catalog\Helper\Product\Flat\Indexer::class);
$this->flatItemEraser = $this->createMock(\Magento\Catalog\Model\Indexer\Product\Flat\Action\Eraser::class);
$this->flatItemWriter = $this->createMock(\Magento\Catalog\Model\Indexer\Product\Flat\Action\Indexer::class);
$this->flatTableBuilder = $this->createMock(
\Magento\Catalog\Model\Indexer\Product\Flat\FlatTableBuilder::class
);
+ $this->productIndexerHelper = $this->createMock(\Magento\Catalog\Helper\Product\Flat\Indexer::class);
+ $statusAttributeMock = $this->getMockBuilder(\Magento\Eav\Model\Entity\Attribute::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->productIndexerHelper->expects($this->any())->method('getAttribute')
+ ->with('status')
+ ->willReturn($statusAttributeMock);
+ $backendMock = $this->getMockBuilder(\Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $backendMock->expects($this->any())->method('getTable')->willReturn($attributeTable);
+ $statusAttributeMock->expects($this->any())->method('getBackend')->willReturn(
+ $backendMock
+ );
+ $statusAttributeMock->expects($this->any())->method('getId')->willReturn($statusId);
+ $selectMock = $this->getMockBuilder(\Magento\Framework\DB\Select::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->connection->expects($this->any())->method('select')->willReturn($selectMock);
+ $selectMock->expects($this->any())->method('from')->with(
+ $attributeTable,
+ ['value']
+ )->willReturnSelf();
+ $selectMock->expects($this->any())->method('where')->willReturnSelf();
+ $pdoMock = $this->createMock(\Zend_Db_Statement_Pdo::class);
+ $this->connection->expects($this->any())->method('query')->with($selectMock)->will($this->returnValue($pdoMock));
+ $pdoMock->expects($this->any())->method('fetch')->will($this->returnValue(['value' => 1]));
$this->model = $objectManager->getObject(
\Magento\Catalog\Model\Indexer\Product\Flat\Action\Row::class,
@@ -83,7 +115,7 @@ protected function setUp()
'productHelper' => $this->productIndexerHelper,
'flatItemEraser' => $this->flatItemEraser,
'flatItemWriter' => $this->flatItemWriter,
- 'flatTableBuilder' => $this->flatTableBuilder
+ 'flatTableBuilder' => $this->flatTableBuilder,
]
);
}
diff --git a/app/code/Magento/Customer/etc/di.xml b/app/code/Magento/Customer/etc/di.xml
index 0d99c1145e81b..86ed633790491 100644
--- a/app/code/Magento/Customer/etc/di.xml
+++ b/app/code/Magento/Customer/etc/di.xml
@@ -353,9 +353,9 @@
- - customer_group_code
- - customer_group_id
- - class_name
+ - main_table.customer_group_code
+ - main_table.customer_group_id
+ - tax_class_table.class_name
@@ -363,9 +363,9 @@
- - customer_group_code
- - customer_group_id
- - class_name
+ - main_table.customer_group_code
+ - main_table.customer_group_id
+ - tax_class_table.class_name
- ASC
diff --git a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/checkout/_shipping.less b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/checkout/_shipping.less
index 512751df1cb35..d0ce87beb6ad3 100644
--- a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/checkout/_shipping.less
+++ b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/checkout/_shipping.less
@@ -296,6 +296,7 @@
}
}
}
+
.opc-wrapper {
.form-login,
.form-shipping-address {
@@ -307,6 +308,7 @@
padding-bottom: @indent__base;
}
}
+
.table-checkout-shipping-method {
width: auto;
}
@@ -346,6 +348,7 @@
}
}
}
+
.table-checkout-shipping-method {
min-width: 500px;
}
diff --git a/app/design/frontend/Magento/luma/Magento_InstantPurchase/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_InstantPurchase/web/css/source/_module.less
index 9877f6bbcea23..230cce3a9aeff 100644
--- a/app/design/frontend/Magento/luma/Magento_InstantPurchase/web/css/source/_module.less
+++ b/app/design/frontend/Magento/luma/Magento_InstantPurchase/web/css/source/_module.less
@@ -1,16 +1,16 @@
& when (@media-common = true) {
- .box-tocart {
- .action.instant-purchase {
- &:extend(.abs-button-l all);
- &:extend(.abs-button-responsive all);
+ .box-tocart {
+ .action.instant-purchase {
+ &:extend(.abs-button-l all);
+ &:extend(.abs-button-responsive all);
- &:not(:last-child) {
- margin-bottom: 15px;
- }
+ &:not(:last-child) {
+ margin-bottom: 15px;
+ }
- vertical-align: top;
+ vertical-align: top;
+ }
}
- }
}
//
@@ -18,11 +18,11 @@
// _____________________________________________
.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
- .box-tocart {
- .action.instant-purchase {
- margin-bottom: 0;
- margin-right: 1%;
- width: 49%;
+ .box-tocart {
+ .action.instant-purchase {
+ margin-bottom: 0;
+ margin-right: 1%;
+ width: 49%;
+ }
}
- }
}
diff --git a/app/design/frontend/Magento/luma/Magento_Multishipping/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Multishipping/web/css/source/_module.less
index 03ff1fb09a3e4..4b5cd30a4a8ee 100644
--- a/app/design/frontend/Magento/luma/Magento_Multishipping/web/css/source/_module.less
+++ b/app/design/frontend/Magento/luma/Magento_Multishipping/web/css/source/_module.less
@@ -8,285 +8,290 @@
// _____________________________________________
& when (@media-common = true) {
- .multicheckout {
- &.results, &.success {
- h3 {
- font-size: 1.6rem;
- margin-bottom: @indent__base;
- margin-top: @indent__l;
- a {
- color: @text__color;
- &:hover {
- text-decoration: none;
- }
- }
- }
-
- ul.orders-list {
- list-style: none;
- padding-left: 0;
- }
-
- .orders-list {
- margin-top: @indent__m;
- padding-left: @indent__base - 4px;
-
- .shipping-list {
- .shipping-item {
- margin-left:84px;
- }
- .shipping-label {
- font-weight: @font-weight__bold;
- margin-right: @indent__s;
- }
- .shipping-address {
- font-weight: @font-weight__regular;
- }
- .error-block {
- color: @color-red10;
- .error-label {
- font-weight: @font-weight__bold;
- margin-right: @indent__s;
+ .multicheckout {
+ &.results, &.success {
+ h3 {
+ font-size: 1.6rem;
+ margin-bottom: @indent__base;
+ margin-top: @indent__l;
+ a {
+ color: @text__color;
+ &:hover {
+ text-decoration: none;
+ }
}
- .error-description {
- font-weight: @font-weight__regular;
+ }
+
+ ul.orders-list {
+ list-style: none;
+ padding-left: 0;
+ }
+
+ .orders-list {
+ margin-top: @indent__m;
+ padding-left: @indent__base - 4px;
+
+ .shipping-list {
+ .shipping-item {
+ margin-left:84px;
+ }
+
+ .shipping-label {
+ font-weight: @font-weight__bold;
+ margin-right: @indent__s;
+ }
+
+ .shipping-address {
+ font-weight: @font-weight__regular;
+ }
+
+ .error-block {
+ color: @color-red10;
+
+ .error-label {
+ font-weight: @font-weight__bold;
+ margin-right: @indent__s;
+ }
+
+ .error-description {
+ font-weight: @font-weight__regular;
+ }
+ }
}
- }
}
- }
- .orders-succeed {
- .orders-list {
- margin-top: 0;
+ .orders-succeed {
+ .orders-list {
+ margin-top: 0;
+
+ .shipping-list {
+ .order-id {
+ float:left;
+ }
+ .shipping-item {
+ margin-left:100px;
+ }
+ }
+ }
+ }
+ }
- .shipping-list {
- .order-id {
- float:left;
- }
- .shipping-item {
- margin-left:100px;
- }
+ .title {
+ margin-bottom: @indent__l;
+
+ strong {
+ font-weight: @font-weight__regular;
}
- }
}
- }
- .title {
- margin-bottom: @indent__l;
+ .table-wrapper {
+ margin-bottom: 0;
- strong {
- font-weight: @font-weight__regular;
- }
- }
+ .action.delete {
+ display: inline-block;
+ }
+
+ .col {
+ .qty {
+ display: inline-block;
+
+ .input-text {
+ &:extend(.abs-input-qty all);
+ }
+ }
- .table-wrapper {
- margin-bottom: 0;
+ .label {
+ &:extend(.abs-visually-hidden all);
+ }
- .action.delete {
- display: inline-block;
- }
+ &.item {
+ .action.edit {
+ font-weight: @font-weight__regular;
+ margin-left: @indent__s;
+ }
+ }
+ }
- .col {
- .qty {
- display: inline-block;
+ .cart-price {
+ &:extend(.abs-checkout-cart-price all);
+ }
- .input-text {
- &:extend(.abs-input-qty all);
- }
+ .product-item-name {
+ &:extend(.abs-checkout-product-name all);
+ }
}
- .label {
- &:extend(.abs-visually-hidden all);
+ &:not(.address) {
+ .table-wrapper {
+ .product-item-name {
+ margin: 0;
+ }
+ }
}
- &.item {
- .action.edit {
- font-weight: @font-weight__regular;
- margin-left: @indent__s;
- }
+ > .actions-toolbar {
+ margin-top: @indent__xl;
}
- }
- .cart-price {
- &:extend(.abs-checkout-cart-price all);
- }
+ .actions-toolbar {
+ > .secondary {
+ display: block;
- .product-item-name {
- &:extend(.abs-checkout-product-name all);
- }
- }
+ .action {
+ margin-bottom: @indent__m;
- &:not(.address) {
- .table-wrapper {
- .product-item-name {
- margin: 0;
- }
- }
- }
+ &.back {
+ display: block;
+ margin-left: 0;
+ }
+ }
+ }
- > .actions-toolbar {
- margin-top: @indent__xl;
- }
+ > .primary {
+ margin-right: @indent__s;
+ }
+ }
- .actions-toolbar {
- > .secondary {
- display: block;
+ .action.primary {
+ &:extend(.abs-button-l all);
+ }
- .action {
- margin-bottom: @indent__m;
+ .item-options {
+ margin: @indent__s 0 0;
- &.back {
- display: block;
- margin-left: 0;
- }
+ &:extend(.abs-product-options-list all);
+ &:extend(.abs-add-clearfix all);
}
- }
- > .primary {
- margin-right: @indent__s;
- }
- }
+ &:extend(.abs-account-blocks all);
- .action.primary {
- &:extend(.abs-button-l all);
- }
+ .block {
+ &:extend(.abs-add-clearfix all);
- .item-options {
- margin: @indent__s 0 0;
-
- &:extend(.abs-product-options-list all);
- &:extend(.abs-add-clearfix all);
- }
+ .methods-shipping {
+ .item-content {
+ .fieldset {
+ > .legend {
+ &:extend(.abs-visually-hidden all);
+ }
- &:extend(.abs-account-blocks all);
+ > .legend + br {
+ &:extend(.abs-no-display all);
+ }
- .block {
- &:extend(.abs-add-clearfix all);
+ > .field {
+ &:before {
+ display: none;
+ }
- .methods-shipping {
- .item-content {
- .fieldset {
- > .legend {
- &:extend(.abs-visually-hidden all);
+ .control {
+ display: inline-block;
+ }
+ }
+ }
+ }
}
+ }
- > .legend + br {
- &:extend(.abs-no-display all);
- }
+ .block-title,
+ .block-content .title {
+ &:extend(.abs-account-title all);
+ border-bottom: @border-width__base solid @border-color__base;
+ padding-bottom: @indent__s;
- > .field {
- &:before {
- display: none;
- }
+ strong {
+ font-weight: @font-weight__regular;
- .control {
- display: inline-block;
- }
+ span {
+ .lib-css(color, @primary__color__light);
+ }
}
- }
}
- }
- }
-
- .block-title,
- .block-content .title {
- &:extend(.abs-account-title all);
- border-bottom: @border-width__base solid @border-color__base;
- padding-bottom: @indent__s;
-
- strong {
- font-weight: @font-weight__regular;
- span {
- .lib-css(color, @primary__color__light);
+ .block-content {
+ &:extend(.abs-add-clearfix all);
+ .title {
+ border-bottom: none;
+ padding-bottom: 0;
+ }
}
- }
- }
- .block-content {
- &:extend(.abs-add-clearfix all);
- .title {
- border-bottom: none;
- padding-bottom: 0;
- }
- }
+ &.order-review {
+ .block-title > strong {
+ .lib-font-size(24);
+ }
- &.order-review {
- .block-title > strong {
- .lib-font-size(24);
- }
+ .block-shipping {
+ .block-content:not(:last-child) {
+ margin-bottom: @indent__xl;
+ }
+ }
- .block-shipping {
- .block-content:not(:last-child) {
- margin-bottom: @indent__xl;
+ .error-description {
+ color: @color-red10;
+ font-weight: @font-weight__regular;
+ margin-bottom: @indent__s;
+ margin-top: -@indent__s;
+ }
}
- }
- .error-description {
- color: @color-red10;
- font-weight: @font-weight__regular;
- margin-bottom: @indent__s;
- margin-top: -@indent__s;
- }
- }
-
- .box-title {
- span {
- margin-right: @indent__s;
- }
+ .box-title {
+ span {
+ margin-right: @indent__s;
+ }
- > .action {
- margin: 0;
- }
- }
+ > .action {
+ margin: 0;
+ }
+ }
- .box-shipping-method {
- .price {
- font-weight: @font-weight__bold;
- }
- }
+ .box-shipping-method {
+ .price {
+ font-weight: @font-weight__bold;
+ }
+ }
- .box-billing-method {
- .fieldset {
- margin: 0;
+ .box-billing-method {
+ .fieldset {
+ margin: 0;
- .legend.box-title {
- margin: 0 0 @indent__xs;
+ .legend.box-title {
+ margin: 0 0 @indent__xs;
+ }
+ }
}
- }
- }
- .hidden {
- &:extend(.abs-no-display all);
- }
+ .hidden {
+ &:extend(.abs-no-display all);
+ }
- .checkout-review .grand.totals {
- .lib-font-size(@font-size__xl);
- margin-bottom: @indent__xl;
+ .checkout-review .grand.totals {
+ .lib-font-size(@font-size__xl);
+ margin-bottom: @indent__xl;
- .mark {
- font-weight: @font-weight__regular;
- }
+ .mark {
+ font-weight: @font-weight__regular;
+ }
+ }
}
- }
- [class^='multishipping-'] {
- .nav-sections,
- .nav-toggle {
- &:extend(.abs-no-display all);
- }
+ [class^='multishipping-'] {
+ .nav-sections,
+ .nav-toggle {
+ &:extend(.abs-no-display all);
+ }
- .logo {
- margin-left: 0;
+ .logo {
+ margin-left: 0;
+ }
}
- }
- .multishipping-checkout-success {
- .nav-sections {
- display: block;
+ .multishipping-checkout-success {
+ .nav-sections {
+ display: block;
+ }
}
- }
}
//
@@ -294,200 +299,200 @@
// _____________________________________________
.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) {
- .multicheckout {
- .data.table {
- .address {
- &:before {
- margin-bottom: @indent__xs;
+ .multicheckout {
+ .data.table {
+ .address {
+ &:before {
+ margin-bottom: @indent__xs;
+ }
+ }
}
- }
- }
-
- .product-item-name,
- .price-including-tax,
- .price-excluding-tax {
- display: inline-block;
- }
- .block-content .box {
- &:not(:last-child) {
- margin-bottom: @indent__xl;
- }
+ .product-item-name,
+ .price-including-tax,
+ .price-excluding-tax {
+ display: inline-block;
+ }
- &:last-child {
- margin-bottom: 0;
- }
- }
+ .block-content .box {
+ &:not(:last-child) {
+ margin-bottom: @indent__xl;
+ }
- &.order-review {
- .box-items {
- .data.table {
- thead {
- display: block;
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
- tr {
- display: block;
+ &.order-review {
+ .box-items {
+ .data.table {
+ thead {
+ display: block;
+
+ tr {
+ display: block;
+ }
+
+ .col.item {
+ display: block;
+ padding: 0;
+ }
+ }
+ }
}
- .col.item {
- display: block;
- padding: 0;
+ .data.table {
+ &:extend(.abs-checkout-order-review all);
}
- }
}
- }
-
- .data.table {
- &:extend(.abs-checkout-order-review all);
- }
- }
- .actions-toolbar {
- .action {
- margin-bottom: @indent__m;
- }
+ .actions-toolbar {
+ .action {
+ margin-bottom: @indent__m;
+ }
- > .primary {
- margin-bottom: @indent__m;
- margin-right: 0;
- }
+ > .primary {
+ margin-bottom: @indent__m;
+ margin-right: 0;
+ }
+ }
}
- }
}
.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__s) {
- .multicheckout {
- .actions-toolbar {
- .column:not(.sidebar-main) & {
- &:extend(.abs-reset-left-margin-desktop-s all);
- }
+ .multicheckout {
+ .actions-toolbar {
+ .column:not(.sidebar-main) & {
+ &:extend(.abs-reset-left-margin-desktop-s all);
+ }
- .secondary {
- float: none;
- margin-top: 11px;
- text-align: right;
+ .secondary {
+ float: none;
+ margin-top: 11px;
+ text-align: right;
- .action {
- margin-left: @indent__s;
+ .action {
+ margin-left: @indent__s;
- &.back {
- display: block;
- float: left;
- }
+ &.back {
+ display: block;
+ float: left;
+ }
+ }
+ }
}
- }
- }
-
- .item-options {
- margin: @indent__base 0 0;
- }
-
- .block-content .box {
- margin-bottom: 0;
- }
- .block-shipping {
- .box {
- &:extend(.abs-add-box-sizing-desktop-s all);
- float: left;
- width: 25%;
- }
+ .item-options {
+ margin: @indent__base 0 0;
+ }
- .box-shipping-method {
- padding-left: @indent__m;
- padding-right: @indent__m;
- width: 50%;
+ .block-content .box {
+ margin-bottom: 0;
+ }
- .fieldset {
- .legend {
- &:extend(.abs-reset-left-margin-desktop-s all);
- }
+ .block-shipping {
+ .box {
+ &:extend(.abs-add-box-sizing-desktop-s all);
+ float: left;
+ width: 25%;
+ }
- .field {
- &:before {
- display: none;
+ .box-shipping-method {
+ padding-left: @indent__m;
+ padding-right: @indent__m;
+ width: 50%;
+
+ .fieldset {
+ .legend {
+ &:extend(.abs-reset-left-margin-desktop-s all);
+ }
+
+ .field {
+ &:before {
+ display: none;
+ }
+ }
+ }
}
- }
}
- }
- }
- .block-billing {
- &:extend(.abs-add-clearfix-desktop-s all);
- .box-billing-address {
- &:extend(.abs-add-box-sizing-desktop-s all);
- float: left;
- width: 25%;
- }
-
- .box-billing-method {
- &:extend(.abs-add-box-sizing-desktop-s all);
- float: left;
- padding-left: @indent__m;
- width: 50%;
- }
- }
+ .block-billing {
+ &:extend(.abs-add-clearfix-desktop-s all);
+ .box-billing-address {
+ &:extend(.abs-add-box-sizing-desktop-s all);
+ float: left;
+ width: 25%;
+ }
- &.form.address {
- .table-wrapper {
- .applicable {
- margin: 7px 0 0;
+ .box-billing-method {
+ &:extend(.abs-add-box-sizing-desktop-s all);
+ float: left;
+ padding-left: @indent__m;
+ width: 50%;
+ }
}
- }
- }
- &.order-review {
- .box-items {
- clear: left;
- float: none;
- padding-top: @indent__xl;
- width: auto;
- }
-
- .col.item {
- width: 75%;
- }
- }
+ &.form.address {
+ .table-wrapper {
+ .applicable {
+ margin: 7px 0 0;
+ }
+ }
+ }
- // Payment methods
- .methods-payment {
- .item-content > .fieldset {
- width: auto;
+ &.order-review {
+ .box-items {
+ clear: left;
+ float: none;
+ padding-top: @indent__xl;
+ width: auto;
+ }
- .field {
- &.cvv {
- display: inline-block;
- width: auto;
- }
+ .col.item {
+ width: 75%;
+ }
}
- }
- .fieldset > .field:not(.choice) {
- > .label {
- float: none;
- margin-bottom: 8px;
- text-align: left;
- width: auto;
- }
+ // Payment methods
+ .methods-payment {
+ .item-content > .fieldset {
+ width: auto;
+
+ .field {
+ &.cvv {
+ display: inline-block;
+ width: auto;
+ }
+ }
+ }
+
+ .fieldset > .field:not(.choice) {
+ > .label {
+ float: none;
+ margin-bottom: 8px;
+ text-align: left;
+ width: auto;
+ }
- &:not(.cvv) {
- .control {
- width: 100%;
- }
+ &:not(.cvv) {
+ .control {
+ width: 100%;
+ }
+ }
+ }
}
- }
}
- }
}
.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) {
- .multishipping-checkout-success {
- .nav-toggle {
- display: block;
- }
+ .multishipping-checkout-success {
+ .nav-toggle {
+ display: block;
+ }
- .logo {
- margin-left: @indent__xl;
+ .logo {
+ margin-left: @indent__xl;
+ }
}
- }
}
diff --git a/app/etc/di.xml b/app/etc/di.xml
index 6e3dabaa0751f..04a35e844d9e7 100755
--- a/app/etc/di.xml
+++ b/app/etc/di.xml
@@ -273,6 +273,11 @@
Magento\Backend\App\Request\PathInfoProcessor\Proxy
+
+
+ Magento\Framework\Session\Config\ConfigInterface\Proxy
+
+
diff --git a/lib/web/mage/apply/scripts.js b/lib/web/mage/apply/scripts.js
index f35e9a2140e67..bf211c38adba5 100644
--- a/lib/web/mage/apply/scripts.js
+++ b/lib/web/mage/apply/scripts.js
@@ -14,7 +14,7 @@ define([
virtuals = [];
/**
- * Adds components to the virtula list.
+ * Adds components to the virtual list.
*
* @param {Object} components
*/